DDR2 OCD 설정

OCD 는 DDR2 이상에서 추가된 기능으로 off chip driver 의 약자입니다.
간단히 기능부터 설명 하자면, DRAM 내부의 출력측 드라이버 임피던스를 조절 해
신호의 전압을 조절 하는 기능 입니다.

그럼 이 OCD 로 출력측 전압을 조절하여 무슨 성능을 기대 할 수 있을까요?
OCD 로 DQS 와 DQS# 의 출력을 조절 할 수 있으며, 이는 두 신호의 교차점 레벨을 결정 짓게 됩니다.
만약 두 신호가 동일한 출력세기를 갖는다면  두 신호의 교차점은 VREF 와 일치 하겠고,
출력의 세가가 다르면 한쪽으로 치웃치게 됩니다.

메모리 컨트롤러는 이 DQS ,DQS# 의 신호가 교차되는 클럭에 동기화된 DQ 신호를 데이터로 래치하게 되는데
OCD 설정을 잘못해 출력의 세기가 달라지게 되면 결국 클럭 타이밍이 틀어져 DQ 를 래치한 데이터가
틀린 값이 될 수 있는 것이지요.

DQS , DQS# 의 신호가 교차되는 순간을 생각 해보면, 두 신호가 도일하다고 볼때 신호의 레벨이 변경되는 
순간부터 교차되는 순간까지의 시간이 가장 짧게 됩니다.
하지만 서로 신호가 다르면, 당연히 교차되는 순간까지의 시간이 길어지게 되겠지요.
결과적으로 DQ 의 신호를 래치해야 하는 타이밍과의 마진이 줄어들게 됩니다.

세팅은 EMRS 레지스터를 통해 가능 하지만
안타깝게도 OCD 의 세팅이 생각보다 까다로울 것 같은데요.
DDR2 에 직접 임피던스를 측정하는 기능이 없기 때문에 계측기를 이용해 일일이 타이밍을 측정해가며, OCD 값을
변경해 보는 수 밖에 없어 보입니다.