20150721

1. 영어 기사 읽기
1) Alien Intelligence Search Gets Major New Push, Scientific American
2) How to survive a shark attack, CNN
– Despite what happened to Mick Fanning on Sunday, you are incredibly unlikely to be duking it out with a shark any time soon. (duke out – 때려눕히다)


2. 프로세서 디자인 관련
프로세서를 디자인하는 블로그를 찾았다! Hackaday에서 소개한 블로그인데, 요즘 내가 찾고 있었던 내용과 유사한 듯 하다. 실험 환경은 다르지만 도움은 얻을 수 있을 것 같다.
Designing a CPU in VHDL, Part 1: Rationale, tools, method, http://labs.domipheus.com/blog/designing-a-cpu-in-vhdl-part-1-rationale-tools-method/


3. RDTSC
RDTSC를 사용해 소요 사이클 수를 확인할 수 있다.

typedef unsigned long long ticks;
static __inline__ ticks getticks(void)
{
    unsigned a, d;
    asm("cpuid");
    asm volatile("rdtsc" : "=a" (a), "=d" (d));
    
    return (((ticks)a) | (((ticks)d) << 32));
}

References:
[1] RDTSC use in C, Unix & Linux Forums, http://www.unix.com/programming/81639-rdtsc-use-c.html


4. OpenSPARC 합성의 어려움
OpenSPARC 합성에 성공할 수 있을지 모르겠다. 예상했던 것보다 훨씬 어렵다. 내용 자체가 어렵다기보다는, 환경 구성이 너무 까다롭다. 아주 오래 전에 공개된 아키텍쳐와 툴체인이므로, 현재의 환경에서 개발 환경을 구성하기가 힘들다. 소스 코드는 거의 관리되지 않고 있으며, 이를 사용하는 사람도 없는 것 같다. 개발 도구 또한 아주 오래된 것을 사용해야만 한다. 여러가지 개발 도구를 설치해보았지만, ISE 10.1 버전 외에는 프로젝트 파일이 열리지 않는다. 프로젝트 파일이 호환되지 않는다. 그리고 단순히 Xilinx에서 제공하는 툴 뿐 아니라, 여러가지 상용 검증 도구도 필요하다 (VCS, Vera, Debussy). 검증 도구 사용 방법도 알아야 하는 것은 물론이다. 여러 문제를 해결하며 개발 환경을 구축해왔지만, 마지막으로 한 가지 문제를 해결하지 못해 OpenSPARC이 아닌 다른 것으로 바꾸어야 할 것 같다. 합성 과정에서 다음과 같은 에러가 발생한다.

ERROR:NgdBuild:527 - Failed to launch program edif2ngd: application received signal 11.

edif2ngd를 실행하는 과정에서 signal 11 (SIGSEGV)이 발생했다는 메시지이다. 인터넷에 찾아도 잘 나오지 않으며, 원인을 도무지 알 수가 없다. gdb로 해당 위치를 확인해보았으나, 알 수 없기는 마찬가지이다.

#0  __memmove_ssse3_back () at ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S:2791
#1  0x00007ffff7ca2bd9 in UT_STREAMIMP::write(unsigned char const*, unsigned long) () from /opt/Xilinx/10.1/ISE/lib/lin64/libPortability.so
#2  0x00007ffff6136ccb in Xdm_Debug::Printf(UT_STREAM*, int, char const*, ...) () from /opt/Xilinx/10.1/ISE/lib/lin64/libXdm.so
#3  0x00007ffff6120260 in void Xdm_Dump::Block<Xdm_Block>(UT_STREAM*, int, Xdm_Block const&) () from /opt/Xilinx/10.1/ISE/lib/lin64/libXdm.so
#4  0x0000000000419c01 in do_view_ref ()
#5  0x000000000041f218 in yyparse ()
#6  0x0000000000411100 in EDIF::process() ()
#7  0x00000000004146d5 in ?? ()
#8  0x0000000000414e84 in main ()

같은 에러가 발생한 사람을 찾았는데, ubuntu에서 Xilinx XPS 10.1을 실행한 경우인 듯 하다. Ubuntu가 아닌 다른 환경이라면 에러가 없을 것으로 보인다.
LEON3 코어를 한 번 시도해보아야겠다.


5. LEON3 관련 자료
OpenSPARC을 버리길 잘 했고, 왜 진작에 LEON3로 방향을 틀지 않았나 하는 생각이 든다. LEON3 프로세서 관련 튜토리얼은 정말 많다. 링크에 LEON3 프로세서 합성 방법에 대한 step-by-step 자료가 있다. 아직 해보지는 않았지만, 꽤 최신 버전으로 친절히 잘 설명해두었다. 그 외에도 자료가 많으니 공부하기는 OpenSPARC보다 훨씬 나을 것 같다.


6. Xen에서 time slice의 변경
Xen 4.2에서부터 xl 명령어를 사용해 time slice를 변경할 수 있다.

#xl sched-credit -p 0 -s -t 1

References:
[1] Credit Scheduler, Xen, http://wiki.xen.org/wiki/Credit_Scheduler

Advertisements
Tagged with: , , , , , , , , , , , ,
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 90,796 hits
%d bloggers like this: