SDRAM是什么

发布时间:2021-12-20 10:42:50 作者:iii
来源:亿速云 阅读:376

本篇内容主要讲解“SDRAM是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SDRAM是什么”吧!

什么是 SDRAM

Synchronous Dynamic Random Access Memory: 同步动态随机存储器.   同步 : 由soc发送时钟给SDRAM, 通过该时钟的节拍来发送控制信号.    动态 : 存储器需要不断的刷新来保证数据不丢失.    随机 : 数据非线性存储, 可自由指定地址进行数据的读写

SDRAM的内部与外部结构

  1. 外部

    SDRAM是什么

    图1    本开发板用两片sdram来配置为32bit位宽的sdram. 

  2. 内部

    sdram的检索原理和表格一样,  通过先指定行, 再指定列就能准确找到所需要的存储单元. 但是由于技术/成本的原因, 一个sdram内部不可能只有一个表格, 目前基本是4个,  这个类似表格一样的结构叫做 逻辑Bank, L-Bank. 这样要找到某个存储单元就要先确定是哪个bank, 然后选定行,再选定列.

SDRAM的内部基本操作与工作时序

行有效  

必须先使能芯片, 选中相应的L-BANK, 再使能 行(ROW),  再使能 列(COLUMN)来对某个存储单元进行读写.

SDRAM是什么

图2    行有效时序图

通过BA0\BA1来选中某个L-BANK, 通过RAS\CAS来区分 行 与 列. 这是同时进行的, 所以行有效也可以称为 L-BANK有效

列读写

行选通之后就可以发送列地址对存储单元进行读写了.   读/写 命令是通过 WE 信号线来区分的, WE = 1 : 写入 ;  WE = 0 : 读取

SDRAM是什么

图3    命令列表

由上表可知, SDRAM的各种指令都是通过 控制/地址线 的高低电平组合来完成的, 并没有命令字. 所以 读写命令 与 列地址 同时发出.

SDRAM是什么

图4    读写操作示意图

CAS(ColumnAddress Strobe,列地址选通脉冲)信号配合A0-A9/A11(不固定)来确定具体的列地址. 

SDRAM是什么

图5 

在发送列读写命令时必须要与行有效命令有一个间隔,这个间隔被定义为tRCD,即RAS to CAS Delay(RAS至CAS延迟),也可以理解为行选通周期,这应该是根据芯片存储阵列电子元件响应时间(从一种状态到另一 种状态变化的过程)所制定的延迟。tRCD是SDRAM的一个重要时序参数,广义的tRCD以时钟周期(tCK,Clock Time)数为单位,比如tRCD=2,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时钟频率而定,对于PC100的SDRAM,tRCD=2,代表20ns的延迟,对于PC133则为15ns


S3C2440存储控制器的各个寄存器配置解析

BWSCON = 0x2201 1110

BWSCON[31] = 0, 禁止数据掩码引脚

数据掩码

在讲述读/写操作时,我们谈到了突发长度。如果BL=4,一次就传送4×64bit的数据。但是,如果第二笔 数据是不需要的,怎么办?为了屏蔽不需要的数据,人们采用了数据掩码(Data I/O Mask,简称DQM)技术。通过DQM,内存可以控制I/O端口取消哪些输出或输入的数据。这里需要强调的是,在读取时,被屏 蔽的数据仍然会从存储体传出,只是在“掩码逻辑单元”处被屏蔽。为了精确屏蔽一个P-Bank位宽中的每个字节,每个DIMM有8个DQM信号线,每个信号针对一个字节。这样,对于4bit位宽芯片,两个芯片共用一个DQM信号线,对于8bit位宽芯片,一个芯片占用一个DQM信号,而对于16bit位宽芯片,则需要两个DQM引脚。SDRAM官方规定,在读取时DQM发出两个时钟周期后生效,而在写入时,DQM与写入命令一样是立即成效

BWSCON[30] = 0, 禁止WAIT信号

BWSCON[29:28] = 1:0; 设置BANK7数据总线宽度为32bit

(BANK6同BANK7)

SDRAM是什么

BANKCONx = 0x0700

BANKCONx( 0 <= x <= 5)用来控制BANK0~BANK5外接设备的访问时序, 采用默认值即可

SDRAM是什么

BANKCONx(6 <= x <= 7) = 0x0001 8005

BANKCONx[16:15] = 1:1, 设置存储器类型为 SDRAM

BANKCONx[3:0] = 0:1:0:1, 设置RAS到CAS的延迟(tRCD)为3个时钟, 设置列地址数为9bit

SDRAM是什么

REFRESH = 0x008C 07A3

BANKCONx[23] = 1, 使能自动刷新功能

BANKCONx[22] = 0, Auto refresh, 等于1为 self refresh

BANKCONx[21:20] = 0:0, 预充电时间为2个时钟周期 (预充电见解释)

BANKCONx[19:18] = 1:1, 设置半行周期时间为7个时钟

BANKCONx[10:0] 设置刷新计数, 刷新计数= 2^11+1-12*7.8=1955( 0x07A3 )

SDRAM是什么

刷新

之所以称为DRAM,就是因为它要不断进行刷新(Refresh)才能保留住数据,那么要隔多长时间进行一次刷新呢? 我们在看内存规格时,经常会看到4096 Refresh Cycles/64ms或8192 Refresh Cycles/64ms的标识,这里的4096与8192就代表这个芯片中每个L-Bank的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096行时为15.625μs(微秒,1/1000毫秒),8192行时就为7.8125μs.  刷新操作分为两种:Auto Refresh,简称AR与Self Refresh,简称SR。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作。

预充电

由于SDRAM的寻址具有独占性,所以在进行完读写操作后,如果要对同一L-Bank的另一行进行寻址,就要将原来有效(工作) 的行关闭,重新发送 行/列地址。L-Bank关闭现有工作行,准备打开新行的操作就是预充电(Precharge)

BANKSIZE = 0xB1

BANKCONx[7] = 1, 使能突发操作

BANKCONx[6] = 0, 保留

BANKCONx[5] = 1, 使能SDRAM掉电模式

BANKCONx[4] = 1, 设置只在访问SDRAM的时候发送时钟

BANKCONx[3] = 0, 保留

BANKCONx[2:0] = 0:0:1, BANK6/BANK7存储器映射大小 = 64MB/64MB

SDRAM是什么

数据输入(写入)

SDRAM是什么

图7

数据写入的操作也是在tRCD之后进行,但此时没有了CL(记住,CL只出现在读取操作中),行寻址与列寻址的时序图和上文一样 ,只是在列寻址时,WE#为有效状态。从图中可见,由于数据信号由控制端发出,输入时芯片无需做任何调校,只需直接传到数据输入寄存器中,然后再由写入驱动器进行对存储电容的充电操作,因此数据可以与CAS同时发送,也就是说写入延迟为0。不过,数据并不是即时地写入存储电容,因为选通三极管 (就如读取时一样)与电容的充电必须要有一段时间,所以数据的真正写入需要一定的周期。为了保证数据的可靠写入,都会留出足够的 写入/校正时间(tWR,Write Recovery Time),这个操作也被称作写回(Write Back)。tWR至少占用一个时钟周期或再多一点(时钟频率越高,tWR占用周期越多),有关它的影响将在下文进一步讲述

突发长度

突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度(Burst Lengths,简称BL)

非突发连续读取模式:依次单独寻址,此时可等效于BL=1。虽然可以让数据是连续的传输,但每次都要发送列地 址与命令信息,控制资源占用极大

突发连续读取模式:只要指定起始列地址与突发长度,寻址操作与数据的读取操作自动进行,只要控制好两段突发读取命令的间隔周期(与BL 相同)即可做到连续的突发传输

突发读/突发写,表示读与写操作 都是突发传输的,每次读/写操作持续BL所设定的长度,这也是常规的设定

突发读/单一写,表示读操作是突发传输,写操作则只是 一个个单独进行。突发传输模式代表着突发周期内所涉及到的存储单元的传输顺序

MRSR = 0x30

MRSR[6:4] = 0:1:1, 设置 发送读取命令到第一个数据输出的时间 为 3 个时钟周期 

SDRAM是什么

数据输出(读出)

在CAS 发出之后,仍要经过一定的时间才能有数据输出,从CAS与读取命令发出到第一笔数据输出的这段时间,被定义为CL(CAS Latency,CAS潜伏期)。由于CL只在读取时出现,所以CL又被称为读取潜伏期(RL,Read Latency)。CL的单位与tRCD一样,为时钟周期数,具体耗时由时钟频率决定

SDRAM是什么

图6    CL=2与tAC示意图

JZ2440的裸机SDRAM代码执行流程:

SDRAM是什么

SDRAM是什么

到此,相信大家对“SDRAM是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. 云计算是什么以及不是什么?
  2. ARM cortex a 的SDRAM (DDR)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sdram

上一篇:Linux driver怎么配置使用

下一篇:如何分析Kubernetes的卷克隆Alpha

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》