跳转至

存储系统

概述

存储系统

存储系统是计算机系统中用于存储数据和程序的部件,采用层次化结构,从高速小容量到低速大容量。

存储器层次结构

graph TB
    A[寄存器<br/>速度最快/容量最小] --> B[Cache<br/>L1/L2/L3]
    B --> C[主存储器<br/>RAM/ROM]
    C --> D[辅助存储器<br/>硬盘/SSD]
    D --> E[外部存储器<br/>光盘/磁带]

    style A fill:#E3F2FD
    style B fill:#E8F5E9
    style C fill:#FFF3E0
    style D fill:#F3E5F5
    style E fill:#FCE4EC

主存储器

主存储器(内存)

临时存储数据和指令,供CPU直接访问。

RAM(随机存取存储器)

RAM类型

可读可写的易失性存储器。

1. SRAM(静态RAM)

  • 用触发器存储信息
  • 速度快,用作Cache
  • 集成度低,成本高
  • 不需要刷新

2. DRAM(动态RAM)

DRAM

用电容存储信息,需要定期刷新。

  • 用电容存储信息
  • 速度较慢,用作主存
  • 集成度高,成本低
  • 需要定期刷新(2ms)

ROM(只读存储器)

ROM类型

只读的非易失性存储器。

  • MROM: 掩膜ROM,出厂时写入
  • PROM: 可编程ROM,一次性写入
  • EPROM: 可擦除可编程ROM,紫外线擦除
  • EEPROM: 电可擦除可编程ROM,电擦除
  • Flash: 闪存,快速电擦除

高速缓存(Cache)

Cache

位于CPU和主存之间,缓解速度不匹配问题。

局部性原理

局部性原理

程序执行呈现局部性规律。

  • 时间局部性: 最近访问的数据可能再次访问
  • 空间局部性: 访问数据的邻近数据可能被访问

Cache映射方式

1. 直接映射

直接映射

每个主存块只能映射到Cache的一个特定行。

公式: Cache行号 = 主存块号 mod Cache行数

特点:

  • 硬件简单
  • 冲突率高
  • 灵活性差

2. 全相联映射

全相联映射

主存块可以映射到Cache的任意行。

特点:

  • 灵活性高
  • 冲突率低
  • 硬件复杂

3. 组相联映射

组相联映射

主存块映射到Cache的一个特定组,组内全相联。

特点:

  • 折中方案
  • 性能较好
  • 应用最广

替换算法

Cache替换算法

Cache满时,决定替换哪一行。

  • RAND: 随机替换
  • FIFO: 先进先出
  • LRU: 最近最少使用(最常用)
  • LFU: 最不经常使用

虚拟存储器

虚拟存储器

逻辑上扩充内存容量,允许程序部分装入内存执行。

实现方式

1. 请求分页

  • 按页为单位调入
  • 页面大小固定
  • 页表管理

2. 请求分段

  • 按段为单位调入
  • 段大小可变
  • 段表管理

3. 段页式

  • 先分段,再分页
  • 结合两者优点

页面置换算法

算法 说明 特点
OPT 最佳置换 理论最优,无法实现
FIFO 先进先出 简单,可能异常
LRU 最近最少使用 性能好,开销大
Clock 时钟算法 LRU近似,开销小

存储器性能指标

主要性能指标

  • 存储容量: 存储器能存储的信息总量
  • 存取时间: 从启动到完成一次存取的时间
  • 存储周期: 连续两次存取的最小时间间隔
  • 带宽: 单位时间内传输的数据量

参考资料