首页 > 代码库 > RAM ROM Flash
RAM ROM Flash
首先,计算机的基本组成主要包括五大部分:控制器、运算器、存储器、输入设备、输出设备。而不管是RAM、ROM还是Flash,它们的共同点是都是存储器部分。
既然是存储器,那其功能也就是主要是存储程序、数据等信息。比较熟悉的不那么专业的存储器有主存、硬盘、光驱、U盘等等,其实这些存储设备,就是上面提到的RAM、ROM、Flash等等。下面一一介绍:
RAM:
RAM是random access memory的缩写,中文名字是随机存储器。顾名思义,既然是随机存储器,就是说它的存取是随机的,存取的速度与存储单元的位置是无关的。其存储单元里的内容可按照需要进行对已的取出或存入。另外,在断电时,它里面存储的内容会丢失,所以它一般用作存储短时间使用的程序。这就让我们联想到了计算机里的内存。按照存储信息的不同,RAM随机存储器可分为静态随机存储器(SRAM)和动态随机存储器(DRAM)。
SRAM不需要刷新电路即可保存它内部存储的数据。而DRAM每隔一段时间,需要刷新充电一次,否则内部的数据会消失,因此SRAM具有较高的性能,但SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但SRAM却需要很大的体积,且功耗较大。SRAM一般用作CPU与主存之间的高速缓存、CPU内部的一级/二级高速缓存等。DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但价格上来说DRAM相比SRAM要便宜多,DRAM一般用于计算机的内存。DRAM种类比较多,比如SDRAM、DDR RAM、RDRAM等都属于DRAM。既然内存一般用的是DRAM,那就介绍小内存的工作原理(引用):
内存工作原理:内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的"动态",指的是当们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。
具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。
由于ROM不易更改的特性让更新资料变得相当麻烦,因此就有了Flash Memory的发展 ,Flash Memory具有ROM不需电力维持资料的好处,又可以在需要的时候任意更改资料 ,不过单价也比普通的ROM要高。
ROM
ROM是Read-Only Memory的缩写,中文就是只读存储器,顾名思义,它是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦存储资料就无法再将之改变或删除。通常用在不需要经常变更资料的电子或电脑系统中,资料不会因为电源关闭而消失。ROM有很多种,比如PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是:PROM是一次性的,也就是软件灌入后,就无法修改了。这种事早期的产品,现在已被淘汰;而EPROM是通过紫外光的照射可擦除原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦除,价格更高,写入时间很长,写入很慢。
RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM就不会。由于ROM不易更改的特性让更新资料变得相当麻烦,因此就有了Flash Memory的发展 ,Flash Memory具有ROM不需电力维持资料的好处,又可以在需要的时候任意更改资料 ,不过单价也比普通的ROM要高。
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)和我们通常用的"闪盘",可以在线擦除。