DDR의 타이밍은 종류가 너무나 많지만,
대부분의 메모리 컨트롤러에서는 약 10여개의 타이밍만 설정해 주면 동작하는데 무리가 없다.
이러한 10여개의 타이밍은 DRAM의 속성을 참조하여 JEDEC spec에 정의된 시간값을 이용해 계산해 낼 수 있다.
계산에 필요한 DRAM의 속성은 대략 아래와 같다.
1. CAS 값
2. Maximum Frequency
3. Bank bit
4. Row, Column bit
5. Size(Mbit 단위로)
추가적으로 현재 사용할 DRAM의 클럭도 필요하다.
JEDEC기준으로 예를 들면...
*RAS의 경우 45ns가 고정 min값이다.
만약 tRAS 가 cycle단위로 기록되어야 한다면, 현재 사용하는 클럭으로 45ns를 나누어 필요한 cycle을 넣는다.
400Mhz를 사용한다고 했을때, 1cycle이 2.5ns 이므로 tRCD = 45/2.5 = 18므로 18cycle을 넣어주면된다.
1. RAS같이 고정적인 값이 있는 반면 RFC같이 DRAM의 size와 관계가 있는 값이 있다.
RFC의 경우 256Mbit일경우 75ns, 512Mbit일경우 105ns이다.
2. RC 같은 경우 maximum_clock에 따라 값이 나뉘어 진다.
3. RRD 같은 경우는 8bit data dram의 경우 7.5, 16bit data dram의 경우 10이다.
4. RCD 같은 경우는 cas * maximum_clock으로 계산된다.
이러한 식으로 컨트롤러가 원하는 필드를 채워 나가면 DRAM은 문제없이 동작할 것이다.
DDR2/DDR3의 경우 ODT, ZQ calibration(ZQ저항)등의 추가적인 요소가 있긴 하지만, 해당부분은 controller 스펙에 나와있거나
하드웨어의 임피던스나 여러 구성에 따라 달라지므로 주의하여 설정하도록 한다.
참조 : http://codenakseo.egloos.com/m/4538142
'[메모리]' 카테고리의 다른 글
DDR3와 DDR4의 spec 비교 (JEDEC 기준) (1) | 2018.05.09 |
---|---|
CFI(Common Flash Interface)란? (0) | 2015.12.02 |
DDR에서 ODT 언제 사용하는게 좋을까..? (0) | 2014.09.24 |
[SDR SDRAM controller] (0) | 2014.03.11 |
플래시 메모리의 개요 및 개요 (0) | 2013.06.26 |