[攻克存储] 掌握SDRAM/DDR的结构与寻址

     本系列前面两篇文章《[攻克存储] SRAM地址线的连接》和 《[攻克存储] 存储芯片的写屏蔽及扩展》已经介绍了SRAM芯片的地址线连接方法以及存储芯片的写屏蔽扩展,这两篇文章基本上是从SRAM的角度在进行讲解和描述,其中许多原理在SDRAM/DDR芯片中也同样适用,不过,SDRAM/DDR 存储芯片的结构和寻址方式相对于ROM、SRAM、DRAM而言,还是有很大的变化和不同的,本文就着重介绍SDRAM/DDR的相关知识点和应用注意事项。

    在存储结构上,SDRAM/DDR采取了多Bank方式,每一个逻辑Bank即为一个存储阵列,一般一个SDRAM芯片有2~8个Bank。我们可以把Bank想象为一个表格,如下:    

      图中的Bank是一个14行17列的逻辑存储结构,假设该SDRAM芯片有4个Bank,则其存储空间为:4 x 2^14 x 2^17  bit = 2^33 bit =  1GB

     在寻址方式上,首先,多了几个Bank选择引脚,例如对于4个Bank的SDRAM,则有2个引脚(BA0~BA1)进行Bank选择。当具体Bank选定后,再给出行列地址从而定位到具体的存储位置。而行列地址值由相应的地址线引脚分时复用得到。

     下面研究一个具体的SDRAM电路图,如下图所示,该图为ARM芯片s3c2440与SDRAM芯片HY57V561620的连接示意图。
 
   
    该SDRAM芯片为 HY57V561620 ,有4个Bank,16位宽数据线,32M的存储空间。该芯片的引脚功能描述如下:
 
 
    重点关注地址线 A0~A12的说明,我们可以到,该芯片每一个Bank有13行(RA0~RA12),9列(CA0~CA8),行寻址时使用A0~A12,列寻址分时复用,只使用了CA0~CA8。并且,相比于SRAM芯片,多了nRAS、nCAS引脚,用于标识当前是行寻址还是列寻址,从而实现地址线的分时复用。
 
    我们可以通过下面的时序图,来更加直观地了解一下SDRAM是如何寻址的:

[第一步] 选择Bank,同时给出行地址 
 

    

[第二步] 给出列地址,得到数据
 

   

 
   到此,基本上算是把 SDRAM/DDR 的结构和寻址讲完了,当然,关于SDRAM/DDR还有很多其他的相关知识点,比如 CAS 延时,比如 时钟频率,比如 DRAM/SDRAM/DDR2 的详细区别等等,将在后面的文章中陆续讲述。
 
   最后,再补充点内容,关于上面ARM芯片s3c2440与SDRAM芯片HY57V561620的连接图,有一个细节,即为什么SDRAM芯片的BA0~BA1连接的是ARM芯片的LADDR24~LADDR25引脚?
 
   因为,HY57V561620为32MB的SDRAM芯片,我们知道,32MB的存储空间是需要 25 根地址线寻址的,由于BA0~BA1引脚决定了访问第几个Bank,即决定了存储空间的最高两位,因此,需要使用ARM的25根地址线中的最高两位来连接 BA0~BA1,这样就可以满足寻址的映射要求了。
 
   SDRAM/DDR的结构与寻址就介绍到这里,欢迎对文中错误以及不够清楚的地方提出意见和建议,留言或者来信lujun.hust@gmail.com进一步交流。
 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内存工作原理 1.内存寻址 首先,内存从CPU获得查找某个数据的指令,然后再找出存取资料的位置时(这个动作称为“寻址”),它先定出横坐标(也就是“列地址”)再定出纵坐标(也就是“行地址”),这就好像在地图上画个十字标记一样,非常准确地定出这个地方。对于电脑系统而言,找出这个地方时还必须确定是否位置正确,因此电脑还必须判读该地址的信号,横坐标有横坐标的信号(也就是RAS信号,Row Address Strobe)纵坐标有纵坐标的信号(也就是CAS信号,Column Address Strobe),最后再进行读或写的动作。因此,内存在读写时至少必须有五个步骤:分别是画个十字(内有定地址两个操作以及判读地址两个信号,共四个操作)以及或读或写的操作,才能完成内存的存取操作。 2.内存传输 为了储存资料,或者是从内存内部读取资料,CPU都会为这些读取或写入的资料编上地址(也就是我们所说的十字寻址方式),这个时候,CPU会通过地址总线(Address Bus)将地址送到内存,然后数据总线(Data Bus)就会把对应的正确数据送往微处理器,传回去给CPU使用。 3.存取时间 所谓存取时间,指的是CPU读或写内存内资料的过程时间,也称为总线循环(bus cycle)。以读取为例,从CPU发出指令给内存时,便会要求内存取用特定地址的特定资料,内存响应CPU后便会将CPU所需要的资料送给CPU,一直到CPU收到数据为止,便成为一个读取的流程。因此,这整个过程简单地说便是CPU给出读取指令,内存回复指令,并丢出资料给CPU的过程。我们常说的6ns(纳秒,秒-9)就是指上述的过程所花费的时间,而ns便是计算运算过程的时间单位。我们平时习惯用存取时间的倒数来表示速度,比如6ns的内存实际频率为1/6ns=166MHz(如果是DDR就标DDR333,DDR2就标DDR2 667)。 4.内存延迟 内存的延迟时间(也就是所谓的潜伏期,从FSB到DRAM)等于下列时间的综合:FSB同主板芯片组之间的延迟时间(±1个时钟周期),芯片组同DRAM之间的延迟时间(±1个时钟周期),RAS到CAS延迟时间:RAS(2-3个时钟周期,用于决定正确的行地址),CAS延迟时间 (2-3时钟周期,用于决定正确的列地址),另外还需要1个时钟周期来传送数据,数据从DRAM输出缓存通过芯片组到CPU的延迟时间(±2个时钟周期)。一般的说明内存延迟涉及四个参数CAS(Column Address Strobe 行地址控制器)延迟,RAS(Row Address Strobe列地址控制器)-to-CAS延迟,RAS Precharge(RAS预冲电压)延迟,Act-to-Precharge(相对于时钟下沿的数据读取时间)延迟。其中CAS延迟比较重要,它反映了内存从接受指令到完成传输结果的过程中的延迟。大家平时见到的数据3—3—3—6中,第一参数就是CAS延迟(CL=3)。当然,延迟越小速度越快。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值