1,非易失性存储器。
断电时,存储器的内容不会丢失,并且 加电时再次可用。这对于处理器启动或重启时使用的引导代码是必需的。
o ROM:只读存储器;此存储器的内容在制造过程中定义 设备。一旦发生错误,芯片将无法使用。
o PROM:可编程 ROM;其内容可以用特定硬件进行编程 称为内存编程器。内容只能编程一次。
o EPROM:可擦除 PROM;像 PROM 一样,可以通过特定的编程器进行编程 硬件,但在设备顶部安装了一个石英窗,也可以通过紫外线擦除内存,尽管需要将设备从其电路板上拆下才能进行擦除和重新编程(这需要 12.5、21 或 25 V, 具体取决于具体设备)。 一种特定的变化是没有擦除内存功能的塑料外壳,称为 OTP(一次性可编程)。
o EEPROM (或E2PROM):电可擦除 PROM;作为 EPROM 的进步,现在可以直接在电路板上对内存进行编程,并通过逐字节电擦除重写其 内容。密度低且价格昂贵,但目前仍用于某些微控制器中有限大小的内存。
o闪存:基于 EEPROM 的 NAND 型闪存是嵌入式系统领域的一大进步,可以按块擦除(NOR 型闪存以字级擦除),并使用适当的协议和标准电 压进行现场重写。它通常以几 GB 的大小提供,通常用于 USB 记忆棒和相机的 SD 卡,并且几乎所有微控制器都可以使用它。 o FRAM:铁电随机存取存储器;几年前宣布的一项很有前景的技术,有望取代 SRAM 和闪存,但来自后者的竞争压力阻碍了 FRAM 的发展,目前 还不能以低成本和高密度提供,虽然在某些微控制器上可以很容易地修改非易失性存储器。
o MRAM:磁阻 RAM;与 FRAM 一样,这是一项很有前途的技术,但迄今为止,它在蓬勃发展的闪存市场中败下阵来,并未得到广泛使用/普及。
o PRAM:相变 RAM;利用 CD/DVD 类介质上的电阻变化, PRAM 有望提供比 FRAM 或 MRAM 更大的容量,并且已经适用于一些微控制器。
o ReRAM:电阻式 RAM;与 PRAM 类似,利用电阻变化,这里采用电介质。
o FeFET:铁电场效应晶体管存储器;基于永久电场极化的高密度快速非挥发性存储器的新希望。其发展值得关注。
2,易失性存储器。
以传统的随机存取存储器(RAM)为代表(但请注意 非易失性存储器形式现在也提供随机存取(NVRAM),如上所述)。断电时,易失性存储器的内容会丢失。它可以是静态的,也可以是动态 的。如果是后者,则需要定期刷新存储器内容。
o SRAM:静态 RAM;这是易失性 RAM 的基本形式,最多可达几兆字节。需要四个晶体管来存储一些信息,另外还需要两个晶体管来在读取或写入 期间访问内容。
o SSRAM:同步 SRAM,其访问通过时钟同步。
o DRAM:动态 RAM;DRAM 背后的主要思想是利用基于单个晶体管的存储元件来存储和访问一些信息。性能提升巨大(与 SRAM 相比大约提 升了四倍),但每隔几毫秒就需要刷新整个内存!访问分为两个步骤:选择一行位,然后选择所选行中的列。数据以矩阵格式排列。
o SDRAM:同步 DRAM;使用与 DRAM 相同的原理,但具有时钟控制的同步访问。
o DDR SDRAM:双倍数据速率 SDRAM(DDR[1]、DDR2、DDR3、DDR4、DDR5);通过在时钟信号的两个(上升沿和下 降沿)上访问内存来提高 SDRAM 性能。对于相同的时钟频率,数据传输速率加倍。
o GDDR(SDRAM):图形 DDR;与 DDR 非常相似,但具有特殊功能,可改善本地访问和 GPU 的性能。
o LPDDR:低功耗 DDR;DDR(SDRAM)的一种版本,功耗明显更低 消费,针对移动电脑(平板电脑和智能手机)。
o QDR(SDRAM):四倍数据速率;使用两个时钟和独立的读写总线来实现比 DDR 更快的传输速率,旨在实现高速 通信和网络。
根据数据访问是同步还是异步,易失性存储器还可以进一步分类:
n异步:不使用时钟。RAM 系列中有一些设备没有时钟;它们进行异步访问。
n同步:内存访问基于时钟;较新的 RAM 解决方案使用时钟来同步数据传输。 对传输地址和数据的数据访问可以并行或串行进行:
n并行数据访问:在并行总线中,所有地址和数据线都可用,这使处理器能够以内存和处理器之间非常快的传输速率直接执 行代码和访问数据;传输整个(多位)字所需的时间不到十纳秒。 请注意,有些设备对这些线路进行多路复用。
n串行数据访问:当必须限制用于传输地址和数据的线路数量时, 串行访问内存(一次一位)是一种明智的选择。SD 卡和 USB 记忆棒上使用的内存采用这种方法。信息传输通过串行总线 以 SPI(串行外设接口)或 QSPI(队列 SPI)控制器的形式完成。替代协议包括 USB(快速)和 I2C(用于多个外设 的低速协议)。
寻址也可以通过两种不同方式进行:
n并行寻址直接访问:要访问内存位置,完整地址将并行传输(以覆盖地址的许多位)。有时地址分两步提供,就像 DRAM 一样(见上文):首先指定行地址,然后指定列地址。
n流式访问:先传输内存中第一个访问的地址,之后再传输下一个地址 自动递增,并且数据被传输到/从下一个连续地址,依此类推。