内容正文:
1.全相联映射方式
把主存中的内容划分为若干字节数量相等的数据块,每块存储的字节数与Cache中任意一行中的数据字节相等,则主存中某一块的若干字节可以复制(映射)到Cache中的任意一行中。
11.3.2 高速缓冲存储器的组织方式
1.全相联映射方式
图11.3.5 全相联映射方式
11.3.2 高速缓冲存储器的组织方式
2.直接映射方式
直接映射方式是一种多对一的映射方式。但是,一个主存块只能复制(映射)到Cache的一个特定行内,而不是任一行内。
直接映射方式采用如下直接映射函数:
j= i mod 2c
其中,i为主存字块号,j为Cache字块号,2c为Cache字块数,等于主存每页字块数。
11.3.2 高速缓冲存储器的组织方式
2.直接映射方式
图11.3.6 直接映射方式
11.3.2 高速缓冲存储器的组织方式
3.组相联映射方式
组相联映射方式将Cache分成u组,每组有v行,主存块存放到哪一组是固定的,至于存放到哪一行是任意的,设Cache行的总数量为C,组号为q,主存块号为i,则有如下函数关系。
C = u×v
q= i mod u
按这种映射方式,组间为直接映射方式,而组内的字块为全相联映射方式。
11.3.2 高速缓冲存储器的组织方式
1.随机替换策略
2.先入先出替换策略(First In First Out,FIFO)
3.近期最少使用替换策略(Least Recently Used,LRU)
11.3.2 高速缓冲存储器的3种替换策略
11.4 虚拟存储器
11.4.1 虚拟存储器概述
11.4.2 虚拟存储器的实现技术
1.虚拟存储器的基本原理
将主存和辅存的地址空间统一编址,形成一个庞大的存储空间。从效果上看,这样的计算机系统好像为用户提供了一个存储容量比实际内存大得多的存储器,这个存储器被称为虚拟存储器。
程序运行时,允许存在虚拟存储器中的数据或程序只有一部分调入主存,CPU以虚地址访问主存,硬件和软件找出虚地址和物理地址的对应关系,判断这个虚地址指示的存储单元内容是否已装入内存。
如果在主存,CPU就直接执行程序块并从辅存调入主存,并把程序虚地址变成实地址,覆盖原先存在的一部分程序后继续运行。这种调度是以程序块为单元进行的。
11.4.1 虚拟存储器概述
2.虚拟存储器的本质
其本质是将程序的访问地址和内存的可用地址分离,为用户提供一个大于实际主存的虚拟存储器。
虚存是指具有请求调入和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
虚存指的是“主存-辅存”层次,它能使计算机具有辅存的容量,接近于主存的速度和辅存的每位成本,使得程序员可以按比主存大得多的空间来编制程序,即按虚存空间进行编址。
3.虚拟存储器的实现基础
理论基础是程序执行时的局部性原理。局部性原理是指程序在执行过程中一个较短时间内,程序所执行的指令地址和操作数地址分别局限于一定区域内。
11.4.1 虚拟存储器概述
1.段式存储管理技术
1)段的概念
段是利用程序的模块化性质,按照程序的逻辑结构和功能结构划分成的多个相对独立的程序段部分。
可用段名或段号来标明程序段,每个段的长度是随意的,由指令的条数确定。
段作为独立的逻辑单位可以被其他程序段调用,这样就形成了段间连接,产生了规模较大的程序。
11.4.2 虚拟存储器的实现技术
2)段式存储管理
当运行由若干段组成的程序时,把主存按段进行分配与管理,以段作为信息单位,实现在主存-辅存之间的传送。
3)段表
段式存储管理的核心问题是,将逻辑地址中的逻辑段号改为主存中的一个存储区的起始地址,这是通过在系统中(一般在主存中)设置一个段表来完成的。
段表用来指明各段在主存中的位置,每段都有它的名称、段起点、段长、段的装入位等。段表本身也是主存储器的一个可重定位段。
11.4.2 虚拟存储器的实现技术
2.页式存储管理技术
1)页式管理
信息传送单位是定长的页。
主存的物理空间也被划分为等长的固定区域,称为页面。
在页式虚拟存储系统中,把虚拟空间分成页,主存空间也分成同样大小的页,称为实页或物理页,而把前者称为虚页或逻辑页。
11.4.2