本文将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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CPU / OS
|
| System Physical Address (SPA)
|
v
Memory Controller
|
| Address Mapping
| (Channel / Rank / Bank / Row / Column)
|
v
DRAM Device
|
| Device Physical Address (DPA)
|
v
Memory Cell

简单理解:

  • SPA:软件看到的地址
  • DPA:DRAM硬件看到的位置

Memory Sparing中的:

“replace … with functional memory at that same DPA”

意思是:

对外暴露的设备物理地址保持不变,只是这个DPA背后的实际存储资源发生替换

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DPA = Rank0 / Row100

原来:

DPA
|
v
坏 Row100


Sparing后:

DPA
|
v
Spare Row

对OS和应用透明。

What

Memory Sparing是一种利用备用内存资源替换故障内存区域的RAS技术。

核心思想:

1
2
3
4
5
6
7
发现故障区域
|
v
地址重映射
|
v
备用区域接管

内存区域坏 → spare memory替代。

类型 替换对象
Cacheline Sparing 替换一个cacheline
Row Sparing 替换一个DRAM row
Bank Sparing 替换整个bank
Rank Sparing 替换整个DRAM rank

Why

DRAM故障通常会逐渐恶化

实际field数据表明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
正常

|
v

Correctable Error (CE)
增加

|
v

Uncorrectable Error (UE)

|
v

系统故障

如果等待UE:

1
2
3
4
DRAM失效
|
v
系统崩溃

Sparing可以:

1
2
3
4
5
6
7
8
9
10
CE增加
|
v
预测风险
|
v
提前替换
|
v
避免故障

ECC无法解决所有故障

ECC适合:

  • bit error
  • 少量错误

但对于:

  • row failure
  • bank failure
  • rank failure

可能无法恢复。

例如:

1
2
3
4
5
6
7
整个Rank失效

ECC:
无法修复

Memory Sparing:
使用备用Rank

How

核心:通过硬件地址重映射,将坏区域替换到备用区域

例如 Rank Sparing:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
正常:

SPA
|
v
Memory Controller
|
v
Rank0


Rank0出现故障


触发Sparing:

SPA
|
v
Memory Controller
|
v
Spare Rank

软件仍然访问同一个地址:

1
2
3
4
Application
|
v
same memory address

但实际访问:

1
2
3
4
5
6
7
8
old memory
|
X

|
v

spare memory

总结

Memory Sparing就是DRAM领域的“热备替换”技术:当某个内存区域出现失效风险时,通过DPA级别的地址重映射,用备用内存区域替换它,使系统继续运行,而无需OS或应用感知。


参考资料:

  1. Unification of RAS feature control - Enhancing EDAC
  2. Intel® Xeon® Processor 7500 Series Datasheet, Volume 2
  3. Supported Memory and Memory Population Rules for the Intel® Server Board S2600ST Family