모든 이야기

DRAM 저속 동작에서 DLL을 껐을 때 잃는 timing 보정

DRAM의 clock을 충분히 낮추면 빠른 동작을 위한 DLL도 꺼도 될 것 같다. 실제로 DDR4에는 DLL-off 모드가 있다. 그런데 저속이니 timing이 모두 넉넉해진다고 생각하면 읽기 데이터가 controller의 어느 clock 구간에 도착하는지 놓칠 수 있다. 이 mode의 핵심은 속도 하락보다 시간 기준이 달라지는 데 있다.

DLL은 내부 출력 strobe를 외부 clock의 기준에 맞추는 역할을 한다. 켜진 상태에서는 CK와 읽기 DQS의 관계를 규정된 작은 오차 범위로 다룬다. 꺼진 상태에서도 DQS를 기준으로 DQ를 받는 source-synchronous 전달은 가능하지만, DQS가 CK에 대해 도착하는 위치는 다른 방식으로 해석해야 한다.

Alliance DDR4 데이터시트 30쪽 DLL-off Mode는 DLL-off가 DQS와 CK의 관계에 영향을 주고 DQS와 DQ 사이의 관계에는 같은 변화를 주지 않는다고 구분한다. 이 판본은 DLL-off의 tDQSCK 값을 정의하지 않는다고도 명시한다. 따라서 DLL-on의 작은 CK 대비 오차를 그대로 가져와 capture clock을 고정하면 안 된다.

cycle 수와 도착 위치를 분리하기

문서에서 DLL-off에 요구되는 CL과 CWL 지원값은 각각 10과 9다. 같은 문서 AC timing의 DLL-off clock period 범위는 8~20ns다. 이는 해당 문서의 조건이며 다른 제품이나 세대의 일반 규칙으로 확장할 수 없다.

설명용으로 그 범위 안의 tCK=10ns, AL=0, CL=10을 놓자. DLL-on 방식의 익숙한 계산은 READ 뒤 100ns를 데이터 위치의 기준으로 삼는다. DLL-off 그림은 CK 기준을 AL+CL-1, 즉 9cycle 뒤에 두고 거기에 별도의 tDQSCK(DLL-off)를 붙여 DQS 위치를 표현한다. 90ns라는 숫자만 보고 10ns 빨라졌다고 결론 내릴 수 없다. 뒤에 붙는 clock-to-strobe 관계가 DLL-on과 같지 않기 때문이다.

이 차이는 지연 두 개로 표현할 수 있다. 첫째는 command에서 내부 latency counter가 만드는 기준까지의 시간이다. 둘째는 그 기준과 실제 출력 DQS 사이의 위치다. DQ capture에는 DQS-DQ 관계를 사용하고, capture한 데이터를 controller의 내부 clock domain으로 넘길 때는 도착 구간과 domain crossing을 처리해야 한다.

데이터 eye가 남아 있어도 controller 연결은 어려울 수 있다

DQS와 DQ의 상대 관계가 유지된다는 것은 데이터 sampling에 쓸 국소적인 기준이 있다는 뜻이다. 그것만으로 DQS가 controller의 예상 cycle 안에 항상 들어온다는 뜻은 아니다. 수신기가 DQS로 데이터를 먼저 포착하고 내부 처리 시간선에 옮기는 구조인지, CK에 묶인 고정 위치만 가정하는지에 따라 지원 가능성이 달라진다.

저속화는 한 bit의 시간 폭을 늘려 일부 setup·hold 여유를 키울 수 있다. 그러나 mode 전환을 이해하지 못한 controller의 counter나 FIFO 경계를 자동으로 고쳐 주지는 않는다. 오류가 날 때 DQ eye만 넓게 보인다고 interface 전체가 맞았다고 판단하면 안 되는 이유다.

ODT와 전환 절차까지 같은 mode로 맞추기

이 문서는 DLL-off에서 direct ODT와 dynamic ODT를 지원하지 않는다고 설명하고 관련 mode register 및 ODT 입력 조건을 요구한다. DLL만 끄고 나머지 고속 설정을 그대로 유지하는 것은 완결된 전환이 아니다. 종단 전략을 바꾸면 신호 반사와 amplitude도 다시 확인해야 한다.

정상 mode로 돌아올 때는 DLL enable과 reset 뒤 lock 시간을 만족해야 한다. 저속 동작 중에는 refresh의 절대 시간 요구도 계속 남는다. clock이 느려지므로 동일 cycle 개수의 refresh 정책이 같은 μs 간격을 유지하는지 재계산해야 한다. mode 전환을 전력 제어 bit 하나로 처리하면 이 조건들이 누락된다.

DLL-off를 평가할 때는 해당 제품의 지원 clock 범위, CL/CWL, 출력 DQS의 시간 기준, controller 수신 구조, ODT와 재진입 절차를 맞춰 확인하자. 낮은 frequency라는 조건은 필요하지만 충분하지 않다. DLL-off의 실용성은 느린 전송을 받을 수 있는지가 아니라, 달라진 strobe 도착 기준을 시스템이 끝까지 처리할 수 있는지로 판단해야 한다.

DRAM 저속 동작에서 DLL을 껐을 때 잃는 timing 보정 · ariser