DDR SDRAM (SDR SDRAM, DDR SDRAM, DDR2, DDR3, DDR4 SDRAM) - Terry4055/FPGA_HW GitHub Wiki
-
SDRAM ํน์ง
- ์์คํ ํด๋ญ๊ณผ ๋๊ธฐ๋ ์ ์ถ๋ ฅ ํ๋ก (๋๊ธฐํ I/O)
- Burst Access
- MultiBank
- Command ํ์์ Access(Mode Register์ Programming)
- Pipe-lined Data Path
-
๋น๋๊ธฐ DRAM๊ณผ์ ๋น๊ต
- ๋น๋๊ธฐ DRAM์์ Latency๋ DRAM ์์ฒด์์ ์๋ชจ๋๋ Delay ์ธ์๋, DRAM Controller๊ฐ DRAM์ ํน์ฑ์ System Clock์ ๋๊ธฐํ ์ํค๋๋ฐ ์์๋๋ ์ง์ฐ๋ ํฌํจ๋๋ค. ์ฆ DRAM์ ์์ฒด์ ์ธ ๋์ ์ธ์ ์ ์ด๋ฅผ ์ํ ๋์๊น์ง๋ Latency์ ํฌํจ๋์ด ์๋ ๊ฒ
- SDRAM(๋๊ธฐํ DRAM)์ DRAM๋ด์์์ ๋์๋ ์ต๋ํ ๋ฒ์ค ํด๋ญ์ ๋๊ธฐํํ์ฌ ์ด๋ฃจ์ด์ง๋๋ก ํด์ DRAM Controller์ ์ํ ๋ฒ์คํด๋ญ ๋๊ธฐํ์์ ์์๋๋ ์๊ฐ๊ณผ interleaving control๋ฑ์ ์ถ๊ฐ๋๋ ์๊ฐ๋ค์ ์ ๊ฑฐํ์ฌ, DRAM์ ์๋๋ฅผ ๋ฒ์ค ํด๋ญ์ ์ ์ ๋ฐฐ๋ก ๊ณ ์ ์์ผ ์๋ ๋ฐ ์์คํ ์ค๊ณ ํธ๋ฆฌ์ฑ์ด ์ฌ๋ผ๊ฐ๋ค.
-
SDR SDRAM
- CS#, RAS#, CAS# ๋ฑ์ ์ ์ด ์ ํธ๋ค์ Clock Cycle์ ์์น์ฃ์ง์์ ํ๊บผ๋ฒ์ Control Logic์ผ๋ก ์ ๋ ฅ ๋ฐ์ ํ์ฌ ๋ช ๋ น์ Decoding ํ์ฌ ์ด์ ํด๋นํ๋ ์ ์ด ์ ํธ๋ค์ ์์ฑํ๊ฒ ๋๋ค. Data ์ , ์ถ๋ ฅ ์ญ์ OE#, WE# ์ ํธ์ ์ํด ์ง์ ์ ์ด ๋ฐ์ง ์๊ณ , Control Logic์์ ์์ฑ๋ ์ ํธ์ ์ ์ด๋ฅผ ํตํด ์ด๋ฃจ์ด ์ง๋ค.
- SDRAM ๋์ ํด๋ญ์ 66MHz, 100MHz, 133MHz, 166MHz
- Address ์ ๋ ฅ์ RAS#๊ฐ Enable ๋์์ ๋, ์ ๋ ฅ๋ ๊ฐ์ Row Address๋ก ์ธ์ํ๊ณ , CAS#๊ฐ Enable ๋์์ ๋์ ๊ฐ์ Column Address๋ก ์ธ์ํ์ง๋ง, ๊ฐ ์ ํธ๋ค์ด ํ Clock Cycle ๋์๋ง ์ ํจํ ๊ฐ์ ๊ฐ์ง๋ฉด ๋๋ค๋ ์ ์ด ๋น๋๊ธฐ DRAM๊ณผ ๋น๊ตํ์ ๋ ๋ค๋ฅด๋ค.
- CAS Latency(CL)๋ Read ๋ช ๋ น์ด ์ ์๋ ์์ ๋ถํฐ ์ฒซ๋ฒ์งธ Data๊ฐ ์ถ๋ ฅ ๋ ๋๊น์ง์ Delay๋ฅผ Clock ์๋ก ๋ํ๋ธ ์์น์ด๋ค. ์ฆ Read ๋ช ๋ น์ด n๋ฒ์งธ Clock Edge์์ ์ ๋ ฅ๋๊ณ CL์ด m์ด๋ผ๊ณ ํ๋ฉด, ์ฒซ๋ฒ์งธ Data๋ n+m๋ฒ์งธ Clock Edge์์ ์ถ๋ ฅ ๋๋ค.
-
DDR SDRAM
- Data Rate๋ฅผ SDR์ ๋นํด 2๋ฐฐ๋ก ๋๋ฆฐ ๊ฒ(Clock์ ์์น, ํ๊ฐ ์ฃ์ง์ 2๋ฒ ๋ฐ์ดํฐ ์ ๊ทผ)
- ์ด๋ก ์ ์ผ๋ก ๊ฐ๋จํ์ง๋ง ๋์ ์๋๊ฐ ๋นจ๋ผ์ง์ ๋ฐ๋ผ Data Window๊ฐ ์์์ ธ Noise ๋ง์ง์ด ๊ธ๊ฒฉํ์ค์ด ๋ค์๋ค.
- Clock ์๋๊ฐ ์ฌ๋ผ๊ฐ์ ๋ฐ๋ผ Timing Margin์ด ์ ์ ์ค์ด ๋ ๋ค.
- ์ด ๋๋ฌธ์, Clock ์ ํธ์ ์ ๋ฌ ๊ฒฝ๋ก๋ฅผ Data๊ฐ ์ ๋ฌ๋๋ ๊ฒฝ๋ก์ ๊ฐ์ด ํ๋ค๋ฉด ์ด๋ค Timing Margin์ ์์ฐ์ผ๋ก์จ ์ ํจํ Data window ์๊ฐ์ ๋๋ฆด ์ ์์ ๊ฒ์ด๋ค. ๊ทธ๋์ DDR SDRAM์ Data ์ ์ก์ ์ํ ์ ์ฉ Clock ์ธ Data Strobeํ์ ์ถ๊ฐํ์ฌ Data Timing Window๋ฅผ ํ๋ณดํ๊ฒ ๋๋ค.
- ์ฆ DDR SDRAM์์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ก ํ ๋์ Data Strobe์ ํธ(DQS)๋ ๊ฐ์ด ์ ์กํ๊ณ , Data Read์ Controller ์ธก์์๋ Data Strobe์ ์์น/ํ๊ฐ ์ฃ์ง ๊ธฐ์ค์ผ๋ก Data๋ฅผ ์ ๋ ฅ ๋ฐ๊ฒ ๋๋ ๊ฒ์ด๋ค. Write์์๋ Controller๊ฐ Memory๋ก Data๋ฅผ ๋ณด๋ผ ๋์๋ Data Strobe์ ๋ฐฉํฅ๋ Controller์์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ฐ๋๊ฒ ๋๋ค.
- ์ด์ธ์๋ ๋์ ์ฃผํ์๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ ๋ ฅ ์๋ชจ๋ ๋ฐ ๋ฐ์ด๋๋ ์ฆ๊ฐํ๊ฒ ๋๋๋ฐ ๋์ ์ ์์ LVCMOS33์์ SSTL25๋ก ๋ณ๊ฒฝ
-
DDR2 SDRAM
- DRAM์ด Synchronous ๋์์ผ๋ก ๋ฐ๋ ํ ๋ถํฐ ์ฑ๋ฅ ํฅ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ Clock์ ์ฌ๋ฆฌ๋ ๋ฐฉํฅ์ผ๋ก ์งํ ๋์๋ค.
- DDR2์์๋ DDR์ 2๋ฐฐ Clock ์ฃผํ์๋ฅผ ์ฌ์ฉ, Double Edge Rate๋ฐฉ์ ๊ทธ๋๋ก
- ํ์ง๋ง Cell Array๋ DDR๊ณผ ๊ฐ์ ์๋๋ก ๋์
- DDR2์์๋ ๋น ๋ฅธ ๋์์ ๊ฐ๋ฅํ๊ธฐ ์ํด ODT(On-Die Termination) ๊ธฐ๋ฒ ๋์ , ๊ธฐ์กด์๋ ์ ํธ ์ข ๋จ์ ๋ณด๋ ์์์ ํด๊ฒฐ ํ๋, Motherboard Termination(MBT)๊ธฐ๋ฒ์ ์ฌ์ฉ ํ์๋๋ฐ, DDR2์์ ์ฌ์ฉํ๋ 400MHZ ์ด์์ ๋์ ์ฃผํ์ ๋์ญ์์๋ MBT๋ก Signal Reflection์ ์ ๋๋ก ๊ฐ์ ์ํค์ง ๋ชปํ๋ค. ํนํ ์ฌ๋ฌ๊ฐ์ DRAM Module์ ๊ตฌ๋์, ๋นํ์ฑํ๋ DRAM๋จ์ High-Z ์ํ๊ฐ ๋์ด Bus์ ์ ์ ๋ ์ ํธ์ ๋ฐ์กํ๋ฅผ ๋ง๋ค์ด ๋ด๊ฒ ๋๋ค. ์ด๋ค ๋ฐ์กํ ์ค ์ข ๋จ ์ ํญ์ผ๋ก ๊ฐ๋ ์ฑ๋ถ์ ์ข ๋จ ์ ํญ์์ ํก์๋์ ์ฌ๋ผ์ง์ง๋ง, Active DRAM์ผ๋ก ์ ์ ๋ ๋ฐ์กํ๋ ์๋ Bus ์ ํธ์ ์์ฌ ์ ํธ์ Integrity๋ฅผ ๋จ์ด๋จ๋ฆฌ๋ ์์ธ์ผ๋ก ์์ฉํ๋ค. ๊ทธ๋์ DRAM Die๋ด์ Termination ์ ํญ์ ์ค์นํด ๋นํ์ฑํ๋ DRAM์ผ๋ก๋ถํฐ ๋ฐ์กํ๊ฐ ๋์ค์ง ์๋๋ก ํ ๊ฒ.
- ๋์์ ์ SSTL18 for Low Power
-
DDR3 SDRAM
- ๋ ๋์ ๊ตฌ๋ ์ฃผํ์
- 800 ~ 2133 MT/s
- CL/tRCD/tRP๋ฅผ 15ns์์ 12ns๋ก ๋ ๊ฐ์
- SSTL15 ์ฌ์ฉ
- DDR2 SDRAM๋ณด๋ค Timing Margin์ด ์ค์ด๋ค์๊ธฐ ๋๋ฌธ์ Fly-by ๊ตฌ์กฐ์ Read/Write Leveling, Dynamic On-Die Termination ์ ์ฉ
- Fly-by ๊ตฌ์กฐ๋ DRAM Module์ ๋ค์ ์ฌ์ฉ์ ์ง๋ ฌ ํํ๋ก ์ฐ๊ฒฐ ์ํค๊ณ , ๋น๋ก Skew์ ์ ๋์ ์ธ ์ฐจ์ด๋ T-Branch(DDR2 ๋ฐฉ์)์ ๋นํด ๋์ฑ ์ปค์ง์ง๋ง ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ฉ์ด์ง๋ Chip์ผ ์๋ก Skew๋ ํญ์ delta t๋งํผ ์ฆ๊ฐํ๋ ๋ฐฉํฅ์ด๊ธฐ ๋๋ฌธ์ Skew๋ฅผ ์์ธก ํ์ฌ ์ ์ด ๊ฐ๋ฅํ๋ค.
- Real/Write Leveling์ Fly-by๊ตฌ์กฐ์ ์ํด ์๊ธด Skew๋ ๊ฒฐ๊ตญ Clock์ ํธ์ Strobe ์ ํธ ์ฌ์ด์ ๋ฐ์ํ Skew์ด๊ธฐ ๋๋ฌธ์ ๊ฐ DRAM ๋ชจ๋ ๋ณ Strobe์ ํธ์ ๋ํด Delay๋ฅผ ์ฃผ์ด Skew๋ฅผ ์ค์ผ ์ ์์ ๊ฒ ์ด๋ค. Strobe๊ฐ Delay์๊ฐ์ Calibration์ ํตํด ์ ํด์ง๊ฒ ๋๋ค. ์ด๋ฐ ์ผ๋ จ์ Calibration ๋์์ Read ๋์๊ณผ Write ๋์ ๊ฐ๊ฐ์ ๋ํด ํด์ฃผ๊ฒ ๋๋๋ฐ ์ด๋ฅผ Read Leveling / Writing Leveling์ด๋ผ๊ณ ํ๋ค. ์ด ๋ ๋ฒจ๋ง ๋์์ ์์คํ ์ด๋์ ๊ณผ์ ์์ Memory Controller๊ฐ Calibration์ฉ Data Pattern์ ์ด์ฉํ์ฌ ์ํ ํ๊ฒ ๋๊ณ , ๊ฐ๊ฐ์ ํ์ด๋ฐ ์ ๋ณด๋ DDR3์ ์๋ก ์ถ๊ฐ ๋๋ Multipurpose Register(MPR)์ ์ ์ฅ๋์ด ์ด์ฉ ๋๋ค.
- Dynamic On-Die Termination : DRAM์ Read๋ Write ๋์ ๋์ ์์ฐ๋ Memory ๋ชจ๋๊ณผ Low Impedance Access ์ค์ธ ๋ชจ๋์ High-Impedance๋ฅผ ์ ์งํ๋ ๊ฒ์ด ๋ฐ์กํ ์ธก๋ฉด์์ ์ข๋ค(For Signal Integrity). ๋์ ์กฐ๊ฑด์ ๋ง๊ฒ Termination ์ ํญ ๊ฐ์ ๋ฅ๋์ ์ผ๋ก ์กฐ์ ํจ์ผ๋ก์จ SI๋ฅผ ๋์ฑ ํ๋ณด ํ๊ณ ์ ํ๋ ๊ฒ์ด Dynamic ODT๋ค. DDR3์ ์ฑ์ฉ๋ Dynamic ODT๋ Write ๋์ ์ค์ธ ๋ชจ๋์ Termination Impedance ๊ฐ์ ๋์ฌ์ Signal Integrity๋ฅผ ๋์ด๋๋ก ํ์ฌ, DDR2์ ๋นํด ๊ณ ์ ๋์์ ๊ฐ๋ฅ์ผ ํ๋ค.
- ZQ Calibration : Dynamic ODT๋ DRAM ๋ด๋ถ Termination ์ ํญ ๊ฐ์ ๋ฐ๊พธ์ด, DRAM ๋ชจ๋ ์ฌ์ด์ ์ ํธ ๋ฐ์ฌ๋ฅผ ์๋ฐฉํ์ง๋ง, ZQ Calibration์ DRAM Controller์ DRAM ๊ฐ์ ์ํผ๋์ค ๋ถ์ ํฉ ๊ฐ์๋ฅผ ์ํ ๊ธฐ๋ฅ์ด๋ค(DDR2์ OCDํ๋ก์ ๊ฐ์ ๊ธฐ๋ฅ). DDR2์์๋ ZQ Calibration์ ์ํด OCDํ๋ก๊ฐ ๋ฐ๋ก ์๊ณ , ODT ํํธ๊ฐ ๋ณ๋๋ก ์์ง๋ง DDR3 ์์๋ DQ Driver ์ชฝ์ Merged Driver ๊ตฌ์กฐ๋ก ZQ ์กฐ์ ๊ณผ, DQ์ ODT ๊ธฐ๋ฅ์ ๊ฐ์ด ์ ๊ณต ํ๋ค(๋ถํผ์ํ ์บํจ์ํด์ค ์ค์ผ ์ ์๊ณ , ์ ์กฐ๋จ๊ฐ ํ๋ฝ, ๋๋ฐ์ด์ค ์ ๋ขฐ์ฑ ์์น).
-
DDR4 SDRAM
- SSTL12
- 2133 ~ 3200MT/s
- ๋ฑ ํฌ ๊ทธ๋ฃน Address ์ถ๊ฐ(ํฐ ์ฉ๋์ ์ํด, BG[n:0] ํ)
- DBI(Data Bus Inversion) ํ์ ์๋น๋ฅผ ์ค์ด๊ธฐ ์ํด!
- Logic Low -> High๋ ์๊ด ์์ง๋ง, Logic High -> Low๋ ๋ฐ์ดํฐ ๊ฐฏ์๊ฐ ๋ง์ผ๋ฉด ์๋น์ ๋ฅ๊ฐ ๋์ด ๋๋ค. vDDQ์ชฝ ์ ๋ฅ๋ฅผ ์ค์ด๊ธฐ ์ํด DQ ๋๋ผ์ด๋ฒ๋ค์ High->Low ์ค์์นญ ๋์์ ์ต์ํ
- CRC(Cyclic Redundancy Check)
- CA Parity ๊ธฐ๋ฅ ์ถ๊ฐ(PAR ํ) : ์ ํธ ๋ฌด๊ฒฐ์ฑ ํฅ์ ๋ฐ ๋ฐ์ดํฐ ์ ์ก/์์ธ์ค์ ์์ ์ฑ์ ํฅ์!