最近开始研究ROM和RAM,想先了解它们的定义和异同,看到这篇解说不错,暂且借鉴了。以下为转帖:
在电脑等各种计算设备中,大量的使用了半导体存储器。相对于硬盘,软盘,磁带等磁性存储器,CD/VCD/DVD/PD等光学存储器,和MD磁光存储器而言,半导体存储器的优点很明显:速度快,体积小,耐用。
不过半导体存储器的价格也相对昂贵,而且容量并不大。
ROM和RAM指的都是半导体存储器。本来的含义是:ROM是Read Only Memory的意思,也就是说这种存储器只能读,不能写。而RAM是Random Access Memory的缩写。这个词的由来是因为早期的计算机曾经使用磁鼓作为内存,而磁鼓和磁带都是典型的顺序读写设备。RAM则可以随机读写,因此得名。
不过这是30年前的概念了。在半导体和计算技术突飞猛进的30年中,它们的含义都发生了一些变化。
现在ROM通常指非挥发的存储器,或者说,不掉电。系统停止供电的时候它们仍然可以保持数据。所以光盘也有CD-ROM或者DVD-ROM的说法。而RAM通常都是没电之后就没有数据的,典型的就象计算机的内存,需要系统重新启动的时候从硬盘重新载入数据。有的时候,如果数据可以擦写,也会借用RAM这个概念,譬如DVD-RAM,其实只是可以擦写的DVD光盘而已,并非真正的半导体存储器。
ROM有很多种类,适合不同的使用需要。常见的有:
Mask-ROM
这种ROM的数据是在生产的时候写入的,实际上它很象CD光盘的原理,在半导体的光刻工艺过程中写入了数据状态。这中ROM的数据是不可能丢失的,而且它的成本非常低。在不需要数据更新的设备中,Mask ROM被非常广泛的使用。但是它完全不能擦写的特点,使得它在计算设备中不那么受欢迎。比如在掌上电脑中,我知道的只有Handspring生产的Visor系列的Palm OS PDA,和SONY生产的低端Clie SL-10使用了这种ROM。
FLROM / Fusible Link ROM
在芯片生产商处写入数据,有的时候不那么灵活,还会有保密问题。所以还有一种叫做Fusible Link的ROM。这种ROM在内部使用了一种可以熔断的连线,设备制造商可以用高电压写入数据,数据写入之后,内部的部分连线就熔断了,数据就永久保持在内部,和Mask ROM一样了。这种一次性写入的ROM不太常用。
EPROM / Erasible Programmable ROM
这是一种可以多次写入的ROM了。因为可以多次写入,所以叫做Programmable。EPROM的写入需要专门的设备,而数据的擦除则需要把ROM上的保护标签取下,把内部芯片暴露在紫外光的照射下一段时间。实际上这种ROM称为Programmable相当勉强,因为写入电路是专用的,通常不会集成在计算设备之中,所以它通常做成不常更新,而且是插拔方式的。当需要更新的时候,取下来放入专用的写入设备改写。早期的某些电脑主板的BIOS,就使用了这种ROM。
EEPROM/E2PROM(E平方ROM)/Electrically Erasible Programmable ROM
于EPROM不同,E2PROM的擦写可以用电路而不是紫外线完成。擦写的电压比读入电压要高,通常在20V以上,擦写速度也较EPROM快,在毫秒量级。EEPROM一度使用很多,不过目前被一种改进的ROM - Flash ROM代替了。
Flash ROM / Flash EEPROM
这是目前最常见的可擦写ROM了,广泛的用于主板和显卡声卡网卡等扩展卡的BIOS存储上。而现在各种邮票尺寸的半导体存储卡,包括Compact Flash/CF,Smart Media/SM,Security Digital/SD,Multimedia Card/MMC,Memory Stick/MS,以及FUJI新出的标准vCard,还有各种钥匙链大小的USB移动硬盘/USB Drive/优盘,内部用的都是Flash ROM。绝大多数PDA/掌上电脑也用它来存储操作系统和内置程序。还有数码相机,数码摄像机,MD/MP3播放器内部的Fireware(用于存储DSP/ASIC程序),也大多使用Flash ROM了。与EEPROM相比,Flash ROM有写入速度快,写入电压低的优点。不过它的成本也是较高的,所以在很多低端设备中,仍然会有厂商使用Mask ROM来降低成本,提高价格竞争力。
RAM,最常见的就是电脑的内存了。PDA/掌上电脑中也会使用RAM来让用户存储程序和数据,不过在PDA/掌上电脑中,由电池供电,所以只要电池有电,RAM中的数据还是保留的,不会丢失。在MD/MP3播放器,DC/DV中也会使用RAM来保存程序数据或者作为数据缓冲。
RAM有两大类,一种称为静态RAM,Static RAM/SRAM。SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵。所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM,Dynamic RAM/DRAM,动态RAM的速度比SRAM慢,不过比任何ROM都要快。计算机内存就是DRAM的。
DRAM的种类太多了,无法一一列举,这里只列出最常见的:
DRAM,如果和其它DRAM种类一起说这个名词,那它指的就是最老式的DRAM存储器,在寻址上没有作任何优化,速度很慢,只在386以前的电脑上有了。
FPRAM/FastPage RAM,快页内存,以页面方式读取数据,比DRAM快,486上用过。
EDORAM,Extended Data Output RAM,这是比快页内存更快的一种读取方式,广泛见于486和早期Pentium时代的电脑,PC上使用的EDO RAM通常是72针脚单面的,现在你还可以在比较老的一些电脑中找到它们。在PDA/掌上电脑中,这种EDO内存还在广泛使用着。
<>bSDRAM,Sychronous DRAM,同步内存。早期的PC内存的时钟和CPU外部时钟不是同步的,这就会导致在每次读写数据的时候有个协同时间,效率不高,而SDRAM是可以和CPU的外部时钟同步运行的,提高读写效率。Pentium到Pentium III时代一直是SDRAM主宰者PC,这种168pin双面针脚的内存条现在仍然普遍。在低端的显示卡上也常常使用这种内存。
DDR RAM,DDR SDRAM,Double Date-Rate RAM。这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。
RDRAM,Rambus DRAM,这是Intel公司的专利技术,和原来的内存读写方式有很大不同,它使用了一种高速串行方式,对于连续读写的时候非常有利,不过在随机读写的时候相对于DDR RAM的优势不明显。而且成本高昂,最终在Intel这个巨人的强力推动下也没有成为主流,只用在一些高档的P IV电脑和服务器上。
VRAM,Video RAM,这是一种双端口的RAM,双端口的好处是一端写入的时候另一端还可以在读出,最常见的应用是用在显卡上,一端可以写入屏幕数据,另外一端由RAMDAC(数字/模拟信号转换器)读出并转换成视频信号输出到显示器上。对于使用高分辨率显示器的平面设计者来说,显卡上武装高速的VRAM必不可少。VRAM成本很高。
SGRAM,是一个SDRAM的改良型号,成本较低,但是可以以类似VRAM双端口的方式工作。Matrox曾经用它来武装Mystique系列低端显卡。
WRAM,Windows RAM,是VRAM的一个简化型号,Matrox曾经用它来武装Millennium系列高档显卡。
在除了电脑之外的其它设备中,EDO RAM和SDRAM仍然有很大市场。
ROM和RAM的种类非常繁多,有大量的针对具体应用和设备设计的产品,不过最常见的就这么多了。
最后再针对PDA/掌上电脑设备总结一下。
通常我们会看到在PDA/掌上电脑上标称xxM ROM和xxM RAM,这里的ROM就是指存储操作系统和内置程序的空间,掉电的时候,这些数据依然存在。除了使用Mask ROM的低端设备,其它都是使用Flash ROM的,这意味着操作系统可以升级,某些程序还可以更改系统使得普通程序可以使用ROM中剩余的空间。而RAM就是这些设备可以存储用户程序和数据的空间,不过设备彻底没电的时候,这些数据都会丢失,所以通常的掌上电脑/PDA设备,都会在电池电压较低的时候强行关机用剩余的电量来保持数据,或者使用备用电池来完成这项工作。
新型号的掌上电脑或者PDA设备也都支持用户使用外部扩展卡来保存更多的程序和数据。这些外部扩展卡的种类在上面的帖子里都提到了,它们彼此不兼容(SD和MMC可以使用同样的插槽),性能和价格也不同,视用户需要而定。这些扩展卡使用的都是Flash ROM 。
Flash Rom分为两种,NAND和NOR,两种的区别在于,前者像磁带而后者像CD,即NOR可以随机存储,而NAND的不可以。所以使用NAND ROM的机子在Pocket PC 2002下必须将ROM文件复制到RAM上才可以运行(最典型的就是那些16MB ROM,64MB RAM的机子)。
当然NAND使用的是线性读取,速度比NOR的随机读取要快,而且可以刷新10万次,而NOR只有1万次。Windows Mobile2003使用了新的技术,可以使NAND ROM的机子不用将文件复制出来,就可以读取。所以现在市场上的绝大多数机型都是用了NAND,我同学的2210 reset的速度要比我的3950慢一些,可能就是这个原因。
再转另一文章:
为什么现在很多可写的存储器也叫做ROM?例如FLASH,EEPROM等,它们都是可写的,为什么不叫做RAM,而叫做ROM呢?
最初,把只能读的存储器叫做ROM(Read Only Memory),并且掉电后数据不会丢失。由于不能改写,因而使用起来很不方便。随着技术的进步,在ROM中使用一些新技术,就可以使它具有可以编程的功能。比较早的是熔丝型的可编程ROM,由于是通过熔断熔丝来编程的,所以这类ROM编程后,就不能再写了,是一次性的(OTP)。后来又出现了EPROM,是通过紫外线来擦除的,并且通过高压来编程,这类ROM上面一般有一个透明的石英玻璃窗,看上去挺漂亮的,它就是用来给紫外线照射的。后来又出现了EEPROM,不用紫外线照射就可以擦除,因而可以直接在电路中编程。另外还有FLASH ROM,又可分为NOR FLASH和NAND FLASH。FLASH ROM一般有一个特点,就是写数据时,可以将1改为0,而不能将0改为1,因而写数据前需要擦除,擦除时将所有数据置1。
之所以依然叫做ROM,归纳一下,大概有几个原因:
①不能像RAM那样快速的写;
②可能需要特殊的擦写电压;
③可能需要特殊的擦写时序;
④可能需要在写之前进行擦除操作;
⑤擦写次数有限,不像RAM那样可以随意写而不损坏;
⑥掉电后数据不会丢失;
⑦有些可写的存储器只能写一次(OTP)。
科学技术真是个好东西,给我们电子设计人员也省掉了很多麻烦。现在有一类铁电存储,它们可以像RAM一样随机访问,又能像ROM一样掉电后保持数据不丢失。有时为了保存数据,会使用一片RAM外接电池的方式(例如主板上保存CMOS设置的芯片,就需要一颗电池供电,当BIOS设置错误或者密码忘记时,可以通过拔下电池来清空CMOS设置而恢复出厂设置。当然,这个电池还要给系统实时时钟芯片供电)。随着技术的发展,可以遇见将来这类用来保持数据的电池可能会被取消。
简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 是随机存取存储器,它的特点是易挥发性,即掉电失忆。ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型。