news 2026/9/7 16:51:26

深入解析HBM3 DRAM:从JEDEC规范到堆叠架构与自修复机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深入解析HBM3 DRAM:从JEDEC规范到堆叠架构与自修复机制

简介:这是JEDEC发布的HBM3 DRAM标准JESD238B.01(修订版),定义三维堆叠存储器架构与自修复机制。标准内容涵盖器件组织结构、通道定义与寻址、初始化流程、命令操作时序、模式寄存器配置,以及数据总线反转(DBIac)、奇偶校验、RFM/ARFM刷新管理、温度补偿刷新、冗余映射修复、环回测试模式和片上ECC错误检测与纠正(ECS)等关键功能,并细化了时钟调整、电源管理模式、自修复指令(SELF_REP)、电气特性参数等技术细节。面向半导体存储器设计、验证与系统集成工程师,可作为DRAM产品开发、FPGA/ASIC接口设计及高速系统应用的规范依据,指导实施错误日志记录、MISR/LFSR诊断、冗余修复流程,提升系统稳定性与良率。资源为PDF标准正文,共1个文件,压缩包约7.72MB,章节完整便于按需查阅。已有204人浏览学习,研读时可重点关注时序要求、模式寄存器设置和错误处理机制,并结合厂商数据手册补充实现细节。 Dig into 高带宽HBM3 DRAM之前,先说说为什么最近大家都在翻 JEDEC 那份 JESD238B.01 规范。2025 年的 AI 加速卡、GPU 服务器、HPC 集群里,HBM3 已经是绕不开的标配。这份规范全称High Bandwidth Memory (HBM3) DRAM,定义了第三代高带宽存储的电气参数、时序、堆叠结构、训练流程和测试要求。HBM3 的核心思路其实不复杂:把多颗 DRAM die 用硅通孔垂直堆起来,再接一个底部逻辑 die,对外提供 1024bit 的超宽接口,数据速率做到 6.4Gbps 起步。这样一颗堆叠就能跑出单堆叠 819GB/s 左右的带宽,正好喂饱 AI 训练和推理对内存带宽的贪欲。这篇文章我不打算复述完整标准,而是想从一个长期做内存相关设计的从业者视角,把 HBM3 堆叠架构、DRAM 底层操作、自修复机制这些容易被文档绕晕的部分拆开讲清楚,适合需要做硬件选型、驱动适配或者纯粹想搞懂 HBM 原理的工程师参考。

1. 先搞清楚:JESD238B.01 这本规范到底管了什么

1.1 从 HBM2E 到 HBM3:标准为什么必须升级

回看 HBM2E 时代,单颗堆叠的数据速率大概在 3.2Gbps 到 3.6Gbps 之间,单堆叠带宽撑死四五百 GB/s。那时候大家还能靠多放几颗 HBM 把总带宽堆上去,直到 AI 模型参数规模从百亿冲到千亿、万亿,内存墙问题就彻底压不住了。带宽要翻倍、容量要翻倍、功耗还不能跟着爆炸,JEDEC 于是推出了 HBM3 标准,也就是 JESD238 系列。JESD238B.01 是 2025 年的修订版,在 A 版本基础上补了不少东西:更高密度的 die 支持、更细粒度的刷新管理、修复映射和测试流程的完善,以及训练时序上的收紧。做系统设计的人最关注的是那两板斧:单引脚速率上到 6.4Gbps,以及单堆叠容量从 8GB 级一路推到 24GB 级,16-Hi 封装配合高密度 die 还能往 32GB 方向走。

1.2 通道和伪通道:并行度被藏在细节里

HBM3 对外是 16 个通道,每个通道又拆成左右两个伪通道,也就是总共 32 个 pseudo-channel。每个伪通道的数据宽度是 16bit,32 个伪通道加起来正好 1024bit,跟 HBM2E 的接口宽度保持一致,但内部并行度更高了。伪通道最大的意义在于:每个伪通道都能独立发送 activate 和 precharge 命令,可以同时让不同伪通道里的不同 bank 处于打开状态,不必等整个通道一起动作。这样控制器调配访问请求时灵活度更高,bank 冲突概率明显下降。实际跑随机访问密集型负载时,伪通道带来的收益比单纯提高频率更明显,因为随机访问的瓶颈往往不在数据回传速度,而在行切换和 bank 冲突上。

1.3 除了带宽,规范还规定了哪些硬指标

JESD238B.01 不是只看速度,它还管着一大堆初始化、校准和可靠性流程。比如 DBI 数据总线反转,用来降低同时翻转的 bit 数量,减少电源噪声;ZQ 校准用来调输出驱动强度和终端电阻,保证不同温度和电压下的信号质量;训练流程则把写电平、读均衡、DFE 抽头系数等参数都纳入标准框架内。温度传感器和 thermal 寄存器也是重点,因为后续系统要依据堆叠内部的温度来调整刷新策略。换句话说,这份标准不仅告诉你 HBM3 能跑多快,更告诉你怎么让它稳定地跑完整个生命周期。

2. 三维堆叠架构:把 DRAM 砌成一栋楼

2.1 堆叠层、TSV 和微凸点的基础关系

HBM3 的物理结构一眼看去很像城市里的写字楼:每一层 DRAM die 是楼面,底部的逻辑 die 是地基,贯穿所有层的是 TSV,层与层之间靠微凸点对接。TSV 是硅通孔,直接在硅片上打通孔然后填充铜等导体,让信号能从底部逻辑 die 直达最顶层。一颗 HBM3 里 TSV 数量高达上万级别,其中既有数据信号、地址命令信号,还有大量电源和地引脚,确保堆叠过程中供电网络足够稳。关键点在于,TSV 和微凸点是额外引入的寄生元件,频率越高,寄生电容和串联电阻带来的信号劣化越明显,所以 HBM3 设计里对 TSV 的布局、长度一致性以及微凸点的可靠性都提了极高要求。这也是为什么堆叠层数不能无限增加,16-Hi 基本是当前工艺和良率约束下的平衡点。

2.2 从颗粒规格书看 die 参数,再到堆叠容量

很多新手会问:HBM3 的规格书和普通 DDR 颗粒规格书有什么区别?本质上 HBM3 里的每一层 die 还是经典 DRAM,行列阵列、bank、page 这些概念一个都不少,只是通过 TSV 引出去之后走的是 1024bit 并行口。普通 DRAM 颗粒规格书你会看到 x4、x8、x16 数据宽度,HBM3 里这个宽度被伪通道定义替代了,但 bank 数量、page size、时序参数 tRCD/tCL/tRP/tRFC 依然要逐一确认。die 密度决定单层容量,比如一颗 die 是 16Gbit,那 12-Hi 堆叠就是 24GB,16-Hi 就是 32GB。实际工程里你要先根据目标容量倒推需要几层堆叠,再看到手的是 JEDEC 标准标准密度还是厂商私有密度,因为不同 die 密度的 page size 和 bank 数量不一样,控制器配置也要跟着变。

2.3 堆叠带来的信号完整性和散热设计挑战

层数堆上去之后,最明显的两类问题:信号完整性和散热。信号完整性方面,数据从控制器到栈顶 die,要穿过的物理路径已经非常长,还要经过多级微凸点和 TSV,损耗和抖动都会被放大。所以 HBM3 接口普遍引入接收端均衡,数据速率越高,均衡阶数越重要。板级走线时必须把 DQ 信号的等长、参考电压、回流路径都控制到位,否则高码率下 eye diagram 闭得飞快。散热则是另一座山:DRAM 对温度极度敏感,漏电随温度指数增长,而 HBM3 把十几层 die 叠在一起,中间层的热量只能靠侧面和底部导热路径排走。因此 HBM3 内部会布置温度传感器,规范也定义了热寄存器,系统可以实时读取再调风扇转速、刷新周期。实际压力测试时你会发现,把温度从 85°C 拉到 105°C,错误率曲线会突然抬头,这不是偶然,而是 DRAM 的物理宿命。

3. 深入 DRAM 核心:灵敏放大器、ACT、Precharge、Refresh

3.1 一次激活(ACT)背后发生了什么

DRAM 存储单元是 1T1C:一个晶体管加一个电容。电容存电荷,晶体管当开关,把电容连到位线。问题在于,电容电荷量非常小,位线上存的那点电压差根本不足以让后端逻辑直接判断是 0 还是 1。这就需要灵敏放大器,它的角色可以理解成一个高灵敏度差分放大器。激活命令 ACT 发布之后,字线被拉高,这一 row 里所有存储单元的电容电荷全部倾泻到各自的位线上,位线之间产生微小的电压差,灵敏放大器感知到这个差,然后把它放大到满摆幅的逻辑电平,同时完成数据的锁存。注意,这是个破坏性读取:电容里的电荷在读取过程中被消耗了,所以放大完还要自动回写一遍,这也决定了 DRAM 读一次之后不能马上关掉该行。

3.2 从 READ 到 WRITE、再到 Precharge 的完整流程

把 DRAM 访问想象成查资料的过程比较好理解:ACT 是打开文件柜抽屉,把一整排文件(row)全部摊到桌面上;READ 命令是挑其中某一列文件抄下来;WRITE 则是把新文件直接放进对应位置。这一整套流程里,从 ACT 到 READ 必须等 tRCD,从 READ 发出到数据出现在总线上要等 tCL,这就是为什么内存时序参数那么重要。当这次操作结束,你不想要这个 row 留在桌面上了,就发 Precharge 命令,把位线恢复到一个统一的预充电电压(通常是 VDD/2),同时关闭字线,让灵敏放大器回到待命状态。从 Precharge 到下一次 ACT 又需要等 tRP 参数,tRAS 则限制了 ACT 到 Precharge 的最短间隔。这些参数共同决定了内存能多快完成一连串随机访问,工程上调内存性能,本质上就是在这些延迟之间寻找平衡。

3.3 刷新(Refresh)在 HBM3 里的特殊性

DRAM 电容会漏电,时间长了电荷跑光,数据就没了。所以需要定期刷新,把每一行重新激活、放大、回写一遍。普通 DDR 的刷新周期大概是 64ms 内必须把全部行刷一遍,温度超过 85°C 就要缩到 32ms。到了 HBM3 这里,问题被放大了:一个堆叠里十几层 die 同时工作,底层靠近基板散热条件好,中上层温度高,各层漏电速度不一样,如果全堆叠统一用一个刷新周期,要么高温层数据丢失,要么低温层刷得太频繁浪费功耗。JESD238B.01 规范里对温度传感反馈和刷新管理做了更细的设计,系统可以根据温度寄存器去调整刷新频率,甚至支持更细粒度的 per-bank 刷新,让频繁访问的 bank 不必为了其他空闲 bank 的刷新需求而被迫等待。实测中这块最容易踩坑,刷新配置太保守会让带宽白白牺牲,刷新跟不上温度又会让错误率飙升,需要结合具体散热条件去标定。

4. 自修复机制设计:让堆叠存储撑起高良率

4.1 为什么堆叠式内存必须自带修复能力

把十几层 die 通过 TSV 和微凸点叠起来,工艺上每加一层就多一分失效风险。单个 die 内如果有一行或一列坏掉,在平铺的 DDR 颗粒上可能只需要报废那一颗;但在 HBM 堆叠里,整包封装已经花掉了大量成本,为了一行坏点丢掉整包是非常亏的。更麻烦的是,TSV、微凸点本身也可能在制造或封装环节出现瑕疵,比如微凸点虚接、TSV 开路,这些缺陷在出厂测试里就得被检测并替换掉。所以 HBM 在设计阶段就要留足冗余资源,并且把修复流程固化在标准化测试和初始化流程里,让最终用户拿到的产品即使内部有被替换的位置,从外部看依然是完整、一致的地址空间。

4.2 行/列冗余、TSV 冗余和 ECC 修复的配合

自修复机制主要分三个层面。第一层是传统冗余替换:每一个 bank 里会预留若干备用行和备用列,出厂测试发现坏地址后,通过电熔丝或者激光熔丝记录下来,上电初始化时读入映射表,把对坏地址的访问自动重定向到冗余位置。第二层是针对 TSV 和微凸点的冗余替身:一些关键信号路径会多布置备用 TSV,发现主路径开路或短路后,通过配置寄存器切换到备路径。第三层是 ECC,JESD238B.01 明确支持内部 ECC 和链路级 ECC。内部 ECC 在 DRAM die 内部对存入的数据做校验,能够纠正单比特错误;链路 ECC 则覆盖 die 与 die 之间传输的数据,防止微凸点接触噪声导致偶发错误。冗余替换负责处理永久故障,ECC 负责处理瞬态故障,两条腿都在才能把堆叠的长期可靠性提上去。

4.3 工程视角:修复映射验证和现场维护

量产测试里,验证修复映射是否生效是一个关键环节。常见的做法是先用专门的算法图案遍历全部地址空间,比如 March 算法、棋盘格、反棋盘格,把坏地址抓出来;完成熔丝烧录和映射配置后,再重新遍历一遍,确认所有坏地址确实被重定向到冗余单元,且冗余单元本身读写无误。有一个容易被忽视的坑:只做简单的顺序写读并不能暴露全部问题,因为某些干扰型故障需要特定访问模式才会触发,所以业界会用跨越 page、跨越 bank 的随机访问图案反复压测。到了现场阶段,如果 ECC 报告反复出现同一地址的纠错事件,大概率说明那里已经从一个瞬态错误变成了固定坏点,这时如果控制器支持,可以在运行时把该行或列重新映射到冗余位置,避免问题扩大。这种“运行态自愈”在超大容量的 AI 集群里特别实用,因为整机更换内存的成本太高,能靠映射解决的问题都不算大问题。

5. DRAM、NAND、HBM 的区别:别再搞混了

很多人第一次听到 HBM 这个词,会下意识觉得它和 NAND 一样是另一种存储介质,其实完全不是。HBM 本质还是 DRAM,用的还是电容存储电荷那一套原理,只是通过三维堆叠把容量和带宽堆起来了。三者真正的区别要从介质、易失性、接口和使用场景四个角度看。

5.1 介质和易失性对比

DRAM 用 1T1C 电容结构存储电荷,掉电数据全丢,所以叫易失性存储。NAND 用的是浮栅晶体管或者电荷俘获层,电荷被隔离在绝缘层里,掉电不丢,所以叫非易失性存储。HBM 属于 DRAM 的一个特殊形态,存储介质本身和 DDR DRAM 没有任何代差,差别只在封装形态和 IO 设计。这就决定了 NAND 可以拿来当 SSD 存数据,而 DRAM 和 HBM 只能断电清零、必须始终通电维护。

5.2 接口和组织形式差异

普通 DDR DRAM 接口宽度是 64bit 左右,靠不断提高单引脚速率来提升带宽;HBM 则走的是超宽接口路线,1024bit 并行输出,再配合堆叠内部的行列结构,以宽度换速率。NAND 恰恰相反,接口窄得多,而且以 block 为擦除单位,page 为读写单位,随机写入性能远不如 DRAM。下表可以一眼看出几个关键区别:

维度DDR DRAMHBM3 DRAMNAND
存储介质电容+晶体管电容+晶体管浮栅/电荷俘获
易失性易失易失非易失
接口宽度64bit 左右1024bit通常 8/16bit 通道
容量方向单颗粒 GB 级单堆叠 24GB 级单 die 可达 TB 级
主要用途主内存AI/HPC 高带宽内存固态盘、数据存储
成本趋势中等很高相对低

5.3 为什么它们不能互相替代

HBM 带宽高,但容量做不过 NAND,价格更是按 GB 算的奢侈品,不可能拿去当硬盘用。NAND 容量大价格低,可字节寻址能力弱、写寿命有限,也替代不了内存。普通 DRAM 价格和容量介于两者之间,但带宽又满足不了大规模并行计算的需求。所以现在的典型系统是 DRAM 当主内存,HBM 当 AI 加速卡上的专用超高带宽内存,NAND 以 SSD 形式当持久化存储,三者各司其职。理解了这一点,就明白为什么 HBM 只出现在 AI 训练卡和部分 HPC 场景,而不是普通台式机。

6. 实操中容易踩的坑与排查经验

6.1 时序配置:小心周期数误差

HBM3 里很多延迟参数是直接通过 mode register 配置成时钟周期数的。同一个 tRCD 在不同频率下对应的周期数不一样,比如 6.4Gbps 和 8.0Gbps 下同样 15ns 的 tRCD,换算出来的周期数差不少。实际调试中见过有人拿着上一版频率的参数直接刷到新频率上,结果训练能过但压力测试偶发报错。我的经验是:以 JEDEC 描述和初始化训练后读回的最终寄存器值为准,不要凭公式手改,改完必须做高频全温压测再放量。

6.2 刷新管理和温度误读

HBM3 堆叠内部温度不均匀,顶部 die 和中层 die 温度差异可以达到 10°C 以上。如果你只读某个固定温度传感器的数值,刷新策略极可能偏了。之前在一个项目上压力跑满后温度寄存器显示 95°C,但实际是底部的传感器温度,顶部早已到 105°C,结果长时间运行后 ECC 错误明显变多。排查下来把刷新策略改成按堆叠内最高温度联动,错误率立刻回落。建议有条件时直接通过 thermal camera 或封装内置多传感器回读做一次温度标定,别只信一个点的数据。

6.3 自修复验证:别只看 walk pattern

验证修复映射是否生效,最忌只跑简单的顺序写读。我习惯用三类 pattern 交叉验证:常驻型 March 算法扫全部地址、跨 page 跨 bank 随机访问、以及针对特定 row 的 hammer 类型压力测试。顺序写读能发现坏地址映射错误,但行间干扰引起的潜在失效只有密集访问时才能暴露。另外,修复完成后的地址重映射通常用 fuse 烧录实现,量产阶段要额外做一次全温循环测试,确保烧录结果在各种温度下都稳定生效。这个步骤虽然拖慢测试节拍,但能挡住很大一部分发货后的 RMA。

实际做 HBM3 相关的工程久了,我最大的体会是:HBM 看起来是个黑盒存储,但黑盒内部仍然是 DRAM 的老底子,只是多了一道堆叠、一圈 TSV、一套自修复和一颗逻辑 die。把底层这些机制吃透之后,再回头去看 JESD238B.01 里那些密密麻麻的时序和寄存器定义,反而觉得处处都有逻辑可循。最后分享一个小经验:拿到一个新型号的 HBM3 模块,先别急着调性能,花半天时间把温度回读、刷新管理和修复映射这三件套验证完整,再谈超频。这三个点稳了,剩下的性能调优都是在稳定地基上搭积木。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 16:50:24

智能硬件开发实战:BLE协议安全、Token签名与量产装配全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 16:50:04

个人开发者AI编程工具选型与落地实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 16:49:58

uniapp鸿蒙NEXT微信支付适配实战:uts插件桥接与踩坑指南

做uniapp项目做久了的朋友,应该都有同感:跨端这事,Android和iOS还在可控范围内,真正让人头大的永远是“又多了一个新平台”。去年下半年开始,陆续有客户问能不能上鸿蒙,等到今年手上的项目真要适配HarmonyO…

作者头像 李华
网站建设 2026/9/7 16:49:50

SSH Config实战:一条命令连接所有服务器与网络设备

标题本身就是我日常工作的真实写照。干运维这几年,最烦的不是修故障,而是每天在那一堆IP、用户名、密码里来回折腾。公司的几十台Linux服务器、家里的NAS、云上的主机,甚至机房里那几台华为、H3C交换机,连接方式各不相同&#xff…

作者头像 李华
网站建设 2026/9/7 16:49:09

C++ constexpr编译期计算性能对比:运行时间、编译时间与二进制体积

constexpr 是 C 里最容易被低估的关键字之一。很多人知道它能算常量,但真到项目里,能主动用 constexpr 去“把运行成本挪到编译期”的并不多。这篇文章我打算直接做一轮横向对比:同样的计算任务,运行时算 vs 编译期算,…

作者头像 李华
网站建设 2026/9/7 16:48:06

Linux根分区被journald日志占满?从清理到SystemMaxUse配置的实战指南

一、从“磁盘满了”到揪出嫌疑人先说一个真实的场景。某天下午,监控突然弹出告警:某台服务器的根分区使用率已经超过90%,再过几个小时业务就可能在“磁盘只读”的边缘挣扎。登录上去执行df -h,发现/挂载点已经用掉了97%&#xff0…

作者头像 李华