版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 存储系统,3.1 存储器概述 3.2 随机读写存储器 3.3 只读存储器和闪速存储器 3.4 高速存储器 3.5 cache存储器3.6 虚拟存储器 3.7 存储保护,3.1 存储器概述 3.1.1 存储器分类,存储器是计算机系统中的记忆设备,用来存放程序和数据。构成存储器的存储介质,目前主要采用半导体器件和磁性材料。存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,它可存储一个二进制代码。由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。 根据存储材料的性能及使用方法不同,存储器有各种不同的分类方法:, 按存储介质分 半导体存储器
2、:用半导体器件组成的存储器。 磁表面存储器:用磁性材料做成的存储器。 按存储方式分 随机存储器:任何存储单元的内容都能被随 机存取,且存取时间和存储单 元的物理位置无关。 顺序存储器:只能按某种顺序来存取,存取 时间和存储单元的物理位置 有关。, 按存储器的读写功能分 只读存储器(ROM):存储的内容是固定不变的, 只能读出而不能写入的半导体存储器。 随机读写存储器(RAM):既能读出又能写入的 半导体存储器。 按信息的可保存性分 非永久记忆的存储器:断电后信息即消失的 存储器。 永久记忆性存储器:断电后仍能保存信息的 存储器。 按在计算机系统中的作用分 根据存储器在计算机系统中所起的作用,可
3、分为主存储器、辅助存储器、高速缓冲存储器、控制存储器等。,3.1.2 存储器的分级结构,为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。,图3.1 存储器系统的分级结构,外存储器,主存储器,高速缓冲存储器,3.1.3 主存储器的技术指标,主存储器的性能指标主要是: 存储容量 存取时间 存储周期 存储器带宽 字存储单元即存放一个机器字的存储单元,相应的地址称为字地址。一个机器字可以包含数个字节,所以一个存储单元也可包含数个能够单独编址的字节地址。 下面列出主存储器的主要几项技术指标:,表3.2 主存储器的主要几项
4、技术指标,3.2 随机读写存储器 3.2.1 SRAM存储器 1. 基本存储元,基本存储元是组成存储器的基础和核心,它用来存储一位二进制信息0或1。下图一个是六管SRAM存储元的电路结构示意图。 它是由两个MOS反相器交叉耦合而成的触发器,一个存储元存储一位二进制代码。这种电路有两个稳定的状态,并且A,B两点的电位总是互为相反的,因此它能表示一位二进制的1和0。下面我们来分析说明该存储元的读写操作实现过程。,2. SRAM存储器的组成,图示3.3为SRAM存储器的结构框图。,其内部组成结构是: 存储体:存储单元的集合,通常用X选择线(行线)和Y选择线(列线)的交叉来选择所需要的单元。 地址译码
5、器:将用二进制代码表示的地址转换成输出端的高电位,用来驱动相应的读写电路,以便选择所要访问的存储单元。地址译码有两种方式。 单译码:适用于小容量存储器,一个地址译码器 双译码:适用于大容量存储器,X向和Y向两个译码器。,图示说明了一个采用双译码结构的存储单元矩阵的译码过程,驱动器: 双译码结构中,在译码器输出后加驱动器,驱动挂在各条X方向选择线上的所有存储元电路。 I/O电路:处于数据总线和被选用的单元之间,控制被选中的单元读出或写入,放大信息。 片选: 在地址选择时,首先要选片,只有当片选信号有效时,此片所连的地址线才有效。 输出驱动电路: 为了扩展存储器的容量,常需要将几个芯片的数据线并联
6、使用;另外存储器的读出数据或写入数据都放在双向的数据总线上。这就用到三态输出缓冲器。,3. SRAM存储器芯片实例,在了解了SRAM的内部组成结构后,下面我们通过实际中的存储器芯片来加以具体说明。下图是2114存储器芯片(1K4)的逻辑结构方框图。 注意:由于读操作与写操作是分时进行的,读时不写,写时不读,因此,输入三态门与输出三态门是互锁的,数据总线上的信息不致于造成混乱。,4. 存储器与CPU连接 ,CPU对存储器进行读/写操作,首先由地址总线给出地址信号,然后要发出读操 作或写操作的控制信号,最后在数据总线上进行信息交流,要完成地址线的连接、数据线的连接和控制线的连接。 存储器芯片的容量
7、是有限的,为了满足实际存储器的容量要求,需要对存储器进行扩展。主要方法有: 位扩展法 字扩展法 字位同时扩展法, 位扩展法: 只加大字长,而存储器的字数与存储器芯片字数一致,对片子没有选片要求使用。下图为8K1的RAM存储器芯片,组成8K8位的存储器连接结构图。, 字扩展法: 仅在字向扩充,而位数不变。需由片选信号来区分各片地址。下图是用16K8位的芯片采用字扩展法组成64K8位的存储器存储器连接结构图。 字位同时扩展法: 一个存储器的容量假定为MN位,若使用Lk 位的芯片(LM,kN),需要在字向和位向同时进行扩展。此时共需要(M/L(N/k)个存储器芯片。,5. 存储器的读、写周期,在与C
8、PU连接时,CPU的控制信号与存储器的读、写周期之间的配合问题是非常重要的。 读周期: 读周期与读出时间是两个不同的概念。读出时间是从给出有效地址到外部数据总线上稳定地出现所读出的数据信息所经历的时间。读周期时间则是存储片进行两次连续读操作时所必须间隔的时间,它总是大于或等于读出时间。 写周期: 要实现写操作,要求片选CS和写命令WE信号都为低,并且CS信号与WE信号相“与”的宽度至少应为tW。,图3.8 2114的读写周期时序图,3.2.2 DRAM存储器1四管动态存储元,四管的动态存储电路是将六管静态存储元电路中的负载管T3,T4去掉而成的。它和六管静态存储元电路的区别: 写操作: 写数据
9、靠T1,T2管栅极电容的存储作用,在一定时间内可保留所写入的信息。 读操作: 先给出预充信号,使两个预冲电容达到电源电压。字选择线使T5,T6管导通时,存储的信息通过A,B端向位线输出。 刷新操作: 为防止存储的信息电荷泄漏而丢失信息,由外界按一定规律不断给栅极进行充电,补足栅极的信息电荷。,2. 单管动态存储元,单管动态存储元电路由一个管子T1和一个电容C构成。 写入:字选择线为“1”,T1管导通,写入信息由位线(数据线)存入电容C中; 读出:字选择线为“1”,存储在电容C上的电荷,通过T1输出到数据线上,通过读出放大器即可得到存储信息。,单管存储元电路和四管存储元电路对比,3. DRAM存
10、储芯片实例, DRAM存储器芯片的结构大体与SRAM存储器芯片相似,由存储体与外围电路构成。但它集成度要高,外围电路更复杂。下图是16K1位的DRAM存储器2116芯片的引脚图和内部逻辑结构示意图和其读写时序图。,图3.11 16K1位DRAM芯片,4. DRAM的刷新, 动态MOS存储器采用“读出”方式进行刷新。从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止,这一段时间间隔叫刷新周期。 常用的刷新方式有三种: 集中式 分散式 异步式,集中式刷新:在整个刷新间隔内,前一段时间重复进行读/写周期或维持周期,等到需要进行刷新操作时,便暂停读/写或维持周期,而逐行刷新整个存储器,它
11、适用于高速存储器。下图为刷新方式图。 分散式刷新:把一个存储系统周期tc分为两半,周期前半段时间tm用来读/写操作或维持信息,周期后半段时间tr作为刷新操作时间。这样,每经过128个系统周期时间,整个存储器便全部刷新一遍。 异步式刷新:是前两种方式的结合。即对每一行在2ms之内相隔平均间隔刷新一次。,图3.14(a)集中刷新方式,图3.14(b) 分散刷新方式,5. DRAM存储器控制电路,DRAM存储器的刷新需要有硬件电路的支持,包括刷新计数器、刷新/访存裁决、刷新控制逻辑等。这些控制线路形成DRAM控制器,它将CPU的信号变换成适合DRAM片子的信号。 (1)地址多路开关:刷新时需要提供刷
12、新地址,由多路开关进行选择。 (2)刷新定时器: 定时电路用来提供刷新请求。 (3)刷新地址计数器:只用RAS信号的刷新操作,需要提供刷新地址计数器。 (4)仲裁电路:对同时产生的来自CPU的访问存储器的请求和来自刷新定时器的刷新请求的优先权进 行裁定。 (5)定时发生器:提供行地址选通信号RAS、列地址选通信号CAS和写信号WE.,3.2.3 主存储器组成实例,本节以DRAM控制器W4006AF为例,说明80386中主存储器的构成方法。 下面是采用W4006AF构成的80386主存储器简图,具体框图参看教材:P87页 (1)W4006AF的外特性 可以控制两个存储体交叉访问; 可以对256K
13、B16MB的DRAM片子进行访问; 最多可控制128个DRAM片子; 采用CAS在RAS之前的刷新方式。,图3.17 采用W4006AF构成的80386主存储器,(2)主存储器组成 上图右半部所示为80386主存储器的基本构成,有4 个存储模块,每个模块存储容量为1M32位。在用W4006AF控制器构成存储器时,几乎不需要外加电路,直接把W4006AF同CPU和DRAM双方进行连接即可。要对主存容量进行扩充,只需扩充DRAM芯片数量或更换存储容量更大的DRAM芯片即可。,3.2.4 高性能的主存储器1. EDRAM芯片,EDRAM芯片又称增强型DRAM芯片,它是在DRAM 芯片上集成了一个SR
14、AM实现的小容量高速缓冲存储器,从而使DRAM芯片的性能得到显著改进。 以SRAM保存一行内容的办法,对成块传送非常有利。如果连续的地址高11位相同,意味着属于同一行地址,那么连续变动的9位列地址就会使SRAM中相应位组连续读出,这称为猝发式读取。 EDRAM的这种结构还带来另外两个优点: 在SRAM读出期间可同时对DRAM阵列进行刷新。 芯片内的数据输出路径与输入路径是分开的,允许在写操作完成的同时来启动同一行的读操作。,2. EDRAM内存条, 一片EDRAM的容量为1M4位,8片这样的芯片可组成1M32位的存储模块。 8个芯片共用片选信号Sel、行选通信号RAS、刷新信号Ref和地址输入
15、信号A0A10。当某模块被选中,此模块的8个EDRAM芯片同时动作,8个4位数据端口D3D0同时与32位数据总线交换数据,完成一次32位字的存取。 上述存储模块本身具有高速成块存取能力,这种模块内存储字完全顺序排放,以猝发式存取来完成高速成块存取的方式,在当代微型机中获得了广泛应用。,3. 主存物理地址的存储空间分布, 下面以奔腾PC机主存为例,说明主存物理地址的存储空间概念。 奔腾PC机主存物理地址存储空间分布情况如下图。 最大可访问主存空间为256MB,实际只安装了16MB的DRAM。 存储空间分成基本内存、保留内存、扩展内存几部分。,3.3 只读存储器和闪速存储器3.3.1 只读存储器
16、(ROM),1. ROM的分类 只读存储器简称ROM,它只能读出,不能写入。它的最大优点是具有不易失性。 根据编程方式不同,ROM通常分为三类: 掩模式ROM: 又称 mask ROM 一次编程ROM: 又称 PROM 多次编程ROM: 又称 EPROM,EEPROM,掩模式ROM:数据在芯片制造过程中就已经被确定。其特点是可靠性和集成度高,价格便宜,但不能重写。 一次编程ROM:用户可自行改变产品中某些存储元可以根据用户需要编程只能一次性改写。 多次编程ROM:可以用紫外光照射或电擦除原来的数据,然后再重新写入新的数据可以多次改写ROM中的内容。,2. 光擦可编程只读存储器(EPROM) (
17、1) 基本存储元电路 P沟道EPROM的基本电路结构示意图如下。它与普通P沟道增强型MOS电路相似,在N型基片上生长了两个高浓度的P型区,通过欧姆接触,分别引出源极(S)和漏极(D)。在S极和D极之间,有一个由多晶硅做的栅极,但它是浮空的,被绝缘物SiO2所包围。当管子制造好时,硅栅上没有电荷,所以源极和漏极之间是不导电的。,当把EPROM管子用于存储矩阵时,一个基本存储元电路如下图所示,这种电路所组成的存储矩阵输出为“1”,当写入“0”时,在D和S极之间加上25V高压,另外加上编程脉冲,所选中的单元在这个电压作用下,D和S之间被瞬间击穿,于是有电子通过绝缘层注入到硅栅。当高压去除后,因为硅栅
18、被绝缘层包围,故注入的电子无处泄露,硅栅变负,于是就形成了导电沟道,从而使EPROM存储元导通,输出为“0”。 由这种EPROM做成的片子封装上方有一个石英玻璃窗口。当用紫外线照射窗口时,所有电路中的浮空晶栅上的电荷会形成光电流泄漏走,使电路恢复道起始状态。输出变为“1”。,(2) EPROM实例(2716的内部结构图),【例3】CPU的地址总线16根(A15A0,A0为低位),双向数据总线8根(D7D0),控制总线中与主存有关的信号有MREQ(允许访存, 低电平有效),R/W(高电平为读命令,低电平为写命令)。主存地址空间分配如下:08191为系统程序区,由只读存储芯片组成;81923276
19、7为用户程序区;最后(最大地址)2K地址空间为系统程序工作区。上述地址为十进制,按字节编址。现有如下存储器芯片:EPROM:8K8位(控制端仅有CS);SRAM:16K1位,2K8位,4K8位,8K8位.请从上述芯片中选择适当芯片设计该计算机主存储器,画出主存储器逻辑框图,注意画出选片逻辑(可选用门电路及38译码器74LS138)与CPU 的连接,说明选哪些存储器芯片,选多少片。,【解】 主存地址空间分布如图所示。,根据给定条件,选用EPROM:8K8位芯片1片。SRAM:8K8位芯片3片,2K8位芯片1片。38译码器仅用Y0,Y1,Y2,Y3和Y7输出端,且对最后的2K8位芯片还需加门电路译
20、码。主存储器的组成与CPU连接逻辑图如下图所示。,图3.24主存储器组成与CPU的连接逻辑图,3.3.2 闪速存储器,闪速存储器是一种高密度、非易失性的读/写半导体存储器,它突破了传统的存储器体系,改善了现有存储器的特性。 其特点: 固有的非遗失性 廉价的高密度 可直接执行 固态性能 下图是28F256A闪存芯片的逻辑方框图。除了指令寄存器在内的控制和定时逻辑,其余部分与一般半导体存储器的结构相似。 其中VCC(+5V)是对器件供电,VPP(+12V)是擦除/编程供电的电源。,1. 闪速存储器的工作原理, 闪速存储器是在EPROM功能基础上增加了电路的电擦除和重新编程能力。 闪存28F256A
21、引入一个指令寄存器来实现这种功能。其作用是: (1) 保证TTL电平的控制信号输入; (2) 在擦除和编程过程中稳定供电; (3) 最大限度的与EPROM兼容。 当VPP引脚不加高电压时,它只是一个只读存储器;当VPP引脚加高电压时,则通过指令寄存器可以实现存储器内容的变更;当VPP=VPPL时,指令寄存器的内容为读指令,使28F256A成为只读存储器,称为写保护。,2. 闪速存储器的工作模式,读操作: 片选信号CE是供电控制端,输出允许信号OE用于控制数据从输出引脚的输出。只有这两个信号同时有效时,才能实现数据输出。 输出禁止操作: 当输出允许控制端OE处于高电平时,28F256A被禁止输出
22、,输出引脚置于高阻状态。 等待操作: 当片选信号CE处于逻辑高电平时,等待操作抑制了28F256A的大部分电路,减少器件功耗。 写操作: 当VPP为高电压时,通过指令寄存器实现器件的擦除和编程 。当CE=0且WE=0时,通过写周期对指令寄存器进行写入。,表3.4 28F256A工作模式,3. 闪速存储器与CPU的连接,CPU与闪速存储器进行连接的逻辑框图如下 中间部分是接口电路。地址总线和控制总线由CPU发向存储器和接口逻辑,数据总线为双向总线。 地址总线的宽度决定了存储器的存储容量,数据总线的宽度决定了存储器的字长。,3.4 高速存储器,由于CPU和主存储器是用不同的材料制成的,因而它们在速
23、度上是不匹配的,CPU运算速度很高,存储器的访问速度比较低。为了提高CPU的工作效率,加速CPU与存储器之间的数据传输,通常有以下几种方式来实现: 1. 采用更高速性能的存储器,加长存储器 的字长。 2. 采用并行操作的双端口存储器。 3. 在CPU和主存之间使用高速缓冲存储器 cache。 4. 在每个存储器周期中存取几个字。,3.4.1 双端口存储器,1. 双端口存储器的逻辑结构 双端口存储器是指同一个存储器具有两组相互独立的读写控制线路,是一种高速工作的存储器。 下图是2K16位双端口存储器IDT7133的逻辑功能方框图。它提供了两个相互独立的端口,即左端口右端口。它们分别具有各自的地址
24、线、数据线和控制线,可以对存储器中任何位置上的数据进行独立的存取操作。,2. 无冲突读写控制 当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。当任一端口被选中驱动时,就可对整个存储器进行存取,每一个端口都有自己的片选控制和输出驱动控制。,3. 有冲突的读写控制 当两个端口同时存取存储器同一存储单元时,便发生读写冲突。为解决此问题,特设置了BUSY标志。由片上的判断逻辑决定对哪个端口优先进行读写操作,而暂时关闭另一个被延迟的端口。 1.CE判断: 如果地址匹配且在CE之前有效,片上的控制逻辑在CEL和CER之间进行判断来选择端口。 2.地址有效判断: 如果CE在地址匹配之前
25、变低,片上的控制逻辑在左、右地址间进行判断来选择端口。,3.4.2 多模块交叉存储器1. 存储器的模块化组织, 一个由若干个模块组成的主存储器是线性编址的。这些地址在各模块有两种安排方式:一种是顺序方式,一种是交叉方式。 顺序方式:某个模块进行存取时,其他模块不工作,某一模块出现故障时,其他模块可以照常工作,通过增添模块来扩充存储器容量比较方便。但各模块串行工作,存储器的带宽受到了限制。,交叉方式:地址码的低位字段经过译码选择不同的模块,而高位字段指向相应模块内的存储字。连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的。对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器
26、的带宽。,2. 多模块交叉存储器的基本结构,四模块交叉存储器结构框图如下图: 每个模块各自以等同的方式与CPU传送信息。CPU同时访问四个模块,由存储器控制部件控制它们分时使用数据总线进行信息传递。这是一种并行存储器结构。,下面做定量分析:我们认为模块字长等于数据总线宽度,模块存取一个字的存储周期为T,总线传送周期为,存储器的交叉模块数为m,为了实现流水线方式存取,应当满足 T = m (m=T/称为交叉存取度) 交叉存储器要求其模块数必须大于或等于m,以保证启动某模块后经m时间再次启动该模块时,它的上次存取操作已经完成。这样,连续读取m 个字所需的时间为 t1=T+(m-1) 而顺序方式存储
27、器连续读取m个字所需时间为t2=mT。交叉存储器的带宽确实大大提高了。,【例4】设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期=50ns。问顺序存储器和交叉存储器的带宽各是多少? 【解】 顺序存储器和交叉存储器连续读出m=4个字的信息总量都是:q=64位4=256位 顺序存储器和交叉存储器连续读出4个字所需的时间分别是: t2=mT=4200ns=800ns=810-7s; t1=T+(m-1)=200ns+350ns=350ns=3510-7s 顺序存储器和交叉存储器的带宽分别是: W2=q/t2=25
28、6(810-7)=32107位/s; W1=q/t1=256(3510-7)=73107位/s,3.4.3 相联存储器,1. 相联存储器的基本原理 前面介绍的存储器都是按地址访问的存储器,而相联存储器是按内容访问的存储器。相联存储器是指其中任一存储项内容作为地址来存取的存储器。选用来寻址存储器的子段叫做关键字。存放在相联存储器中的项可以看成具有KEY,DATA这样的格式。其中KEY是地址,DATA是被读写信息。 相联存储器的基本原理是把存储单元所存内容的某一部分作为检索项(即关键字项),去检索该存储器,并将存储器中与该检索项符合的存储单元内容进行读出或写入。,表3.7 存放在存储器中的一张表格
29、,物理地址 n n+1 n+2,2. 相联存储器的组成 相联存储器由存储体、检索寄存器、屏蔽寄存器、符合寄存器、比较线路、代码寄存器、控制线路等组成,结构框图如下图。 检索寄存器:用来存放检索字,其位数和相联存储器的存储单元位数相等。 屏蔽寄存器:用来存放屏蔽码,其位数和检索寄存位数相同。 符合寄存器:用来存放按检索项内容检索存储体中与之符合的单元地址,其位数等于相联存储器的存储单元位数,每一位对应一个存储单元,位的序数即为相联存储器的单元地址。, 比较线路:把检索项和从存储体中读出的所有单元内容的相应位进行比较,如果有某个存储单元和检索项符合,就把符合寄存器的相应位置“1”,表示该字已被检索
30、 。 代码寄存器:用来存放存储体中读出的代码,或者存放向存储体中写入的代码。 存储体:由高速半导体存储器构成,以求快速存取。 在计算机系统中,相联存储器主要用于虚拟存储器中存放分段表、页表和快表;在高速缓冲存储器中,相联存储器作为存放cache的行地址之用。这是因为,在这两种应用中,都需要快速查找。,3.5 cache存储器3.5.1 cache基本原理1. cache的功能,cache是介于CPU和主存之间的小容量存储器,存取速度比主存快。它能高速地向CPU提供指令和数据,加快程序的执行速度。它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术 。,2. cache的基本原理,CPU与
31、cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干定长字组成的。当CPU读取主存中一个字时,便发出此字的内存地址到cache和主存。此时cache控制逻辑依据地址判断此字当前是否在 cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。由始终管理着cache使用情况的硬件逻辑电路来实现LRU替换算法。,3. cache的命中率,增加cache的目的,就是在性能上使主存的平均读出时间尽可能接近cache的读出时间。因此,cache的命中率应接近于1。由于
32、程序访问的局部性 ,这是可能的。在一个程序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有,若tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则cache/主存系统的平均访问时间ta为: ta=htc+(1-h)tm (3.5) 设r=tm/tc表示主存慢于cache的倍率,e表示访问效率,则有:,为提高访问效率,命中率h越接近1越好,r值以510为宜,不宜太大。命中率h与程序的行为、cache的容量、组织方式、块的大小有关。,【例5】CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存
33、取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。 【解】 h = Nc/(Nc+Nm)=1900/(1900+100)=0.95 r = tm/tc=250ns/50ns=5 e = 1/(r+(1-r)h)=1/(5+(1-5)0.95)=83.3% ta = tc/e=50ns/0.833=60ns,3.5.2 主存与cache的地址映射,cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。 地址映射即是应用某种方法把主存地址定位到cache中。 址映射方式有三种:
34、全相联映射方式 直接映射方式 组相联映射方式,1. 全相联映射方式,主存中一个块的地址与块的内容一起存于cache的行中,其中块地址存于cache行的标记部分中。 这种方法可使主存的一个块直接拷贝到cache中的任意一行上,非常灵活。 它的主要缺点是比较器电路难于设计和实现,因此只适合于小容量cache采用。 全相联映射的示意图如下图:,全相联映射的cache组织,2. 直接相联映射方式,这也是一种多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。 cache的行号i和主存的块号j有如下函数关系: i=j mod m (m为cache中的总行数 ) 直接映射方式的示意图如
35、下: 直接相连映射方式的优点是硬件简单,成本低。缺点是每个主存块只有一个固定的行位置可存放,容易产生冲突。因此适合大容量cache采用。,直接相联映射的cache组织,3. 组相联映射方式,这种方式是前两种方式的折衷方案。它将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪 一行是灵活的,即有如下函数关系: muv 组号qj mod u 组相联映射的示意图如下: 组相联映射方式中的每组行数v一般取值较小,这种规模的v路比较器容易设计和实现。而块在组中的排放又有一定的灵活性,冲突减少。,3.5.3 替换策略,cache工作原理要求它尽量保存最新数据,必然要产生替换。 对直
36、接映射的cache来说,只要把此特定位置上的原主存块换出cache即可。 对全相联和组相联cache来说, 就要从允许存放新主存块的若干特定行中选取一行换出。cache的三种常用替换算法: 最不经常使用(LFU)算法 近期最少使用(LRU)算法 随机替换, 最不经常使用(LFU)算法 LFU算法将一段时间内被访问次数最少的那行数据换出。每行设置一个计数器。从0开始计数,每访问一次, 被访行的计数器增1。当需要替换时,将计数值最小的行换出,同时将这些行的计数器都清零。 这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内,不能严格反映近期访问情况。, 近期最少使用(LRU)算法 LRU算
37、法将近期内长久未被访问过的行换出。每行也设置一个计数器,cache每命中一次,命中行计数器清零,其它各行计数器增1。当需要替换时,将计数值最大的行换出。 这种算法保护了刚拷贝到cache中的新数据行,有较高的命中率。 随机替换 随机替换策略从特定的行位置中随机地选取一行换出。在硬件上容易实现,且速度也比前两种策略快。 缺点是降低了命中率和cache工作效率。,3.5.4 cache的写操作策略,cache的内容只是主存部分内容的拷贝,它应当与主存内容保持一致。当CPU对cache进行写操作时更改了cache的内容,所以需要更改的数据回写到相应主存中。cache内容的回写方式可选用如下几种写操作
38、策略: (1) 写回法:当CPU写cache命中时,只修改cache的内容,而不立即写入主存;只有当此行被换出时才写回主存。这种方法减少了访问主存的次数,但是存在不一致性的隐患。 实现这种方法时,每个cache行必须配置一个修改位,以反映此行是否被CPU修改过。,(2) 全写法 当写cache命中时,cache与主存同时发生写修改,因而较好地维护了cache与主存的内容的一致性。 当写cache未命中时,直接向主存进行写入。cache中每行无需设置一个修改位以及相应的判断逻辑。缺点是降低了cache的功效。 (3) 写一次法 基于写回法并结合全写法的写策略,写命中与写未命中的处理方法与写回法基
39、本相同,只是第一次写命中时要同时写入主存。这样使其它使用该块数据的能即时进行标识或作废处理,以便于维护系统全部cache的一致性。,3.5.5 奔腾PC机的cache,奔腾PC机采用两级cache结构。安装在主板上的2级cache(L2)采用2路组相联映射方式,集成在CPU内的1级cache(L1)也采用2路组相联映射方式,L1又是L2的子集,从而使L1未命中处理时间大大缩短。CPU中的L1分设成各8KB的指令cache和数据cache,有利于CPU高速执行程序。 数据cache采用2路组相联结构,采用LRU替换算法,一组两行共用一个LRU二进制位。数据cache的工作方式受CPU控制寄存器C
40、R0中CD和NW位组合状态控制。,CPU与外部数据交换时,存储器读写总线周期主要有两类: 一类是256位猝发式传送,用于L1的行填入和行写出,一次完成整行的填入或写出。 另一类是不经L1的64位传送 ,此时cache仅为高电平,称为非超高速缓存式传送。 L2级cache采用的是写回法,L1级数据cache采用的是写一次法。为了维护cache的一致性,L1和L2均采用MESI协议,即要求每个cache行有两个状态位,用以描述该行当前是处于修改态、专有态、共享态或者无效态中的哪种状态,从而决定对它的读/写操作行为。 总之,L2级cache的内容是主存的子集,而L1级cache又是L2级cache的
41、子集。L2负责整个系统的cache/主存一致性,L1负责响应L2,与L2一起维护L1/L2两个cache的一致性,保证三级存储系统的一致性。,3.6 虚拟存储器 3.6.1 虚拟存储器的基本概念,1. 什么是虚拟存储器 虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。 它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。 虚拟存储器指的是主存外存层次。它以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。此时程序的逻辑地址称为虚拟地址(虚地址)。,注意: 物理地址由CPU地址引脚送出,用于访问主存的地址。 虚拟地址由编译程序生成的,是程序
42、的逻辑地址,其地址空间的大小受到辅助存储器容量的限制。 主存外存层次所用的地址变换映射方法和替换策略与cache主存层次所用的方法和策略是相同的,即都基于程序局部性原理。它们遵循的原则是:,把程序中最近常用的部分驻留在高速的存 储器中。 一旦这部分变得不常用了,把它们送回到 低速的存储器中。 这种换入换出是由硬件或操作系统完成的 ,对用户是透明的。 力图使存储系统的性能接近高速存储器, 价格接近低速存储器。 两种存储系统的主要区别在于: 在虚拟存储器中未命中的性能损失要远大于cache系统中未命中的损失。,2. 主存-外存层次的基本信息传送单位 主存-外存层次的基本信息传送单位可采用几种不同的
43、方案:段、页或段页。 段是按照程序的逻辑结构划分成的多个相对独立部分,作为独立的逻辑单位。 优点是段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享;某些类型的段具有动态可变长度,允许自由调度以便有效利用主存空间。 缺点是因为段的长度各不相同,起点和终点不定,给主存空间分配带来麻烦,而且容易在段间留下许多空余的零碎存储空间,造成浪费。, 页是主存物理空间中划分出来的等长的固定区域。 优点是页面的起点和终点地址是固定的,方便造页表,新页调入主存也很容易掌握,比段式空间浪费小。 缺点是处理、保护和共享都不及段式来得方便。 段页式管理采用分段和分页结合的方法。 程序按模块分段,段内再分
44、页,进入主存以页为基本信息传送单位,用段表和页表进行两级定位管理。,3.6.2 页式虚拟存储器,页式虚拟存储系统中,虚拟空间分成页,称为逻辑页;主存空间也分成同样大小的页,称为物理页。 虚存地址分为两个字段:高字段为逻辑页号,低字段为页内行地址。 实存地址也分两个字段:高字段为物理页号,低字段为页内行地址。 页表中每一个虚存逻辑页号有一个表目,表目内容包含该逻辑页所在的主存页面地址(物理页号),用它作为实存地址的高字段,与虚存地址的页内行地址字段相拼接,产生完整的实主存地址,据此来访问主存。页式管理的地址变换如图,页式虚拟存储器结构,为了避免页表已保存或已调入主存储器时对主存访问次数的增多,把
45、页表的最活跃部分存放在高速存储器中组成快表。快表与慢表实现内部地址变换的方式如下图。 快表由硬件组成,比页表小得多,查表时,由逻辑页号同时去查快表和慢表,当在快表中有此逻辑页号时,就能很快地找到对应的物理页号送入实主存地址寄存器,从而做到虽采用虚拟存储器但访主存速度几乎没有下降。,3.6.3 段式虚拟存储器,在段式虚拟存储系统中,段是按照程序的逻辑结构划分的,各个段的长度因程序而异。 虚拟地址由段号和段内地址组成,为了把虚拟地址变换成实主存地址,需要一个段表。段表也是一个段,可以存在外存中,但一般是驻留在主存中 虚存地址的段表形式以及虚存地址向实存地址的变换过程如下图所示。,段式虚拟存储器地址
46、变换,段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合。 它把程序按逻辑单位分段以后,再把每段分成固定大小的页。 程序对主存的调入调出是按页面进行的,但它又可以按段实现共享和保护,兼备页式和段式的优点。 缺点是在映象过程中需要多次查表。,3.6.4 段页式虚拟存储器,在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行定位的。段表中的每个表目对应一个段,每个表目有一个指向该段的页表起始地址及该段的控制保护信息。由页表指明该段各页在主存中的位置以及是否已装入、已修改等状态信息。 如果有多个用户在机器上运行,多道程序的每一道需要一个基号,由它指明该道程序的段表起始地址。 虚拟地址格
47、式如下:,【例6】 假设有三道程序(用户标志号为A,B,C),其基址寄存器内容分别为SA,SB,SC ,逻辑地址到物理地址的变换过程如下图所示。在主存中,每道程序都有一张段表,A程序有4段,C程序有3段。每段应有一张页表,段表的每行就表示相应页表的起始位置,而页表内的每行即为相应的物理页号。请说明虚实地址变换过程。,【解】地址变换过程如下: 根据基号C执行SC加1 (段号)操作,得到段表相应行地址,其内容为页表的起始地址b。 执行b+2 (页号),得到物理页号的地址,其内容即为物理页10。 物理页号与页内地址拼接即得物理地址。如计算机只有一个基址寄存器,基号可不要,多道程序切换时,操作系统修改
48、基址寄存器内容。 可以看出,段页式虚拟存储系统由虚拟地址向主存地址的变换至少需要查两次表。,3.6.5 替换算法,虚拟存储器中的页面替换策略和cache中的行替换策略有很多相似之处,但有三点显著不同: (1) 缺页至少要涉及一次磁盘存取,读取所缺的页,缺页使系统蒙受的损失要比cache未命中大得多。 (2) 页面替换是由操作系统软件实现的。 (3) 页面替换的选择余地很大,属于一个进程的页面都可替换。,虚拟存储器中的替换策略一般采用LRU算法、LFU算法、FIFO算法,或将两种算法结合起来使用。 对于将被替换出去的页面,假如该页调入主存后没有被修改,就不必进行处理,否则就把该页重新写入外存,以
49、保证外存中数据的正确性。为此,在页表的每一行应设置一修改位。,3.6.6 虚拟存储器实例,1. 奔腾PC机的虚地址模式 奔腾PC的存储管理部件MMU包括分段部件SU和分页部件PU两部份,可允许SU,PU单独工作或同时工作。 分段不分页模式: 虚拟地址由一个16位的段参照和一个32位的偏移组成。分段部件SU将二维的分段虚拟地址转换成一维的32位线性地址。优点是无需访问页目录和页表,地址转换速度快。对段提供的一些保护定义可以一直贯通到段的单个字节级。,分段分页模式:在分段基础上增加分页存储管理的模式。即将SU部件转换后的32位线性地址看成由页目录、页表、页内偏移三个字段组成,再由PU部件完成两级页
50、表的查找,将其转换成32位物理地址。兼顾了分段和分页两种方式的优点。 不分段分页模式:这种模式下SU不工作,只是分页部件PU工作。程序也不提供段参照,寄存器提供的32位地址被看成是由页目录、页表、页内偏移三个字段组成。由PU完成虚拟地址到物理地址的转换。这种模式减少了虚拟空间,但能提供保护机制,比分段模式具有更大的灵活性。,2. 保护模式的分页地址转换 奔腾机4MB分页方式地址转换如下图。 页面(页框)大小为4MB的分页方使用单级页表,只进行一次主存访问,地址转换过程加快了。在此方式下,32位线性地址分为高10位的页面和低22位的页内偏移两个字段 。 页表项的I位指示页面大小,P位为出现位,A位为访问过位,D位为修改过位。RW位用于读/写控制,US位用于用户/监督控制,PCD位用于页cache禁止的控制,PWT位用于页全写法的控制。,奔腾4MB分页方式地址变换,3.7 存储保护,当多个用户共享主存时,就有多个用户和系统软件存于主存中,为使系统能正常工作,应防止由于一个用户程序出错而破坏其他用户的程序和系统软件,还要防止一个用户程序不合法地访问不是分配给它的主存区域。为此,系统应提供存储保护。通常采用的方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南新高考教研联盟暨长郡二十校联盟2026届高三第二次联考生物试题+答案
- 2025柳州职业技术学院教师招聘考试题目及答案
- 2025江西理工大学教师招聘考试题目及答案
- 2025昌吉职业技术学院教师招聘考试题目及答案
- 内师大哲学专业试题及答案
- 兰州财经会计考研试题及答案
- 2026年合肥中盐红四方肥业公司春季招聘建设笔试备考试题及答案解析
- 2026年中煤矿建集团招聘3人建设笔试备考试题及答案解析
- 2026陕西汉中市南郑区人民医院招聘11人建设考试参考试题及答案解析
- 2026吉林白山市事业单位招聘高层次和急需紧缺人才125人(1号)建设笔试备考试题及答案解析
- GA/T 2329-2025法庭科学虹膜图像相似度检验技术规范
- 5.1 建立良好的公共秩序 第一课时 课件2025-2026学年统编版道德与法治 五年级下册
- 2026广东东莞市塘厦镇招聘专职网格员7人考试参考试题及答案解析
- 血液透析中心静脉导管临床实践指南
- 2026年鄂尔多斯生态环境职业学院单招综合素质考试备考题库含详细答案解析
- 2026年《必背60题》京东TET管培生综合方向高频面试题包含详细解答
- 2026年二级建造师之二建建筑工程实务考试题库500道附完整答案(必刷)
- 2025年10月自考15040习概论试题及答案
- GB/T 4393-2008呆扳手、梅花扳手、两用扳手技术规范
- GB/T 34825-2017航天项目工作说明编写要求
- GB/T 14353.10-2010铜矿石、铅矿石和锌矿石化学分析方法第10部分:钨量测定
评论
0/150
提交评论