ROM,FLASH和RAM的区别?

发布时间 2023-10-15 11:42:56作者: _玄

 

转载自:

ROM, FLASH和RAM的区别 - Choris的文章 - 知乎 https://zhuanlan.zhihu.com/p/38339306

存储器的种类:ROM、RAM、FLASH - NewLook的文章 - 知乎 https://zhuanlan.zhihu.com/p/640008073

 

本文非博主所写,博主结合自己的理解对原文做了删改

已标明转载作者及出处,仅供学习,侵删

 

ROM (Read Only Memory)程序存储器

ROM全称Read Only Memory,只能读出事先所存的数据的固态半导体存储器。

ROM中所存数据稳定,一旦存储数据就再也无法将之改变或者删除,非易失性(断电后所存数据也不会消失)。其结构简单,因而常用于存储各种固化程序和数据。

在单片机中用来存储程序数据及常量数据或变量数据,凡是c文件及h文件中所有代码、全局变量、局部变量、‘const’限定符定义的常量数据、startup.asm文件中的代码(类似ARM中的bootloader或者X86中的BIOS,一些低端的单片机是没有这个的)通通都存储在ROM中。

为了便于使用和大批量生产,进一步发展出了可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)。EPROM需要用紫外线长时间照射才能擦除,使用很不方便。1980s又出现了电可擦除可编程只读存储器(EEPROM),它克服了EPROM的不足,但是集成度不高、价格较贵。于是又发展出了一种新型的存储单元结构同EPROM类似的快闪存储器(FLASH MEMORY)。FLASH集成度高、功耗低、体积小,又能在线快速擦除,因而获得了快速发展。

 

FLASH 存储器

 

Flash 存储器(FLASH EEPROM)又称闪存,是EEPROM的一种。它结合了ROM和RAM的长处。具有非易失读写速度快、抗震、低功耗、体积小等特性,目前己广泛应用于嵌入式系统、航空航天、消费电子等领域。

它于EEPROM的最大区别是,FLASH按扇区(block)操作,而EEPROM按照字节操作。FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因此适合用于做程序存储器。

 

 

RAM (Random Access Memory)随机访问存储器

RAM又称随机存取存储器,存储单元的内容可按照需要随机取出或存入,且存取的速度与存储单元的位置无关,易失性(断电后数据消失)。可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。是与CPU直接交换数据的内部存储器,也叫主存(内存)。

它主要用来存储程序中用到的变量。凡是整个程序中,所用到的需要被改写的量(包括全局变量、局部变量、堆栈段等),都存储在RAM中。

 

ROM, FLASH和RAM的区别

对于RAM, ROM以及FLASH的区别,简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 是随机存取存储器,它的特点是易挥发性,即掉电失忆。ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型。

在应用中,常规上ROM是用来存储固化程序的,RAM是用来存放数据的。由于FLASH ROM比普通的ROM读写速度快,擦写方便,一般用来存储用户程序和需要永久保存的数据。譬如说,现在家用的电子式电度表,它的内核是一款单片机,该单片机的程序就是存放在ROM里的。电度表在工作过程中,是要运算数据的,要采集电压和电流,并根据电压和电流计算出电度来。电压和电流是一个实时的数据,用户不关心,它只是用来计算电度用,计算完后该次采集的数据就用完了,然后再采集下一次,因此这些值就没必要永久存储,就把它放在RAM里边。然而计算完的电度,是需要永久保存的,单片机会定时或者在停电的瞬间将电度数存入到FLASH里。

仅供学习,非商业用途