Monthly Archives: August 2007

Register file vs. SRAM

정의로써 이야기하자면, Register file은 Register의 집합체를 통칭하는 말이며, SRAM은 Static RAM의 줄임말입니다. Register라는 말은 보통 D-FF과 같은 간단한 로직 형태의 저장 장치를 의미하며, 어떤 소자의 형태를 의미하지는 않습니다. 따라서, Register file은 D-FF의 합쳐진 형태로 나타낼 수도, SRAM으로 나타낼 수도, 혹은 특별한 형태의 소자를 사용할 수도 있습니다.


다만, 일반적으로 받아들여지기를 SRAM과 비교하였을 때 Register file은 빠르고, 더 size가 크고, 일반적으로 더 전력 소모가 심하리라 생각할 수 있습니다. 실제로 Full-Custom으로 구성되는 프로세서에서 Register file의 소자 형태는 중요한 논문 꺼리 중의 하나로 들어가 있으니까요.


이제 현실로 돌아와 보면.. (소위 ASIC이라는 Flow를 생각해서)


Memory component는 각 Fab 회사에서의 memory compiler를 사용하게 되는데, 신기한 것이 Register file이 SRAM보다 “더 작고, 더 전력 측면에서 유리하고, 더 빠른” 형태로 나오는 경우가 많다는 것이지요. 이는 일반적으로 생각하는 “Speed 와 Area는 반비례한다”라는 관계와 들어맞지 않는데요.


Physical Library를 만드는 Artisan의 이야기로는 “Register file과 SRAM 간의 기본 아키텍처 차이는 없으나, register file에서는 작은 인스턴스 크기인 경우에 최적의 결과를 나타낼 수 있도록 설계되었다”고 합니다.


즉, 이런 memory compiler들은 SRAM이나 Register File이라 불리는 메모리나 모두 6T 구조(6개의 transistor를 쓰는 구조인 것은 아시죠?)의 SRAM cell을 사용하지만, Register File로 구현되는 경우 column당 SRAM cell의 수를 최소화해서, bit-line cap 값을 줄이는 기법을 사용한다고 합니다. 따라서, 결과적으로 구현할 수 있는 크기에 제약을 받지만, 같은 형태의 SRAM에 비하여 빠르고, 더 작은 크기를 지니게 되는 것입니다.


이러한 형태로 구현되는 이유는 현재의 ASIC technology에서 SRAM cell만 가지고도 약 400MHz정도(0.18um에서)를 구현하는 것이 가능하고, 대부분의 ASIC 공정의 경우 Register file에 요구하는 속도 정도가 이 수준을 넘지 않기 때문이라고 하는 군요.


따라서, 이러한 형태를 따르는 memory compiler에 있어서는 일반적으로 이야기되는 “SRAM은 6T구조의 메모리이며, Register file은 filp-flop혹은 latch storing구조를 채용하는 빠른 형태의 메모리이다”라는 학교의 지식을 버려야 하는 것이겠습니다.

잘하는 짓들이다..

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


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의 형태를 취할 것이라는 점입니다만.. 향후에 어떻게 흘러갈 것인지는 알 수 없겠지요.

Low Power Methodology Manual 무료 배포!

지난 DAC07 best selling book에서 1위를 차지한 Low Power Methodology Manual(이하 LPMM)이 synopsys를 통하여 무료 배포되고 있습니다.
단, Solvnet에 등록 아이디를 가지신 Synopsys 고객분들에 한하여 배포되면, Printing이나 Copy등이 불가능한 버전입니다.
게다가, 각 파일마다 personalized(어떻게 했는지는 모르겠습니다만)되어 있어서, 배포하면 걸린다더군요.

아이디를 가지신 분들은 다음 링크에서 받으시기 바랍니다. http://www.synopsys.com/lpmm 입니다.