Category Archives: SoC & IP design

Linux 커널에 실시간 기능이 추가되다!

[[Embedded system]]에서 많이 사용되는 [[RTOS]]들이 있지만, 고성능 기기들에서 요즘에 관심을 끄는 OS는 아무래도 [[Linux]]와 [[WindowsCE]]가 아닌가 싶습니다.

두 가지는 OS는 desktop에서의 탄탄한 지원을 바탕으로 embedded까지 내려왔는데, 사실 real time기능이 약하다는 단점을 지니고 있었습니다.
linux의 경우 real time기능을 강화하기 위하여 [[RTLinux]]나 [[montavista]]등의 real time kernel patch가 적용된 버젼들이 있었습니다.

Linux Kernel 2.6부터 embedded processor들에 대한 지원 부분이 본격적으로 강화되면서, [[MMU]]없는 Linux도 가능해졌고(기존에 [[uCLinux]]가 있기는 합니다만..), EETimes에 따르면 이번에 발표된 2.6.18 kernel에서는 real-time feature가 추가되었다고 합니다.
추가된 real-time feature로는 우선순위가 역전되는 것을 방지해주는 “priority inheritance” 지원, 모든 아키텍쳐에 대한 generic interrupt handling layer의 지원이 있다고 하네요..

저희 회사 소프트웨어팀도 바빠지겠군요.

Power6의 십진 연산은 DFP입니다.

아래글에서 적었던 MPF fall에서 발표된 [[Power6]]가 십진 연산을 지원한다는 ZDnet의 기사(번역된 한글 기사도 있습니다만)는 단지, 십진 연산이라는 표현만 있어서 그 내용이 아주 궁금했었죠.

십진 연산만을 생각하자면, [[IBM]]에서는 정수 연산에 대하여 예전부터 [[BCD]] 연산([[binary-coded decima]])으로 10진 연산을 적용했었기 때문에 별로 특별한 내용은 아니었습니다. (게다가 예전 [[ENIAC]]시절부터 10진 연산은 사용되었죠) 따라서, 뭔가 새로운 기법이 나온것은 같은데 실체가 상당히 궁금했습니다.

여러 웹사이트와 논문을 뒤적인 결과 드디어 실체를 찾을수 있었는데요, 이번에 적용된 10진 연산은 [[floating point]] 연산에 대한 이야기입니다. 이는 2003년의 ARITH16에 발표된 “Decimal Floating-Point: Algoritm for Computers“라는 논문을 기반으로 하고 있으며, 이에 대한 전반적인 내용은 IBM 웹페이지에 잘 나와 있습니다.
이는 10진수 기반의 Floating point연산(이후 DFP) 방법에 대한 내용인데, 대략적으로 살펴보니 mantisa(부동 소수점에서 지수 부분이 아닌, 유효숫자를 표시하는 부분) 부분을 binary가 아닌 compressed BCD로 표현하는 방법과 연산에 대해서 기술하고 있는 것 같습니다.
(컴퓨터에서 floating point 연산은 모두 [[IEEE-754]]라는 복잡한 표준을 따르고 있는데, 이 표준에 대하여 decimal mode를 추가하는 IEEE-754 revision(이후 [[IEEE 754r]]) 작업이 진행중이라고 합니다. 사실 IEEE 754 표준은 그 자체가 복잡해서 많은 연구자들의 머리를 아프게 합니다. 저도 마찬가지였구요. 특히 복잡한 라운딩 모드들 ^^;)

논문에 따르면 DFP 기법은 아주 새로운 것은 아니고, 754표준을 따를 필요성이 적은 휴대용 전자 계산기 종류에서는 (최근들어) 대부분 DFP를 따르고 있다고 하네요. 하지만, 위의 IBM 웹페이지를 따르면 프로세서에 적용되는건 아마도 Power6가 최초인가 봅니다.

프로세서에서는 기본적으로 포맷의 호환성으로 고려해야 할테니 기본적으로 IEEE-754 호환 모드를 기본으로 하고, IEEE-754r을 위한 연산기를 준비하되, 이것은 특정 라이브러리를 통해서 호출되는 방식을 취하지 않을까 생각됩니다.

DFP에 대한 자세한 부분은 논문과 자료를 좀더 봐서, 머리속에서 정리가 된 후에 적겠습니다.

p.s. 나름대로 챙겨보는 논문집들이 ISCA, ASPLOS, MICRO, ARITH인데.. 어쩌다 빼먹었는지 모르겠네요. ㅠㅠ;

AMD Quad Core 소식

MPF fall에서 여러가지 재미난 소식들이 전달되고 있습니다.
이번에 전해드릴 소식은 EEtimes에 나온 AMD Quad Core processor( codename: barcelona) 관련 소식입니다.

[[Intel]]에서 core 2 quad를 2007년 상반기에 내놓겠다고 IDF에서 큰소리 빵빵쳤더랬습니다.
이에 질새라 AMD는 true quad core processor인 barcelona에 관한 소식을 MPF fall에서 발표했습니다.
사실 AMD의 quad코어 전략은 desktop에서는 4×4를 기반으로, 즉  dual core processor 두개를 하나의 칩에 내장하는 형태로 공략하고, 이후에 QUAD코어로 간다는 것이었습니다.
서버쪽은 바로 true quad코어로 간다는 전략이구요.

TRUE quad core라고 강조하는 것은 사실 AMD의 전략(?)이라고 보이는데, 비교적 열등한 형태의 인텔 [[CMP]]의 형태를 겨냥한 느낌이 다분합니다.
인텔의 core 2 duo의 경우 사실 single core가 대규모 L2 cache에 merging되어 있는 형태라 전통적인 MP의 형태와는 좀 다른 면이 있습니다.

거기에 비해서 [[AMD]]의 quad core는 4개의 분리된 single core가 Direct Connect된 corssbar switch형태의 버스로 연결된 형태를 지니고 있습니다.

”]MPF fall에 발표된 바에 의하면(저는 EETimes의 내용을 재인용합니다.^^; 자세한 사항은 역시 다음주 MPR이 기대됩니다.) 이 프로세서는 65nm공정에서 만들어지는 AMD의 첫번째 코어입니다.
또한, 각각 128bit dataflow multimedia unit을 지니고 있다고 합니다. (이건 intel에서도 이러니 특별할건 없군요)

[[Multiprocessor]]환경에서 결국 중요한건 Bus bandwidth인데 AMD는 이점을 역시 잘 인지하고 있습니다.
이에 따른 중요한 업데이트는 intergrated memory controller부분인데요.. DDR2, DDR3, Fully Buffered-DIMM을 지원하게 된다고 합니다.
관련된 주요 사항으로는 각 코어마다 64KB의 L1, 512KB L2 cache를 내장하고, 비교적 작지만 2MB의 L3 캐쉬를 지원합니다. 캐쉬의 용량은 적절히 조절된 버젼이 또 나올것이라 생각됩니다. 첫공정이니 수율 조정 측면에서 메모리를 많이 넣기는 힘들겠죠.

AMD quad core프로세서의 서버 버젼부터는 지난번에 포스팅했던 Torrenza를 위한 socket F (1207핀)을 사용해서 메모리 대역폭을 극대화 것으로 예고가 되어 있었는데, 얼마나 성능을 보여줄지 상당히 궁금합니다.