首页 > 编程知识 正文

内存条用sdram还是dram(sd6835引脚功能)

时间:2023-05-04 02:53:41 阅读:75550 作者:3550

作为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 )控制等。 DQM为low时,写入/读取有效。

图1SDRAM引脚的基本信息

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

图2SDRAM相关指令

上图列出了SDRAM中使用的所有命令,但实际上我们在运行SDRAM时只使用了其中的一些命令。 例如,在写/写自动预留中,这两个命令都可以对SDRAM执行写操作。 但是,每次写入突发长度的数据时,“写入自动预览”命令都会自动退出并刷新SDRAM。 “writewith autoprecharge”命令在写入突发长度的数据后自动更新SDRAM,当然“read”和“read with autoprecharge”两个命令的区别也是如此。

常规命令:

阅读(读取)。

发送列读写命令时,需要与行中的有效命令之间的间隔。 该间隔是tRCD,即

rastoCASdelay (从ras到cas的延迟)也被视为一个漫游周期。 这应该是基于芯片存储阵列中电子部件从一种状态变化到另一种状态的响应时间而确定的延迟。 在下面的图3中,示出了SDRAM的读取的定时。

图3SDRAM的读取定时

简单来说,SDRAM读取时序可执行1 )行((2)栅极列()3)预充电,且关闭所在行()中的下一命令。

写入(write )

图4SDRAM写入定时

预充电(precharge )

由于SDRAM的寻址是独占的,因此在执行读写操作后,如果要寻址同一L-Bank中的另一行,则必须关闭原始有效(行为)行并重新发送行/列地址。 “预充电”(Precharge )是L-Bank关闭现有工作行并准备打开新行的操作。 发出预充电命令后,需要一段时间才能发送RAS行启用命令以打开新的工作行。 此间隔称为预配置命令管理(Trp )。 如同tRCD、CL一样,tRP的单位也是时钟循环数目,并且特定值取决于时钟频率。

自动刷新) )。

它之所以称为DRAM,是因为它总是“刷新”(Refresh )以保存数据,是DRAM最重要的操作。 刷新操作与预充电改写操作相同,用S-AMP先读后写。 但是,为什么有预充电操作需要刷新呢? 因为预充电是对一个或所有LUN中的行为行的操作,而不定期,而刷新是按一定的周期顺序对所有行进行操作,以保存存储库中长时间未重写的数据。

重要参数:

tRCD :

从行激活到读/写命令发出的间隔被定义为tRCD,即rastoCASdelay (从ras到CAS的延迟,ras为行地址选通脉冲,cas为列地址选通脉冲),行游戏广义tRCD以时钟周期(tCK,Clock Time )数为单位,例如tRCD=2表示延迟周期为2个时钟周期,具体准确时间取决于时钟频率。

图5tRCD=3

CL :

选择相关列地址会触发数据传输,但从存储单元输出到实际出现在存储芯片上的I/O接口需要一段时间。 这段时间是非常有名的cl(CASlatency )列地址的脉冲选通潜伏期。 CL的数值与tRCD一样,用时钟周期数表示。 如DDR-400,如果时钟频率为200MHz,时钟周期为5ns,则CL=2意味着10ns的潜伏期。 但是,CL只以读取操作为对象,在SDRAM的情况下,写入没有潜伏期。

图6CL=2

BL :

突发(Burst)是一回事

一行中相邻的存储单元连续进行数据传输的方式,连续传输的周期数就是突发长度(Burst Lengths,简称BL)。在进行突发传输时,只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址(SDRAM与DDR SDRAM的突发传输对列寻址的操作数量有所不同,在此不再细说)。这样,除了第一笔数据的传输需要若干个周期(主要是之前的延迟,一般的是tRCD+CL)外,其后每个数据只需一个周期的即可获得。

 

图7   突发BL=4

tRP:

由于SDRAM 的寻址具有独占性,所以在进行完读写操作后,如果要对同一L-Bank 的另一行进行寻址,就要将原来有效(工作) 的行关闭,重新发送行/列地址。L-Bank 关闭现有工作行,准备打开新行的操作就是预充电(Precharge)。在发出预充电命令之后,要经过一段时间才能允许发送RAS 行有效命令打开新的工作行,这个间隔被称为tRP(Precharge command Period,预充电有效周期)。

 

图8   tRP=2

SDRAM的工作流程

 

 

 

图9   SDRAM基本工作流程

 

  启动初始化:

1、同时启动设备核心电源VDD和设备I/O电源VDDQ。声明并维持CKE引脚为mldys(CKE引脚为Clock Enable,时钟使能信号,mldys表示启动内部时钟信号)。

2、等到VDD和VDDQ稳定后并且CKE设为mldys,应用稳定时钟。

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

4、precharge:预充电命令。SDRAM执行一条预充电命令后,要执行一条空操作命令,这两个操作会使所有的存储单元进行一次预充电,从而使所有阵列中的器件处于待机状态。引脚A10(=AP  Auto Precharge)可以对预充电的模式进行选择,当A10=LOW时,给单个bank pre-charge,bank由BA0和BA1引脚进行选择;当A10=HIGH时,给所有的bank进行precharge。

5、auto-refresh:自刷新命令。SDRAM要执行两条自刷新命令,每一条刷新命令之后,都需要执行一条空操作命令。这些操作会使 SDRAM内部的刷新及计数器进入正常运行状态,以便为SDRAM模式寄存器编程做好准备。

6、load mode register:设置模式寄存器。Mode Register一般被用于定义SDRAM运行的模式,寄存器里一般设置了读取延迟,burst长度,CAS,burst类型,操作模式,还有是设置SDRAM是工作在单个读写操作还是burst操作下。 Mode Register通过LOAD MODE REGISTER命令进行编程,这组信息将会一直保存在Mode Register中直到内存掉电之后才会消失。而这个寄存器的设置也是通过地址线来设置的,所以在发出Load Mode Register命令后要做一个操作是使得在SDRAM的地址线上的值就是你要设置的值。注意!这个操作是8位的操作。Mode Register中的M0-M2是用来定义突发长度(burst length)的,M3定义突发类型(sequential或者interleaved),M4-M6定义CAS延迟,M7和M8定义运行模式,M9定义写入突发模式(write burst mode),M10和 M11目前保留。Mode Register必须在所有的bank都处于idle状态下才能被载入,在所有初始化工组都进行完毕之前,控制器必须等待一定的时间。在初始化过程中发生了任何非法的操作都可能导致初始化失败从而导致整个计算机系统不能启动。

设置完模式寄存器之后就进入了正常读写操作模式。

 

图10SDRAM初始化

 SDRAM的基本读写操作

SDRAM的基本读操作需要控制线和地址线相配合地发出一系列命令来完成。先发出BANK激活命令(ACTIVE),并锁存相应的BANK地址(BA0、 BA1给出)和行地址(A0~A12给出)。BANK激活命令后必须等待大于tRCD(SDRAM的RAS到CAS的延迟指标)时间后,发出读命令字。 CL(CAS延迟值)个工作时钟后,读出数据依次出现在数据总线上。在读操作的最后,要向SDRAM发出预充电(PRECHARGE)命令,以关闭已经激活的页。等待tRP时间(PRECHAREG命令后,相隔tRP时间,才可再次访问该行)后,可以开始下一次的读、写操作。SDRAM的读操作只有突发模式(Burst Mode),突发长度为1、2、4、8可选。

 

 

图11SDRAM基本读操作

SDRAM的基本写操作也需要控制线和地址线相配合地发出一系列命令来完成。先发出BANK激活命令(ACTIVE),并锁存相应的BANK地址(BA0、BA1给出)和行地址(A0~A12给出)。BANK激活命令后必须等待大于tRCD的时间后,发出写命令字。写命令可以立即写入,需写入数据依次送到DQ(数据线)上。在最后一个数据写入后延迟tWR时间。发出预充电命令,关闭已经激活的页。等待tRP时间后,可以展开下一次操作。写操作可以有突发写和非突发写两种。突发长度同读操作。

SDRAM刷新过程:

由于SDRAM是利用其内部的电容来存储数据,所以需要不断进行刷新(Refresh)才能保留住数据。刷新操作有固定的周期,以行为单位进行刷新,依次对所有行进行操作,以保留那些久久没经历重写的存储体中的数据。与所有L-Bank预充电不同的是,这里的行是指所有L-Bank中地址相同的行,而预充电中各L-Bank中的工作行地址并不是一定是相同的。存储体中电容的数据有效保存期上限是64ms(毫秒,1/1000秒),也就是说每一行刷新的循环周期是64ms。这样刷新速度就是:行数量/64ms。刷新命令一次对一行有效,发送间隔也是随总行数而变化。

刷新操作分为两种:自动刷新(Auto Refresh,简称AR)与自刷新(Self Refresh,简称SR)。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作。

对于AR,SDRAM内部有一个行地址生成器(也称刷新计数器)用来自动的依次生成行地址。由于刷新是针对一行中的所有存储体进行,所以无需列寻址,或者说CAS在RAS之前有效。所以,AR又称CBR(CAS Before RAS,列提前于行定位)式刷新。由于刷新涉及到所有L-Bank,因此在刷新过程中,所有L-Bank都停止工作,而每次刷新所占用的时间为9个时钟周期(PC133标准),之后就可进入正常的工作状态,也就是说在这9个时钟期间内,所有工作指令只能等待而无法执行。64ms之后则再次对同一行进行刷新,如此周而复始进行循环刷新。显然,刷新操作肯定会对SDRAM的性能造成影响,也是DRAM相对于SRAM(静态内存,无需刷新仍能保留数据)取得成本优势的同时所付出的代价。 

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

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。