计算机体系结构(一)虚拟存储器
堆栈型替换算法
- 1定义:
- 2特点:随着分配给程序的主存页面增加,主存的命中率也要提高,至少不减少
命中率
- 命中率与程序页面的访问顺序(页地址流)有关,和页面数目有关
- 程序的页地址流与程序员编写的程序有关
页式虚拟存储器实现中的问题
- 1页面失效的问题:
出现原因:页面的划分是机械的等分,与程序的逻辑结构无关,可能造成跨页
发生时间:一条指令的分析或执行过程中,是一种故障,必须马上处理 - 2后援寄存器:
把发生页面失效时指令的现场全部保存下来
有的机器采用预判技术
提高虚拟存储器等效访问速度的措施
- 1提高主存命中率
- 2尽可能短的主存访问时间
快慢表
- 快表:小容量,硬件实现
- 慢表:快表中查不到,从慢表中查找按地址访问,软件实现
散列函数 - 目的:把相邻访问改成按地址访问
影响主存命中率和CPU效率的某些因素
颠簸现象:刚调出的页就被访问到了
影响主存命中率的因素:
- 1程序执行过程中的页地址流分布情况
- 2所采用的页面替换算法
- 3页面大小:页面大小为某个值的时候,命中率最大
- 4主存储器的容量:命中率随主存容量增大单调上升,到某个值后停止
-
5所采用的页面调度算法:
请求式(微机使用:用到的时候进行调入)
预取式(大型计算机:把程序上次停止前用到的页面调入)高速缓冲存储器
主要弥补主存速度的不足
地址的映像与变换
全相联映像
cache为什么快?cache全由硬件实现
LRU硬件算法实现替换:
堆栈法
比较对法
计算机系统结构(二)Cache
堆栈法
- 用一个堆栈来记录组相联
- 栈顶的是最近访问的,栈底是最久访问的
- 寄存器堆栈可以从中间抽出,从上边压入,元素能依次下移(个人感觉类似双链表)
- 堆栈的内容必须动态更新
- 所需的硬件
- 相联比较
- 能全部下移
- 速度较低,成本较高
比较对法
- T_AB = 1则A比B先访问,否则B比A先访问
- 需要触发器来实现,个数与比较对的数目相同
Cache存储器的透明性及性能分析
- Cache存储器的透明性及性能分析
- 写策略
- 写直达法
- 执行写的操作时,不仅写入Cache,也写入一级存储器
- 写回法
- 执行写操作时,只写入Cache,仅当块被改动的时候才写回主存,需要标志位
- 减少写停顿的方法:写缓冲器
按写分配
- 写不命中,先写到Cache,再调入
不按写分配
2.Cache的取算法
3.预取:
- 按需取:Cache不命中,取下一块
- 恒预取:无论Cache是否命中,都把下一块去到Cache中
- 不命中预取:Cache不命中,取本块和下一块
Cache的性能分析:
与命中率有关,命中率越高,提升的速度倍数越大
4.4三级存储体系
4.5存储系统的保护
区域保护:
- 防止一个用户程序破坏其它程序或系统软件
- 实现方法:
- 界限寄存器方式:每个用户区域设置上下界
- 特点:适用于用户区连续的情况
- 页表保护:
- 特点:是一种没有形成主存实地址前
- 访问方式的保护:保证数据合法访问
重叠原理
重叠原理与一次重叠
访问主存的冲突
(1)操作数和指令分别存在两个独立编
多体交叉
指令缓冲寄存器