首页 > 其他分享 >DDR3 SDRAM 底层逻辑

DDR3 SDRAM 底层逻辑

时间:2024-07-05 10:20:57浏览次数:14  
标签:SDRAM DDR3 存储阵列 接口 地址 AXI4 底层

一.DDR3 SDRAM

1.基本介绍
DDR3 SDRAM 英 文 全 称 “ Double-Data-Rate Three Synchronous Dynamic Random Access Memory”,译为“第三代双倍速率同步动态随机存取内存”或“同步动态随机存储器”,是动态随机存储器(Dynamic Random Access Memory,简称 DRAM)家族的一份子。
同步、动态、随机是其性能特点的外在说明,也是其区别其他存储器的特色标签。这三个概念性的标签,我们要好好理解掌握。
双倍速率(Double-Data-Rate):DDR3 SDRAM 存储器与 SDRAM 有一个很大的不同,DDR3 SDRAM 或者说带 DDR 开头的。包括 DDR1、DDR2、DDR3、DDR4、DDR4,他们都有一个很大的相似点,就是双边沿输出输入数据,通俗来讲就是在一个周期内输出 2 次数据,上升沿输出一次数据,下降沿输出一次数据。而 SDRAM 则是在一个周期内的上升沿输出一次数据,下降沿不输出,所以同频率的 DDR3 SDRAM 与 SDRAM 相比速度快一倍。
同步(Synchronous):与通常的异步 DRAM 不同,DDR3 SDRAM 存在一个同步接口,其工作时钟的时钟频率与对应控制器(CPU/FPGA)的时钟频率相同,并且 SDRAM 内部的命令发送与数据传输均以此时钟为基准,实现指令或数据的同步操作;
动态(Dynamic):DDR3 SDRAM 需要不断的刷新来保证存储阵列内数据不丢失;
随机(Random):数据在 DDR3 SDRAM 中并不是按照线性依次存储,而是可以自由指定地址进行数据的读写。
空间存储量大、读写速度快以及价格相对便宜等优点使其在存储界屹立不倒、经久不衰,广泛应用在计算机中。

 

 

2.存储原理
简单来说,DDR3 SDRAM 内部可以理解为一个存储阵列,这是 DDR3 SDRAM 区别于管道式存储,实现随机地址存取的结构特点。为方便读者理解,我们将 DDR3 SDRAM 内部存储阵列类比于一张表格,表格中的每一个单元格可以类比为存储阵列的单个存储单元。若想要实现存储阵列中的某一存储单元的数据读写操作,我们要通过行地址(RowAddress)和列地址(Column Address)(先行后列)精确定位到这一存储单元,进而进行数据的
读写操作,这就是所谓的随机地址存取。DDR3 SDRAM 存储阵列类比图,如下图所示:


DDR3 SDRAM 的基本存储单位是存储单元,而一个存储单元的容量为若干个 Bit,对于 DDR3 SDRAM 而言就是芯片的位宽,每个 Bit 存放于一个单独的存储体中,存储体是利用电容能够保持电荷以及可充放电的特性制成,主要由行选通三极管、列选通三极管、存储电容以及刷新放大器构成。电容所存储的电荷会随时间慢慢释放,这就需要不断刷新为电容充电,以保证存储数据可靠性。
如图所示:

将每个存储单元简化为单 Bit 的存储体,再将若干存储体排列为矩阵,同一行将行地址线相连,同一列将列地址线相连,就构成了一个存储阵列的简化模型。DDR3 SDRAM:内部存储阵列的简化模型,具体见图:

3.内部逻辑功能图

由图 可知,DDR3 SDRAM 内部包含一个逻辑控制单元,内部包含模式寄存器和命令解码器。外部通过 CS_N、RAC_N、CAS_N、WE_N 以及地址总线向逻辑控制单元输入命令,命令经过命令解码器进行译码后,将控制参数保存到模式寄存器中,逻辑控制单元进而控制逻辑运行。外部通过地址总线输入地址信息,地址信息在逻辑控制单元进行逻辑控制时起到辅助作用,除此之外,复用的地址总线与 Bank 控制逻辑、行地址复用器、列地址计数锁存器、列地址解码器等内部器件共同作用,精确选定存储阵列中与行列地址相对应的存储单元,进而进行数据存取操作。

4.AXI接口介绍
AXI 的英文全称是 Advancede Xtensible Interface,即高级可扩展接口。之所以要采用 AXI4 接口对 ddr 进行读写是因为 Xilinx 的 migddrIp 核,无论是 6 系列还是 7 系列还是最新的 FPGA,都集成了 AXI4 接口,为了采用 AXI4 接口进行读写,后续可以兼容 xilinx的其他 fpga,可复用性更强。
AXI 协议是一种高性能、高带宽、低延迟的片内总线,具有如下特点:
1、总线的地址/控制和数据通道是分离的;
2、支持不对齐的数据传输;
3、支持突发传输,突发传输过程中只需要首地址;
4、具有分离的读/写数据通道;
5、支持显著传输访问和乱序访问;
6、更加容易进行时序收敛。
在数字电路中只能传输二进制数 0 和 1,因此可能需要一组信号才能高效地传输信息,这一组信号就组成了接口。AXI4 协议支持以下三种类型的接口:
1、AXI4:高性能存储映射接口。
2、AXI4-Lite:简化版的 AXI4 接口,用于较少数据量的存储映射通信。
3、AXI4-Stream:用于高速数据流传输,非存储映射接口。
在这里我们首先解释一下存储映射(Meamory Map)这一概念。如果一个协议是存储映射的,那么主机所发出的会话(无论读或写)就会标明一个地址。这个地址对应于系统存储空间中的一个地址,表明是针对该存储空间的读写操作。AXI4 协议支持突发传输,主要用于处理器访问存储器等需要指定地址的高速数据传输场景。AXI-Lite 为外设提供单个数据传输,主要用于访问一些低速外设中的寄存器。而 AXI-Stream 接口则像 FIFO 一样,数据传输时不需要地址,在主从设备之间直接连续读写数据,主要用于如视频、高速AD、PCIe、DMA 接口等需要高速数据传输的场合。

参考文献:

1.https://blog.csdn.net/weixin_46628093/article/details/115558116

 

标签:SDRAM,DDR3,存储阵列,接口,地址,AXI4,底层
From: https://www.cnblogs.com/taylorrrrrrrrrrr/p/18285232

相关文章

  • Vector底层结构和代码解析
    基本介绍定义说明publicclassVector<E>extendsAbstractList<E>implementsList<E>,RandomAccess,Cloneable,java.io.Serializable{Vector底层是一个对象数组,protectedObject[]elementData;Vector是线程同步的(线程安全),Vector类的操作方法带有synchronized......
  • NWIFI.SYS 的底层原理主要围绕着操作系统驱动程序模型的实现,确保无线网络适配器与操作
    NWIFI.SYS是一个Windows操作系统中的驱动程序文件,其底层原理涉及操作系统与硬件之间的交互和数据处理。以下是其底层原理的一些关键点:驱动程序功能:NWIFI.SYS主要负责管理和控制无线网络适配器。它通过操作系统提供的驱动程序接口(DriverInterface)与硬件通信,执行一系列操作,......
  • 在多线程并发操作中处理大量文件时,以下是一些关键的底层原理和技术:
    在多线程并发操作中处理大量文件时,以下是一些关键的底层原理和技术:1.文件句柄管理每个线程需要独立地管理文件句柄,文件句柄是操作系统提供的用于标识和访问文件的资源。在Windows环境下,使用CreateFile函数可以打开文件并获得文件句柄。每个文件句柄具有其自己的上下文和状态,......
  • 在Windows操作系统中,与文件系统进行交互主要通过一系列的API函数来实现,这些函数包括底
    操作文件系统API与操作系统的文件系统进行交互,涉及到底层的文件系统操作和文件属性管理。不同的操作系统提供了不同的API和机制来执行这些操作,但基本的原理和流程大致相似。文件系统API的基本操作1.文件时间戳(创建时间、修改时间、访问时间)创建时间(CreationTime):表示文件被创......
  • 大厂面试官问我:在同步binlog的时候主库是一个时间,从库是一个时间,底层是怎么解决的?【后
    本文为【Mysql日志八股文合集(2)】初版,后续还会进行优化更新,欢迎大家关注交流~大家第一眼看到这个标题,不知道心中是否有答案了?在面试当中,面试官经常对项目亮点进行深挖,来考察你对这个项目亮点的理解以及思考!这个时候,你如果可以回答出面试官的问题,甚至是主动说出自己的思考,那在......
  • Redis中集合的底层实现原理
            Redis中对于Set类型的底层实现,直接采用了hashTable。但对于Hash、ZSet、List集合的底层实现进行了特殊的设计,使其保证了Redis的高性能。        对于Hash与ZSet集合,其底层的实现实际有两种:压缩列表zipList,与跳跃列表skipList。这两种实现对于用户来......
  • 分享一个go源码的均匀采样底层实现原理
    //int31n也就是下面这个函数,跟上面Int31n效果是一样的.但是效率更高.算法不一样.这个算法非常精彩,效率也更高.//int31nreturns,asanint32,anon-negativepseudo-randomnumberinthehalf-openinterval[0,n).//nmustbe>0,butint31ndoesnotcheckthis;......
  • 【初阶数据结构】深入解析带头双向循环链表:探索底层逻辑
    ......
  • 寄存器详细介绍:底层原理、物理组成、应用方法及使用场景
    1.寄存器的基本概念在计算机体系结构中,寄存器是一种高速的存储设备,用于暂时存储和快速访问CPU所需的数据。它们位于CPU内部,并直接参与到指令执行和数据处理过程中。寄存器是计算机硬件中最快速的存储单元,其存取时间通常在纳秒级别,远远快于主存(RAM)和硬盘(HDD/SSD)。2.物理......
  • Async 注解底层异步线程
    一、前言开发中我们经常会用到异步方法调用,具体到代码层面,异步方法调用的实现方式有很多种,比如最原始的通过实现Runnable接口或者继承Thread类创建异步线程,然后启动异步线程;再如,可以直接用java.util.concurrent包提供的线程池相关API实现异步方法调用。如果说可以用一行......