从零开始讲DDR(2)——DDR的核心技术

news2024/11/13 11:38:07

        我们知道DDR区分于之前的SDRAM最大的点就在于它可以做到“在时钟周期的上升沿和下降沿都能传输数据,这样它的传输速率就比SDRAM快了一倍”。其实要做到这点,背后需要的技术突破体现在很多层面:


一、双边沿触发技术(Double Data Rate)

        DDR 内存利用时钟信号的上升沿和下降沿,分别触发数据传输。这不同于传统的 SDRAM 只在时钟信号的上升沿传输数据。通过这一设计,DDR 在相同的时钟频率下,能够每个周期传输两倍的数据。

        这项技术从诞生到现在也经历了很长时间演变,首先DDR作为最早的双边沿触发内存技术,时钟频率较低,但实现了数据传输速率的翻倍。之后的DDR2、DDR3、DDR4、DDR5,随着内存技术的发展,双边沿触发技术被保留下来并持续改进。这些技术在进一步提升时钟频率的同时,依然使用双边沿触发技术,使得数据传输速率越来越高。例如:DDR3 的时钟频率为 800 MHz,但由于双边沿触发,其数据传输速率可达到 1600 MT/s。DDR5 在时钟频率为 3200 MHz 时,能够实现 6400 MT/s 的数据传输速率。

二、数据选通(Data Strobe, DQS)信号

        但是,双边沿触发技术的引入在带来效率提高的同时,也引入了一部分挑战。首先就是信号完整性方面的考虑,在高频传输中,确保时钟和数据的同步非常重要,双边沿触发需要比单边沿更精确的时钟管理机制。DQS(数据选通信号)的引入可以确保在每个时钟周期的上升沿和下降沿准确采样数据。

        它的主要作用是帮助内存控制器在读写操作时,正确采样数据,确保数据在高频率下能够稳定传输。DQS 信号的工作机制与 DDR 的读写操作紧密相关。

        我们知道DDR之前的SDRAM就是使用clock来同步的,因此理论上,DQ的读写时序完全可以由clock来同步。但是,由于速度提高之后,可用的时序余量越来越小,而引入DQS是为了降低系统设计的难度和可靠性,也就是可以不用考虑DQ和clock之间的直接关系,只用分组考虑DQ和DQS之间的关系,由于 DQS 和 DQ 是分组同步的,因此可以将同一组 DQ 数据线和 DQS 信号放在电路板上的同一层来走线。这有助于保持信号的时序一致性,减少信号传播中的延迟差异和误差。

        DQ和DQS只是组成了源同步时序的传输关系,可以保证数据在接收端被正确的所存,但是IC工作时,内部真正的同步时钟是clock而不是DQS,数据要在IC内部传输存储同样需要和clock(内部时钟比外部时钟慢)去同步,所以就要求所有的DQ信号还是同步的,而且和clock保持一定的关系,所以就要控制DQS和clock之间的延时了。在写入时,以DQS的高/低电平期中部为数据周期分割点,而不是上/下沿,但数据的接收触发仍为DQS的上/下沿。

2.1 DQS 在读操作中的作用

        当 DDR 内存执行读操作时,DQS 信号与内存发送的读数据(DQ)同步。DQS 与读数据边沿对齐,这样内存控制器可以准确地在时钟周期的上升沿和下降沿采集到内存传输的有效数据。

        DQS 边沿对齐:意味着 DQS 信号的上升沿和下降沿与数据的变化点一致。控制器通过检测 DQS 信号的边沿来决定何时进行数据采样。每一颗芯片都有一个DQS信号线,它是双向的,在写入时它用来传送由芯片发来的DQS信号,读取时,则由内存生成DQS向芯片发送。因此可以认为DQS就是数据的同步信号。

2.2 DQS 在写操作中的作用

        在写操作时,数据是由控制器发送给内存的。在这种情况下,DQS 信号会由内存控制器产生,并与写数据(DQ) 中心对齐,帮助内存模块在正确的时机接收写入的数据。

        DQS 中心对齐:DQS 的上升沿和下降沿分别位于两个数据比特之间,确保内存能够在时钟周期的中间采样数据。由于时钟周期的中间区域波动最小,中心对齐可以提高写操作的稳定性。

2.3 DQS 与 DDR 的突发传输

        DDR 内存采用突发传输模式,数据在短时间内连续传输多个比特。DQS 信号在突发传输中扮演着同步器的角色,确保每个时钟周期的数据都能准确传输与接收。DQS 在突发模式下,帮助控制器和内存模块保持数据的传输节奏一致,从而提高了 DDR 的数据吞吐量。

三、低电压差分信号传输(LVDS)

        除了信号完整性方面的挑战,双边沿触发技术的引入还带来了数据传输延迟和误差控制方面的挑战。由于时钟频率较高,信号传输过程中可能会出现延迟和抖动,DDR 内存使用了差分信号传输等技术来减小噪声干扰,保持数据传输的稳定性。这种信号传输技术可以减小电压摆幅,降低电磁干扰(EMI),并提高信号的抗噪声能力,从而保证在高频下的稳定性。

四、突发传输模式(Burst Mode)

        DDR 内存采用了突发传输技术。一次内存访问会触发一系列连续的数据传输(突发传输),大幅减少了时钟周期的开销。这样不仅提高了数据传输效率,还在双边沿传输下最大化利用了每个时钟周期。

4.1 什么是突发传输(Burst Mode)

        突发传输是一种优化的数据传输方式,当 DDR 内存接收到一次读取或写入命令时,它不仅仅传输一个数据块,而是传输一系列连续的数据块。这使得内存可以更高效地利用时钟周期,减少了频繁的命令开销。每次突发传输的长度通常是 4 或 8,也就是一次突发操作传输 4 个或 8 个数据块(单位通常为字节或位)。

4.2 突发传输的工作方式

        当内存控制器向 DDR 发送读/写命令时,内存模块会根据预设的突发长度,在每个时钟周期的上升沿和下降沿连续传输多个数据块,而不是逐个周期发出一个数据传输请求。例如,如果设定了突发长度为 8(BL8),那么 DDR 内存会在一个命令下连续传输 8 个数据块,而不需要为每个数据块单独发送命令。

        双边沿传输(Double Data Rate, DDR) 是 DDR 内存的一大特点,即数据在时钟的上升沿和下降沿都可以传输。结合突发传输技术,DDR 内存能够在每个时钟周期的上升沿和下降沿连续传输多个数据块,最大限度地利用每个时钟周期。这种双边沿与突发传输的结合,显著提高了内存的数据吞吐量和传输效率。

        从DDR的原理图中,我们可以注意到Column Address的A2,A1,A0被单独预留了出来。

         这就是为了用于Burst Order功能,并且A3也被用于Burst Type功能。由于一般情况,我们采用的都是顺序读写模式(即{A2,A1,A0}={0,0,0}),所以此时的A3的取值并无直接影响。

4.3 突发长度的灵活性

        不同的 DDR 版本可以支持不同的突发长度,比如常见的 BL4 和 BL8,即每次传输 4 个或 8 个数据块。在一些高级的 DDR 版本中,突发长度可以动态调整,甚至支持按需截断(Burst Chop),从而在需要时截断突发传输长度以适应不同的应用需求。

五、多Bank并行处理

        DDR 内存内部分为多个独立的Bank,这些 Bank 可以并行处理多个操作。这种架构在双边沿触发技术下,进一步提高了内存的并发处理能力,提升了数据的吞吐量。

六、内部数据预取(Prefetch Buffer)

        DDR 内存使用了预取技术,内部数据预取(Prefetch Buffer) 是 DDR 内存中的一个关键组件,用于优化数据传输效率。它的作用是在时钟周期内一次性预取多个数据块,然后在后续时钟周期内逐步输出,从而减少内存访问延迟和提高数据带宽。下面是对 Prefetch Buffer 详细的解释:

6.1 Prefetch Buffer 的基本原理

        预取的意思是内存控制器一次性从内存阵列中读取多个数据块,并将这些数据暂时存储在 Prefetch Buffer 中,而不是每次只读取一个数据块。这些预取的数据将被存储在一个缓冲区中,等待传输。在随后的时钟周期内,内存可以通过双边沿传输技术,将这些预取的数据块逐一传输给控制器,从而提高内存的吞吐量。

6.2 Prefetch Buffer 的工作机制

        在 DDR 内存中,预取技术通常与突发传输相结合。每次数据请求时,DDR 内存通过预取缓冲区一次性从内存阵列中读取多个数据块。预取数据存储在 Prefetch Buffer 中,控制器通过 DQS(数据选通信号)在每个时钟周期的上升沿和下降沿读取这些数据。

6.3 预取深度(Prefetch Depth)

        不同的 DDR 内存有不同的预取深度,这决定了每次内存访问可以预取多少数据:DDR1 使用的是 2n 预取,即每次预取 2 个数据块。DDR2 和 DDR3 使用的是 4n 或 8n 预取,可以一次性预取 4 或 8 个数据块。DDR4 通常使用 8n 预取,即每次预取 8 个数据块。DDR5 提升至 16n 预取,一次预取 16 个数据块。预取深度越大,意味着内存能够在一次读取中获取更多的数据,这对于提升高频率下的内存效率非常重要。

        显然,通过使用Prefetch架构可以解决存储单元内部数据总线频率(核心频率)较低的瓶颈。8n预取,正是DDR3提升带宽的关键技术。同样的核心频率,DDR3能提供两倍于DDR2的带宽。总结: DDR SDRAM内部存储单元的核心频率提高比较困难且成本较高,为了解决外部数据传输率和核心速度之间的矛盾,DDR3引进了8n Prefetch(数据预取架构)技术,它能够提供比DDR2更高的数据传输率。

6.4 Prefetch Buffer 与时钟频率的关系

        DDR的频率的频率可以分为:

  • 核心频率
  • 时钟频率(I/O频率)
  • 数据传输频率

        核心频率就是内存的工作频率;DDR1内存的核心频率是和时钟频率相同的,到了DDR2和DDR3时才有了时钟频率的概念,就是将核心频率通过倍频技术得到的一个频率。数据传输频率就是传输数据的频率。DDR1预读取是2位,DDR2预读取是4位,DDR3预读取是8位…

        随着 DDR 内存时钟频率的不断提升,直接从内存阵列中读取数据的速度很难跟上外部数据总线的需求。预取缓冲区通过提前从内存阵列中获取数据,能够在时钟频率较高的情况下,保持较高的带宽和数据吞吐量。通过这种机制,即便内存阵列访问速度相对较慢,DDR 内存仍然可以通过预取技术保持较高的外部数据传输速率。

6.5 总结

        内部数据预取(Prefetch Buffer) 是 DDR 内存提高数据传输效率的重要技术之一。通过在每次内存访问时预取多个数据块,DDR 内存可以减少内存访问延迟,提升数据传输带宽。预取技术结合突发传输和双边沿传输,使得 DDR 内存在高频率下仍然能够保持高效的传输能力,并通过不同的预取深度适应各种高性能应用场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2147755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DPDK 简易应用开发之路 2:UDP数据包发送及实现

本机环境为 Ubuntu20.04 ,dpdk-stable-20.11.10 发送数据包的通用步骤 初始化DPDK环境: 调用 rte_eal_init() 来初始化DPDK的EAL(环境抽象层),这是所有DPDK应用程序的第一步,用于初始化硬件、内存和逻辑核…

希尔排序(ShellSort)详解

希尔排序的底层是插入排序, 不了解插入排序的友友可以先看我下面这篇文章: 插入排序详解-CSDN博客 思路 就整体而言,希尔排序不过是多用了几次插入排序, 预排序→插入排序, 预排序的作用是让数组元素更接近于有序…

FreeRtos中Task函数详解

前言:本篇笔记参考韦东山老师,B站视频链接放在最后。 Task任务基本概念 在使用FreeRtos的程序中,可以创建多个Task来完成程序功能,Task是轻量级的独立执行单元,被FreeRtos的调度器管理,每个任务有着自己的…

从零开始手搓Transformer#Datawhale组队学习Task1#

从零开始手搓Transformer 目录 缩放点积注意力DotProductAttention 多头注意力Multi-Head Attention 位置编码Position Encoder 前馈神经网络FFN 残差连接和层归一化(Add&Norm) 编码器Encoder 解码器Decoder 编码器-解码器Encoder-Decoder …

pg入门3—详解tablespaces2

pg默认的tablespace的location为空,那么如果表设置了默认的tablespace,数据实际上是存哪个目录的呢? 在 PostgreSQL 中,如果你创建了一个表并且没有显式指定表空间(tablespace),或者表空间的 location 为…

ISSTA 2024盛大开幕:中国学者的录取数和投稿量均位列第一

随着夏日的尾声,全球软件测试领域的专家和学者齐聚在奥地利维也纳。共同参与这场科技盛宴——ISSTA 2024。这场国际会议正如火如荼地进行中,吸引了来自世界各地的专业人士参与。 会议实况: 9月16日与17日,大会安排了丰富的社交活…

Qt:懒汉单例(附带单例使用和内存管理)

前言 本文主要写懒汉单例以及单例的释放,网上很多教程只有单例的创建,但是并没有告诉我们单例的内存管理,这就很头疼。 正文 以下是两种懒汉单例的写法 1. 懒汉式单例(多线程不安全,但是在单线程里面是安全的&…

【828华为云征文|华为云Flexus X实例部署指南:轻松搭建可道云KODBOX项目】

文章目录 华为云 Flexus X 实例:引领高效云服务的新时代部署【可道云KODBOX】项目准备工作具体操作指南服务器环境确认宝塔软件商店操作域名解析可道云KODBOX登录页效果验证 总结 华为云 Flexus X 实例:引领高效云服务的新时代 在云计算领域&#xff0c…

【UE5】使用2DFlipbook图作为体积纹理,实现实时绘制体积纹理【第一篇】

这是一篇对“Creating a Volumetric Ray Marcher-Shader Bits”的学习心得 文章时间很早,因此这里针对UE5对原文做出兼容性修正(为避免累赘不做出注明。链接如上,有需要自行学习) 以及最后对Custom做可能的蓝图移植,做…

虚拟机与物理机的文件共享

之前往虚拟机里传文件都是直接拖拽或者借助工具上传,都不太方便,倘若物理机的文件直接能在虚拟机里读取使用,那多好啊~ 1 虚拟机设置 注意文件夹名称不要中文/空格 2 验证Kali下分享文件夹功能是否启用 vmware-hgfsclient 3 创建挂载目录…

【踩坑】utools黑框和chrome白屏

记录一下bug,后面找到解决方案再同步 刚开机会黑框,但是输入wx能正常打开,功能一切正常 过一段时间会恢复正常 chrome会白屏 过一段时间恢复正常,大概是utools恢复正常时间的三倍 猜测是前两天关机时提示xx应用阻止关机&#…

旷视轻量化网络shufflenet算法解读

目录 预备知识 1. 回顾MobileNet V1的核心思想---深度可分离卷积 2.ShuffleNet主要有两个创新点 2.1 分组卷积与11分组卷积 2.2 channel Shuffle(通道重排) 2.3 通道重排过程 3. ShuffleNet网络结构 3.1 ShuffleNet unit 3.2 不同分组数的Shu…

Mamba YOLO World

论文地址:https://arxiv.org/pdf/2409.08513v1 代码地址: GitHub - Xuan-World/Mamba-YOLO-World: Mamba-YOLO-World: Marrying YOLO-World with Mamba for Open-Vocabulary Detection 开集检测(OVD)旨在检测预定义类别之外的物体…

上海做网站公司发展分析报告

上海网站公司发展分析报告 一、行业概况 上海作为中国的经济、金融和科技中心,其网站开发行业在近年来迅速发展。根据统计数据,当地的网站公司数量逐年增加,涵盖了企业网站、电子商务平台、移动应用开发等多个领域。随着互联网技术不断演进&…

维钧团队与广东能源集团携手共创未来

2024 年 9 月 19日,能源与投资领域传出一则令人振奋的消息——多元化投资团队维钧团队与广东能源集团正式达成合作,如同璀璨星辰交汇,开启了双方共同发展的壮丽新篇章。 维钧团队,以其敏锐专业的投资眼光、灵活多元的投资策略和卓…

大牛直播SDK核心音视频模块探究

技术背景 视沃科技旗下”大牛直播SDK”,始于2015年,致力于传统行业极致体验的音视频直播技术解决方案,产品涵盖跨平台的实时RTMP推流、RTMP/RTSP直播播放(支持RTSP|RTMP H.265,Enhanced RTMP H.265)、GB28181设备接入、推送端播放…

redis为什么不使用一致性hash

Redis节点间通信时,心跳包会携带节点的所有槽信息,它能以幂等方式来更新配置。如果采用 16384 个插槽,占空间 2KB (16384/8);如果采用 65536 个插槽,占空间 8KB (65536/8)。 今天我们聊个知识点为什么Redis使用哈希槽而不是一致性…

Llama 3.1 Omni:颠覆性的文本与语音双输出模型

你可能听说过不少关于语言模型的进展,但如果告诉你,有一种模型不仅能生成文本,还能同时生成语音,你会不会觉得特别酷?今天咱们就来聊聊一个相当前沿的项目——Llama 3.1 Omni模型。这个模型打破了传统的文字生成边界,直接让文本和语音同时输出,实现了真正的"多模态…

【mac】MacOS无法打开XXX文件,因为无法验证开发者的问题解决

博主介绍: 大家好,我是想成为Super的Yuperman,互联网宇宙厂经验,17年医疗健康行业的码拉松奔跑者,曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围: 目前专注java体系,以及…

OpenCv(一)

计算机视觉和机器视觉的区别 计算机视觉(Computer Vision)和机器视觉(Machine Vision)是两个密切相关但又有区别的领域。两者在应用、技术和目标上都有所不同。 **计算机视觉:**主要是研究如何使计算机能够理解和处理…