当前位置: 首页 > news >正文

浅谈内存DDR——DDR4的RASR/Bank Group等技术

在DDR3及更早的内存中,虽然一个内存芯片内部也划分了多个Bank(可以理解为独立的内存子阵列),可以在不同Bank之间进行流水线操作,但同一时刻只能有一个Bank在进行数据读写。当控制器要访问一个Bank时,必须经历一系列的命令(激活、读写、预充电),在此期间,其他已经准备好的Bank也必须等待,这形成了性能瓶颈。

Bank Group

DDR(Double Data Rate)内存技术中的预取(Prefetch)机制是提高数据传输效率和减少内存访问延迟的关键技术之一。预取机制通过在一次内存访问中读取多个数据位,并将这些数据暂存到缓冲区中,以便后续的快速访问。 预取位数随着DDR技术的演进而不断增加,从DDR1的2位预取到DDR5的16位预取。

以下是各个DDR版本的预取位数:

DDR1:2位预取(2n Prefetch) DDR2:4位预取(4n Prefetch)

DDR3:8位预取(8n Prefetch) DDR4:8位预取(8n Prefetch)

DDR5:16位预取(16n Prefetch)

按照发展趋势,其实DDR4的预取应该为16位预取,但是DDR4并没有增加到16位预取。DDR4不使用16倍预取的原因主要有以下几点:

与CPU Cache Line大小不匹配:16倍预取会导致数据浪费,降低带宽利用率。现代CPU的Cache Line大小通常是64字节(64B)。如果DDR4使用16倍预取,对于64位(8字节)的DDR,一次会取出128字节的数据。而CPU的Cache Line大小是64字节,这意味着多取出来的64字节数据可能会被浪费,因为这些数据可能不会立即被使用。

增加DRAM内部面积资源:16倍预取需要更大的内部缓冲区,增加芯片面积和制造成本。

平衡性能和功耗:8倍预取在满足高带宽需求的同时,避免了不必要的数据传输,降低了功耗。

所以,这是当时情况下的最优解。同时为了提高速度,DDR4引入了Bank Group这个技术。

两个时序参数

Bank Group的设计使得在同一时间可以并行处理多个读写操作,从而提高了内存系统的整体性能。
DDR4将多个Bank分组形成一个Bank Group,每个Bank Group可以包含多个Bank。通过Bank Group,DDR4内存可以在不同的Bank Group之间同时执行命令,而不会相互干扰。这意味着,当一个Bank Group正在进行数据传输时,另一个Bank Group可以同时进行其他操作,从而提高了内存的整体性能。 通过多个BG再进行MUX,这样多级MUX结构,2个BG就能够实现等效16N预取的效果。 在DDR4中,Bank Group的引入使得设计者能够在不增加预取长度的情况下,提升内存的带宽和效率。通过将Bank分组,设计者可以更灵活地管理内存的访问,避免了因增加预取长度而带来的复杂性和潜在的性能瓶颈。

DDR4增加Bank Group后,引入了tCCD_StCCD_L(CCD:Column to Column Delay)两个时序参数。

tCCD_S(Short Column to Column Delay)

定义:tCCD_S表示不同Bank Group之间的列访问等待时间。其值通常是4个时钟周期(Cycle),与一个数据Burst长度相同。作用是允许不同Bank Group之间的快速切换,提高并发操作能力。  

tCCD_L(Long Column to Column Delay)

定义:tCCD_L表示同一个Bank Group内部的列访问等待时间。其值通常比4个时钟周期长,即会超过一个数据Burst长度。作用是确保在同一Bank Group内部进行连续列访问时,有足够的等待时间来避免冲突和数据错误。

Bank Group核心思想

Bank Group的核心思想是缩短同一Group内Bank间的命令延迟,但允许不同Group之间以更短的延迟进行切换
同一Bank Group内的操作:当在一个Bank Group内切换Bank时,仍然需要遵守类似于DDR3的时序限制(如 tCCD_L, 列到列延迟),这个延迟较长。
不同Bank Group间的操作:当从一个Bank Group切换到另一个完全不同的Bank Group时,可以应用一个更短的延迟(如 tCCD_S)。这相当于为内存控制器打开了多条“高速公路”,可以在一条路上有车(命令)时,另一条路上也同时发车。

把DDR3的内存看作一个只有一个出入口的大型停车场。无论车停在哪个车位,进出都要经过这个口,容易堵车。
而DDR4的内存则像一个有多个独立出入口的四层停车场。车辆可以同时从不同层的出入口进出,大大提升了通行效率。

更高的数据速率:通过交叠来自不同Bank Group的访问请求,有效提升了数据总线的利用率,使得DDR4能够稳定运行在远高于DDR3的频率

(如 2133MT/s 起,最高可达 3200MT/s+)。
降低实际延迟:虽然绝对延迟(如CAS Latency)的数值可能没有下降,但由于并发性的提高,系统的整体感知延迟降低了,因为多个请求可以被并行处理。

RASR - 可靠性、可用性与可服务性

RASR并不是一个单一的技术,而是一系列旨在提高内存子系统 可靠性可用性可服务性 的功能集合(刷新管理)。在DDR4中,这些功能变得更加重要,因为更高的密度和更低的电压使得内存对错误更加敏感。

在自刷新模式下,DRAM需要定期刷新其存储单元以防止数据丢失。传统的自刷新模式下,刷新周期是固定的,这会导致不必要的功耗,尤其是在低功耗应用场景中。为了优化功耗,DDR4引入了Reduced Auto Self-Refresh (RASR) 技术。 RASR技术通过减少刷新周期的数量来降低功耗,同时确保数据的完整性。其核心原理在于动态调整刷新周期的数量,以适应不同的工作状态和温度条件。

•  减少刷新周期:在RASR模式下,DDR4 SDRAM会根据当前的工作状态和温度动态减少刷新周期的数量。这意味着在某些情况下,DRAM可以使用更长的刷新间隔,从而减少刷新操作的频率。

•  优化算法:DDR4 SDRAM内部使用优化算法来决定何时减少刷新周期的数量。这些算法考虑了当前的温度、工作负载和其他相关因素,以确保在减少刷新周期的同时,数据的完整性不受影响。

•  温度监测:DDR4 SDRAM内部集成了温度传感器,可以实时监测当前的温度。温度信息用于调整刷新周期的数量,确保在高温条件下仍然能够保持数据的完整性。

片上ECC

在一些高端的DDR4内存芯片(通常是服务器级)中,在每个芯片内部 就集成了错误纠正码逻辑。
它在数据被写入芯片的存储单元时生成ECC校验位,并在读取时进行校验和纠正。这与主板/CPU层面实现的ECC(在内存条上有多余的颗粒)是不同的层级。

可以纠正芯片内部产生的个别位错误,防止这些错误传递到系统总线上,从而提高了芯片本身的可靠性。这对于构建极高可靠性的服务器系统至关重要。

数据的ECC,ECC(Error Correction Code)。它通过在数据中添加冗余信息(ECC码),可以检测并纠正一定数量的错误比特。但是这个是需要额外的存储空间才能实现的,一般在车载,服务器领域才会使用。

命令/地址奇偶校验

DDR4为从内存控制器发送到内存颗粒的命令和地址信号 增加了奇偶校验功能。
内存控制器在发送命令/地址的同时会计算并发送一个奇偶校验位。内存颗粒在接收端会重新计算奇偶校验,如果发现不匹配,会通过一个专门的 ALERT_n 信号线通知控制器。

防止因命令或地址信号在传输过程中出错而导致的错误内存操作(如写入错误的位置),提升了系统的稳定性。

奇偶校验是一种简单的错误检测机制,它通过在数据中添加一个额外的位(奇校验或偶校验位)来确保数据中1的总数是奇数或偶数。在DDR4中,奇偶校验可以通过模式寄存器启用。启用后,DRAM会使用ACT_n,RAS_n/A16,CAS_n/A15,WE_n/A14,BG0-BG1,BA0-BA1,A17-A0计算奇偶校验。输入奇偶校验应保持在时钟的上升沿,并同时与CS_n LOW的命令和地址保持一致。如果命令地址奇偶校验中存在错误,则Alert_n会在相当长的一段时间内变为低电平。

数据总线CRC

DDR4为数据总线 引入了循环冗余校验。
突发传输(Burst)期间,内存控制器会计算并附加一个CRC校验码。内存颗粒在接收数据时会进行CRC校验。如果发现错误,颗粒可以通知控制器,控制器可以重新发送数据。

保护了在数据总线上传输的数据完整性,特别是在高频率下,信号完整性面临挑战时,CRC能有效检测并帮助纠正传输错误。

CRC校验是一种广泛使用的错误检测技术,它通过计算数据包的CRC值来检测在传输过程中数据是否被篡改或损坏。在DDR4中,CRC校验可以通过模式寄存器开启,并在写操作时进行校验操作。当CRC校验开启时,数据结构格式为固定10个UI,同时对BL8与BC4有效。如果在写操作时启用了CRC,DRAM会在数据突发末尾添加CRC。

可编程的刷新功能

这是DDR4 RASR中一个非常重要且灵活的特性,主要包括:
自动自刷新
内存可以根据其内部温度传感器,动态调整自刷新的频率。
内存颗粒内部集成温度传感器。当温度升高时,DRAM单元漏电加快,需要更频繁地刷新;温度降低时,则可以降低刷新频率。

在低温下减少不必要的刷新操作,可以显著降低功耗(称为“自刷新功耗”),这对于需要始终通电的移动设备和服务器来说意义重大。

精细粒度刷新
提供了多种刷新模式,允许系统在性能和可靠性之间进行权衡。
1x Refresh:标准刷新模式,每隔 tREFI 时间进行一次刷新。
2x Refresh:将刷新命令的频率提高一倍。这通常在内存温度很高时使用,以确保数据不会因漏电而丢失,但会稍微影响性能(因为刷新更频繁地占用总线)。
5x/4x Refresh:一些厂商支持更极端的模式,如降低刷新频率以在低温下节能,或极度提高频率以应对极端高温。

赋予了系统设计者根据实际工作环境(如温度)来优化内存子系统的能力。

Bank Group和增强的RASR功能是DDR4技术的两大支柱。Bank Group主要负责“开得快”,通过架构革新解决了高频率下的并发瓶颈;而RASR主要负责“开得稳”,通过一系列纠错、校验和智能管理功能,确保了在高速、高密度、低电压下的数据可靠性和系统耐久性。这两者结合,使得DDR4能够满足从移动设备到高性能计算、数据中心等广泛领域对内存性能、功耗和可靠性的苛刻要求。

http://www.dtcms.com/a/438727.html

相关文章:

  • 网站上传模板后xml天气预报网站怎么做
  • 人工智能:从技术本质到未来图景,一场正在重塑世界的变革
  • 成都私人网站制作做读书网站的前景
  • linux学习笔记(11)fork详解
  • Streamlit:CSS——从基础到实战美化应用
  • ORB_SLAM2原理及代码解析:Tracking::MonocularInitialization() 函数
  • JVM的类加载机制
  • 6. Pandas 数据排序与排名
  • lanqiao1110 小王子单链表——单链表
  • 张店网站建设价免费的编程自学软件
  • 农机网站建设目标php网站mysql数据库导入工具
  • 浙江网站建设平台app开发费用计入什么科目
  • 2025年渗透测试面试题总结-100(题目+回答)
  • 做网站赚钱容易吗推广赚钱平台有哪些
  • AutoOps:简单的 Elasticsearch 集群监控与管理现已支持本地部署
  • Async++ 源码分析3---cancel.h
  • Async++ 源码分析4---continuation_vector.h
  • 一个做搞笑类视频的网站取名网站建设平台协议书
  • 机器学习、数据科学、深度学习、神经网络的区别与联系
  • 上海嘉定网站设计商城首页网站
  • 显示系统(二):显示适配器(显卡)背后的历史
  • 嘉兴网站制作案例无代码制作网页
  • 网站页面seo做网站的语
  • 建设银行注册网站的用户名怎么写建设一个货架网站
  • 排序(Sort)
  • [Web网页] Web 基础
  • 做商铺的网站有那些怎么检查网站的死链
  • 网站做qq发送链接广东省建设监理协会网站 - 首页
  • 操作系统应用开发(十八)RustDesk-API服务器数据库——东方仙盟金丹期
  • 济南小型网站建设厦门人才网唯一官方网站