HBM3协议中文版(第6章后续)
HBM3第六章内容后续,借助豆包翻译和校对,水平有限,仅供参考。
6.3.4 电源模式命令
6.3.4.1 掉电(PDE、PDX)
HBM3 器件通过掉电进入命令进入掉电模式,如图 47 所示。

掉电进入命令不得在任一伪通道(PC)上有读或写操作正在进行时下发。读操作完成的标志是输出端已传输完最后一个数据元素(含启用的奇偶校验位)和 RDQS 后同步信号;写操作完成的标志是最后一个数据元素(含启用的奇偶校验位)已写入存储阵列且满足 \(t_{WR}\) 时序;对于带自动预充电的写操作,需等待模式寄存器中编程的 WR 时钟周期数结束。
掉电进入命令可在其他操作(如行激活、预充电、自动预充电或刷新)执行期间下发,但掉电模式下的 IDD 规范需在这些操作完成后才适用。
若所有存储体均处于空闲状态时进入掉电模式,称为预充电掉电模式;若任一存储体存在激活行时进入掉电模式,则称为激活掉电模式。
为确保内部完成掉电准备,掉电进入命令(PDE)和列无操作命令(CNOP)需维持 \(t_{CPDED}\) 时长,且 CK 时钟需稳定保持 \(t_{CKPDE}\) 个周期。
满足 \(t_{CPDED}\) 和 \(t_{CKPDE}\) 时序后,引脚状态如下(见表 40):
- RESET_n 和 R0 接收器保持激活状态;需维持 RESET_n = 高电平、R0 = 低电平以保持 HBM3 DRAM 处于掉电模式;
- CK 时钟接收器保持激活状态,时钟可停止(CK_t 驱动为静态低电平,CK_c 驱动为静态高电平),此时需在掉电退出前至少 \(t_{CKPDX}\) 个周期恢复时钟稳定,且满足 \(t_{CH}\)(最小)和 \(t_{CL}\)(最小)时序;
- WDQS_t 需维持静态低电平,WDQS_c 需维持静态高电平;
- RDQS_t 和 RDQS_c 继续驱动静态低电平和高电平;
- AERR、DERR 继续驱动静态低电平;
- TEMP 和 CATTRIP 继续输出有效高电平或低电平;
- 其他所有输入和输出缓冲器均停用。
掉电模式下不执行任何刷新操作,器件处于掉电模式的最长时长受刷新要求限制。
掉电模式下,若模式寄存器中启用了数据总线反转(DBI)功能,器件会保留内部 DBI 状态以用于 DBI (ac) 计算;同时持续驱动 RDQS_t 和 RDQS_c 为静态低电平和高电平,TEMP 和 CATTRIP 输出有效电平。
当 R0 被采样为高电平(配合 CNOP 命令)时,将同步退出掉电模式,\(t_{XP}\) 周期后可下发有效可执行命令。掉电模式的最小时长由 \(t_{PD}\) 规定。
若启用了命令 / 地址(CA)奇偶校验,掉电进入命令会参与奇偶校验评估。HBM3 器件要求在整个 \(t_{CPDED}\) 期间,PDE 命令和 CNOP 命令需满足有效奇偶校验;掉电进入后会暂停奇偶校验,并将 AERR 驱动为静态低电平;此时无数据突发传输,DERR 保持低电平。
掉电退出命令不参与奇偶校验评估。HBM3 器件要求在整个 \(t_{XP}\) 期间,RNOP 命令和 CNOP 命令需满足有效奇偶校验;\(t_{XP}\) 期间会恢复奇偶校验功能,奇偶错误将通过 AERR 引脚指示;此时无数据突发传输,DERR 保持低电平。
当 R [3:0] 被采样为高电平、低电平、高电平、低电平(配合 CNOP 命令)时,器件进入掉电模式,如图 48 所示。掉电进入后,PDE 命令和 CNOP 命令需维持 \(t_{CPDED}\) 时长。

表 40 掉电模式下的引脚状态描述
|
引脚组 |
引脚状态 |
|
RESET_n |
高电平(H) |
|
CK_t、CK_c |
低电平 / 高电平(L/H)或持续翻转 |
|
R0 |
低电平(L) |
|
R[9:1] |
无关(X) |
|
C[7:0] |
无关(X) |
|
APAR、ARFU |
无关(X) |
|
AERR |
低电平(L) |
|
DQ、DBI、ECC、SEV、DPAR |
无关(X) |
|
WDQS_t、WDQS_c |
低电平 / 高电平(L/H) |
|
RDQS_t、RDQS_c |
低电平 / 高电平(L/H) |
|
DERR |
低电平(L) |
|
TEMP、CATTRIP |
有效(V) |
注:引脚状态定义如下:a) “L” 表示低电平,“H” 表示高电平;b) “X” 表示无关,“V” 表示有效。
实例 1:CK 时钟保持翻转的掉电 / 退出流程(如图 49 所示)
- 流程:下发 PREab(全预充电)命令 → 等待 \(t_{RP}\) 时序(存储体空闲)→ 下发 PDE 命令 → 进入掉电模式(CK 持续翻转)→ 下发 PDX 命令 → 等待 \(t_{XP}\) 时序 → 器件就绪,可下发其他命令;
- 关键约束:PDE 命令需在 PREab 命令后满足 \(t_{RP}\) 时序,PDX 命令后需满足 \(t_{XP}\) 时序。

实例 2:CK 时钟停止的掉电 / 退出流程(如图 50 所示)
- 流程:下发 PREab 命令 → 等待 \(t_{RP}\) 时序 → 下发 PDE 命令 → 等待 \(t_{CPDED}\) 时序 → 停止 CK 时钟 → 掉电模式 → 重启 CK 时钟 → 等待 \(t_{CKPDX}\) 时序 → 下发 PDX 命令 → 等待 \(t_{XP}\) 时序 → 器件就绪;
- 关键约束:停止 CK 前需等待 \(t_{CPDED}\),重启 CK 后需等待 \(t_{CKPDX}\) 才可下发 PDX 命令。

实例 3:掉电模式下的刷新处理(如图 51 所示)
- 核心逻辑:掉电模式下器件不响应刷新命令,需在掉电前确保数据已完成最新刷新,且掉电持续时间不超过 \(t_{PD}\);
- 流程:下发 REFAB(全存储体刷新)命令 → 等待 \(t_{RFCab}\) 时序 → 下发 PREab 命令 → 等待 \(t_{RP}\) 时序 → 下发 PDE 命令 → 进入掉电模式 → 按退出流程恢复后,需及时下发刷新命令补充。


6.3.4.2 自刷新(SRE、SRX)
自刷新模式可在系统其余部分掉电时,仍保持 HBM3 器件中的数据。进入自刷新模式后,HBM3 器件无需外部时钟即可保留数据。该命令通过行命令输入 R [9:0] 接收(如图 55 所示),且要求列命令输入 C [7:0] 下发 CNOP 命令。

仅当两个伪通道的所有存储体均已预充电且满足 \(t_{RP}\) 时序、前序读命令的最后一个数据元素已输出(满足 \(t_{RDSRE}\) 时序),或前序模式寄存器设置(MRS)命令的 \(t_{MOD}\) 时序已满足时,才可进入自刷新模式。进入自刷新模式后,需下发 PDE 命令和 CNOP 命令,直至满足 \(t_{CPDED}\) 时序。
自刷新进入命令被寄存器采样后,需保持 R0 = 低电平以维持器件处于自刷新模式。为保证自刷新正常工作,所有电源引脚(VDDC、VDDQ、VPP、VDDQL)需处于有效电平。HBM3 器件进入自刷新模式后,会在 \(t_{CKSR}\) 周期内启动至少一次内部刷新。
自刷新操作期间,内部时钟会被禁用以节省功耗。HBM3 器件处于自刷新模式的最小时长为 \(t_{CKSR}\)。自刷新进入命令被采样后,用户可停止外部时钟或更改外部时钟频率 \(t_{CKSRE}\);但退出自刷新操作前,需重启时钟并稳定至少 \(t_{CKSRX}\) 个周期。
为确保内部完成自刷新准备,自刷新进入命令后需维持掉电进入命令(PDE)和 CNOP 命令 \(t_{CPDED}\) 时长,且 CK 时钟需稳定保持 \(t_{CKSRE}\) 个周期。
满足 \(t_{CPDED}\) 和 \(t_{CKSRE}\) 时序后,引脚状态如下(见表 41):
- RESET_n 和 R0 接收器保持激活状态;需维持 RESET_n = 高电平、R0 = 低电平以保持 HBM3 DRAM 处于自刷新模式;
- CK 时钟接收器禁用,时钟可停止或更改频率;若更改频率,需在 \(t_{XSMRSF}\) 后通过 MRS 命令重新配置;退出自刷新前,需重启时钟并稳定至少 \(t_{CKSRX}\) 个周期,且满足 \(t_{CH}\)(最小)和 \(t_{CL}\)(最小)时序;
- WDQS_t 需维持静态低电平,WDQS_c 需维持静态高电平;
- RDQS_t 和 RDQS_c 继续驱动静态低电平和高电平;
- AERR、DERR 继续驱动静态低电平;
- TEMP 和 CATTRIP 继续输出有效高电平或低电平;
- 其他所有输入和输出缓冲器均停用。
若启用了 CA 奇偶校验,自刷新进入命令会参与奇偶校验评估。HBM3 器件要求在整个 \(t_{CPDED}\) 期间,PDE 命令和 CNOP 命令需满足有效奇偶校验;自刷新进入后会暂停奇偶校验,并将 AERR 驱动为静态低电平;此时无数据突发传输,DERR 保持低电平。
自刷新退出命令不参与奇偶校验评估。HBM3 器件要求在整个 \(t_{XS}\) 期间,RNOP 命令和 CNOP 命令需满足有效奇偶校验;\(t_{XS}\) 期间会恢复奇偶校验功能,奇偶错误将通过 AERR 引脚指示;此时无数据突发传输,DERR 保持低电平。
退出自刷新需遵循以下流程:首先,在 R0 恢复高电平前确保 CK 时钟稳定;然后,需等待至少 \(t_{XS}\) 时长,待内部正在进行的刷新操作完成后,方可向器件下发有效命令。
自刷新退出后,需等待至少 \(t_{XS}\) 周期,才可重新进入自刷新模式。

表 41 自刷新模式下的引脚状态描述
|
引脚组 |
引脚状态 |
|
RESET_n |
高电平(H) |
|
CK_t、CK_c |
无关(X) |
|
R0 |
低电平(L) |
|
R[9:1] |
无关(X) |
|
C[7:0] |
无关(X) |
|
APAR、ARFU |
无关(X) |
|
AERR |
低电平(L) |
|
DQ、DBI、ECC、SEV、DPAR |
无关(X) |
|
WDQS_t、WDQS_c |
低电平 / 高电平(L/H) |
|
RDQS_t、RDQS_c |
低电平 / 高电平(L/H) |
|
DERR |
低电平(L) |
|
TEMP、CATTRIP |
有效(V) |
注:引脚状态定义如下:a) “L” 表示低电平,“H” 表示高电平;b) “X” 表示无关,“V” 表示有效。
6.4 奇偶校验
6.4.1 命令 / 地址奇偶校验
HBM3 DRAM 包含由 MR0 OP6 中的 CAPAR 位控制的命令 / 地址奇偶校验功能,默认状态为禁用。该功能关联 APAR 输入引脚和 AERR 输出引脚,仅当功能启用时,APAR 才会被激活。
若启用该功能,奇偶校验会在每个 CK 时钟周期的上升沿和下降沿分别进行计算,计算范围涵盖输入信号 R [9:0]、C [7:0]、ARFU 和 APAR,具体规则如表 42 所示。AERR 输出引脚会指示上升沿、下降沿(或两者)是否出现奇偶校验错误,HBM3 DRAM 无论是否发生命令 / 地址奇偶校验错误,都会执行相应命令。
表 42 命令 / 地址奇偶校验功能表
|
输入信号 |
高电平输入信号总和 |
AERR 状态 |
|
R[9:0]、C[7:0]、ARFU、APAR |
偶数 |
低电平(LOW) |
|
奇数 |
高电平(HIGH) |
注:有关命令和器件状态的例外情况,参见命令真值表。
HBM3 DRAM 可在启用奇偶校验功能的模式寄存器设置(MRS)命令之后的下一个时钟周期开始校验,最晚在该 MRS 命令的 tMOD 时序结束时完成启用。因此,从启用奇偶校验的 MRS 命令执行后,直到禁用奇偶校验的 MRS 命令的 tMOD 时序结束前,所有后续命令(包括 RNOP 和 CNOP)都必须满足正确的奇偶校验要求。相关细节还可参见掉电模式和自刷新模式章节。复位时,HBM3 DRAM 会将 AERR 驱动为低电平。
每次出现奇偶校验错误时,AERR 会在错误输入对应的时钟周期之后,经过 tPARAC 时序驱动为高电平,并保持 1 个 tCK 周期。若连续出现错误,AERR 信号会在后续周期中保持高电平。在访问命令之后的 tPARAC 时序内,不得禁用奇偶校验功能。

注 1:为便于说明,图中 tPARAC 时序按 0 个 tCK(数字域)和 0 ns(模拟输出延迟)展示。
注 2:有关掉电模式和自刷新模式下奇偶校验功能启用与禁用的详细说明,参见 “掉电模式(Power-Down)” 和 “自刷新模式(Self Refresh)” 章节。
单次命令 / 地址奇偶校验错误
图 58 展示了 R 输入上发生单次奇偶校验错误的情况。在该示例中,错误发生在 T0 时刻(ACTIVATE 命令第一个周期的上升沿)。经过 tPARAC 时序后,AERR 引脚被驱动为高电平并保持 1 个 tCK 周期,随后因无后续错误而恢复低电平。

注 1:为便于说明,图中 tPARAC 时序按 2 个 tCK(数字域)和 0 ns(模拟输出延迟)展示。注 2:MR0 OP6 位(CAPAR 位)必须在访问命令之后至少保持 1 个 tPARAC 时序的高电平状态。
非连续命令 / 地址奇偶校验错误
图 59 展示了 R 输入和 C 输入上分别发生奇偶校验错误的情况。在该示例中,第一个错误发生在 T0 时刻(ACTIVATE 命令第一个周期的下降沿),经过 tPARAC 时序后,AERR 引脚被驱动为高电平并保持 1 个 tCK 周期,随后恢复低电平并保持 1 个 tCK 周期;第二个错误发生在 T2 时刻(READ 或 WRITE 命令的上升沿和下降沿),AERR 引脚再次被驱动为高电平并保持 1 个 tCK 周期,之后因无后续错误而恢复低电平。

注 1:为便于说明,图中 tPARAC 时序按 2 个 tCK(数字域)和 0 ns(模拟输出延迟)展示。注 2:MR0 OP6 位(CAPAR 位)必须在访问命令之后至少保持 1 个 tPARAC 时序的高电平状态。
连续命令 / 地址奇偶校验错误
图 60 展示了 T0、T1、T2 周期内 R 输入和 C 输入上连续发生奇偶校验错误的情况(错误可能出现在时钟上升沿、下降沿或两者均出现)。由于 AERR 输出引脚为共用引脚,无法区分错误是来自 R 输入接口还是 C 输入接口。

注 1:为便于说明,图中 tPARAC 时序按 2 个 tCK(数字域)和 0 ns(模拟输出延迟)展示。注 2:MR0 OP6 位(CAPAR 位)必须在访问命令之后至少保持 1 个 tPARAC 时序的高电平状态。
6.4.2 数据奇偶校验(Data Parity)
HBM3 DRAM 包含写数据奇偶校验功能和读数据奇偶校验生成功能,分别由 MR0 的 OP5 位(WPAR 位)和 OP4 位(RPAR 位)控制,两者默认均处于禁用状态。每个双字(DWORD)对应 1 个双向 DDR I/O 引脚(DPAR)和 1 个输出引脚(DERR),写操作时,DPAR 作为输入引脚随 WPAR 功能启用;读操作时,DPAR 作为输出引脚随 RPAR 功能启用,否则 DPAR 引脚处于禁用状态。
数据奇偶校验功能支持可编程的奇偶校验延迟(PL),该延迟用于协调对应数据与 DPAR 信号的时序,可通过 MR1 的 OP [7:5] 位编程设置,且读操作和写操作共用同一 PL 值。对应的 DPAR 信号会延迟 PL 个周期接收或发送,WDQS 和 RDQS 选通信号会增加额外的选通周期,并保持与原有一致的前导码和后导码,以适配两端对延迟后 DPAR 信号的锁存需求。“写命令(WR、WRA)” 和 “读命令(RD、RDA)” 章节中提供了启用 DQ 奇偶校验的相关示例,具体支持的 PL 值范围需参考 DRAM 厂商的数据手册。
读事务中,HBM3 DRAM 会生成奇偶校验值,并通过 DPAR 信号与 DQ、DBI 和 ECC 引脚上的对应数据一同传输。
写事务中,HBM3 DRAM 会将 DPAR 输入引脚的信号与 DQ、DBI 和 ECC 输入引脚上的对应数据进行比较,具体比较规则如表 43 所示,奇偶校验会针对写突发传输的每个单位间隔(UI)单独执行。
若写突发传输的一个时钟周期内(D0...D3 或 D4...D7),任一或多个 UI 出现错误,DERR 引脚会在错误输入对应的时钟周期之后,经过 tPARDQ 时序驱动为高电平,并保持 1 个 tCK 周期。对于写突发传输第一个时钟周期内出现的错误,其 tPARDQ 时序从 WRITE 命令下发后的(WL + PL)个时钟周期开始计算;若第一个和第二个时钟周期均出现错误,DERR 引脚会在后续周期中持续保持高电平。复位时,HBM3 DRAM 会将 DERR 引脚驱动为低电平。
当出现数据奇偶校验错误时,HBM3 DRAM 不会阻塞写数据的传输,仍会正常完成向存储阵列的写事务。
为避免与正在进行的奇偶校验操作冲突,在 WRITE 命令之后的(WL + PL + tPARDQ + 2×tCK)时序内不得禁用 WPAR 功能;同理,在 READ 命令之后的 tRDMRS 时序内不得禁用 RPAR 功能。
如表 43 所示,仅当 MR9 的 OP0 位(MD 位)启用时,通过 ECC 信号接收和发送的元数据才会纳入奇偶校验和奇偶校验生成的范围;仅当 MR0 的 OP [1:0] 位(WDBI 位和 RDBI 位)启用时,DBI 信号才会纳入奇偶校验和奇偶校验生成的范围;SEV 信号始终不参与奇偶校验或奇偶校验生成。
表 43 数据奇偶校验功能表
|
配置(CONFIGURATION) |
输入信号(INPUTS) |
高电平输入信号数量(Sum of Inputs Received HIGH) |
DERR 状态 |
||
|
MD(MR9 OP0) |
WDBI 或 RDBI(MR0 OP [1:0]) |
DWORD0 |
DWORD1 |
||
|
启用(Enabled) |
启用(Enabled) |
DQ[31:0]、ECC[1:0]、DBI[3:0]、DPAR0 |
DQ[63:32]、ECC[3:2]、DBI[7:4]、DPAR1 |
偶数(Even) |
低电平(LOW) |
|
奇数(Odd) |
高电平(HIGH) |
||||
|
启用(Enabled) |
禁用(Disabled) |
DQ[31:0]、ECC[1:0]、DPAR0 |
DQ[63:32]、ECC[3:2]、DPAR1 |
偶数(Even) |
低电平(LOW) |
|
奇数(Odd) |
高电平(HIGH) |
||||
|
禁用(Disabled) |
启用(Enabled) |
DQ[31:0]、DBI[3:0]、DPAR0 |
DQ[63:32]、DBI[7:4]、DPAR1 |
偶数(Even) |
低电平(LOW) |
|
奇数(Odd) |
高电平(HIGH) |
||||
|
禁用(Disabled) |
禁用(Disabled) |
DQ[31:0]、DPAR0 |
DQ[63:32]、DPAR1 |
偶数(Even) |
低电平(LOW) |
|
奇数(Odd) |
高电平(HIGH) |
注 1:当 MR0 OP1 位(WDBI 位)禁用时,DBI 输入引脚会被禁用且不纳入奇偶校验范围;当 MR0 OP0 位(RDBI 位)禁用时,DBI 输出引脚会被禁用且不纳入奇偶校验生成范围;当 MR0 OP3 位(MD 位)禁用时,ECC I/O 引脚会被禁用且不纳入奇偶校验和奇偶校验生成范围。
写奇偶校验错误(PL=2)
图 61 展示了两个无缝写突发传输中发生数据奇偶校验错误的情况。在该示例中,第一个写突发传输的第 2 个 UI(D1)、第 3 个 UI(D2)、第 6 个 UI(D5)和第 7 个 UI(D6)出现错误,第二个写突发传输的 DPAR 输入的第 5 个 UI(P4)和第 6 个 UI(P5)出现错误。经过 tPARDQ 时序后,DERR 引脚在 T5 和 T6 时刻被驱动为高电平并保持 2 个 tCK 周期,随后恢复低电平并保持 1 个 tCK 周期,在 T8 时刻再次被驱动为高电平并保持 1 个 tCK 周期。

注 1:D0...D7 表示 WRITE 命令(BL8 突发传输)的输入数据;P0...P7 表示 WRITE 命令的输入奇偶校验值。
注 2:DATA 表示 PC0 的 DQ [31:0]、DBI [3:0]、ECC [1:0],以及 PC1 的 DQ [63:32]、DBI [7:4]、ECC [3:2];WDQS_t/_c 表示 PC0 的 WDQS0_t/_c 和 PC1 的 WDQS1_t/_c。
注 3:图中展示了两个无缝突发传输,第一个写突发传输的第 2 个 UI(D1)、第 3 个 UI(D2)、第 6 个 UI(D5)和第 7 个 UI(D6)出现错误,第二个写突发传输的 DPAR 输入的第 5 个 UI(P4)和第 6 个 UI(P5)出现错误。
注 4:假设 PL=2。注 5:奇偶校验会针对 BL8 突发传输的第一个时钟周期(UI=D0...D3)和第二个时钟周期(UI=D4...D7)分别执行。
注 6:图中 tPARDQ 时序按 2 个 tCK(数字域)和 0 ns(模拟输出延迟)展示。
注 7:WDBI 功能的启用 / 禁用由 MR0 OP1 位控制,且在访问命令之后至少需保持启用状态 1 个 tPARDQ 时序。
写奇偶校验时序对齐
图 62 展示了启用写数据奇偶校验的基本单写突发传输示例。当 PL=2 时,会在 T8 和 T9 周期额外接收 4 个 WDQS 脉冲,用于锁存 DPAR 输入信号。

注 1:D0...D7 表示 WRITE 命令(BL8 突发传输)的输入数据;P0...P7 表示 WRITE 命令的输入奇偶校验值。
注 2:DATA 表示 PC0 的 DQ [31:0]、DBI [3:0]、ECC [1:0],以及 PC1 的 DQ [63:32]、DBI [7:4]、ECC [3:2];WDQS_t/_c 表示 PC0 的 WDQS0_t/_c 和 PC1 的 WDQS1_t/_c。
注 3:假设 WL=6、PL=2。
注 4:WDBI 功能的启用 / 禁用由 MR0 OP1 位控制。
读奇偶校验时序对齐
图 63 展示了 PL=2 时启用数据奇偶校验的单读突发传输示例。DPAR 输出引脚会像偶数字节一样,在半个时钟周期内完成预 conditioning;当 PL=2 时,会在 T12 和 T13 周期额外接收和返回 4 个 WDQS 和 RDQS 脉冲,用于传输 DPAR 信号。

注 1:D0...D7 表示 READ 命令(BL8 突发传输)的输出数据;P0...P7 表示 READ 命令的输出奇偶校验值。
注 2:DATA 表示 PC0 的 DQ [31:0]、DBI [3:0]、ECC [1:0]、SEV [1:0],以及 PC1 的 DQ [63:32]、DBI [7:4]、ECC [3:2]、SEV [3:2];RDQS_t/_c 表示 PC0 的 RDQS0_t/_c 和 PC1 的 RDQS1_t/_c;WDQS_t/_c 表示 PC0 的 WDQS0_t/_c 和 PC1 的 WDQS1_t/_c。
注 3:假设 RL=10、PL=2。注 4:RDBI 功能的启用 / 禁用由 MR0 OP0 位控制。
6.5 时钟频率变更序列(Clock Frequency Change Sequence)
时钟频率仅可在自刷新模式下进行变更。当自刷新模式启动后停止 CK 时钟时,可重新启动时钟并设置为不同频率。若频率变更需调整配置参数,则需在进入自刷新模式前或退出自刷新模式后立即下发模式寄存器设置(MRS)命令进行配置。
6.6 温度补偿刷新报告(Temperature Compensated Refresh Reporting)
6.6.1 温度补偿刷新触发点(Temperature Compensated Refresh Trip Points)
HBM3 DRAM 通过 TEMP [1:0] 引脚的编码信号,向控制器传输与温度补偿刷新相关的信息。表 44 中的格雷码编码定义了为保证数据完整性所需的刷新速率,该速率由堆叠中温度最高的器件决定。当结温超过厂商为各刷新速率设定的特定触发点时,所报告的刷新速率会相应更新。各编码对应的绝对温度触发点需参考厂商数据手册。
表 44 温度补偿刷新触发点
|
TEMP[1:0] |
刷新速率(Refresh Rate) |
温度触发点(Temperature Trip Point) |
|
00 |
1×tREFI |
厂商指定(Vendor Specific) |
|
01 |
0.5×tREFI |
厂商指定(Vendor Specific) |
|
11 |
0.25×tREFI |
厂商指定(Vendor Specific) |
|
10 |
预留(Reserved) |
- |
6.6.2 极限温度传感器(Catastrophic Temperature Sensor)
极限温度传感器(CATTRIP)逻辑可检测 HBM3 堆叠中任意裸片的结温是否超过极限触发点。该触发点由 DRAM 厂商设定,数值低于会导致器件永久损坏的温度阈值。若堆叠中任意位置的结温超过此极限触发点,HBM3 器件会将 CATTRIP 引脚驱动为高电平。
CATTRIP 输出具有 “粘性” 特性,即需断开器件电源才能将其复位为低电平。极限温度事件(CATTRIP 触发)后,需预留足够时间让器件冷却。有关 CATTRIP 引脚的初始化流程,参见 “6.1 HBM3 上电与初始化序列(HBM3 Power-up and Initialization Sequence)” 章节。
即使结温超过极限触发点,或外部 / 内部时钟已停止,与 CATTRIP 引脚相关的电路仍能正常工作。可通过向 MR7 OP7 位写入 “1” 强制将 CATTRIP 引脚驱动为高电平,写入 “0” 则将其恢复为低电平,以此验证 CATTRIP 功能是否正常。
6.7 互连冗余重映射(Interconnect Redundancy Remapping)
HBM3 DRAM 支持互连通道重映射功能,可提升系统级封装(SIP)的组装良率,并恢复 HBM3 堆叠的功能。该功能通过 SOFT_LANE_REPAIR(软通道修复)和 HARD_LANE_REPAIR(硬通道修复)指令实现,且各通道的重映射操作相互独立。
SOFT_LANE_REPAIR 和 HARD_LANE_REPAIR 指令仅可在器件初始化阶段、正常内存操作开始前(如 CK 时钟开始切换前)下发。
HBM3 DRAM 可被编程为:即使 HBM 堆叠完全断电,仍能保留已配置的通道重映射信息。
6.7.1 AWORD 重映射(AWORD Remapping)
每个通道配备 1 个冗余 AWORD 通道,可用于修复行命令总线或列命令总线中的 1 个故障通道。如表 46 所示,APAR(地址奇偶校验)和 ARFU(地址保留位)信号与列命令总线修复相关;CK_c、CK_t 和 AERR 信号不可重映射。通道重映射完成后,故障通道对应的输入缓冲器会关闭,冗余凸点(RA)对应的输入缓冲器会开启。行命令总线或列命令总线的通道重映射不会影响器件原有功能。
表 45 AWORD - 行命令总线重映射表
|
描述(Description) |
寄存器编码(Register Encoding) |
R1 |
R2 |
R3 |
R0 |
R4 |
R5 |
R6 |
R7 |
R8 |
R9 |
RA(冗余通道) |
|
修复通道 0(Repair Lane 0) |
0001 |
XX |
R1 |
R2 |
R3 |
R0 |
R4 |
R5 |
R6 |
R7 |
R8 |
R9 |
|
修复通道 1(Repair Lane 1) |
0010 |
R1 |
XX |
R2 |
R3 |
R0 |
R4 |
R5 |
R6 |
R7 |
R8 |
R9 |
|
修复通道 2(Repair Lane 2) |
0011 |
R1 |
R2 |
XX |
R3 |
R0 |
R4 |
R5 |
R6 |
R7 |
R8 |
R9 |
|
修复通道 3(Repair Lane 3) |
0000 |
R1 |
R2 |
R3 |
XX |
R0 |
R4 |
R5 |
R6 |
R7 |
R8 |
R9 |
|
修复通道 4(Repair Lane 4) |
0100 |
R1 |
R2 |
R3 |
R0 |
XX |
R4 |
R5 |
R6 |
R7 |
R8 |
R9 |
|
修复通道 5(Repair Lane 5) |
0101 |
R1 |
R2 |
R3 |
R0 |
R4 |
XX |
R5 |
R6 |
R7 |
R8 |
R9 |
|
修复通道 6(Repair Lane 6) |
0110 |
R1 |
R2 |
R3 |
R0 |
R4 |
R5 |
XX |
R6 |
R7 |
R8 |
R9 |
|
修复通道 7(Repair Lane 7) |
0111 |
R1 |
R2 |
R3 |
R0 |
R4 |
R5 |
R6 |
XX |
R7 |
R8 |
R9 |
|
修复通道 8(Repair Lane 8) |
1000 |
R1 |
R2 |
R3 |
R0 |
R4 |
R5 |
R6 |
R7 |
XX |
R8 |
R9 |
|
修复通道 9(Repair Lane 9) |
1001 |
R1 |
R2 |
R3 |
R0 |
R4 |
R5 |
R6 |
R7 |
R8 |
XX |
R9 |
|
预留(Reserved) |
1010~1110 |
R1 |
R2 |
R3 |
R0 |
R4 |
R5 |
R6 |
R7 |
R8 |
R9 |
RA |
|
默认 - 无修复(Default – No Repair) |
1111 |
R1 |
R2 |
R3 |
R0 |
R4 |
R5 |
R6 |
R7 |
R8 |
R9 |
RA |
注:XX 表示该通道已被重映射。
6.7.1.1 行命令总线 - 重映射表
(与表 45 内容一致,此处为章节逻辑拆分,无额外数据)
6.7.1.2 列命令总线 - 重映射表
表 46 AWORD - 列命令总线重映射表
|
描述(Description) |
寄存器编码(Register Encoding) |
C0 |
C1 |
C2 |
C3 |
C4 |
C5 |
C6 |
C7 |
APAR |
ARFU |
RA(冗余通道) |
|
修复通道 0(Repair Lane 0) |
0000 |
XX |
C0 |
C1 |
C2 |
C3 |
C4 |
C5 |
C6 |
C7 |
APAR |
ARFU |
|
修复通道 1(Repair Lane 1) |
0001 |
C0 |
XX |
C1 |
C2 |
C3 |
C4 |
C5 |
C6 |
C7 |
APAR |
ARFU |
|
修复通道 2(Repair Lane 2) |
0010 |
C0 |
C1 |
XX |
C2 |
C3 |
C4 |
C5 |
C6 |
C7 |
APAR |
ARFU |
|
修复通道 3(Repair Lane 3) |
0011 |
C0 |
C1 |
C2 |
XX |
C3 |
C4 |
C5 |
C6 |
C7 |
APAR |
ARFU |
|
修复通道 4(Repair Lane 4) |
0100 |
C0 |
C1 |
C2 |
C3 |
XX |
C4 |
C5 |
C6 |
C7 |
APAR |
ARFU |
|
修复通道 5(Repair Lane 5) |
0101 |
C0 |
C1 |
C2 |
C3 |
C4 |
XX |
C5 |
C6 |
C7 |
APAR |
ARFU |
|
修复通道 6(Repair Lane 6) |
0110 |
C0 |
C1 |
C2 |
C3 |
C4 |
C5 |
XX |
C6 |
C7 |
APAR |
ARFU |
|
修复通道 7(Repair Lane 7) |
0111 |
C0 |
C1 |
C2 |
C3 |
C4 |
C5 |
C6 |
XX |
C7 |
APAR |
ARFU |
|
修复通道 8(Repair Lane 8) |
1000 |
C0 |
C1 |
C2 |
C3 |
C4 |
C5 |
C6 |
C7 |
XX |
APAR |
ARFU |
|
修复通道 9(Repair Lane 9) |
1001 |
C0 |
C1 |
C2 |
C3 |
C4 |
C5 |
C6 |
C7 |
APAR |
XX |
ARFU |
|
预留(Reserved) |
1010~1110 |
C0 |
C1 |
C2 |
C3 |
C4 |
C5 |
C6 |
C7 |
APAR |
ARFU |
RA |
|
默认 - 无修复(Default – No Repair) |
1111 |
C0 |
C1 |
C2 |
C3 |
C4 |
C5 |
C6 |
C7 |
APAR |
ARFU |
RA |
注:XX 表示该通道已被重映射。
6.7.1.3 AWORD 重映射示例(AWORD Remapping Examples)
示例 1:列命令总线修复假设通道 a 的 Ca4 为故障通道,而行命令总线无故障通道。此时需通过编程将通道 a 的 LANE REPAIR WDR(通道修复包装数据寄存器)的 AWORD_CA [3:0] 位设为 4h(十六进制),AWORD_RA [3:0] 位设为 Fh(十六进制),以完成重映射。
表 47 原始通道分配 - 通道 a - AWORD 列命令总线修复
|
ARFUa |
Ca7 |
Ca5 |
Ca4 |
Ca2 |
Ca0 |
|||||||
|
RAa |
APARa |
Ca6 |
CKa_t |
Ca3 |
Ca1 |
|||||||
|
Ra9 |
Ra7 |
CKa_c |
Ra4 |
Ra3 |
Ra1 |
|||||||
|
AERRa |
Ra8 |
Ra6 |
Ra5 |
Ra0 |
Ra2 |
表 48 重映射后通道分配 - 通道 a - AWORD 列命令总线修复
|
APARa |
Ca6 |
Ca4 |
XX |
Ca2 |
Ca0 |
||||||
|
ARFUa |
Ca7 |
Ca5 |
CKa_t |
Ca3 |
Ca1 |
||||||
|
Ra9 |
Ra7 |
CKa_c |
Ra4 |
Ra3 |
Ra1 |
||||||
|
AERRa |
Ra8 |
Ra6 |
Ra5 |
Ra0 |
Ra2 |
示例 2:行命令总线修复假设通道 a 的 Ra0 为故障通道,而列命令总线无故障通道。此时需通过编程将通道 a 的 LANE REPAIR WDR 的 AWORD_RA [3:0] 位设为 0h(十六进制),AWORD_CA [3:0] 位设为 Fh(十六进制),以完成重映射。
表 49 原始通道分配 - 通道 a - AWORD 行命令总线修复
|
ARFUa |
Ca7 |
Ca5 |
Ca4 |
Ca2 |
Ca0 |
||||||
|
RAa |
APARa |
Ca6 |
CKa_t |
Ca3 |
Ca1 |
||||||
|
Ra9 |
Ra7 |
CKa_c |
Ra4 |
Ra3 |
Ra1 |
||||||
|
AERRa |
Ra8 |
Ra6 |
Ra5 |
Ra0 |
Ra2 |
表 50 重映射后通道分配 - 通道 a - AWORD 行命令总线修复
|
ARFUa |
Ca7 |
Ca5 |
Ca4 |
Ca2 |
Ca0 |
||||||
|
RA9 |
APARa |
Ca6 |
CKa_t |
Ca3 |
Ca1 |
||||||
|
Ra8 |
Ra6 |
CKa_c |
Ra0 |
Ra3 |
Ra1 |
||||||
|
AERRa |
Ra7 |
Ra5 |
Ra4 |
XX |
Ra2 |
6.7.2 DWORD 重映射(DWORD Remapping)
HBM3 支持每个双字节(Double Byte)修复 1 个故障数据总线通道。两个相邻字节(如 DQ [15:0]、DQ [31:16]、DQ [47:32]、DQ [63:48])被视为一个双字节对,但各双字节对的重映射操作相互独立。
通道重映射完成后,故障通道对应的输入缓冲器会关闭,输出驱动器会处于三态(Hi-Z)状态;冗余通道(RD)对应的输入缓冲器会额外开启,输出驱动器会激活。
需将双字节中无故障字节对应的寄存器编码设为 “1111b”,故障字节对应的重映射编码需参照表中规则设置。
只要模式寄存器中 DBI(数据总线反转)功能的配置为启用状态,DBI 功能在重映射后仍能正常工作;数据奇偶校验功能不受通道重映射影响。WDQS_c、WDQS_t、RDQS_c、RDQS_t、PAR(奇偶校验)和 DERR 信号不可重映射。
读操作时,RD 输出驱动器会与所在物理字节的 DQ、DBI 和 ECC/SEV 通道一同启用:RD0 和 RD2 位于偶数字节,因此在第一个有效数据位输出前 1 个时钟周期启用;RD1 和 RD3 位于奇数字节,因此在第一个有效数据位输出前 2 个时钟周期启用。
6.7.2.1 DWORD 重映射表(DWORD Remapping Table)
表 51 DWORD 重映射表(1 字节)
|
描述(Description) |
寄存器编码(Register Encoding) |
ECC0(ECC1/SEV0/SEV1) |
DQ0(DQ8/DQ16/DQ24) |
DQ1(DQ9/DQ17/DQ25) |
DQ2(DQ10/DQ18/DQ26) |
DQ3(DQ11/DQ19/DQ27) |
DQ4(DQ12/DQ20/DQ28) |
DQ5(DQ13/DQ21/DQ29) |
DQ6(DQ14/DQ22/DQ30) |
DQ7(DQ15/DQ23/DQ31) |
DBI0(DBI1/DBI2/DBI3) |
RD0(RD0/RD1/RD1) |
|
修复通道 0(Repair Lane 0) |
0000 |
XX |
ECC0 |
DQ0 |
DQ1 |
DQ2 |
DQ3 |
DQ4 |
DQ5 |
DQ6 |
DQ7 |
DBI0 |
|
修复通道 1(Repair Lane 1) |
0001 |
ECC0 |
XX |
DQ0 |
DQ1 |
DQ2 |
DQ3 |
DQ4 |
DQ5 |
DQ6 |
DQ7 |
DBI0 |
|
修复通道 2(Repair Lane 2) |
0010 |
ECC0 |
DQ0 |
XX |
DQ1 |
DQ2 |
DQ3 |
DQ4 |
DQ5 |
DQ6 |
DQ7 |
DBI0 |
|
修复通道 3(Repair Lane 3) |
0011 |
ECC0 |
DQ0 |
DQ1 |
XX |
DQ2 |
DQ3 |
DQ4 |
DQ5 |
DQ6 |
DQ7 |
DBI0 |
|
修复通道 4(Repair Lane 4) |
0100 |
ECC0 |
DQ0 |
DQ1 |
DQ2 |
XX |
DQ3 |
DQ4 |
DQ5 |
DQ6 |
DQ7 |
DBI0 |
|
修复通道 5(Repair Lane 5) |
0101 |
ECC0 |
DQ0 |
DQ1 |
DQ2 |
DQ3 |
XX |
DQ4 |
DQ5 |
DQ6 |
DQ7 |
DBI0 |
|
修复通道 6(Repair Lane 6) |
0110 |
ECC0 |
DQ0 |
DQ1 |
DQ2 |
DQ3 |
DQ4 |
XX |
DQ5 |
DQ6 |
DQ7 |
DBI0 |
|
修复通道 7(Repair Lane 7) |
0111 |
ECC0 |
DQ0 |
DQ1 |
DQ2 |
DQ3 |
DQ4 |
DQ5 |
XX |
DQ6 |
DQ7 |
DBI0 |
|
修复通道 8(Repair Lane 8) |
1000 |
ECC0 |
DQ0 |
DQ1 |
DQ2 |
DQ3 |
DQ4 |
DQ5 |
DQ6 |
XX |
DQ7 |
DBI0 |
|
修复通道 9(Repair Lane 9) |
1001 |
ECC0 |
DQ0 |
DQ1 |
DQ2 |
DQ3 |
DQ4 |
DQ5 |
DQ6 |
DQ7 |
XX |
DBI0 |
|
预留(Reserved) |
1010~1110 |
ECC0 |
DQ0 |
DQ1 |
DQ2 |
DQ3 |
DQ4 |
DQ5 |
DQ6 |
DQ7 |
DBI0 |
RD0 |
|
默认 - 无修复(Default – No Repair) |
1111 |
ECC0 |
DQ0 |
DQ1 |
DQ2 |
DQ3 |
DQ4 |
DQ5 |
DQ6 |
DQ7 |
DBI0 |
RD0 |
注 1:XX 表示该通道已被重映射。
注 2:表中以 DWORD0 和 DWORD0_BYTE1 为例展示。
注 3:ECC 信号与 DWORD0_BYTE0、DWORD0_BYTE1、DWORD1_BYTE0、DWORD1_BYTE1 关联。
注 4:SEV 信号与 DWORD0_BYTE2、DWORD0_BYTE3、DWORD1_BYTE2、DWORD1_BYTE3 关联。
6.7.2.2 DWORD 重映射示例(DWORD Remapping Example)
假设字节 0 的 ECCa0 为故障通道,而字节 1 的所有通道均正常。此时需通过编程将通道 a 的 LANE REPAIR WDR 的 DWORD0_BYTE0 [3:0] 位设为 0h(十六进制),DWORD0_BYTE1 [3:0] 位设为 Fh(十六进制),重映射后的通道分配如表 53 所示。
表 52 原始 DWORD 通道分配 - 通道 a – 字节 [1:0]
|
DQa7 |
DQa5 |
RDa0 |
DQa3 |
DQa1 |
ECCa0 |
|
|
DBIa0 |
DQa6 |
DQa4 |
PARa0 |
DQa2 |
DQa0 |
|
|
VDDQL |
VDDQL |
VDDQL |
VDDQL |
VDDQL |
VDDQL |
|
|
DBIa1 |
DQa14 |
DQa12 |
WDQS0_t |
DQa10 |
DQa8 |
|
|
DQa15 |
DQa13 |
WDQS0_c |
DQa11 |
DQa9 |
ECCa1 |
表 53 重映射后 DWORD 通道分配 - 通道 a – 字节 [1:0]
|
DQa6 |
DQa4 |
DBIa0 |
DQa2 |
DQa0 |
XX |
|
|
DQa7 |
DQa5 |
DQa3 |
PARa0 |
DQa1 |
ECCa0 |
|
|
VDDQL |
VDDQL |
VDDQL |
VDDQL |
VDDQL |
VDDQL |
|
|
DBIa1 |
DQa14 |
DQa12 |
WDQS0_t |
DQa10 |
DQa8 |
|
|
DQa15 |
DQa13 |
WDQS0_c |
DQa11 |
DQa9 |
ECCa1 |
图 64 中的电路图详细展示了 DQ 通道重映射的原理:当 DQ3 通道未重映射时,物理凸点 DQ3 会连接到内部逻辑 DQ3 的输入和输出路径;重映射后,内部 DQ3 的输入和输出路径会切换连接到物理凸点 DQ4。

6.8 HBM3 环回测试模式(HBM3 Loopback Test Modes)
HBM3 的 AWORD 和 DWORD I/O 模块中定义了多输入移位寄存器(MISR)/ 线性反馈移位寄存器(LFSR)电路,这些电路用于测试和训练主机(Host)与 HBM3 器件之间的链路。参考图 65,DWORD 内的每个字节均实现了一个 40 位的 MISR/LFSR 电路,该电路由 8 个 DQ 信号、DBI 信号以及 ECC/SEV 信号各自对应的 WDQS 2 周期(上升沿和下降沿)4 位数据组成。其中,Q0、Q1、Q2、Q3 分别表示 DWORD 内每个字节中单个信号对应的半个 WDQS 周期。HBM3 的 BL0~BL3 与前两个 WDQS 周期的 Q0~Q3 对应,BL4~BL7 与后两个 WDQS 周期的 Q0~Q3 对应。工作时,各字节的 MISR/LFSR 电路独立运行。AWORD 则实现了一个 38 位的 MISR/LFSR 电路,该电路由 18 个行命令和列命令信号、ARFU 信号各自对应的 CK DDR(上升沿和下降沿)位组成。
当通过 IEEE 1500 端口的 DWORD_MISR 指令读取 MISR 寄存器时,一个通道内两个 DWORD 的每个 DWORD 所含 4 个字节的 MISR(共 160 位)会被串行移出,因此单次读取共获取 320 位数据。38 位 AWORD MISR 的内容可通过 AWORD_MISR 指令读取。有关这些 MISR 寄存器的位序,参见表 116 和表 117。
“MISR 模式” 是 LFSR 模式、寄存器模式(Register mode)、MISR 模式(狭义)以及 LFSR 比较模式(LFSR Compare mode)的统称。AWORD MISR 模式和 DWORD MISR 模式则分别指针对特定总线定义的所有模式。

6.8.1 HBM3 多项式结构(HBM3 Polynomial Structure)
图 66 展示了一个 4 位伽罗瓦(Galois)型 MISR/LFSR 结构示例,该结构实现的多项式如下:\(f(x)=X^{4}+X^{3}+1\)

上述示例电路及功能表仅用于说明,其模式无法完全代表下文定义的 DWORD 和 AWORD MISR 的实际功能。例如,图 66 所示电路实现了复位(Reset)功能,而 AWORD 和 DWORD MISR 实际实现的是预置(Preset)功能,即特定位被设置为逻辑 1。
表 54 MISR 功能表
|
M1 |
M0 |
功能(Function) |
|
0 |
0 |
复位(Reset) |
|
0 |
1 |
LFSR 模式 |
|
1 |
0 |
寄存器模式(Register) |
|
1 |
1 |
MISR 模式 |
6.8.1.1 AWORD MISR 多项式(AWORD MISR Polynomial)
HBM3 AWORD MISR 结构为 38 位 MISR/LFSR,其实现的多项式如下:\(f(x)=X^{38}+X^{6}+X^{5}+X+1\)
AWORD MISR 可通过 IEEE 1500 端口的 AWORD_MISR 指令进行串行访问。有关 AWORD MISR 包装数据寄存器(Wrapper Data Register,WDR)的位序,参见表 117。
6.8.1.2 DWORD MISR 多项式(DWORD MISR Polynomial)
DWORD MISR 结构为每个字节配备一个 40 位 MISR/LFSR,其实现的多项式如下:\(f(x)=X^{40}+X^{38}+X^{21}+X^{19}+1\)
需注意,当通过 IEEE 1500 端口的 DWORD_MISR 指令访问 DWORD MISR 时,一个通道内所有独立字节的 MISR 会被拼接成一个 320 位的包装数据寄存器。有关 DWORD MISR 的位序,参见表 116。
6.8.2 环回模式的通用特性与行为(General Loopback Modes Features and Behavior)
本节介绍所有 MISR 模式通用的特性与行为。
a) 进入 MISR 模式
MISR 模式可在初始化序列中的 tINIT3 时序之后启用,也可在完成初始化后随时启用(参见 “初始化(Initialization)” 章节)。DWORD MISR 模式通过模式寄存器 7(MR7)控制(参见表 18),而 AWORD MISR 模式通过 IEEE 1500 端口的 AWORD_MISR_CONFIG 指令控制。由于 DWORD MISR 模式需通过 AWORD 总线上的 READ 和 WRITE 命令驱动,因此 AWORD MISR 模式与 DWORD MISR 模式无法同时使用。
b) 进入与退出 AWORD MISR 模式
HBM3 允许在部分通道使用 AWORD MISR 模式的同时,让其他通道保持正常运行。完成正常初始化后,若要在某一通道启用 AWORD MISR 模式,主机需先将该 HBM3 通道置于预充电掉电(precharge power-down)或自刷新(self refresh)模式。若需在使用 AWORD MISR 模式期间保留内存内容,可选用自刷新模式。此外,也可在初始化序列的 tINIT4 时序之后启用 AWORD MISR 模式。
启用 AWORD MISR 模式会重新激活掉电模式和自刷新模式下通常禁用的 AWORD I/O 缓冲器,这可能导致电流消耗超过 IDD2P、IDD2P0 和 IDD6x 规格的要求。若无需返回正常运行模式,主机可在运行 AWORD MISR 模式后,按照 “初始化(Initialization)” 章节的流程执行初始化序列。
进入 AWORD MISR 模式并退出后返回正常运行的流程如下:
- 在 HBM3 完成初始化后的任意时刻,使所有银行进入空闲状态(all banks idle state)。
- 进入预充电掉电状态或自刷新状态(此期间 R0 需保持低电平)。
- 停止 CK 时钟切换(使 CK_t 为低电平,CK_c 为高电平)。
- 启用 / 进入并运行 AWORD MISR 模式(将 AWORD_MISR_CONFIG 的 Enable 位设为 1)。运行结束后,需保持 CK 时钟停止(CK_t = 低电平,CK_c = 高电平)且 R0 = 低电平。
- 禁用 AWORD MISR 模式,并按照 “掉电模式(Power-Down (PDE, PDX))” 或 “自刷新模式(Self Refresh (SRE, SRX))” 章节的流程执行退出操作。
- 若在初始化序列的 tINIT3 时序之后使用 AWORD MISR 模式,则无需执行掉电或自刷新的进入与退出流程。
若 HBM3 在 AWORD MISR 测试后无需继续执行任务模式(mission mode)操作,则对行 / 列命令总线以及掉电 / 自刷新状态无特殊要求。AWORD MISR 模式(即 AWORD_MISR_CONFIG 的 Enable 位)可在后续初始化序列中通过 WRST_n 复位。
c) 进入与退出 DWORD MISR 模式
HBM3 允许在部分通道使用 DWORD MISR 模式的同时,让其他通道保持正常运行。完成正常初始化后(参见 “初始化(Initialization)” 章节),若要在某一通道启用 DWORD MISR 模式,主机需先将该 HBM3 通道置于所有银行空闲状态,启用 DWORD MISR 模式(将 MR7 的 Loopback Enable 位设为 1),然后进入预充电掉电或自刷新模式。若需在使用 DWORD MISR 模式期间保留内存内容,可选用自刷新模式。
在进入预充电掉电或自刷新模式前启用 DWORD MISR 模式,会保持 AWORD 和 DWORD I/O 缓冲器的激活状态,这可能导致电流消耗超过 IDD2P、IDD2P0 和 IDD6x 规格的要求。此外,也可在初始化序列的 tINIT3 时序之后启用 DWORD MISR 模式。有关 DWORD MISR 模式配置设置的其他说明,参见下文 f) 和 h)。
列命令总线上仅允许下发 READ(RD)、WRITE(WR)、列空操作(CNOP)命令(用于运行 DWORD MISR 模式)、MR15 MRS 命令(用于设置 DWORD 参考电压 VREFD)以及 MR7 MRS 命令(用于选择 DWORD MISR 模式);行命令总线上仅允许将 R0 驱动为静态低电平。
进入 DWORD MISR 模式并退出后返回正常运行的流程如下:
- 在 HBM3 完成初始化后的任意时刻,使所有银行进入空闲状态。
- 根据 DWORD MISR 模式的使用需求,设置所有必要的配置模式寄存器(参见下文 h)、k)、n))。
- 将 MR7 的 DWORD Loopback Enable 位设为 1(启用),并等待 tMOD 时序。
- 进入预充电掉电或自刷新状态(此期间 R0 需保持低电平)。
- 通过 MR7 设置选择并运行 DWORD MISR 模式(行命令输入需为 RNOP 且 R0 = 低电平,以在 MR7 设置期间保持掉电或自刷新状态),同时下发 RD、WR 和 CNOP 命令。完成 DWORD MISR 操作后,下发 CNOP 命令。
- 按照掉电退出(PDX)或自刷新退出(SRX)的流程执行操作。
- 将 MR7 的 DWORD Loopback Enable 位设为 0(禁用),并在继续正常操作前等待 tMOD 时序。
由于在初始化序列的 tINIT5 时序之前不支持 MRS 命令,因此若要在 tINIT3 时序之后配置和控制用于 DWORD MISR 模式的模式寄存器,需使用 MODE_REGISTER_DUMP_SET 指令。在初始化序列的 tINIT3 时序之后进入并运行 DWORD MISR 模式的流程如下:
- 启动 CK 时钟,并在命令总线上下发 PD(掉电命令)和 CNOP 命令。
- 使用 MODE_REGISTER_DUMP_SET 指令,设置所有 DWORD MISR 模式所需的配置模式寄存器(参见下文 f)、h)),将 MR7 的 DWORD Loopback Enable 位设为 1(启用),并等待 tMOD 时序。
- 通过 MR7 设置(使用 MODE_REGISTER_DUMP_SET 指令)选择并运行 DWORD MISR 模式,同时下发 RD、WR 和 CNOP 命令。
- 完成 DWORD MISR 操作后,下发 CNOP 命令,使用 MODE_REGISTER_DUMP_SET 指令将 MR7 的 DWORD Loopback Enable 位设为 0(禁用),然后等待 tMOD 时序。
- (可选)停止 CK 时钟切换。
- 继续执行其他 IEEE 1500 指令,或从图 6 的 Td 时刻开始继续执行初始化序列。
若 HBM3 在 DWORD MISR 测试后无需继续执行任务模式操作,则无需执行掉电或自刷新的退出流程,也无需将 MR7 的 DWORD Loopback Enable 位设为 0。后续初始化序列中,可通过将 RESET_n 拉低复位 Loopback Enable 位。
d) AWORD MISR 模式下命令解码禁用
当 AWORD MISR 模式启用时,AWORD 总线上传输的信号不受限于有效命令。为避免出现未定义状态和操作,当 AWORD MISR 模式启用(AWORD_MISR_CONFIG 的 Enable 位设为 1)时,命令解码功能会被禁用。
e) 通道修复后 MISR 位序与逻辑信号绑定
MISR 位与逻辑信号关联,而非与物理微凸点关联(参见图 64)。例如,若 DQ3 通道已修复(即 DQ3 数据被路由至 DQ4 微凸点),则 DQ4 微凸点接收的数据会被路由至 DQ3 对应的 MISR 位。实际上,所有 MISR 模式的行为均不受影响 —— 字节的所有 10 位数据均会按照无通道修复时的位位置存入 MISR。
f) DWORD MISR 模式下 HBM3 DBI 及 ECC/SEV 逻辑电路失效
在 DWORD MISR 模式下,DBI 和 ECC/SEV 信号仅被视为纯数据信号,其原始值会被捕获、比较或发送,无需考虑其正常的总线反转(DBI)或 ECC 功能含义。
需在 MR0 中启用写 DBIac(WDBI)和读 DBIac(RDBI)功能,才能激活 DBI 信号的 I/O 缓冲器。若 WDBI 禁用,内部会默认将所有写 DBI 数据设为 0。
无论 MR9 中是否启用元数据(MD)和错误等级报告(SEV)功能,只要将 MR7 的 DWORD Loopback Enable 位设为 1,就会激活 ECC/SEV 信号的 I/O 缓冲器。需注意,仅在环回测试模式下,SEV 信号为双向 I/O。
- 主机可向 HBM3 写入经过 DBI 编码或未编码的数据。在 MISR 模式或寄存器模式下,从主机接收的原始数据会直接捕获(不经过 DBI 解码)到 MISR 寄存器中。
- 若要使 LFSR 比较模式的结果匹配,主机需在字节的所有 10 个信号上发送 LFSR 生成的原始数据,且不进行写 DBI 编码。由于 HBM3 不会对接收的数据进行 DBI 解码,因此主机必须发送原始 LFSR 数据才能使 LFSR 比较结果匹配。
- 在 LFSR 模式下,HBM3 生成的读数据不经过 DBI 编码。
g) DWORD 读路径奇偶校验流量生成
在 DWORD LFSR 模式(读方向)和读寄存器模式下,HBM3 的奇偶校验逻辑不激活,MR0 中的 DQ 总线读奇偶校验设置无效。为在 DWORD 奇偶校验信号上生成流量,会将某一相邻 DQ 信号的副本传输至奇偶校验信号:逻辑信号 DQ2、DQ34 分别传输至对应的 DWORD 块奇偶校验信号 DPAR0、DPAR1,此过程不受任何通道修复的影响。奇偶校验信号与 DQ 数据同步驱动,无额外周期延迟(实际等效于奇偶校验延迟 PL=0)。建议主机端采用特征寄存器电路检查接收的奇偶校验信号的有效性。读取 LFSR_COMPARE_STICKY 错误位时,奇偶校验信号的输出状态未定义。
h) AWORD 和 DWORD 写奇偶校验检查
在 AWORD 和 DWORD 的寄存器模式、MISR 模式以及 LFSR 比较模式下,若 MR0 中启用了奇偶校验功能(参见表 11),HBM3 的奇偶校验评估逻辑会激活,并分别在 tPARAC 时序后通过 AERR 输出结果、在 tPARDQ 时序后通过 DERR 输出结果。MR1 中的奇偶校验延迟(PL)设置(参见表 12)需设为厂商实现支持的特定值,该值可能与接口速率相关。HBM3 器件会根据 PL 设置和协议处理写奇偶校验,包括处理所有必要的额外 WDQS 周期。建议主机端采用特征寄存器电路检查 AERR 和 DERR 信号的正确性,同时建议主机在 DWORD 奇偶校验信号上生成数据,以测试这些信号路径和逻辑。
i) 预置状态(Preset State):AAAAAAAAAh 和 2AAAAAAAAAh
DWORD MISR 寄存器的预置状态为 AAAAAAAAAAh(十六进制),该状态将每个信号的上升沿位(Rise bit)初始化为 1'b1,下降沿位(Fall bit)初始化为 1'b0。在 DWORD 读寄存器模式(突发长度 BL=8)下,此状态可在字节的所有 10 个信号上生成交替的 0/1/0/1/0/1/0/1 模式,主机可利用该基本模式进行 RDQS 眼图居中(eye centering)操作。在预置状态下,支持通过 DWORD_MISR 指令执行 READ 命令;此模式下,对 DWORD_MISR 的 WRITE 和 READ 命令不会改变其内容。
为保持实现一致性,AWORD MISR 寄存器也会预置为相同的 0/1 模式(38 位多项式对应的预置值为 2AAAAAAAAAh),但无法启用 AWORD 向主机驱动该数据模式。所有非零初始化模式均适用于所有 MISR 模式,但全零初始化模式对 DWORD LFSR 模式而言是 “固定为零” 状态(stuck-at-zero state)。可通过写寄存器模式(参见 “6.8.4 AWORD 和 DWORD 写寄存器模式”)覆盖预置状态。
j) 通过 IEEE 1500 端口写入 DWORD MISR 寄存器
写入 DWORD MISR 寄存器的常规方式是通过功能接口(参见 “6.8.3.2 DWORD 写 MISR 模式的测试方法”),也可通过 IEEE 1500 端口的 DWORD_MISR 指令写入这些寄存器,该特性支持设置自定义种子值。
k) 正确设置 DWORD 读延迟与写延迟
READ 和 WRITE 命令用于生成 DWORD MISR 模式的流量,需遵循与工作频率匹配的正常模式 DWORD 读协议和写协议(包括延迟设置)。
l) DWORD 写 MISR 模式遵循正常写前导码与后导码时钟协议
在 DWORD 写 MISR 模式(寄存器模式、MISR 模式、LFSR 比较模式)下,主机需发送 WDQS 前导码和后导码时钟,HBM3 会按照 “写命令(WR, WRA)” 章节定义的写协议采样 DWORD 数据。
m) DWORD 读模式遵循正常读前导码与后导码时钟协议
在 DWORD 读寄存器模式、LFSR 模式(读方向)以及返回 LFSR_COMPARE_STICKY 位时,HBM3 会生成 RDQS 前导码和后导码时钟,并按照 “读命令(RD, RDA)” 章节定义的读协议发送 DWORD 数据。
n) AWORD MISR 模式的前导码时钟滤波
在 AWORD MISR 模式下,主机需先停止 CK 时钟切换,启用所需的 AWORD MISR 模式,然后开始发送 CK 时钟切换信号和 AWORD 数据。为避免 CK 启动周期的时序干扰,HBM3 会将接收的第一个 CK 周期视为前导码时钟周期,在 MISR 模式或寄存器模式下不处理 AWORD 信号上的数据,在 LFSR 比较模式下也不比较这些数据,MISR 模块的状态在滤波周期内保持不变。
通过将 AWORD_MISR_CONFIG 的 MODE 位设为 2'b00(预置模式),可激活第一个时钟周期的滤波电路。HBM3 采样的第一个数据来自第二个 CK 周期。仅第一个 CK 周期会被滤波 —— 若主机在保持 AWORD MISR 模式启用的情况下停止并重新启动 CK 时钟切换(未执行额外预置操作),则会在启动时钟周期采样 AWORD 数据,此时可能存在 CK 边沿时序干扰。

o) MISR 模式下处理的周期数
AWORD MISR 模式依赖于测试序列前后停止 CK 时钟切换。除被滤波的前导码时钟周期外,HBM3 接收的所有 AWORD 周期(包括 CK 停止前的最后一个周期)均会在 MISR 模式 / 寄存器模式下被处理到 MISR 中,或在 LFSR 比较模式下被比较。
对于 DWORD MISR 模式,在启用该模式期间,所有符合 DWORD 写协议和写延迟设置的有效写数据周期,均会在 MISR 模式 / 寄存器模式下被处理到 MISR 中,或在 LFSR 比较模式下被比较。前导码和后导码周期内的引脚信号状态不会被处理到 MISR 中。例如,若在 DWORD MISR 模式下向 HBM3 发送 10 个非无缝的 BL=8 写操作,则共 80 个数据单位间隔(UI)会被处理到 MISR 中。
6.8.3 AWORD 和 DWORD 写 MISR 模式(AWORD and DWORD Write MISR Modes)
当 AWORD 或 DWORD MISR 模式激活时,AWORD 或 DWORD 数据信号上的数据会分别基于 CK 或 WDQS 时钟被接收,并在 MISR 电路中进行压缩。主机可完全控制发送的数据周期数,若 HBM3 成功接收数据,则各 MISR 中捕获的值具有可重复性和确定性。图 68 展示了 DWORD MISR 模式(写方向)的行为。

6.8.3.1 AWORD(写)MISR 模式的测试方法
a) HBM3 完成必要的初始化后,主机下发预充电掉电或自刷新命令(R0 = 低电平),并停止向 HBM3 发送 CK 时钟(CK_t = 低电平,CK_c = 高电平)。
b) 将 AWORD_MISR_CONFIG 的 Enable 位设为 1'b1(启用),MODE 位设为 2'b00(预置),完成 AWORD MISR 的初始化。预置操作同时会激活前导码时钟滤波电路。
c) 将 AWORD_MISR_CONFIG 的 MODE 位设为 2'b11(MISR 模式),启用 AWORD MISR 模式。
d) 主机发送两个或更多 CK 时钟周期,并在 AWORD 信号上传输数据。HBM3 会将接收的第一个 CK 周期视为前导码时钟并丢弃,随后将接收的数据时钟输入 AWORD MISR;若启用了奇偶校验功能,还会同时评估奇偶校验。主机最终需将 CK 时钟设为 CK_t = 低电平、CK_c = 高电平的状态。
e) 主机通过 IEEE 1500 的 AWORD_MISR 指令读取 MISR 内容。
6.8.3.2 DWORD 写 MISR 模式的测试方法
a) 将 MR7 的 DWORD Loopback Enable 位设为 1'b1(启用),并将 DWORD MISR Control 位设为 3'b000(预置),完成测试序列的初始化。控制器可通过功能接口或 IEEE 1500 端口(参见 “6.8.4 AWORD 和 DWORD 写寄存器模式” 及 “DWORD_MISR IEEE 1500 端口指令”)向 DWORD MISR 寄存器加载自定义种子值。
b) 将 MR7 的 DWORD MISR Control 位设为 3'b011(MISR 模式),启用 DWORD MISR 模式。
c) 主机按照写延迟和突发长度设置,遵循正常写协议发送一个或多个 DWORD 写周期。HBM3 会将接收的数据时钟输入 DWORD MISR;若启用了奇偶校验功能,还会同时评估奇偶校验。
d) 主机通过 IEEE 1500 的 DWORD_MISR 指令读取 MISR 内容,也可通过功能接口读取(参见 “6.8.5 DWORD 读寄存器模式”)。
6.8.4 AWORD 和 DWORD 写寄存器模式(AWORD and DWORD Write Register Modes)
当 AWORD 或 DWORD 寄存器模式激活时,AWORD 或 DWORD 数据信号上的数据会分别基于 CK 或 WDQS 时钟被接收,并直接存入对应的 MISR 寄存器(不进行压缩)。实际上,MISR 寄存器对 AWORD 而言相当于 2 位存储寄存器,对 DWORD 而言相当于 4 位存储寄存器。在 CK 或 WDQS 上升沿,AWORD 或 DWORD 总线上的信号状态会存入 MISR 寄存器的上升沿位;在 CK 或 WDQS 下降沿,总线信号状态会存入 MISR 寄存器的下降沿位。若主机向 HBM3 发送多个 DDR 周期,MISR 会存储 AWORD MISR 周期的最后 2 位数据和 DWORD MISR 周期的最后 4 位数据(前提是 HBM3 成功接收)。
寄存器模式适用于基础、快速的链路测试与训练,也可用于初始化 DWORD MISR 的种子值。
6.8.4.1 AWORD(写)寄存器模式的测试方法
a) HBM3 完成必要的初始化后,主机下发预充电掉电或自刷新命令(R0 = 低电平),并停止向 HBM3 发送 CK 时钟(CK_t = 低电平,CK_c = 高电平)。
b) 将 AWORD_MISR_CONFIG 的 Enable 位设为 1'b1(启用),MODE 位设为 2'b00(预置),完成 AWORD MISR 的初始化。预置操作同时会激活前导码时钟滤波电路。
c) 将 AWORD_MISR_CONFIG 的 MODE 位设为 2'b10(寄存器模式),启用 AWORD 寄存器模式。
d) 主机发送两个或更多 CK 时钟周期,并在 AWORD 信号上传输数据。HBM3 会将接收的第一个 CK 周期视为前导码时钟并丢弃,随后将接收的原始数据(不经过 MISR 压缩)时钟输入 AWORD MISR 寄存器;若启用了奇偶校验功能,还会同时评估奇偶校验。主机最终需将 CK 时钟设为 CK_t = 低电平、CK_c = 高电平的状态,AWORD MISR 寄存器会保留最后一个时钟 DDR 周期的数据。
e) 主机通过 IEEE 1500 的 AWORD_MISR 指令读取 MISR 内容。
需注意,AWORD 写寄存器模式无法实际用于向 AWORD MISR 寄存器加载自定义种子值。在 6.8.4.1 步骤 d) 中,前导码时钟滤波电路会被触发并清除;此时,即使主机停止发送 AWORD 周期、将 AWORD_MISR_CONFIG 的 MODE 位设为 MISR 模式或 LFSR 比较模式,然后继续发送 AWORD 周期,第二个 AWORD 周期序列的起始部分仍可能存在时序干扰。且无需执行 AWORD MISR 预置操作(该操作会覆盖通过 AWORD 写寄存器操作加载的自定义种子值),因此无法为这些额外 AWORD 周期重新激活前导码时钟滤波电路。由于 AWORD 总线仅支持接收操作,为 AWORD MISR 功能使用自定义 MISR 种子值无实际应用价值。
6.8.4.2 DWORD 写寄存器模式的测试方法
a) 将 MR7 的 DWORD Loopback Enable 位设为 1'b1(启用),DWORD MISR Control 位设为 3'b010(寄存器模式),启用 DWORD 寄存器模式。启用寄存器模式前无需执行预置操作。
b) 主机按照写延迟和突发长度设置,遵循正常写协议发送一个或多个 DWORD 写周期。HBM3 会将接收的原始数据(不经过 MISR 压缩)时钟输入 DWORD MISR 寄存器;若启用了奇偶校验功能,还会同时评估奇偶校验。DWORD MISR 寄存器会保留最后一个时钟 DDR 周期的数据。
c) 主机通过 IEEE 1500 的 DWORD_MISR 指令读取 MISR 内容,也可通过功能接口读取(参见 “6.8.5 DWORD 读寄存器模式”)。
6.8.5 DWORD 读寄存器模式(DWORD Read Register Mode)
若主机的读路径已完成训练(或用于读路径训练),可通过功能接口读取与 DWORD MISR 模式相关的各类寄存器内容。通过 MR7 的 DWORD Read Mux Control 位选择数据来源,主机下发 READ 命令后,HBM3 会按照 “读命令(RD, RDA)” 章节定义的读命令协议(如读延迟、突发长度)和时序(如前导码、后导码时钟)进行响应。
各类读数据源的预期用途如下:
- 读取 LFSR 比较模式测试序列后的粘性错误位(将 DWORD Read Mux Control 设为 1'b1—— 返回 LFSR_COMPARE_STICKY 位):粘性错误数据为每个信号 1 位,在接口上以静态值的形式输出,覆盖整个读突发长度。
注:使用 LFSR 模式(参见 “6.8.6 DWORD LFSR 模式(读方向)”)时,需将 DWORD Read Mux Control 设为 1'b0—— 返回 DWORD MISR 寄存器的数据。
- 读取所有或选定信号上的基础时钟模式,用于 DWORD 读链路训练(将 DWORD Read Mux Control 设为 1'b0—— 返回 DWORD MISR 寄存器的数据):可通过预置模式或 DWORD 写寄存器操作(参见 “6.8.4 AWORD 和 DWORD 写寄存器模式”)设置需切换的信号。
- 读取 MISR 模式测试序列结束时 MISR 寄存器的最终值(将 DWORD Read Mux Control 设为 1'b0—— 返回 DWORD MISR 寄存器的数据):MISR 模式测试序列的结果可通过功能接口读取,也可通过 IEEE 1500 端口的 DWORD_MISR 指令读取。根据厂商实现的不同,MISR 内容会在 UI 0~3 上发送,然后在 UI 4~7 上重复发送,或直接发送最近一次写操作的所有数据(UI 0~7)(参见表 18“环回测试模式下的 DWORD MISR 读 / 写操作”)。
6.8.5.1 DWORD 读寄存器模式的测试方法
a) 将 MR7 的 DWORD Loopback Enable 位设为 1'b1(启用),DWORD MISR Control 位设为 3'b010(寄存器模式),DWORD Read Mux Control 位设为 0,启用测试模式并选择需回读的寄存器。b) 主机发送一个或多个 DWORD READ 命令,HBM3 会按照读延迟和突发长度设置,遵循正常读协议进行响应。
6.8.6 DWORD LFSR 模式(读方向)(DWORD LFSR Mode (Read direction))
在 DWORD LFSR 模式(读方向)下,HBM3 会响应主机下发的 READ 命令,通过 LFSR 生成 DWORD 数据。LFSR 数据的生成仅与读协议的有效 UI 同步;读前导码和后导码 RDQS 时钟的生成需符合读协议。生成的第一个数据周期为 LFSR 的初始状态(基于预置值或加载的自定义种子值)。图 69 展示了 DWORD LFSR 模式(读方向)的行为。

注:由于 AWORD 总线无法向主机提供数据,因此不存在 AWORD LFSR 模式。
6.8.6.1 DWORD LFSR 模式(读方向)的测试方法
a) 将 MR7 的 DWORD Loopback Enable 位设为 1'b1(启用),DWORD MISR Control 位设为 3'b000(预置),完成测试序列的初始化。控制器可通过功能接口或 IEEE 1500 端口(参见 “6.8.4 AWORD 和 DWORD 写寄存器模式” 及 “DWORD_MISR IEEE 1500 端口指令”)向 DWORD MISR 寄存器加载自定义种子值。
b) 将 MR7 的 DWORD MISR Control 位设为 3'b001(LFSR 模式),DWORD Read Mux Control 位设为 1'b0(返回 DWORD MISR 寄存器的数据),启用 DWORD LFSR 模式。
c) 主机发送一个或多个 DWORD READ 命令,HBM3 会按照读延迟和突发长度设置,遵循正常读协议进行响应,并通过 LFSR 生成数据。建议主机端采用特征寄存器电路检查接收数据的有效性。
6.8.7 AWORD 和 DWORD 写 LFSR 比较模式(AWORD and DWORD Write LFSR Compare Modes)
LFSR 比较模式可直接定位主机与 HBM3 之间失效的信号连接。假设主机实现的 LFSR 数据生成器与 HBM3 LFSR 的长度和多项式匹配,且主机与 HBM3 的 LFSR 同步启动并运行。LFSR 会在每个信号上生成数据,比较电路则会检查每个数据单位间隔(UI)的接收数据与预期数据是否匹配。若 HBM3 输入(基于相应的 CK 或 WDQS 时钟)接收的数据与 HBM3 LFSR 预测的数据不匹配,会将对应信号的粘性错误位设为 1'b1。HBM3 预期从主机接收并比较的第一个数据周期为 LFSR 的初始状态(基于预置值或加载的自定义种子值)。
一旦某一信号被检测到不匹配,其粘性错误位会被设为 1'b1,并在整个测试序列期间保持该状态。粘性错误位可通过 IEEE 1500 端口的 READ_LFSR_COMPARE_STICKY 指令读取,也可通过功能接口读取(参见 “6.8.5 DWORD 读寄存器模式”);其中,AWORD 粘性错误位仅支持通过 IEEE 1500 端口读取。通过将 MR7 的 DWORD MISR Control 位设为 3'b000(预置),或通过 IEEE 1500 的 AWORD_MISR_CONFIG MODE 位设为 2'b00(预置),可将粘性错误位复位为 1'b0。
图 70 展示了 LFSR 比较模式的系统级配置。

需注意,主机向 HBM3 发送的 DWORD 奇偶校验信号数据,仅用于测试奇偶校验信号路径及 HBM3 输入时序和逻辑,主机端奇偶校验信号生成的实现方式未作规定。此外,无论是否存在激活的通道修复(可能改变物理信号路由),比较电路都会将主机驱动的逻辑信号与 HBM3 对应的逻辑信号数据进行比较。AWORD LFSR 比较电路与 DWORD 比较电路的结构一致,仅缺少奇偶校验信号相关模块。
6.8.7.1 AWORD(写)LFSR 比较模式的测试方法
a) HBM3 完成必要的初始化后,主机下发预充电掉电或自刷新命令(R0 = 低电平),并停止向 HBM3 发送 CK 时钟(CK_t = 低电平,CK_c = 高电平)。
b) 将 AWORD_MISR_CONFIG 的 Enable 位设为 1'b1(启用),MODE 位设为 2'b00(预置),完成 AWORD MISR(LFSR)寄存器的初始化。预置操作同时会清除 AWORD 各信号的粘性错误位,并激活前导码时钟滤波电路。主机端的 LFSR 数据生成器也需初始化为相同值。
c) 将 AWORD_MISR_CONFIG 的 MODE 位设为 2'b01(LFSR 比较模式),启用 AWORD LFSR 比较模式。
d) 主机发送两个或更多 CK 时钟周期,并在 AWORD 信号上传输 LFSR 生成的数据。HBM3 会将接收的第一个 CK 周期视为前导码时钟并丢弃,随后 HBM3 LFSR 会基于主机与 HBM3 匹配的 LFSR 多项式和初始种子,预测每个周期从主机接收的 AWORD 数据。任何不匹配都会将对应信号的粘性错误位设为 1'b1;若启用了奇偶校验功能,还会同时评估奇偶校验。主机最终需将 CK 时钟设为 CK_t = 低电平、CK_c = 高电平的状态。
e) 主机读取粘性错误位,确定失效的信号。这些位可通过 IEEE 1500 端口的 READ_LFSR_COMPARE_STICKY 指令读取。
6.8.7.2 DWORD 写 LFSR 比较模式的测试方法
a) 将 MR7 的 DWORD Loopback Enable 位设为 1'b1(启用),DWORD MISR Control 位设为 3'b000(预置),完成 DWORD LFSR(MISR)寄存器的初始化。预置操作同时会清除 DWORD 各信号的粘性错误位。控制器可通过功能接口或 IEEE 1500 端口(参见 “6.8.4 AWORD 和 DWORD 写寄存器模式” 及 “DWORD_MISR IEEE 1500 端口指令”)向 DWORD MISR 寄存器加载自定义种子值。主机端的 LFSR 数据生成器也需预置 / 初始化为相同值。
b) 将 MR7 的 DWORD MISR Control 位设为 3'b100(LFSR 比较模式),启用 DWORD LFSR 比较模式。
c) 主机按照写延迟和突发长度设置,遵循正常写协议发送一个或多个 DWORD 写周期,并在 DWORD 信号上传输 LFSR 生成的数据。HBM3 LFSR 会基于主机与 HBM3 匹配的 LFSR 多项式和初始种子,预测每个周期从主机接收的 DWORD 数据。任何不匹配都会将对应信号的粘性错误位设为 1'b1;若启用了奇偶校验功能,还会同时评估奇偶校验。
d) 主机读取粘性错误位,确定失效的信号。这些位可通过 IEEE 1500 端口的 READ_LFSR_COMPARE_STICKY 指令读取,也可通过功能接口读取(参见 “6.8.5 DWORD 读寄存器模式”)。
6.9 片上 DRAM 纠错码(On-die DRAM ECC)
6.9.1 纠错码概述(ECC Overview)
HBM3 器件采用基于符号的片上纠错码(ECC)、读 / 写元数据(MD)位、错误擦洗机制、错误透明协议、接口传输奇偶校验以及故障隔离限制,以实现高水平的系统可靠性、可用性和可维护性(RAS)。
HBM3 纠错码特性:
- 最小码长为 304 位(codeword)
- 256 位 + 16 位用户数据访问大小
- 基于符号的片上纠错码
- 符号大小由具体实现决定
- 片上纠错码实时透明传输
- 每个伪通道(PC)配备 2 个引脚传输错误等级(severity)
- 仅在单比特错误(SBE)超过阈值后才发出通知
- 自动化片上错误擦洗机制
- 可通过模式寄存器(MR)启用 / 禁用 REFab 操作期间的自动错误检查与擦洗(ECS)
- 可通过模式寄存器(MR)启用 / 禁用自刷新(SRF)期间的自动错误检查与擦洗(ECS)
- 可通过模式寄存器(MR)位启用 ECS 期间多比特纠错(CEm)功能
- 仅在 ECS 期间记录错误
- 单比特读 / 写数据接口奇偶校验
- 奇偶校验计算涵盖 DQ、DBI 和 ECC 位
- 奇偶校验计算不涵盖 SEV 透明位
片上纠错码引擎示例概览如图 71 所示。

6.9.2 HBM3 片上纠错码要求(HBM3 On-die ECC Requirements)
片上纠错码引擎:
HBM3 器件需实现基于符号的片上纠错码。
HBM3 片上纠错码的码长由符号大小的纠错能力决定,码长中的数据位(dataword)和示例校验位(check-bits)定义如下:
- 数据位(Data-word):272 位(每个 PC 含 256 位数据 + 16 位元数据)
- 片上纠错码校验位(On-die ECC check-bits):由具体实现决定(例如,若支持 16 位单符号纠错,则需 32 位校验位)
272 位用户数据包含两部分:通过 32 个 DQ 引脚 × 突发长度 8(BL8)传输的 256 位数据,以及通过 2 个 ECC 引脚 × 突发长度 8(BL8)传输的 16 位数据。
读操作时,DRAM 会在将数据返回至内存控制器之前,纠正所有小于等于单个符号大小且处于符号边界内的错误,但不会在读周期内将纠正后的数据写回存储阵列。
写操作时,DRAM 会计算校验位,并将数据与校验位一同写入存储阵列。
若通过 MR9 OP0 位禁用接口元数据(MD)位,则 DRAM 可对纠错码数据位中对应 16 位元数据位的取值做任意假设。仅当接口元数据功能启用时,DRAM 才能保证存储阵列中元数据位的有效性;接口元数据设置的禁用状态不会影响纠错码引擎对元数据位的处理方式。
具体使用的纠错码 H 矩阵、符号大小以及码长数量均由具体实现决定。
6.9.3 DRAM 故障隔离要求(DRAM Fault Isolation Requirements)
故障隔离指对各类故障导致的错误进行管理,确保错误被限制在特定边界内,且不受片上纠错码(od-ECC)操作的影响。
故障隔离边界需结合纠错码符号大小来确定,以最大限度提升多比特故障的纠错能力。设计需确保最常见的多比特故障模式所产生的错误,能被限制在可纠正的符号大小范围内或错误位数更少。
6.9.4 错误检查与擦洗(ECS)
HBM3 器件需实现自动错误检查与擦洗(Auto ECS)功能。自动 ECS 利用片上纠错码,在 REFab 和自刷新(SRF)期间后台运行。ECS 模式下,DRAM 可在保持透明传输的同时,内部执行读操作、检测错误、纠正错误,并将纠正后的数据位写回存储阵列(即错误擦洗)。片上纠错码在自动 ECS 期间纠正的所有错误,均需按照本节规定的规则记录到透明寄存器中。
自动 ECS 期间的内部读 - 修改 - 写周期流程:
- 从 DRAM 存储阵列中读取完整的码长(codeword)数据。
- 若纠错码引擎检测到单比特错误(CEs),则纠正该错误,并将纠正后的码长数据写回 DRAM。
- 若纠错码引擎检测到可纠正的多比特错误(CEm),则纠正该错误,并将纠正后的码长数据写回 DRAM;可通过 MR9 OP6 位启用 / 禁用 ECS 期间的多比特纠错功能。
- 若检测到码长数据存在不可纠正错误(UE),则不修改码长数据中的位,且不得将该码长数据写回 DRAM。
- 若纠错码引擎未检测到错误,DRAM 可选择将生成的码长数据写回 DRAM,也可选择不写回。
ECS 相关模式寄存器控制:
|
ECS 模式(ECS Mode) |
模式寄存器值(默认均为禁用) |
|
基于 REFab 的自动 ECS(Auto ECS via REFab) |
MR9 OP4 位:1 = 启用,0 = 禁用 |
|
自刷新期间的自动 ECS(Auto ECS during Self Refresh) |
MR9 OP5 位:1 = 启用,0 = 禁用 |
|
ECS 期间的多比特纠错(CEm during ECS) |
MR9 OP6 位:1 = 启用,0 = 禁用 |
|
ECS 错误类型与地址重置(ECS Error Type and Address Reset) |
MR9 OP7 位:1 = 重置(自清除),0 = 保持 |
|
带日志读出的 ECS 错误日志重置(ECS Error Log Reset with Log Read-out) |
MR8 OP2 位:1 = 启用,0 = 禁用 |
注 1:用于 ECS 的 REFab 命令会计入刷新计数。注 2:当启用基于 REFab 的 ECS 时,主机需以平均 tECSint 周期下发 REFab 命令。
片上错误检查与擦洗日志(ECS Log)中错误类型和地址的初始状态,可通过器件复位或向 MR9 OP7 位写入 “1” 来设置。
表 55 中定义的 ECS 模式相关 MR9 OP [6:4] 位,需在 DRAM 初始化期间完成编程,且在首次 ECS 操作后不得修改(除非后续执行 ECS 重置),否则后续 ECS 操作可能出现未定义行为。
仅当存储阵列位在执行 ECS 操作前已完成写入(确保 DRAM 能计算正确的奇偶校验位)时,DRAM 才能保证 ECS 操作的有效性。
ECS 相关时序参数:
ECS 操作时序如图 72 所示。

- tECSC:HBM3 完成 ECS 操作的最大时间
- tECSint:在指定 tECS 周期(如 24 小时)内覆盖所有码长所需的平均 ECS 间隔
- tECS:完成所有码长 ECS 操作的总周期
- ERRTH:用于透明传输的厂商特定 ERRCNT 过滤阈值,仅当 ERRCNT>ERRTH 时才记录纠正错误(CE)并通过 SEV 引脚传输
为在推荐 tECS 周期(如 24 小时)内完成完整的错误检查与擦洗,ECS 操作的平均周期(tECSint)需通过 86400 秒除以总码长数量计算得出(如表 56 所示),具体 ECS 操作次数由器件配置决定。
表 56 每堆叠的 tECSint(ECS 独立于 SID)
|
配置(Configuration) |
16 Gb × 4/8/12/16 |
24 Gb × 4/8/12/16 |
32 Gb × 4/8/12/16 |
|
每器件容量(GB per device) |
8/16/24/32 GB |
12/24/36/48 GB |
16/32/48/64 GB |
|
每伪通道容量(Gb per PC) |
2 Gb |
3 Gb |
4 Gb |
|
每伪通道每 SID 的 304 位码长数量 |
2²³ |
2²³×1.5 |
2²⁴ |
|
每伪通道的 tECSint [ms] |
10.300 |
6.866 |
5.150 |
当 HBM3 处于 ECS 模式时,需主机周期性下发 REFab 命令以执行 ECS 操作。为使 DRAM 在推荐 tECS 周期(如 24 小时)内完成自动擦洗,REFab 命令的最大平均间隔需为 tECSint。满足该 REFab 命令要求后,DRAM 可在 ECS 模式下执行 ECS 操作,且无需对刷新模式(如全银行 / 单银行刷新或正常模式刷新)的使用施加额外限制;超出 DRAM ECS 操作需求(每 tECSint 周期 1 次)的 REFab 命令,可被 DRAM 用于正常刷新操作。
ECS 相关日志记录:
ECS 日志寄存器按每个 PC 和 SID 分配,可通过 IEEE 1500 接口访问。
- 当片上纠错码检测到错误时,需将该错误对应的 DRAM 地址(格式为 Bank、Row、Column)及错误类型等级(Error Type Severity)记录到日志中。
- 错误需在 tECSC 时序内完成记录,并可通过 IEEE 1500 接口访问。
错误记录优先级如表 57 所示。
表 57 处理多错误记录的错误覆盖优先级规则
|
之前的错误(Previous Error) |
当前的错误(Current Error) |
|||
|
无错误(NE) |
单比特纠错(CEs) |
多比特纠错(CEm) |
不可纠正错误(UE) |
|
|
无错误(NE) |
保持 |
更新 |
更新 |
更新 |
|
单比特纠错(CEs) |
保持 |
保持 |
更新 |
更新 |
|
多比特纠错(CEm) |
保持 |
保持 |
保持 |
更新 |
|
不可纠正错误(UE) |
保持 |
保持 |
保持 |
更新 |
注 1:若在重置过程中同时出现新的 ECS 错误,最新错误的记录可能丢失。注 2:当 MR8 OP2=1 时,仅当 ECS 错误日志的捕获包装数据寄存器(WDR)有效时,才能保证 ECS 错误日志的重置。
ECS 错误日志重置:
ECS 错误日志重置会将 ECS_ERROR_LOG WDR 的所有有效位(VALID bits)清零为 0b,并将错误优先级日志设为 “无错误(NE)”。错误日志清零可通过以下三种独立方式实现:
- 主机下发器件复位(RESET)命令
- 主机通过 MR9 OP7 位下发日志重置命令
- 主机配置 MR8 OP2 位启用 ECS 错误日志自动重置功能,此时读取错误日志后会自动触发日志重置
错误计数:
ECS 期间会对纠正错误(CE)进行计数,以控制读操作期间是否通过 SEV 引脚传输纠正错误的等级信息。错误计数默认假设每个访问对应一个码长。
- ERRCNT:ECS 期间累积的错误事件数量
- ERRCNT 按每个 PC 和 SID 独立维护
- 单比特纠错(CEs)计为 1 次 ERRCNT 事件
- 多比特纠错(CEm)和不可纠正错误(UE)不计入 ERRCNT
- 若使用多个码长,且所有码长均出现单比特纠错(CEs),则计为 1 次多比特纠错(CEm)
- 每个码长对应的 ERRCNT 最大增量为 1
ERRCNT 重置:
HBM3 会在每个 tECS 周期后自动内部重置 ERRCNT。
6.9.5 片上纠错码透明协议(On-die ECC Transparency Protocol)
HBM3 器件需提供片上纠错码引擎操作的透明传输功能,具体需传输的信息及传输方式如表 58 所示。
表 58 透明传输属性及其访问 / 控制机制
|
属性(Attribute) |
操作(Operation) |
透明传输机制(Transparency Mechanism) |
|
实时等级元数据(Real-time severity metadata) |
读(RD/RDA) |
每个 PC 配备 2 个 SEV 引脚 |
|
错误地址与等级记录(Logging address and severity of an error) |
错误检查与擦洗(ECS) |
IEEE 1500 寄存器 |
等级元数据(Severity Metadata):
错误等级表示读操作期间片上纠错码引擎对码长数据的处理结果,该等级信息会通过 SEV 引脚与 DQ 引脚上的数据传输同步发送。对于每个 BL8 事务,等级信息的编码方式如表 59 所示。
表 59 SEV 引脚上的等级编码
|
错误等级(Severity) |
引脚(Pin) |
突发位置(Burst Position) |
|||||||
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
||
|
无错误(NE) |
SEV[0] |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
SEV[1] |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
单比特纠错(CEs) |
SEV[0] |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
|
SEV[1] |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
多比特纠错(CEm) |
SEV[0] |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
|
SEV[1] |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
|
|
不可纠正错误(UE) |
SEV[0] |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
SEV[1] |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
等级元数据信号控制:
HBM3 器件通过模式寄存器 MR9 OP1 位,启用或禁用片上错误等级元数据的信号传输功能。
表 60 读操作时的等级传输
|
片上纠错码等级(On-die ECC Severity) |
无错误(NE) |
单比特纠错(CEs) |
不可纠正错误(UE) |
|
SEV [1:0] 上的等级(Severity on SEV [1:0]) |
无错误(NE) |
若 ERRCNT≤ERRTH 则为无错误(NE);若之前或当前 ERRCNT>ERRTH 则为单比特纠错(CEs) |
不可纠正错误(UE) |
CEs 在 SEV 引脚上的输出使能时序如图 73 所示。

6.9.6 纠错码引擎测试模式(ECC Engine Test Mode)
HBM3 器件提供片上纠错码引擎的测试方法,该方法仅针对片上纠错码引擎,不涉及对存储核心的错误访问。错误注入的结果会按照透明协议进行报告。
表 61 纠错码引擎测试模式
|
通过 MRS 选择(Selection by MRS) |
纠错码引擎测试模式(ECC Engine Test Mode) |
|
纠错码引擎测试模式(MR9 OP2) |
0 = 正常操作(默认);1 = 纠错码引擎测试模式 |
|
错误向量模式(MR9 OP3) |
0 = 码长 0(CW0):数据 “1” 表示错误位,数据 “0” 表示正常位;1 = 码长 1(CW1):数据 “0” 表示错误位,数据 “1” 表示正常位 |
当处于表 61 所示的纠错码引擎测试模式时:
- 写命令(WR)用作错误注入命令,写入的 DQ 数据为错误注入模式(由 MR9 OP3 位选择 CW0 或 CW1)
- 读命令(RD)用作结果输出命令,读出的 DQ/ECC/SEV 数据为纠错码引擎测试的结果
片上纠错码引擎测试模式的功能执行流程:
需遵循以下流程对 HBM3 DRAM 执行片上纠错码引擎功能测试模式,具体参见图 74 和表 62。

- HBM3 器件通过 MR9 OP [3:2] 位接收模式寄存器设置(MRS)命令,进入表 61 所示的片上纠错码引擎测试模式。需通过 MR9 OP1 位的 SEVR 位启用错误等级报告功能;需根据用户需求,通过 MR9 OP0 位的 MD 位设置是否在测试中包含 ECC 信号。
- 以表 62 “纠错码引擎测试的错误向量及对应等级示例” 为例,在 CW0 模式下,写入 “1” 表示错误,写入 “0” 表示无错误(NE)。符号边界由厂商决定,输出结果及等级信息由主机注入的错误类型决定。
- 为检查引擎测试结果,需在 tWTR 时序后执行读操作:
A. 在 CW0 模式下,若数据为单比特纠错(CEs)或多比特纠错(CEm),则 DQ 引脚输出的纠正后数据全为 “0”;若数据为不可纠正错误(UE),则 DQ 引脚输出写入时的数据。
B. SEV [1:0] 引脚的 BL [7:4] 位会指示无错误(NE)、单比特纠错(CEs)、多比特纠错(CEm)和不可纠正错误(UE)。单比特纠错(CEs)的等级信息可通过 SEV [1:0] 引脚进行实时信号传输;在纠错码引擎测试期间,忽略 ERRTH 值。
- 重复步骤 2~3 的流程,且在 tRTW 时序后执行引擎测试操作:
A. 例如:模式进入→写(WR)→读(RD)→写(WR)→读(RD)→写(WR)→读(RD)→……
B. 在此流程中,单个写命令(WR)后必须跟随单个读命令(RD)。
DQ/ECC 与 DATA [271:0] 的映射关系由厂商决定。当模式寄存器(MRS)位启用时,不访问存储核心,此时数据模式被解读为错误向量。HBM3 处于纠错码引擎测试模式时,不保证数据保持能力,且仅允许下发 CNOP、WR、RD 命令以及用于禁用该测试模式的 MRS 命令。
表 62 纠错码引擎测试的错误向量及对应等级示例
|
错误向量模式(MR9 OP3) |
输入错误向量(Input Error Vector) (写入数据) |
输出数据(Output Data) [271:0] |
错误等级(Severity) (SEV[1:0]) |
备注(Note) |
|
无错误(NE) |
CW0:0000…00000000 CW1:1111…11111111 |
CW0:0000…00000000 CW1:1111…11111111 |
无错误(NE) |
注 1 注 2 |
|
单比特纠错(CEs) |
CW0:1000…00000000 0000…00000001 CW1:0111…11111111 1111…11111110 |
CW0:0000…00000000 0000…00000000 CW1:1111…11111111 1111…11111111 |
单比特纠错(CEs) |
注 1 注 2 |
|
多比特纠错(CEm) |
CW0:0000…00001111 1111…00000000 CW1:1111…11110000 0000…11111111 |
CW0:0000…00000000 0000…00000000 CW1:1111…11111111 1111…11111111 |
多比特纠错(CEm) |
注 1、注 3 注 2、注 3 |
|
不可纠正错误(UE) |
CW0 或 CW1:上述以外的模式 |
未指定 |
不可纠正错误(UE) |
- |
注 1:CW0 表示 “1” 为错误位,“0” 为正常位。注 2:CW1 表示 “0” 为错误位,“1” 为正常位。注 3:多比特纠错(CEm)限制在单个符号内。
纠错码引擎测试模式的时序图如图 75 所示。

注 1:纠错码引擎测试模式下,写(WR)和读(RD)命令的地址必须相同。
注 2:纠错码引擎测试模式下,写(WR)和读(RD)命令无需在之前下发激活(ACT)命令。
注 3:除 CNOP 命令和用于禁用纠错码引擎测试模式的 MRS 命令外,不允许下发其他命令。
注 4:示例中 WL=4、RL=6。
注 5:DATA 表示 PC0 的 DQ [31:0]、DBI [3:0]、ECC [1:0]、SEV [1:0],以及 PC1 的 DQ [63:32]、DBI [7:4]、ECC [3:2]、SEV [3:2];WDQS_t/_c 表示 PC0 的 WDQS0_t/_c 和 PC1 的 WDQS1_t/_c;RDQS_t/_c 表示 PC0 的 RDQS0_t/_c 和 PC1 的 RDQS1_t/_c。
注 6:Da…Da+7 表示写命令的输入数据;Db…Db+7 表示读命令的输出数据。
注 7:示例中 tWDQS2DQ_O=0、tDQSS=0,且标称 tQW。
注 8:纠错码引擎测试模式下,由于写(WR)和读(RD)命令访问同一银行组的银行,因此 tWTR 需为 tWTRL。
注 9:可启用或禁用 WDBI 和 RDBI 功能,WDBI 由 MR0 OP1 位控制,RDBI 由 MR0 OP0 位控制。
注 10:推荐在纠错码引擎测试模式输出时禁用 WDBI 和 RDBI 功能(参见表 62 “纠错码引擎测试的错误向量及对应等级示例”)。
注 11:必须启用 SEVR 功能,以验证片上纠错码的透明传输。
注 12:建议评估 MD 位,并在 MD 启用时不包含 ECC 信号。
注 13:此测试模式下,写(WR)和读(RD)命令无需在之前下发激活(ACT)命令。
6.10 WDQS 间隔振荡器(WOSC)
6.10.1 WDQS 间隔振荡器(WDQS Interval Oscillator)
当 HBM3 DRAM 的电压和温度发生变化时,WDQS 时钟树的延迟会随之偏移,可能需要重新训练。HBM3 DRAM 内置一个 WDQS 时钟树振荡器,用于测量特定时间间隔(由控制器决定)内的延迟量,使控制器能够将已训练的延迟值与后续时间点测得的延迟值进行对比。该 WDQS 间隔振荡器(以下简称 “振荡器”)可向控制器提供是否需要重新训练以及潜在误差幅度的关键信息,助力控制器判断链路状态。
振荡器不与任何通道关联,其运行完全独立于各通道的工作频率和状态(如银行激活、银行空闲、掉电或自刷新模式)。此外,振荡器计数期间无需 CK、WDQS 或 WRCK 时钟。器件上电后,振荡器默认处于禁用状态。
与振荡器相关的 IEEE 1500 指令为 WOSC_RUN 和 WOSC_COUNT。将 WOSC_RUN 包装数据寄存器(Wrapper Data Register, WDR)中的 WOSC_START_STOP 位设为 1 时,会启动一个内部环形振荡器,该振荡器会对信号在 WDQS 时钟树副本中传播的次数进行计数。将 WOSC_START_STOP 位复位为 0 时,振荡器停止工作。振荡器的最大计数值为\(2^{24}-1\)(即 16777215),为避免计数器溢出,振荡器可运行的最长时间间隔可通过以下公式计算:\(最长运行时间间隔 = 2^{24} \times t_{RX\_DQS2DQ}(\text{min})\)
WOSC_COUNT WDR 中的 WOSC_COUNT_VALID 位用于指示时钟计数的有效性,默认值 0 表示计数无效;振荡器启动时,该位也会被置为 0。当振荡器停止时,WOSC_COUNT_VALID 位会被置为 1 以表示计数有效,同时计数器的结果会存储到 WOSC_COUNT WDR 的 WOSC_COUNT_VALUE 字段中。若计数器溢出(计数超过\(2^{24}\)个周期)或振荡器因 RESET_n 引脚被拉低而中断,则 WOSC_COUNT_VALID 位将保持 0(无效状态)。反之,将 WRST_n 引脚拉低不会影响振荡器的运行。振荡器停止后,主机可下发 WOSC_COUNT 指令读取计数结果。
控制器可通过调整振荡器的运行时长来改变结果的精度:运行时长越短,精度越低;运行时长越长,精度越高。在特定温度和电压条件下,结果的精度可通过以下公式计算:\(WDQS振荡器粒度误差 = \frac{2 \times (WDQS延迟)}{运行时间}\)其中:
- 运行时间(Run Time):振荡器从启动到自动停止的总时间
- WDQS 延迟(WDQS delay):WDQS 时钟树延迟的取值(参考\(t_{RX\_DQS2DQ}(\text{min/max})\))
除上述粒度误差外,还需考虑匹配误差 —— 即 WDQS 训练电路与实际 WDQS 时钟树在电压和温度变化下的延迟差异,该误差值由厂商决定。
因此,WDQS 振荡器计数器的总精度可通过以下公式表示:\(WDQS振荡器精度 = 1 - 粒度误差 - 匹配误差\)
示例 1:短时长运行下的振荡器精度
若振荡器从启动到停止的总时间为 100ns,WDQS 时钟树的最大延迟为 400ps(参考\(t_{RX\_DQS2DQ}(\text{max})\)),则 WDQS 振荡器的粒度误差计算如下:\(WDQS振荡器粒度误差 = \frac{2 \times 0.4\ \text{ns}}{100\ \text{ns}} = 0.8\%\)此粒度误差对应的时序误差为 8ps。
假设在电压和温度变化范围内,电路的匹配误差为 5.5ps,则振荡器的总精度为:\(WDQS振荡器精度 = 1 - (0.8\% + \frac{5.5\ \text{ps}}{100\ \text{ns}}) = 1 - (0.8\% + 0.0055\%) = 99.1945\%\)
示例 2:长时长运行下的振荡器精度
延长振荡器运行时间可提升精度。若振荡器总运行时间为 250ns,WDQS 时钟树的最大延迟仍为 400ps(参考\(t_{RX\_DQS2DQ}(\text{max})\)),则粒度误差计算如下:\(WDQS振荡器粒度误差 = \frac{2 \times 0.4\ \text{ns}}{250\ \text{ns}} = 0.32\%\)此粒度误差对应的时序误差降至 3.2ps。
若匹配误差仍为 5.5ps,则振荡器的总精度提升为:\(WDQS振荡器精度 = 1 - (0.32\% + \frac{5.5\ \text{ps}}{250\ \text{ns}}) = 1 - (0.32\% + 0.0022\%) = 99.6778\%\)
振荡器匹配误差的定义与计算
WDQS 间隔振荡器的匹配误差,指 WDQS 训练电路(即间隔振荡器)与实际 WDQS 时钟树在电压和温度变化下的延迟差异,该误差是评估振荡器测量准确性的关键指标。
相关参数定义
- \(t_{RX\_DQS2DQ}\):实际 WDQS 时钟树的延迟
- \(t_{WDQSosc}\):训练电路(间隔振荡器)的延迟
- \(WOSC_{Offset(V)}\):电压变化范围内的平均延迟差异
- \(WOSC_{Offset(T)}\):温度变化范围内的平均延迟差异
- \(WOSC_{Match(V)}\):电压变化范围内的 WDQS 振荡器匹配误差
- \(WOSC_{Match(T)}\):温度变化范围内的 WDQS 振荡器匹配误差
电压变化下的振荡器偏移与匹配误差
在温度固定的条件下,电压变化会导致振荡器与实际 WDQS 时钟树的延迟产生差异,其偏移特性如图 76 所示。

图中,\(t_{RX\_DQS2DQ(V)}\)代表不同电压下实际 WDQS 时钟树的延迟,\(t_{WDQSosc(V)}\)代表不同电压下振荡器的延迟,两者的差值即为各电压点的延迟偏移(如 Offset1_volt、Offset2_volt)。电压变化范围内的平均延迟偏移\(WOSC_{Offset(V)}\)可通过以下公式计算:\(WOSC_{Offset(V)} = \text{avg}(\text{Offset1_volt}, \text{Offset2_volt})\)其中,Offset1_volt(端点处)\(= t_{RX\_DQS2DQ(V)} - t_{WDQSosc(V)}\),Offset2_volt(端点处)同理。
而电压变化范围内的匹配误差\(WOSC_{Match(V)}\),表示扣除平均偏移后的实际延迟差异,计算公式为:\(WOSC_{Match(V)} = \left| t_{RX\_DQS2DQ(V)} - t_{WDQSosc(V)} - WOSC_{Offset(V)} \right|\)
温度变化下的振荡器偏移与匹配误差
在电压固定的条件下,温度变化同样会引发振荡器与实际 WDQS 时钟树的延迟差异,其偏移特性如图 77 所示。

图中,\(t_{RX\_DQS2DQ(T)}\)代表不同温度下实际 WDQS 时钟树的延迟,\(t_{WDQSosc(T)}\)代表不同温度下振荡器的延迟,两者的差值为各温度点的延迟偏移(如 Offset1_temp、Offset2_temp)。温度变化范围内的平均延迟偏移\(WOSC_{Offset(T)}\)计算公式为:\(WOSC_{Offset(T)} = \text{avg}(\text{Offset1_temp}, \text{Offset2_temp})\)其中,Offset1_temp(端点处)\(= t_{RX\_DQS2DQ(T)} - t_{WDQSosc(T)}\),Offset2_temp(端点处)同理。
温度变化范围内的匹配误差\(WOSC_{Match(T)}\),为扣除平均偏移后的实际延迟差异,计算公式为:\(WOSC_{Match(T)} = \left| t_{RX\_DQS2DQ(T)} - t_{WDQSosc(T)} - WOSC_{Offset(T)} \right|\)
同时,温度变化下振荡器的延迟\(t_{WDQSosc(T)}\)可通过运行时间推导:\(t_{WDQSosc(T)} = \frac{\text{运行时间}}{\text{振荡次数}}\)
WDQS 振荡器匹配误差规格
下表明确了 WDQS 振荡器在电压和温度变化下的匹配误差及偏移参数规格,这些参数是评估振荡器性能的核心指标。
表 63 — WDQS 振荡器匹配误差规格
|
参数(Parameter) |
符号(Symbol) |
最小值(Min) |
最大值(Max) |
单位(Unit) |
备注(Notes) |
|
电压变化下的 WDQS 振荡器匹配误差 |
\(WOSC_{Match(V)}\) |
— |
(厂商指定) |
ps |
1、2、3、5 |
|
温度变化下的 WDQS 振荡器匹配误差 |
\(WOSC_{Match(T)}\) |
— |
(厂商指定) |
ps |
1、2、3、5 |
|
电压变化下的 WDQS 振荡器偏移 |
\(WOSC_{Offset(V)}\) |
— |
(厂商指定) |
ps |
2、5 |
|
温度变化下的 WDQS 振荡器偏移 |
\(WOSC_{Offset(T)}\) |
— |
(厂商指定) |
ps |
2、5 |
备注说明:
- \(WOSC_{Match}\)代表实际 WDQS 与 WDQS 间隔振荡器在电压或温度变化下的匹配误差(单位:ps)。
- 该参数通过设计保证或实测表征确定,确保振荡器性能稳定。
- 测量\(t_{RX\_DQS2DQ}\)时,输入激励在不同电压和温度条件下保持一致,避免外部因素干扰测量结果。
- \(t_{RX\_DQS2DQ}(V或T)\)延迟为运行时间内 WDQS 到 DQ 延迟的平均值,反映该时间段内的延迟趋势。
- 振荡器的匹配误差和偏移均源于 WDQS 间隔振荡器本身,是其固有特性参数。
- 所有参数均按单个器件定义,确保器件个体性能可追溯。
6.10.2 温度和电压变化导致的\(t_{WDQS2DQ\_I}\)偏移
如前所述,HBM3 DRAM 的温度和电压变化会使 WDQS 时钟树延迟偏移,可能需要重新训练。通常情况下,可通过上述振荡器监测延迟变化以控制\(t_{WDQS2DQ\_I}\)(WDQS 到 DQ 输入的延迟);若振荡器无法用于控制\(t_{WDQS2DQ\_I}\),则可参考本小节规定的 “温度和电压变化导致的\(t_{WDQS2DQ\_I}\)偏移” 规格,该规格为特殊场景下的延迟补偿提供依据,确保即使无振荡器辅助,也能通过预设偏移范围评估链路延迟的潜在变化,保障数据传输的时序兼容性。
6.11 占空比调整器与占空比监视器(DCA and DCM)
6.11.1 占空比调整器(DCA)
HBM3 DRAM 支持占空比调整器(DCA)功能,内存控制器可通过该功能调整 DRAM 内部生成的 WDQS 信号,以补偿 WDQS 信号上的系统性占空比误差。DCA 位于 WDQS 分频器(或功能等效模块)之前(参见 “时钟方案高级框图示例” 图 10),其调整效果会同时影响写操作和读操作的 WDQS 占空比。
每个 WDQS 均配备独立的 DCA(参见表 23),具体控制方式如下:
- WDQS0(对应 PC0)的 DCA 通过 MR11 OP [3:0] 位控制;
- WDQS1(对应 PC1)的 DCA 通过 MR11 OP [7:4] 位控制。
DCA 支持 - 7 步至 + 7 步的调整范围(如图 78 所示),其对内部 WDQS 有效占空比的影响规则如下:
- 正值调整:增加有效\(t_{WQSH}\)(WDQS 高电平时间),减少有效\(t_{WQSL}\)(WDQS 低电平时间);
- 负值调整:减少有效\(t_{WQSH}\),增加有效\(t_{WQSL}\)。

内存控制器可根据需求选择是否使用 DCA 功能,但需注意:当 CK 时钟频率低于\(f_{CKDCA}\)时,不支持 DCA 功能,此时必须将 DCA 编码设置为默认值(0000)以禁用 DCA。
无论是否执行占空比监视器(DCM)序列,占空比调整操作都必须在 WDQS-to-CK 对齐训练之前完成,以确保后续训练基于调整后的稳定 WDQS 占空比。
DCA 编码变化对 WDQS 占空比的影响示例如图 79 所示,其最大偏移量和步长规格如表 64 所示。

注:\(t_{WQSH}\)、\(t_{WQSL}\)和\(t_{WDQS}\)的定义参见 “交流时序(AC Timings)” 章节。
表 64 — DCA 最大偏移量与步长规格
|
参数(Parameter) |
最小值(Min) |
最大值(Max) |
单位(Unit) |
备注(Notes) |
|
占空比调整器最大偏移量 |
15 |
35 |
ps |
1、2 |
|
占空比调整器单步调整量 |
2 |
5 |
ps |
1、3 |
备注说明:
- 该参数值通过设计保证,确保调整精度和稳定性。
- 此参数表示从步长 0 到步长 + 7(或步长 0 到步长 - 7)的绝对最大偏移量。
- 单步调整量反映了每一步调整的非线形特性,实际调整效果可能因步长不同略有差异。
6.11.2 占空比监视器(DCM)
HBM3 DRAM 内置占空比监视器(DCM),内存控制器可通过该功能监测 DRAM 内部 WDQS 时钟树的占空比失真情况。
DCM 通过 MR8 OP1 位控制(参见表 20):将 MR8 OP1 位设为 1 时,DCM 启动 WDQS 占空比失真测量,在等待至少\(t_{DCMM}\)时序后,测量结果会通过 DWORD0(对应 PC0)的 DERR0 引脚和 DWORD1(对应 PC1)的 DERR1 引脚输出。从启动测量的 MRS 命令到\(t_{DCMM}\)时序结束的整个测量周期内,需向 DCM 提供偶数个连续的 WDQS 脉冲。测量结果将保持有效,直至 MR8 OP1 位设为 0 以禁用 DCM,且最晚在\(t_{MOD}\)时序结束后,DERR 输出会恢复至默认状态。
表 65 — DCM 测量结果
|
WDQS 占空比结果 |
DERR0、DERR1 状态 |
备注(Notes) |
|
< 50% |
低电平(LOW) |
1 |
|
≥ 50% |
高电平(HIGH) |
1 |
注 1:测量结果在启用 DCM 后的\(t_{DCMM}\)时序后生效。
DCM 模式下允许下发的命令包括:REFab、REFpb、RFMab、RFMpb、RNOP、CNOP,以及用于禁用占空比监视器的 MRS 命令。需注意:在 DCM 模式下使用 REFab、REFpb、RFMab、RFMpb 命令可能会产生内部电流尖峰,进而对测量结果产生负面影响;若控制器无法应对这种影响,应避免在 DCM 模式下使用这些命令。
与 DCA 类似,当 CK 时钟频率低于\(f_{CKDCA}\)时,不支持 DCM 功能。
以下为 WDQS 占空比调整的示例命令序列(另参见图 80):
- 启用两个 WDQS 选通信号;
- 启用 DCM 并等待\(t_{DCMM}\)时序;
- 通过 DERR0 和 DERR1 输出引脚观测测量结果;
- 禁用 DCM 并等待\(t_{MOD}\)时序,此时 DERR0 和 DERR1 输出恢复至默认状态;
- 下发 MRS 命令为两个 WDQS 选通信号设置合适的 DCA 编码,并等待\(t_{MOD}\)时序;
- 根据需要重复步骤 2 至步骤 5;
- 执行 WDQS-to-CK 对齐训练。

注 1:在整个占空比调整过程中,除图中所示的必要 WDQS 脉冲外,主机还可向 DCM 持续发送 WDQS 脉冲。
6.12 自修复(Self Repair)
HBM3 DRAM 支持自修复功能,该功能可通过在初始化过程中扫描并修复 DRAM 中的故障,提升系统级封装(SIP)的组装良率,或实现高水平的系统可靠性。
与 HBM3 自修复功能相关的 IEEE 1500 指令为 SELF_REP 和 SELF_REP_RESULTS。启动自修复功能时,需将 WIR(Wrapper Instruction Register,包装指令寄存器)[7:0] 设为 “1Ah” 以加载 SELF_REP 指令。由于该指令每次可对 8 个通道同时操作,需将 WIR [12:8] 设为 “1Ch” 或 “1Dh” 以选择其中一组 8 个通道执行操作,不支持对两组 8 个通道并行执行自修复操作。SELF_REP 指令的时钟源可选择 WRCK(直接作为时钟源或参考时钟源),或选择独立于 WRCK 及所有 I/O 功能时钟的内部时钟模式。
将 SELF_REP 指令的 REP_TYPE 字段(位 [3:2])设为 “11b” 时,DRAM 会启动自修复过程的第一阶段 ——“自测试(self-test)”,以识别所有硬故障。SELF_REP 指令每次仅对一个 SID(堆叠 ID)生效,需通过 SID_SELECT 字段(位 [5:4])选择不同 SID,对每个 SID 单独执行自修复操作。覆盖所有通道和 SID 所需的 SELF_REP 指令最小数量如表 66 所示。此外,主机需设置 SELFR_REF_RATE 字段(位 [7:6])以控制温度补偿刷新速率。
表 66 — SELF_REP 指令与堆叠高度的对应关系
|
堆叠高度(Stack Height) |
SID(堆叠 ID) |
覆盖所有 16 个通道所需的 SELF_REP 指令最小数量 |
|
4 层(4H) |
SID0 |
2 |
|
8 层(8H) |
SID0、SID1 |
4 |
|
12 层(12H) |
SID0、SID1、SID2 |
6 |
|
16 层(16H) |
SID0、SID1、SID2、SID3 |
8 |
“自测试” 阶段将使用厂商特定的测试图案,以检测 HBM3 DRAM 中的硬故障。完成 “自测试” 后,DRAM 会自动进入 “自动修复(auto-repair)” 阶段,该阶段会利用厂商特定数量的修复资源,自动修复 “自测试” 阶段识别出的故障地址。
SELF_REP 指令可在器件完成正确初始化后(具体为满足\(t_{INIT3}\)时序且 DRAM 处于所有银行空闲状态)的任意时刻下发。由于 SELF_REP 指令通过 WIR [12:8] 选择的 8 个通道执行操作,因此 “1Ch” 和 “1Dh” 对应的 8 个通道均需处于所有银行空闲状态。有关 “1Ch” 和 “1Dh” 对应的通道映射关系,需参考厂商规格说明。
在自修复过程中,主机可通过 SELF_REP 指令的 SR_PROGRESS 字段轮询 DRAM 的状态,DRAM 会反馈当前处于 “自测试中”“自动修复中”“自修复完成” 或 “未运行自修复” 状态。
自修复过程完成后,可下发 SELF_REP_RESULTS 指令读取结果。DRAM 会按每个 SID 反馈结果,具体包括:①是否仍存在故障;②是否仍存在不可修复故障;③是否需重新运行 SELF_REP;④自初始化后是否未运行自修复,或最近一次运行后已无故障残留。
自修复流程扩展说明
若在 “自测试” 和 “自动修复” 阶段完成后,结果显示仍存在故障,可将 SELF_REP 指令的 REP_TYPE 字段设为 “10b”,仅启动 “自动修复” 阶段以修复额外故障 —— 此时 DRAM 会基于之前 “自测试” 阶段获取的故障地址,修复更多行地址故障。若仍存在额外故障,主机可继续下发 REP_TYPE=“10b” 的 SELF_REP 指令,并在之后下发 SELF_REP_RESULTS 指令读取结果,直至 DRAM 反馈 “00b”(表示无故障残留)。若 DRAM 反馈 “11b”,则表示需主机重新下发 REP_TYPE=“01b”(仅自测试)或 “11b”(自测试 + 自动修复)的 SELF_REP 指令,以从 “自测试” 阶段重新加载内部故障地址。
将 REP_TYPE 字段设为 “01b” 时,SELF_REPAIR 指令仅启动 “自测试” 阶段,主机可在测试完成后读取结果,再决定后续操作。
若主机在未先执行 “自测试” 阶段的情况下直接启动 “自动修复” 阶段,SELF_REP_RESULTS 指令会反馈 “00b”(表示无故障地址可修复)。
若 DRAM 反馈某一通道 “仍存在不可修复故障”,表示该通道的修复资源不足以修复 “自测试” 阶段捕获的故障地址,主机可决定是否继续对其他通道执行自修复,或终止修复过程。
自修复过程完成后,主机必须通过将 RESET_n 拉低复位 DRAM,随后按照 “初始化序列(Initialization Sequence)” 流程,在稳定供电条件下重新初始化器件。
主机可通过将 SELF_REP 指令的 REP_TYPE 字段设为 “00b” 取消正在进行的自修复操作,但仅 “自测试” 阶段支持取消。取消后,SELF_REP 指令的 SR_PROGRESS 字段会设为 “00b”,主机需等待\(t_{SELF_CANCEL}\)时序后,才能执行后续自修复操作;若无需继续修复,需复位 DRAM。
若主机未通过轮询确认自修复完成,可参考表 67 中的时序参数判断不同 REP_TYPE 对应的自修复完成时间。
表 67 — 自修复时序参数
|
参数(Parameter) |
REP_TYPE 字段值 |
阶段(Phase) |
最小值 / 最大值(Min/Max) |
单位(Unit) |
|
\(t_{SELF_HEAL}\) |
11b |
自测试 + 自动修复 |
最大值(Max) |
s |
|
\(t_{SELF_REP}\) |
10b |
自动修复 |
最大值(Max) |
s |
|
\(t_{SELF_NR}\) |
01b |
自测试 |
最大值(Max) |
s |
|
\(t_{SELF_CANCEL}\) |
00b |
自测试取消时间 |
最大值(Max) |
μs |
自修复资源与故障处理规则
自修复资源的具体配置由厂商决定,若 DRAM 的每个银行支持两个或以上修复资源,则自修复资源可与硬修复 / 软修复资源共享。DEVICE_ID(器件标识)的 SHARED_REP_RES 字段会指示 DRAM 支持 “独立资源” 还是 “共享资源”:若为共享资源,主机可通过 HS_REP_CAP 指令查询可用于自修复的资源数量;当资源共享时,自修复操作修复的故障会更新每个银行的资源使用状态。DRAM 通过单次 SELF_REP 指令可修复的故障数量由厂商指定。
若 DRAM 的自修复资源与硬 / 软修复资源共享,DRAM 不得使用某一银行的全部修复资源,需为每个银行保留 1 个资源供主机执行软修复操作。若主机希望允许自修复使用所有共享资源,可将 SHARED_OVERRIDE 字段设为 “1b”;若资源为独立配置,则 SHARED_OVERRIDE 字段无效。
在执行自修复前,建议主机通过 “撤销(undo)” 功能清除计划执行自修复的通道上的所有软修复配置,或执行芯片复位操作。若未执行此操作,DRAM 可能会占用共享资源,导致后续操作(包括数据存储)无法保证正常执行,甚至可能出现数据丢失。自修复完成后,主机可在确认资源可用的情况下执行软修复操作。
表 68 展示了 SHARED_OVERRIDE 字段设为 “0”(默认)和 “1” 时,DRAM 的预期行为及对应的 SELF_REP_RESULTS 反馈结果。
表 68 — 资源共享时 SELF_REP 的 DRAM 预期行为
|
场景(Case) |
资源与故障关系(Resource vs Fails) |
覆盖配置(Override)(0 = 默认) |
DRAM 行为(DRAM behavior) |
结果(Results) |
自修复后的资源数量(Resource (s) after SELF_REP) |
后续硬 / 软修复(Subsequent Hard/Soft repair) |
||
|
自修复前资源数量(Resource (s) before SELF_REP) |
故障数量(Fails) |
|||||||
|
1 |
1 |
2 |
0(否) |
未修复(No repair) |
仍存在不可修复故障(Unrepairable fails remain) |
1 |
是(Yes) |
|
|
1(是) |
自动修复(Auto-repair) |
仍存在不可修复故障(Unrepairable fails remain) |
0 |
否(No) |
||||
|
2 |
2 |
2 |
0(否) |
未修复(No repair) |
仍存在不可修复故障(Unrepairable fails remain) |
2 |
是(Yes) |
|
|
1(是) |
自动修复(1 次) |
仍存在故障(Fails remain)/ 无故障(No fails) |
0(1) |
否(是) |
||||
|
3 |
3 |
2 |
0(否) |
自动修复(1 次) |
仍存在故障(Fails remain)/ 无故障(No fails) |
1(2) |
是(Yes) |
|
|
1(是) |
自动修复(1 次) |
仍存在故障(Fails remain)/ 无故障(No fails) |
1(2) |
是(Yes) |
备注说明:
- 单次 SELF_REP 指令可修复的故障数量由厂商指定。
- 若 DRAM 单次 SELF_REP 可修复 1 个故障,则首次执行后会反馈 “仍存在故障”,需主机再次下发 SELF_REP 指令修复剩余故障,最终反馈 “无故障残留”;若 DRAM 单次可修复 2 个故障,则首次执行后直接反馈 “无故障残留”。
- 若 DRAM 单次 SELF_REP 可修复 1 个故障,主机可选择不继续修复(保留剩余 1 个资源供软修复),或继续下发 SELF_REP 指令使用剩余资源;若 DRAM 单次可修复 2 个故障,则主机无法执行后续软修复。
- 场景 3 中修复的资源数量取决于首次 SELF_REP 是否修复 1 个或 2 个故障。
自修复流程的流程图(包含 REP_TYPE 字段的 3 种配置对应的流程)如图 81 所示。

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)