2025年1.sdram介绍

1.sdram介绍1 sdram 基本概念 SDRAM 英文全称 Synchronous Dynamic Random Access Memory 译为 同步动态随机存取内存 或 同步动态随机存储器 是动态随机存储器 Dynamic Random Access Memory 简称 DRAM 家族的一份子 同步 Synchronous 与通常的异步

大家好,我是讯享网,很高兴认识大家。

1.sdram基本概念

SDRAM 英文全称“Synchronous Dynamic Random Access Memory”,译为“同步动态随机存取内存”或“同步动态随机存储器”,是动态随机存储器(Dynamic Random Access Memory,简称 DRAM)家族的一份子。
同步(Synchronous):与通常的异步 DRAM 不同, SDRAM 存在一个同步接口,其工作时钟的时钟频率与对应控制器(CPU/FPGA)的时钟频率相同,并且 SDRAM 内部的命令发送与数据传输均以此时钟为基准,实现指令或数据的同步操作;
动态(Dynamic): SDRAM 需要不断的刷新来保证存储阵列内数据不丢失;
随机(Random):数据在 SDRAM 中并不是按照线性依次存储,而是可以自由指定地址进行数据的读写。

2.dram发展历程

第一代 SDR SDRAM,第二代 DDR SDRAM,第三代 DDR2 SDRAM,第四代 DDR3 SDRAM,第五代,DDR4 SDRAM。
SDR:只是在上升沿得时候采集信号
DDR:在上升沿和下降沿都采集信号
第一代 SDR SDRAM 采用单端时钟信号,SDRAM 只在时钟的上升沿进行数据采样;而后面的四代 SDRAM 由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟,双沿采样,速度更快,且功耗更低。同时技术的不断发展、制造工艺的不断提高,使得五代 SDRAM 的更新过程中,集成度越来越高、内核电压越来越低(SDR:3.3V 、DDR:2.5V、DDR2:1.8V,DDR3:1.5VDDR4:1.2V),这也是 SDRAM 速度提高、功耗降低的重要原因。

3.sdram数据存取原理

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

4.sdram存储数据得方式

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

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

在这里插入图片描述

5.sdram管脚说明

由于 SDRAM 在容量、位宽以及生产厂家存在差异,所以 SDRAM 在 Bank 地址、地址总线、数据总线和数据掩码可能存在位宽的差异,但各输入输出管脚的名称和实现功能并无出入。

在这里插入图片描述

注:x4、x8、x16 分别表示位宽 4bit、8bit、16bit;#符号表示信号为低电平有效;短划线 - 表示 x8 和 x4 引脚功能与 x16 引脚功能相同。
我们以镁光公司生产的、容量为 4 Meg x 16 x 4 Banks 的SDRAM 芯片为例,对其做一下功能介绍。SDRAM 引脚功能描述
在这里插入图片描述
在这里插入图片描述
上文中对 SDRAM 各引脚进行了简要功能描述,接下来简单说明一下 SDRAM 内部功能框图。SDRAM 内部功能框图
在这里插入图片描述

6.sdram内存计算

在这里插入图片描述

7.sdram速度等级在这里插入图片描述

8.sdram操作命令

上面几个小节对 SDRAM 的基本概念、存取原理、引脚功能以及容量、速度等级等相关特性做了详细介绍,在本小节中我们来介绍一下 SDRAM 的操作命令。合理使用操作指令可以控制 SDRAM 实现特定功能。在前文 SDRAM 的引脚功能介绍的表格中,我们提到 CS_N、RAS_N、CAS_N、WE_N 四路控制信号构成 SDRAM 指令集。除构成指令集的 4 路信号之外,CKE、BA[1:0]、A[12:0]等信号,在 SDRAM 的操作中,也起到辅助作用。接下来我们介绍一下常用的 SDRAM 操作指令。SDRAM 操作指令集截图,具体见图
在这里插入图片描述

1. 禁止命令(Command Inhibit)

禁止命令 (Command Inhibit) ,其他数据手册也称为取消设备选择命令 (Device Deselect),控制指令为{CS_N,RAS_N,CAS_N,WE_N} = 4’b1XXX。不论 SDRAM 处于何种状态,此命令均可被执行,无需顾及 CKE 是否有效,即 CLK 是否使能,无需关心 DQM、ADDR、DQ 的信号输入;执行此命令后,SDRAM 芯片不被选择,新的命令无法写入,但已经执行的命令不受影响

2. 无操作命令(No-operation)

无操作命令(No-operation),也可称为空命令,简称为 NOP 命令,控制指令为{CS_N,RAS_N,CAS_N,WE_N} = 4’b0111。不论 SDRAM 处于何种状态,此命令均可被写入,该命令给被选中的 SDRAM 芯片传递一个空操作信息,目的是为了防止 SDRAM 处于空闲或等待状态时,其他命令被写入,此命令对正在执行的命令无影响。

3. 配置模式寄存器命令(Load Mode Register)

配置模式寄存器命令(Load Mode Register),也被称为 Mode Reigister Set,简称 LMR 命令,控制指令为{CS_N,RAS_N,CAS_N,WE_N} = 4’b0000,此命令只有所有 L-Bank 均处于空闲状态时才可被写入,否则配置出错,而且在执行此命令后,SDRAM 必须等待相应的响应时间 tRSC(Register Set Cycle),模式寄存器配置周期)后,才可写入新的命令。在写入此命令对 SDRAM 进行模式寄存器配置时,需要地址总线 A0-A11 辅助寄存器的模式设置,A0-A11 赋值不同对应寄存器配置不同模式,未使用的地址总线设置为低电平。下面我们来介绍一下 A0-A11 的不同赋值所对应的寄存器不同模式,具体见图 53-9。
在这里插入图片描述

突发长度(Burst Length)

突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度(Burst Length,简称 BL)。
地址总线的低三位 A0-A2 是突发长度的控制位,SDRAM 芯片的突发长度可设置为1、2、4、8 和整页,单位为字节,整页表示一次突发传输一整行的数据量,具体数值视芯片而定。
若在数据读/写操作时不使用突发传输,此时可等效为突发长度为 1 字节,每次读/写据时,都要对存储单元进行寻址,如果要实现连续的读/写操作,就要不断地发送列地址和读/写命令,这种方法控制资源占用极大,效率较低。非突发连续读操作时序图,具体见图53-10。
在这里插入图片描述

若使用突发传输,只要指定起始列地址和突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址,这样,除了第一笔数据传输需要若干个周期外,其后的每个数据只要一个周期即可获得。突发的数据长度一般是 4 或 8,如果传输时实际需要的数据长度小于设定的 BL 值,则调用“突发停止”命令结束传输。突发连续度操作时序图,具体见图 53-11。
在这里插入图片描述

突发类型

突发类型的设置位为 A3,可将突发类型设置为两类,顺序和隔行。一般将 A3 设置为低电平,选择顺序类型,但也要结合实际情况进行选择。不同突发类型所对应的情况,具体见图 53-12。

在这里插入图片描述

列选通潜伏期(CAS Latency)

列选通潜伏期是指从读命令被寄存到数据总线上到出现第一个有效数据之间的时钟周期间隔,列选通潜伏期可被设置为 2 个或 3 个时钟周期,设置位为 A6,A5,A4,当{ A6A5A4}=3’b010 时,潜伏期为 2 个时钟周期;当{ A6A5A4}=3’b011 时,潜伏期为 3 个时钟周期,时序图具体见图 53-13。
在这里插入图片描述

运行模式(Operating Mode)

运行模式设置位为 A7,A8,SDRAM 存在标准模式、测试模式等多种模式,但对于普通用户,只开放了标准模式,在使用 SDRAM 时只需将 A7,A8 设置为低电平进入标准模式即可。

写模式

4. 预充电命令(Precharge)

在这里插入图片描述

5. 刷新命令(Refresh)

SDRAM 只有通过刷新操作才能保证数据的可靠性,当然不能一直进行刷新,那将变得毫无意义,SDRAM 的刷新操作是周期性的,在两次刷新的间隔可以进行数据的相关操作,那我们不禁要问,刷新周期是多少呢?
目前国际公认的标准是,存储体中电容的数据有效保存期上限是 64ms,也就是说每一行刷新的循环周期最大为 64ms,那么刷新速度就是:64ms/行数。我们在 SDRAM 的数据手册中经常会看到 4096 Refresh Cycles/64ms 或 8192 Refresh Cycles/64ms 的相关介绍,这里的 4096 与 8192 就代表 SDRAM 芯片中单个 L-Bank 的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化, 当单个 L-Bank 为 4096 行时,刷新间隔最大为 15.625μs,单个 L-Bank 为 8192 行时,刷新间隔最大为 7.8125μs。刷新命令(Refresh)分为两种:自动刷新命令(Auto Refresh)和自刷新(Self Refresh),控制指令相同,为{CS_N,RAS_N,CAS_N,WE_N} = 4’b0001,两种刷新方式均不需要外部提供地址信息。
当 CKE 为高电平时,写入刷新指令,执行自动刷新操作。在执行自动刷新命令前,必须先要执行预充电命令,将所有 L-Bank 关闭,SDRAM 内部刷新计数器会依次自动生成行地址,刷新是针对一行中的所有存储单元,所以无需列寻址。由于刷新涉及到所有 L-Bank,因此在刷新过程中,所有 L-Bank 都停止工作,而每次刷新需要等待对应的时钟周期,之后就可进入正常的工作状态,在此期间,所有工作指令只能等待而无法执行。 64ms 之后则再次对同一行进行刷新,如此周而复始进行循环刷新。
当 CKE 为低电平时,写入刷新指令,执行自刷新操作。自刷新操作主要用于休眠模式低功耗状态下的数据保存,在发出刷新命令时,将 CKE 置于无效状态,就进入了自刷新模式,此时不再依靠系统时钟工作,而是根据内部的时钟进行刷新操作。在自刷新期间除了CKE 之外的所有外部信号都是无效的,只有重新使 CKE 有效才能退出自刷新模式并进入正常操作状态。

6. 激活命令(Bank Active)

激活命令(Bank Active),控制命令为{CS_N,RAS_N,CAS_N,WE_N} = 4’b0011,只有SDRAM 处于空闲状态下才可被响应。激活命令是为后续操作激活某一特定 L-Bank 中的某一行,逻辑 Bank 地址线 BA[1:0]和地址总线 A0-A12 选择要激活的特定 L-Bank 的特定行,激活该行后,该行一直保持激活状态,并可以进行后续读/写操作,操作完成后,只有执行一次预充电命令(Precharge)后,被激活的特定行被关闭。每次激活只能激活一个 L-Bank,同一个 L-Bank 中每次只能激活一行,当需要对同一 L-Bank 中其他行进行操作时, 必须先执行一个预充电命令关闭当前行,再激活另一行进行操作。激活命令示意图,具体见图 53-15。
在这里插入图片描述

7. 写命令(Write)

写命令(Write),控制命令为{CS_N,RAS_N,CAS_N,WE_N} = 4’b0100,用来实现对已激活的特定 L-Bank 的特定行的数据突发写入操作,BA[1:0]指定需要写入数据的特定 L-Bank,地址总线 A0-A9 指定需要写入存储单元的起始列地址,A10 的电平变化控制突发写操作完成后是否立即执行自动预充电操作,若 A10 为高电平,突发写操作完成后,立即执行自动预充电操作,关闭当前行;若 A10 为低电平,突发写操作完成后,当前行依然处于激活状态,以便对当前行执行新的读/写操作,想要关闭当前激活行,需写入预充电指令。写命令示意图,具体见图 53-16。
在这里插入图片描述

8. 读命令(Read)

读命令(Read),控制命令为{CS_N,RAS_N,CAS_N,WE_N} = 4’b0101,用来实现对已激活的特定 L-Bank 的特定行的数据突发读取操作,BA[1:0]指定需要读取数据的特定 LBank,地址总线 A0-A9 指定需要读取存储单元的起始列地址,A10 的电平变化控制突发读操作完成后是否立即执行自动预充电操作,若 A10 为高电平,突发读操作完成后,立即执行自动预充电操作,关闭当前行;若 A10 为低电平,突发读操作完成后,当前行依然处于激活状态,以便对当前行执行新的读/写操作,想要关闭当前激活行,需写入预充电指令。读命令示意图,具体见图 53-17。

在这里插入图片描述

9. 突发终止(Burst Terminate)

突发终止 (Burst Terminate) ,也称为 Burst Stop , 控 制 命 令 为{CS_N,RAS_N,CAS_N,WE_N} = 4’b0110,SDRAM 处于读/写操作过程中可被写入,突发停止操作被用来截断固定长度或者整页长度的突发,执行突发停止命令后,最近执行的数据读/写操作被终止,此命令操作并不会通过预充电关闭当前激活行,需通过预充电操作关闭被激活行。

小讯
上一篇 2025-03-01 13:23
下一篇 2025-02-09 17:39

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/63176.html