发布时间:2023-09-03 17:00
存储器:程序运行过程中,用于存储数据的器件;可以存放不同类型的数据
SDRAM的存储空间被划分为4个L-Bank,在寻址时需要先指定其中一个L-Bank,然后在选定的L-Bank中选择相应的行与列进行寻址。
SDRAM存储容量
S D R A M 总 存 储 容 量 = L − B a n k 的 数 量 × 行 数 × 列 数 × 存 储 单 元 的 容 量 SDRAM总存储容量=L-Bank的数量×行数×列数×存储单元的容量 SDRAM总存储容量=L−Bank的数量×行数×列数×存储单元的容量
行地址与列地址选通使得存储电容与数据线导通,从而可进行放电(读取)
与充电(写入)操作。
行激活
无论是读操作还是写操作,都要先激活(Active)SDRAM中的一行,使之处于有效状态,因此又称行有效【#代表低电平有效】
SDRAM芯片的“片选”和L-Bank的“定址”与行激活同时进行。
列读写
行地址激活之后,需要对列地址进行寻址。读写命令是与列地址信号同时发出的
发送列读写命令时必须要与行激活命令有一个时间间隔,这个时间间隔被定义为tRCD,即RAS to CAS Delay(RAS至CAS延迟)
数据输出(读)
在CAS发出之后,要经过一定的时间才能有数据输出。
数据输入(写)
数据与写指令同时发送。数据并非即时的写入存储单元,数据的真正写入需要一定的周期。【为了保证数据的可靠写入,都会留出足够的写入/校正实际(tWR),这个操作也被称为写回】
突发长度
突发是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度。【BL】
在MRS(模式寄存器设置)阶段除了要设定BL数值之外,还需要确定“读/写操作模式”以及“突发传输模式”
数据掩码—写
在突发传输过程中,为了屏蔽不需要的数据,采用了数据掩码【DQM0】技术
通过DQM,内存可以控制I/O端口取消哪些输出或输入的数据。
写入时,DQM与写入命令一样是立即生效。
数据掩码—读
在读取时DQM发出两个时钟周期后生效
预充电
在对SDRAM某一存储地址进行读写操作结束后,如果要对同一L-Bank的另一行进行寻址,就要将原来有效(工作)的行关闭,重新发送行/列地址。
L-Bank关闭现有工作行,准备打开新的工作行的操作就是预充电(Precharge)
读写操作时,地址线A10控制着是否进行在读写之后对当前L-Bank自动进行预充电。
读取时预充电时序图
发出预充电命令后,要经过一段时间才能发送行激活命令打开新的工作行,这个间隔被称为tRP(预充电有效期)【CL=2,BL=4,tRP=2】
写入时预充电时序图
写操作时,预充电不能与写操作同时进行,必须要在tWR之后才能发出预充电命令,以确保数据的可靠写入,否则重写的数据可能是错的。【BL=4,tWR=1,tRP=2】
“动态”随机存储器就是因为它需要不断进行刷新才能保留数据,因此刷新是SDDRAM最重要的操作。
刷新操作与预充电类似,都是重写存储体中的数据。【同时刷新4个Bank中的某一行
】
自动刷新
自动刷新(AR)【Auto ReFresh】,SDRAM内部有一个行地址生成器(也叫刷新计数器)用来自动生成行地址。
每次刷新操作所需要的时间为自动刷新周期(tRC),在自动刷新指令发出后需要等待tRC才能发送其他指令。
自刷新
自刷新(SR)主要用于休眠模式低功耗状态下的数据保存。在发出AR指令时,将CKE置于无效状态,就进入了SR模式。
SR模式下SDRAM不再依靠系统时钟工作,而是根据内部的时钟进行刷新操作。
准备工作:
任务: