HBM3协议中文版

前言

基于2022年JESD238(HBM3协议)第一版翻译而来,内容有点多慢慢翻译填坑。个人能力有限,翻译做不到信达雅,请参阅原版HBM3协议食用。

名词解释

下面解释一些DDR协议基本的名词,有些这里没有提到的,可能要到协议里面找答案。
RNOP:row no operation;
ACT:active,一般指行激活命令;
PRE:precharge,预充电命令,HBM3协议区分PREpb(PRE)和PREab(PREA);
REF:refresh,一般指刷新命令,HBM3协议区分REFpb和REFab;
RFM:refresh management;刷新管理命令,HBM3协议区分RFMpb和RFMab;
PD:power down,一般指DDR协议的power down mode;
PDE:power down entry;
PDX:power down exit;
SRE:self refresh entry;
SRX:self refresh exit;
CNOP:column no operation;
RD:读命令;
RDA:read with auto precharge;
WR:写命令;
WRA:write with auto precharge;
MR:mode register,模式寄存器;
MRS:mode register set;
DQ:数据管脚;
CA:command/address;
BA:bank address;
BG:bank group;
RA:row address;
UI:unit interval,对于双沿采样的模式而言,1UI = 0.5 cycle;
RFU:reserved for future use;
DBI:data bus inversion;

1. 概述

HBM3 DRAM器件通过可以分成很多完全独立通道的接口和主机die合封,通道间无需同步;HBM3期间使用大数据位宽接口的方案来实现对DRAM高速,低功耗的访问。每个通道保持64bit数据位宽,工作在DDR(双沿采样)模式。

2. 特性

  • 每个memory阵列有256bit的读写数据预取缓存 * (每个PC都有其对应的DRAM阵列;HBM3预取深度是8,对于单个PC,预取资源是256bit;对于单个通道,预取资源是512bit)*;
  • Burst8操作;
  • 每个通道64bit DQ位宽 + ECC/SEV管脚;
  • 支持伪通道(PC)模式 (类似DDR4 TDM) ,每个PC 32bit DQ;
  • CA差分时钟输入;
  • CA线双沿采样,ACT命令需要1.5 cycle;PDE,SRE需要1 cycle;其他行命令需- 要半个cycle;列命令需要1 cycle;
  • 半独立的行列命令接口,ACT/PRE可以和读写命令并行发送。
  • 数据线有单向差分的选通信号RDQS_t/RDQS_c,WDQS_t/WDQS_c;每32bit DQ对应一组DQS;
  • 每个器件最多16通道;
  • 单通道容量2Gb - 32Gb;
  • 根据通道容量不同,每个通道可以有16/32/48/64个bank;
  • 支持bank group(BG);
  • 每个PC 1KB的page size (DDR协议一般指一行为一个page)
  • 支持通过MRS使能DBIac;
  • 自刷新模式;
  • IO电压 1.1V,TX驱动电压0.4V;
  • DRAM core电压1.1V,和IO电压独立;
  • 无终结的 数据/地址/命令/时钟 接口;
  • 无匹配的数据接口;
  • 2bit编码输出的T-sensor;

3. 结构

HBM3使用多独立通道,堆叠式DRAM die的技术来提供大带宽的操作;预计每个DRAM支持最多16个通道。图1展示了4die堆叠的DRAM结构,每个DRAM die支持4个通道,4个DRAM die堆栈起来的器件支持16个通道;每个通道都提供了访问DRAM bank的独立接口,通道间完全独立,数据访问互不影响,无需同步。
在这里插入图片描述
DRAM厂家可能需要一个位于栈底的可选接口die,来搞定信号的重分配等功能和其他数字逻辑功能;HBM3协议主要关注接口和容量,没有强制要求DRAM器件内部怎么玩,常见自己选解决方案。
DRAM die之间的通道划分也是厂家自己决定,图1的方案是每个die有4个通道,但也不是强制的;多个dram die可以灵活划分通道,但是要注意,单个通道有着相同的访问时序。比如,DRAM厂家可以定制自己的DRAM die为1/2/4/8通道,HBM3要求的4-16通道,就一直往上堆die,一个通道的数据都处于一个die。

由于通道间独立,HBM3协议基于单个通道描述;如果涉及到通道的描述,会在信号名加a,b…p的后缀表示通道。如果没有后缀,则信号名在通道间是通用的。

3.1 通道定义

每个通道都有独立的命令和数据接口。通道间共用RESET_n, IEEE1500测试接口和电源信号。通道提供访问特定存储阵列的接口,通道A不能访问到其他通道的存储资源;每个通道提供了访问一系列DRAM bank的独立接口,详见通道寻址。

3.1.1 通道信号概述

表1点明了每个通道需要的信号,表2增加了HBM3器件需要的全局信号。
在这里插入图片描述

3.1.2 伪通道

PC把HBM3单个通道分成了两个32bit位宽的子通道,每个PC 256bit的预取;

PC间工作是半独立的状态:共用时钟和行列命令线,译码/命令处理都是独立的,见图2。PC地址来指示命令对应的哪个PC;两个PC,PD和SRE是共用的。

下表列出了每个PC dram阵列访问的timing;比如,PC0的ACT命令后面可以直接跟PC1的ACT。但是PC0还要再发ACT的话,需要等tRRD;对于两个PC共用的命令(PDE, PDX, SRE, SRX, MRS),要求两个PC的timing都满足了之后才能发出来。两个PC还共用一套模式寄存器。
数据低32bit的IO信号(注意还有DQS等信号),对应PC0,高32bit的IO信号,对应PC1。
在这里插入图片描述
在这里插入图片描述

3.1.3 双命令接口

为了更高的性能,HBM3器件通过增加IO,来为每个通道提供半独立的行列命令接口,允许行列命令同时发出,来减小命令的时序开销,提升带宽利用率。见命令章节。

3.2 通道寻址

在这里插入图片描述
翻译一下注释:
注1:prefetch和page大小反应了行/列命令的有效寻址范围;这里没有包含ECCbit;
注2:读写操作的burst顺序是固定的,HBM器件不关心低位列地址来区分一笔burst的8个UI,HBM控制器内部去计算和对齐这个地址,不发送到HBM器件 (说白了就是地址的单位是一个burst8)
注3:Page Size = 2^COLBITS*(Prefetch Size / 8),即一行一列选中的数据量就是通道的数据位宽;
注4:这些配置适配8/12/16堆叠的DRAM,其他堆叠高度厂家自己定义 (图有问题,对应configurations 5那个位置)
注5:列操作时,SID信号表示bank地址;SID可能关联到特定的AC时序参数或者参数变化 (对应图中注释6)
注6:RA[14:13]无效; (对应途中注7)
注7:SID[1:0]无效; (对应图中SID后面的注8)
注8:密度码表示单个通道容量密度编码,见模式寄存器; (对应注释列的注释8)

3.2.1 bank分组

一个HBM3器件把bank分成了4/8/12/16个BG,见表5;
跨bank和跨BG的访问可能有不同的timing要求,见表6;
在这里插入图片描述
在这里插入图片描述

3.2 简易状态机

下面是HBM3的简易状态机,图里面没有包含:

  • 超过1bank的状态转换;
  • IEEE1500指令相关交互,比如操作模式寄存器,执行测试等等;
  • 拉低复位或者IEEE1500执行复位指令后跳到复位的状态;
  • ECS和ECC引擎测试模式操作;
  • DCA (Duty Cycle Adjuster) 和DCM (Duty Cycle Monitor)
  • 环回测试模式;
  • WDQS-CK对齐training;

对于HBM3器件的完整行为,参考命令真值表,状态机和对应的timing;
在这里插入图片描述

4 初始化

根据4.1的描述来上电初始化HBM3器件;初始化过程的中可以随时复位;初始化过程中可以使用IEEE1500的有限指令集,见4.3。

HBM3功能复位和IEEE1500端口复位的交互如下:

  • 功能复位,IEEE1500接口也被复位;
  • IEEE1500可以任意时刻复位,不影响正常功能;
  • REESET_n拉高一段时间以后,IEEE1500端口可以撤离复位并且可以使用一定的指令;
  • 如果不需要,正常工作模式始终复位IEEE1500端口(WRST_n = 0);

4.1 HBM3上电初始化流程

HBM3必须按照指定顺序完成上电初始化:

  1. VDDC,VDDQ,VDDQL和VPP按照电压攀升表的要求上电,VPP上电必须早于或同时跟VDDC和VDDQ;VDDC和VDDQ必须同时攀升到相同的电平;VDDC和VDDQ上电必须同时或者早于VDDQL。电压攀升时刻tINIT0,RESER_n,WRST_n和其它输入信号都是x态(0,1,Z),Ta到了之后,VDDC和VQQD必须大于VDDQL - 200mV。
  2. RESET_n和WRST_n必须在tINIT0(Ta)之前或同时拉低,其他输入信号可以不管。复位必须拉低至少tINIT1的时间,此时供电稳定;tINIT6之后,HBM3器件驱动差分的RDQS为0/1电平,AERR,DERR,CATTRIP为0;
  3. tINIT2,复位拉高之前,差分时钟CK_t, CK_c要驱动到0/1电平;
  4. 复位拉高之后,R[3:0]驱动到PDE的状态4’b1010,C[2:0]驱动到CNOP状态3’b111,维持tINIT7的时间,然后时钟翻转;R[9:4]和C[7:3]可以保持不定态;HBM3复位到precharged powerdown 状态,tINIT3过程中,HBM3器件从内部efuse的配置中读出并应用配置信息,执行IO阻抗校准;同时WRST_n信号可以拉高来使能IEEE1500调试接口(见使用IEEE1500执行lane修复章节);如果使用IEEE1500接口,对应的信号(WRCK,SelectWR,ShiftWR,CaptureWR,UpdateWR,WSI)要在tWINIT2,WRST_n拉高之前按照IEEE1500测试接口输入输出信号时序图驱动;tINIT6结束到tINIT3结束,CATTRIP数据必须保持为0,tINIT3之后才能驱动有效数据。
  5. 当R[3:0]和C[2:0]保持为PDE和RNOP状态,CK开始翻转并稳定,在R[3:0]拉高之前保持至少tINIT4的时间;至少tINIT5之后才能发MRS命令。在此之前,R[3:0]为’b1111,WDQS_t和WDQS_c驱动为0/1,除了当前通道处于PD或者SRE状态,时钟必须稳定。
  6. 发送所有的MRS命令,配置HBM3器件到合适的工作状态;
  7. HBM3器件现在可以正常访问;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

4.2 受控下电流程

对于受控下电,必须要满足表9的要求;
下电阶段,所有的输入信号电平要位于VSS和VDDQ/VDDQL之间以防止闩锁(latch-up);
在这里插入图片描述

4.3 带电初始化

见图5,带电时必须按步骤1和2来执行HBM3 DRAM器件的功能复位。

  1. 当需要功能复位的时候,可以直接拉低RESET_n,除了WRST_n和CATTRIP以外,其他的输入 (相对HBM3器件而言) 信号可以为不定态;RESET_n至少拉低tPW_RESET;CK反转之前至少tINIT7的时间,R[3:0]必须驱动到PDE状态’b1010,C[2:0]必须驱动到CNOP状态’b111。同样,当RESET_n一直为高时,IEEE1500接口HBM_RESET指令可以用来重新初始化,见HBM_RESET章节。
  2. 参照HBM3上电初始化的3-6步执行,注意CATTRIP不会被功能复位清除。

在RESET_n拉高之前的tINIT2时刻,CK_t/CK_c必须驱动到0/1的状态,见HBM3上电初始化步骤3.
在这里插入图片描述

4.4 使用IEEE1500端口的初始化流程(包含lane修复和通道禁用)

无需完成全部的初始化流程,tINIT3之后就可以使用IEEE1500的全部指令。
注1:EXTEST操作之后,需要RESET_n重新复位一把;
注2:R[9:0]和C[7:0]仅表示逻辑地址(逻辑pin名称),因为这些pin的物理位置会随着软/硬lane修复而改变。

图6展示了EXTEST和SOFT_LANE_REPAIR指令,图7展示了初始化中应用CHANNEL_DISABLE指令。这些操作可以用在上电/带电初始化中进行检错和纠错;也可以用来在正常工作之前禁用部分通道;同样允许32bit的lane修复 (这里一个lane应该是指一个page,也就是一个物理row)

  1. Ta时刻,RESET_n和WRST_n必须拉低;
  2. 上电初始化时至少tINIT1/带电初始化时至少tPW_RESET 时间之后,RESET_n拉高,必须满足tINIT2时序;
  3. tINIT3之后,WRST_N拉高,现在可以使用IEEE1500指令(注意由于WRST_n需要拉低的时间tWRSTL小于tINIT1/tPW_RESET,所以此时已经满足tWRSTL的时序要求)。依照IEEE1500接口的时序要求操作,包括tSWRST。此时(tINIT3之后),可以禁用失效通道,修复失效lane;同样也能使用EXTEST指令执行失效lane的检测。如果需要修复lane,可以按照EXTEST指令的要求,再次翻转RESET_n之后执行SOFT_LANE_REPAIR和HARD_LANE_REPAIR。SOFT_LANE_REPAIR操作之后,使用IEEE1500 的BYPASS指令来让HBM3信号回到正常工作状态,同样,WRST_n可以拉低;
  4. 如果需要,可以按照上电初始化的4-6步继续初始化流程。

在WRST_n拉高之前的tINIT3时间段内,HBM3器件执行各种内部配置操作,包括应用之前熔断的lane修复信息。tINIT3之后执行soft lane repair会覆盖之前lane硬修复的效果;建议线读出lane硬修复的信息,再跟新的要修复的lane信息合并后执行修复。在Th时刻之前执行IEEE1500指令的时序必须全部满足,比如SOFT_LANE_REPAIR指令的时序tSLREP。

lane修复之前不必执行EXTEST指令,已知失效lane的修复,可以作为每次初始化的一部分。
RESET_n拉高之前的tINIT2时刻,CK_t/CK_c必须驱动到0/1状态。
R[3:0]必须驱动到PDE的状态,C[2:0]必须驱动到CNOP的状态,保持tINIT7的时间。
在这里插入图片描述
在这里插入图片描述

5 模式寄存器

模式寄存器定义了HBM3 DRAM器件的特定工作模式;一共有16个8bit的模式寄存器(MR0 - 15),见表11-表27;MR10和MR12是给预留给厂家自定义的寄存器;两个PC共用一套模式寄存器;修改MR配置,不影响存储阵列里面的内容。

HBM3模式寄存器无默认值,通过MRS命令来设置对应的配置,复位/掉电后配置丢失。IEEE1500端口可以通过MODE_REGISTER_DUMP_SET来配置模式寄存器;这个指令也能读出模式寄存器的值。

必须在bank处于IDLE的时候或者RD后tRDMRS时序满足之后才能配置模式寄存器,MRS之后,HBM控制器需要等待tMRD才能执行其他操作。时序不满足协议要求的话,会导致未知问题。

除非特别说明,HBM3的模式寄存器无默认值,因此HBM控制器必须在初始化时全部配一遍模式寄存器。

当整个MR标为RFU,就当HBM3器件不支持,不关心其内容。不能使用保留的状态,因为会导致未知的行为或者未来版本HBM3,此处又有了意义,导致不兼容的问题。模式寄存器中的RFU域段,必须配0。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6 操作

6.1 HBM3时钟概览

HBM3器件使用差分时钟对对CA线进行采样,CA/DQ线都工作在DDR(double data rate)的模式。

HBM3的DQS使用单向差分信号WDQS_c, WDQS_t, RDQS_c, RDQS_t,每32bitDQ对应一组DQS信号。数据线工作在DDR模式;

HBM3使用两种不同频率的时钟,DQS的速率是CA时钟速率的两倍,要求HBM3内部时钟树要有复位类型的分频器(图10);通过给WDQS分频,器件WDQS时钟域的工作频率是WDQS的一半,内部WDQS/2移相的方向由厂家自己决定;CA时钟和WDQS由相同的PLL产生,RDQS由WDQS产生。上电/SRE/PDE之后,内部WDQS分频器被复位到预定义好的状态。读写的前后导要求为偶数个周期,这样才能保证内部分频器的初相位不变。因此HBM3读写操作时无需同步;为了减少ISI,WDQS在读写之前就要开始翻转,没有访问时,WDQS/RDQS不翻转。当对不匹配的DQ/DQS路径做写方向training时,需要挪DQ,因为CK和WDQS是同步的。

HBM3协议使用下面术语:

  • CK(DQS)上升沿表示CK_t上沿和CK_c下沿的交叉点;
  • CK(DQS)下降沿表示CK_t下沿和CK_c上沿的交叉点。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

6.1.1 WDQS-CK对齐training

WDQS-CK对齐training可以让HBM3控制器看到颗粒侧的WDQS和CK的相位关系,从而调整延迟让他们在颗粒侧保持同相。要使能这个模式,给MR8 OP3的WDQS2CK域段配1。

如果不能保证tDQSS时序,初始化之后至少做一次WDQS-CK对齐training;如果tDQSS已经能够满足,可以不做这个training。满足tDQSS之后继续training减小CK和DQS的相差,无法改善器件工作的稳定性。

WDQS-CK对齐training要求执行下面步骤1-7:

  1. 配置MR8 OP3进入WDQS-CK对齐training模式,等tMOD;这个模式只允许下面命令:REFab,REFpb,RFMab,RFMpb,RNOP,CNOP,MRS(用来退出此training模式)。WDQS-CK对齐training模式中使用REF和RFM命令引起的瞬时电流脉冲会对training结果造成负面影响,控制器如果搞不定这个事,那就不要发刷新;
  2. 持续驱动两个PC的WDQS来保证training中能持续进行采样;
  3. CK不动,慢慢推WDQS的延迟,检测颗粒侧相位检测器输出到DERR0/1的检测结果,见表28和图11;相位检测器使用CK上升沿去采内部分频的0°相位的WDQS,tWDQS2PD之后输出在DERR上;
  4. WDQS-CK对齐training模式使能以后,至少收到8个WDQS脉冲,WDQS才能在任意时刻停止。这时相位检测器的输出结果无效,DERR信号的值需要被忽略;
  5. 理想的training结果是不停推WDQS的延时,DERR的输出结果从“early”跳变到“late”;
  6. 当WDQS和Ck的相位满足tDQSS要求时,停止WDQS;确保training过程中发出偶数个WDQS脉冲,从而在training结束回到初始的DQS状态。这样,后续读写操作,CK和WDQS就无需同步了;
  7. MR8的WDQS2CK域段配1,推出WDQS-CK training模式,等待tMOD。
    在这里插入图片描述
    在这里插入图片描述

6.2 HBM3 DBI功能(DBIac)

6.2.1 DBI(DBIac)

(为啥叫DBIac?ac表示什么意思?)
HBM3器件支持byte粒度的DBI功能,每8bitDQ对应1个DBI IO,和数据一起采样;

除非专门说时DBI信号,DBI指DRAM 器件内部的DBI状态;可以通过MR0 OP1(WDBI)和MR0 OP0(RDBI)来使能或关闭DBI功能。

当关闭WDBI时,DRAM器件不关心DBI管脚的值;当关闭RDBI时,DRAM 器件关闭DBI管脚的输出buffer。
在这里插入图片描述
写操作: HBM3 DRAM器件当采样到DBI为高时,就把其对应的8bit DQ内部取反;当DBI为低时,DQ不做操作。注意ECC信号不受DBI的影响。

读操作: HBM3 DRAM器件计算8bit DQ相比上个UI翻转的数量,注意ECC和SEV不受DBI的影响;当相比上一UI,DQ翻转数超过4或者DBI为1,DQ翻转等于4,则取反输出的DQ,DBI置1;否则DQ不取反,DBI置0。
在这里插入图片描述

6.2.1.1 读操作的内部DBIac状态

当下列情况发生时,HBM3 DRAM器件将北部DBIac的状态复位为低:

  • RESERT_n信号拉高;
  • 接收到MRS命令 (为啥?)
  • 读写切换;
  • SRE;

所有其他命令或者事件,HBM3器件内部的DBIac状态不变,器件会使用它当前状态来计算DBI;

第一个读命令:
DBI复位后的第一格读命令,无论有没有使能RDBI,在真正的读数据之前,器件先把DQ驱动为0;见图14,这是为了防止读写切换影响到WDBI。最后一个UI的数据D7,器件内部存储为下一次burst读数据的种子。

DPAR信号不参与DBI的计算,不会被预先置低,它的初始态是未定义的;

在这里插入图片描述

6.2.1.2 连续读操作的DBIac状态(背靠背或者有气泡)

一旦读burst结束,HBM3器件把所有DQ,DBI和ECC驱动为Z态,但是器件内部保存了最后一次DQ和DBI的输出数据,以便下次读操作作DBI计算;除了DBI复位。对于有气泡的读操作,HBM3会将DQ驱动为上个burst的最后一笔数据;在第二个burst数据出来之前,偶数byte保持2个WDQS周期,奇数byte保持1个WDQS周期。
在这里插入图片描述

6.3 命令

HBM3器件双沿采样CA线,ACT命令需要1.5cycle,PDE,SRE需要1cycle,其他命令只需0.5cycle;列命令需要1cycle。

命令接口包含了一个保留的DDR接口ARFU,命令真值表中不体现此信号,但是HBM3协议要求此信号需要和其他命令一起被驱动成有效电平。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.3.2 行命令

6.3.2.1 RNOP命令

RNOP通过R[9:0]发送,仅维持半拍,上下沿都可以采样,见图16;RNOP用来指示HBM3器件行命令无操作,这样可以防止IDLE或者等待状态采样到非期望的命令;已经在执行的操作不受影响。

除了RNOP的行命令,不管是半拍命令还是1.5拍的命令,都要从CK上升沿开始发送,这些命令的下沿需要打一个RNOP命令;同时,有些命令可以用PRE/PREA来替代RNOP命令。下面会针对每个命令详细讲这些情况。

当模式寄存器使能parity功能时,RNOP命令也要计算parity。

除非明确表明时其它命令,否则后面的时序图中默认是RNOP命令。
在这里插入图片描述

6.3.2.2 ACT命令

对bank发送读写操作之前,必须要先用ACT命令打开一行;ACT命令指定bank和行地址,当row打开,满足tRCD之后,就可以对该bank执行读写操作。

ACT命令维持1.5cycle,通过R[9:0]发送,CK双沿采样,见图17;激活命令后面的CK下降沿必须要跟RNOP/PRE/PREA;注意PREA只能是另一个PC,PRE要么是另一个PC的任意bank,要么是相同PC的不同bank (反正就不是刚激活的这个bank);这些命令相关的时序参数需要满足才行。

实际上第二个时钟上沿的时候才真正激活指定bank的指定行;因此所有相关的timing,都是基于第二个CK上升沿来说的,见图17和18。
在这里插入图片描述
当MR0 OP6使能parity的时候,ACT命令需要计算parity。

当前bank如果想激活其他行,必须要把当前打开 (激活) 的行给关闭 (precharge,预充电) ;相同bank两个ACT之间的最小间隔为tRC,见图18;打开的行要满足tRAS之后才能关闭;图18展示了两种tRAS时序,还有PRE的时序。

当前bank正在访问的时候,可以ACT其他的bank,这样可以减少行命令的开销;不同bank的两个ACT之间的最小间隔为tRRD,在PRE/WRA/RDA之前,对用的行会保持激活的状态。
在这里插入图片描述

6.3.2.2.1 bank限制

为了防止瞬时电流过大,HBM3协议限制了一个滚动窗口内的ACT命令数量;一般使用tFAW(four ACT window)来定义这个限制:tFAW的时序滑窗内,不能超过4个ACT命令。绝对时间ns转换为周期数的方法是时间/周期再向上取整。举例:tFAW是25个tCK,T0发了一个ACT,那么T1 - T24的时间段内最多只能发3个ACT命令,见图19。
在这里插入图片描述

6.3.2.3 PREpb和PREab

PREpb和PREab都是半个cycle的命令,R[9:0]发送,Ck双沿均可锁存,见图20和21;PREpb用来关闭特定bank的row,PREab用来关闭所有bank的row。PRE之后tRP,bank处于IDLE态并且可以再次接受行命令。

PRE双沿采样,因此可以一个时钟周期内发出两个不同bank的PREpb或者PREpb和另一个PC的PREab,只要满足tPPD的时序;需要指出,tRP总是从发出PRE命令的CK沿开始计时。

当MR使能parity的时候,PREpb和PREab都需要计算parity。
在这里插入图片描述

R2信号来区分PRE是PREpb还是PREab,对于PREpb,{SID[1:0], BA[3:0]}选择bank,对于PREab,bank地址忽略。

一旦bank充电之后,就处于IDLE态,如果要发读写必须再ACT;当bank IDLE或者正在充电的时候也能发PRE命令,但是相关的时序参数要以最后一个PRE命令为准。

6.3.2.3.1 自动充电

见图20和21,自动充电是无需PRE执行相同bank充电的功能;自动充电不会持续,只会伴随一次读写命令。

对于读命令,tRAS之后或者读操作tRTP时序之后该bank执行PRE;

对于写操作,tRAS之后或者写操作tWL + 2 + tWR之后,该bank执行PRE;

自动充电会在burst操作之后最早满足时序的时刻执行PRE,该bank要到tRP之后才能再次开始访问。就好像是读写之后尽可能早的发送PRE命令,见读写命令章节。WRA和RDA带来的PRE可以和外部发过来的PRE/PREA并行执行,需要指出内部的PRE总是在CK上升沿发出,但是外部发来的PRE/PREA可以双沿发送。
在这里插入图片描述

6.3.2.4 行访问时序的取整规则

HBM3协议允许PRE/PREA在CK的双沿发出,控制器可以有更加灵活的命令调度,相关命令timing需要满足取整的规则;

一般,行命令timing会转成tCK单位,使用公式NXX = RU(tXX/tCK), RU即向上取整;XX表示RAS,RTP,WR,RP等参数;该公式将小数timing向上取整,以便在时钟沿发出下一个命令。

对于HBM3而言,公式改为NXX = 0.5 x RU(2 x tXX/tCK),其实就是向上对齐到0.5个cycle;这个公式仅适用于行命令timing(tRAS,tRP,tRTP,tWR);如果tRP最后对齐到CK的下降沿,需要再加0.5tCk,因为他后面的命令都要从CK上升沿开始发送。

举例:

  • tRAS = 33 ns, tCK = 0.7 ns; NRAS = 0.5 x RU(2 x tRAS/tCK) = 0.5 x RU(2 x 33/0.7) = 0.5 x RU(94.29) = 47.5. 结论:T0发送ACT,最早在T47.5 (CK下降沿)发送PRE命令。
  • tRP = 15 ns, tCK = 0.7 ns; NRP = 0.5 x RU(2 x tRP/tCK) = 0.5 x RU(2 x 15/0.7) = 0.5 x RU(42.85) = 21.5. 结论:T0发送PRE,最早在T22发送ACT,因为T21.5没法发ACT命令;如果T0.5发送PRE,最早还是可以在T22发送ACT。
6.3.2.5 刷新命令(REFab)

REFab都是在HBM3正常工作中使用的命令,半个周期,R[9:0]发送,CK上升沿采样,见图22;REF后面的CK下降沿必须要跟RNOP,PRE,PREA;注意PRE和PREA都是发给另一个PC,对应的时序都要满足;REF命令也要求列命令C[7:0]发CNOP,除非列命令发给了另一个PC。

当MR使能parity的时候,需要计算parity。
在这里插入图片描述
刷新命令不是一劳永逸的,控制器需要定时发送刷新;刷新之后至少tRFCab才能发送其他命令,包括刷新;刷新之前,所有的bank都是关闭的状态,并且都满足了tRP时序;完成刷新操作之后,bank处于IDLE状态。

刷新的地址由DRAM器件内部产生,REF对应的地址bit位会被忽略。
在这里插入图片描述
HBM3要求至少tREFI要对DRAM器件刷新一次,为了改善突发大流量访问的效率,允许刷新推迟;最多可以推迟8个REF命令,这样两个刷新之间的最大命令间隔变成9 x tREFI;后面,tREFI内最多可发9个REF命令来补上推迟的刷新。

刷新推迟同样适用于REFpb命令;两个REFpb的最大延迟也是9 x tREFI,后面可以在tREFI时间内最多发9个REF来保证刷新的平均间隔是tREFI。
在这里插入图片描述
推迟8个刷新之后,还可以进入自刷新,但是SRX之后推迟的刷新加上SRE之前推迟的刷新,不能超过8个;自刷新中,推迟的刷新数不会改变。

6.3.2.6 REFpb

HBM3提供了另一种刷新的方式:REFpb;此命令可以刷新特定bank,此时还能读写访问其他的bank。见图25,REFpb是一个半拍的命令,R[9:0]发送;当拍CK下降沿,必须跟随RNOP/PRE/PREA命令,PRE和PREA需要满足其对应的要求,这里不再赘述。

模式寄存器使能parity功能时,REFpb需要计算对应的parity。
在这里插入图片描述
REFpb也一样需要周期去发,ACT和不同bank的REFpb需要至少间隔tRRD,两个REFpb命令(或者REFpb和另一个bank的ACT)的最小间隔是tRREFD。REFpb和相同bank的命令最小间隔是tRFCpb;REFpb之前,bank必须处于precharged的状态,tRP时序满足。bank完成REFpb之后处于IDLE的状态。
在这里插入图片描述
REFpb不关心bank内的行地址,DRAM器件自己内部搞定;

想bank发送REFpb的规则适用于每个SID,可以按任意顺序向每个SID的bank发送REFpb;当一个SID内部的所有bank都已经REFpb之后,至少等待tRFCpb,控制器可以以相同或者不同的顺序发出另一组REFpb命令。但是,当一个SID的所有bank还没有用REFpb刷新完,不能刷新其他的bank,因为这样是非法的。

见图26,REFpb和RFMpb不能在完成刷新的时钟下降沿发出;

bank计数复位成0之后,HBM3控制器和颗粒内部的bank计数即可同步;同步操作既可以是解复位,也可以是REF/SRE命令;即使REFpb没有转完所有的bank,REF和SRE也可以发出来。
在这里插入图片描述
REFpb的命令间隔tREFIpb由bank计数N来决定,按照下面公式计算:

tREFIpb = tREFI / N

表34中的例子(16bank配置)展示了两套完整的REFpb命令,其中bank计数复位为0,刷新计数器在每16个REFpb之后+1;第三套REFpb命令被REF打断,REF命令复位刷新计数器,并对刷新计数器对应的所有bank执行刷新操作。
在这里插入图片描述
在这里插入图片描述

6.3.2.7 RFM

某段时间DRAM活动 (原文activity这个词某种程度上暗示了是ACT命令,请百度row hammer) 太多,需要额外的刷新命令才能保证DRAM储存数据的一致性;DEVICE_ID WDR中有标明DRAM是否需要额外的RFM命令:RFM = 0表示除了标准的刷新操作之外,无需额外的RFM命令;RFM = 1表示DRAM器件做的比较挫,需要控制器发RFM命令;

  • 34
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
HBM3 (High Bandwidth Memory 3) 是一种新一代的高带宽内存技术。HBM3 提供了比旧一代技术更高的内存带宽和更大的容量,在处理大数据量和复杂计算的应用中具有很大的潜力。 HBM3 Spec PDF 是关于 HBM3 技术规范的 PDF 文件。这份规范文件详细描述了 HBM3 的架构、特性、功能以及操作等方面的细节。通过阅读 HBM3 Spec PDF,我们可以了解 HBM3 技术的工作原理、性能规格和应用示例等信息。 HBM3 技术的一些主要特点包括: 1. 高内存带宽:HBM3 提供了比传统 DDR (Double Data Rate) 内存更高的带宽,可以大幅提升数据传输速度,提高系统性能。 2. 低功耗:HBM3 采用了先进的封装技术和内存堆叠设计,能够在更低的功耗下实现更高的性能。 3. 高密度:HBM3 内存芯片之间采用三维堆叠方式,可以大幅提高存储密度,满足大容量内存需求。 4. 高集成度:HBM3 内存与处理器芯片封装在同一模块中,提供更短的内存访问延迟和更高的系统集成度。 HBM3 技术可应用于各种领域,包括高性能计算、人工智能、云计算、图形处理等。通过使用 HBM3 内存,可以实现更快速的数据处理和更高效的计算能力,提升系统的整体性能和吞吐量。 综上所述,HBM3 技术具有高带宽、低功耗、高密度和高集成度等优势,HBM3 Spec PDF 提供了关于这项技术的详细规范和应用指南,有助于深入了解和应用这一新一代高带宽内存技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值