第三章 存储系统(BOK)

一、存储器的概述

第三章 存储系统(BOK)

1.1 存储器的分类

1.1.1按存储方式分类

第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 定义:可按任意顺序访问存储单元,存取时间与存储位置无关
  • 特点:通过地址直接定位,类似图书馆按编号找书
  • 效率:无论存储容量大小,访问速度恒定
  • 实例:RAM和ROM是最常见类型(后续会详细学习)
  • 类比说明:如同用图书编号直接定位书架位置,不受藏书量影响
  • 核心机制:每个存储单元有唯一地址,类似每本书有确定位置
第三章 存储系统(BOK)
  • 工作方式:必须按物理顺序依次访问,不能跳过中间内容
  • 时间特性:存取时间取决于信息存放位置
  • 编址单位:以记录块为单位进行编址
  • 典型实例:磁带存储器
  • 生活类比:如同磁带播放音乐时,必须顺序播放无法直接切歌
  • 关键区别:与随机存取不同,必须遍历前置内容才能访问目标信息
第三章 存储系统(BOK)
  • 混合特性:兼具随机访问和顺序访问特点
  • 访问流程:先随机定位区域,再在区域内顺序查找
  • 应用实例:磁盘存储器
  • 现代类比:音乐软件可随机选歌,但查找歌词需顺序播放
  • 技术实现:类似磁盘先定位扇区,再顺序读取扇区内数据
第三章 存储系统(BOK)
  • 检索方式:按内容而非地址进行检索
  • 对比特点:不同于前三种基于地址的访问方式
  • 典型应用:快表(TLB,虚拟存储器中使用)
  • 互联网类比:如同用关键词搜索而非直接输入网址
  • 实现原理:通过内容特征匹配定位存储位置
第三章 存储系统(BOK)

1.1.2 按信息的可更改性分类

第三章 存储系统(BOK)

1.1.3 按断电后信息的可保存性分类

第三章 存储系统(BOK)
  • 非易失性存储器:
    • 特性:断电后信息不丢失
    • 实例:ROM、磁表面存储器、光存储器
  • 易失性存储器:
    • 特性:断电后信息立即丢失
    • 实例:RAM、高速缓冲寄存器Cache

1.1.4 按功能分类

第三章 存储系统(BOK)
  • 高速缓冲存储器(Cache):
    • 作用:存储主存频繁访问的数据
  • 主存(内存):
    • 核心地位:程序运行必需驻留的存储区域
  • 辅存(外存):
    • 用途:存储不常用数据,作为主存的后备

1.2 主存储器的组成和基本操作

第三章 存储系统(BOK)
  • 核心部件:存储矩阵是主存的核心部件,由多个存储单元构成
  • 存储单元特性:
    • 每个存储单元对应唯一地址(如00000000H~11111111H)
    • 存储单元内容为二进制数据或程序指令
    • 按字节编址时,每个单元存储8位二进制数据
第三章 存储系统(BOK)

综上:00000000H 是 8 位十六进制数,因 1 位十六进制对应 4 位二进制,故总长度为 8*4 = 32位,且符合 32 位系统的表示约定。

第三章 存储系统(BOK)
  • 存储字长:一个存储单元中二进制位的位数(如8位)
  • 存储字:存储单元中二进制位组成的串
  • 存储元件:单个二进制位的存储单位
  • 编址方式:
    • 按字节编址:1个地址对应8位(1字节)
    • 按字编址:1个地址对应1个机器字长
第三章 存储系统(BOK)
  • 地址位数与容量:
    • n位地址可表示2 个存储单元
    • 32位地址的寻址范围:0~232−1
    • 地址从0开始编号,故最大地址为232−1
  • 重要结论:主存地址位数直接决定可寻址的存储单元数量

读操作

第三章 存储系统(BOK)

读操作

  • 步骤:
    • CPU将访问地址送入MAR(地址寄存器)
    • 地址通过地址线传至主存地址寄存器
    • 地址译码器译码选中对应存储单元
    • 读写控制电路接收控制信号
    • 数据通过数据线传至MDR(数据寄存器)
  • 关键部件:
    • MAR:存储地址(Memory Address Register)
    • MDR:存储数据(Memory Data Register)
    • 地址译码器:将地址转换为存储单元选择信号
第三章 存储系统(BOK)

写操作

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

总结

第三章 存储系统(BOK)
  • 寄存器与总线关系:
    • MDR宽度 = 数据线宽度
    • MAR宽度 = 地址线宽度
  • 字长概念:
    • 机器字长:CPU一次处理的二进制位数(如64位)
    • 存储字长:一个存储单元的二进制位数
  • 编址方式影响:
    • 按字节编址:存储字长=8位
    • 按字编址:存储字长=机器字长
  • 实际应用注意:
    • 机器字长通常等于数据线宽度(但非绝对)
    • 题目中数据线宽度可能设为存储字长以简化计算

突发传送技术

  • 优化原理:只需发送首地址即可连续读取多个单元
  • 应用场景:当机器字长大于存储字长时(如64位机按字节编址)
  • 效率提升:避免多次发送地址的重复操作

1.3 存储周期

第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 定义:存储器进行一次读或写操作所需的全部时间,即两次连续读写操作之间的最短时间间隔。
  • 组成:
    • 有效操作时间:实际用于读/写操作的时间段
    • 稳定恢复时间:由于芯片物理特性需要的稳定恢复时间
  • 关键特性:
    • 存储周期 > 实际读写操作时间
    • 别名:存取周期(两者概念相同)
    • 示例:若读操作在t1​结束,写操作在t2​开始,则t2−t1​即为存储周期

1.4 存储器的层次化结构

第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 层级划分(自上而下):
    • 寄存器
    • 高速缓存(Cache)
    • 主存储器(RAM和ROM)
    • 辅助存储器(硬盘)
    • 海量后备存储器(磁带库、光盘库)
  • 性能特征:
    • 存取时间:随层级下降而增加(寄存器最快,海量存储器最慢)
    • 存储容量:随层级下降而增大(寄存器最小,海量存储器最大)
    • 成本关系:存取时间越短,单位存储成本越高
  • 数据传送机制:
    • 复制传送:数据在相邻层级间以副本形式传递,保留原始数据
    • 定长块传输:不同层级间传输的数据块大小不同
    • 映射关系:需要建立数据块的地址映射关系(后续课程详解)

1.5 随机存取存储器

第三章 存储系统(BOK)

基本概念:随机存取存储器(RAM)可分为静态(SRAM)和动态(DRAM)两类,均属于随机存取存储器,但SRAM和DRAM在特性和应用上有显著差异。

1.5.1 SRAM

  • 核心特性:
    • 集成度:SRAM 集成度较低,单位面积容纳的存储单元较少
    • 易失性:属于易失性存储器,断电后信息立即丢失
      (SRAM 依赖持续供电维持数据,断电后触发器状态消失)
    • 读操作影响:不会因读操作改变存储状态,无需读后再生
      (SRAM 的触发器结构在读操作后保持稳定,无需像 DRAM 那样刷新)
    • 应用场景适合高速小容量存储器,如高速缓存(Cache)
      (因其高速特性(纳秒级延迟),常用于 CPU 缓存)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 存储矩阵:
    • 由多个位平面(bit plane)组成,每个平面存储1位
    • 示例中采用8个64×64位平面,构成按字节编址的存储单元
    • 通过x(行)和y(列)坐标定位,相同行列的位组成存储字
第三章 存储系统(BOK)
  • 地址译码:
    • 6根地址线可表示64种状态(26=64)
    • 译码器将6位地址转换为64根选择线
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 辅助电路:
    • 驱动器:提供足够电流确保信号准确传输
    • I/O电路:控制被选中单元的读写操作
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

1.5.2 DRAM

第三章 存储系统(BOK)
  • 核心特性:
    • 集成度:集成度高,单位面积容纳元件多
    • 易失性:属于易失存储器,需定期刷新保持信息
    • 读操作影响:读操作会破坏存储状态,必须读后刷新
    • 应用场景:适合慢速大容量存储器,如主存
第三章 存储系统(BOK)

地址复用技术

第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 地址复用技术:
    • 行地址和列地址共用同一组地址线
    • 分时传送:先传行地址,再传列地址
    • 地址线数量减半(示例中从20根减至10根)
  • 控制信号:
    • 行通选信号:低电平时地址线传送行地址
    • 列通选信号:低电平时地址线传送列地址
  • 刷新计数器:
    • 位数与复用后地址线数量相同
    • 自动生成刷新行地址,无需外部提供
第三章 存储系统(BOK)

DRAM的刷新

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 周期刷新
    • 刷新周期定义:对某一行进行相邻两次刷新的时间间隔
    • 刷新方式:
      • 集中刷新:
        • 刷新间隔内前段正常读写,后段集中逐行刷新
        • 刷新期间停止所有读写操作
      • 分散刷新:
        • 每个存储周期分为两部分:前段读写,后段刷新一行
        • 存储周期变为原来的两倍
      • 异步刷新:
        • 将刷新周期均匀分配给所有行
        • 相邻两行刷新间隔t=刷新周期行数t=\frac{刷新周期}{行数}t=行数刷新周期​
        • 在必须刷新的时间内完成所有行刷新

1.5.3 ROM

第三章 存储系统(BOK)

二、多模块存储器

第三章 存储系统(BOK)

2.1 连续编址

第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 基本结构:由四个完全相同的存储体(M0​-M3)组成,每个存储体具有独立的地址寄存器(MAR)、数据寄存器(MDR)、地址译码器和读写电路。
  • 编制特点:按存储体顺序依次编制,先对M0​从0开始编制完256个单元后,才转向M1从256开始编制。
  • 地址组成:主存地址由体号和体内地址两部分组成,类比快递地址的”城市+街道”分级结构。
  • 体号作用:高位字段(如32位地址中的高几位)用于选择具体存储体,00对应M0​,01对应M1等。
  • 体内地址:低位字段称为偏移量,用于定位选定存储体内的具体单元,如M0​的0-255单元。
第三章 存储系统(BOK)

体内地址选择单元

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 初始状态:地址00000000时,体号00选择M0,偏移量0选择第0单元。
  • 地址递增:
    • 加1→00000001:体号不变,偏移量1选择M0的第1单元
    • 加至11111111(255):选择M0​的最后一个单元
    • 再加1→100000000:体号变为01,切换至M1​的第0单元
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 访问顺序:必须完整访问一个存储体后才能切换至下一存储体,由地址的二进制加法特性决定(低位先变化)。
  • 并行限制:无法实现多存储体并行访问,吞吐率无法提升(DMA特殊情况需结合第七章理解)。
  • 关键结论:连续编址方式下,存储模块组无法发挥并行优势,仅当采用交叉编址时才可能实现并行访问。

2.2 交叉编址 – 轮流启动

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 编址特点:采用轮流跨模块编址方式,从第一个存储体(M0​)的第0单元开始,依次为M1、M2​、M3的第0单元编址1、2、3,再循环回M0M_0M0​的第1单元编址4。
  • 地址构成:
    • 体号:低2位(因有4个存储体)
    • 体内地址:高8位(每个模块256个单元)
    • 示例:地址”00011011″中,低2位”11″表示体号3,高8位”000110″表示体内地址6。
第三章 存储系统(BOK)

轮流启动适用条件:当单个存储模块的存储字长(如8位)等于系统总线数据线数(如8根)时采用。

第三章 存储系统(BOK)

轮流启动过程(重点)

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

全部访问之后,每隔T/4,就读写一个数据

第三章 存储系统(BOK)

误区

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

案例,这两句话都是正确的,前提:轮流启动方式一下

第三章 存储系统(BOK)

总结

第三章 存储系统(BOK)

2.3 交叉编址 – 同时启动

第三章 存储系统(BOK)

适用条件:当所有模块并行读写的总位数(如4模块×8位=32位)等于总线数据线数(如32根)时采用。

第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 工作特点:
    • 所有模块同时启动访问
    • 经过1个T周期后同时输出所有数据
  • 类比说明:逻辑上类似于位扩展,将多个模块视为一个整体。

2.4 交叉编制方式对比

第三章 存储系统(BOK)
  • 总线宽度:
    • 轮流启动:等于单个模块存储字长
    • 同时启动:等于模块数×单个存储字长
  • 存储周期:
    • 轮流启动:r=T/m(流水线稳定后)
    • 同时启动:r=T(与传统方式相同)
第三章 存储系统(BOK)

轮流启动

第三章 存储系统(BOK)
  • 基本定义:完成地址传递、数据读写等操作所需全部时间。
  • 轮流启动优化:
    • 通过流水线使r=T/m
    • 本质是时间重叠而非真正缩短单个模块周期
  • 同时启动特性:
    • 仅增加单次访问数据量
    • 不改变基本传输时间T

同时启动

第三章 存储系统(BOK)

三、存储器芯片的扩展及其与CPU的连接

第三章 存储系统(BOK)

3.1 内存条

第三章 存储系统(BOK)
  • 组成原理:受集成度和功耗限制,单个芯片容量有限,需通过扩展技术将多个芯片集成在内存条上。计算机主存由多个内存条及主板上的RAM和ROM芯片组成,通过系统总线与CPU相连。
  • 重要细节:主存包含RAM和ROM两部分,其中RAM常用DRAM实现(SRAM用于Cache),但常被忽略的是主存还包含部分ROM。

3.2 存储器芯片的扩展

3.2.1 位扩展

地址引脚

第三章 存储系统(BOK)
第三章 存储系统(BOK)

数据引脚

第三章 存储系统(BOK)

片选信号和读写信号

第三章 存储系统(BOK)

位扩展 – 逻辑上

第三章 存储系统(BOK)

物理实现:逻辑上相当于将4个芯片”粘合”为一个整体,每次读取时4个芯片的同一地址单元同时工作。

位扩展 – 物理角度

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

3.2.2 字扩展

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

3.2.3 字位扩展

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

3.3 片选方法

3.3.1 线选法

第三章 存储系统(BOK)
  • 工作原理:每根高位地址线直接连接一个芯片的片选端,如A14=0选中第一芯片。
  • 特点:
    • 简单直观但浪费地址线
    • 4个芯片需要4根地址线
    • 地址不连续(存在地址空洞)
第三章 存储系统(BOK)

3.3.2译码片选法

第三章 存储系统(BOK)
  • 高效方案:通过译码器将n根地址线转换为2n个片选信号。
  • 优势:
    • 节省地址线(2根线可控制4个芯片)
    • 地址连续无空洞
    • 最常用的片选方法
第三章 存储系统(BOK)
  • 扩展方式:位扩展(增加字长)、字扩展(增加容量)、字位扩展(两者结合)
  • DRAM特性:可通过RAS/CAS信号实现片选,无需专用CS引脚
  • 重要提醒:
    • 存储容量计算中K=1024
    • SRAM必须使用片选线,DRAM可用行列选通代替
    • 高位地址线可保留用于未来扩展

四、Cache

4.1 局部性原理

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

4.2 Cache工作原理

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

与主存区别:有效位是cache特有的设计,主存块不包含此标记位。因此严谨表述应为”cache数据区容量等于主存块大小”

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

4.3 Cache行和主存块之间的映射方式

第三章 存储系统(BOK)
第三章 存储系统(BOK)

直接映射

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

全相联映射

第三章 存储系统(BOK)

组相联映射

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

扩展:按字编址,1个字16位

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)

关联度

第三章 存储系统(BOK)
  • 定义:一个主存块可能映射到cache中的位置个数称为关联度
  • 直接映射:关联度为1(通过主存地址中间c位唯一确定cache行)
  • 全相连映射:关联度等于cache行数(可任意放置)
  • 组相连映射:关联度等于组路数(组内可任意放置)
  • 命中率规律:关联度越低命中率越低,因此直接映射命中率最低,全相连映射最高
  • 时间开销:关联度越低判断命中的开销越小,故直接映射命中时间最短,全相连映射最长

比较器

第三章 存储系统(BOK)
  • 功能:用于对比tag位,位数等于tag位数
  • 数量规律:
    • 直接映射:1个(地址可精确定位cache行)
    • 全相连映射:cache行数个(无法精确定位)
    • 组相连映射:组路数个(只能精确定位到组)
  • 记忆法则:当主存地址无法精确到具体cache行时需要比较器

4.4 Cache中主存块的替换方式

第三章 存储系统(BOK)
第三章 存储系统(BOK)

最近最少用算法LRU

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 核心思想:总是选择近期最少使用的主存块被替换
  • 实现方法:
    • 设置LRU计数器(替换算法位)
    • 计数值越高表示最近最少使用
  • 操作规则:
    • 命中时:被访问行计数器清零,比其低的加1
    • 未命中且有空间:新装入行计数器置0,其余加1
    • 未命中且无空间:淘汰计数值最大的行,新行置0,其余加1
  • 计数器位数计算:位数=⌈log2(组路数)⌉
  • 示例分析:三路组相连时最大计数值为2

4.5 Cache的一致性问题

第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 定义: 当cache中的主存块副本被修改时,需要保持cache与主存数据一致的问题。例如对cache中某个存储单元进行写操作后,需要考虑何时将修改同步到主存对应行。
  • 分类: 根据写操作是否命中cache分为两种情况:
    • 写命中:要写的单元在cache中
    • 写不命中:要写的单元不在cache中

写命中

第三章 存储系统(BOK)

原理: 写命中时同时更新cache和主存

特点: 始终保持cache与主存数据一致

优势: 实现简单,一致性保证强

劣势: 每次写操作都需要访问主存,影响速度

第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 回写法
    • 原理: 写命中时只更新cache,不立即写入主存,只有当该块被替换时才写回主存
    • 控制位:
      • 需要为每个cache行设置修改位(脏位)
      • 修改位为1表示该行被修改过,替换时需要写回主存
      • 该位也称为一致性控制位,只占1位
    • 特点:
      • 减少主存访问次数
      • 需要额外存储控制位
    • 注意: 计算cache行位数时,若使用回写法需考虑该控制位,其他方法没有一致性维护位

写不命中

第三章 存储系统(BOK)
  • 写分配法
    • 原理:
      • 写不命中时直接在主存中更新对应单元
      • 将更新后的主存块分配到一个空闲cache行中
    • 特点: 保证后续访问该数据时能够命中cache
    • 典型搭配: 常与回写法配合使用
第三章 存储系统(BOK)
  • 非写分配法
    • 原理: 写不命中时仅更新主存单元,不将该主存块装入cache
    • 特点:
      • 简单直接
      • 可能导致后续访问始终不命中
    • 典型搭配: 可与全写法配合使用
第三章 存储系统(BOK)

搭配示例

错误搭配

第三章 存储系统(BOK)

正确搭配

第三章 存储系统(BOK)
  • 搭配方式
    • 回写法+写分配法:
      • 效率高:首次不命中后装入cache,后续访问可命中
      • 合理搭配:符合cache加速访问的设计初衷
    • 回写法+非写分配法:
      • 效率低:数据始终不被装入cache,持续访问主存
      • 不合理:失去cache加速意义
    • 全写法搭配:
      • 可搭配写分配或非写分配
      • 两种搭配效率相当,因为全写法始终需要写主存

五、虚拟存储器(考频最高)

第三章 存储系统(BOK)

5.1 分页思想

  • 基本概念: 将主存划分成固定长度且较小的存储块称为页框(page frame)或物理块,同时将进程划分为相同大小的程序块称为页(page)
  • 大小关系: 页框和页的大小必须保持一致,因为页需要装入页框中
  • 设计目的: 实现主存和进程之间的数据交换单位,类似cache与主存的关系
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 定义: 又称逻辑地址,是程序员编程时使用的地址,不考虑是否装入主存
  • 连续性: 在进程内部地址一定是连续的
  • 地址构成:
    • 页号: 确定所在页的位置,若有2n页则需要n位表示
    • 页内偏移量: 确定页内存储单元位置,若页内有2m个单元则需要m位
  • 解读方法: 观察地址高位确定页号,低位确定页内偏移量
第三章 存储系统(BOK)
  • 定义: 程序真正运行时调入主存后使用的地址
  • 存储特性: 页可以离散存放在主存中,但页内地址保持连续
  • 地址构成:
    • 页框号: 确定所在页框位置,若有2q个页框则需要q位表示
    • 页内偏移量: 与逻辑地址的页内偏移量完全相同
  • 关键区别: 与逻辑地址相比,只有页框号可能不同页内偏移量保持不变
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 功能: 记录进程从页号到页框号的映射关系
  • 页表项: 每行包含一个页号到页框号的映射
  • 隐含页号: 由于页号连续(0,1,2…),实际存储时可省略页号字段
  • 映射特点:
    • 必须先发生页调入主存的操作,才会在页表中记录映射
    • 不同于cache直接根据地址判断映射关系
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 主要问题: 要求进程所有页面必须一次性调入主存
  • 资源浪费:
    • 不活跃页面占用宝贵的内存资源
    • 违背局部性原理(并非所有页面都频繁使用)
  • 改进方向: 虚拟存储器思想(仅调入必要页面)

5.2 分段思想

第三章 存储系统(BOK)
  • 划分方式:将用户进程的逻辑空间划分成大小不等的段,段的划分标准由程序员根据代码逻辑决定(如一个函数一个段)
  • 主存特点:主存不预先划分固定单元,段可以离散存放
  • 与分页的异同:与分页相同点是都可以离散存放;不同点是分段没有固定大小的页框概念
第三章 存储系统(BOK)
  • 地址构成:由段号和段内偏移量组成
  • 偏移量位数:由进程中最大段的长度决定(如最大段有16个单元则需要4位二进制表示)
  • 段号位数:决定进程可拥有的最大段数
  • 用户指定:由于段长和段数不固定,必须由程序员显式提供这两个字段
第三章 存储系统(BOK)
  • 连续性特点:段内物理地址连续(如40KB-50KB连续),段间可以离散
  • 地址计算:只需知道段基址和段长即可推导段内所有物理地址
  • 主存管理:主存未被划分固定单元,物理地址不做字段划分
第三章 存储系统(BOK)
  • 数据结构:每个进程一张段表,记录逻辑空间与内存空间的映射关系
  • 表项内容:包含段长和基址(起始地址)
  • 隐含段号:由于段号顺序递增,表中可省略段号字段
  • 定位方式:通过基址+段长即可定位段在主存中的连续空间

什么是分段?—— 跟着程序逻辑 “分块”

分段是按照用户程序的逻辑结构来划分虚拟内存的方式。比如一个程序通常包含代码(执行指令)、数据(变量等)、栈(函数调用)等部分,每个部分就是一个 “段”。

  • 特点:每个段的大小不固定,由其逻辑功能决定(比如代码段可能几 MB,栈段可能随程序运行动态变化)。
  • 地址结构:虚拟地址由 “段号 + 段内偏移量” 组成,CPU 通过段号找到段的起始地址,再加上偏移量定位具体位置。
  • 核心目的:满足程序的逻辑组织需求,方便程序员理解和管理(比如不同段可以设置不同权限,代码段只读,数据段可读写)。

什么是分页?—— 按固定大小 “切割” 内存

分页是将虚拟内存和物理内存统一划分为固定大小的块(比如 4KB、8KB,称为 “页”)。物理内存的页叫 “物理页框”,虚拟内存的页叫 “页面”。

  • 特点:页的大小固定(由系统决定,对用户透明),比如常见的 4KB,意味着无论程序逻辑如何,都被 “切” 成 4KB 的小块。
  • 地址结构:虚拟地址由 “页号 + 页内偏移量” 组成,页号对应页表中的条目,找到物理页框号,再加上偏移量定位物理地址。
  • 核心目的:打破程序必须连续存放的限制,提高内存利用率(比如一个大程序不用占连续的物理内存,分散的页框也能利用)。

5.3 段页式思想

第三章 存储系统(BOK)
  • 设计思想:结合分段和分页的优点
  • 划分过程:先按逻辑分段(大小不等),段内再按固定大小分页
  • 示例说明:如1号段分3页,2号段分10页,3号段分5页
第三章 存储系统(BOK)
  • 三级结构:由段号、段内页号、页内地址三部分组成
  • 定位逻辑:
    • 段号确定逻辑段
    • 段内页号确定段中的具体页
    • 页内地址定位存储单元
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 转换过程:
    • 通过段号找到段表项
    • 通过段内页号查询页表获得页框号
    • 页框号拼接页内偏移量得到物理地址
  • 数据结构:
    • 每个进程一张段表
    • 每个段表项指向一张页表
    • 页表记录段占用的页框号

5.4 页式虚拟存储器(重点)

第三章 存储系统(BOK)
  • 页式虚拟存储器
    • 核心思想:基于局部性原理,将外存(如磁盘)部分空间作为内存扩展使用,虚拟出比实际物理内存更大的地址空间。
    • 工作方式:运行时仅将活跃页面调入内存,非活跃页面存放外存,需要时再换入内存,整个过程对用户透明。
    • 用户感知:用户以为所有页面都在内存中,实际只有活跃页面驻留内存,极大节省物理内存资源。
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 虚拟存储器在实际应用中的例子:原神游戏
    • 典型案例:94.6GB的原神在16GB内存设备上运行,通过虚拟存储器仅调入活跃页面(如虚页0和虚页3)。
    • 实现过程:
      • 游戏进程初始全部存放于外存
      • 运行时将高频访问的虚页调入内存实页框(如虚页0→实页0,虚页3→实页2)
      • 不活跃虚页保留在外存,通过页表记录映射关系
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 虚页与实页
    • 术语区别:
      • 虚页:进程在虚拟地址空间划分的页(逻辑页)
      • 实页:主存中实际的页框(物理页),与普通分页的页框相同
    • 调度特点:活跃虚页可离散存入任意实页,通过页表维护映射关系,实现”小内存运行大程序”的假象。
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 与普通页表的区别:虚拟存储器中称为”请求分页”,对应的页表称为请求页表,相比普通页表增加了多个字段
  • 新增字段及作用:
    • 状态位(P):指示该页是否已调入内存(1=在内存,0=在外存)
    • 访问字段(A):记录本页被访问次数或未被访问时间,供置换算法参考
    • 修改位(M):标识调入内存后是否被修改过(类似cache一致性原理)
    • 外存地址:指出未调入内存的页在外存中的位置(磁盘物理块号)
  • 注意事项:
    • 外存地址中的”物理块”指磁盘块,比内存页框大得多
    • 考试中需区分”物理块”可能指代内存页框或磁盘块
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 页表基址寄存器
    • 转换必要性:CPU执行指令时必须将虚拟地址转换为物理地址才能访存
    • 寄存器作用:
      • 每个进程拥有独立的页表基址寄存器
      • 存放该进程页表在内存中的首地址
    • 转换步骤:
      • 通过寄存器获取页表基地址
      • 用虚拟地址的虚页号查请求页表
      • 检查装入位(状态位):
        • 若为1,读取实页号与页内地址组合成物理地址
        • 若为0,触发缺页异常
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 快表
    • 定义:又称TLB,是存放常用页表项的特殊硬件缓存
    • 设计原理:模仿cache机制,加速地址转换过程
    • 全相联快表:
      • tag对应虚拟地址的虚页号
      • 通过比较器并行匹配所有表项
      • 命中时直接获取实页号
    • 组相联实现:
      • 虚页号分为高位tag和组号
      • 组数计算方式与cache相同
      • 每组含多个表项(图示为2路)
    • 识别技巧:
      • 同一横行表项属于同组
      • 通过比较器对比组内各表项的tag
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 命中定义:
    • TLB命中:存在表项且有效位为1
    • 页表命中:表项有效位为1
  • 可能组合:
    • TLB命中→页表命中→Cache可能命中/缺失
    • TLB缺失→页表命中→Cache可能命中/缺失
    • TLB缺失→页表缺失→Cache必然缺失
  • 不可能组合:TLB命中但页表缺失的情况不存在

5.5 段式虚拟存储器

第三章 存储系统(BOK)
  • 地址转换原理:CPU执行指令时需将虚拟地址转换为物理地址才能访存,转换过程涉及段表基址寄存器和段表查询
  • 段表基址寄存器内容:
    • 段表始址:记录段表在主存中的起始位置
    • 段表长度:用于越界判断,防止访问超出段表范围的段号
  • 地址转换步骤:
    • 虚拟地址分解为段号和段内地址
    • 检查段号是否小于段表长度(越界判断)
    • 段表始址+段号得到段表项地址
    • 检查装入位:若为0触发缺段处理,为1则继续
    • 段首址+段内地址得到物理地址(注意是相加而非拼接)
  • 缺段处理:类比缺页处理,将缺失段调入内存并更新装入位

5.6 段页式虚拟存储器

第三章 存储系统(BOK)
  • 地址转换特点:结合分段和分页机制,转换过程更复杂
  • 转换步骤:
    • 虚拟地址分解为段号、段内页号和页内地址
    • 段表始址+段号定位段表项
    • 从段表项获取页表始址和页表大小
    • 页表始址+页号定位页表项
    • 实页号+页内地址拼接得到物理地址
  • 关键区别:
    • 段式:段首址+段内地址相加
    • 段页式:实页号与页内地址拼接
  • 考试重点提示:
    • 重点掌握请求分页系统(页式虚拟存储器)
    • 段式和段页式主要理解其思想即可
    • 段页式地址转换过程复杂,考试出现概率低

六、外存

第三章 存储系统(BOK)
  • 定义:又称辅存,用于长期存储大量不运行的数据(如手机未启动的应用程序)
  • 特点:考试中常涉及计算题,是计算机组成原理重要考点
  • 常见形态:磁盘存储器,在408考试范围内与”硬盘”概念等同

6.1 磁盘存储器组成

第三章 存储系统(BOK)
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 磁盘组成结构
    • 核心组件:主轴串联多个盘面,每个盘面配有读写磁头
    • 磁道结构:类似黑胶唱片,盘面有半径递增的同心圆磁道
    • 读写机制:磁臂驱动组合臂移动磁头,盘面旋转完成数据存取
第三章 存储系统(BOK)
第三章 存储系统(BOK)
  • 柱面数
    • 定义:不同盘面相同半径磁道组成的圆柱形表面
    • 与磁道关系:柱面数=单个盘面的磁道数,二者本质相同
    • 应用场景:考题可能用柱面数替代磁道数描述磁盘结构
第三章 存储系统(BOK)
  • 存储区域
    • 层级关系:
      • 硬盘→多个盘面→多个磁道→多个扇区
      • 扇区(块)是读写最小单位,数据结构外部排序中称为磁盘块
    • 簇概念:某些操作系统中多个扇区的集合,作用等同于放大版的扇区
第三章 存储系统(BOK)
第三章 存储系统(BOK)

6.2 性能指标

第三章 存储系统(BOK)
  • 平均存储时间
    • 组成要素:
      • 寻道时间:磁头移动到目标磁道的时间(取最内到最外圈时间的一半)
      • 旋转延迟:盘面旋转使目标扇区到达磁头下方的时间(取旋转一圈时间的一半)
      • 传输时间:实际读取数据的时间
    • 计算要点:前两项取平均值,后一项根据题设具体计算
  • 数据传输率
    • 公式:D=rN(r为转速转/秒,N为单磁道容量)
    • 原理:单位时间内通过磁头的数据量,与转速和磁道容量成正比
  • 磁盘地址
    • 字段顺序:驱动器号→柱面号→盘面号→扇区号
    • 考试重点:柱面号(确定磁道)、盘面号(确定具体盘面)、扇区号(定位数据)
第三章 存储系统(BOK)
  • RAID
    • 技术本质:通过冗余磁盘阵列提高数据安全性和读写性能
    • 各级别特点:
      • RAID 0:无冗余,数据分散存储(速度快但无容错)
      • RAID 1:镜像备份(安全性高但存储效率低)
      • RAID 2:海明码纠错(已淘汰)
      • RAID 3/4:位交叉/块交叉奇偶校验(专用校验盘)
      • RAID 5:分布式奇偶校验(校验信息均匀分布)

6.3 固态硬盘SSD

第三章 存储系统(BOK)
  • 优势:随机访问快、能耗低、抗震强、安全性高
  • 缺陷:存在写磨损(每个块约10万次写入寿命)、随机写速度慢

固态硬盘的结构

  • 存储单元:
    • BBB个块→每个块PPP页(数据按页读写)
  • 写入机制:
    • 必须先擦除整个块才能写入页
    • 修改含数据页时,需将有效页复制到新块
  • 擦除特性:以块为单位擦除,不能单独擦除页
第三章 存储系统(BOK)

6.4 练习

第三章 存储系统(BOK)
第三章 存储系统(BOK)

本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客

(1)
何大锤的头像何大锤管理团队

相关推荐

  • 第三章 习题集(研芝士)

    一、重点题 题目 备注 二、重要知识点 2.1 相联存储器 相联存储器(也叫关联存储器)是一种特殊的存储器,它不按地址访问,而是按内容访问—— 即通过存储数据的部分或全部特征(比如特定值、匹配条件)来查找对应的存储单元,能快速找到符合条件的数据。 其核心特点是 “内容寻址”,区别于普通存储器的 “地址寻址”,因此适合需要高速匹配的场景,比如计算机中的快表(T…

    2025年7月16日
    1300
  • 第三章 05高速缓冲存储器Cache(王道)

    一、Cache基本原理&概念 1.1 存储系统存在的问题 1.2 Cache的工作原理 1.3 局部性原理 1.4 性能分析 1.5 性能分析案例 1.6 有待解决的问题 如何界定”周围”的数据? 主存与Cache的数据交换单位 Cache与主存块之间的对应关系问题 Cache满了之后的处理办法 如何保证数据副本与数据母本的一…

    2025年7月16日
    1400
  • 第三章 04外存储器(王道)

    一、磁盘存储器 1.1 外存储器 磁盘存储器的读写原理 磁表面存储器的优点 磁表面存储器的缺点 1.2 磁盘设备的组成 1.3 磁盘的性能指标 磁盘的容量 记录密度 平均存取时间 数据传输率 1.4 磁盘存储器地址 1.5 硬盘的工作过程 二、磁盘阵列 2.1 RAID(Redundant Array of Inexpensive Disks) RAID0 …

    2025年7月16日
    1300
  • 第三章 03主存储器与CPU的连接(王道)

    一、主存储器与CPU的连接 1.1 知识总览 1.2 单块存储芯片与CPU的连接 1.3 字扩展法解决字数扩展问题 1.4 位扩展法解决字长扩展问题 二、现代计算机中MDR与MAR的位置 三、多块存储芯片与CPU的连接 四、存储芯片信号命名与解释 五、增加主存的存储字长-位扩展 5.1 地址线的连接 5.2 读写控制信号的连接 5.3 片选信号的连接 六、增…

    2025年7月14日
    1300
  • 第三章 02主存储器(王道)

    一、主存储器的基本组成 1.1 基本的半导体元件及原理 MOS管(可以理解为电控开关) 电容 存储体 = 多个存储单元 存储字长取决于存储体的结构:8bit\16bit\32bit 存储体由存储单元组成,存储单元由存储元件(存储元)组成 1.2 存储器芯片的基本原理 存储单元 译码器 控制电路 片选线、读写控制线 1.3 存储芯片的结构 存储芯片的金属引脚 …

    2025年7月12日
    1400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

2211932694

在线咨询: QQ交谈

邮件:hdcblog1999@163.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
网站建设中ing......