Monthly Archives: September 2007

Tilera Processor.. 병렬성을 통한 성능 향상

ISSCC’07에서 Intel에서 80개의  core를 집적한 Tera-FLOPS급 프로세서를 발표했었지요. 이번 HOT Chips 19에서는 Tilera라는 회사에서 TILE64 프로세서를 발표한 것이 화제가 되었습니다. 약간 비스므리한 과제를 기획하고 있어서 관심있게 몇 가지 프로젝트를 지켜보고 있었는데, TILE64는 사실 제가 알고 있던 프로세서는 아니었지요.


이는 NoC(Network-on-a-Chip)에 기반을 두고, 다수의 프로세서를 묶은 형태로 볼 수도 있겠는데요 (이런 프로세서가 처음은 아니지요. 기존의 intel의 network processor들이 이런 형태를 가져간 적이 있습니다). 사용하려는 application의 task parallelism이 상당한 경우에 유용한 형태라 볼 수 있습니다.



 


[TILE64의 구조; 일본 MYCOM에서 Tilera의 것을 인용한 것을 재인용합니다.]



이렇게 다수의 프로세서를 집적하는 경우, processor 개개의 속도보다는 area와 전력 소모가 중요한 요소가 됩니다. 프로세서의 속도를 올리는 것 보다 프로세서의 수를 증가시켜 성능 향상을 도모하는 것이니까요.


사실, 성능 향상에는 clock frequency를 증가시키는 것이 더 유용할 수 있습니다.(예전에 speed-demon approach를 말씀드린 것 처럼) 어짜피 전력 소모는 동작 주파수에 비례하니, 전력소모가 급증하지도 않을 테구요. 클럭 주파수를 2배 올려서 얻는 전력의 불이익보다, 코어 2개를 써서 얻는 전력의 불이익이 클 수도 있겠지요? 클럭 주파수를 2배로 올리면 performance가 2배가 되는데, 코어 2개를 쓰더라도 parallelism이 없으면 소용 없으니 말입니다.


그럼에도 왜 클럭 주파수를 높이지 않고 multicore를 사용할까요?


우선, 클럭 주파수를 높이는 것이 그렇게 녹녹하지 않다는 것이지요. 클럭 주파수를 높이기 위하여 합성을 심각하게 하면 area는 exponetial로 증가하며, 클럭 주파수를 높이기 위해서 미세 공정을 적용하면서 leakage current가 심각한 문제로 나타나고, 클럭 주파수를 높이기 위해서 dynamic gate를 쓰다보니 clock frequency 조절에 문제가 생기고, 클럭 주파수를 높이기 위해서 pipeline을 깊게 만들다보니 명령어 처리 효율(insturction per cycle:IPC)이 떨어지고, 이를 회복하려다보니 복잡한 dynamic branch prediction을 적용시켜야 하고.. 등등등..


클럭 주파수를 높이기 위해서 얻는 이득보다, 잃는 것이 많아지고 있는 것이지요. 즉, (parallelis이 어느 정도 존재한다면) 느린 코어를 여러개 쓰는 것이 유리한 시점까지 와버린 거라고 볼 수 있습니다. 문제는.. task 수준의 parallelism을 얻을 수 있는 application이 (현재로서는) 통신과 미디어 처리 부분이라는 것입니다. 이 문제의 극복은 쉽지 않아보이긴 합니다 ^^;

2×2나 Quad나..

프로세서 하는 사람으로 할 소리는 아닌듯 하지만, 사용자 입장에선 dual core 2개를 MCP하던, true quad core나 밥 적게 먹고, 일 잘하는 프로세서가 좋은 프로세서입니다.


예전에 포스팅에서 적은 적도 있지만, Intel의 전략은 일견 영악한 구석이 없잖아 있는 것이 사실이지만 사용자의 입장에서 그런 걸 따질 필요도 없으니, AMD가 굳이 “우린 true quad”라고 이야기할 필요도 없습니다.


단지, true quad의 장점을 보이면 되는 것이겠지요. 여기서는 잠깐 Quad core가 2×2보다 좋을 것 같은 부분을 짚어 보면,



  • processor 간의 bandwidth가 아무래도 PAD의 제약을 받고 있는 2×2전략보다는 높을 것이고,
  • PAD간에 소모되는 전력도 무시할 수 없을테니, 전력 소모도 적겠습니다. (그리, 크지는 않겠습니다만..)

장점만 있는건 아니니, 단점은



  • area가 그만큼 커진다는 말이니 아무래도 수율에 문제가 존재하겠고, 이는 단가 싸움에서 불리하게 작용할 가능성이 있습니다. 물론 2×2전략도 pad의 크기를 고려하면 마냥 행복한 전략은 아닙니다만..

같은 코어를 집적한다면 2×2보다 quad가 좋을 것이라고(가격은 둘째 치고) 말씀드릴 수 있겠습니다만, 현재로서는 뭐라 말할 수 없는 것이 intel과 AMD의 microarchitecture가 다르니 좀 애매한 부분이 있습니다.


물론, 발표된 barcelona자료에서는 몇 가지 장점(특히 대역폭에서)이 보이지만, 이것이 실제 performance로 연결될지는 좀 의문입니다. core당 1MB내지는 2MB의 L2 cache를 내장하고 나면, L2 이후의 traffic은 많이 줄어들지 않을까 생각도 됩니다.


결론은 시장 출시후에 나오겠지요

16주 3일차.

이제 어느덧 4개월을 지나서 5개월째에 접어들고 있습니다. 처음 3개월동안은 참 조마조마했습니다. 주변에서 조심해야 한다는 이야기를 너무도 많이 들었으니까요.
이제 한 고비 넘겼다고 생각입니다.
다행히 아내도 별탈없이(심지어 입덧도 없이) 어려운 기간을 잘 지나게 되어서 정말 다행입니다.

이번에는 선생님이 바뀌면서, 입체 초음파대신 일반 초음파를 했습니다. 다음 5주후에는 정밀 초음파를 하기로 했습니다만.. 사람 욕심이라는 것이 끝이 없는지라 한달에 한번 보는 아기 얼굴인데 이번에 입체 초음파를 하지 않은 것이 아쉽기만 합니다. 아내 말로는 초음파가 세포에 좋은 건 아니라니 참아야 겠지요. (아내의 전공이 유전공학인지라 전공 용어로 뭐라 뭐라 그러면 저는 옆에서 정신을 놓고 멍하니 있는 수밖에 없지요.. )


이제는 정말 사람 형상입니다. 손가락 5개 발가락 5개도 다 보이구요. 음.. 저와 아내의 머리가 크다보니, 머리는 16주 5일 정도, 다리 길이는 16주 2일로 나오는 군요. 역시 유전자의 힘이란 어쩔 수 없나봅니다. ^^