一、存储器的概述
1.1 存储器的分类
1.1.1按存储方式分类
- 定义:可按任意顺序访问存储单元,存取时间与存储位置无关
- 特点:通过地址直接定位,类似图书馆按编号找书
- 效率:无论存储容量大小,访问速度恒定
- 实例:RAM和ROM是最常见类型(后续会详细学习)
- 类比说明:如同用图书编号直接定位书架位置,不受藏书量影响
- 核心机制:每个存储单元有唯一地址,类似每本书有确定位置
- 工作方式:必须按物理顺序依次访问,不能跳过中间内容
- 时间特性:存取时间取决于信息存放位置
- 编址单位:以记录块为单位进行编址
- 典型实例:磁带存储器
- 生活类比:如同磁带播放音乐时,必须顺序播放无法直接切歌
- 关键区别:与随机存取不同,必须遍历前置内容才能访问目标信息
- 混合特性:兼具随机访问和顺序访问特点
- 访问流程:先随机定位区域,再在区域内顺序查找
- 应用实例:磁盘存储器
- 现代类比:音乐软件可随机选歌,但查找歌词需顺序播放
- 技术实现:类似磁盘先定位扇区,再顺序读取扇区内数据
- 检索方式:按内容而非地址进行检索
- 对比特点:不同于前三种基于地址的访问方式
- 典型应用:快表(TLB,虚拟存储器中使用)
- 互联网类比:如同用关键词搜索而非直接输入网址
- 实现原理:通过内容特征匹配定位存储位置
1.1.2 按信息的可更改性分类
1.1.3 按断电后信息的可保存性分类
- 非易失性存储器:
- 特性:断电后信息不丢失
- 实例:ROM、磁表面存储器、光存储器
- 易失性存储器:
- 特性:断电后信息立即丢失
- 实例:RAM、高速缓冲寄存器Cache
1.1.4 按功能分类
- 高速缓冲存储器(Cache):
- 作用:存储主存频繁访问的数据
- 主存(内存):
- 核心地位:程序运行必需驻留的存储区域
- 辅存(外存):
- 用途:存储不常用数据,作为主存的后备
1.2 主存储器的组成和基本操作
- 核心部件:存储矩阵是主存的核心部件,由多个存储单元构成
- 存储单元特性:
- 每个存储单元对应唯一地址(如00000000H~11111111H)
- 存储单元内容为二进制数据或程序指令
- 按字节编址时,每个单元存储8位二进制数据
综上:00000000H
是 8 位十六进制数,因 1 位十六进制对应 4 位二进制,故总长度为 8*4 = 32位,且符合 32 位系统的表示约定。
- 存储字长:一个存储单元中二进制位的位数(如8位)
- 存储字:存储单元中二进制位组成的串
- 存储元件:单个二进制位的存储单位
- 编址方式:
- 按字节编址:1个地址对应8位(1字节)
- 按字编址:1个地址对应1个机器字长
- 地址位数与容量:
- n位地址可表示2 个存储单元
- 32位地址的寻址范围:0~232−1
- 地址从0开始编号,故最大地址为232−1
- 重要结论:主存地址位数直接决定可寻址的存储单元数量
读操作
读操作
- 步骤:
- CPU将访问地址送入MAR(地址寄存器)
- 地址通过地址线传至主存地址寄存器
- 地址译码器译码选中对应存储单元
- 读写控制电路接收控制信号
- 数据通过数据线传至MDR(数据寄存器)
- 关键部件:
- MAR:存储地址(Memory Address Register)
- MDR:存储数据(Memory Data Register)
- 地址译码器:将地址转换为存储单元选择信号
写操作
总结
- 寄存器与总线关系:
- MDR宽度 = 数据线宽度
- MAR宽度 = 地址线宽度
- 字长概念:
- 机器字长:CPU一次处理的二进制位数(如64位)
- 存储字长:一个存储单元的二进制位数
- 编址方式影响:
- 按字节编址:存储字长=8位
- 按字编址:存储字长=机器字长
- 实际应用注意:
- 机器字长通常等于数据线宽度(但非绝对)
- 题目中数据线宽度可能设为存储字长以简化计算
突发传送技术
- 优化原理:只需发送首地址即可连续读取多个单元
- 应用场景:当机器字长大于存储字长时(如64位机按字节编址)
- 效率提升:避免多次发送地址的重复操作
1.3 存储周期
- 定义:存储器进行一次读或写操作所需的全部时间,即两次连续读写操作之间的最短时间间隔。
- 组成:
- 有效操作时间:实际用于读/写操作的时间段
- 稳定恢复时间:由于芯片物理特性需要的稳定恢复时间
- 关键特性:
- 存储周期 > 实际读写操作时间
- 别名:存取周期(两者概念相同)
- 示例:若读操作在t1结束,写操作在t2开始,则t2−t1即为存储周期
1.4 存储器的层次化结构
- 层级划分(自上而下):
- 寄存器
- 高速缓存(Cache)
- 主存储器(RAM和ROM)
- 辅助存储器(硬盘)
- 海量后备存储器(磁带库、光盘库)
- 性能特征:
- 存取时间:随层级下降而增加(寄存器最快,海量存储器最慢)
- 存储容量:随层级下降而增大(寄存器最小,海量存储器最大)
- 成本关系:存取时间越短,单位存储成本越高
- 数据传送机制:
- 复制传送:数据在相邻层级间以副本形式传递,保留原始数据
- 定长块传输:不同层级间传输的数据块大小不同
- 映射关系:需要建立数据块的地址映射关系(后续课程详解)
1.5 随机存取存储器
基本概念:随机存取存储器(RAM)可分为静态(SRAM)和动态(DRAM)两类,均属于随机存取存储器,但SRAM和DRAM在特性和应用上有显著差异。
1.5.1 SRAM
- 核心特性:
- 集成度:SRAM 集成度较低,单位面积容纳的存储单元较少
- 易失性:属于易失性存储器,断电后信息立即丢失
(SRAM 依赖持续供电维持数据,断电后触发器状态消失) - 读操作影响:不会因读操作改变存储状态,无需读后再生
(SRAM 的触发器结构在读操作后保持稳定,无需像 DRAM 那样刷新) - 应用场景:适合高速小容量存储器,如高速缓存(Cache)
(因其高速特性(纳秒级延迟),常用于 CPU 缓存)
- 存储矩阵:
- 由多个位平面(bit plane)组成,每个平面存储1位
- 示例中采用8个64×64位平面,构成按字节编址的存储单元
- 通过x(行)和y(列)坐标定位,相同行列的位组成存储字
- 地址译码:
- 6根地址线可表示64种状态(26=64)
- 译码器将6位地址转换为64根选择线
- 辅助电路:
- 驱动器:提供足够电流确保信号准确传输
- I/O电路:控制被选中单元的读写操作
1.5.2 DRAM
- 核心特性:
- 集成度:集成度高,单位面积容纳元件多
- 易失性:属于易失存储器,需定期刷新保持信息
- 读操作影响:读操作会破坏存储状态,必须读后刷新
- 应用场景:适合慢速大容量存储器,如主存
地址复用技术
- 地址复用技术:
- 行地址和列地址共用同一组地址线
- 分时传送:先传行地址,再传列地址
- 地址线数量减半(示例中从20根减至10根)
- 控制信号:
- 行通选信号:低电平时地址线传送行地址
- 列通选信号:低电平时地址线传送列地址
- 刷新计数器:
- 位数与复用后地址线数量相同
- 自动生成刷新行地址,无需外部提供
DRAM的刷新
- 周期刷新
- 刷新周期定义:对某一行进行相邻两次刷新的时间间隔
- 刷新方式:
- 集中刷新:
- 刷新间隔内前段正常读写,后段集中逐行刷新
- 刷新期间停止所有读写操作
- 分散刷新:
- 每个存储周期分为两部分:前段读写,后段刷新一行
- 存储周期变为原来的两倍
- 异步刷新:
- 将刷新周期均匀分配给所有行
- 相邻两行刷新间隔t=刷新周期行数t=\frac{刷新周期}{行数}t=行数刷新周期
- 在必须刷新的时间内完成所有行刷新
- 集中刷新:
1.5.3 ROM
二、多模块存储器
2.1 连续编址
- 基本结构:由四个完全相同的存储体(M0-M3)组成,每个存储体具有独立的地址寄存器(MAR)、数据寄存器(MDR)、地址译码器和读写电路。
- 编制特点:按存储体顺序依次编制,先对M0从0开始编制完256个单元后,才转向M1从256开始编制。
- 地址组成:主存地址由体号和体内地址两部分组成,类比快递地址的”城市+街道”分级结构。
- 体号作用:高位字段(如32位地址中的高几位)用于选择具体存储体,00对应M0,01对应M1等。
- 体内地址:低位字段称为偏移量,用于定位选定存储体内的具体单元,如M0的0-255单元。
体内地址选择单元
- 初始状态:地址00000000时,体号00选择M0,偏移量0选择第0单元。
- 地址递增:
- 加1→00000001:体号不变,偏移量1选择M0的第1单元
- 加至11111111(255):选择M0的最后一个单元
- 再加1→100000000:体号变为01,切换至M1的第0单元
- 访问顺序:必须完整访问一个存储体后才能切换至下一存储体,由地址的二进制加法特性决定(低位先变化)。
- 并行限制:无法实现多存储体并行访问,吞吐率无法提升(DMA特殊情况需结合第七章理解)。
- 关键结论:连续编址方式下,存储模块组无法发挥并行优势,仅当采用交叉编址时才可能实现并行访问。
2.2 交叉编址 – 轮流启动
- 编址特点:采用轮流跨模块编址方式,从第一个存储体(M0)的第0单元开始,依次为M1、M2、M3的第0单元编址1、2、3,再循环回M0M_0M0的第1单元编址4。
- 地址构成:
- 体号:低2位(因有4个存储体)
- 体内地址:高8位(每个模块256个单元)
- 示例:地址”00011011″中,低2位”11″表示体号3,高8位”000110″表示体内地址6。
轮流启动适用条件:当单个存储模块的存储字长(如8位)等于系统总线数据线数(如8根)时采用。
轮流启动过程(重点)
全部访问之后,每隔T/4,就读写一个数据
误区
案例,这两句话都是正确的,前提:轮流启动方式一下
总结
2.3 交叉编址 – 同时启动
适用条件:当所有模块并行读写的总位数(如4模块×8位=32位)等于总线数据线数(如32根)时采用。
- 工作特点:
- 所有模块同时启动访问
- 经过1个T周期后同时输出所有数据
- 类比说明:逻辑上类似于位扩展,将多个模块视为一个整体。
2.4 交叉编制方式对比
- 总线宽度:
- 轮流启动:等于单个模块存储字长
- 同时启动:等于模块数×单个存储字长
- 存储周期:
- 轮流启动:r=T/m(流水线稳定后)
- 同时启动:r=T(与传统方式相同)
轮流启动
- 基本定义:完成地址传递、数据读写等操作所需全部时间。
- 轮流启动优化:
- 通过流水线使r=T/m
- 本质是时间重叠而非真正缩短单个模块周期
- 同时启动特性:
- 仅增加单次访问数据量
- 不改变基本传输时间T
同时启动
三、存储器芯片的扩展及其与CPU的连接
3.1 内存条
- 组成原理:受集成度和功耗限制,单个芯片容量有限,需通过扩展技术将多个芯片集成在内存条上。计算机主存由多个内存条及主板上的RAM和ROM芯片组成,通过系统总线与CPU相连。
- 重要细节:主存包含RAM和ROM两部分,其中RAM常用DRAM实现(SRAM用于Cache),但常被忽略的是主存还包含部分ROM。
3.2 存储器芯片的扩展
3.2.1 位扩展
地址引脚
数据引脚
片选信号和读写信号
位扩展 – 逻辑上
物理实现:逻辑上相当于将4个芯片”粘合”为一个整体,每次读取时4个芯片的同一地址单元同时工作。
位扩展 – 物理角度
3.2.2 字扩展
3.2.3 字位扩展
3.3 片选方法
3.3.1 线选法
- 工作原理:每根高位地址线直接连接一个芯片的片选端,如A14=0选中第一芯片。
- 特点:
- 简单直观但浪费地址线
- 4个芯片需要4根地址线
- 地址不连续(存在地址空洞)
3.3.2译码片选法
- 高效方案:通过译码器将n根地址线转换为2n个片选信号。
- 优势:
- 节省地址线(2根线可控制4个芯片)
- 地址连续无空洞
- 最常用的片选方法
- 扩展方式:位扩展(增加字长)、字扩展(增加容量)、字位扩展(两者结合)
- DRAM特性:可通过RAS/CAS信号实现片选,无需专用CS引脚
- 重要提醒:
- 存储容量计算中K=1024
- SRAM必须使用片选线,DRAM可用行列选通代替
- 高位地址线可保留用于未来扩展
四、Cache
4.1 局部性原理
4.2 Cache工作原理
与主存区别:有效位是cache特有的设计,主存块不包含此标记位。因此严谨表述应为”cache数据区容量等于主存块大小”
4.3 Cache行和主存块之间的映射方式
直接映射
全相联映射
组相联映射
扩展:按字编址,1个字16位
关联度
- 定义:一个主存块可能映射到cache中的位置个数称为关联度
- 直接映射:关联度为1(通过主存地址中间c位唯一确定cache行)
- 全相连映射:关联度等于cache行数(可任意放置)
- 组相连映射:关联度等于组路数(组内可任意放置)
- 命中率规律:关联度越低命中率越低,因此直接映射命中率最低,全相连映射最高
- 时间开销:关联度越低判断命中的开销越小,故直接映射命中时间最短,全相连映射最长
比较器
- 功能:用于对比tag位,位数等于tag位数
- 数量规律:
- 直接映射:1个(地址可精确定位cache行)
- 全相连映射:cache行数个(无法精确定位)
- 组相连映射:组路数个(只能精确定位到组)
- 记忆法则:当主存地址无法精确到具体cache行时需要比较器
4.4 Cache中主存块的替换方式
最近最少用算法LRU
- 核心思想:总是选择近期最少使用的主存块被替换
- 实现方法:
- 设置LRU计数器(替换算法位)
- 计数值越高表示最近最少使用
- 操作规则:
- 命中时:被访问行计数器清零,比其低的加1
- 未命中且有空间:新装入行计数器置0,其余加1
- 未命中且无空间:淘汰计数值最大的行,新行置0,其余加1
- 计数器位数计算:位数=⌈log2(组路数)⌉
- 示例分析:三路组相连时最大计数值为2
4.5 Cache的一致性问题
- 定义: 当cache中的主存块副本被修改时,需要保持cache与主存数据一致的问题。例如对cache中某个存储单元进行写操作后,需要考虑何时将修改同步到主存对应行。
- 分类: 根据写操作是否命中cache分为两种情况:
- 写命中:要写的单元在cache中
- 写不命中:要写的单元不在cache中
写命中
原理: 写命中时同时更新cache和主存
特点: 始终保持cache与主存数据一致
优势: 实现简单,一致性保证强
劣势: 每次写操作都需要访问主存,影响速度
- 回写法
- 原理: 写命中时只更新cache,不立即写入主存,只有当该块被替换时才写回主存
- 控制位:
- 需要为每个cache行设置修改位(脏位)
- 修改位为1表示该行被修改过,替换时需要写回主存
- 该位也称为一致性控制位,只占1位
- 特点:
- 减少主存访问次数
- 需要额外存储控制位
- 注意: 计算cache行位数时,若使用回写法需考虑该控制位,其他方法没有一致性维护位
写不命中
- 写分配法
- 原理:
- 写不命中时直接在主存中更新对应单元
- 将更新后的主存块分配到一个空闲cache行中
- 特点: 保证后续访问该数据时能够命中cache
- 典型搭配: 常与回写法配合使用
- 原理:
- 非写分配法
- 原理: 写不命中时仅更新主存单元,不将该主存块装入cache
- 特点:
- 简单直接
- 可能导致后续访问始终不命中
- 典型搭配: 可与全写法配合使用
搭配示例
错误搭配
正确搭配
- 搭配方式
- 回写法+写分配法:
- 效率高:首次不命中后装入cache,后续访问可命中
- 合理搭配:符合cache加速访问的设计初衷
- 回写法+非写分配法:
- 效率低:数据始终不被装入cache,持续访问主存
- 不合理:失去cache加速意义
- 全写法搭配:
- 可搭配写分配或非写分配
- 两种搭配效率相当,因为全写法始终需要写主存
- 回写法+写分配法:
五、虚拟存储器(考频最高)
5.1 分页思想
- 基本概念: 将主存划分成固定长度且较小的存储块称为页框(page frame)或物理块,同时将进程划分为相同大小的程序块称为页(page)
- 大小关系: 页框和页的大小必须保持一致,因为页需要装入页框中
- 设计目的: 实现主存和进程之间的数据交换单位,类似cache与主存的关系
- 定义: 又称逻辑地址,是程序员编程时使用的地址,不考虑是否装入主存
- 连续性: 在进程内部地址一定是连续的
- 地址构成:
- 页号: 确定所在页的位置,若有2n页则需要n位表示
- 页内偏移量: 确定页内存储单元位置,若页内有2m个单元则需要m位
- 解读方法: 观察地址高位确定页号,低位确定页内偏移量
- 定义: 程序真正运行时调入主存后使用的地址
- 存储特性: 页可以离散存放在主存中,但页内地址保持连续
- 地址构成:
- 页框号: 确定所在页框位置,若有2q个页框则需要q位表示
- 页内偏移量: 与逻辑地址的页内偏移量完全相同
- 关键区别: 与逻辑地址相比,只有页框号可能不同,页内偏移量保持不变
- 功能: 记录进程从页号到页框号的映射关系
- 页表项: 每行包含一个页号到页框号的映射
- 隐含页号: 由于页号连续(0,1,2…),实际存储时可省略页号字段
- 映射特点:
- 必须先发生页调入主存的操作,才会在页表中记录映射
- 不同于cache直接根据地址判断映射关系
- 主要问题: 要求进程所有页面必须一次性调入主存
- 资源浪费:
- 不活跃页面占用宝贵的内存资源
- 违背局部性原理(并非所有页面都频繁使用)
- 改进方向: 虚拟存储器思想(仅调入必要页面)
5.2 分段思想
- 划分方式:将用户进程的逻辑空间划分成大小不等的段,段的划分标准由程序员根据代码逻辑决定(如一个函数一个段)
- 主存特点:主存不预先划分固定单元,段可以离散存放
- 与分页的异同:与分页相同点是都可以离散存放;不同点是分段没有固定大小的页框概念
- 地址构成:由段号和段内偏移量组成
- 偏移量位数:由进程中最大段的长度决定(如最大段有16个单元则需要4位二进制表示)
- 段号位数:决定进程可拥有的最大段数
- 用户指定:由于段长和段数不固定,必须由程序员显式提供这两个字段
- 连续性特点:段内物理地址连续(如40KB-50KB连续),段间可以离散
- 地址计算:只需知道段基址和段长即可推导段内所有物理地址
- 主存管理:主存未被划分固定单元,物理地址不做字段划分
- 数据结构:每个进程一张段表,记录逻辑空间与内存空间的映射关系
- 表项内容:包含段长和基址(起始地址)
- 隐含段号:由于段号顺序递增,表中可省略段号字段
- 定位方式:通过基址+段长即可定位段在主存中的连续空间
什么是分段?—— 跟着程序逻辑 “分块”
分段是按照用户程序的逻辑结构来划分虚拟内存的方式。比如一个程序通常包含代码(执行指令)、数据(变量等)、栈(函数调用)等部分,每个部分就是一个 “段”。
- 特点:每个段的大小不固定,由其逻辑功能决定(比如代码段可能几 MB,栈段可能随程序运行动态变化)。
- 地址结构:虚拟地址由 “段号 + 段内偏移量” 组成,CPU 通过段号找到段的起始地址,再加上偏移量定位具体位置。
- 核心目的:满足程序的逻辑组织需求,方便程序员理解和管理(比如不同段可以设置不同权限,代码段只读,数据段可读写)。
什么是分页?—— 按固定大小 “切割” 内存
分页是将虚拟内存和物理内存统一划分为固定大小的块(比如 4KB、8KB,称为 “页”)。物理内存的页叫 “物理页框”,虚拟内存的页叫 “页面”。
- 特点:页的大小固定(由系统决定,对用户透明),比如常见的 4KB,意味着无论程序逻辑如何,都被 “切” 成 4KB 的小块。
- 地址结构:虚拟地址由 “页号 + 页内偏移量” 组成,页号对应页表中的条目,找到物理页框号,再加上偏移量定位物理地址。
- 核心目的:打破程序必须连续存放的限制,提高内存利用率(比如一个大程序不用占连续的物理内存,分散的页框也能利用)。
5.3 段页式思想
- 设计思想:结合分段和分页的优点
- 划分过程:先按逻辑分段(大小不等),段内再按固定大小分页
- 示例说明:如1号段分3页,2号段分10页,3号段分5页
- 三级结构:由段号、段内页号、页内地址三部分组成
- 定位逻辑:
- 段号确定逻辑段
- 段内页号确定段中的具体页
- 页内地址定位存储单元
- 转换过程:
- 通过段号找到段表项
- 通过段内页号查询页表获得页框号
- 页框号拼接页内偏移量得到物理地址
- 数据结构:
- 每个进程一张段表
- 每个段表项指向一张页表
- 页表记录段占用的页框号
5.4 页式虚拟存储器(重点)
- 页式虚拟存储器
- 核心思想:基于局部性原理,将外存(如磁盘)部分空间作为内存扩展使用,虚拟出比实际物理内存更大的地址空间。
- 工作方式:运行时仅将活跃页面调入内存,非活跃页面存放外存,需要时再换入内存,整个过程对用户透明。
- 用户感知:用户以为所有页面都在内存中,实际只有活跃页面驻留内存,极大节省物理内存资源。
- 虚拟存储器在实际应用中的例子:原神游戏
- 典型案例:94.6GB的原神在16GB内存设备上运行,通过虚拟存储器仅调入活跃页面(如虚页0和虚页3)。
- 实现过程:
- 游戏进程初始全部存放于外存
- 运行时将高频访问的虚页调入内存实页框(如虚页0→实页0,虚页3→实页2)
- 不活跃虚页保留在外存,通过页表记录映射关系
- 虚页与实页
- 术语区别:
- 虚页:进程在虚拟地址空间划分的页(逻辑页)
- 实页:主存中实际的页框(物理页),与普通分页的页框相同
- 调度特点:活跃虚页可离散存入任意实页,通过页表维护映射关系,实现”小内存运行大程序”的假象。
- 术语区别:
- 与普通页表的区别:虚拟存储器中称为”请求分页”,对应的页表称为请求页表,相比普通页表增加了多个字段
- 新增字段及作用:
- 状态位(P):指示该页是否已调入内存(1=在内存,0=在外存)
- 访问字段(A):记录本页被访问次数或未被访问时间,供置换算法参考
- 修改位(M):标识调入内存后是否被修改过(类似cache一致性原理)
- 外存地址:指出未调入内存的页在外存中的位置(磁盘物理块号)
- 注意事项:
- 外存地址中的”物理块”指磁盘块,比内存页框大得多
- 考试中需区分”物理块”可能指代内存页框或磁盘块
- 页表基址寄存器
- 转换必要性:CPU执行指令时必须将虚拟地址转换为物理地址才能访存
- 寄存器作用:
- 每个进程拥有独立的页表基址寄存器
- 存放该进程页表在内存中的首地址
- 转换步骤:
- 通过寄存器获取页表基地址
- 用虚拟地址的虚页号查请求页表
- 检查装入位(状态位):
- 若为1,读取实页号与页内地址组合成物理地址
- 若为0,触发缺页异常
- 快表
- 定义:又称TLB,是存放常用页表项的特殊硬件缓存
- 设计原理:模仿cache机制,加速地址转换过程
- 全相联快表:
- tag对应虚拟地址的虚页号
- 通过比较器并行匹配所有表项
- 命中时直接获取实页号
- 组相联实现:
- 虚页号分为高位tag和组号
- 组数计算方式与cache相同
- 每组含多个表项(图示为2路)
- 识别技巧:
- 同一横行表项属于同组
- 通过比较器对比组内各表项的tag
- 命中定义:
- TLB命中:存在表项且有效位为1
- 页表命中:表项有效位为1
- 可能组合:
- TLB命中→页表命中→Cache可能命中/缺失
- TLB缺失→页表命中→Cache可能命中/缺失
- TLB缺失→页表缺失→Cache必然缺失
- 不可能组合:TLB命中但页表缺失的情况不存在
5.5 段式虚拟存储器
- 地址转换原理:CPU执行指令时需将虚拟地址转换为物理地址才能访存,转换过程涉及段表基址寄存器和段表查询
- 段表基址寄存器内容:
- 段表始址:记录段表在主存中的起始位置
- 段表长度:用于越界判断,防止访问超出段表范围的段号
- 地址转换步骤:
- 虚拟地址分解为段号和段内地址
- 检查段号是否小于段表长度(越界判断)
- 段表始址+段号得到段表项地址
- 检查装入位:若为0触发缺段处理,为1则继续
- 段首址+段内地址得到物理地址(注意是相加而非拼接)
- 缺段处理:类比缺页处理,将缺失段调入内存并更新装入位
5.6 段页式虚拟存储器
- 地址转换特点:结合分段和分页机制,转换过程更复杂
- 转换步骤:
- 虚拟地址分解为段号、段内页号和页内地址
- 段表始址+段号定位段表项
- 从段表项获取页表始址和页表大小
- 页表始址+页号定位页表项
- 实页号+页内地址拼接得到物理地址
- 关键区别:
- 段式:段首址+段内地址相加
- 段页式:实页号与页内地址拼接
- 考试重点提示:
- 重点掌握请求分页系统(页式虚拟存储器)
- 段式和段页式主要理解其思想即可
- 段页式地址转换过程复杂,考试出现概率低
六、外存
- 定义:又称辅存,用于长期存储大量不运行的数据(如手机未启动的应用程序)
- 特点:考试中常涉及计算题,是计算机组成原理重要考点
- 常见形态:磁盘存储器,在408考试范围内与”硬盘”概念等同
6.1 磁盘存储器组成
- 磁盘组成结构
- 核心组件:主轴串联多个盘面,每个盘面配有读写磁头
- 磁道结构:类似黑胶唱片,盘面有半径递增的同心圆磁道
- 读写机制:磁臂驱动组合臂移动磁头,盘面旋转完成数据存取
- 柱面数
- 定义:不同盘面相同半径磁道组成的圆柱形表面
- 与磁道关系:柱面数=单个盘面的磁道数,二者本质相同
- 应用场景:考题可能用柱面数替代磁道数描述磁盘结构
- 存储区域
- 层级关系:
- 硬盘→多个盘面→多个磁道→多个扇区
- 扇区(块)是读写最小单位,数据结构外部排序中称为磁盘块
- 簇概念:某些操作系统中多个扇区的集合,作用等同于放大版的扇区
- 层级关系:
6.2 性能指标
- 平均存储时间
- 组成要素:
- 寻道时间:磁头移动到目标磁道的时间(取最内到最外圈时间的一半)
- 旋转延迟:盘面旋转使目标扇区到达磁头下方的时间(取旋转一圈时间的一半)
- 传输时间:实际读取数据的时间
- 计算要点:前两项取平均值,后一项根据题设具体计算
- 组成要素:
- 数据传输率
- 公式:D=rN(r为转速转/秒,N为单磁道容量)
- 原理:单位时间内通过磁头的数据量,与转速和磁道容量成正比
- 磁盘地址
- 字段顺序:驱动器号→柱面号→盘面号→扇区号
- 考试重点:柱面号(确定磁道)、盘面号(确定具体盘面)、扇区号(定位数据)
- RAID
- 技术本质:通过冗余磁盘阵列提高数据安全性和读写性能
- 各级别特点:
- RAID 0:无冗余,数据分散存储(速度快但无容错)
- RAID 1:镜像备份(安全性高但存储效率低)
- RAID 2:海明码纠错(已淘汰)
- RAID 3/4:位交叉/块交叉奇偶校验(专用校验盘)
- RAID 5:分布式奇偶校验(校验信息均匀分布)
6.3 固态硬盘SSD
- 优势:随机访问快、能耗低、抗震强、安全性高
- 缺陷:存在写磨损(每个块约10万次写入寿命)、随机写速度慢
固态硬盘的结构
- 存储单元:
- BBB个块→每个块PPP页(数据按页读写)
- 写入机制:
- 必须先擦除整个块才能写入页
- 修改含数据页时,需将有效页复制到新块
- 擦除特性:以块为单位擦除,不能单独擦除页
6.4 练习
本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客