新闻详情

新闻详情

首页 / 资讯中心 / 详情

DDR[内存基础]--Prefetch Burst Length

发布时间:2026/6/10 15:31:59
DDR[内存基础]--Prefetch  Burst Length
前言在学习DDR刚刚打开JEDEC就看到Prefetch预取和Burst Length突发长度这些都是什么东西被一堆术语搞得云里雾里预取是怎么做到的突发长度到底在控制什么它们和DDR速率提升有什么关系本文将用通俗的语言把这两个概念解释清楚1 核心概念PrefetchBurst Length(BL)在上一篇文章中我梳理了DDR内存中Channel、Rank、Bank Group和Bank的架构层次。今天我们将深入探究驱动DDR性能飞跃的另外两个核心机制预取(Prefetch)和突发长度(Burst Length)。理解它们是看懂内存性能参数的关键。1.1 简单理解 Prefetch BL可以把内存系统想象成一个大型物流仓库而Prefetch BL定义了其内部的高效工作流程。Prefetch是仓库分拣系统的工作模式。它指的是当接到一个货物请求时仓库工人DRAM内核不是只拿取一件而是一次性从货架上取出多个连续地址的货物。Burst Length是快递包裹的标准化尺寸。它规定了快递员内存I/O接口一次送货必须按几个货物为一组进行打包和运输。2 PrefetchBL对于DDR的演进的影响Prefetch是DDR不同代之间性能提升的核心驱动力。它巧妙地解决了DRAM存储单元慢与处理器需求快之间的根本矛盾。2.1 理解DDR速率和带宽我们经常可以看到说这个LP5X产品速率是8533/9600这样还有提到这个DDR的总带宽可以达到多少这实际上是在说什么意思呢2.1.1 DDR的等效速率DDR的等效数据速率即我们在规格书上看到的max frequency如“8533”这个代表的意义是单个数据引脚每秒完成多少次的传输可以通过一个核心公式理解I/O 数据速率 核心频率 × 预取长度 × 2上下沿都传输数据所以*2我们会在一些规格书上看到如下的内容其实它表示的不是总带宽而是指每个引脚的传输率其实约等于MT/s9600 Mbps (tWCK0.2083 ns)所以从公式可以看出在核心频率提升困难的情况下增加预取长度成为了提升接口速率最有效的杠杆。从下图可以看到在DDR演进的过程中Prefetch的增加PS实际产品的核心频率也会逐步提升但预取倍数的增长是早期性能跃升的主要来源LPDDR5X通过将预取增至16并辅以更高核心频率和先进信号技术实现了8533 MT/s乃至10.7 Gbps的速率。2.1.2 DDR的带宽DDR的总带宽是指整个芯片所有引脚加起来每秒能传输的数据量。DDR理论带宽 速率 * 位宽例如一个有两个channel,每个channel16bit的LPDDR5X产品他的最高速率可以达到8533Mbps, 那么他的理论带宽可以达到8533Mbps*32/8/1000≈34.1GB/s2.2 关于BL的简单说明Burst Length 不改变 I/O 速率或理论峰值带宽但它通过决定每次命令传输的数据量影响总线的有效利用率和实际能达到的有效带宽。所以 BL 对带宽的影响是“效率层面”的——它决定了数据总线有多少时间在传有效数据多少时间在传可能被丢弃的数据。连续大块访问如拷贝大文件、加载游戏场景用长 BL效率高随机小访问如数据库查询、链表遍历用短 BL减少浪费3 总结结合上一讲的内容和prefetch和BL下面总结一下他们对于DDR有什么影响4 疑问以及解答Q1: prefetch是对bank单位来说的吗是的Prefetch 是以单个 Bank 为单位来实现和描述的但它最终的效益体现在整个芯片的数据输出上。为什么是以 Bank 为单位原因在于 Prefetch 操作发生在单个 Bank 内部的行激活和列读取过程中。访问 DRAM 的一个 Bank 有三个关键步骤激活ACTIVATE将选中的一行数据从存储阵列读取到该 Bank 的行缓冲器中。读取/写入READ/WRITE从行缓冲器中选取特定的列进行数据访问。预充电PRECHARGE关闭该行为下一次激活做准备。Prefetch 就发生在第 2 步读操作中。当一个 Bank 收到一个 READ 命令时它内部的行地址译码器不仅仅选通一个列一个存储单元而是一次性从行缓冲器中选通连续的多个列例如 8 个或 16 个并将这些列对应的数据并行地传输到该 Bank 的 I/O 缓冲区中。因此Prefetch 长度描述的就是单个 Bank 在一次 READ 操作中从其行缓冲器中并行读取的连续列的数量。 不同 Bank 的 Prefetch 操作是独立的可以并行发生尤其在多 Bank Group 架构下。Q2: Prefetch怎么实现一次性拿8个A:关键点在于这8个数据来自同一行Row里的连续8列Column。· Bank激活一行后整行数据被复制到由无数个灵敏放大器构成的行缓冲器中。· Prefetch8意味着列地址解码器会同时选中8个连续的灵敏放大器通过一条非常宽的内部数据总线比如64位宽将8个数据并行地送到I/O缓冲区。· 所以Prefetch的并行是“从一行中并行取多列”的空间并行而不是同时激活多行。如果数据不在同一行或者同一bank那么就是随机读取的情况其实就没有办法一次性prefetch。
网站建设 高端定制 企业官网