单片机RAM、ROM、SRAM、DRAM、SSRAM、SDRAM、FLASH、EEPROM的区别

RAM、ROM、SRAM、DRAM、SSRAM、SDRAM、FLASH、EEPROM的区别

RAM(Random Access Memory) 随机存储器。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。 按照存储信息的不同,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。

ROM(Read-Only Memory)只读存储器,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,资料并且不会因为电源关闭而消失。

SRAM(Static RAM)不需要刷新电路即能保存它内部存储的数据。

DRAM(Dynamic RAM)每隔一段时间,要刷新充电一次,否则内部的数据即会消失。

因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,且功耗较大。所以在主板上SRAM存储器要占用一部分面积。

SRAM的速率高、性能好,它主要有如下应用:

1)CPU与主存之间的高速缓存。

2)CPU内部的L1/L2或外部的L2高速缓存。

SSRAM(Synchronous SRAM)即同步静态随机存取存储器。同步是指Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;随机是指数据不是线性依次存储,而是由指定地址进行数据读写。

对于SSRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。这一点与异步SRAM不同,异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。

SDRAM(Synchronous DRAM)即同步动态随机存取存储器。同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。

FLASH 即闪存。它是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位(注意:NOR Flash 为字节存储。),区块大小一般为256KB到20MB。

EEPROM 即电子可擦除只读存储器。EEPROM与闪存不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本输入输出程序)、PDA(个人数字助理)、数码相机中保存资料等。

转载于 https://www.cnblogs.com/ma77045728/p/7136230.html

1.ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据。

2.RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,而且不需要刷新,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。DRAM有很多种,这里说一下DDR RAM

DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势。DDR2就是

DRAM工作原理:内存用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的"动态",指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。

具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。

DRAM包括SDRAM(Synchronous Dynamic Random Access Memory)同步动态随机存储器(SDRAM需要时钟同步)和DDR SDRAM

3.ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。手机软件一般放在EEPROM中

4.FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。

5.目前Flash主要有两种NOR Flash和NAND Flash

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

NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,

一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。

flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1。

由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。

NOR的读速度比NAND稍快一些。

7.对比NAND和NOR性能

●NOR可以在片内执行程序

● NOR的读速度比NAND稍快一些。

● NAND的写入速度比NOR快很多。

● NAND的4ms擦除速度远比NOR的5s快。

● 大多数写入操作需要先进行擦除操作,NOR要求在进行擦除前先要将目标块内所有的位都写为1。

● NAND的擦除单元更小,相应的擦除电路更少。

● 接口差别:

NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。

NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。

NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。

●NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储。

●在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍

8.PSRAM,Pseudo static random access memory,指的是伪静态随机存储器。

内部的内存颗粒跟SDRAM的颗粒相似,但外部的接口跟SRAM相似,不需要SDRAM那样复杂的控制器和刷新机制,PSRAM的接口跟SRAM的接口是一样的。

  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是对ROMRAM、SRAM、DRAMFLASH的介绍: 1. ROM(只读存储器):只读存储器是一种只能读取数据而不能写入数据的存储器。它通常用于存储固件、BIOS和其他需要在计算机启动时加载的程序。ROM的数据是在制造过程中被写入的,因此它的内容是固定的。 2. RAM(随机存储器):随机存储器是一种可以读取和写入数据的存储器。它通常用于存储正在运行的程序和数据。RAM是易失性存储器,这意味着当计算机关闭时,其中的数据将被清除。 3. SRAM(静态随机存储器):静态随机存储器是一种使用触发器来存储数据的RAM。它比动态随机存储器(DRAM)更快,但也更昂贵。SRAM通常用于高速缓存和其他需要快速访问的应用程序。 4. DRAM(动态随机存储器):动态随机存储器是一种使用电容器来存储数据的RAM。它比SRAM更便宜,但速度较慢。DRAM需要定期刷新以保持数据的完整性。 5. FLASH:闪存是一种非易失性存储器,可以读取和写入数据。它通常用于存储固件、操作系统和其他需要在计算机启动时加载的程序。闪存比传统的硬盘驱动器更快,更可靠,也更耐用。 以下是对ROMRAM、SRAM、DRAMFLASH的演示: ```python # ROM # 由于ROM是只读存储器,因此我们无法在程序中演示写入操作。 # 我们可以使用Python的binascii库来读取ROM中的数据。 import binascii # 读取ROM中的数据 with open('rom.bin', 'rb') as f: data = f.read() # 将数据转换为十六进制字符串 hex_data = binascii.hexlify(data) # 输出数据 print(hex_data) # RAM # 在Python中,我们可以使用列表来模拟RAM。 # 我们可以使用索引来读取和写入RAM中的数据。 ram = [0] * 1024 # 创建一个大小为1024字节的RAM # 写入数据 ram[0] = 0x12 ram[1] = 0x34 # 读取数据 data = (ram[0] << 8) | ram[1] print(hex(data)) # SRAM # 在Python中,我们可以使用类来模拟SRAM。 # 我们可以使用类变量来存储数据。 class SRAM: data = [0] * 1024 # 创建一个大小为1024字节的SRAM @classmethod def write(cls, address, value): cls.data[address] = value @classmethod def read(cls, address): return cls.data[address] # 写入数据 SRAM.write(0, 0x12) SRAM.write(1, 0x34) # 读取数据 data = (SRAM.read(0) << 8) | SRAM.read(1) print(hex(data)) # DRAM # 在Python中,我们可以使用类来模拟DRAM。 # 我们可以使用字典来存储数据。 class DRAM: data = {} # 创建一个空的DRAM @classmethod def write(cls, address, value): cls.data[address] = value @classmethod def read(cls, address): return cls.data.get(address, 0) # 写入数据 DRAM.write(0, 0x12) DRAM.write(1, 0x34) # 读取数据 data = (DRAM.read(0) << 8) | DRAM.read(1) print(hex(data)) # FLASH # 由于FLASH是非易失性存储器,因此我们无法在程序中演示数据丢失。 # 我们可以使用Python的struct库来读取FLASH中的数据。 import struct # 读取FLASH中的数据 with open('flash.bin', 'rb') as f: data = f.read() # 将数据转换为整数 value = struct.unpack('>I', data)[0] # 输出数据 print(hex(value))) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值