CPU和SDRAM的搭建

//========================================================================
//TITLE:
//    CPU和SDRAM的搭建
//AUTHOR:
//    norains
//DATE:
//    Saturday  24-May-2008
//Environment:
//    NONE
//========================================================================

    虽然在桌面PC中SDRAM已经如同明日黄花,地位基本上已经被DDRI或DDRII取代,但对于嵌入式设备而言,尚且还有用武之地。本文只是在确定CPU的情况下如何选择相搭配的内存芯片做个基本的描述,故对于很多概念只是泛泛而谈,而原理更是很少涉及。如果各位朋友对SDRAM的机制有着浓厚的兴趣,强烈推荐网友写的一篇文章:http://xdiy.com.cn/html/2007-04/9385.html(终极内存技术指南)。顺便说一下,本文的很多概念和原理也是摘录该文,在此先向该文的作者表示最高的敬意。
   
1.Phisical Bank(P-Bank)
    SDRAM为了保证CPU的正常工作,必须一次传输完CPU在一个传输周期内所需要的数据。而CPU在一个传输周期能接受的数据容量就是CPU数据总线的位宽,而该位宽就称之为Physical Bank(P-Bank)的位宽,其单位是bit。
   
   
2.芯片位宽
    每个内存芯片也有自己的位宽,即每个传输周期能提供的数据量。如果CPU的P-Bank为64bit,相应的内存芯片的位宽也要达到64bit。不过由于制造技术限制,很多内存芯片都不会直接提供64bit,更常见的是8bit和16bit。如果采用8bit芯片,那则需要并联8片,这样位宽就达到8X8=64bit,符合P-Bank要求。相对的,如果采用的是16bit,则只需要4片。
   
   
3.Logic Bank(L-Bank)
    简单地说,SDRAM的内部是一个存储阵列。阵列就如同表格一样,将数据“填”进去,你可以把它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)叫什么呢?它就是逻Logical Bank(L-Bank)。
    如图1:
   
    
    知道这三个概念之后,看懂内存芯片的参数就没什么问题了。
   
    以Micron的芯片规格为例:   
    1)MT48LC128M4A2 – 32 Meg x 4 x 4 banks
    2)MT48LC64M8A2 – 16 Meg x 8 x 4 banks
    3)MT48LC32M16A2 – 8 Meg x 16 x 4 banks

    我们可以根据参数算出内存芯片的容量:32 Meg x 4 x 4 = 512Mbit = 64MB。同样可知,其它两组也同属于相等的容量。
   
    对于2)来说,该芯片的存储单元为16Meg,芯片位宽为8bit,有4个L-Bank。其它两组参数含义可据此而推断。
   

4.DQM
    内存芯片还有一个很重要的PIN,就是DQM。DQM全称是Data I/O Mask,即数据掩码技术,主要是用来屏蔽不需要的数据。对于4bit位宽芯片,两个芯片共用一个DQM信号线,对于8bit位宽芯片,一个芯片占用一个DQM信号,而对于16bit位宽芯片,则需要两个DQM引脚。
   
   
   
    为了加深印象,我们以某款嵌入式CPU(以下称为CPU_A)为例:
   
    如图2

    
    图中只保留了SDRAM控制线,省略了其它部分。从图中我们可以看出,该CPU的SDRAM地址线为12根,P-Bank为32bit。我们可以根据P-Bank为32bit,能推断出应该有2个DQM,这个结论在图中也得到了证实。
   
   
    最后我们还是举个例子作为文章的结尾。假如我们只能选择CPU_A,并且内存芯片只能从之前的Micron中选择,那么有如下三个系统需要搭建:
   
    1)CPU_A + 128M
      因为例子芯片的容量为64MB,如果要构建128M,所需的片数为:128M / 64M = 2。因为2片组成的P-Bank必须要达到32bit,而MT48LC32M16A2的芯片位宽恰好为16bit,所以在这个案例中我们只能选择两片MT48LC32M16A2。
     
    2)CPU_A + 256M
      同样,先确认内存芯片所需的片数:256M / 64M = 4。
      每颗内存芯片的位宽要求为:32bit / 4 = 8。
      样品中只有MT48LC64M8A2符合。
     
    3)CPU_A + 64M
      内存所需片数:64M / 64M = 1
      芯片位宽:32bit / 1 = 32bit
      所列的样品中内存芯片的最大位宽为16bit,因此如果只是选择所给的内存芯片,则无法和CPU_A搭建64M的系统。
   
   
   

posted @ 2008-05-24 22:49  我的一天  阅读(319)  评论(0编辑  收藏  举报