ROM与RAM
今天小姐姐来问我关于ROM、RAM和Flash的区别,我给她大致的说了一下名称和作用。可人家说她知道这玩意的名字,希望我能够接地气的解释一下什么是ROM、RAM、FLASH……
这就把我难住了 ≧ ﹏ ≦。(当时也没好好学,つ﹏⊂,错失了一个,撩小姐姐的机会),现在赶紧写温习一下,顺手篇博客记录一下。
ROM:
看了看维基百科和百度百科,两个百科对ROM的定义基本一致大概可以概括为这几点:
- ROM是Read-Only Memory的缩写,中文名为只读存储器。
- 只能读出事先所存数据的固态半导体存储器。
- 一旦储存资料就无法再将之改变或删除。
- 内容不会因为电源关闭而消失。
- 用在不需经常变更资料的电子或电脑系统中。
ROM有6个种类:
ROM:
- 只读存储器
- 非易失性存储器
- 制造时处于一种特殊发mask下进行烧入,写入的内容无法修改,电脑与用户只能读取保存在这里的指令,不能进行数据存入。
- 常用于存储特定功能的程序或系统程序,例如启动盘。
ROM的用于存储电脑引导指令时,ROM会提供一系列的指令给CPU进行测试,在最初的测试中,检查RAM位置(location)以确认其存储数据的能力。(顺便提一句键盘、计时器回路以及CPU本身都被纳入CPU测试)。说白了ROM就是存储器,带窗户封闭空间。你想塞东西只能在构建的时候装进去,想读呢?就从窗户往里够。
哎?不对啊,我手机存的存储器明明能写啊?为什么就只读了呢?手机也好电脑也好使用的都是不是简单的ROM,用于电脑引导的BIOS存储在EPROM或者EEPROM上、手机的引导开机的固化模块在ROM上,而用于存储的闪存Flash memory是ROM的一种,至于机械硬盘这种磁盘类的存储器不属于ROM范畴。电脑和手机的存储设备,更应该叫做外部存储,可以用来存储手机系统文件、图片、电影等等。
那什么是片上ROM呢?片上ROM就是单片机用来存储单片机程序和相关参数的地方。单片机程序在ROM里以文件或者一片二进制格式数据的方式存储
PROM:
-
- 可编程程序只读存储器(Programmable ROM,PROM)
- 烧断熔丝进行编程
- 仅能写录一次
PROM的典型产品是“双极性熔丝结构”,如果我们想改写某些单元,则可以给这些单元通以足够大的电流,并维持一定的时间,原 先的熔丝即可熔断,这样就达到了改写某些位的效果。另外一类经典的PROM为使用“肖特基二极管”的PROM,出厂时,其中的二极管处于反向截止状态,还 是用大电流的方法将反相电压加在“肖特基二极管”,造成其永久性击穿即可。
EPROM:
-
- 可抹除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)
- 高电压将数据编程写入
- 紫外线照射清除数据
- 可重复使用
OTPROM:
-
- 一次编程只读存储器(One Time Programmable Read Only Memory,OTPROM)
- 封装上不设置透明窗
- 单次使用,工艺与EPROM相同
EEPROM:
-
- 电可擦除可编程只读存储器 (Electrically-Erasable Programmable ROM)
- 可以通过电子方式多次复写的半导体存储设备
- 可以用特定电压进行擦除
- 工作模式(不做详细介绍):读取模式、写入模式、擦除模式、校验模式
EEPROM性能的优秀,以及在在线操作的便利,它被广泛用于需要经常擦除的BIOS芯片以及闪存芯片,并逐步替代部分有断电保留需要的RAM芯片,甚至取代部分的硬盘功能(见固态硬盘)。它与高速RAM成为当前(21世纪00年代)最常用且发展最快的两种存储技术。
闪存:
-
- Flash memory
- 每一个记忆胞都具有一个“控制闸”与“浮动闸”
- 利用高电场改变浮动闸的临限电压即可进行编程动作
- 类型:NAND型与NOR型
NAND常用于固态硬盘、U盘、存储卡等用途,NOR则用于BIOS ROM芯片等用途。
与NAND ROM相比, NOR ROM集成度低,成本高,但NOR ROM可按字节擦写的特性使得其可以直接运行程序。
RAM:
还是去翻了一下两大百科,总结了一下大概有以下几个特性:
- Random Access Memory,缩写:RAM;也叫主存是与CPU直接交换数据的内部存储器
- 随机存储:存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关
- 易失性:电源关闭时RAM不能保留数据
- 访问速度高:现代的随机存取存储器几乎是所有访问设备中写入和读取速度最快的
- 需要刷新:电容器充满电后代表1(二进制),未充电的代表0。由于电容器或多或少有漏电的情形,若不作特别处理,电荷会渐渐随时间流失而使数据发生错误。刷新是指重新为电容器充电,弥补流失了的电荷。需要刷新正好解释了随机存取存储器的易失性。
- 对静电敏感:静电会干扰存储器内电容器的电荷,引致数据流失,甚至烧坏电路。故此触碰随机存取存储器前,应先用手触摸金属接地
- RAM 存储器可以进一步分为静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)两大类。SRAM具有快速访问的优点,但生产成本较为昂贵,一个典型的应用是缓存。而DRAM由于具有较低的单位容量价格,所以被大量的采用作为系统的主存。(主存和缓存在这里不说,设置了维基的链接自行转跳)
RAM主要用来存储程序中用到的变量。凡是整个程序中,所用到的需要被改写的量(包括全局变量、局部变量、堆栈段等),都存储在RAM中。我们的所有运行的东西都会被拷贝到RAM中,共给CPU调度。
重点来了!!!
ROM和RAM有什么区别呢?简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 是随机存取存储器,它的特点是易挥发性,即掉电失忆。ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型。
在应用中,常规上ROM是用来存储固化程序的,RAM是用来存放数据的。由于FLASH ROM比普通的ROM读写速度快,擦写方便,一般用来存储用户程序和需要永久保存的数据。
举🌰,现在家用的电子式电度表,它的内核是一款单片机,该单片机的程序就是存放在ROM里的。电度表在工作过程中,是要运算数据的,要采集电压和电流,并根据电压和电流计算出电度来。电压和电流时一个适时的数据,用户不关心,它只是用来计算电度用,计算完后该次采集的数据就用完了,然后再采集下一次,因此这些值就没必要永久存储,就把它放在RAM里边。然而计算完的电度,是需要永久保存的,单片机会定时或者在停电的瞬间将电度数存入到FLASH
本文资料大部分来自于两大百科
学习不易,诸君共勉!