ROM、RAM(DRAM、SRAM)和FLASH(NOR FLASH、NAND FLASH)总结——重点概括版

RAM ——随机存取存储器

        “随机”表示存储器中的数据被读取或写入时,所需的时间与数据所在的位置无关。
        RAM掉电数据丢失,分为SRAM(静态随机存储存取器)和DRAM(动态随机存储存取器)。
        SRAM存储数据的时间相对较长,存取速度快,但是成本较高。
        DRAM需要不断刷新并给电容充电,所以存储数据时间较短,速度相对SRAM慢,但是成本低,功耗低。
SDRAM(同步动态随机存取器)是DRAM的一种,利用一个单一的系统时钟同步所有的地址数据和控制信号。
        DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory,双倍数据率同步动态随机存取存储器),为具有双倍数据传输率的SDRAM,其数据传输速度为系统时钟频率的两倍,由于速度增加,其传输性能优于传统的SDRAM。

SRAM和DRAM特性比较
特性SRAMDRAM
存取速度较快较慢
集成度较低较高
生产成本较高较低
是否需要刷新

ROM——只读存储器
        掉电数据不会丢失,分为PROM(可编程只读存取器)和EPROM(可擦除可编程只读存取器),PROM是早期产品,现已淘汰,而EPROM通过电子擦出,价格很高,写入很慢。

FLASH——闪存
        结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据,同时可以快速读取数据。
        FLASH分为NOR FLASHNAND FLASH
        NOR FLASH的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码;而NAND FLSASH采用块存取,通常一次性读取512字节。采用这种技术的Flash比较廉价,用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还装上了一块小的NOR Flash来运行启动代码。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值