하드웨어
오늘은 DDR 메모리 아트웍에 관한 두번째 글입니다.
저번글에 SDRAM 에 대한 설명을 드렸구요....
- DDR
DDR-I 은 266 이라는 숫자가 제일 적은 숫자입니다.
이값은 클럭의 속도가 아닙니다. 데이타의 속도입니다.
DDR-266 을 해석하면 클럭은 133MHz 이며 데이타 버스의 속도는 266Mbps 입니다.
데이타 버스의 속도라며 어패가 있고 버스내 각 비트의 속도입니다
DDR-II 800 이라는 것은 클럭은 400MHz 이며 데이타의 속도는 800Mbps 라는 것이죠
DDR 을 해석하면 Double Data Rate RAM 을 말합니다.
SDRAM 의 접근방식은 아래와 같습니다 (burst-4)
< > 각각 한클럭 씩 소모합니다. <X> 는 쉬는 시간 ^^
< RAS> < X > <CAS> <X> <X> <D1> <D2> <D3> <D4>
DDR RAM 의 접근방식은 좀 다르죠 (burst-4)
< RAS> < X > <CAS> <X> <X> <X> <D1,D2> <D3,D4>
앞쪽 주소(RAS,CAS) 는 SDRAM 과 비슷하지만 데이타는 한클럭에 2번의 데이타를 엑세스 합니다
이래서 Double Data Rate 라고 말합니다.
전체적으로 볼때 SDRAM 보다 2배 빠르지는 않습니다.
여하튼 데이타버스는 DDR-400 일때 400MHz 로 움직일 수 있습니다.
(데이타가 0xff, 0x00, 0xff, 0x00 일경우는 얄짤없이 400MHz 가 되죠)
본격적으로 아트웍 얘기를 해보죠
DDR 메모리를 이루는 신호선 중에 DQS 란 신호선이 있습니다.
DQ 신호는 데이타버스를 말하고 DQS 는 데이타버스 Strobe 신호선을 말합니다.
쉽게 말하면 데이타의 클럭신호선입니다,.
DQM 이라는 신호선도 있습니다. 데이타버스 Mask 라는 것이죠..
DQS 와 DQM 신호선은 데이타버스 8비트당 하나씩 있습니다.
DQS에 대해 좀 더 깊이 있게 알아야 합니다.
DQS 는 보통 DQS+, DQS- 두개의 신호선으로 이루어져 있으며 Difference 신호선입니다.
이 두선은 각 선의 두께 만큼떨여져 평행하게 움직여야 합니다. 반드시 같이 움직여야 하며 두선의 길이는 거의
오차가 없이 일치해야 합니다. 수 mm 이상 차이가 나지 않게 해야하죠
(DQS 신호선은 때에 따라 DQS+ 신호선만 쓰일수도 있습니다.)
DQS+ 와 DQS - 는 위상차가 180도 나며 이 두선을 스코프로 찍어보면 EYE 형상이 나오는데 이 형상이 뚜렸해야
합니다만 시간의 압박이.. 대충 넘어가죠
가장중요한 것은 DQ0..DQ7 과 DQS, DQM 신호선입니다. 이것들을 DQ 그룹이라고 말합니다.
8비트 DDR 기준으로 칩마다 하나의 그룹이 있겠죠
32비트 버스라면 이런 그룹이 4개 있습니다.
결론적으로 각 DQ 그룹 (DQ0..DQ7, DQS+, DQS-, DQM) 내 각 신호선의 길이차이는 +,- 5mm (DDR2-400 기준)
이내이어야 합니다.
8비트 칩이 4개일때 1번그룹의 평균길이 40mm, 2번그룹은 50mm 이렇게 다른 평균길이가 나올수 있습니다.
모든 그룹별 길이가 같지 않아도 됩니다.
DQS 그룹을 우선적으로 라우팅한 이우 CLK+, CLK-, Address, CAS, RAS, CKE, WE, CS 신호선을
동일한 길이로 맞추시면 됩니다. (이것들은 +,- 10mm 정도 오차범위)
역시나 이들도 칩별로 길이가 틀릴 수 있습니다. 당연히 틀려지겠죠
참 여기서 중요한 것은
클럭신호선도 DQS 와 마찬가지로 CLK+, CLK- 로 이루어져 있으며 같이 평행하게 움직여야 하며 오차도 거의 없어야 합니다.
실제 회로를 그린 후 아트웍을 하다보면 DQ 그룹은 쉽게 아트웍이 됩니다만 다른것들은 브랜치가 발생합니다.
MCU 로 부터 나오는 신호선은 하나인데 DDR 칩은 2개 또는 4개인 경우가 발생하죠 ..
이럴때 각 DDR 칩의 중간에서 T 분기를 합니다.
여의치 않을때 분기없이(아주짧은 분기는 발생) 쭉쭉 연결하여도 됩니다.
중요한것은 MCU 로부터 각칩마다의 길이는 그룹별로 비슷한 길이를 유지하는 것이죠
MCU --- A (RAM)
MCU --- B (RAM)
A , B (RAM) 각각의 길이는 중요하지 않고 MCU 와의 길이가 중요하다는 것입니다.
DDR-II 533 까지는 위와 같은 정도의 룰만 따른다면 어렵지 않습니다
또한 MCU 의 디자인가이드(Design Guide)문서를 보면 친절하게 잘 나와 있습니다.)
DDR-II 800 정도되면 좀더 신경써야 합니다. 하지만 요즘 유행하는 칩들은 빨라야 533 이니 좀더 빠른건
나중에 고민하죠.. intel 에서 나오는 칩들은 디자인가이드를 보면 설명히 잘되어 있으니 참고할만 합니다.
삼성도 요즘은 신경써서 이런부분을 문서로 제공해주고 있더군요..
참고로 DDR 뿐만아니라 USB 2.0 은 400Mbps, PCI-express 는 1.5Gbps (맞나?) 구요..
SATA-1G (1.5Gbps), SATA-2G (2.5Gbps) 이런형태의 버스가 사용되고 있습니다.
SATA-3G 는 6Gbps 라는군요
그까짓거 400Mbps 는 길이만으로 해결 할수 있습니다.
아트웍도 이제는 하드웨어 엔지니어가 맡아야할 시대가 왔습니다.
고속버스를 다루는 곳은 이미 하고 있지만요.. 시뮬레이션도 이제는 필수가 될 듯 합니다. (ㅜ.ㅜ 또 이런것도 배워야 하나)
그림이 빠져 좀 밋밋하지만 ^^ 하드웨어 개발자님들 파이팅