Category Archives: Microprocessor

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은 많이 줄어들지 않을까 생각도 됩니다.


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

잘하는 짓들이다..

어떤 것을 하던지 방법론이라는 것이 중요합니다. 잘 짜여진 방법론은 이후의 모든 일에 영향을 주기 때문이지요.


SystemVerilog 기반의 검증은 현재 VMM, AVM 등 여러가지 방법론을 지니고 있습니다(사실 방법론이라기보다 verification library라는 표현이 맞을 지 모르겠습니다만..). 그런데, 문제는 이러한 verification library들이 tool dependent할 요소가 거의 없음에도 불구하고, 실제적으로는 tool dependent하게 만들어졌다는데 있습니다.


예를 들어, VMM을 사용하시려면 synopsys 툴을 구매해야 합니다. 다른 툴에서 VMM을 사용하시려면, 역시 synopsys에서 해당 라이브러리를 결코 적지 않은 돈을 주고 구매해야 합니다. 당연한 이야기일지도 모르겠지만, verification methodology라는 부분을 사용자 편의보다 각 사의 market share를 늘리는 방편으로 사용하고 있는 것이겠지요.


표준화된 sugar가 있는 Assertion 분야에서 OVL이 아직도 힘을 얻고 있는 이유는 tool이 해당 부분을 따로 지원할 필요없이 간단히 `include 구문으로  assertion이 가능하다는데 있지 않을까요. (상대적으로 sugar는 tool에서 지원하지 않으면 쓸 수 없지요)


이번에 Cadence와 Mentor가 OVM(Open Verification Methodology)를 만들기 위한 기구를 설립했는데, 문제는 synopsys가 참여하지 않았다는 것이지이요. (혹은 cadence와 mentor가 상대적으로 systemverilog기반의 검증에서 선두를 달리고 있는 Synopsys를 견재하려고 한 짓일 확률도 높습니다만.. 여하튼)


결과적으로 OVM은 또 다시 반쪽이 될 확률이 높아졌습니다. 그나마 다행인것은 OVM의 implementation은 open source의 형태를 취할 것이라는 점입니다만.. 향후에 어떻게 흘러갈 것인지는 알 수 없겠지요.

속도악마 대 머리괴물…

착찹한 마음에 적은 글에 많은 분들이 격려해 주셔서 진심으로 감사드립니다.  착찹한 마음을 걷어내고 다시 나아기기 시작했습니다. 몇 번 적었듯이 쉽지 않은 길을 가는 것을 지지해 주고, 지원해 주는 회사에도 감사드리고 있습니다. 저희 프로세서에 부족했던 부분을 채울 수 있었던 좋은 기회였으므로, 너무나도 아쉽지만 EISC는 쉬운 길을 갈 운명은 아닌가 봅니다 ^^;

—-
프로세서 설계에 있어서 두 가지 중요한 갈래가 있습니다.
바로 속도를 높이는 것이 최고라고 생각하는 접근 방법(소위 speed demon approach –  이후 SDA)와 클럭당 수행되는 명령어의 수를 높이는 방법(소위 brainiac approach  – 이후 BA -라 이야기하는)이 존재하는 것이지요.
두 가지 모두 아주 의미있는 접근이라고 할 수 있습니다. 예를 들어 SDA는 파이프라인 프로세서에서 명령어 수준의 병렬성(Instrcution level parallelism -ILP)를 하드웨어가 동적으로 찾아내는데는 어짜피 한계가 있으므로, 전반적인 클럭 스피드를 높이는 것이 좋다라는 생각입니다.
이 SDA를 기조에 두고 있는 아키텍쳐로 유명한 것이 Alpha였는데, 얼마전까지의 Intel의 Netburst microarchitecture 역시 SDA를 기반에 둔 것입니다. 최대한 파이프를 잘게 쪼개서 높은 클럭 주파수를 얻어냄으로써, 좋은 성능을 얻자는 것입니다.
두 번째 갈래인 BA의 경우 파이프라인을 잘게 나누어 속도를 높이는 것도 중요하지만 ILP를 최대한 찾아내서 IPC(instructions per cycle)를 높이는 것도 중요하다라는 관점입니다. 전통적인 컴퓨터 아키텍트들이 선호하는 관점이기도 하지요. 제가 AMD를 더 선호하는 이유도 IPC의 관점에서 좋은 프로세서를 만든다는 점 때문입니다. (물론, 인텔도 아주 아주 뛰어납니다. 코어2듀오를 보십시오!)
마케팅의 관점에서는 누구나 쉽게 이해할 수 있는 clock frequency를 따지기 때문에 SDA를 선호하기도 합니다. 이러한 관점은 IPC가 더 좋은 프로세서들에게는 좋지 않은 마켓 상황이므로 AMD가 처음에 (performance rate던가요? 기억이) 클럭 속도보다 높은 값(P4에 비교하면 어느정도 클럭에 해당한다는 의미의)을 사용하기도 했습니다.
이런 생각은 처음에 전혀 먹혀들어가지 않았지만, 인텔에서 코어 듀오 시리즈를 사용하면서 이제 폭넓게 먹혀 들어가고 있지요.

사실 SDA기반으로 프로세서를 만든다는 것은 마케팅의 입장에서 대부분 매우 유리합니다. BA는 benchmark 결과를 보여주어야 하니까요. 그런데, benchmark를 따져 보는 사람이 생각보다 없습니다. ^^; 아쉽게도
요즘들어서는 energy efficiency가 중요해지면서 BA가 더 각광받는 분위기이기는 합니다. 🙂
embedded도 마찬가지지요.

여담입니다만, 항상 BA라는 측면을 두고 설계해 왔는데요, 우선 뭐가 되었던 SDA가 필요할 때도 있습니다. 🙂