Skip to content

存储器

对许多应用来说,储存系统对整个系统性能的影响比对数据流水线的影响更大。存储系统是复杂的,需要考虑各种存储技术(如非易失的和易失的、高速和慢速、大容量与小容量等),并且需要设计层次结构。

存储器

易失性存储器

断电后存储内容会消失的存储器,分为 DRAMSRAMDRAM 容量大,但读取速度慢,并且需要定时刷新;SRAM 速度快,但成本较高。大多数嵌入式系统需要包括一个 SRAM 保证高可用和高速的访问,但也需要 DRAM 来提供足够大的容量。

非易失性存储器

不需要持续供电来保留存储在计算机设备中的数据和程序代码,包括 ROM(出厂时即固定)、EEPROM(电可擦除可编程 ROM,可用电擦除;而 EPROM 只可以用紫外线擦除)、闪存和磁盘储存器。

固件一般存储于设备中的电可擦除只读存储器 EEPROMFLASH 芯片中,可由用户通过特定的刷新程序进行升级。代码可以从 ROM 芯片或 NOR 中直接执行。

闪存

按块擦除,有比较快的读取时间,但比 SRAMDRAM 慢,且写入时间大大超过读取时间。类型有 NORNAND 之分。NOR 的读取速度快,并且是字节或字可随机寻址的,并且还支持代码就地执行;而 NAND 只能按页来读取,广泛应用于民用的 U 盘设备。

Cache 和暂存存储器 SPM

Cache 是一块在寄存器和内存之间的一层存储器。Cache 潜在地提高了存储系统的能效,其架构对应用程序的执行时间具有很大影响。它的设计基础是时间局部性和空间局部性。此外,还可以使用多级 Cache 来进一步平衡效率和成本。

暂存存储器是一款功耗低、速度快的存储器,它和主存统一编址,每当某个简单的地址解码器给出一个 SPM 地址范围内的地址时,SPM 就自动被访问。SPM 通常和处理器集成在一个芯片上。

存储器访问时间难以预测

由于虚拟存储器与地址转换(虚拟地址和物理地址之间转换)的技术,导致很难预测或理解访问存储器的时间需要多久,因而嵌入式系统设计人员通常比一般程序员需要更深入地理解存储器系统。

存储器的层次结构

  • 处理器寄存器

  • 缓冲存储器:高速缓存 Cache、地址转换高速缓存(TLB,也称快表)以及暂存存储器(SPM)。

  • 工作存储器(或主存储器、主存):实现了处理器存储地址所涵盖的存储器。通常,其容量在 MBGB 之间,并且是易失的。

  • flash、磁盘等非易失性存储,也可基于互联网的存储器解决方案(如云)

以上层次从上到下,速度逐步递减、容量逐步递增、单位价格逐步递增。