Xilinx FPGA平台DDR3设计详解(一):DDR SDRAM系统框架

DDR SDRAM(双倍速率同步动态随机存储器)是一种内存技术,它可以在时钟信号的上升沿和下降沿都传输数据,从而提高数据传输的速率。DDR SDRAM已经发展了多代,包括DDR、DDR2、DDR3、DDR4和DDR5,每一代都有不同的特性和性能。DDR SDRAM系统包含DDR控制器、DDR PHY和DRAM存储颗粒,下面开始分别介绍这三个部分。

 

一、DDR 控制器

DDR控制器是连接CPU和DDR SDRAM的桥梁,负责生成控制信号来管理读写操作。控制器需要实现命令队列重排序、银行管理、功率管理等功能。

内存控制器接收来自于一个或者多个请求,由仲裁器来决定这些请求的优先级,生成对应的命令序列放置在内存控制器中的队列池(Queue pool)中,内存控制器依次执行队列池的命令,并将逻辑地址转化为物理地址,再经由PHY驱动DRAM的物理IO口。

1、Arbitration CMD priority(仲裁器)

仲裁读写请求的优先级,根据优先级进行处理,从而确定如何向控制器发出请求的顺序。

2、DDR SDRAM Control (控制器)

接受来自仲裁器的命令,并形成一个命令队列。

这个命令队列通过重排算法来决定命令的放置顺序,常用的规则有:地址碰撞、源碰撞、数据碰撞、命令类型和优先级,这样来确定命令插入到命令队列的位置。

当命令进入命令队列后,控制器的选择逻辑扫描命令队列中的命令,优先执行高优先级的命令。

如果较高优先级的命令未准备好,则较低优先级的命令可以先于这个未准备好的高优先级命令运行。

3、Transaction Processing(执行器)

用于处理命令队列中的命令,支持重排命令,以使DRAM的读写带宽吞吐达到最大化。

二、DDR PHY

DDR PHY是连接DDR DRAM颗粒和DDR Controller的桥梁,负责把DDR Controller发过来的数据转换成符合DDR协议的信号,并发送到DDR颗粒。另一方面,它也负责把DRAM发过来的数据转换成符合DFI协议的信号并发送给内存控制器。

具体来说,DDR PHY具有以下功能:

1、初始化

DDR PHY负责进行初始化,包括training等过程,确保DDR颗粒能够正常工作。

2、数据传输

DDR PHY将DDR Controller发送的数据转换为符合DDR协议的信号,并将这些信号发送到DDR颗粒。同时,它也将DRAM发送的数据转换为符合DFI协议的信号,并将这些信号发送给内存控制器。

3、寄存器管理

DDR PHY提供了一些寄存器,用于配置和管理DDR颗粒的参数,如时序、电压等。

错误检测与处理:DDR PHY还负责进行错误检测和处理,确保数据传输的正确性。

DDR PHY和DDR controller统称为DDR IP,他们保证了SoC和DRAM之间的数据传输。

三、DDR DRAM颗粒

DDR DRAM颗粒是DDR系统中的存储单元,每个单元由一个电容和晶体管组成,用来存储一个bit的数据。

1、DDR PHY到DDR内存颗粒的层次关系

channel->DIMM->rank->chip->bank->row/column组成的memory array

 

2、详细解释

(1)Channel

一个通道对应一个DDR控制器,每个通道拥有一组地址线、控制线和数据线。

(2)DIMM

主板上的一个内存插槽,一个channel可以包含多个DIMM。

(3)Rank

一组可以被一个内存通道同时访问的芯片组合称作一个rank,一个rank中的每个芯片都共用内存通道提供的地址线、控制线和数据线,同时每个芯片都提供一组输出线,这些输出线组合起来就是内存条的输出线。

简单理解,rank是一组内存芯片集合,一个Rank的内存总位宽等于芯片位宽*芯片数, 64bit的位宽,即表示一般每个芯片位宽是8bit,然后内存条每面8个芯片,那么每面就构成了一个Rank,这两面的Rank通过一根地址线来区分当前要访问的是哪一面。

同一个Rank中所有的芯片协作来读取一个地址(1个Rank,8个芯片*8bit=64bit),这个地址的不同bit,每8个一组分散在这个Rank上的不同芯片上。设计Rank的原因是为了减少每个芯片的位宽(在CPU总位宽确定的前提下,比如64bit),降低复杂度。

(4)Chip

表示内存条上的一个芯片,由多个bank组成,大多数是4bit/8bit/16bit,多个chip做成一个rank,配合完成一次访问的位宽。

(5)Bank

这是一个逻辑上的概念。一个bank可以分散到多个chip上,一个chip也可以包含多个bank。

(6)Row、Column组成的memory array

可以简单的理解bank为一个二维bit类型的数组。每个bank对应一个bit,8个bank组成8bit的数据。

四、总结

DDR技术从最初的DDR1到当前的DDR5,通过不断提升时钟频率、传输速率和带宽等指标,大幅度改进了内存性能。DDR系统由控制器、PHY和DRAM存储单元组成,控制器负责命令调度,PHY负责信号转换,三者协同工作完成内存的读写操作。

DDR的层次结构也变得更加复杂,从channel到rank再到bank,需要各个层次的协作才能完成一次内存访问。

DDR技术的进步与计算系统性能的提升是同步的,也使我们看到内存系统的重要性。未来DDR技术仍有很大的发展空间,将继续推动计算机性能的增强。


本文将不断定期更新中,码字不易,点⭐️赞,收⭐️藏一下,不走丢哦

本文由FPGA入门到精通原创,有任何问题,都可以在评论区和我交流哦

您的支持是我持续创作的最大动力!如果本文对您有帮助,请给一个鼓励,谢谢。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建Docker

一、概念 云服务器大家肯定不陌生了,相比较传统物理服务器来说他的价格,个性化的配置服务,节省了很多的运维成本,越来越多的企业以及个人开发者更加的青睐于云服务器。有了属于自己的服务器就可以部署搭建自己个人网站了&#xf…

Python实战 | 使用 Python 和 TensorFlow 构建卷积神经网络(CNN)进行人脸识别

专栏集锦,大佬们可以收藏以备不时之需 Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏:https:/…

openEuler编译安装nmon性能监控工具及可视化分析工具

ln 介绍 nmon(short for Nigel’s Monitor)是一个性能分析工具,由蓝色巨人IBM开发,最早用于自家操作系统UNIX,AIX (Advanced Interactive eXecutive)。现在也能用在Linux上。它可以显示系统的…

STM32--时钟树

一、什么是时钟? 时钟是单片机的脉搏,是系统工作的同步节拍。单片机上至CPU,下至总线外设,它们工作时序的配合,都需要一个同步的时钟信号来统一指挥。时钟信号是周期性的脉冲信号。 二、什么是时钟树? S…

51单片机PCF8591数字电压表数码管显示设计( proteus仿真+程序+设计报告+讲解视频)

PCF8591数字电压表数码管显示 1.主要功能:讲解视频:2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单&&下载链接资料下载链接(可点击): 51单片机PCF8591数字电压表数码管设计( proteus仿真程序设计报告讲解视…

设计模式之--原型模式(深浅拷贝)

原型模式 缘起 某天,小明的Leader找到小明:“小明啊,如果有个发简历的需求,就是有个简历的模板,然后打印很多份,要去一份一份展示出来,用编程怎么实现呢?” 小明一听,脑袋里就有了…

【云备份|| 日志 day6】文件业务处理模块

云备份day6 业务处理 业务处理 云备份项目中 ,业务处理模块是针对客户端的业务请求进行处理,并最终给与响应。而整个过程中包含以下要实现的功能: 借助网络通信模块httplib库搭建http服务器与客户端进行网络通信针对收到的请求进行对应的业…

IDEA重新choose source

大概现状是这样:之前有个工程,依赖了别的模块基础包,但当时并没有依赖包的源码工程,因此,通过鼠标左键点进去,看到的是jar包里的class文件,注释什么的都去掉了的,不好看。后面有这个…

采用示波器显示扭矩传感器模拟信号

扭矩传感器输出的信号波形通常是模拟电压信号,可以通过示波器等仪器进行分析。扭矩传感器的输出信号波形通常有两种类型:正弦波和方波。 应变片传感器扭矩测量采用应变电测技术。在弹性轴上粘贴应变计组成测量电桥,当弹性轴受扭矩产生微小变…

Oracle(16)Managing Privileges

目录 一、基础知识 1、Managing Privileges管理权限 2、System Privileges 系统特权 3、System Privileges : Example系统权限:示例 4、Who Can Grant or Revoke? 谁可以授予或撤销权限? 5、The PUBLIC 6、SYSDBA and SYSOPER 7、Revoke with A…

分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测

分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测 目录 分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO-LSTM粒子群算法优化长短…

Llama2通过llama.cpp模型量化 WindowsLinux本地部署

Llama2通过llama.cpp模型量化 Windows&Linux本地部署 什么是LLaMA 1 and 2 LLaMA,它是一组基础语言模型,参数范围从7B到65B。在数万亿的tokens上训练的模型,并表明可以专门使用公开可用的数据集来训练最先进的模型,而无需求…

KCC@广州与 TiDB 社区联手—广州开源盛宴

10月21日,KCC广州与 TiDB 社区联手,在海珠区保利中悦广场 29 楼召开了一次难忘的开源盛宴。这不仅仅是 KCC广州的又一次线下见面,更代表着与 TiDB 社区及广州技术社区的首次深度合作。 活动的策划与组织由 KCC广州负责人 - 惠世冀、PingCAP 的…

Ocelot:.NET开源API网关提供路由管理、服务发现、鉴权限流等功能

随着微服务的兴起,API网关越来越常见。API网关是连接应用程序和用户之间的桥梁,就像一个交通指挥员,负责处理所有进出应用的数据和请求,确保安全、高效、有序地流通。 今天给大家推荐一个.NET开源API网关。 01 项目简介 Ocelot…

用Powershell实现:删除所有不是与.json文件重名的.jpg文件

# 指定要搜索的目录路径 $directoryPath "C:\path\to\your\directory"# 获取该目录下的所有.jpg和.json文件 $jpgFiles Get-ChildItem -Path $directoryPath -Filter *.jpg $jsonFiles Get-ChildItem -Path $directoryPath -Filter *.json | Select-Object -Expan…

海外媒体发稿:彭博社发稿宣传中,5种精准营销方式

在如今的信息发生爆炸时期,营销方式多种多样,但是充分体现精准营销并针对不同用户群体的需求并非易事。下面我们就根据彭博社发稿营销推广为例子,给大家介绍怎样根据不同用户人群方案策划5种精准营销方式。 1.界定总体目标用户人群在制订精准…

CSS注入的四种实现方式

目录 CSS注入窃取标签属性数据 简单的一个实验: 解决hidden 方法1:jsnode.js实现 侧信道攻击 方法2:对比波兰研究院的方案 使用兄弟选择器 方法3:jswebsocket实现CSS注入 实验实现: 方法4:window…

数据分析实战 | 泊松回归——航班数据分析

目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型评价 一、数据及分析对象 CSV文件:o-ring-erosion-only.csv 数据集链接:https://download.csdn.net/download/m0_7…

蓝桥杯算法竞赛第一周题型总结

本专栏内容为:蓝桥杯学习专栏,用于记录蓝桥杯的学习经验分享与总结。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库🚚 🌹&#x1f33…

CH11_重构API

将查询函数和修改函数分离(Separate Query from Modifier) function getTotalOutstandingAndSendBill() {const result customer.invoices.reduce((total, each) > each.amount total, 0);sendBill();return result; }function totalOutstanding() …