0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DDRX SDRAM中的预取技术说明

FPGA技术江湖 来源:郝旭帅电子设计团队 2026-01-13 11:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

以下文章来源于郝旭帅电子设计团队,作者郝旭帅

本篇主要是DDRX SDRAM中的预取技术说明

DDRX SDRAM外部接口数据传输率需要不断提高(从DDR到DDR5),内存芯片内部的DRAM存储单元(电容阵列)的物理访问速度有上限,无法随着接口速度的线性增长。

预取(Prefetch)技术是DDR SDRAM实现高速数据传输的关键技术之一。它的基本思想是:在内存核心(存储阵列)和外部数据总线之间设置一个缓冲区,内存核心工作在一个相对较低的频率,而数据总线工作在一个较高的频率,通过一次从存储阵列中读取多个数据(预取),然后在外部数据总线上通过多个时钟周期(或双沿传输)将数据依次传输出去,从而提升数据传输率。

具体来说,DDR SDRAM的预取长度(Prefetch Length)是指每次从存储阵列中读取的数据位数与每次对外传输的数据位数的比值。例如,对于DDR1,预取长度是2n;DDR2是4n;DDR3是8n;DDR4也是8n(但通过Bank Group分组来模拟更高的预取);DDR5则是16n(但通过两个独立的通道实现)。

下面我们详细说明:

1. DDR1 (2n Prefetch) 内存核心(存储阵列)的工作频率是外部数据传输频率的一半。例如,对于DDR-400,外部数据传输频率是400MT/s,内存核心频率是200MHz。 每次从存储阵列中读取2位数据(针对每个数据引脚),然后在外部数据总线上通过两个时钟边沿(上升沿和下降沿)将这两位数据依次传输出去。 这样,在内存核心工作频率不变的情况下,外部数据传输率翻倍。

2. DDR2 (4n Prefetch) 内存核心频率进一步降低,为外部数据传输频率的四分之一。例如,DDR2-800,外部数据传输频率为800MT/s,内存核心频率为200MHz。 每次从存储阵列中读取4位数据,然后在外部数据总线上通过4个时钟边沿(两个时钟周期,因为每个周期有两个边沿)将这4位数据依次传输出去。 这样,在相同的内存核心频率下,DDR2的数据传输率是DDR1的两倍(因为预取长度翻倍)。

3. DDR3 (8n Prefetch) 内存核心频率为外部数据传输频率的八分之一。例如,DDR3-1600,外部数据传输频率为1600MT/s,内存核心频率为200MHz。 每次从存储阵列中读取8位数据,然后在外部数据总线上通过8个时钟边沿(4个时钟周期)将这8位数据依次传输出去。 这样,在相同的内存核心频率下,DDR3的数据传输率是DDR2的两倍,是DDR1的四倍。

d4554faa-ecf2-11f0-92de-92fbcf53809c.png

上述结构为ddr3 sdram 内部结构图。8bank,16krow,1kcol,x16.

按照我们正常的理解:

每一个bank应该有16k行,1k列,每个存储空间可以存储16bit。

但是实际上我们通过结构图看到的是:16k行,128列,每个存储空间可以存储128bit。

那也就是说:每次读写都是128位,而接口的宽度是16,相当于读取出来了8个我们认为的存储地址。

所以ddr3的内部就可以以接口速率的1/8运行。

4. DDR4 (8n Prefetch with Bank Group) DDR4也使用8n预取,但是引入了Bank Group(存储体分组)的概念。每个Bank Group可以独立操作,从而可以在不同的Bank Group之间交替执行操作,类似于提高了并行度,从而在保持8n预取的情况下进一步提升了性能。 例如,DDR4-3200,外部数据传输频率为3200MT/s,内存核心频率为400MHz(因为8n预取,核心频率为3200/8=400MHz)。注意,这里核心频率比DDR3的例子高,因为DDR4的速度更高,但预取倍数相同。

5. DDR5 (16n Prefetch) DDR5将预取长度提升到16n,但这是通过两个独立的通道(每个通道40位,其中32位数据位和8位ECC位)来实现的。实际上,每个通道的预取长度可以认为是8n,但整体上,内存核心一次提供16n的数据,然后通过两个通道传输。 例如,DDR5-6400,每个通道的数据传输率是3200MT/s,整体是6400MT/s。内存核心频率为400MHz(假设每个通道是8n预取,那么每个通道的核心频率为3200/8=400MHz,两个通道共享核心阵列,但可以交错访问)。

预取技术的优点:

允许内存核心工作在相对较低的频率,从而降低功耗和制造难度(因为存储阵列的访问速度难以提升)。

通过提高预取长度,可以在不提高内存核心频率的情况下增加外部数据传输率。

预取技术的缺点:

预取长度增加会导致访问延迟(Latency)的增加,因为每次访问需要从存储阵列中读取更多的数据,而且如果访问模式不是顺序的(例如随机访问),那么预取的数据可能用不上,造成浪费。

为了缓解这个问题,DDR4和DDR5引入了Bank Group,通过并行操作来隐藏延迟。

总结:

预取技术是DDR SDRAM实现高速数据传输的核心技术,它通过降低内存核心工作频率并提高每次访问的数据量来实现更高的数据传输率。随着DDR代际的升级,预取长度不断增加,同时通过其他技术(如Bank Group、多通道)来克服预取带来的延迟增加问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SDRAM
    +关注

    关注

    7

    文章

    462

    浏览量

    57975
  • 接口
    +关注

    关注

    33

    文章

    9653

    浏览量

    157913
  • 存储
    +关注

    关注

    13

    文章

    4954

    浏览量

    90459
  • DDR
    DDR
    +关注

    关注

    11

    文章

    764

    浏览量

    69766

原文标题:DDRX SDRAM中的预取技术说明

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    DDRx的关键技术介绍(上)

    作者:一博科技在上一篇的问题里面问到了DDRX相对于前一代来说的关键技术突破在哪里,虽然没有人回答得完全正确,但这个也是很正常的,因为通过几句话要想说清楚也确实是不容易的,所以还是通过文章来把这些
    发表于 08-23 18:21

    DDRx的关键技术介绍(

    DDRx里面经常会被一些缩写误扰,如OCD、OCT和ODT,我想有同样困扰的大有人在,今天还是继续上一篇的关键技术来介绍一下大家的这些困扰吧。片外驱动调校OCD(Off-Chip Driver
    发表于 08-31 11:36

    请问如何理解C6678数据的描述?

    to applydifferent filtering to each request."即然L1D或L1P申请了数据,为什么还要根据MAR的配置进行的操作。
    发表于 12-27 11:12

    可以在不关闭缓存的情况下关闭FMC器吗?

    是等价的——即使考虑到体系结构组件)。挖掘了一段时间后,我发现证据表明硬件器可能是罪魁祸首。我可以通过将内存属性更改为强顺序来关闭器。然而,从同一个文档看来,使内存强排序也会关
    发表于 01-16 07:00

    nuc505 FLASG有指令预取功能吗?

    nuc505 FLASG 有 指令预取 功能吗
    发表于 06-13 07:17

    Cortex-R82的器功能分析

    进行了研究,其中基线不存在。该调查展示了Cortex-R82器在以下领域的性能:无
    发表于 08-09 06:11

    nuc505 FLASG有指令预取功能吗?

    nuc505 FLASG有指令预取功能吗
    发表于 08-28 08:02

    片上多处理器基于步长和指针的

    在对大量程序访存行为进行分析的基础上,提出基于步长和指针的方法。能捕获规整的数据访问模式和指针访问模式。在L2 cache 和内存之间采用全局历史缓存实现该方法。
    发表于 03-21 15:21 16次下载

    SDRAM设计详细说明

    SDRAM设计详细说明 完成SDRAM的上层驱动设计,对SDRAM读写、管理无误,与其他模块的接口正确。 口令:MMCTEAM SDRAM
    发表于 04-22 14:02 0次下载

    一种帮助线程质量的实时在线评价方法

    针对传统静态枚举设置帮助线程控制参数值的繁杂耗时问题,提出了一种帮助线程质量的实时在线评价方法。首先,明确了帮助线程的服务质量(QoS)的目标;其次,分析了帮助线程
    发表于 12-07 10:28 0次下载
    一种帮助线程<b class='flag-5'>预</b><b class='flag-5'>取</b>质量的实时在线评价方法

    面向系统的程序基本块指令预取技术

    面向通用计算机系统的指令预取技术无法满足实时系统的应用需求,其中一个重要原因是:无效引起的指令Cache内容污染使得实时任务WCET评估值不够精确。导致系统可调度性下降,严重影响系
    发表于 01-10 15:36 0次下载

    PIC32MX系列参考手册之高速缓存模块

    本节介绍 PIC32MX 器件系列高速缓存模块的功能和工作方式。高速缓存功能可以 提高大多数应用程序的系统性能。
    发表于 06-22 05:20 2次下载
    PIC32MX系列参考手册之<b class='flag-5'>预</b><b class='flag-5'>取</b>高速缓存模块

    加载器调试HPS SDRAM的方法过程

    如何在加载器调试HPS SDRAM
    的头像 发表于 06-20 00:44 4283次阅读
    在<b class='flag-5'>预</b>加载器<b class='flag-5'>中</b>调试HPS <b class='flag-5'>SDRAM</b>的方法过程

    C语言的模跟余的实例说明

    本文档的主要内容详细介绍的是C语言的模跟余的实例说明
    发表于 12-13 15:17 2次下载
    C语言的<b class='flag-5'>取</b>模跟<b class='flag-5'>取</b>余的实例<b class='flag-5'>说明</b>

    如何评估SDRAM的有效带宽

    在进行电子系统设计时,我们经常会用到SDRAM(SDR SDRAM或者DDRX SDRAM)作为缓冲单元,但是如何评估SDRAM的有效带宽呢
    的头像 发表于 01-12 09:17 688次阅读
    如何评估<b class='flag-5'>SDRAM</b>的有效带宽