半导体行业观察 昨天
首个HBF标准,正式发布,130页完整版披露
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

公众号记得加星标⭐️,第一时间看推送不会错过。

今天,SK海力士和闪迪正是公布了首个HBF标准。值得一提的是,谷歌和Tenstorrent等公司的参与进一步拓展了生态系统。

按照SK海力士在新闻稿中所说,HBF 技术是介于 HBM 和 SSD 之间的新型存储层。它能够实现与 HBM 类似的高速数据传输,同时利用 NAND 技术显著提升容量。随着人工智能推理的扩展,需要处理的数据量激增,HBF 作为一种能够同时解决带宽和容量可扩展性挑战的技术,正日益受到关注。

这一里程碑式的进展是在今年 2 月联盟成立约六个月后取得的,此前,该联盟于 2025 年 8 月与 Sandisk 达成了初步的标准化合作。容量规格涵盖高达 512GB,基于两种堆叠配置(8 层和 16 层 NAND 芯片)。带宽分为三个等级(1 级至 3 级),可提供从约 0.4TB/s 到 3.0TB/s 的可扩展性能。

HBF 技术与处理器之间的互连是其关键亮点。 HBF 技术采用行业标准连接接口 UCIe,为灵活地将 HBF 技术集成到不同处理器类型(包括 GPU 和 CPU)中奠定了基础。

在本文中,我们摘译了132页规范的核心内容,以供读者参考。具体内容,欢迎各位查阅原PDF。

简介

内存墙问题是计算机体系结构领域一个由来已久的难题,从CPU时代至今已存在数十年,并在当今海量数据处理时代依然存在。GPU速度与内存响应时间之间的差距造成了工作负载性能的瓶颈。此外,大型语言模型(LLM)的规模和上下文长度在每一代新技术中都在不断增长,这进一步推动了对更高内存容量的需求。

高带宽闪存(HBF:High Bandwidth Flash)是一种非相干的、以内存为中心的闪存设备,它将通过提供极高的TB/s带宽和容量,重新定义人工智能(AI)基础设施。HBF紧邻GPU/TPU/xPU数据处理单元。HBF解决了内存墙问题,基于宽IO NAND的内存架构在提供与HBM相同读取带宽的同时,容量可达HBM的8到16倍。在数据中心,HBF 可以为 HBM 提供增强功能,使其能够将 TB 级内存连接到 xPU。

本文档定义了 HBF 与 xPU 的接口,用于数据中心级部署,包括电气特性、封装、测试与调试、可靠性以及将 xPU 与一个或多个 UCIe 模块集成所需的其他详细信息。

该解决方案将着重于降低协议开销、提高数据传输效率以及

增强大型部署的可扩展性。

本文档描述了高带宽闪存 (HBF) 高级规范。它涵盖以下部分:

产品描述、UCIe 主机接口架构、AXI 协议层、电气要求、复位和初始化、测试与调试接口、可靠性规范、封装规范、软件用户指南、安全性和HBF 应用。

产品描述

高带宽闪存 (HBF) 通过分布式接口与 xPU 主机计算芯片紧密耦合。该接口被划分为多个独立通道,每个通道彼此独立。主机通道之间不一定同步。HBF 采用宽接口架构,以实现高速低功耗运行。每个主机通道接口都维护一个基于 UCIe 3.0 标准指南的全双工数据总线。每个主机通道通过 UCIe 模块连接到一组独立的 NAND 芯片。

HBF 针对跨多个独立接口(称为通道)的多个 NAND 芯片堆叠进行高带宽读取操作进行了优化。每个 NAND 芯片堆叠最多支持 16 个主机通道,每个主机通道可以有一个或多个 AXI 通道。每个 HBF 芯片堆叠可以支持非常高的容量,例如 512 GiB 或更高。每个通道提供对一组独立 NAND 芯片的访问。来自一个 UCIe 通道的请求不会访问连接到其他 UCIe 通道的数据。 UCIe通道采用独立时钟同步控制。核心芯片指的是NAND芯片堆叠。基座芯片指的是最底层的芯片,核心芯片堆叠位于基座芯片之上。

UCIe 通道内的 AXI 接口是虚拟的。主机可以根据应用需求,以最适合的方式在多个虚拟 AXI 接口之间交错地址。每个 UCIe 通道的可用容量和原始容量是固定的,而 UCIe 通道内每个虚拟 AXI 通道的容量则平均分配给所有 AXI 通道。地址可以在所有虚拟 AXI 通道上以 64 字节的倍数进行任意粒度的交错。

系统组织结构

图 1 显示了基础芯片的高级组织结构。HBF 通过分布式接口与主机计算芯片紧密耦合。该接口被划分为多个独立的通道,每个通道彼此完全独立。主机通道之间不一定同步。HBF 采用宽接口架构以实现高速低功耗运行。每个主机通道接口都维护一个基于 UCIe 标准指南运行的 64 位全双工数据总线。

每个主机通道都通过主机侧的 UCIe PHY 模块和 NAND 侧的 NAND PHY 模块连接到该特定主机通道的独立 NAND 芯片。上图展示了一种这样的组织结构。所有 16 个通道的公共模块,例如 DA 端口、TSV 修复等,以灰色方框显示。

HBF 针对跨多个独立接口(通道)的多 NAND 芯片堆叠的高带宽读取操作进行了优化。每个 NAND 堆叠最多支持 16 个主机通道。图 2 展示了连接到主机的四个 HBF 芯片组的示例。每个 HBF 芯片组包含 16 个主机通道,每个 HBF 的容量为 512 GiB。

每个通道提供对一组独立 NAND 芯片的访问。来自一个通道的请求不能访问连接到其他通道的数据。通道采用独立时钟控制,无需同步。

HBF 由三个主要部分组成:

1. 基片(Base die):基片包含四个主要功能:

a. 基片负责管理主机流量并与核心芯片通信;

b. 基片包含主机侧 PHY 和主机侧 UCIe 控制器,负责 UCIe 协议管理;

c. 基片包含核心芯片控制器,负责与核心芯片 NAND 闪存堆栈通信和管理;

d. 基片还包含用于调试和带外访问内部寄存器的 IEEE 1500 和 DA 端口;

2. 核心芯片(Core die):核心芯片包含 16 个 NAND 闪存芯片

3. TSV 通道:负责将信号从基片路由到 NAND 闪存芯片

基片结构

基片负责管理 UCIe 协议,并通过 TSV 通道与核心芯片通信。上图 1 展示了单个通道基片中的主要模块。调试控制器是所有 16 个通道共用的。基片内有四个主要子系统:UCIe 控制器、UCIe PHY、基片控制器和管理/调试管理。

UCIe 控制器和 UCIe PHY:

1、负责 UCIe 协议以及与主机 xPU 的通信接口

2、包含 D2D UCIe 适配器和 UCIe 协议层功能

基片控制器:

1、处理来自 UCIe 控制器的命令

2、负责 UCIe 控制器和核心芯片之间的数据传输

3、负责主机命令的管理和响应

4、负责 NAND 命令的管理和响应

5、提供 ECC 编码和解码

6、错误处理和其他杂项活动

7、处理边带命令和响应

8、负责调度与核心芯片之间的数据传输

9、读/写/擦除状态管理

10、负责 NAND 初始化和上电复位

11、管理核心侧接口的 TSV 冗余映射

12、管理每个块的页面读取计数器,以便向主机指示刷新状态

管理/调试管理:

1、负责 IEEE 1500 功能

2、负责 DA 端口管理

3、可管理 TSV 维修控制

主机通道定义

每个主机通道由一个独立的 UCIe 链路组成,主频带总线宽度为 64 位,边带总线宽度为 1 位。Reset_SB、IEEE 1500 测试端口、DA 端口和电源信号对所有通道共用。一个通道提供对一个离散内存池的访问;任何通道都不能访问其他通道的内存。每个通道接口都为多个具有特定页大小(defined page size)的 NAND 芯片提供独立的接口。

UCIe主机接口架构

UCIe接口和要求

请注意,以下章节讨论的是属于单个主机通道的单个 UCIe 接口。任何特性或功能描述均适用于所有 16 个主机通道。

一、UCIe 概述

通用芯片组互连高速架构 (UCIe) 是一种开放的、支持多协议的封装内互连标准,用于连接同一封装上的多个芯片。该标准采用先进的封装技术,以实现 HBF 的性能优化应用。因此,通道长度较短(从一个芯片上的凸点到远端芯片的连接凸点测量,小于 2 毫米),并且互连有望实现高带宽、低延迟以及最佳性能和能效。

HBF 的高级封装特性总结如下:

1、每个 UCIe x64 主机模块支持的速度:32 GT/s 时为 256 GB/s

2、凸点间距:45mm

3、通道到 xPU 的距离:2mm(UCIe 规范中高级封装支持的最大距离)

4、原始误码率:大于等于 16 GT/s 时为 1e-15,12 GT/s 时为 1e-27(UCIe 规范中高级封装支持的最大误码率)

UCIe 是一种分层协议,每一层都执行一组不同的功能。三个主要层是:协议层、芯片间层和物理层。HBF 规范使用 Format 6 flit 格式。更多详情请参阅 UCIe v3.0 规范。下图 6 显示了所有三个 UCIe 层。

协议层:HBF 选择流式协议作为协议。HBF 支持 AXI 协议,用于与流式协议进行芯片间通信。

芯片间 (D2D:Die-to-Die) 适配器层:D2D 适配器与 HBF 协议层和物理层协同工作,确保数据能够成功通过 UCIe 链路传输。

物理层:物理层包含主频带和边带通信路径。主频带承载任务模式数据,占用 HBF 和 xPU 之间的大部分带宽。边带主要用于 HBF 启动、控制寄存器访问、链路训练和管理相关的通信。

图 7 显示了每个通道一个模块的配置。单个 UCIe 模块独立地将 xPU 与基芯片的一个通道连接起来。每个通道的启动都是独立进行的。在任务模式下,通道之间没有依赖关系,可以独立运行。

(一)协议层

芯片间 (D2D) 适配器与远程链路伙伴协商协议,并与协议层通信。HBF 选择流媒体协议。应将延迟优化的 256 字节 Flit 格式(带可选字节)通告为所选的 Flit 格式。

(二)适配器层

芯片间适配器确保可靠的数据传输、链路状态和电源管理,以及与远程伙伴初始化期间的参数交换和协商。

D2D 适配器通过 FDI 与 HBF 协议层连接,并通过 RDI 与物理层连接。仅使用一个 RDI 实例和一个 FDI 实例。

由于流式传输协议是通过协商实现的,因此不存在用于参数交换的下游端口和上游端口的概念,双方各自独立地通告自身的功能。此外,还允许交换厂商定义的附加边带消息,以协商厂商特定的扩展功能。

(三)用于流媒体协议的操作 Flit 格式

AXI 链路层使用延迟优化的 256 字节格式,并带有可选字节,以实现最高的协议效率。流协议是默认协议,需要与远程链路伙伴进行通告和协商。用于流协议的延迟优化 256 字节 Flit 格式(带有可选字节)的位已在 UCIe 链路能力寄存器中设置。

协议层在 FDI 模式下发送 256 字节的 Flit,适配器在 RDI 模式下发送之前填充 Flit 头部和 CRC 信息。适配器将从链路接收到的 Flit 转发给协议层。协议层使用随每个 128 字节 Flit 发送的 CRC 字节和可选字节。图 8 显示了格式 6 的高级表示。有关实际的位定义,请参阅 UCIe 规范 v3.0 中的"格式 6 延迟优化 256 字节(带可选字节)Flit 格式"。

(四)电气层

图 9 显示了 UCIe-A PHY 的高级框图。MB 是 UCIe 主带,SB 是 UCIe 边带。x64 高级封装的 UCIe 物理接口包含一个时钟、64 条单端数据通道以及每个方向(发送和接收)的一条有效数据通道。此外,还有一个低速边带总线用于初始化、链路训练和配置读/写。HBF 的特定电气要求在第 7 章中进行了描述。

(五)边带消息支持

UCi 边带允许三种不同类型的包:寄存器访问、无数据消息和带数据消息。更多详情请参阅 UCIe v3.0 规范 6.1 节中的边带协议规范。

HBF 用于设置/重置主机通过 UCIe 边带发送的配置状态寄存器。图 10 显示了不同包类型的操作码编码。

(六)链路初始化

UCIe 链路初始化分为四个阶段,如图 11 所示。第一阶段是边带初始化,第二阶段是训练参数交换和链路修复。第三阶段和第四阶段分别进行 HBF 协议特定参数和 HBF 配置参数的交换。请参阅 UCIe v3.0 规范第 3.2 节中的链路初始化序列。

二、UCIe-A 配置

如第 4.2 节所述,HBF UCIe 模块可以针对每个速度等级进行配置,并且对于每个速度等级,AXI 通道配置可以以不同的速度运行接口,从而提供在不同技术节点上集成的灵活性。

AXI主机接口架构

一、AXI over UCIe 概述

AMBA AXI 接口是一种广泛使用的开放规范通信接口,用于连接一个或多个发起方和一个或多个目标。xPU 到 HBF 的通信接口使用 AXI 作为协议层,运行在 UCIe 上。UCIe 是一种封装内互连技术,用于连接同一封装上的多个芯片。链路层是对 UCIe 接口的封装,用于流量控制以及以 UCIe FLIT 格式打包/解包(packing/unpacking) AXI 通道信息。

UCIe 支持多种协议,包括流式传输或原始格式,如果两端都支持,则可以在 UCIe 上运行。xPU 到 HBF 的链路层协议选择 AXI,是因为该协议的开销非常低。对于 AXI,xPU 到 HBF 接口仅使用其部分功能,这有助于降低开销并保持 UCIe 的高效率。

图 24 中的红色虚线框是标准的 UCIe 模块。图中两个蓝色虚线框(包含链路层)由 xPU 和 HBF 厂商定制。本规范提供了一个可在 UCIe 上运行的 AXI 链路层协议规范版本。

1. 写请求通道 (AW):写请求通道承载写事务所需的所有地址和控制信息。

2. 读请求通道 (AR):读请求通道承载读事务所需的所有地址和控制信息。

3. 写数据通道 (W):写数据通道将写数据从管理器传输到子进程。

4. 写响应通道 (B):子进程使用写响应通道响应写事务。所有写事务都需要在写响应通道上收到完成信号。

5. 读数据通道 (R):读数据通道将读数据和读响应信息从子进程传输到管理器。

每个通道都使用一个有效且就绪的单通道进行流量控制。

链路层会将出站信息与流量控制信息(链路层 FIFO 可用空间)打包成 Flit 格式,并通过 UCIe 接口发送到 UCIe 模块的另一端。

链路层接收 Flit 格式的入站信息,并将其解包后发送到 AXI 协议模块。

在入站信息 Flit 中,链路层还会接收有关 UCIe 接口 FIFO 另一端可用空间的信息。基于此信息,链路层将决定 UCIe 另一端可以接收多少通道信息。

二、AXI链路层适配器

AXI链路层适配器(ALL适配器)位于接口适配器和AXI链路层之间。它为每个AXI通道保存一些条目,控制AXI就绪和有效信号,并将描述符信息转换为AXI信号。由于AXI协议是标准协议,因此架构规范中没有包含与AXI有效和就绪信号相关的更多细节。

三、AXI 主链路层适配器

AXI 主链路层适配器(AMLL 适配器)是主机流量软件接口与 AXI 链路层主设备之间的接口。它为每个 AXI 通道保存一些条目,控制 AXI 就绪和有效信号,并将主机软件生成的描述符信息转换为 AXI 信号。由于 AXI 协议是标准协议,其架构规范并未包含与 AXI 有效和就绪信号相关的更多细节。

HBF 的 AXI 协议

本节详细介绍了与 HBF 通信的 AXI 协议。有关命令状态和错误信息的详细信息,请参阅第 5.5 节和第 5.6 节。

主机读取

一、主机读取要求

主机将按照 AXI 协议中定义的 AXI 格式(HBF 5.2.4 节)传输所有读取请求。

1. 所有读取请求的粒度均为 64 字节;但是,主机应发送 64 个读取命令,使用不同的 AXI ID 来检索完整的 4KiB 数据。或者,如果产品支持突发读取,则发送突发长度为 0-63 的突发读取。

2. AXI ID 宽度是固定的,但是如果 xPU 希望使用较小的 AXI ID 宽度,则最高有效位 (MSB) 将保留,主机可以根据其希望管理的最大未完成 64B 事务数来定义该保留位。

3. 主机可以选择分配最低有效位或最高有效位 6 位来管理 AXI ID 中的同一 4KiB 事务。

4. 读取请求地址的粒度为 64 字节。 5. 不同 AXI ID 的读取命令完成顺序可能不一致,而相同 AXI ID 的读取顺序则保持一致。

a. 如果没有顺序错误,缓存命中读取操作将立即执行。

b. 对于缓存未命中读取操作,当之前已对该特定存储体进行过读取操作时,将触发核心芯片的感知。

6. HBF 对同一存储体内部的核心芯片感知请求遵循严格的顺序。

7. HBF 支持每个存储体使用两个缓存缓冲区,每个缓冲区至少可容纳两页数据。建议在发出第三个 4KiB 地址(该地址会驱逐前 4KiB 数据)之前,先完整读取第一个 4KiB 页。

8. 如果顺序没有被违反,基极芯片应立即从缓存缓冲区处理缓存命中读取操作。

9.如果出现读取失败(例如 UECC 或高可纠正错误),主机可以配置基极芯片进行重试,或者主机可以手动重试读取操作。

二、常规读取和批量读取

如果读取失败(例如 UECC 或高可纠正错误),主机可以配置基极芯片进行重试,或者主机可以手动重试读取操作。

(一)常规读取

主机发出的未包含批量读取提示的读取操作称为常规读取。常规读取操作会被累积起来,并根据性能优化调度到核心芯片。

(二)批量读取

主机发出的批量读取操作会将命令字段中的 AXI 用户位 0 设置为 1,以表明该读取操作为批量读取。基极芯片不会等待定时器超时,而是会调度所有已接收到的读取操作,直到发出常规读取命令为止。基极芯片会在批量读取操作之后收到常规读取操作时,认为批量读取操作已结束。

R R R R R R R – 所有读取命令中均未设置批量读取提示

R R R R R(已设置批量读取位)R R R R – 前五个读取命令将被同时调度,不会等待其后的读取命令。

(三)暂存区读取

暂存区读取是指主机向 HBF 中的暂存区发送的读取请求。如果 HBF 产品支持暂存区,主机可以使用暂存区 I/O 命令从暂存区读取临时存储的数据。暂存区读取是高优先级操作,预计会在几个时钟周期内收到 HBF 的响应,类似于主机缓存的响应。HBF 不知道暂存区内存的内容和有效性,主机软件负责管理暂存区。所有对暂存区的读取都是常规读取,批量读取提示将被忽略。HBF 对暂存区的支持是可选的,并且取决于具体产品。

主机写入

一、主机写入要求

1. 所有写入操作均为非公开写入。无论写入命令长度如何,主机只会收到一个响应,该响应遵循 AXI 协议。

2. 写入命令只有在数据写入核心芯片后才会完成。

3. 写入核心芯片的粒度为 4KiB。基极芯片控制器首先累积完整的 4KiB 写入命令,然后将数据发送到核心芯片。

4. 在主机通道分配的全局地址范围内,不允许跳过或跳转 4KiB 本地地址。

5. 当收到 NAND 块的第 0 页(WL-0、STR-0、NAND 块 X)写入请求时,HBF 将从主机角度自动擦除该 NAND 块。

6. 当 HBF 收到该通道本地地址的第一个 64 字节写入请求时,HBF 应在限定时间内接收所有 4KiB 的写入。该限定时间由主机在初始化期间通过 HBF 配置寄存器设置。如果 HBF 未在限定时间内接收所有 4KiB 的写入,则会报错并将错误响应发送给主机。

7. 每个主机通道的未完成设备逻辑单元 (DLU) 写入请求的最大数量取决于产品规格。例如,可以是 64 个、128 个或产品支持的任何其他写入请求数量。

8.写入 ID 宽度由产品规格中定义的未完成写入数量决定。

9.主机应在 NAND 块内连续写入 4KiB 的本地地址。NAND 块大小在产品规格中定义。

二、暂存区写入

如果 HBF 支持暂存区功能,主机可以使用暂存区写入 IO 命令将主机内容临时存储在暂存区。在暂存区写入期间,IO 命令会将数据写入暂存区地址。暂存区写入 IO 是一个高优先级命令,HBF 响应会在几个时钟周期内完成。暂存区的内容在 HBF 断电重启之前一直有效,主机可以随时以高优先级读取这些内容。暂存区写入不需要 4KiB 的页面大小即可写入 SRAM。所有暂存区写入都具有 64B 粒度,并且写入 SRAM 的延迟要低得多。HBF 不知道暂存区内存的内容和有效性,主机软件负责管理它们。暂存区功能是可选的,并且与产品相关。

三、混合读写工作负载

在混合工作负载下,即使 AXI ID 不同,基极芯片仍以 64 字节粒度维护写入和读取操作的顺序,且地址相同。如果读取操作紧随写入操作之后,而基极芯片中仅累积了 4KiB 写入操作的一部分,并且仍在等待剩余部分,则读取操作会将已累积部分的数据返回给主机。如果读取操作遇到的是待处理的写入部分,则会向主机返回读取命令状态错误代码 0xA 的错误。

UCIe 本地通道 NAND 块地址计算

当程序故障导致 NAND 块数据刷新失败时,主机软件应计算故障逻辑地址的页 0 地址,并重放 NAND 块数据写入操作以刷新数据。主机应在初始化时从设备配置寄存器读取以下信息。

要完成程序故障或 NAND 块数据刷新,主机需要向设备逻辑单元 L2、L2 + R5、L2 + 2*R5、…、L2 + (R3-1)*R5 发送写入请求。

基极芯片可能会报告对同一 NAND 块的多次读取或写入操作失败,因此,如果某个 NAND 块的数据刷新正在进行中,主机应忽略对同一 NAND 块的多次请求,除非基极芯片 (HBF) 以错误完成刷新写入命令。

边带消息支持

边带链路的目的是提供链路训练的带外通道,以及访问链路伙伴边带寄存器的接口。它还用于链路管理数据包以及与远程链路伙伴的参数交换。

相同的协议也用于通过 FDI 和 RDI 进行本地芯片边带访问。必要时,FDI 特有的规则使用"FDI sideband:"标明。必要时,RDI 特有的规则使用"RDI sideband:"标明。必要时,UCIe 链路特有的规则使用 UCIe 链路边带进行通信。如果未指定前缀,则表示 FDI、RDI 和 UCIe 链路通用的规则。

物理层负责通过 UCIe 链路对边带数据包进行帧封装和传输。对远程芯片的直接边带访问可以来自适配器或物理层。适配器通过 RDI 将远程芯片边带访问转发到物理层进行帧封装和传输。这些包括注册访问请求、完成请求或消息。

协议层通过边带邮箱机制间接访问远程芯片寄存器。邮箱寄存器位于适配器中,适配器负责在接收到相应的邮箱寄存器访问触发信号时,通过FDI边带数据包类型发起远程芯片寄存器访问请求。允许三种不同类型的数据包:

寄存器访问:支持配置(CFG:Configuration)或内存映射的读写访问。长度为32位或64位。

无数据消息:这些是链路管理(LM:Link Management )数据包或厂商定义的数据包。它们不携带额外的数据有效载荷。

带数据消息:这些是参数交换(PE:Parameter Exchange)消息、链路训练相关消息或厂商定义的消息。这三种消息都携带64位数据。

每个数据包都包含一个5位操作码、一个3位源标识符(srcid)和一个3位目标标识符(dstid)。 5 位操作码指示数据包类型,以及数据包携带的是 32 位数据还是 64 位数据。有关每个操作码请求和完成格式的详细信息,请参阅 UCIe 规范文档。

设备配置和协议寄存器

HBF 定义了 MMIO 映射的配置空间和寄存器空间中的所有设备配置和协议寄存器,这些配置和寄存器在适配器中被镜像覆盖,主机可以访问它们。每个 UCIe 通道都有其自身的常开寄存器和 MMIO 寄存器集。

AXI 协议层 – 链路层

UCIe flit 格式为格式 6:延迟优化型 256 字节可选 flit 格式。AXI 协议层从芯片间适配器 (D2D 适配器) 接收 flit(采用选定的 flit 格式)。flit 由多个数据包构成,每个数据包都是一个遵循通用结构的 AXI 协议消息,大小不一。链路层的任务是接收来自 D2D 适配器的 flit 或向 D2D 适配器发送 flit。

链路层会将 flit 解包为 AXI 消息并将其发送到 AXI 接口,或者从 AXI 接口接收消息并将其打包成 flit。链路层应符合 D2D 适配器的 FDI 接口规范。

为了实现 HBF 与主机之间的互操作性,D2D 接口应支持以下高级特性:

1. 将 AXI 事务打包到 FDI flit 中的定义机制

2. 每个 AXI 通道的独立流控制,以避免通道间阻塞

3. 为每个 UCIe 实例提供多个独立的 AXI 端口,以实现交错传输和带宽优化

4. 能够灵活地与具有不同 AXI 数据宽度的主机进行接口

为了在 UCIe flit 上传输 AXI 数据,HBF 采用了 AXI over UCIe 协议规范 (AoU) 0.8 版,该规范可在 openchipletatlas.org 获取。为了解决 AoU 基本配置文件未涵盖的 HBF 特定用例,HBF 采用了附录 D 中定义的 HBF 配置文件。

HBF 配置文件应支持以下内容:

1. 同步消息

2. 添加到大多数事务的 8 位 SYNC 字段

3. 9 位 USER

4. 14 位 ID

5. 错误消息

电气要求

直流工作条件

下图描绘了HBF的电源。

主机从协议特定的配置寄存器中读取电压指针寄存器 0x200,该寄存器指向另一个厂商特定的地址。所有厂商相关的参数都位于此地址区域内。主机需要为 HBF 提供上述范围的电压。实际提供的电压在初始化设置和启动过程中通过配置寄存器设置。主机根据寄存器设置,为不同的电源轨提供正确的电压。这是必需的,因为主机可以使用来自不同厂商的 HBF。

时钟要求

主机需要向 HBF 提供 100MHz 的参考时钟。该参考时钟的周期抖动要求为 150ps。

复位要求

主机必须确保所有正在进行的事务均已完成,才能向 HBF 发出复位指令。如果核心芯片正在写入数据,且主机发出复位指令,则写入状态不确定,后续读取操作可能包含也可能不包含已写入的数据。UCIe 复位会触发基极芯片复位,然后设置 UCIe 接口中的就绪位。

上电顺序

1. 基本芯片要求:在 VPPH/L 开始上升之前,VCCE 必须完全达到设定值。

2. HBF 要求:VPPH/L 必须大于 VCCE、VCCQ 和 VCCT。

3. 在上电和下电过程中,电压等级应保持为:VCCE > VCCQ > VCCT,VPPH > VPPL。

4. VPPH 和 VPPL 应在 VCCT 达到其最小直流电压后 100us 开始上升。

5. 在 VCCE 下电过程中,VPPH 和 VPPL 应保持在 VCCE 以下,直至完全放电。

6. 所有电源在上电和下电转换过程中的斜坡斜率应为 20us/V 至 20ms/V。

7. 斜坡时间应小于 200 毫秒

8.电源轨电压上升后,基极芯片复位信号解除,基极芯片启动,复位核心芯片并配置接口

然后向主机发出就绪信号,表明主机已准备好通过 UCIe 接收主机命令。

注释:

当任意电源电压达到 300mV 时,电源斜坡时间开始计算。

基本芯片要求:VCCE 完全建立后,VCCQ 才会开始斜坡上升。

斜坡时间应小于 200ms。

训练包括 HBF I/O 训练和 UCIe 链路建立。

此处注明以下 HBM 要求,因为 HBF 预计会放置在 HBM 附近。HBF 规范旨在将电压轨要求与 HBM 的偏差降至最低。

HBM 要求:VCC 应大于 VCCQ 和 VCCT。

HBM 要求:VCCQ 和 VCCT 应同时上升(且与 VCCQL 同时或更早上升)。

HBM 要求:上电过程中 VCCQL 和 VCCT 应大于 VCCQL-200mV

电源斜坡序列如下:

1. 主机驱动 VCCAON、VCCIO 和 VPLL

2. 主机驱动 100MHz 时钟

3. 对芯片施加基极复位,以进行 UCIe 边带复位

4. 边带 PLL 从 100MHz 参考时钟产生 800MHz UCIe SB 时钟,以激活边带

5. 基极芯片和主机芯片进行边带握手,以相互发现

6. 主机读取厂商特定寄存器以获取电压

7. 读取电压指针寄存器 0x200,该寄存器指向定义电压集的厂商特定地址。厂商特定地址包含电压起始地址寄存器,其紧邻的下一个地址包含电压结束地址寄存器。电压起始地址和结束地址寄存器均为 32 位元素。该厂商的电压轨规格列表位于起始地址和结束地址寄存器之间。这些寄存器位于 UCIe D2D 适配器厂商特定区域中。列表中的所有电压均为 32 位元素,电压格式将在下一节中定义。

8. 主机按地址升序驱动电压集。

9. 主机写入基极芯片厂商特定的寄存器,指示电压已准备就绪。主机向基极芯片发出第二个复位信号,以复位并启动基极芯片。

10. 基极/核心芯片复位。

11. HBF 向主机发出 READY 信号,指示基极芯片已准备好接收命令。

注意:从复位信号解除到核心芯片操作结束,CATTRIP 数据应保持低电平。

电压寄存器格式

电压起始地址和电压结束地址寄存器之间定义的电压列表格式如下。每个电压值均为 32 位元素。小数点位于第 15 位和第 16 位之间。

断电顺序

图 32 显示了 HBF 芯片的断电顺序,随后是基极芯片的断电顺序。

测试与调试接口

HBF 器件提供三种不同的接口,以支持从 SiP 制造到系统级运行的整个产品生命周期内的全面测试、调试和诊断。

测试与调试概述

这些接口经过精心布局,连接到不同的物理连接点,以优化特定使用场景:

DA 端口:专用于 SiP 级制造和核心芯片的深度物理分析。

IEEE1149.1 (JTAG) 端口:通过模块引脚暴露,用于独立硬件验证和固件调试。

IEEE 1500 端口:内部连接到 xPU,用于系统级诊断和生命周期管理,包括维修。

表 25 描述了这三个测试与调试接口的预期用途。这些用途可能因系统环境而异;详情请参阅供应商数据手册。

HBF制造测试概念

HBF的制造流程如图33所示。虽然所有源自组件的缺陷均已通过供应商的测试流程进行筛选和识别,但由于组装过程中产生的热应力,仍可能出现其他缺陷。因此,客户应根据HBF产品的官方测试指南,按照IEEE 1500指令执行最终的功能验证步骤,以确保其可靠性并符合运行规范。

当发生故障时,可使用IEEE 1149.1(JTAG)接口、直接访问端口和IEEE 1500接口高效地进行根本原因分析。

直接访问 (DA) 测试端口

一、概述

直接访问 (DA:Direct Access) 测试端口提供对 NAND 闪存核心芯片和 PHY 的底层并行访问,直接绕过基片控制器和固件算法。该接口使工程师能够读取/写入 NAND 闪存核心芯片的内部寄存器和单元,并执行有针对性的故障隔离。该接口的设计用途包括:

深度诊断与调试:直接表征 NAND 单元特性(例如,阈值电压、读取干扰),而无需算法干预。

故障隔离:区分基片控制器缺陷和 NAND 闪存核心/PHY 物理故障。

如果 DA 测试通过但标准接口(UCi/IEEE 1500)测试失败,则缺陷定位于基片控制器。如果 DA 测试失败,则确认缺陷位于 NAND 闪存核心或 PHY。

厂商特定测试:执行标准协议无法访问的专有测试模式和修复算法。

二、引脚配置

可通过 DA[39:0] 访问直接访问 (DA) 测试端口。此端口的支持情况可能因产品而异;请参阅具体产品的数据手册以了解其可用性。

点对点(8 个引脚):DA[39:32](或供应商定义的子集)指定用于与每个 HBF 器件进行专用连接,以实现唯一寻址。

多点总线(32 个引脚):DA[39:20] 和 DA[11:0] 配置为共享总线操作,允许多个器件(例如,SiP 封装中的 HBF 和 HBM)连接到单个测试仪接口。

引脚功能:DA[39:0] 引脚的数据、地址和控制信号的具体映射由供应商决定,并在单独的测试集成指南中定义。

注意:DA 端口的支持情况和具体的引脚配置可能因产品等级而异。请参阅具体产品的数据手册以了解其可用性

三、DA 模式控制

对 DA 测试端口的访问严格由 DA[12] 引脚和 LOCKOUT MMIO 寄存器控制。

默认状态(非活动):DA[12] 引脚包含一个内部下拉电阻,即使引脚悬空,也能确保端口保持非活动状态(逻辑低电平)。

非活动状态:当 DA[12] = LOW 或 LOCKOUT=ENABLE 时

所有 DA 数据/地址驱动器(DA[39:13]、DA[11:0])均处于高阻抗 (Hi-Z) 状态。

输入接收器被禁用,以防止噪声耦合。

设备以正常模式运行(或根据其他信号选择 IEEE 1500/JTAG 模式)。

活动状态:当 DA[12] = HIGH 且 LOCKOUT=DISABLE 时

DA 驱动器和接收器被启用。

所有在基片控制器(或 UCIe 层)中排队的即时命令将被放弃并清除。

设备进入直接访问模式,允许使用厂商特定的测试功能。

所有 UCIe PHY 接口均停止服务。

存储在 HBF 中的数据可能会丢失,具体取决于正在进行的操作。

四、操作限制与警告

DA 测试端口的访问由 MMIO 地址 0x0140 处的 LOCKOUT 寄存器控制。要禁用 DA 端口并防止未经授权或意外访问,主机系统或固件应向该寄存器的第 0 个字节写入 0x01。一旦设置,DA 测试端口将保持非活动状态,直到 HBF 断电。锁定状态应在所有复位条件下保持,包括 RESET_n 断言和通过 IEEE 1500 指令的 HBF_RESET。在 DA 模式下运行时,调试实体应负责根据需要管理冲突和争用。

HBF IEEE 1149.1 调试端口

HBF 器件集成了一个标准的 IEEE 1149.1 (JTAG) 测试接入端口 (TAP),该端口专为系统级边界扫描、固件调试和芯片启动而设计。

JTAG 端口由 5 个引脚组成,如表 27 所示。

本规范不限制 xPU、外部测试探针和目标设备之间的物理连接拓扑结构。互连方案(例如,点对点、菊花链或星型拓扑结构)应根据具体应用需求和所选 xPU 型号确定。

三、操作限制和警告

IEEE 1149.1 专用于固件调试,并在 UCIe 主频带/边带和 IEEE 1500 活动期间保持运行。虽然支持与 UCIe 主频带/边带同时运行,但 IEEE 1500 和 IEEE 1149.1 的同时运行无法保证,并且可能因内部实现和系统拓扑结构而受到限制。

出于安全考虑,客户可要求在制造阶段通过熔丝编程将 IEEE 1149.1 引脚配置为浮动输入。

HBF IEEE 1500 测试端口

HBF 实现了符合 IEEE 1500 标准的测试接入端口,在主机 (xPU) 和 HBF 之间以及外部测试设备和 HBF 之间提供直接测试接口。

标准兼容性和通道架构:HBF 通过 UCIe PHY 使用 16 通道主机接口。HBF 完全兼容 IEEE 1500 WIR 解码规则,其中通道选择在 WIR 内部显式处理。这确保了与现有基于主机的测试基础设施的无缝集成。

控制器和固件集成:HBF 架构独特地集成了一个专用的控制器和固件 (FW) 引擎,该引擎直接与 IEEE 1500 封装逻辑交互。这种集成扩展了标准边界扫描功能,支持固件下载、基于软件的 BIST(内置自测试)以及复杂的 NVM(非易失性存储器)管理任务等高级诊断操作。本规范中未明确定义的任何测试操作均严格遵循IEEE 1500标准。

IEEE 1500 的测试端口包含专用控制输入和一个 16 位串行输出,可对目标封装寄存器执行指令选择、数据捕获、移位和结果更新操作。表 28 列出了所有 HBF IEEE 1500 测试端口信号、其类型和功能描述。

三、HBF IEEE 1500 模式控制

该器件支持三种主要工作模式,分别由 WRST_n 引脚、DA[12] 引脚和 LOCKOUT 寄存器控制。模式转换受到严格门控,以防止总线争用,确保测试完整性,并保持与现有基于主机的测试基础架构的兼容性。

四、操作限制和警告

HBF IEEE 1500 操作独立于 UCIe PHY 状态执行。在正常的内存操作和低功耗模式下,该接口保持完全功能,无需有效的 UCIe 时钟或链路状态。

DA[12] 引脚默认状态和模式选择:DA[12] 引脚是直接访问 (DA) 测试端口和 IEEE 1500 接口之间的主要硬件选择器。该引脚配备内部下拉电阻,确保其悬空时默认为逻辑低电平。 DA[12] 为逻辑低电平时选择 IEEE 1500 模式(或与其他控制信号组合时选择普通任务模式)。相反,将 DA[12] 置高电平会激活 DA 端口,该端口会自动禁用 IEEE 1500 端口和 UCIe 主带/边带,以防止总线争用。如果需要 DA 模式,则必须实现合适的外部上拉网络以确保稳定的高电平状态。未能保持正确的上拉/下拉配置可能会导致意外的模式转换或引脚噪声耦合。

WRST_n 信号行为及接口门控:WRST_n 是 IEEE 1500 封装器的异步复位和模式控制信号。当 WRST_n 被拉低时,封装器会强制进入正常系统模式,所有封装器寄存器都会进入 BYPASS 指令状态,并禁用依赖于 WRCK 的操作。在 DA 模式下,WRST_n 被指定为"无关紧要",因为 DA 端口独立于封装器逻辑运行。然而,在正常的任务模式下,强烈建议

将 WRST_n 拉低。这可以防止意外地置位 IEEE 1500 接口,确保 BYPASS 指令保持激活状态,并避免可能中断内存控制器操作或固件执行的意外捕获/移位/更新事件。

WSO 信号完整性和数据解释:WSO[15:0] 并行输出线持续反映封装数据寄存器 (WDR) 移位级的当前状态,该状态由激活的 WIR 指令和 WRCK 时序控制。即使 IEEE 1500 接口未主动移位测试数据,WSO[15:0] 仍然保持电气有效,并由封装逻辑驱动。系统设计人员应确保主机控制器或外部探针在空闲或非测试期间不会将这些信号误解为活动测试数据或有效的内存响应。需要进行适当的信号掩蔽、选择 WIR 通道以及显式使用 BYPASS 指令来隔离 WSO 输出,防止数据误解或总线仲裁冲突。

其他硬件和时序约束

时钟同步:在 CaptureWR、ShiftWR 和 UpdateWR 阶段,WRCK 应保持稳定并持续切换。在封装器操作期间异步取消 WRCK 置位可能会破坏 WDR 的移位状态。

未选通道隔离:未通过 WIR[12:8] 选择的通道将被关闭,并且不会响应 Capture、Shift 或 Update 事件。这可以防止跨通道数据损坏,但对于多芯片/通道测试,需要显式 WIR 解码。

复位行为:HBF_RESET 指令(或等效指令)不会复位封装器串行端口 (WSP) 控制逻辑或 WDR。WSP 保持活动状态,并且除非显式覆盖,否则 BYPASS 指令状态将被保留。

五、HBF IEEE 1500 时序图

详细操作说明展示了操作 HBF IEEE 1500 端口所需的最小时钟周期序列。该序列演示了如何加载封装指令(例如 FW_DOWNLOAD 或 SW_BIST)、从内部基极芯片控制器捕获状态数据以及更新命令寄存器。此操作依赖于封装时钟 (WRCK) 与控制信号(SelectWIR、CaptureWR、ShiftWR、UpdateWR)的同步。

详细操作说明:

指令寄存器选择(SelectWIR = 高)

在时钟沿,SelectWIR 信号置为高电平。

这会将封装指令寄存器 (WIR) 连接到 WSI(输入)和 WSO[0](输出)之间。

操作:主机开始通过 WSI 将 14 位(或 32 位)指令操作码移入 WIR。

约束:在整个指令加载阶段,SelectWIR 应保持稳定(高电平),直到 T4 时刻序列完成。其他控制信号(CaptureWR、ShiftWR、UpdateWR)在此转换期间应保持无效(低电平),以防止意外的寄存器操作。

数据捕获(CaptureWR = 高)

在时钟沿,CaptureWR 信号被置为高电平。

操作:这会触发选定的封装数据寄存器 (WDR) 以捕获来自 HBF 内部逻辑的并行数据。

HBF 上下文:此步骤通常将来自控制器或 NVM 阵列的状态标志或错误代码捕获到 WDR 移位阶段。例如,如果上一条指令是 GET_RESULT,则此步骤捕获通过/失败结果。

数据移位(ShiftWR = 高)

在时钟沿,ShiftWR 信号被置为高电平。

操作:加载到 WDR 移位阶段的数据通过 WSO 串行移出。同时,如果寄存器支持读/写 (R/W) 模式,则新的测试数据通过 WSI 移入。

HBF 上下文:由于 HBF 支持 16 通道并行输出 (WSO[15:0]),此步骤允许主机同时从多个通道读取状态,与单比特串行输出相比,显著缩短了测试时间。

数据更新(UpdateWR = 高)

在时钟沿,UpdateWR 信号被置为高电平。

操作:此步骤将当前位于 WDR 移位阶段的数据传输到更新阶段(锁存)。

HBF 上下文:这是关键的执行触发信号。对于诸如 FW_DOWNLOAD 之类的命令,实际数据只有在 UpdateWR 脉冲之后才会提交到控制器或熔丝阵列。在此之前,数据保留在临时移位缓冲区中,不会影响设备运行。

序列完成与稳定

在时钟边沿,SelectWIR 信号被取消置位(恢复为低电平)以切换回数据寄存器模式,或保持高电平以加载另一条指令。

操作:端口返回到空闲或就绪状态,等待下一个命令序列。

注意:WRCK 应持续切换,直到所有控制信号稳定为止,以确保同步运行。

六、HBF IEEE 1500 逻辑架构

HBF IEEE 1500 端口的内部逻辑采用分层结构,以支持标准寄存器访问和控制器介导的操作。HBF IEEE 1500 逻辑架构包含以下关键组件:

封装指令寄存器 (WIR):一个 14 位移位寄存器,用于解码传入的指令。当 SELECTWIR 置位时,WIR 会捕获操作码和通道选择位。

封装数据寄存器 (WDR):包括封装边界寄存器 (WBR)、封装旁路寄存器 (WBY) 以及连接到内部基极芯片控制器的扩展数据寄存器。这些寄存器根据指令需要支持移位 (S)、捕获 (C) 和更新 (U) 阶段。

控制器和固件引擎:HBF 专用模块,用于解析 WDR 数据并执行高级命令(例如 FW_DOWNLOAD、SW_BIST)。它充当串行测试接口和并行 NVM 阵列之间的桥梁。

通道复用器:根据 WIR 解码结果,将控制信号(CAPTURE、SHIFT、UPDATE)和数据路由到特定通道(CH_SELECT[0:15]),从而实现 16 个通道的并行操作。

七、HBF IEEE 1500 WIR 编码

HBF 器件通过其 14 位封装指令寄存器 (WIR) 支持灵活的测试目标。这种架构支持从单通道到跨整个器件的大规模并行操作的高效测试策略。当 SELECTWIR 置高时,WIR 连接在 WSI 和 WSO[0] 之间以加载指令。WIR 位分配定义如下:

WIR[7:0](操作码):专门定义测试操作(例如,BYPASS、FW_DOWNLOAD、SW_BIST)。

WIR[13:8](模式和通道选择):通过在 16 通道 HBF 架构中选择特定通道或通道组来确定操作范围。

这种双功能编码允许主机控制器执行一条同时针对多个通道的指令,利用并行的 WSO[15:0] 输出结构来最大化测试吞吐量。

表 29 总结了 WIR[13:8] 位到信道选择模式的映射。高位 (WIR[13]) 用作模式选择器,而低 5 位 (WIR[12:8]) 定义特定的信道组或单个信道。

1、单通道选择 (WIR[13]=0):

仅针对由 WIR[11:8] 定义的特定通道 (0–15)。

应用场景:非常适合进行详细的故障分析、表征特定的弱位,或在不影响其他芯片/通道的情况下对单个芯片/通道执行修复操作。

输出:只有 WSO[15:0] 中对应的位才会返回有效数据;其他位可能无效。

2、多通道选择 (WIR[13:12]=11b, WIR[11:8] = 0x8~0xD):

同时针对预定义的一组通道。

分组定义:

0x8:通道 0–7(前半部分)

0x9:通道 8–15(后半部分)

0xA–0xD:象限组(例如,0–3、4–7 等 – 具体映射取决于厂商)。

3、应用场景:平衡测试时间和功耗。适用于块级操作,例如擦除或编程 NVM 阵列的特定区域。

4、全通道选择 (WIR[13:8]=0x3F):

同时向所有 16 个通道广播指令。

应用场景:最大吞吐量操作,例如全局旁路、全设备 SW_BIST 执行或批量状态检查。

输出:WSO[15:0] 的所有 16 位将并行输出数据,允许主机在一个移位周期内读取整个设备的状态。

通过利用全通道或多通道模式,HBF 利用其 16 位并行 WSO 接口,与传统的串行扫描架构相比,显著缩短了测试时间。例如,在 SW_BIST 操作期间:

主机加载 BIST_START 操作码,WIR[13:8] = 0x3F(全通道)。

内部基极芯片控制器同时启动所有 16 个通道的 BIST。

完成后,一次 CaptureWR 操作后接一次 ShiftWR 操作,即可同时检索 16 位状态数据(每个通道一位)。

八、HBF IEEE 1500 测试端口交流时序参数

九、HBF IEEE 1500 高级功能

HBF 利用内部基片控制器和固件 (FW) 扩展了标准 IEEE 1500 的使用范围,以应对复杂的测试场景。

任务模式和测试模式的交互及控制信号

HBF 支持正常运行模式(任务模式)以及制造和调试测试模式(IEEE 1500、IEEE 1149.1 和 DA 模式)。控制信号和时钟状态均经过明确定义,以防止模式间的接口冲突并确保状态转换的确定性。表 31 总结了任务模式和三种测试模式所需的推荐控制信号和时钟状态,为系统设计人员和测试人员在模式转换期间准确配置信号门控和接口激活状态提供了参考基准。

操作建议:保持任务模式安全:在正常操作期间,强制执行 LOCKOUT=ENABLE、WRST_N=LOW 和 DA[12]=LOW,以防止意外激活测试模式。

模式转换协议:进入 IEEE 1500 或 DA 模式之前,请禁用 UCIe 链路并停止 UCIe 时钟,以消除总线争用风险。避免在 IEEE 1500 内存访问进行期间切换 UCIe 工作模式。

并发限制:虽然任务模式和测试模式在物理上是隔离的,但技术上可以同时运行,然而由于可能导致内存访问中断和主机任务取消,强烈建议不要同时运行。IEEE 1500、IEEE 1149.1 和 DA 之间的并发操作是不必要的;通过 DA[12] 和 WRST_N 进行硬件门控可确保互斥性。

厂商特定配置:标记为"无关紧要"或"厂商特定"的 UCIe 时钟和 IEEE 1149.1 时钟状态取决于 SiP 布线和产品级别。有关确切的时序和电气要求,请参阅厂商数据手册。

HBF IEEE 1500 指令集

HBF 支持表 32 中列出的 IEEE 1500 指令集。这些指令旨在与 HBM 标准保持一致,以实现 IEEE 1500 测试总线的共享。有关详细定义和使用指南,请参阅产品数据手册和测试指南。

固件下载顺序

本规范定义了使用 IEEE 1500 标准接口的固件下载流程。该协议的主要目的是在制造过程或现场操作期间实现固件更新。供应商应提供符合 **MPS**(最大有效载荷大小:Maximum Payload Size)的固件映像,该映像对应于 IEEE 1500 WDR(Wrapper Data Register)大小。映像应包含下载过程的选项参数,以及数字签名和 CRC 校验码,以确保数据安全性和完整性。主机将映像分割成 MPS 大小的数据块,并通过 FW_DOWNLOAD_DATA 命令传输这些数据块。完成后,主机发出 FW_COMMIT 命令,触发设备在写入非易失性存储器 (NVM) 之前对头部、签名和 CRC 校验码进行内部验证。设备将验证结果报告给主机。最后,发出 RESET 命令以激活新固件。

二、固件二进制文件建议

对齐:固件二进制文件应进行填充,以与**MPS**(WDR大小)对齐。

头部结构:镜像头部应包含:

下载选项标志(例如,目标通道、启动模式)。

镜像总大小和版本信息。

安全块:用于身份验证的数字签名(例如,ECDSA/RSA)。

完整性块:用于数据错误检测的 CRC-16/32 校验码。

源文件:由供应商提供,为安全二进制文件。

三、固件下载顺序

步骤 1:初始化

主机发出 HBF_RESET 命令(硬复位)以清除所有先前状态,并为固件下载做好准备。

步骤 2:开始固件下载

主机发出 FW_DOWNLOAD_START 命令,以目标地址启动下载序列。

步骤 3:数据传输(分段写入)

供应商应提供与最大有效载荷大小 (MPS) 对齐的固件映像,该大小对应于 IEEE 1500 封装数据寄存器 (WDR) 的位宽。如果实际映像大小不是 WDR 大小的倍数,则应将固件二进制文件填充到最近的 MPS 边界。对齐的映像应被分割成 MPS 大小的数据块,以便通过 IEEE 1500 WDR 进行顺序传输。

步骤 4:固件下载提交

所有数据段传输完毕后,主机发出 FW_DOWNLOAD_COMMIT 指令。在 UpdateWR 事件发生时,设备可能会执行以下内部操作:

头部验证:验证镜像格式、目标选项和版本参数。

安全检查:验证数字签名(例如 ECDSA/RSA)以防止未经授权的固件。

完整性检查:计算并比较 CRC-16/32 校验码以检测数据损坏。

如果所有检查均通过,则将验证后的数据原子性地写入 NVM。如果任何检查失败,则中止写入操作,丢弃已传输的缓冲区,并保留先前有效的固件。任何损坏或未经验证的镜像都不会覆盖现有的 NVM 内容。内部验证完成后,设备进入一个不确定的延迟期 (tFWCOM)。主机应通过发出 GET_STATUS 指令并经由 WDR 读取状态字段来监控下载完成情况。在 NVM 写入阶段,主机应保持稳定的电源供应,且不得发出任何复位或断电命令。

步骤 5:激活

收到"成功"状态后,主机发出 HBF_RESET 命令重启设备。设备将使用新更新的固件启动。HBF_RESET 的具体类型取决于厂商。

四、错误处理

验证失败:如果在 COMMIT 阶段签名或 CRC 校验失败,设备将返回特定的错误代码。主机应从步骤 1 开始重试整个流程。

超时:如果设备在 tFWCOM 或 tFWRST 时间内没有响应,主机应中止该过程并标记硬件错误。

数据保留:在任何情况下,损坏或未经验证的映像都不会覆盖 NVM 中现有的有效固件。系统将保持在更新前的状态。

有关详细的错误处理,请参阅供应商数据手册。

五、固件下载顺序概述

图 34 展示了通过 IEEE 1500 进行的固件下载顺序。

基于软件的BIST测试

本节定义了可通过 IEEE 1500 测试端口访问的基于软件的内置自测试 (BIST) 框架。与固定的硬件测试逻辑不同,基于软件的 BIST 架构提供了卓越的灵活性,允许动态更新测试向量、模式和诊断例程,而无需重新设计硬件。它支持厂商特定的指令编码和宽动态范围 (WDR) 配置,从而能够针对新型故障模式或工艺偏差进行定制测试。此外,它还提供了强大的现场故障响应能力;在运行或制造过程中检测到的意外缺陷将通过安全的固件更新和软修复例程进行修复,从而确保设备的持续可靠性和延长的生命周期管理。

二、基于软件的BIST测试序列

基于软件的BIST测试序列通过标准的IEEE 1500 TAP控制器和封装寄存器运行。该过程遵循确定性的多阶段序列:

步骤1. 软件BIST固件下载:目标软件BIST固件通过FW_DOWNLOAD_START、FW_DOWNLOAD_DATA和FW_DOWNLOAD_COMMIT命令安全地部署到NVM。

数据段按MPS/WDR大小对齐,并在执行基于软件的BIST测试之前通过数字签名和CRC验证完整性。这与固件下载序列相同。

步骤2. BIST执行:主机将SWBIST_EXECUTE指令加载到WIR中。配置参数(例如,通过WIR[13:8]设置的目标通道、测试模式、超时设置)使用ShiftWR写入WDR,并通过UpdateWR提交。

步骤3. BIST轮询:内部控制器在选定的通道上启动BIST。主机通过轮询GET_STATUS指令来监控进度。

步骤4. BIST结果检索:完成后,GET_RESULT指令将通过/失败标志和错误代码捕获到WDR移位阶段。数据集因厂商而异。

三、错误处理

运行故障:如果在测试过程中由于内部出现大量故障和严重问题导致 BIST 执行失败,设备将通过 WDR 返回特定的错误代码。主机应捕获 SWBIST_RESULT 寄存器及其相关的诊断日志,并与设备制造商联系以进行故障分析和采取纠正措施。

超时:如果设备由于内部挂起而在定义的超时时间内(例如 tBIST_MAX)未响应,主机应中止该过程并执行硬件复位或断电重启。

数据保留:通过 HBF_RESET 或断电重启后,HBF 设备将使用任务模式固件进行初始化,并恢复正常运行,无论结果如何,也无论是否存在任何错误。

供应商数据手册应包含详细的错误处理要求。

四、基于软件的BIST测试序列概述

图35展示了通过IEEE 1500协议的固件下载序列。

可靠性规格

HBF 的可靠性特性与 SSD(固态硬盘)和 UFS(通用闪存)等非易失性存储器 (NVM) 技术类似。与 HBM(高带宽内存)不同,HBF 存在耐久性限制。耐久性指标可能因客户的工作负载和具体产品配置而异。在 85°C 的温度下,HBF 保证通电后数据可保持 24 小时,这意味着核心芯片可以在特定时间内保持存储的数据。断电后,HBF 可能无法在特定时间后保持数据,这与 HBM 相同。对于永久数据存储,建议使用 SSD 等持久性存储设备。表 33 描述了 HBF 的可靠性规格。

一、工作温度

HBF 的工作结温范围为 0°C 至 105°C。主机应使用 IEEE 1500 指令监控 HBF 的工作温度。此温度即为 HBF 的结温。

二、温度节流和关断

HBF 具备温度节流和关断功能,以防止过热和永久性损坏。此过程由监控 HBF 温度的热传感器管理。HBF 根据其温度阈值,以四种不同的模式运行,如表 34 所示。

正常模式:

HBF 保持最高性能,无任何散热限制。所有组件均以正常时钟频率运行。

轻度降频:

运行过程中,当温度达到热降频阈值时,设备会采用某种机制(例如:动态降低时钟频率)自动降低功耗。当温度恢复到安全工作范围时,设备将自动恢复正常运行。读写响应速度可能会变慢,但运行正常。

重度降频:

即使采取了散热机制(例如:降低时钟频率),如果温度仍然过高,HBF 会将 CATTRIP 信号置高,向主机系统发出过热警报。然后,HBF 会取消置位链路层 AXI 就绪信号,从而停止所有操作。

这将对主机命令施加反压,直到 CATTRIP 信号变为低电平。在取消置位 AXI 就绪信号之前,所有正在执行的命令都必须完成,并返回正常响应或错误响应(命令状态错误代码 0x9)。在严重限流模式下,系统退出严重限流模式之前,不会向主机发放积分。

关机:

当主机系统通过 CATTRIP 信号收到过热警报后,如果温度仍持续升高,HBF 将自动进入关机状态。进入关机状态时,主机会看到链路错误,这表明 HBF 设备即将关机。

图 36 展示了由 RTT、LTT 和 STT 寄存器定义的温度升高(红色箭头)和冷却(蓝色箭头)期间的性能水平。

RTT(解除节流温度):系统退出轻度节流模式并恢复全部 (100%) 性能的温度阈值。(图中的最左侧点)

LTT(轻度节流温度):在升温阶段,系统从正常模式过渡到轻度节流模式(性能限制的第一阶段)的温度阈值。

STT(重度节流温度):在升温阶段,系统从轻度节流模式过渡到重度节流模式(性能大幅限制)的温度阈值。

这三个热节流阈值以及节流模式的启用/禁用均在 MMIO 地址 0x150 处定义。

三、静电放电 (ESD) 要求

除电源凸点外,HBF 器件中的所有凸点均由片上 ESD 电路保护,具体说明请参见 HBF 电源轨部分。ESD 要求定义见表 35。对于 D2D 连接的 uBump,无需高 ESD 规格。对于 C2C 连接,μBump 应满足表 35 中所述的 HBM 和 CDM ESD 要求。电源凸点需要外部 TSV 二极管安装在 PCB 或中介层上,具体细节请参见产品规格文档。

四、存储温度条件

器件的存储温度范围取决于其外形尺寸和封装状态。KGSD 的存储温度符合 JEDEC 固态技术协会 JESD49B.01 标准:半导体芯片产品(包括已知良品芯片 (KGD))采购标准,发布日期:2023 年 10 月。

封装规格

HBF 凸点图

HBF 在 UCIe 区域采用 45μm 间距。具体而言,它采用 Rev3p0 UCIe 规范中的图 5-23,即 10 列 x64 高级封装凸点图(适用于 ≤ 32 GT/s)。

在非 UCIe 区域,HBF 采用 65μm 间距。

图 37 所示的 HBF 凸点图需要进一步优化。

微凸点位置

uBump图案如图38所示。有两种uBump图案,一种代表UCIe区域,另一种代表非UCIe区域。

图 37 显示了初始 HBF 凸点图。这是一个初步版本,将在下一个 HBF 规范修订版中添加更多电压轨凸点。

HBF 设备尺寸

软件用户指南

HBF 内存映射

一、内存系统架构

并行使用 HBF 的所有 UCIe 通道可以实现最佳性能。然而,由于 HBF 的结构设计,数据以 NAND 闪存页大小(例如 4 KiB)为单位,逐个分发到各个通道。

当主机系统页面缓冲区被管理为一次性传输"(4KiB * N) * HBF 中所有 UCIe 通道"时,HBF 的性能达到最大值,其中 N 是芯片中的存储体或平面数量。当 N 等于"芯片中的平面数量 * 每个 UCIe 通道的芯片数量"时,N 达到最大值。

二、地址空间与布局

图 41 展示了两个 512GiB HBF 单元和四个 36GiB HBM 单元一起使用时的本地地址分配示例。由于 HBF 和 HBM 的内存容量差异很大,因此如果一起使用,则必须分别进行内存管理。HBF 具有 16 个 UCIe 通道,每个通道都有其独立的线性本地地址内存空间。

xPU 缓冲区中的 4KiB 单元数量不必与所有 UCIe 16 通道的数量完全匹配。当 xPU 缓冲区中的多个 4KiB 单元写入 HBF 时,HBF 中的所有 UCIe 通道都会交错写入。如果分割大小为 64B,则组成 4KiB 的 64 个全局地址 (GA) 与本地地址 (LA) 相匹配,如图 42 所示。

在 4KiB 的内存空间内,以 64 字节为单位的全局地址不必连续,但所有全局地址在收集时必须呈线性排列。例如,如果您收集了 64 个 64 字节的全局地址,则在 4KiB 内存空间内不应出现地址缺失或重复的情况。

编程模型

一、读取操作行为

通道间的读取请求不保持顺序,当所有可能的 UCIe 通道同时读取时,性能达到最佳。

二、写入优化

当主机写入所有通道中的所有存储体时,可实现最佳写入性能。同一 NAND 芯片内的所有存储体应具有相同的页号,以获得最佳性能;而同一通道内的不同 NAND 芯片或不同通道内的存储体可以具有不同的页号。

暂存区 SRAM 使用模型

主机可以对 HBF 中的 SRAM 进行临时数据读写,该 SRAM 在断电重启后不会保存数据。暂存区 SRAM 的大小由配置寄存器读取、SRAM 起始地址以及 MMIO 寄存器空间中定义的大小决定。暂存区完全由主机软件维护,HBF 仅支持以 UCIe 通道全带宽进行读写操作。所有对暂存区内存的读写请求均为高优先级请求,HBF 会尽快处理。每个 UCIe 通道都有独立的 SRAM 空间,主机软件会根据需要使用总空间来优化 LLM 或任何其他正在运行的工作负载。

在 xPU 中执行 LLM 或其他工作负载时,SRAM 有许多用途。其中一个用途是将中间激活和层间缓冲区保存在 SRAM 中。

注意:暂存区 SRAM 支持是可选的,并且因产品而异。 HBF 产品数据表提供了更多信息。

HBF 磨损均衡和GC

HBF 厂商提供主机/xPU 软件,允许选择 HBF 基片驱动的磨损均衡(产品厂商特定)或主机控制的磨损均衡(带区域重映射)。建议启用主机控制的磨损均衡或基片控制的磨损均衡。

HBF 不支持任何垃圾回收 (GC:garbage collection) 或将活动数据从一个物理位置传输到另一个物理位置。HBF 仅支持将 UCIe 通道本地地址从一个物理位置重映射到另一个物理位置(作为磨损均衡的一部分),并进一步写入该 UCIe 本地通道地址,同时将磨损数据分配到新的物理位置。

一、区域重映射

HBF 支持主机/xPU 控制的区域重映射,主机可以将每个 UCIe 通道容量划分为 N 个区域,且每个区域的大小/容量必须相同。HBF 基片支持主机从 CSR 寄存器中跟踪/读取每个区域的 PEC(编程擦除周期)。主机软件也可以根据需要维护每个区域的 PEC 记录。根据每个区域的分配以及当前或未来的使用情况,主机软件可以决定将热区(高 PEC)与冷区(低 PEC)交换。交换之前,主机软件需要确保数据无效,并且在重写之前没有向这些区域发出任何进一步的 I/O 读取请求。

限制:

主机应确保区域大小是核心芯片 NAND 块大小的倍数。

产品可能设定限制——区域间平均 PEC 差异不得超过特定阈值。

HBF 到主机的错误状态及主机所需操作

为实现主机/xPU(如产品规范中所定义)的无缝、低延迟数据访问,需要按照可靠性规范中规定的间隔(通常为每 24-48 小时)定期刷新数据。建议主机软件在维护期间安排这些刷新操作,或以分布式方式将其与正在进行的操作交错执行。

如果主机选择将刷新操作与活动工作负载交错执行,则应确保刷新命令和读取命令不会同时发送到同一芯片。否则,某些读取操作可能会出现延迟增加的情况。

数据刷新条件

持续时间(数据保持时间):这是 HBF 产品特有的,它应公布 NAND 块在开机和关机情况下保证的数据保持时间。主机软件需要确保按此间隔刷新数据。

从任何物理 NAND 块过度读取:由于 NAND 的特性,每次访问都会导致 NAND 块的数据健康状况恶化。主机负责在读取 NAND 块数据 X 次(具体次数取决于产品)后刷新 NAND 块的数据。主机可以使用 CSR 命令定期检查每个 NAND 块的读取次数;但是,当基极芯片检测到某个物理 NAND 块存在数据丢失风险时,它会在命令状态中发出指示。

由于 NAND 的特性,在某些罕见情况下,某些 NAND 块的健康状况可能会提前于读取干扰/数据保持规范进行恶化,或者基极芯片可能由于 NAND 特性、命令中的无效字段或当前基极芯片状态而遇到错误。在这些情况下,基极芯片会在命令状态中报告错误,主机需要按照以下小节中的说明执行特定的后续操作。

一、读取错误

(一)无效地址

如果主机发出的读取命令超出 UCIe 通道容量,或者指向已停用的 UCIe 通道容量区域,则会报告此错误。主机需要确保命令中的地址正确,如果已停用的容量尚未停用,则需要将其停用。

块容量的回收粒度为 NAND 块大小,最大回收容量可达 UCIe 通道容量。

主机操作:出现此错误时,主机软件需要回收 NAND 块的容量。这是因为主机软件在 HBF 最初报告回收容量时可能遗漏了该容量,而原始请求中报告的回收容量是准确的。

(二)临时限制读取

如果基极芯片临时限制了特定地址范围,但仍检测到对后续地址范围的读取请求,则会报告此错误。限制原因和限制持续时间因 HBF 产品而异,将在产品规格书中描述。

主机需要等待限制持续时间(基于事件或基于时间)结束后才能访问受限地址范围。

(三)命令中存在无效的用户字段

如果基芯片检测到命令字段中存在 HBF 不支持的无效字段,则会报告此错误。主机需要重新检查所有命令字段,并以 HBF 规范的命令格式重新发出命令。

(四)UECC(Block Data Refresh required)

如果以下地址的数据损坏且基极芯片的纠错引擎无法纠正,则会报告此错误。同时,用户 [8:6] 会描述这些错误的根本原因。

建议使用主机软件刷新此 NAND 块数据,以确保无缝运行,或者在当前工作负载占用 HBF 全部带宽之前暂时使用。请从备份副本访问以下数据,稍后再进行刷新。

由于数据刷新以物理 NAND 块为单位进行,并且 UECC 报告的是此读取物理位置的数据,因此基极芯片可能可以纠正此 NAND 块数据的其他物理位置。但是,这些读取延迟仍然会很高。因此,HBF 建议,一旦出现 UECC 报告,如果主机软件有备份副本,则在刷新之前不要访问此 NAND 块数据。

(五)CECC (Block Data Refresh required)

如果以下 NAND 块中的数据存在数据丢失的潜在风险,则会报告此错误。基极芯片仍能够纠正此错误。用户 [8:6] 指出,基极芯片出现此错误是因为 NAND 块读取次数超过了产品阈值。

主机软件可以根据当前活动工作负载和此 NAND 块中的数据类型来决定何时刷新此 NAND 块数据。但是,HBF 建议尽快刷新此 NAND 块数据,因为在长时间访问此 NAND 块之前,NAND 块的健康状况正在恶化。

(六)UECC - 读取重试

如果以下地址的数据损坏且基极芯片的纠错引擎无法在此次尝试中纠正,则会报告此错误。但请使用用户 [8:6] 中提供的操作码重试读取,因为这可能需要在基极芯片中进行重新校准,而不是刷新 NAND 块中的数据。

仅当主机选择使用主机驱动的读取重试机制以实现透明延迟时,才会报告以下错误。

主机软件需要重新发出相同的读取命令,并将 Ruser[8:6] 复制到 ARuser[8:6]。

(七)从擦除页读取

如果主机尝试读取尚未写入有效数据的物理位置,则会报告此错误。主机需要重新确认读取命令地址。主机需要。

(八)标记为 UCIe 通道本地容量不可用

在极少数情况下,由于硬故障,部分 UCIe 通道容量无法恢复。基极芯片会在 Ruser[8:6] 中以容量标记错误粒度报告此错误。

主机软件需要计算报告的容量地址空间,并从主机软件使用的角度将其标记为不可用。断电重启后,可以使用 CSR 命令(操作码=0x0A)从 CSR 寄存器中检索以下信息。1024 位 CSR(即 1024 位图)包含每个 NAND 块不可用的逻辑容量信息。1024 位 CSR 支持每个 NAND 块 1MiB、2MiB 或 4MiB 的容量。CSR 中的每一位代表一个 HBF 的 NAND 块。如果设置为 1,则表示不可用;如果设置为 0,则表示可用。

(九)芯片临时阻塞以进行恢复

在特定的恢复场景中,基极芯片可能会阻塞所有对芯片的访问,并以该错误代码完成命令,以便主机能够感知到此状态,而无需等待恢复完成再处理命令。

主机软件可以从 CSR 寄存器读取芯片状态;但是,它必须等待恢复操作完成后才能向芯片发出读/写请求。主机可以轮询 CSR 状态寄存器来检查芯片状态。

二、写入错误

如果主机发出的写入命令超出 UCIe 通道容量,或写入到 UCIe 通道容量中已释放的区域,则会报告此错误。主机需要确保命令中的地址正确,如果已释放的容量尚未被释放,请将其释放。

块容量以 NAND 块大小为粒度释放,最大释放容量可达 UCIe 通道容量。

出现此错误时,主机软件需要释放 NAND 块的容量,以防主机软件在 HBF 最初报告已释放容量时遗漏了该容量(尽管在原始请求中报告了已释放容量的确切大小)。

(二)地址重叠

如果某个 UCIe 通道地址命令已处于挂起状态或已写入 NAND 闪存,则会报告此错误,因为 HBF 不支持在 NAND 闪存块内进行随机写入。

要重写 NAND 闪存块,主机软件需要从 NAND 闪存块的第 0 页、第 0 行、第 0 列开始写入。

(四)已达到最大待处理设备逻辑单元 (4KiB) 限制

HBF 将公布基芯片(产品特定)支持的最大待处理设备逻辑单元写入量。主机需要确保写入的设备逻辑单元数量不超过限制,同时主机可以继续发出写入请求,将完整的 4KiB 数据发送到待处理的设备逻辑单元。

如果主机软件希望发出更多设备逻辑单元写入请求,请等待所有待处理的设备逻辑单元写入完成。

(五)设备逻辑单元 (4KiB) 数据完整累积超时

主机可以配置发送设备逻辑单元完整 4KiB 数据的最大等待时间。如果基极芯片在设定的时间限制内未收到完整的 4KiB 数据,则会发送该设备逻辑单元所有已发出写入操作的完成通知,并附带此错误代码。主机软件可以重新发送整个 4KiB 数据写入请求。

(六)写入顺序违例

HBF 要求主机在 NAND 块内按顺序写入,但主机可以同时写入多个随机 NAND 块。如果基极芯片检测到主机未遵循 NAND 块内的写入顺序,或者 NAND 块内下一页的写入请求早于上一页,则基极芯片将以该错误操作码响应完成写入命令。主机软件需要确保所有先前的页面写入操作都已完成,才能重新发出此写入请求。

在特定情况下,以下错误表明基极芯片预期写入第 N 页,而主机却发送了写入第 N+1 页的请求,并在错误代码中包含附加信息 0x1。

在另一种情况下,如果写入第 N 页是 NAND 程序错误,则所有排在写入第 N 页之后的待处理写入操作都将收到写入顺序违例错误,并在错误代码中包含附加信息 0x2。

主机软件可以按照针对第 N 页写入的推荐操作进行处理。

(七)程序失败,重写 NAND 块数据

当基极芯片在 NAND 块的特定页面上遇到程序失败时,会指示此错误。之后对该 NAND 块的所有写入操作都将以写入顺序违例错误结束。

主机软件需要计算该 NAND 块的 UCIe 本地通道地址,并从第 0 页(字线 0,字符串 0)开始重写该 NAND 块,直至失败的页码。主机软件完成此操作后,继续对该 NAND 块的下一页进行后续写入。但是,如果主机拥有该 NAND 块数据的本地副本,建议使用本地副本而不是从 HBF 读取数据。

(八)将 UCIe 通道本地容量标记为不可用

在极少数情况下,由于硬故障,部分 UCIe 通道容量无法恢复。基极芯片会在 Ruser[8:6] 中报告容量标记为不可用的错误代码。如果存储体耗尽了备用 NAND 块,并且请求写入的新 NAND 块无法分配,则可能会发生以下错误。主机软件需要计算报告的容量地址空间,并从主机软件使用的角度将其标记为不可用。断电重启后,可以从 CSR 寄存器中检索以下信息。

安全

HBF 的安全特性是可选的,并且因产品而异。HBF 与 xPU 封装在同一封装内。HBF NAND 在上电期间的安全保护级别与访问 xPU 的安全保护级别相同,就像 HBM 一样。断电后,可能需要额外的保护措施来确保 HBF 中的内容安全,但要将 NAND 闪存从 xPU 封装中取出,并移除基极控制器,然后通过 TSV 连接到外部控制器来访问 NAND 内容,难度极大。

静态数据安全是指在设备断电时保护存储在 NAND 闪存中的数据。目前有许多已知的 SSD 技术可用于保护 NAND 中的静态数据。由于 HBF 的运行带宽非常高,任何在线加密/解密操作都会消耗大量电量,从而影响性能,因此这些 SSD 技术可能无法直接应用于 HBF。支持静态 HBF 数据的安全机制是可选的,任何关于静态 HBF 数据访问方式的反馈都将有助于我们添加相应的安全功能。我们实现了一些低成本的功能来保护静态 HBF 数据,这些功能不会影响高带宽运行,并且功耗更低。

本章中的所有安全功能均为可选,可能不会全部实现。请参阅产品规格以查看可能实现的安全功能列表,例如 Sanitize(NAND 块擦除或覆盖)等。

上电擦除

上电擦除的工作原理是在每次 HBF 上电时对其中的数据进行混淆处理,确保 xPU 无法读取这些数据。在写入/擦除 HBF 之前,xPU 读取的任何数据都会向 xPU 返回 ECC 错误,错误范围为 HBF 中所有页面的全部容量。上电后,xPU 必须先写入数据才能使用。

HBF 数据清除

HBF 数据清除命令用于安全地擦除 HBF 数据,确保所有数据(包括缓存和缓冲信息)都被彻底删除。安全擦除命令的详细说明请参见 5.2.4.3 节。

物理防篡改

包含 xPU 和 HBF 组件的卡在数据中心可能被物理盗窃。将金属夹固定在散热器上可以防止卡在通过金属探测器时被物理盗窃。可选的嵌入式 RFID 也可以提供一种低成本的解决方案。

HBF应用

使用 HBF 的单 LLM 服务

一、采用主机通道 (UCIe) 交错

下图 47 描述了在单个 LLM 服务中交错所有主机通道时的读取操作。在将模型加载到 HBF 时,数据以 4KiB * N * 16 的大小顺序写入所有通道,其中 N 是每个通道中所有芯片上的并行存储体/平面的数量。当主机在推理时读取页面时,所有 4KiB * N * 16 个页面在一个 HBF 读取延迟时间内并行访问,这可能涉及数百 KiB 的数据。QKV 投影权重被分割成多个页面。分割后的页面大小为 4KiB * N * 16 个通道。此外,输出投影、门向上投影和向下投影也具有相同的大小和结构。将页面大小设置为 4KiB * N * 16 个通道的原因是为了通过交错所有通道来保持最大的读取带宽。

使用 HBF 进行多 LLM 服务

一、主机通道交错

在多 LLM 服务中,当主机上所有通道的交错启用时,始终可以全带宽读取数据,如图 48 所示。这种情况适用于加载各种权重模型并仅访问活动模型。在传统 GPU 中,更改模型时必须将新权重从 SSD 加载到 GPU 内存中,但在此情况下,模型加载已完成,因此在更改模型时可以立即访问,没有任何延迟。多 LLM 服务可以很容易地理解为单 LLM 服务的扩展版本。

二、无主机通道交错

图 49 描述了在多个 LLM 服务中,对每个通道的每个区域进行加权而不进行通道交错的情况。在这种情况下,由于没有通道交错,主机需要知道每个通道的地址,并设计一个模型来写入每个通道。这种情况的优势在于,GPU 核心可以通过分离模型来同时访问这些模型。由于没有主机通道交错,每个模型的总页面大小为 4KiB * N。由于从同一通道访问权重的模型之间不存在冲突,因此这种方法在某些模型服务场景中可能具有优势。

MoE 示例

使用 HBF、MoE(专家混合模型)和智能体工作负载的多模态 LLM:诸如多 LLM、MoE(实验混合模型)和智能体工作负载之类的模型,与"采用主机通道交错"和"不采用主机通道交错"的情况并无太大区别。根据其用途(性能或容量利用率),您可以选择仅在少数通道中写入或存储模型。

HBF 使用示例

一、AI 参数存储与加载

由于 AI 应用的特性,每次生成令牌时都需要加载各种参数。AI 参数的大小可能从几 GiB 到几十甚至几百 GiB 不等,因此在生成token时,为了充分发挥参数加载的性能,应该利用整个通道的带宽。为了最大限度地利用整个通道的带宽,参数写入采用通道交错并行方式,读取操作也应以同样的方式交错进行。

二、KV Cache数据写入/读取指南

在预填充期间,会为每一层生成KV Cache,解码过程会使用这些KV Cache来生成下一个token。新的KV Cache是通过使用同一token层的所有先前层的KV Cache生成的。因此,写入和读取性能可能会因主机系统的键KV Cache内存布局而异。主机应该充分了解 LLM 或其他 AI/ML 架构,以便优化数据放置,从而获得最佳的写入和读取性能。HBF 的目标是提供所有必要的硬件接口,如前文所述,以便以最佳方式利用 HBF,从而在各种 AI/ML 应用和 LLM 服务期间改善用户体验。

三、将权重和KV Cache写入操作划分到不同的通道

如果将具有不同读/写模式的KV Cache和模型权重混合在一个区域中,可能会对整体耐久性和容量利用率产生不利影响。因此,可以选择如何以通道为单位划分总容量,并针对每个分区写入键值缓存和权重。通道划分可以根据具体目的选择以下方式之一。

场景 1:耐久性视角(均匀通道划分)

将整个通道划分为两个通道,分别用于写入权重和键值缓存。

场景:将通道划分为大小相等的组(组 0 和组 1)。在权重写入操作期间或由于数据保留而进行重写时,权重会迁移到 PE 周期较低的组中。

预期目标:简化主机驱动的损耗均衡算法

场景 2:最大化容量利用率(非均匀通道划分)整个通道被任意划分,分别用于写入权重缓存和KV Cache。

场景:根据所用模型的权重大小确定通道数。

预期目标:最大化容量利用率

*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。

END

今天是《半导体行业观察》为您分享的第4488内容,欢迎关注。

推荐阅读

一颗改变了世界的芯片

美国商务部长:华为的芯片没那么先进

"ASML新光刻机,太贵了!"

悄然崛起的英伟达新对手

芯片暴跌,全怪特朗普

替代EUV光刻,新方案公布!

半导体设备巨头,工资暴涨40%

外媒:美国将提议禁止中国制造的汽车软件和硬件

加星标⭐️第一时间看推送

求点赞

求分享

求推荐

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

谷歌 海力士 闪迪 nand技术 ssd
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论