오래만에 [하드웨어] 게시판에 글을 올리네요

아무도 이쪽에는 글을 올리지 않네요...

이번 글은 DDR 을 이해한 후 아트웍을 어떻게 해야하는지에 대해 말해볼까 합니다.

 

요즘(2010-09) 나오는 DRAM 은 DDR-III  입니다.  데이타 속도( bps ) 가  1GHz ~ 1.2GHz 정도하는 것들이 나오죠

10년전만 해도 SDRAM 이라고 했는데 언제부턴가 DDR 이  RAM 의 전부가 되었습니다.

여전히 SDRAM 은 생산되고 있습니다만 용량대비 가격이 DDR 급에 비해 2~3 배 비싸죠

DDR 은 수요가 많고 최신 공정으로 생산되어 싸게 공급됩니다.

 

임베디드쪽도 5년전 부터 DDR 을 지원하였으며 지금나오는 칩들은 기본으로 DDR-II 를 지원합니다.

머지않아 DDR-III 를 지원하는 칩들도 나오겠죠.

 

DDR  이란 무엇인가?

DDR 을 이해하려면 먼저 SDRAM을 이해해야 합니다.

그럼 SDRAM 은 무엇인가?

이것 역시 SRAM 을 이해해야 합니다.

음.. 그럼 SRAM 은 무엇인가?

 

  • SRAM

SRAM 은 Static RAM 을 말합니다.

메모리라는 것들은 각 주소에 대해 데이타가 한바이트씩 연결된 것들이죠

데이타 버스의 개수가  10 이며 데이타 버스가 8bit 라면 1KByte 메모리인 거죠

SRAM은 읽기나 쓰기가 즉시 이루어 짐니다.  정말 이름 그대로  Random Access Memory 인거죠

이런 SRAM 으로 32MByte 를 구성하려면 어드레스 버스가 25개나 필요하죠

IC칩이란 것들이 가격에 민감하다보니 핀의 개수가 많아지면 가격이 오르겠죠

기술적으로 칩내부에서 이렇게 많은 라인들이 움직이면 공적이 복잡할뿐 아니라 소형화도 어렵습니다.

이런 이유로 SRAM 은 큰 용량으로는 한계가 있습니다. 

(그림을 추가 하고 싶지만 시간의 압박이 ㅠ.ㅠ )

 

  • SDRAM

SDRAM 은 SRAM의 이런 문제들을 해결(?)하기 위해 , 특히나 가격대 용량의 문제를 해결하기 위해 등장했습니다.

IC칩의 내부가 복잡하게 되면 가격이 올라가므로 새로운 방식을 선택한 것이죠.

SDRAM 의 내부 동작방법에 대해서는 설명하지 않겠습니다.  저도 그런쪽은 전문가가 아니라서..

대충 알고 있는바는 TR 을 구성하면 베이스와 에미터사이에 기생콘덴서가 만들어지는데 이를 이용한것으로

알고 있습니다. (예전에 들은 얘기니 틀려도 이해해 주세요)

어찌됬든 SDRAM은 SRAM 과 다르게 클럭이 공급됩니다.  ( Sync.. Data RAM  )

SDRAM 은 SRAM 처럼 데이타 버스가 있습니다. 하지만 어드레스 버스의 구조가 약간 다릅니다.

주소를 CAS, RAS  로 나누어 전달하게 되는 것이죠

클럭 기준으로 살펴보면

CLK       ----C1-----C2-----C3-----C4------C5----C6------C7------C8------C9-----C10

ADDR       CAS               RAS                             

DATA                                                                              D1        D2       D3        D4

 

SDRAM 의 클럭은 166MHz 까지 생산되었지만 지금은 133Mhz 가 일반적이죠

주소가 2번에 나누어 전달되며 심지어 주소를 주소 데이타를 엑세스하기 위해 최소 7클럭을 소모해야 합니다.

흠 SRAM에 비해 느릴수도 있죠.

이런 SDRAM, DDR 은 버스트 모드라는 것을 지원합니다.

주소한번 주고 나면 4 ~ 32 번 데이타를 엑세스하는 기능을 말합니다. 당연한 선택이죠

문제는 SDRAM 의 클럭속도입니다.

클럭에 동기화 되어 어드레스나 데이타가 전달되니 아트웍 할때는 이런것들을 주의해야 하죠

클럭의 상승에지일때 어드레스나 데이타가 유효한 값을 가지고 있어야 한다는 것이죠

 

여기서 중요한 것을 집고 넘아가죠

클럭이 상승에지일때 데이타가 유효하려면 데이타가 클럭보다 먼저 도착해야 되지 않나요

데이타가 먼저 도착하려면 MCU 와 SDRAM을 연결하는 데이타버스 라인이 클럭보다 짧다면 가능한 일일 겁니다.

라인이 짧다는 것은 저항이 작다는 말과 비슷한 말입니다.

클럭 속도가  300MHz 까지는 동일시 해도 문제는 없다고 판단하고 있습니다.(개인적인 의견)

 

다시한번 상기하면 클럭보다 데이타가 먼저 도착해야 한다면 데이타버스가 클럭보다 길이가 짧아야 한다.

이런 규칙을 지켜야 합니다.  하지만 간단하게 MCU 와 SDRAM 사이에 직렬저항 10~33 옴을 넣어보죠

클럭의 길이가 짧아도 저항값 때문에 데이타 버스보다 느리게 도착합니다.  저항이 힘을 발휘하고 있죠

회로를 설계할때 클럭에 저항을 넣으면 아트웍을 크게 신경쓰지 않아도 SDRAM 에서 데이타를 엑세스하는데

문제가 발생하지 않습니다. 적당한 저항값을 선택하면 되니까요

데이타 버스뿐 아니라 어드레스버스도 동일한 규칙이 적용됩니다 

133MHz 클럭 기준이라면 데이타버스와 어드레스버스를  왠만하면 짧게 연결한 후 그 중 가장 긴 넷트 기준으로

클럭을 연결합니다만 저항을 사이에 연결해 놓으면 다른버스와 비슷한 길이로 연결하면 됩니다.

 

 

DDR 관련 설명은 다음주에 하기로 하죠 ^^