ROM RAM FLASH FRAM等区分

2019-04-14 20:14发布

存储对一个系统来说必不可少,主要用于存放代码、数据等内容,实际系统根据应用场合、成本考虑等多种因素,会搭配不同的存储组合。由于技术的发展和各方面原因,学术名词很多,笔者在刚刚接触嵌入式行业时,被这些名词搞的云里雾里的,遂决定对这些存储介质的分类、使用场合做些总结。由于水平有限,若有疏漏、错误之处,还请不吝赐教,感激不尽。另外,有部分内容参考自一些文档,但出处难以查找了,对原作者表示抱歉。

一、ROM和RAM

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。      RAM可以分为两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,好钢用在刀刃上,所以对一些速度要求比较高的场合下才使用,譬如计算机的的一级缓存L1,二级缓存L2。攒机时考察cpu好坏的一个指标是L1、L2大小,为什么它们只有几M,就是因为这个,成本太高。 另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很 多,计算机内存就是DRAM的,笔者台式机使用的是ddr2的内存,现在普遍使用ddr3。          DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用 得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。      ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别 是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是 一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。 但是,由于flash、铁电等的的兴起,ROM由于操作复杂程度、容量等限制,使用的比较少了。      举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。 但这仅对早期情况,eeprom由于写入代价高,速度慢(常用I2C总线),用的比较少了。

  二、FLASH 

  FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦出可编程(EEPROM)的性 能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用 ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及 操作系统或者程序代码或者直接当硬盘使用(U盘)。          目前Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一快的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户 不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。       一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的“闪盘”,可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。 另外有一点,NOR Falsh采用总线访问方式,Nand Falsh采用I/O访问方式访问。即写程序时,可以像访问普通内存一样直接访问Nor Flash,这也是为什么其可进行片内执行的原因;而Nand Flash采用I/O访问方式,即通过系统总线(I2C、SPI等)访问,访问速度慢。但是,任何东西总是物尽其用即可,充分利用其优点,满足我们的需要就好,不必追求说哪个一定好,哪个一定不好。

三、FRAM

铁电是比较特殊的一类介质,其常用于存储运行中的数据,具有RAM和FLASH的双重特点,访问容易,写入也容易,而且掉电不丢失。有这么多优点,证明其价格一定不便宜,也确实如此,常用铁电有64k、128k、256k等规格,笔者只用过这几类,可能现在有更大容量的达到MB级别的。铁电的一个显著好处是写入次数无限制,使用FLASH时,一个特别大的限制是擦除、写入次数有限,目前出厂的可能达到10k次级别。 一个典型的系统配置是:采用ddr2的内存,配置若干容量的nor flash用于存储bootloader,一定容量的nand flash用于存储内核、文件系统等大容量数据,一定容量的铁电用于存储系统运行中的定植。具体容量和使用场合、成本控制相关,若不记成本全用nor flash做存储也没关系,但没有哪个老板愿意这样。