
计算机系统结构 (第11讲) 主讲人:郑纬民 教授 清华大学计算机系
计算机系统结构 (第11讲) 主讲人: 郑纬民 教授 清华大学计算机系

第三章存储系统 现代计算机系统都以存储器为中心 在计算机运行过程中,存储器是各种 信息存储和交换的中心 3.1存储系统原理 3.2虚拟存储器 3.3高速缓冲存储器(Cache) 3.4三级存储系统
第三章 存储系统 现代计算机系统都以存储器为中心 在计算机运行过程中,存储器是各种 信息存储和交换的中心 3.1 存储系统原理 3.2 虚拟存储器 3.3 高速缓冲存储器 (Cache) 3.4 三级存储系统

3.2虚拟存储器 1961年英国曼彻斯特大学Kilbrn等人提出 70年代广泛地应用于大中型计算机系统中 目前许多微型机也开始使用虚拟存储器 3.2.1虚拟存储器工作原理 3.2.2地址的映象和变换方法 3.3.3加快内部地址变换速度的方法 3.3.4页面替换算法及其实现方法 3.3.5提高主存命中率的方法
3.2 虚拟存储器 1961年英国曼彻斯特大学Kilbrn等人提出 70年代广泛地应用于大中型计算机系统中 目前许多微型机也开始使用虚拟存储器 3.2.1 虚拟存储器工作原理 3.2.2 地址的映象和变换方法 3.3.3 加快内部地址变换速度的方法 3.3.4 页面替换算法及其实现方法 3.3.5 提高主存命中率的方法

3.2.1虚拟存储器工作原理 把主存储器、磁盘存储器和虚拟存储 器都划分成固定大小的页,主存储器 的页称为实页,虚拟存储器中的页称 为虚页。 个主存地址A由两部分组成,实页号 p和页内偏移d 一个虚地址AV由三部分组成,用户号 U、虚页号P和页内偏移D
3.2.1 虚拟存储器工作原理 把主存储器、磁盘存储器和虚拟存储 器都划分成固定大小的页,主存储器 的页称为实页,虚拟存储器中的页称 为虚页。 一个主存地址A由两部分组成,实页号 p和页内偏移d 一个虚地址Av由三部分组成,用户号 U、虚页号P和页内偏移D

用户号U 虚页号P 页内偏移D 多用户虚拟地址Av的组成 实页号p 页内偏移d 主存地址A的组成 内部地址变换: 多用户虚拟地址Av变换成主存实地 址A 多用户虚拟地址中的页内偏移D直 接作为主存实地址中的页内偏移d 主存实页号p与它的页内偏移d直接 拼接起来就得到主存实地址A
用户号U 虚页号P 页内偏移D 多用户虚拟地址Av的组成 实页号p 页内偏移d 主存地址A的组成 内部地址变换: 多用户虚拟地址Av变换成主存实地 址A 多用户虚拟地址中的页内偏移D直 接作为主存实地址中的页内偏移d 主存实页号p与它的页内偏移d直接 拼接起来就得到主存实地址A

外部地址变换: 首先查外页表得到磁盘存储器实地址 把磁盘存储器实地址和主存储器实页 号送入输入输出处理机 把要访问数据所在的一整页都从磁盘 存储器调入到主存储器 3.2.2地址的映象与变换 三种地址空间:虚拟地址空间,主存储 器地址空间,辅存地址空间 地址映象: 把虚拟地址空间映象到主存地址空间
外部地址变换: 首先查外页表得到磁盘存储器实地址 把磁盘存储器实地址和主存储器实页 号送入输入输出处理机 把要访问数据所在的一整页都从磁盘 存储器调入到主存储器 3.2.2 地址的映象与变换 三种地址空间:虚拟地址空间,主存储 器地址空间,辅存地址空间 地址映象: 把虚拟地址空间映象到主存地址空间

>磁盘存储器地址 访磁盘存储器个 命中 外部地址变换 键带特虚页号→磁盘实地址 外部地址变换☑不U+P P D A多用户虚地址 主存页面失效 U+P 未命中 内部地址变换 选页 命中虚页号→主存实页号 主存页面表 0页 主存未满,主存满 1页 访问主存 页面 多 替换算法 … 2P-1 0页 主存页号 0页 1页 调入页 I/0处理机 调大页 1页 被替换页 (I/0通道) 替换页 用 2°-1 主存储器 磁盘存储器 图页式虚拟存储器工作原理
磁盘存储器地址 访磁盘存储器 命中 外部地址变换 未命中 访磁带等 虚页号→磁盘实地址 外部地址变换 U+P U P D Av 多用户虚地址 主存页面失效 U+P 未命中 内部地址变换 选页 命中 虚页号→主存实页号 主存页面表 0 页 主存未满 主存满 1 页 X 访问主存 p d A 页面 … 用 替换算法 … 户 2 P -1 0 页 主存页号 0 页 1 页 调入页 I/O 处理机 调入页 1 页 Y … 被替换页 (I/O 通道) 替换页 用 … … 户 2 p -1 … 主存储器 磁盘存储器 图页式虚拟存储器工作原理

地址变换:在程序运行时,把虚地址变 换成主存实地址 因地址映象和变换方法不同,有三种虚 拟存储器:页式虚拟存储器、段式虚 拟存储器、段页式虚拟存储器 1、段式虚拟存储器 地址映象方法:每个程序段都从0地址开 始编址,长度可长可短,可以在程序 执行过程中动态改变程序段的长度
地址变换:在程序运行时,把虚地址变 换成主存实地址 因地址映象和变换方法不同,有三种虚 拟存储器:页式虚拟存储器、段式虚 拟存储器、段页式虚拟存储器 1、段式虚拟存储器 地址映象方法:每个程序段都从0地址开 始编址,长度可长可短,可以在程序 执行过程中动态改变程序段的长度

段写段长起址 0 住程序 (0段) 0 1k 8k 1k 8k 1 500 16k 0 1段 2 200 9k 500 3 200 30k 16k 0 2段 200 30k 0 3段 200 程庭 空间 主存储器
主程序 (0段) 1k 1段 2段 3段 0 500 0 200 0 200 0 段号 段长 起址 0 1k 8k 1 500 16k 2 200 9k 3 200 30k 0 8k 9k 16k 30k 程序 空间 主存储器

地址变换方法: 由用户号找到基址寄存器 从基址寄存器中读出段表的起始地址 把起始地址与多用户虚地址中段号相 加得到段表地址 把段表中给出的起始地址与段内偏移D 相加就能得到主存实地址
地址变换方法: 由用户号找到基址寄存器 从基址寄存器中读出段表的起始地址 把起始地址与多用户虚地址中段号相 加得到段表地址 把段表中给出的起始地址与段内偏移D 相加就能得到主存实地址