Category Archives: SoC & IP design

프로세서의 진화는 끊이지 않는다!

마이크로 프로세서의 개발이 한계에 부딛혔다는 말이 많습니다.

마이크로 아키텍쳐에서 많은 연구자들에게 즐거움을 주었던 [[trace architecture]](Intel에서 [[trace cache]]를 채용되었지요?)라든지 SMT이후에 별다른 혁신없이 몇년이 지속되고 있는듯 한 느낌입니다.
최근의 마이크로 프로세서는 공정기술을 앞세운 속도 향상이나 동일 코어를 많이 내장하는 방법, 좀더 큰 캐쉬를 내장시키는 방법등으로 발전하고 있어서, 일견 마이크로 아키텍쳐 자체에는 별다른 이슈가 없는듯한 생각까지 들게 합니다.

마이크로 프로세서 자체에는 여러가지 재미있는 시도들이 진행되고 있습니다.
[[IBM]] 진영에서는 [[powerPC]]에서 기존의 Power라는 이름으로 복귀한 후 최근에 Power6 프로세서를 선보였습니다.
이전에 애플에서 ‘Power PC가 개선되는 것을 도저히 못 기다리겠다’고 선언하고 intel 기반으로 전향한것에 충격을 받았는지, [[Cell]]에서 병렬성을 강조하던 것에서 Power에서는 다시 속도전에 돌입했습니다.
ISSCC의 발표에 의하면 65nm 공정에서 4GHz라고 하더니만, 어제 EEtimes 기사를 보면 dual core Power6가 8MB L2 cache를 내장하고도 4~5GHz를 넘어섰다고 합니다. (출처가 san jose라는 걸 보면 MPF fall의 내용인듯 한데요..국내에 좀 희안한 기사가 하나 떳습니다. 10진법 연산이라.. 이걸보고 제가 왠만한 power6관련 논문/기사를 둘러봤는데 이런 내용은 없더군요.. 아마도 다음주에 MPR에서 MPF fall 정리하면서 나오겠죠.. CNET원문에도 있는걸보니 뭔가 있을듯 한데, 실체는 나중에 MPR을 봐야겠네요. ^^;)

잠잠하던 Sun진영에서는 UltraSparc의 발전 방향을 좀더 깊고 넓은 Multithreading으로 잡은듯 합니다. MPR의 예전 기사를 보면 Niagara2는 프로세서당 32-64 thread를 지원하고, Dual Core를 내장해서 128 thread를 지원한다고 하더군요.
또한가지 Sun의 재미있는 실험은 Niagra에 사용된 UltraSPARC T1  Core가 GPL에 의거해서 open되었다는 점입니다. OpenSPARC이란 이름으로 말이죠. http://www.opensparc.net/ 에서 [[OpenSparcT1]]의 모든 소스코드와 합성 스크립트를 얻으실 수 있습니다. 저도 몇달전에 받아서 합성 스크립트 만드는데 (감동과 ^^;) 도움을 받고 있습니다. 적어도 open source processor보다는 잘 만들어야한다는 막중한 중압감에 눌리는 중입니다. -_-;

OpenSparc 프로세서

찬란하게 떠오르다 사멸한 Alpha아키텍쳐는 그 면면이 AMD의 Hammer 아키텍쳐로 연결되었고, 주변의 여러 아키텍쳐에 영향을 주었고…
SimpleScalar라는 프로세스 아키텍트들한테는 가장 중요한 시뮬레이션 툴의 기반 아키텍쳐로 사용되어 여전히 논문상에 회자되고 있습니다.

지금 또 어느 랩에서 어떤 혁신적인 아키텍쳐가 개발되고 있을지 모르지요.
다음주에 MPR에서 나올 MPF fall 소식이 궁금해지는 저녁시간입니다.

PeakStream: GPU를 이용한 범용 수치연산!

MPR 10/2일자에 PeakStream이라는 재미있는 라이브러리(플랫폼?)에 대한 내용이 있어서 좀 살펴봤습니다.
PeakStream이라는 회사의 플랫폼은 GPU를 이용하여 범용 수치 연산을 하기 위한 여러가지 방법(API)을 제공하는 것인데요.. 상당히 재미있습니다.

다음 그림은 peakstream의 아키텍쳐를 보여주는데, 간단히 설명드리자면 연산량이 많은 응용분야에서 peakstream의 API를 써서 프로그래밍하고, 이것이 현존하는 GPU에 연산기능을 mapping해서 병렬 연산을 한다는 구조입니다.

”]현재 가장 빠른 GPU의 경우 가장 빠른 dual core x86 CPU보다 7배 이상의 부동 소수점 연산 성능을 지니고 있는 괴물이라고 합니다[출처: MPR 06/10/2]. 게다가 peakstream 백서에서는 그 격차가 매년 2배씩 벌어지고 있다고 합니다. peakstream은 다양한 부동 소수점 연산에 GPU의 성능을 쓰자는 아이디어를 구체화시킨것이라 할 수 있습니다.

Today, the CPU with the best floating point performance is the dual-core Intel Xeon 5160 which offers 48 gflops of single precision floating point performance. In contrast, the commodity high-end  GPU offers 360 gflops of single precision floating-point performance  and more than 50 GBytes/s of bandwidth to local memory. The computational performance growth rate for GPUs over the last few years has exceeded 2x per year. [Hanrahan05]

사실, Nvidia에서는 강력한 쉐이더를 이용해서, 물리 연산을 하는 방법을 제시하고 있으니 아주 새로운 아이디어는 아닙니다만, 쓰기가 쉽지만은 않습니다.
하지만, (예제로 나온)peakstream 코딩은 단지 기존의 부동 소수점 연산을 단지 해당 API에서 제공하는 연산 함수로만 바꾼듯 한 모습을 지닙니다. 즉, 포팅이 아주 쉽다는 것이지요. 지원하는 컴파일러도 GCC, intel compiler, matlab과 같이 많이 사용하는 환경에서는 모두 가능하고 말입니다.

아직까지는  ATI R580 프로세서(X1900 series라네요)만 지원하고 있으며, 하나의 프로세서만(즉, cross-fire 환경을 지원못한다는 말이죠) 사용할 수 있는데, 이 회사가 만들어진것이 2005년 2월, 수면 위로 떠오른것이 2006년 9월이니 이후의 일들을 더 기대해도 될 것 같습니다.

제가 얼마전에 멀티프로세서 환경에서 소프트웨어가 중요하다는 글을 쓴적이 있는데, 소프트웨어 부분에서도 분발하고 있군요.

p.s. 오랫만에 11시 이전에 집에 온 기념 포스팅입니다. ㅠㅠ;

AMD Torrenza: 서버 통합의 방법을 모색하다.

AMD에서 비지니스 환경을 위한 “Torrenza”, “Trinity”, “Raiden”의 세 가지 신기술을 발표했습니다. 보도자료를 보면 거의 마케팅적인 용어로 도배로 되어 있습니다만, Torrenza는 AMD64 프로세서와 이종(혹은 동종) 프로세서간의 서버 버스/소켓에 대한 공개 규약이고, Trinity는 보안,가상기술,관리를 통합하는 하나의 공개 전략이며, 코드명 “Radien”은 일종의 클라이언트 기술로 파악됩니다.
(보도자료 전문은 http://www.amd.com/us-en/Corporate/VirtualPressRoom/0,,51_104_543~109409,00.html)

하지만, Torrenza, Trinity, Raiden 모두 선언적 의미가 강했었으며 실체를 파악하기 힘들었는데, MPR에서 Torrenza에 대해서 어느정도 궁금증을 해소하게 해주는군요.

”]

MPR에 따르면, 토렌자 기술은 서버 환경을 위한 공개 버스/소켓 아키텍쳐로서 HyperTransport 2, HyperTransport 3 그리고, HTX 에드인 카드 인터페이스, HT3 기반의 1207 소켓을 구성요소로 취하고 있다고 합니다.
AMD는 이 토렌자 기술이 서버들에 있어서 표준 인터페이스 기술이 되도록 하기 위해서, 다른 파트너사들과 함께 Opteron Rev F에서 사용된 1207핀 소켓에 기반을 둔 Torrenza Innovation Socket(TIS)라는 공통 소켓 표준을 같이 개발하고 있다고 하네요.

현재 Common interface partner사로는 Tarari, RMI(알케미 인수한 회사죠?), Bay microsystems, DRC, Celoxica(셀록시카가 들어있다는 건 좀 의외네요..), XtremeData, Qlogic과 같은 많은 분야의 회사들이 망라되어 있고, Common Socket Partner사로는 IBM, Cray, Sun Microsystems가 있습니다 (인텔의 제외한 서버용 프로세서 규모가 있는 서버용 프로세서 회사는 다 모인거 아닌가요? ^^;)

토렌자 표준에 따르면, AMD의 opteron프로세서가 1207 소켓에 장착되어 HT 버스로 연결되는 것과 같이 타사의 프로세서 역시 1207핀 소켓에 장착되어 HT버스로 서로 직접 통신이 가능하고 (코프로세서로 인식되겠습니다만), 그 이외의 프로세서 역시  HTX를 이용하여 장착 가능하게 된다고 합니다.

즉, 토렌자가 실현되는 경우 서로 다른 이종간 멀티 프로세서 환경이 아주 쉽게 구축 가능하다는 장점이 있겠습니다. 이종간 멀티프로세서 시스템의 구축을 통한 가장 큰 장점은 아마도 virtualization이 아닐까 생각도 되는데, 한 시스템에 두가지 이종간 CPU를 설치하고 해당 CPU의 applicaiton을 자유롭게 실행시킨다는 점이 실현 가능하겠습니다.

소프트웨어가 어떻게/얼마나 지원해 줄지 미지수입니다만.. 아마도 Tirinity라는 플랫폼이 이러한 이종간의 시스템에서 자유로운 보안, 가상화, 관리을 해결하기 위한 방법론이 아닐까 생각됩니다. (AMD도 생각이 있을테니까요..)

처음으로 발표된 x86기반의 공개 소켓/인터페이스 표준이니 기대가 됩니다.
(인텔의 반격도 기대되는 건 사실입니다만, 인텔의 “플랫폼 맘대로 바꾸기”에는 나름의 철학이 있으니.. ^^;)