详解ROM和RAM

Posted 行稳方能走远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解ROM和RAM相关的知识,希望对你有一定的参考价值。

参考:详解ROM和RAM
作者:嵌入式实验楼
网址:https://mp.weixin.qq.com/s/FhUxMLeAxkhWe5m-gV_hMw

内存是计算系统最重要的元素,因为没有它,计算机就无法执行简单的任务。计算机内存有两种基本类型 - 主内存(RAM和 ROM)和辅助内存(硬盘驱动器、CD 等)随机存取存储器(RAM) 是主要的易失性存储器,只读存储器 (ROM) 是主要的非易失性存储器

我相信,很多朋友都会把手机的运行内存、数据存储等混为一谈。

在智能手机还没普及时,手机中有个可移动的存储设备,它的名字就是‘TF’卡,当时也叫‘内存卡’。TF卡是用手机存储数据的,并不是手机的运行内存,这也导致了现在很多人都以为手机内存就是手机内部储存空间,特别是很多无良商家以此来混淆视听,更有甚者使用bit代替Byte于是4GB+512MB的存储组合就变成了32Gbit+4Gbit,无良厂商在低端机上宣传成“32G+4G超大内存”。

接下来,我们来详细了解ROM和RAM。

先说总结:

1、只读存储器:ROM

ROM:只读存储器(ReadOnly Memory),非易失性。它是一种只能读出事先所存的数据的固态半导体存储器。一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定,断电后所存数据也不会改变。计算机中的ROM主要是用来存储一些系统信息,或者启动程序Bios程序,这些都是非常重要的,只可以读一般不能修改,断电也不会消失。

计算机存储器在其上数据已被预先记录。一旦将数据写入ROM 芯片,就无法将其删除,只能读取。与主存储器(RAM)不同,即使计算机关闭,ROM也会保留其内容。ROM被称为非易失性,现在有很多非易失性存储器。由于历史原因,虽然ROM中有的类型可以读也可以写,但是整体上都被称为只读存储器(Read Only Memory)。ROM是以它们能够被重新编程(写)的次数和对它们进行重编程所用的机制来区分的。

当然啦,现在ROM也不仅仅是只读的了,只是时代在发展,ROM还叫ROM罢了。

至于为啥叫ROM,以单片机为例,我们把事先准备好的固件烧录到Flash中,如果不在重新烧写固件,然后就不能修改了。不管用户怎么重新启动,怎么运用,都不会影响到固件。也就是说,固件是不可被写入的,因此叫做“只读储存器”。对于手机来讲也是这样子,内部储存中有一部分空间用于存放系统软件,不管你怎么运用也不会把系统软件用坏了。这一部分也可以理解为“只读储存器”。

实际运用的时候会把内置储存和Flash分成两个部分,一块可以被写入,一块不能被写入。可以被写入的地方用来储存通讯录、照片、音乐、APP之类的,不可被写入的地方用来存放操作系统的软件。

手机的ROM,从最早的NOR Flash发展到NAND Flash,现在的智能手机几乎全都是eMMC了(和TF卡是一个东西)。单片机的Flash还是维持在小容量的NOR Flash。

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

因此,ROM进一步分为4种类型:PROM、EPROM、EEPROM和Flash。

PROM(Programmable ROM):可编程ROM,只能被编程一次。

EPROM(Erasable Programmable ROM,EPROM):可擦写可编程ROM,擦写可达1000次。

EEPROM(ElectricallyErasable Programmable ROM,电子可擦除EPROM):指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。

闪存(flashmemmory)基于EEPROM,也就是我们常说的Flash。它已经成为一种重要的存储技术。固态硬盘(SSD)、U盘等就是一种基于闪存的存储器。它结合了ROM和RAM的长处,不仅具备电子可擦出可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来 Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。它于EEPROM的最大区别是,FLASH按扇区(block)操作,而EEPROM按照字节操作。FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因此适合用于做程序存储器。

目前Flash主要有两种NOR Flash和NADNFlash。

NOR Flash:NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。

NADN Falsh: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。

2、随机访问存储器:RAM

RAM:随机访问存储器(Random Access Memory),易失性。它是与CPU直接交换数据的内部存储器,它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介,凡是整个程序运行过程中,所用到的需要被改写的量(包括全局变量、局部变量、堆栈段等),都存储在RAM中。

当电源关闭时RAM不能保留数据。如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)。

RAM的随机储存器的“随机”是什么意思呢?现在的ROM,也能够“随机储存”,但是计算机刚发明的时候,是用纸带、磁带来当作ROM运用的,纸带和磁带绕成一卷,只能顺序读写,不是随机读写,不能想读哪里读哪里。因此才有了RAM的“随机储存”一说。

随机访问存储器分为两类:静态的和动态的。静态的RAM(SRAM)比动态RAM(DRAM)更快,但也贵很多。SRAM用来作为高速缓存存储器,既可以在CPU芯片上,也可以在片下。DRAM用来作为图形系统的帧缓冲区。

SRAM:SRAM存储器单元具有双稳态特性,只要有电,它就会永远的保持它的值(有点类似ROM易失性)。即使有干扰来扰乱电压,当干扰消除时,电路就会恢复到稳定值。它是为了增加内存的存取效能、提高CPU处理数据的效率而产生的。由于RAM的速度赶不上CPU的速度,为了解决这一冲突,利用Cache作为介质,先将有关程序的内容放入Cache中,CPU可以直接从Cache中读取数据,从而达到提高CPU的工作速度的目的。处理器的内部都包括高速缓冲存储器,一些主板也带有高速缓冲存储器。

SDRAM:即Synchronous DRAM(同步动态随机存储器),曾经是PC电脑上最为广泛应用的一种内存类型,即便在今天SDRAM仍旧还在市场占有一席之地。既然是“同步动态随机存储器”,那就代表着它的工作速度是与系统总线速度同步的。SDRAM内存又分为PC66、PC100、PC133等不同规格,而规格后面的数字就代表着该内存最大所能正常工作系统总线速度,比如PC100,那就说明此内存可以在系统总线为100MHz的电脑中同步工作。与系统总线速度同步,也就是与系统时钟同步,这样就避免了不必要的等待周期,减少数据存储时间。同步还使存储控制器知道在哪一个时钟脉冲期由数据请求使用,因此数据可在脉冲上升期便开始传输。SDRAM采用3.3伏工作电压,168Pin的DIMM接口,带宽为64位。SDRAM不仅应用在内存上,在显存上也较为常见。

DDR SDRAM:双倍数据速率同步 DRAM(Double Data-RateSynchronous DRAM)。也就是我们常说的DDR内存。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低成本。SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;而DDR内存则是一个时钟周期内传输两次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。与SDRAM相比:DDR运用了更先进的同步电路,使指定地址、数据的输送和输出主要步骤既独立执行,又保持与CPU完全同步;DDR使用了DLL(Delay LockedLoop,延时锁定回路提供一个数据滤波信号)技术,当数据有效时,存储控制器可使用这个数据滤波信号来精确定位数据,每16次输出一次,并重新同步来自不同存储器模块的数据。DDL本质上不需要提高时钟频率就能加倍提高SDRAM的速度,它允许在时钟脉冲的上升沿和下降沿读出数据,因而其速度是标准SDRAM的两倍。

从外形体积上DDR与SDRAM相比差别并不大,他们具有同样的尺寸和同样的针脚距离。但DDR为184针脚,比SDRAM多出了16个针脚,主要包含了新的控制、时钟、电源和接地等信号。DDR内存采用的是支持2.5V电压的SSTL2标准,而不是SDRAM使用的3.3V电压的LVTTL标准。

RAM 断电时将丢失其存储内容,故主要用于存储短时间使用的程序。现在手机中的RAM一般是由LPDDR担当,尤其是速度快功耗低的LPDDR4X在市面上的旗舰手机中占比较大。

RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会自动消失,可以长时间断电保存。在应用中,常规上ROM是用来存储固化程序的,RAM是用来存放数据的。由于FLASH ROM比普通的ROM读写速度快,擦写方便,一般用来存储用户程序和需要永久保存的数据。

以上是关于详解ROM和RAM的主要内容,如果未能解决你的问题,请参考以下文章

《嵌入式 - 嵌入式大杂烩》详解ROM和RAM

ROMRAM存储器原理详解以及DRAMSRAMSDRAM FLASH存储器的介绍

ROMRAM存储器原理详解以及DRAMSRAMSDRAM FLASH存储器的介绍

SDRAMDRAM及DDR FLASH ROM概念详解

[转] Linux文件系统详解

深入理解STM32内存管理