艾巴生活网

您现在的位置是:主页>科技 >内容

科技

sdram控制器的作用(SDRAM控制器详解)

2024-11-18 13:49:56科技帅气的蚂蚁
SDRAM的基本概念SDRAM凭借其较高的性价比,广泛应用于高速数据存储和实时图像处理的设计中,但与SRAM、FIFO等其他存储设备相比,SDRAM的控

sdram控制器的作用(SDRAM控制器详解)

SDRAM的基本概念

SDRAM凭借其较高的性价比,广泛应用于高速数据存储和实时图像处理的设计中,但与SRAM、FIFO等其他存储设备相比,SDRAM的控制相对复杂。虽然它很复杂,但它并不不代表它能无法实现。仔细梳理后发现,SDRAM的控制其实并没有那么难。简要介绍了SDRAM的基本概念及其工作流程。

SDRAM基本信号:

SDRAM的基本信号(这里不讨论电源和地)可以分为以下三类:控制信号、地址选择信号和数据信号:

(1)控制信号:包括片选(CS),同步时钟(CLK),时钟有效(CLKE),读写选择(/WE),

有效数据(DQM)等。

(2)地址选择信号:包括行地址选择(/RAS)、列地址选择(/CAS)、行/列地址线(A0-A12)和存储体块地址线(Ba0-Ba1)的时分复用;

(3)数据信号:包括双向数据端口(DQ0-DQ15)、接收数据有效信号(DQM)控制等。当DQ为低电平时,写/读有效。

图1 SDRAM引脚的基本信息

SDRAM相关指令及关键参数分析

图2 SDRAM相关指令

在上图中,列出了SDRAM使用的所有指令。其实我们用SDRAM的时候,只是用了一部分。例如,WRITE/write with auto-precharge,这两条指令可以用来写SDRAM,但是在使用自动预充电写入指令时,SDRAM会在写入一组数据后自动跳出这种状态进行刷新,而在写指令,它会跳出写状态只有在相应的指令给出后才会出现,所以为了提高SDRAM的运行速度,我们一般使用write指令来提高速度。当然,阅读和使用自动充值功能阅读是一样的。

常见说明:

读(读)

发送列读写命令时,必须与行有效命令有一个间隔,定义为tRCD,即

RAS到CAS延迟(RAS到CAS Delay)也可以理解为行选通周期,它应该是基于芯片存储器阵列的电子元件的响应时间(从一种状态改变到另一种状态的过程)的延迟。下图显示了SDRAM读取的相关时序。

图3 SDRAM读取时序

SDRAM读取序列可以总结如下:激活第2行。打开3号门。预充电和关闭行-下一个指令。

写(写)

图4 SDRAM写时序

预充电(预充电)

因为SDRAM有独占寻址,所以在读写之后,如果要寻址同一L-Bank的另一行,就要关闭原来的有效(工作)行,重新发送行/列地址。L-Bank关闭现有工作线并准备打开新线的操作是预充电。在发出预充电命令之后,将需要一些时间来允许发送RAS线有效命令以打开新的工作线。这个间隔称为tRP(预充电命令周期)。和tRCD、CL一样,tRP的单位是时钟周期数,具体数值取决于时钟频率。

自动刷新(自动刷新)

之所以叫DRAM,是因为需要不断刷新才能保留数据,所以是DRAM最重要的操作。刷新操作与预充电中的重写操作一样,先读取,然后用S-AMP写入。但是当有预充电操作时为什么要刷新呢?因为预充电是对L-Bank中一条或所有工作线上的不规则操作,而刷新是有固定周期的,所以所有线轮流操作,以保留那些长时间未被重写的存储体中的数据。

关键参数:

tRCD:

有效行与发出读/写命令之间的间隔定义为tRCD,即RAS到CAS延迟(RAS到CAS延迟,RAS是行地址选通,CAS是列地址选通),也可以理解为行选通周期。广义的tRCD以时钟周期数(tCK,Clock Time)为单位,如tRCD=2,表示延迟周期为两个时钟周期。准确的时间取决于时钟频率。

图5 tRCD=3

CL:

在选择了相关的列地址之后,就会触发数据传输,但是从存储单元的输出到实际出现在存储芯片中的I/O接口之间需要一定的时间(数据触发本身是有延迟的,需要信号放大),这就是非常著名的CL(CAS Latency)。与tRCD一样,CL的值也用时钟周期数表示。如DDR-400,时钟频率为200MHz,时钟周期为5ns,那么CL=2意味着潜伏期为10ns。但是CL只针对读操作,对于SDRAM,写是没有延时的。

图6 CL=2

BL:

突发是指同一行中相邻存储单元连续传输数据的方式,连续传输的周期数为突发长度(BL)。突发传输时,只要指定初始列地址和突发长度,存储器就会自动依次读写相应数量的存储单元,不需要控制器连续提供列地址(SDRAM和DDR SDRAM突发传输时的列寻址操作次数不同,所以我赢了这里不细说)。这样除了第一个数据的传输需要几个周期(主要是前一个延迟,一般是tRCD CL)之外,每一个数据只需要一个周期就可以得到。

图7突发BL=4

tRP:

因为SDRAM有独占寻址,所以在读写之后,如果要寻址同一L-Bank的另一行,就要关闭原来的有效(工作)行,重新发送行/列地址。L-Bank关闭现有工作线并准备打开新线的操作是预充电。在发出预充电命令之后,将需要一些时间来允许发送RAS线有效命令以打开新的工作线。这个间隔称为tRP(预充电命令周期)。

图8 tRP=2

SDRAM工作流程

图9 SDRAM的基本工作流程

开始:

1、同时启动装置核心电源VDD和装置I/O电源VDDQ。并断言CKE管脚保持在高电平(CKE管脚是时钟使能,时钟使能信号,高电平表示开始内部时钟信号)。

2、等到VDD和VDDQ稳定且CKE设置为高电平,然后应用稳定的时钟。

3、等待200s以执行清空操作命令。

4、预充电:预充电命令。SDRAM执行预充电命令后,会执行空操作命令。这两个操作将对所有存储单元预充电一次,使得阵列中的所有器件都处于待机状态。引脚A10(=AP自动预充电)可以选择预充电模式。当A10=低时,它存储体预充电,存储体单个存储体,并且存储体将由引脚BA0和BA1选择。当A10=高时,预充电所有存储体。

5、自动刷新:自刷新命令。SDRAM需要执行两个自刷新命令。在每个刷新命令之后,它需要执行一个空操作命令。这些操作会使SDRAM的内部刷新和计数器正常运行,为SDRAM模式寄存器编程做准备。

6、加载模式寄存器:设置模式寄存器。模式寄存器通常用于定义SDRAM的工作模式。寄存器一般设置读取延迟、突发长度、CAS、突发类型、工作模式,还设置SDRAM是工作在单次读写操作还是突发操作。模式寄存器由加载模式寄存器命令编程,这组信息将保存在模式寄存器中,直到存储器断电。而且这个寄存器的设置也是通过地址线来设置的,所以在发出Load Mode Register命令之后,有一个操作就是让SDRAM的地址线上的值成为你想要设置的值。立正!该操作是8位操作。模式寄存器中的M0-M2用于定义突发长度,M3定义突发类型(顺序或交错),M4-M6定义CAS延迟,M7和M8定义操作模式,M9定义写突发模式),M10和M10和M11当前被保留。模式寄存器只能在所有存储体都处于空闲状态时加载,并且控制器必须在所有初始化学组完成之前等待一段时间。初始化过程中的任何非法操作都可能导致初始化失败,从而使整个计算机系统不要开始。

模式寄存器置位后,进入正常读写操作模式。

图10SDRAM初始化

SDRAM的基本读写操作

SDRAM的基本读操作需要来自控制线和地址线的一系列命令来完成。首先发出库激活命令(ACTIVE),锁存对应的库地址(由BA0和BA1给出)和行地址(由A0 ~ A12给出)。激活BANK命令后,在发出read命令字之前,必须等待比TRCD(SDRAM从RAS到CAS的延迟指数)更长的时间。经过CL(CAS延迟值)工作时钟后,读取的数据依次出现在数据总线上。在读操作结束时,向SDRAM发出预充电命令以关闭被激活的页面。等待tRP时间(PRECHAREG命令后的tRP时间,可以再次访问该行)后,可以开始下一个读写操作。SDRAM只能在突发模式下读取,突发长度为1、2、4、8。

图11SDRAM基本读取操作

SDRAM的基本写操作也需要来自控制线和地址线的一系列命令来完成。首先发出库激活命令(ACTIVE),锁存对应的库地址(由BA0和BA1给出)和行地址(由A0 ~ A12给出)。激活BANK命令后,在发出写命令字之前,必须等待比tRCD更长的时间。写命令可以立即写入,要写入的数据依次送到DQ(数据线)。写入最后一个数据后延迟tWR时间。发出预充电命令以关闭激活的页面。等待tRP时间后,可以开始下一步操作。写操作可以包括突发写和非突发写。突发长度读取操作。

SDRAM刷新过程:

因为SDRAM使用其内部电容来存储数据,所以需要不断刷新以保留数据。刷新操作具有固定的周期。它以行为单位进行刷新,并依次操作所有行,以保留长时间未被重写的存储体中的数据。与所有L银行不同预充电,这里的行是指所有L-bank中地址相同的行,预充电中每个L-bank中的工作行地址不一定相同。存储体中电容的数据有效存储周期的上限是64ms(毫秒,1/1000秒),也就是说每一行刷新的周期是64ms。刷新率为:行数/64ms。刷新命令一次对一行有效,发送间隔随总行数而变化。

有两种刷新操作:自动刷新(AR)和自刷新(SR)。无论刷新方式是什么,都不需要外部提供行地址信息,因为这是内部自动操作。

对于AR,SDRAM有一个行地址生成器(也叫刷新计数器),自动依次生成行地址。因为对一行中的所有存储体执行刷新,所以不需要列寻址,或者CAS在RAS之前有效。所以AR也叫CBR(CAS先于RAS)刷新。由于刷新涉及到所有的L-bank,所以在刷新过程中所有的L-bank都停止工作,每次刷新需要9个时钟周期(PC133标准),然后才能进入正常工作状态,也就是说在这9个时钟周期内所有的工作指令只能等待,不能执行。64ms后,再次刷新同一行,重复循环刷新。显然,刷新操作肯定会影响SDRAM的性能,也是DRAM相比SRAM(静态存储器,不刷新也能保留数据)所付出的代价。

SR主要用于睡眠模式下低功耗状态下的数据存储,这方面最著名的应用是STR(Suspend to RAM)。发出AR命令时,CKE进入无效状态,并进入SR模式。此时,不再使用系统时钟,而是根据内部时钟执行刷新操作。在SR期间,除了CKE之外的所有外部信号都是无效的(不需要外部刷新指令)。只有当CKE再次被使能时,自刷新模式才能退出并进入正常操作状态。

编辑:李倩