Notes about Memory Sparing
本文将mark下Memory Sparing的相关notes。
Prerequisite
Overview
- Memory sparing is a repair function that replaces a portion of memory (spared memory) with a portion of functional memory at that same DPA.
- Cacheline/row/bank/rank memory sparing replaces full cacheline/single DDR row/entire bank/entire DDR rank respectively.
DPA
DPA(Device Physical Address)是内存设备内部看到的物理地址。
CPU/OS访问的是System Physical Address(SPA),经过 Memory Controller 的地址映射后,转换成DRAM设备地址:
1 | CPU / OS |
简单理解:
- SPA:软件看到的地址
- DPA:DRAM硬件看到的位置
Memory Sparing中的:
“replace … with functional memory at that same DPA”
意思是:
对外暴露的设备物理地址保持不变,只是这个DPA背后的实际存储资源发生替换
例如:
1 | DPA = Rank0 / Row100 |
对OS和应用透明。
What
Memory Sparing是一种利用备用内存资源替换故障内存区域的RAS技术。
核心思想:
1 | 发现故障区域 |
内存区域坏 → spare memory替代。
| 类型 | 替换对象 |
|---|---|
| Cacheline Sparing | 替换一个cacheline |
| Row Sparing | 替换一个DRAM row |
| Bank Sparing | 替换整个bank |
| Rank Sparing | 替换整个DRAM rank |
Why
DRAM故障通常会逐渐恶化
实际field数据表明:
1 | 正常 |
如果等待UE:
1 | DRAM失效 |
Sparing可以:
1 | CE增加 |
ECC无法解决所有故障
ECC适合:
- bit error
- 少量错误
但对于:
- row failure
- bank failure
- rank failure
可能无法恢复。
例如:
1 | 整个Rank失效 |
How
核心:通过硬件地址重映射,将坏区域替换到备用区域。
例如 Rank Sparing:
1 | 正常: |
软件仍然访问同一个地址:
1 | Application |
但实际访问:
1 | old memory |
总结
Memory Sparing就是DRAM领域的“热备替换”技术:当某个内存区域出现失效风险时,通过DPA级别的地址重映射,用备用内存区域替换它,使系统继续运行,而无需OS或应用感知。
参考资料: