3.计算机存储系统.md 4.2 KB

🗄️ 计算机存储系统(考研复试终极版)

🧠 一、存储器层次结构

1.1 多级存储系统

寄存器 → Cache → 主存 → 辅存
↑  速度↑  容量↓  成本↑   ↓

步骤分解

  1. 寄存器:CPU内部,速度最快但容量最小
  2. Cache:SRAM实现,解决CPU与主存速度差
  3. 主存:DRAM实现,存放运行中的程序和数据
  4. 辅存:磁盘/U盘,长期存储
    ▸ 快递仓库:常用包裹放前台(Cache),不常用放仓库(辅存)

📊 性能对比: | 类型 | 速度(ns) | 容量 | 成本/GB | |----------|---------|--------|--------| | 寄存器 | 0.1-1 | <1KB | 极高 | | Cache | 1-10 | 1-8MB | 高 | | 主存 | 50-100 | 8-64GB | 中 | | 辅存 | 5-10ms | 1-10TB | 低 |

误区

  • 认为Cache越大越好(过大会增加访问延迟)

🔍 二、主存工作原理

2.1 DRAM刷新三方式

集中刷新 → 死时间集中刷新  
分散刷新 → 每周期刷新一行  
异步刷新 → 间隔固定时间刷新

步骤分解

  1. 集中刷新:2ms内集中处理,产生"死区"
    ▸ 商场闭店大扫除
  2. 分散刷新:每个读写周期后刷新一行
    ▸ 边营业边打扫
  3. 异步刷新:折中方案,间隔刷新
    ❗ 注意:刷新操作对CPU透明,不影响程序执行

📝 实例
4MB DRAM,8192行 → 异步刷新间隔=2ms/8192≈244ns


🚀 三、Cache映射方式

3.1 三种映射对比

直接映射 → 固定位置存放  
全相联 → 任意位置存放  
组相联 → 组内自由存放

步骤分解

  1. 直接映射:主存块号%Cache总块数
    ▸ 快递柜:每个包裹固定格子
  2. 全相联:主存块可存任意Cache行
    ▸ 超市寄存:随便选空柜
  3. 组相联:分组后组内全相联
    ❗ 误区:认为组数越多性能越好(实际4-8组最佳)

📊 命中率对比: | 映射方式 | 命中率 | 实现复杂度 | |---------|-------|-----------| | 直接 | 低 | 简单 | | 全相联 | 高 | 复杂 | | 组相联 | 中高 | 中等 |


🔄 四、虚拟存储器

4.1 地址转换流程

逻辑地址 → TLB查询 → 页表查询 → 物理地址
↑______命中______↓      ↑__缺页中断__↓

步骤分解

  1. TLB查找:快表优先查询
  2. 页表查询:未命中则查内存页表
  3. 缺页处理:触发中断调入页面
    ▸ 图书馆找书:先查索引卡(TLB),再查总目录(页表)

📝 实例
32位系统,页大小4KB → 页内偏移12位,页号20位

注意

  • 虚拟地址位数≠物理地址位数
  • TLB未命中时需两次访存(查页表+取数据)

📦 五、存储扩展技术

5.1 三种扩展方式

位扩展 → 增加数据位数  
字扩展 → 增加存储单元数  
字位扩展 → 同时扩展

步骤分解

  1. 位扩展:多片并联,增加字长
    ▸ 拼积木:多块拼成更宽结构
  2. 字扩展:片选信号控制多片
    ▸ 书架扩容:增加书架数量
  3. 字位扩展:行列同时扩展
    ❗ 关键:地址线/数据线连接方式不同

📊 连接方式: | 扩展类型 | 地址线 | 数据线 | 片选线 | |---------|-------|--------|--------| | 位扩展 | 并联 | 串联 | 并联 | | 字扩展 | 部分译码 | 并联 | 独立控制 |


🔧 六、Cache写策略

6.1 写回法 vs 全写法

写回法 → 修改后标记脏位,替换时写回  
全写法 → 同时写入Cache和主存

步骤分解

  1. 写回法:减少写主存次数,需维护脏位
    ▸ 草稿纸:改完先不交,最后统一整理
  2. 全写法:保证数据一致性,增加带宽压力
    ❗ 注意:通常搭配非写分配法使用

📝 应用场景

  • 写回法:多核CPU私有Cache
  • 全写法:显卡显存等需要实时同步场景

核心概念总结自
复试重点:存储器层次、Cache映射、虚拟存储、DRAM刷新