发 帖  
原厂入驻New

[经验] 如何选择内存芯片?

2020-9-3 17:22:51  139 内存芯片
分享
1
  里首先要讲一个概念:Rank。内存控制器host端往往有一定的数据位宽,比如现在常用的计算机系统处理器都是64位,其中所集成的内存控制其接口也是64位。而内存芯片的位宽通常为4位/8位/16位,要达到64位,必须把多个内存芯片组合在一起。比如是8位内存芯片,则必须要8个内存芯片组合在一起才能跟host端64位接口匹配。这样的host端总线位宽相匹配的多个内存芯片的组合就是一个Rank。
  回到开始的关于内存芯片选型的讨论,下面以具体例子进行讲解。
  例子1:如果你的嵌入式系统设计需要256MByte的内存(注意这里是Byte不是bit),控制处理器芯片内存接口数据是8位的,Rank选择信号有两个CS0#/CS1#。这种应用应当选什么样的内存芯片呢?
  分析: 由于处理器端的数据位是8位,内存芯片的数据位应避免大过处理器端的数据位。所以选择的内存芯片是8位或4位。
  如果要选择4位的内存芯片:
  由于有两根Rank选择信号,可以支持最大2个Rank。处理器端的数据位是8位,而内存芯片也是4位,就是说每个Rank可支持2个芯片(处理器端的数据位/内存芯片数据位=2),两个Rank可以支持4个芯片。每个芯片容量是256MB x 8/4 = 512Mb,也就是说应该选512Mb/4位(32Mx4x4banks)的内存芯片。
  也可以选择1个Rank,这样也就可以用总共2个内存芯片,每个芯片容量是256MB x 8/2 = 1Gb。也就是说应该选1Gb/4位(64Mx4x4banks)的内存芯片
  如果要选择8位的内存芯片:
  由于有两根Rank选择信号,可以支持最大2个Rank。处理器端的数据位是8位,而内存芯片也是8位,就是说每个Rank只能支持1个芯片(处理器端的数据位/内存芯片数据位=1),两个Rank可以支持2个芯片。每个芯片容量是256MB x 8/2 = 1Gb,也就是说应该选1Gb/8位(32Mx8x4banks)的内存芯片
  当然也可以用1个Rank,也只能用一个内存芯片,其容量较大2Gb/8,不知到能不能找到这样的芯片。
  例子2: 最近也给很多朋友分享过一个实际的ddr2/800的内存条设计原理图,其框图如下。从该框图可以看出:
  
  1.该内存条有两个rank分别连接到CS0# 和CS1#两个rank选择信号。
  2.每个rank有8个内存芯片连接到内存数据总线。
  3.每个内存芯片是512M/8Bit,其存储容量是4Gbit。
  4.该内存条的设计的内存容量是多少?
  4Gbit X 8(8 芯片/rank) X 2 (rank) = 64 Gbit,也就是8GB
  内存芯片的选择除了计算其容量,数据位数等参数外,还的看其它的一些特性要求,比如控制处理器端支持什么内存技术(DDR,DDR2, ddr3?),内存芯片也要与之匹配。还有比如电路板空间的大小。用上面的例子1来说,如果电路板上没空间放4颗内存芯片,只能放2颗,那么就只能选1Gb/4位或1Gb/8位的芯片了。

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表