# 🗄️ 计算机存储系统(考研复试终极版) ## 🧠 一、存储器层次结构 ### 1.1 多级存储系统 ```ascii 寄存器 → 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刷新