E0593E20의 문서를 보면, Mother Board의 Termination은 signal refrection을 줄이기 위해서 추가한 저항이라고 나와 있다.
하지만 Embedded 쪽에서는 이 Termination이 필요성이 있는지 부터가 의문이 들었으며,
Embedded에서는 사용설정이 필요없을 것 같지만, 왜 사용하는지 정확히 파악하기 위해서
사용되어지는 용어와 구성요소들을 이해하기 위해서 비교하면서 적어본다.
일단 간단히 용어와 구성을 이해하고 넘어가자.
기본설명은 Module RAM 기반으로 하며, Embedded 의 구성과는 다소다르다.
1.1 Module RAM의 Topology
Module RAM과 Embedded의 Topology 구성은 다르며, 각각의 구성되는 부분을 알아보자.
- Module RAM의 기본구성 방법
- T-Branch : Bus의 길이가 같으며, Latency가 동일하다
- fly-by Topology : Bus의 길이가 뒤로 갈수록 길어지기에, Latency가 달라진다.
Module RAM의 구성은 위와 같이 T-Branch와 fly-by Topology 방식이다.
- Embedded 의 구성 (AM437x의 8bit 모드)
일반적인 Embedded SOC 32bit Bus를 가진 경우는 Memory Controller부분에 관한 회로설계를 각각 확인해봐야겠지만,
AM437x인 경우에는 fly-by Topology 방식으로 연결이 아래와 같이 되고 있으며,
EMIF에서는 32bit 이고 각 개별 RAM 마다 8bit의 모드로 연결이 되어 구성이 된다.
Data Bus로 4개의 DRAM개까지 다는 것이다.
물론 SOC에 따라 Memory의 8bit 모드도 지원이 되지 않을 수도 있어 16bit 모드로 2개 or 32bit로 단일로 구성할수도 있다.
DM8127인 경우 fly-by Topology 방식과 동일하지만 아래의 EMIF가 2개까지 확장이 가능
1.2 Leveling 이란
fly-by topology로 구성할 경우 CMD/ADD/CLK과 DQ/DM/QS사이 생기는 Timing 오차로 생기는 문제를 없애고자 함이다.
이런 신호전달지연과 같이 이 Timing 을 보정하여 극복하려는 문제이다.
이런 신호전달지연과 같이 이 Timing 을 보정하여 극복하려는 문제이다.
Read Leveling 은 System calibration 작업에 사용이되며, 즉 DDR3이 predefined data pattern, micron일 경우, 0,1,0,1 or 0,1,0,1,0,1,0,1,0,1를 연속적으로 보내면, Controller는 DQ/DQS Capture Timing을 MPR을 사용하여 조절한다.
Writing Leveling은 DDR3는 변형된 CLK-DQS 보내고, Contoller는 CMD,ADD,CLK신호가 DDR3에 동시에 DQ, DM,DQS 신호 함께 도착하도록 이 Timing을 정보를 이용하여 조절한다.
- DM8127 or DM8148
http://processors.wiki.ti.com/index.php/TI814x-DDR3-Init-U-Boot
http://electronics.stackexchange.com/questions/86287/what-is-ddr-software-leveling
관련 Register DDRPHYCR (DDR PHY Control Register)
- RDEYE_LVL_DIS
- GATE_LVL_DIS
- WR_LVL_DIS
- AM437x 의 설정
- EMIF4D_READ_WRITE_LEVELING_RAMP_WINDOW
- EMIF4D_READ_WRITE_LEVELING_RAMP_CTRL
- EMIF4D_READ_WRITE_LEVELING_CTRL
- EMIF4D_STS Register
*HW Leveling 과 SW Leveling 의 차이는 SOC의 지원여부 및 설정되는 것이겠다.
1.3 MBT와 ODT (On Die Termination)
SOC는 각각의 DRAM과 통신하는 동안 신호의 반향 (Signal Reflection)을 막아주기 위해 Termination이 필요하다.
DRAM의 Termination의 방법은 아래와 같이 두가지 방법이 존재하다.
- MBT : 외부에 Ground 함께 저항 (pull-down)을 두고 연결하여 Termination
- ODT : 내부에서 Hi-Z로 Termination으로 종료하는 것 같다
- ODT의 기본구성
하지만 DDR2와 DDR3는 구조가 다르지만 구현되는 구조는 동일한 것 같다.
https://en.wikipedia.org/wiki/On-die_termination#References.4F (Samsung)
- ODT Resistor
동작방식은 최신기술인 Dynamic ODT인 경우 MRS Command 없이, ODT pin 값이 변경이 이 설정된 값으로 자동으로 변경이 된다. (ex. 240R/4 이는 MR Register 설정 가능 )
RTT= RZQ / 2,4,6,8 or 12
그리고 참고로, 이 RTT가 DQ,DM,DQS,DQS#, and TDQS,TDQS 영향이 끼친다고 한다고
하지만, 현재봐서는 Embeded에서 크게 사용되지 않을 것 같다.
- Output Driver Impedance (Ron)
Rtt는 Writing 시에만,이용이 되지만, Ron만 사용하는 것이 아닌지? 지금 혼동이 됨.
Ron은 PVT (Process , Voltage, Temperature) 증가시킨다고 함.
2. Embeded 설정 필요성
Micron User Manual 문서와 Samsung 관련 및 엘피다 문서를 읽다보면 ODT 기능 및
Termination 저항 그리고, Writing 및 Reading Leveling 모두 Module RAM에만 종속이 되어있는 기술 같이 설명 되어있다.
그리고, 생각을 해보면, 그럴 것 같다. Embedded 쪽에서는 DDR을 8bit로 버스로 4개 혹은 16bit로 2개 사용하여, Waiting for access 및 대기 모드 상태 일때가 없고, 위와 같은 Termination 저항의 필요성 및 ODT가 필요할지 모르겠다. fly-by topology 문제도 없으니,
구지 Leveling 까지로 Timing 조절을 할 필요가 없을 것 같다.
아직 정확한 설정필요성의 여부를 판단하지 못하겠다. EVM에서도 역시 사용하지 않는 것 같다. TI의 DDR 관련 문서가 없고, 회로도에서 Rtt & Ron 저항을 발견을 못했다.
다만 설정에 Dynmic ODT사용을 하지 않으며 고정으로 저항값을 변경하여 설정했다 (Rtt)
http://www.micron.com/parts/dram/ddr3-sdram/mt41k512m8rh-125
* New Features of DDR3 SDRAM :E1503E10.pdf
* New Features of DDR3 SDRAM :E1503E10.pdf
* New Function of DDR2 SDRAM On Die Termination (ODT) : E0593E20.pdf
* MT41K512M8RH Datasheet (ODT Characteristics)
https://en.wikipedia.org/wiki/On-die_termination#Why_is_on-die_termination_needed.3F
참조문서
기타 참조사이트
http://www.easytv.co.kr/93 (DDR3 ODT)
http://www.easytv.co.kr/114 (DDR3 ZQ Calcaulation)
http://www.easytv.co.kr/115 (DDR3 DYN ODT)
http://www.easytv.co.kr/120 (DDR3 Prefetch
https://en.wikipedia.org/wiki/On-die_termination
https://en.wikipedia.org/wiki/On-die_termination#Why_is_on-die_termination_needed.3F
- DQ : (Data bus: Data I/O) 4bit or 8bit 조정가능
- DM, (Input data mask: I ) : Write data를 위한 input mask
- DQS, DQS# :(Data strobe: I/O): Data 신호 (Edge-aligned with read data,Center-aligned to write data)
- TDQS, TDQS# (Termination data strobe: O ) : 현재 EVM에서 역시 사용안함.
- DDR3 구조
2. Embeded 설정 필요성
Micron User Manual 문서와 Samsung 관련 및 엘피다 문서를 읽다보면 ODT 기능 및
Termination 저항 그리고, Writing 및 Reading Leveling 모두 Module RAM에만 종속이 되어있는 기술 같이 설명 되어있다.
그리고, 생각을 해보면, 그럴 것 같다. Embedded 쪽에서는 DDR을 8bit로 버스로 4개 혹은 16bit로 2개 사용하여, Waiting for access 및 대기 모드 상태 일때가 없고, 위와 같은 Termination 저항의 필요성 및 ODT가 필요할지 모르겠다. fly-by topology 문제도 없으니,
구지 Leveling 까지로 Timing 조절을 할 필요가 없을 것 같다.
아직 정확한 설정필요성의 여부를 판단하지 못하겠다. EVM에서도 역시 사용하지 않는 것 같다. TI의 DDR 관련 문서가 없고, 회로도에서 Rtt & Ron 저항을 발견을 못했다.
다만 설정에 Dynmic ODT사용을 하지 않으며 고정으로 저항값을 변경하여 설정했다 (Rtt)
* New Features of DDR3 SDRAM :E1503E10.pdf
* New Features of DDR3 SDRAM :E1503E10.pdf
* New Function of DDR2 SDRAM On Die Termination (ODT) : E0593E20.pdf
* MT41K512M8RH Datasheet (ODT Characteristics)
https://en.wikipedia.org/wiki/On-die_termination#Why_is_on-die_termination_needed.3F
참조문서
기타 참조사이트
http://www.easytv.co.kr/93 (DDR3 ODT)
http://www.easytv.co.kr/114 (DDR3 ZQ Calcaulation)
http://www.easytv.co.kr/115 (DDR3 DYN ODT)
http://www.easytv.co.kr/120 (DDR3 Prefetch
https://en.wikipedia.org/wiki/On-die_termination
https://en.wikipedia.org/wiki/On-die_termination#Why_is_on-die_termination_needed.3F
댓글 없음 :
댓글 쓰기