1、 内存,原来是内存~~
内存是软件系统运行速度的保障。选内存可是个技术活,没在这个器件上吃过亏PM不是个好PM:)
为什么这么说呢?难道你吃过亏?
好吧,我就爆料下:在龙芯中科工作时,我曾经负责过1A开发板的规划工作,为使龙芯嵌入式处理器(即1X系列芯片)产品在广大电子爱好者和学生群体中能尽快推广开,我们将开发板定位为低价的入门开发板,于是在硬件成本上要尽可能降低成本。我们选用了可能大家不是很熟悉的南亚易胜(Elixir)内存芯片,于是问题来了。
1)因为是新的内存芯片(以前常用酸爽的内存芯片),所以开发板第一次上电就遇到问题,内存不通,串口什么输出都没有。查明非焊接问题后,很明显是引导系统有问题,最终要硬件人员和系统底层人员一起对龙芯的Bootloader(叫Pmon)进行重写,进行新内存的适配调试(要匹配内存时序),花了不少时间才调通。
2)通了,但是还有问题哦~,1A支持的最高内存最高总线频率是133MHz,但是使用南亚内存只能稳定在100MHz频率,硬要提升其运行频率主板变得很不稳定。我们同一批还做了几块使用三星内存芯片的板块,可以稳定在130MHz运行哦,系统运行速度明显更快。所以,最后使用南亚内存的主板只能将就着用了。
总结:对于新的核心器件使用要谨慎,否则可能遭致不必要的额外成本。
扯远了啊,回到怎么选内存吧,主要是以下几点。
1)带宽匹配:在SOC主芯片支持的基础上,尽量选择带宽更高的,有16bit的就不选8bit的,有32bit的就不选16bit的。
2)内存速度:在处理器支持的基础上,尽可能选择最高频的内存。支持DDR3的不选DDR2,另外,如果不是严格要求低功耗的产品,就不要选择LPDDR类型芯片了,因为LPDDR芯片运行频率会比普通类型更低些。
3)容量考虑:这个就要看你的系统需求了,如果仅仅是非常简单的任务处理,那内存容量小点都是没有问题的(可选64MB、128MB),如果需要用到图形界面,我建议上256MB。
4)品牌:按我自己的经验,首选三星的,其次海力士(Hynix),最后可选南亚易胜(便宜!),其他品牌没用过,请大家指正。
2、FLASH的选择
FLASH芯片类型很多,估计有不少朋友眼晕,这里给大家捋一下:
2.1 NOR FLASH和NAND FLASH的区别
此外,NOR FLASH的写入速度要比NAND FLASH稍低,但其读取速度要比NAND FLASH略快。NAND FLASH还分SLC(Single Level Cell)、MCL(Multi-Level Cell)、MirrorBit等技术类型,SLC顾名思义是单比特单元,MLC是双比特单元,而MirrorBit则是四比特单元,NOR FLASH也有这种MirrorBit技术架构。大容量存储产品现在主要都是使用NAND FLASH。
2.2 FLASH的SLC、MLC、MirrorBit技术比较
PS: 页大小支持请参考具体芯片datasheet。
2.3 FLASH EEPROM和普通EEPROM区别
它们之间的区别,最主要还是在于操作方式不同,FLASH EEPROM是按照BLOCK块模式操作,而普通的EEPROM则是按照BYTE字节操作。因此也可以看出,FLASH EEPROM与普通的EEPROM故寻址方式不同,FLASH EEPROM成本比普通的EEPROM更低。
2.4 FLASH怎么选?
好好选呗!呵呵,开玩笑:)
分清了FLASH芯片的种类后,说说我一般怎么选用FLASH芯片的吧:
1)成本优先:
能不用nor flash的,就不用nor flash。
能用SPI FLASH取代nor flash的就用SPI FLASH(当然,CPU要支持SPI启动哦)。
能仅用NAND FLASH解决系统启动问题的,就仅用NAND FLASH。
能用MLC NAND的,就不选SLC。
国内这环境,你懂的~
2)品牌:能用大厂的就用大厂的,因为要考虑后期软件调试的方便性,大厂的芯片驱动更成熟,调试时能省不少时间。
3)不少朋友可能要问了,不考虑读写寿命吗?好吧,我只能说我不是做U盘的,所以我不担心~~,现在的FLASH技术已经非常成熟,正规渠道的FLASH芯片寿命问题基本很少出现了,而且嵌入式产品的特殊性决定了量产后产品的写入次数只会极少,何况NAND 还有坏块回收管理技术嘛。所以放心选吧,我一般不考虑读写寿命的问题。
你看,CPU + 内存 + FLASH,三大件就集齐了,系统跑起来了!核心部件就到这里了:P
++++++++++++++++++++++++++++++++
有兴趣的可以看看我之前的文章哦:)