如何处理RH
- Refresh Management (RFM)
- 通过增加刷新频率来减少Row Hammer的影响。
-
- Refresh命令在正常的刷新周期之外,额外插入刷新命令。
- Refresh Management命令使用特定的RFM命令(如RFMab或RFMsb)来刷新受影响的行及其相邻行。
- Targeted Row Refresh (TRR)
- 针对频繁访问的行进行有针对性的刷新。
-
- 检测频繁访问的行通过计数器或其他机制检测哪些行被频繁访问。
- 刷新相邻行对这些频繁访问的行及其相邻行进行额外的刷新操作。
- Per Row Activation Counting (PRAC)
- 监控每行的激活次数,以检测潜在的Row Hammer攻击。
-
- 计数器为每个行添加计数器,记录其激活次数。
- 阈值检测当某个行的激活次数超过预设阈值时,触发警报或采取其他措施。
- Back-off协议当检测到潜在的Row Hammer攻击时,DRAM会请求主机暂停正常活动,以便进行刷新管理。
- Error Correction Code (ECC)
- 使用ECC技术检测和纠正单比特错误。
-
- On-Die ECC在DRAM内部ECC,自动检测和纠正错误。
- 透明ECC允许主机读取错误计数和位置,以便采取进一步措施。
- Post Package Repair (PPR)
- 修复受损的行。
-
- Hard PPR (hPPR)永久修复受损的行,适用于长期解决方案。
- Soft PPR (sPPR)临时修复受损的行,适用于短期解决方案。
- ALERT
- ALERT通知MC Row Hammer攻击。
- 读MR70了解的原因和状态。
具体步骤
- 启用Per Row Activation Counting (PRAC)
1. 设置MR70:OP[1]=1B以启用PRAC。
2. 配置MR71:OP[3:2]以调整计数器阈值。
- ALERT处理
1. 监控ALERT_n信号。
2. 当ALERT_n被拉低时,读取MR70:OP[5]以确认是否是由于Row Hammer引起的警报。
3. 如果是Row Hammer引起的警报,执行以下步骤
- 暂停正常活动。
- 发出RFM命令以刷新受影响的行及其相邻行。
- 清除警报标志位MR70:OP[5]。
- 使用ECC检测和纠正错误
1. 启用On-Die ECC。
2. 定期读取MR20以获取错误计数。
3. 如果发现错误,使用hPPR或sPPR修复受损的行。
- 定期刷新
1. 增加刷新频率,特别是在高负载情况下。
2. 使用RFM命令对频繁访问的行及其相邻行进行额外刷新。