Memory Controller
๊ฐ์
Memory Controller๋ CPU์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(DRAM) ์ฌ์ด์์ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ด๋ฆฌํ๋ ํต์ฌ ๋์งํธ ํ๋ก์ด๋ค. DRAM์ ์ฃผ๊ธฐ์ ์ธ ๋ฆฌํ๋ ์๊ฐ ํ์ํ๊ณ , ๋ณต์กํ ํ์ด๋ฐ ์ ์ฝ(tRCD, tCAS, tRP ๋ฑ)์ ๊ฐ์ง๋ฏ๋ก CPU๊ฐ ์ง์ ์ ๊ทผํ ์ ์๋ค. Memory Controller๋ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ bank/row/column์ผ๋ก ํด์ํ๊ณ ๋ช ๋ น ์์ฑ๊ณผ ์ค์ผ์ค๋ง์ ๋ด๋นํ์ฌ, CPU์๋ ๋จ์ํ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค.
ํ๋ ์์คํ ์์ Memory Controller์ ์ค๊ณ๋ ์์คํ ์ง์ฐ ์๊ฐ, ๋์ญํญ, ์ ๋ ฅ ์๋น์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ค. Intel์ 2008๋ Nehalem๋ถํฐ, AMD๋ 2003๋ K8๋ถํฐ Memory Controller๋ฅผ CPU ๋ค์ด ๋ด๋ถ์ ํตํฉ(Integrated Memory Controller, IMC)ํ์์ผ๋ฉฐ, ์ด๋ ์ง์ฐ ์๊ฐ๊ณผ ๋์ญํญ์ ํฌ๊ฒ ๊ฐ์ ํ๋ค.
ํต์ฌ ๊ฐ๋
Memory Controller ์ํคํ ์ฒ
Memory Controller๋ ๋ค์๊ณผ ๊ฐ์ ํต์ฌ ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋๋ค:
| ์ปดํฌ๋ํธ | ๊ธฐ๋ฅ |
|---|---|
| Request Scheduler | ๋๊ธฐ ์ค์ธ ์์ฒญ์ ๋ฒํผ๋งํ๊ณ ์ต์ ์ ์์๋ก ์ฌ์ ๋ ฌ |
| Refresh Controller | ์จ๋์ ์ธ๋ ์กฐ๊ฑด์ ๋ง์ถฐ ๋ฆฌํ๋ ์ ๋ช ๋ น์ ์ค์ผ์ค๋ง |
| Row Buffer Manager | ์ด ๋ฒํผ(Sense Amplifiers)์ ์ํ๋ฅผ ๊ด๋ฆฌ |
| ECC Engine | ์ค๋ฅ ์ ์ ์ฝ๋ ์์ฑ/๊ฒ์ฆ (SECDED) |
| Command/Address Decoder | CPU ์์ฒญ์ DRAM ๋ช ๋ น(ACT, RD, WR, PRE)์ผ๋ก ๋ณํ |
| Data Path / PHY | CPU์ DRAM ์ฌ์ด์ ๋ฌผ๋ฆฌ์ ์ ํธ ์ธํฐํ์ด์ค |
| Power Management Unit | Self-refresh, CKE, ์ ์/์ฃผํ์ ๊ด๋ฆฌ |
DRAM ํ์ด๋ฐ ํ๋ผ๋ฏธํฐ
Memory Controller๊ฐ ๊ด๋ฆฌํ๋ ํต์ฌ ํ์ด๋ฐ ํ๋ผ๋ฏธํฐ:
| ํ๋ผ๋ฏธํฐ | ์ค๋ช | ๋น๊ณ |
|---|---|---|
| tCAS (CL) | READ ํ ์ฒซ ๋ฐ์ดํฐ๊ฐ ๋์ค๊ธฐ๊น์ง์ ์ง์ฐ | ๋ชจ๋ ํ๋กํ์ผ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง |
| tRCD | ACT ํ RD/WR ๊ฐ๋ฅ๊น์ง์ ์ง์ฐ | ๋ชจ๋ ํ๋กํ์ผ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง |
| tRP | PRE ํ ์ ํ ํ์ฑํ๊น์ง์ ์ง์ฐ | ๋ชจ๋ ํ๋กํ์ผ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง |
| tRC | ๊ฐ์ ํ์ ๋ค์ ์ด๊ธฐ๊น์ง์ ์ ์ฒด ์ฃผ๊ธฐ | ์ผ๋ฐ์ ์ผ๋ก tRAS + tRP |
| tRAS | ํ์ ์ต์๋ก ์ด์ด ๋์ด์ผ ํ๋ ์๊ฐ | tRC๋ฅผ ์ด๋ฃจ๋ ํต์ฌ ์ ์ฝ |
| tREFI | ํ๊ท refresh ๊ฐ๊ฒฉ | DDR5๋ 85ยฐC ์ดํ 32ms, 85~95ยฐC 16ms |
| tRFC | refresh ๋ช ๋ น ์ํ ์๊ฐ | density์ ๋ฐ๋ผ ๋ฌ๋ผ์ง |
์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
Memory Controller์ ์์ฒญ ์ค์ผ์ค๋ฌ๋ DRAM ํจ์จ์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํด ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค:
- FCFS (First-Come First-Served): ๊ฐ์ฅ ๋จ์ํ ๋ฐฉ์. ์์ฒญ ์์๋๋ก ์ฒ๋ฆฌํ๋ DRAM ํจ์จ์ด ๋ฎ๋ค.
- FR-FCFS (First-Ready FCFS): Row-buffer hit์ธ ์์ฒญ์ ์ฐ์ ์ฒ๋ฆฌํ์ฌ ์ง์ฐ์ ์ต์ํํ๋ค. ํ๋ ์ปจํธ๋กค๋ฌ์ ๋ํ ๋ฐฉ์.
- Write-Back Scheduling: ์ฐ๊ธฐ ์์ฒญ์ ๋ฐฐ์น ์ฒ๋ฆฌํ์ฌ ๋ฒ์ค ๊ฒฝํฉ์ ์ค์ธ๋ค.
- Per-Bank Scheduling: ๊ฐ ์ํ(bank)๋ณ๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์ค์ผ์ค๋งํ์ฌ ์ํ ๊ฐ ๋ณ๋ ฌ์ฑ์ ๊ทน๋ํํ๋ค.
์๋ฒ์ GPU ๊ฐ์๊ธฐ์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ ๋์์ฑ์ด ๋์ ์์คํ ์์๋ ๋จ์ํ ํ๊ท ์ง์ฐ๋ง ๋ฎ์ถ๋ ๊ฒ์ด ์๋๋ผ, ์ฝ๊ธฐ ์ฐ์ ์์์ QoS๋ฅผ ํจ๊ป ๊ด๋ฆฌํด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด ์ฝ๊ธฐ ์ง์ฐ์ ๋ฏผ๊ฐํ CPU ์ฝ์ด ์์ฒญ๊ณผ ๋์ญํญ ์ง์ฝ์ ์ธ DMA ์์ฒญ์ด ๋์์ ๋ค์ด์ค๋ฉด, ์ปจํธ๋กค๋ฌ๋ read draining๊ณผ write draining ๊ตฌ๊ฐ์ ๋๋๊ณ starvation ๋ฐฉ์ง์ฉ age counter๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ค.
DDR5 ์ดํ์๋ bank group, ์๋ธ์ฑ๋, on-die ECC, PMIC ํน์ฑ์ด ํจ๊ป ์ฝํ๋ฏ๋ก ์ค์ผ์ค๋ฌ๊ฐ ๊ณ ๋ คํด์ผ ํ ์ ์ฝ๋ ๋์ด๋ฌ๋ค. ๊ฐ์ rank ์์์๋ bank group ๊ฐ ์ ํ ํ๋ํฐ์ refresh ํ์ด๋ฐ์ด ๋ค๋ฅด๊ฒ ์ฒด๊ฐ๋ ์ ์์ด, ์ฃผ์ ์ธํฐ๋ฆฌ๋น ์ ์ฑ ๊ณผ ๋ช ๋ น ๋ฐํ ์ ์ฑ ์ ํจ๊ป ์ต์ ํํด์ผ ์ค์ ๋์ญํญ์ด ๋์จ๋ค.
Row Buffer ์ ์ฑ
| ์ ์ฑ | ๋์ | ์ฅ์ | ๋จ์ |
|---|---|---|---|
| Open-Page | ์ ๊ทผ ํ ํ์ ์ด์ด๋์ | ๊ณต๊ฐ ์ง์ญ์ฑ(spatial locality)์ ํจ๊ณผ์ | ํ ์ถฉ๋ ์ precharge ์ค๋ฒํค๋ |
| Closed-Page | ์ ๊ทผ ์ฆ์ precharge | ์์ ์ ๊ทผ์ ํจ๊ณผ์ | ํ ํ์ฑํ ์๋์ง ๋ญ๋น |
| Adaptive | ์ ๊ทผ ํจํด์ ๋ฐ๋ผ ๋์ ์ ํ | ์ต์ ์ ๊ท ํ | ๊ตฌํ ๋ณต์ก๋ ๋์ |
๋ฆฌํ๋ ์ ๊ด๋ฆฌ
DRAM ์ ์ ์ปคํจ์ํฐ์ ์ ์ฅ๋ ์ ํ๊ฐ ์๊ฐ์ ๋ฐ๋ผ ๋์ค๋๋ฏ๋ก, ์ปจํธ๋กค๋ฌ๊ฐ ์จ๋ ์กฐ๊ฑด์ ๋ง๋ ์ฃผ๊ธฐ๋ก ๋ฆฌํ๋ ์ ๋ช ๋ น์ ๋ฐํํด์ผ ํ๋ค:
- All-Bank Refresh (REFab): ๋ชจ๋ ์ํ์ ๋์์ ๋ฆฌํ๋ ์. ํ์ค ๋ฐฉ์.
- Same-Bank Refresh (REFsb): DDR5 ๊ธฐ๋ฅ. ๊ฐ๋ณ ์ํ๋ง ๋ฆฌํ๋ ์ํ์ฌ ๋ค๋ฅธ ์ํ์ ์๋น์ค๋ฅผ ์ ์ง.
- Temperature-Compensated Refresh: ์ ์จ ํ๊ฒฝ์์ ๋ฆฌํ๋ ์ ๋น๋๋ฅผ ๊ฐ์์์ผ ์ ๋ ฅ ์ ์ฝ.
- Targeted Row Refresh (TRR): RowHammer ๊ณต๊ฒฉ์ ์ํํ๊ธฐ ์ํด ์ธ์ ํ์ ๋ฆฌํ๋ ์.
๋น๊ต/๋ถ์
DDR ์ธ๋๋ณ Memory Controller ๋น๊ต
| ํญ๋ชฉ | DDR3 | DDR4 | DDR5 |
|---|---|---|---|
| ์ ์ | 1.5V | 1.2V | 1.1V |
| ์ต๋ ์ ์ก ์๋ | 2133 MT/s | 3200 MT/s | 8800 MT/s |
| ํ๋ฆฌํ์น | 8n | 8n | 16n |
| Bank Groups | โ | 4 | 8 |
| ์ต๋ DIMM ์ฉ๋ | 8GB | 64GB | 512GB |
| ๋ฒ์คํธ ๊ธธ์ด | 8 | 8 | 16 (BL16) |
| On-die ECC | ์์ | ์์ | ํ์ |
| ์๋ธ์ฑ๋ | ์์ | ์์ | ์์ (2ร32-bit) |
| ๋ฆฌํ๋ ์ ๊ฐ๊ฒฉ | 64ms | 64ms | 32ms (โค85ยฐC) |
ํตํฉ vs ๋ถ๋ฆฌ Memory Controller
| ํญ๋ชฉ | ํตํฉ (IMC) | ๋ถ๋ฆฌ (Northbridge) |
|---|---|---|
| ์ง์ฐ ์๊ฐ | ๋ฎ์ (์นฉ์ ํ ์์) | ๋์ (์ถ๊ฐ ๋ฒ์ค ํ) |
| ๋์ญํญ | ๋์ (์งง์ ํธ๋ ์ด์ค) | ๋ฎ์ |
| ์ ๋ ฅ | ๋ฎ์ | ๋์ |
| ์ ์ฐ์ฑ | ํน์ DRAM ํ์ ์ ๊ณ ์ | ๋ค์ํ ๋ฉ๋ชจ๋ฆฌ ํ์ ์ง์ |
| ๋ฉ์ธ๋ณด๋ ์ค๊ณ | ๋จ์ | ๋ณต์ก |
| ์ฌ์ฉ ์ | Intel Nehalem+, AMD K8+ | ๊ตฌํ ์์คํ |
์๋ฌ ์ ์ ๊ธฐ๋ฅ ๋น๊ต
| ๊ธฐ๋ฅ | ๋ฅ๋ ฅ | ๊ตฌํ |
|---|---|---|
| Parity | 1๋นํธ ์ค๋ฅ ๊ฒ์ถ | ๋ฐ์ดํธ๋น 1๋นํธ |
| SECDED ECC | 1๋นํธ ์ ์ , 2๋นํธ ๊ฒ์ถ | 64๋นํธ ๋ฐ์ดํฐ์ 8๋นํธ ECC (72๋นํธ ๋ฒ์ค) |
| Chipkill | DRAM ์นฉ ๋จ์ ๋ค๋นํธ ์ค๋ฅ ์ ์ | ์ฌ๋ฌ ์นฉ์ ๊ฑธ์น ๊ณ ๊ธ ECC |
| On-die ECC (DDR5) | ๋ด๋ถ ์ค๋ฅ ์ ์ | Memory Controller์ ํฌ๋ช |
| CRC | ๋ฒ์คํธ ์ค๋ฅ ๊ฒ์ถ | GDDR6/HBM์์ ๋งํฌ ๋ฌด๊ฒฐ์ฑ ์ํด ์ฌ์ฉ |
๋์ ์๋ฆฌ
1๋จ๊ณ: CPU ์์ฒญ ์์
CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ๋ช ๋ น์ ์คํํ๋ฉด, MMU๋ฅผ ํตํด ๊ฐ์ ์ฃผ์๊ฐ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํ๋๋ค. Memory Controller๋ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ์์ ํ์ฌ ๋ค์์ ๋์ฝ๋ฉํ๋ค:
- Bank Address: DRAM์ ์ด๋ ์ํ์ ์ ๊ทผํ ์ง
- Row Address: ํ์ฑํํ ํ ๋ฒํธ
- Column Address: ์ฝ๊ธฐ/์ฐ๊ธฐํ ์ด ๋ฒํธ
2๋จ๊ณ: ์์ฒญ ์ค์ผ์ค๋ง
Request Scheduler๋ ์์ ๋ ์์ฒญ์ ๋ฒํผ๋งํ๊ณ , DRAM ํจ์จ์ฑ์ ์ํด ์ต์ ์ ์์๋ก ์ฌ์ ๋ ฌํ๋ค:
- Row-buffer hit ํ์ธ: ์ด๋ ค ์๋ ํ์ ์ ๊ทผํ๋ ์์ฒญ์ด ์์ผ๋ฉด ์ต์ฐ์ ์ฒ๋ฆฌ
- ์ํ ๋ณ๋ ฌ์ฑ ํ์ฉ: ๋ค๋ฅธ ์ํ์ ์์ฒญ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌ
- ์ฐ๊ธฐ-์ฝ๊ธฐ ์์ ์ต์ ํ: ๋ฒ์ค ๊ฒฝํฉ ์ต์ํ
์ฃผ์ ๋งคํ ๋ฐฉ์๋ ์ค์ ์ฒด๊ฐ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ์ค๋ค. ์ปจํธ๋กค๋ฌ๋ ๋ฌผ๋ฆฌ ์ฃผ์์ ์ผ๋ถ ๋นํธ๋ฅผ channel/rank/bank group/bank/row/column์ ๋ถ์ฐ ๋ฐฐ์นํ์ฌ ์ฐ์ ์ ๊ทผ์ด ํน์ bank์ ๋ชฐ๋ฆฌ์ง ์๊ฒ ํ๋ค. ์ด์์ฒด์ ์ ํ์ด์ง ํ ๋น ํจํด๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ทผ ์ง์ญ์ฑ์ด ์ด ๋งคํ๊ณผ ๋ง๋ฌผ๋ฆฌ๋ฉด row-buffer hit์จ๊ณผ bank-level parallelism์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋ค.
3๋จ๊ณ: DRAM ๋ช ๋ น ์์ฑ
์ค์ผ์ค๋ ์์ฒญ์ ๋ฐ๋ผ Memory Controller๋ DRAM์ ๋ช ๋ น์ ์ ์กํ๋ค:
- PRE (Precharge): ์ํ์ ์ด๋ฆฐ ํ์ ๋ซ๋๋ค (ํ์ ์)
- ACT (Activate): ์ํ๋ ํ์ ํ์ฑํํ์ฌ ์ด ๋ฒํผ์ ๋ก๋
- RD/WR (Read/Write): ํน์ ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ด๋ค
- BURST: BL8 ๋๋ BL16 ํฌ๊ธฐ์ ๋ฒ์คํธ ์ ์ก ์ํ
4๋จ๊ณ: ๋ฆฌํ๋ ์ ๊ด๋ฆฌ
Memory Controller๋ ์ธ๋์ ์จ๋ ์กฐ๊ฑด์ ๋ง๋ ์ฃผ๊ธฐ๋ก ๋ชจ๋ ํ์ ๋ฆฌํ๋ ์ํด์ผ ํ๋ค:
- tREFI์ ๋ง์ถฐ ๋ฆฌํ๋ ์ ์์ฒญ ์์ฑ
- ๋ฆฌํ๋ ์ ์ค ํด๋น ์ํ์ ์ ๊ทผ ๋ถ๊ฐ
- DDR5์์๋ Same-Bank Refresh๋ก ๋ค๋ฅธ ์ํ์ ์๋น์ค ์ ์ง ๊ฐ๋ฅ
- Self-refresh ๋ชจ๋์์๋ DRAM์ด ์์ฒด์ ์ผ๋ก ๋ฆฌํ๋ ์ ์ํ
5๋จ๊ณ: ๋ฐ์ดํฐ ์ ์ก
์ฝ๊ธฐ ์์ ์์ ๋ฐ์ดํฐ๋ DRAM โ Memory Controller โ CPU ์์๋ก ์ ์ก๋๋ค:
- DQS (Data Strobe): ์์ค ๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ์ ํจ๊ป ์ ์ก
- ODT (On-Die Termination): ์ ํธ ๋ฐ์ฌ ๋ฐฉ์ง๋ฅผ ์ํ ์ํผ๋์ค ๋งค์นญ
- DBI (Data Bus Inversion): ์ ๋ ฅ ์๋น ์ต์ ํ๋ฅผ ์ํ ๋ฐ์ดํฐ ๋ฒ์ค ๋ฐ์
์ฅ๋จ์
| ์ฅ์ | ๋จ์ |
|---|---|
| DRAM ํ์ด๋ฐ ๋ณต์ก์ฑ์ CPU์ ํฌ๋ช ํ๊ฒ ์ถ์ํ | ์นฉ ๋ค์ด ๋ฉด์ ์ ์๋น ๋ถ๋ถ ์ฐจ์ง |
| ์ฃผ๊ธฐ์ ๋ฆฌํ๋ ์๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌ | ์ ๋ฉ๋ชจ๋ฆฌ ํ์ค ์ง์์ ์ํด ์ฌ์ค๊ณ ํ์ |
| ECC๋ก ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ | ์ด์ ๊ฒฐํฉ์ผ๋ก CPU ์ฟจ๋ง ๋ณต์ก๋ ์ฆ๊ฐ |
| ์ ๋ ฅ ๊ด๋ฆฌ(Self-refresh, CKE)๋ก ์๋์ง ํจ์จํ | ํน์ DRAM ํ์ ์ ๊ณ ์ (ํตํฉ ์) |
| ์์ฒญ ์ค์ผ์ค๋ง์ผ๋ก ๋์ญํญ ์ต์ ํ | ์ค๊ณ ๋ณต์ก๋๊ฐ ๋์ |
| ๋ค์ค ์ฑ๋๋ก ๋์ญํญ ํ์ฅ ๊ฐ๋ฅ |
๊ด๋ จ ๊ธฐ์
- JEDEC JESD79-5: DDR5 SDRAM ์ฌ์ ํ์ค
- JEDEC JESD209-5: LPDDR5 ์ฌ์ ํ์ค
- JEDEC JESD235: HBM ์ฌ์ ํ์ค
- Intel IMC: Nehalem(2008)๋ถํฐ ์ ์ฉ๋ ํตํฉ ๋ฉ๋ชจ๋ฆฌ ์ปจํธ๋กค๋ฌ
- AMD Infinity Fabric: Zen ์ํคํ ์ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ปจํธ๋กค๋ฌ ์ธํฐํ์ด์ค
- CXL (Compute Express Link): ํ์ฅ ๋ฉ๋ชจ๋ฆฌ ํ๋ง์ ์ํ ์ฐจ์ธ๋ ํ๋กํ ์ฝ
- RDIMM/LRDIMM Register: ์๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ๋ช ๋ น/์ฃผ์ ๋ฒํผ๋ง
- Rambus: ๋ฉ๋ชจ๋ฆฌ ์ปจํธ๋กค๋ฌ IP ๋ผ์ด์ ์ค ๋ฐ SerDes ๊ธฐ์
- DDR Generation Comparison: DDR3/4/5 ์ธ๋๋ณ ๊ตฌ์กฐ์ ํ์ด๋ฐ ๋ณํ
- ECC Error Correction: SECDED, Chipkill, On-die ECC ๋น๊ต
- HBM Generation Comparison: ๊ณ ๋์ญํญ ๋ฉ๋ชจ๋ฆฌ์์์ ์ปจํธ๋กค๋ฌ ์ ์ฝ ๋น๊ต
- Jacob, Ng, Wang, Memory Systems: Cache, DRAM, Disk: ๋ฉ๋ชจ๋ฆฌ ์ปจํธ๋กค๋ฌ์ DRAM ์ค์ผ์ค๋ง์ ๊ณ ์ ์ ์ฐธ๊ณ ์
- Micron DDR5 Technical Briefs: DDR5 bank group, refresh, on-die ECC ์ด์ฉ ๋ฐฐ๊ฒฝ ์ค๋ช
ํต์ฌ ์ ๋ฆฌ
Memory Controller๋ CPU์ DRAM ์ฌ์ด์ ํ์์ ์ธ ๊ฐ๊ต๋ก, ๋ณต์กํ DRAM ํ์ด๋ฐ๊ณผ ํ๋กํ ์ฝ์ ์ถ์ํํ์ฌ ์์คํ ์ฑ๋ฅ๊ณผ ์์ ์ฑ์ ๋ณด์ฅํ๋ค. ํ๋ ์์คํ ์์๋ CPU ๋ค์ด ๋ด๋ถ ํตํฉ(IMC)์ด ํ์ค์ด ๋์์ผ๋ฉฐ, DDR5์์๋ ์จ๋ค์ด ECC, ์๋ธ์ฑ๋, ์จ๋ชจ๋ PMIC ๋ฑ ์๋ก์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์๋ค. Memory Controller์ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฆฌํ๋ ์ ๊ด๋ฆฌ๋ ์์คํ ๋์ญํญ๊ณผ ์ง์ฐ ์๊ฐ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ฉฐ, ECC ์์ง์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ค. ํฅํ CXL ๊ธฐ๋ฐ์ ๋ถ์ฐ ๋ฉ๋ชจ๋ฆฌ ์ํคํ ์ฒ์์ Memory Controller์ ์ญํ ์ ๋์ฑ ํ๋๋ ๊ฒ์ด๋ค.