norains的专栏

只专注于WINCE开发

用户操作
[即时聊天] [发私信] [加为好友]
norainsID:norains
142908次访问,排名598,好友0人,关注者53人。
代码其实是一种乐趣
norains的文章
原创 189 篇
翻译 0 篇
转载 10 篇
评论 274 篇
norains的公告
联系方式请看置顶文章
最近评论
dfdf:讨厌MFC!我觉得MFC就是太乱了!看似无用的代码不要不行,MD微软啥都给我们做完了,原理性的东西我们却永远没法搞懂了!
ironox:有个地方 我觉得很别扭,不知道怎么办好

比如说 CReg reg(HKEY_CURRENT_USER,TEXT("ControlPanel\Volume"));
ControlPanel\Volume 有可能不存在呀,这个该怎么处理哦?对象虽然创建了,出错了也没提示
szterry:呵呵,果然工作狂技术狂,同感,一样的感觉……不过我才刚毕业一年……搞IT就是玩……
jinlking:这个botton的实现只是在主窗口画了一块区域,对于事件的处理还要放在主窗口的窗口处理函数之中,在对应的消息处理上调用CheckTap来判断是否是此“按钮”,问一下,这种方法与把按钮封装在子窗口中有什么区别,二者使用那个更好?
KUODY:博主真是好人
文章分类
收藏
    相册
    动漫
    文章图片
    程序交流
    xumercury的BLOG
    狗友们的博客
    清蒸石斑鱼
    美女如刀锋
    茁茁的BLOG
    魅力老姐的窝
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 CPU和SDRAM的搭建收藏

    新一篇: 技术文章总汇 | 旧一篇: 失望的龙芯CQ8401

    //========================================================================
    //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的系统。
       
       
       

    发表于 @ 2008年05月24日 22:49:00|评论(loading...)|编辑

    新一篇: 技术文章总汇 | 旧一篇: 失望的龙芯CQ8401

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © norains