Presentation is loading. Please wait.

Presentation is loading. Please wait.

计算机组成原理 武汉科技大学 计算机科学与技术学院

Similar presentations


Presentation on theme: "计算机组成原理 武汉科技大学 计算机科学与技术学院"— Presentation transcript:

1 计算机组成原理 武汉科技大学 计算机科学与技术学院
计算机科学与技术专业 计算机组成原理 武汉科技大学 计算机科学与技术学院

2 第八章 输入输出系统 本章内容 3.1 存储器概述 3.2 随机读写存储器 3.3 只读存储器和闪速存储器 3.4 高速存储器
3.3  只读存储器和闪速存储器 3.4  高速存储器 3.5  cache存储器 3.6  虚拟存储器 3.7  存储保护

3 3.1 存储器概述 3.1.1 存储器分类 存储器的作用 用作计算机系统中的记忆设备,用来存放程序和数据。
  存储器中最小的存储单位就是存储元,它可存储一个二进制代码。由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。   根据存储材料的性能及使用方法不同,存储器有各种不同的分类方法:           双极型 MOS型 半导体器件 磁性材料 光材料 1.按存储介质分 磁盘、磁带 光盘

4 随机存储器:如半导体存储器 2. 按存储方式分 顺序存储器:如磁带存储器 半顺序存储器:如磁盘存储器 只读存储器(ROM)
4. 按信息的可保存性分 2. 按存储方式分 随机存储器:如半导体存储器 顺序存储器:如磁带存储器 半顺序存储器:如磁盘存储器 3. 按存储器的读写功能分 只读存储器(ROM) 随机读写存储器(RAM) 非永久记忆的存储器:断电后信息即消失 永久记忆性存储器:断电后仍能保存信息 5. 按在计算机系统中的作用分 主存储器 辅助存储器 高速缓冲存储器 控制存储器 掩膜式ROM PROM EPROM EEPROM FLASH SRAM DRAM

5 3.1.2 存储器的分级结构 为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。

6 表3.1 存储器的用途和特点 名 称 简称 用  途 特 点 存储介质 高速缓冲 存储器 Cache 高速存取指令和数据 存取速度快,但存储容量小 双极型半导体 主存储器 主存 存放计算机运行期间的大量程序和数据 存取速度较快,存储容量不大 MOSFET 外存储器 外存 存放系统程序和大型数据文件及数据库 存储容量大,位成本低 磁性材料

7 3.1.3主存储器的技术指标      主存储器的性能指标主要是存储容量、存取时间、存储周期和存储器带宽。   字存储单元即存放一个机器字的存储单元,相应的地址称为字地址。一个机器字可以包含数个字节,所以一个存储单元也可包含数个能够单独编址的字节地址。  下面列出主存储器的主要几项技术指标:   表3.2 主存储器的主要几项技术指标 指 标 含  义 表  现 单 位 存储容量 在一个存储器中可以容纳的存储单元总数 存储空间的大小 字数,字节数 KB、MB、GB、TB 存取时间 启动到完成一次存储器操作所经历的时间 主存的速度 ns 存储周期 连续启动两次操作所需间隔的最小时间 存储器带宽 单位时间里存储器所存取的信息量, 数据传输速率 位/秒,字节/秒

8 3.2 随机读写存储器 1.基本存储元 基本存储元是组成存储器的基础和核心,它用来存储一位二进制信息0或1。
  基本存储元是组成存储器的基础和核心,它用来存储一位二进制信息0或1。   六管SRAM存储元的电路图及读写操作图请看CAI演示           它是由两个MOS反相器交叉耦合而成的触发器,一个存储元存储一位二进制代码.这种电路有两个稳定的状态,并且 A,B两点的电位总是互为相反的,因此它能表示一位二进制的1和0。 写操作 写“1”:在I/O线上输入高电位,在I/O线上输入低电位,开启T5,T6,T7,T8四个晶体管把高、低电位分别加在A,B点,使T1管截止,使T2管导通,将“1”写入存储元.     写“0”:在I/O线上输入低电位,在I/O线上输入高电位,打开T5,T6,T7,T8四个开门管把低、高电位分别加在A,B点,使T1管导通,T2管截止,将“0”信息写入了存储元. 读操作 若某个存储元被选中,则该存储元的T5,T6,T7,T8管均导通,A,B两点与位线D与D相连存储元的信息被送到I/O与I/O线上。I/O与I/O线接着一个差动读出放大器 ,从其电流方向可以判知所存信息是“1”还是“0”。

9

10 2.SRAM存储器的组成   下面我们对此SRAM存储器的组成做一下具体介绍:   存储体:存储单元的集合,通常用X选择线(行线)和Y选择线(列线)的交叉来选择所需要的单元。       地址译码器:将用二进制代码表示的地址转换成输出端的高电位,用来驱动相应的读写电路,以便选择所要访问的存储单元。地址译码有两种方式。 单译码:一个地址译码器 ,适用于小容量存储器。   单译码的输出叫字选线,有效时,同时选中某一个字(存储单元)的所有位。   设地址线为12根时,译码输出线有212=4096线 双译码:X向和Y向两个译码器。适用于大容量存储器 。   双译码的输出分为X向和Y向,形成字位结构,由两者交叉选中相应的存储单元。   设地址线为12根时,X译码和Y译码各6根时,输出线有 2*26=128线

11

12

13 3.SRAM存储器芯片实例 驱动器: 双译码结构中,在译码器输出后加驱动器,驱动挂在各条X方向选择线上的所有存储元电路。
  I/O电路: 处于数据总线和被选用的单元之间, 控制被选中的单元读出或写入,放大信息。   片选: 在地址选择时,首先要选片,只有当片选信号有效时,此片所连的地址线才有效。   输出驱动电路:为了扩展存储器的容量,常需要将几个芯片的数据线并联使用;另外存储器的读出数据或写入数据都放在双向的数据总线上。这就用到三态输出缓冲器。 3.SRAM存储器芯片实例 存储容量:1K ×4,共4096个存储元 存储体:由4096个存储元排成64 ×64的矩阵: 地址线:A0~A9 共10根 数据线:I/O1~I/O4共4根 地址译码:采用字位结构   X向用A3 A4A5 A6A7A8共6根,产生64条行选择线   Y向用A0 A1A2 A9共4根,产生16条列选择线,每一列线同时接

14 至4个存储元。 片选:CS,低电平有效 读写控制:WE WE L --写 H--读 注意:由于读操作与写操作是分时进行的,读时不写,写时不读,因此,输入三态门与输出三态门是互锁的,数据总线上的信息不致于造成混乱。

15 驱动器

16 4.存储器与CPU连接 连接线:地址线、数据线、控制线。
  连接线:地址线、数据线、控制线。   存储器芯片的容量是有限的,为了满足实际存储器的容量要求,需要对存储器进行扩展。主要方法有: 1) 位扩展法: 目的:只加大字长,使每一个存储单元达到指定的位数,单元数不变 例:用8K×1的RAM存储器芯片,组成8K×8位的存储器     连接方法:CPU的地址线  A0~A12 共13根  分别接到每一个芯片      CPU的数据线  D0~D7 共8根 分别接到8个芯片的I/O端

17 2) 字扩展法: 目的:用多个芯片扩大存储单元数,每个存储单元的位数已满足使用要求,单元数为各芯片的单元数之和。
2) 字扩展法: 目的:用多个芯片扩大存储单元数,每个存储单元的位数已满足使用要求,单元数为各芯片的单元数之和。 例:用16K×8的RAM存储器芯片,组成64K×8位的存储器     连接方法:    CPU的数据线  D0~D7 共8根 分别接到每一个芯片    CPU的地址线  A0~A13 共14根  分别接到每一个芯片    CPU的地址线A14A15经2:4译码器产生4根片选信号线分别接到4个芯片的CE(或CS) CPU的读写控制线WE分别接到每一个芯片  

18

19 3) 字位同时扩展法 目的:既要扩大存储单元数,又要扩大其位数。 设存储容量M ×N位(M个单元,每个单元N位)
  设芯片容量为L×K位,则字位扩展所需芯片数为 M*N/(L*K)   其中:以N/K个芯片为一组,进行位扩展,      共需M/L组,进行字扩展。 例:用16K×4的RAM存储器芯片,组成64K×8位的存储器     以8/2=2片为一组,共64/16=4组。 CPU的数据线  D0~D3 和D4~D7共8根分别接到每组的2个芯片 CPU的地址线  A0~A13 共14根  分别接到每一个芯片组 片选与读写控制线与字扩展同,不过每组的两片需同时接通。

20 5.存储器的读、写周期 读周期: 读周期与读出时间是两个不同的概念。读出时间是从给出有效地址到外部数据总线上稳定地出现所读出的数据信息所经历的时间。读周期时间则是存储片进行两次连续读操作时所必须间隔的时间,它总是大于或等于读出时间。 tRC tA

21 写周期: 要实现写操作,要求片选CS和写命令WE信号都为低,并且CS信号与WE信号相“与”的宽度至少应为tW。
tWC tW

22 【例1】 下图是SRAM的写入时序图。其中R/W是读/写命令控制线,当R/W线为低电平时,存储器按给定地址把数据线上的数据写入存储器。请指出下图写入时序中的错误,并画出正确的写入时序图。

23 【解】   写入存储器的时序信号必须同步。通常,当R/W线加负脉冲时,地址线和数据线的电平必须是稳定的。当R/W线达到低电平时,数据立即被存储。 因此,当R/W线处于低电平时,如果数据线改变了数值,那么存储器将存储新的数据⑤。同样,当R/W线处于低电平时地址线如果发生了变化那么同样数据将存储到新的地址②或③。正确的写入时序图见下图。

24 3.2.2 DRAM存储器 1.四管动态存储元 四管的动态存储电路是将六管静态存储元电路中的负载管T3,T4去掉而成的。
   写操作:I/O与I/O加相反的电平,当T5,T6截止时,靠T1,T2管栅极电容的存储作用,在一定时间内(如2ms)可保留所写入的信息。   读操作:先给出预充信号,使T9,T10管导通,位线D和D上的电容都达到电源电压。字选择线使T5,T6管导通时,存储的信息通过A,B端向位线输出。   刷新操作:为防止存储的信息电荷泄漏而丢失信息,由外界按一定规律不断给栅极进行充电,补足栅极的信息电荷。 2.单管动态存储元   单管动态存储元电路由一个管子T1和一个电容C构成。   写入:字选择线为“1”,T1管导通,写入信息由位线(数据线)存入电容C中;   读出:字选择线为“1”,存储在电容C上的电荷,通过T1输出到数据线上,通过读出放大器即可得到存储信息。

25

26 表3.4 单管存储元电路和四管存储元电路对 名 称 优  点 缺 点 四管存储元电路 外围电路比较简单,刷新时不需要另加外部逻辑 管子多,占用的芯片面积大 单管存储元电路 元件数量少,集成度高 需要有高鉴别能力的读出放大器配合工作外围电路比较复杂。 读出-鉴别-锁存-回写

27 3. DRAM存储芯片实例    DRAM存储器芯片的结构大体与SRAM存储器芯片相似,由存储体与外围电路构成。但它集成度要高,外围电路更复杂。下图是16K×1位的DRAM存储器片2116的逻辑结构示意图。    图3.11  16K × 1 位 DRAM芯片

28 4.DRAM的刷新  动态MOS存储器采用“读出”方式进行刷新。从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止,这一段时间间隔叫刷新周期。   常用的刷新方式有三种,一种是集中式,另一种是分散式,第三种是异步式。   集中式刷新:在整个刷新间隔内,前一段时间重复进行读/写周期或维持周期,等到需要进行刷新操作时,便暂停读/写或维持周期,而逐行刷新整个存储器,它适用于高速存储器。 设读写周期为0.5us,刷新周期 为2ms,则在4000周期的前3872个为正常读/写,而在最后128个周期完成刷新操作。 问题:有64us的死时间(不能进行读写操作)

29 分散式刷新:把一个存储系统周期tc分为两半,周期前半段时间tm用来读/写操作或维持信息,周期后半段时间tr作为刷新操作时间。这样,每经过128个系统周期时间,整个存储器便全部刷新一遍。
问题:虽然不存在死时间,但是存取周期由0.5us增至1us,降低了整个系统的速度。 异步式刷新:该方式是前两种方式的结合。例如2ms内分散刷新128行,则每隔2000÷128=15.5μs刷新一行。 【例2】 说明1M×1位DRAM片子的刷新方法,刷新周期定为8ms 【解】如果选择一个行地址进行刷新, 刷新地址为A0—A8,因此这一行上的2048个存储元同时进行刷新,即在8ms内进行512个周期的刷新。按照这个周期数,512×2048= ,即对1M位的存储元全部进行刷新。刷新方式可采用:在8ms中进行512次刷新操作的集中刷新方式,或按8ms÷512=15.5μs刷新一次的

30 异步刷新方式。 5.存储器控制电路  DRAM存储器的刷新需要有硬件电路的支持,包括刷新计数器、刷新/访存裁决、刷新控制逻辑等。这些控制线路形成DRAM控制器,它将CPU的信号变换成适合DRAM片子的信号。           (1)地址多路开关:刷新时需要提供刷新地址,由多路开关进行选择。  (2)刷新定时器: 定时电路用来提供刷新请求。   (3)刷新地址计数器:只用RAS信号的刷新操作,需要提供刷新地址计数器。   (4)仲裁电路:对同时产生的来自CPU的访问存储器的请求和来自刷新定时器的刷新请求的优先权进行裁定。   (5)定时发生器:提供行地址选通信号RAS、列地址选通信号CAS和写信号WE.

31

32 3.2.3主存储器组成实例 本小节以DRAM控制器W4006AF为例,说明80386中主存储器的构成方法。

33 (1)W4006AF的外特性    ① 可以控制两个存储体交叉访问;    ② 可以对256KB—16MB的DRAM片子进行访问;    ③ 最多可控制128个DRAM片子;    ④ 采用CAS在RAS之前的刷新方式。 (2)主存储器组成   上图右半部所示为80386主存储器的基本构成,有4 个存储模块,每个模块存储容量为1M×32位。在用W4006AF控制器构成存储器时,几乎不需要外加电路,直接把W4006AF同CPU和DRAM双方进行连接即可。 要对主存容量进行扩充,只需扩充DRAM芯片数量或更换存储容量更大的DRAM芯片即可。

34 3.2.4高性能的主存储器  1.EDRAM芯片   EDRAM芯片又称增强型DRAM芯片,它在DRAM 芯片上集成了一个SRAM实现的小容量高速缓冲存储器,从而使DRAM芯片的性能得到显著改进。   1M×4位EDRAM芯片的结构框图演示

35 以SRAM保存一行内容的办法,对成块传送非常有利。如果连续的地址高11位相同, 意味着属于同一行地址,那么连续变动的9位列地址就会使SRAM中相应位组连续读出,这称为猝发式读取。
  EDRAM的这种结构还带来另外两个优点:    ●在SRAM读出期间可同时对DRAM阵列进行刷新。    ●芯片内的数据输出路径与输入路径是分开的,允许在写操作完成的同时来启动同一行的读操作。 2.EDRAM内存条   一片EDRAM的容量为1M×4位,8片这样的芯片可组成M×32位的存储模块。   8个芯片共用片选信号Sel、行选通信号RAS、刷新信号Ref和地址输入信号A0—A10。当某模块被选中,此模块的8个EDRAM芯片同时动作,8个4位数据端口D3—D0同时与32位数据总线交换数据,完成一次32位字的存取。   上述存储模块本身具有高速成块存取能力,这种模块内存储字完全顺序排放,以猝发式存取来完成高速成块存取的方式,在当代微型机中获得了广泛应用。

36

37 3.主存物理地址的存储空间分布   下面以奔腾PC机主存为例,说明主存物理地址的存储空间概念。   奔腾PC机主存物理地址存储空间分布情况演示             最大可访问主存空间为256MB,实际只安装了16MB的DRAM。   存储空间分成基本内存、保留内存、扩展内存几部分。

38 3.3 只读存储器和闪速存储器 3.3.1只读存储器 1.ROM的分类
3.3  只读存储器和闪速存储器 3.3.1只读存储器                1.ROM的分类   只读存储器简称ROM,它只能读出,不能写入。它的最大优点是具有不易失性。   根据编程方式不同,ROM通常分为三类 (1) 掩膜式只读存储器ROM (2) 一次可编程只读存储器PROM (3) 多次可擦除可编程只读存储器EPROM 只读存储器 定  义 优  点 缺 点 掩模式 数据在芯片制造过程中就确定 可靠性和集成度高,价格便宜 不能重写 一次编程 用户可自行改变产品中某些存储元 可以根据用户需要编程 只能一次性改写 多次编程 可以用紫外光照射或电擦除原来的数据,然后再重新写入新的数据 可以多次改写ROM中的内容 次数有限

39 2.光擦可编程只读存储器(EPROM) (1)基本存储元电路 P沟道EPROM的基本电路结构示意图演示
  在N型基片上生长了两个高浓度的P型区,引出源极(S)和漏极(D)。   在S极与D极之间,有一个多晶硅做成的栅极,但它是浮空的,被绝缘物SiO2所包围。   做好后的管子因栅极上无电荷,故管内无导电道,D极和S极之间是不导电的。   把EPROM管用于存储矩阵时,其初态各位均为1,要写入“0”时,在D和S极之间加上25V高压,另加编程脉冲则可使D、S之间被瞬间击穿,于是有

40 电子通过绝缘层注入硅栅,在高压电源去除后硅栅中的电子被绝缘层包围而无法泄漏,硅栅变负,形成导电沟,从而使EPROM存储元导通,输出为“0”。

41 容量:2K ×8位,所以地址线11根A10—A0:7条X译码、4条Y译码
(2)EPROM实例__以2716为例 容量:2K ×8位,所以地址线11根A10—A0:7条X译码、4条Y译码          数据线8根D7—D0 :带输出缓冲器

42 2716工 作 模 式 选 择 输入 +5V +25V 高 由低到高脉冲 编程 高阻 无关 功率下降 未选中 输出 低 读 数据输出 VCC
(正脉冲50MS宽) 编程 高阻 无关 功率下降 未选中 输出 数据输出 VCC VPP CS PD/PGM

43 【例3】 CPU的地址总线16根(A15—A0, A0为低位),双向数据总线8根(D7—D0),控制总线中与主存有关的信号有MREQ(允许访存, 低电平有效),R/W(高电平为读命令,低电平为写命令)。 主存地址空间分配如下: 0000H — 1FFFH,即0—8191为系统程序区,由ROM芯片组成; 2000H — 7FFFH,即8192—32767共24K为用户程序区; F800H—FFFFH,即最后(最大地址)2K地址空间为系统程序工作区。上述地址为十进制,按字节编址。   现有如下存储器芯片:EPROM:8K×8位(控制端仅有CS);   SRAM:16K×1位,2K×8位,4K×8位,8K×8位。   请从上述芯片中选择适当芯片设计该计算机主存储器,画出主存储器逻辑框图,注意画出选片逻辑(可选用门电路及3∶8译码器74LS138)与CPU 的连接,说明选哪些存储器芯片,选多少片。 【解】 根据给定条件,选用EPROM:8K×8位芯片1片。SRAM:8K×8位芯片3片,2K×8位芯片1片。3∶8译码器仅用Y0,Y1,Y2,Y3和Y7输出端,且对最后的2K×8位芯片还需加门电路译码。主存储器的组成与CPU连接逻辑图如图所示,详细框图请参看教材。

44 CS CS CS CS CS C/W C/W C/W C/W Y0 Y1 Y2 Y3 Y7 MREQ

45 3.3.2闪速存储器 1.什么是闪速存储器   闪速存储器是一种低功耗、高密度(大容量)、具有ROM的非易失性、又具有电可擦除和可反复编程的一种新型存储器。它突破了传统的存储器体系,改善了现有存储器的特性。

46 2.闪速存储器的逻辑结构 28F256A的逻辑方框图 容量:32K × 8位

47 3.闪速存储器的工作原理  闪速存储器是在EPROM功能基础上增加了电路的电擦除和重新编程能力。   28F256A引入一个指令寄存器来实现这种功能。其作用是:   (1)保证TTL电平的控制信号输入;   (2)在擦除和编程过程中稳定供电;   (3)最大限度的与EPROM兼容。  当VPP引脚不加高电压时,它只是一个只读存储器。   当VPP引脚加上高电压时,除实现EPROM通常操作外,通过指令寄存器,可以实现存储器内容的变更。   当VPP=VPPL时,指令寄存器的内容为读指令,使28F256A成为只读存储器,称为写保护。            

48 4. 闪速存储器的工作模式    读操作:片选信号CE是供电控制端,输出允许信号OE用于控制数据从输出引脚的输出。只有这两个信号同时有效时,才能实现数据输出。   输出禁止操作:当输出允许控制端OE处于高电平时,28F256A被禁止输出,输出引脚置于高阻状态。   等待操作:当片选信号CE处于逻辑高电平时,等待操作抑制了28F256A的大部分电路,减少器件功耗。   写操作:当VPP为高电压时,通过指令寄存器实现器件的擦除和编程 。当CE=0且WE=0时,通过写周期对指令寄存器进行写入。

49 5.闪速存储器与CPU的连接   CPU与闪速存储器进行连接的逻辑框图             中间部分是接口电路。地址总线和控制总线由CPU发向存储器和接口逻辑,数据总线为双向总线。   地址总线的宽度决定了存储器的存储容量,数据总线的宽度决定了存储器的字长。

50 具有闪速存储器的系统存储器结构

51 3.4  高速存储器 3.4.1双端口存储器             由于CPU和主存储器在速度上不匹配,而且在一个CPU周期中可能需要用几个存储器字,这便限制了高速计算,为了使CPU不至因为等待存储器读写操作的完成而无事可做,可以采取一些加速CPU和存储器之间有效传输的特殊措施  

52 1.双端口存储器的逻辑结构   双端口存储器是指同一个存储器具有两组相互独立的读写控制线路,是一种高速工作的存储器。  2K×16位双端口存储器IDT7133的逻辑功能方框图演示

53 它提供了两个相互独立的端口,即左端口右端口。它们分别具有各自的地址线、数据线和控制线,可以对存储器中任何位置上的数据进行独立的存取操作。如左边有
R/WLUB—左高位字节读写 R/WLLB —左低位字节读写 CEL —左片选 OEL —左输出允许 (A10-8)L —左地址高3位 (A7-0) L —左地址低8位 (I/O10-8) L —左数据高8位 (I/O7-0) L —左数据低8位 BUSYL —左忙信号 2.无冲突读写控制   当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。当任一端口被选中驱动时,就可对整个存储器进行存取,每一个端口都有自己的片选控制和输出驱动控制。

54 功 能 左端口或右端口 端口不用 低位和高位字节数据写入存储器 低位字节数据写入存储器,存储器中数据输出至高位字节
表3.8  无冲突读写控制 端口不用 低位和高位字节数据写入存储器 低位字节数据写入存储器,存储器中数据输出至高位字节 存储器中数据输出至低位字节,高位字节数据写入存储器 Z 数据入 数据出  Z 1 × I/O8-15 I /O0-7 OE CE R/Wub R/Wlb 功  能 左端口或右端口 低位字节写入存储器 高位字节写入存储器 存储器中数据输出至低位字节号高位字节 高阻抗输出

55 1.CE判断:如果地址匹配且在CE之前有效,片上的控制逻辑在CEL和CER之间进行判断来选择端口。
3.有冲突的读写控制  当两个端口同时存取存储器同一存储单元时,便发生读写冲突。为解决此问题,特设置了BUSY标志。由片上的判断逻辑决定对哪个端口优先进行读写操作,而暂时关闭另一个被延迟的端口。  1.CE判断:如果地址匹配且在CE之前有效,片上的控制逻辑在CEL和CER之间进行判断来选择端口。  2.地址有效判断:如果CE在地址匹配之前变低,片上的控制逻辑在左、右地址间进行判断来选择端口。 表3.9  左、右端口读写操作的功能判断 表中符号意义如下: LVSR:左地址有效先于右地址有效 LL5R:CEL变低先于CER50ns RVSL:右地址有效先于左地址有效 LL5R:CER变低先于CEL50ns Same:左右地址均在50ns内匹配 LW5R:CEL和CER在50ns变低

56

57 3.4.2多模块交叉存储器 1.存储器的模块化组织 一个由若干个模块组成的主存储器是线性编址的。
  一个由若干个模块组成的主存储器是线性编址的。   这些地址在各模块有两种安排方式:一种是顺序方式,一种是交叉方式。   顺序方式:某个模块进行存取时,其他模块不工作,某一模块出现故障时,其他模块可以照常工作,通过增添模块来扩充存储器容量比较方便。但各模块串行工作,存储器的带宽受到了限制。   交叉方式:地址码的低位字段经过译码选择不同的模块,而高位字段指向相应模块内的存储字。连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的。对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器的带宽。

58

59

60 2.多模块交叉存储器的基本结构   四模块交叉存储器结构框图演示         

61   每个模块各自以等同的方式与CPU传送信息。CPU同时访问四个模块,由存储器控制部件控制它们分时使用数据总线进行信息传递。这是一种并行存储器结构。
   下面做定量分析:我们认为模块字长等于数据总线宽度,模块存取一个字的存储周期为T,总线传送周期为τ,存储器的交叉模块数为m,为了实现流水线方式存取,应当满足  T=mτ         (m=T/τ称为交叉存取度)     交叉存储器要求其模块数必须大于或等于m,以保证启动某模块后经mτ时间再次启动该模块时,它的上次存取操作已经完成。这样,连续读取m 个字所需的时间为 t1=T+(m-1)τ      而顺序方式存储器连续读取m个字所需时间为t2=mT.交叉存储器的带宽确实大大提高了。

62 m=4的流水线方式存取示意图如下 2001年程序员试题之一
假设内存存取周期T=200ns,字长64位,数据总线宽度64位,总线传送周期为50ns。现用4个模块组成内存,并在连续4个地址中读出数据。如用顺序方式组织模块,则数据带宽为__(59)__。如用交叉存储方式组织内存,则数据带宽可达约__(60)__。 (59):A.80Mbps  B.320Mbps C.640Mbps  D.1280Mbps (60):A.300Mbps     B.500Mbps     C.700Mbps     D.1200Mbps

63 【例4】 设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期τ=50ns。问顺序存储器和交叉存储器的带宽各是多少? 【解】 顺序存储器和交叉存储器连续读出m=4个字的信息总量都是:q=64位×4=256位 顺序存储器和交叉存储器连续读出4个字所需的时间分别是:   t2=mT=4×200ns=800ns=8×10-7s;   t1=T+(m-1) τ =200ns+3×50ns=350ns=3.5×10-7s   顺序存储器和交叉存储器的带宽分别是:   W2=q/t2=256÷(8×10-7)=32×107[位/s];     W1=q/t1=256÷(3.5×10-7)=73×107[位/s]

64 3.二模块交叉存储器举例   二模块交叉存储器方框图演示        

65   DRAM存储器读/写周期时,在行选通信号RAS有效下输入行地址,在列选通信号CAS有效下输入列地址。
如果是读周期,此位组内容被读出;如果是写周期,将总线上数据写入此位组。刷新周期是在RAS有效下输入刷新地址,此地址指示的一行所有存储元全部被再生。A20—A3的18位地址用于模块中256K个存储字的选择。A2用模块选择 ,连续的存储字交错分布在两个模块上,偶地址在模块0,奇地址在模块1。   DRAM存储器需要逐行定时刷新,而且,DRAM芯片的读出是一种破坏性读出,因此在读取之后要立即按读出信息予以充电再生。 这样,若CPU先后两次读取的存储字使用同一RAS选通信号的话,CPU在接收到第一个存储字之后必须插入等待状态,直至前一存储字再生完毕才开始第二个存储字的读取。   无等待状态成块存取示意图演示           由于采用m=2的交叉存取度的成块传送,两个连续地址字的读取之间不必插入等待状态(零等待存取)。

66

67 3.4.3相联存储器(CAM—Content Addressed Memory)
1.相联存储器的基本原理   相联存储器是指其中任一存储项内容作为地址来存取的存储器。选用来寻址存储器的子段叫做关键字。   存放在相联存储器中的项可以看成具有KEY,DATA这样的格式。其中KEY是地址,DATA是被读写信息。   相联存储器的基本原理是把存储单元所存内容的某一部分作为检索项(即关键字项),去检索该存储器,并将存储器中与该检索项符合的存储单元内容进行读出或写入。 2.相联存储器的组成   相联存储器由存储体、检索寄存器、屏蔽寄存器、符合寄存器、比较线路、代码寄存器、控制线路等组成。框图请看演示。

68

69   检索寄存器:用来存放检索字,其位数和相联存储器的存储单元位数相等。
  屏蔽寄存器:用来存放屏蔽码,其位数和检索寄存位数相同。   符合寄存器:用来存放按检索项内容检索存储体中与之符合的单元地址,其位数等于相联存储器的存储单元位数,每一位对应一个存储单元,位的序数即为相联存储器的单元地址。  比较线路:把检索项和从存储体中读出的所有单元内容的相应位进行比较,如果有某个存储单元和检索项符合,就把符合寄存器的相应位置“1”,表示该字已被检索 。   代码寄存器:用来存放存储体中读出的代码,或者存放向存储体中写入的代码。   存储体:由高速半导体存储器构成,以求快速存取。 在计算机系统中,相联存储器主要用于虚拟存储器中存放分段表、页表和快表;在高速缓冲存储器中,相联存储器作为存放cache的行地址之用。这是因为在这两种应用中,都需要快速查找。

70 3.5 cache存储器 3.5.1 cache基本原理 1.cache的功能
    cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术 。   Cache的位置:介于CPU和主存之间。 Cache的工作速度:Cache是用高速半导体材料制成,其工作速度数倍速于主存(通常是5~10倍),但容量小,全部功能由硬件实现,对程序员而言是透明的。   设置Cache的目的:在不增加太多成本的前提下,希望得到一个速度与Cache相当,而容量与主存相当的存储器。   Cache的理论基础:程序的局部性原理,包括时间上的局部性和空间上的局部性。所谓时间上的局部性,是指如果某一地址空间的程序被访问,则它可能还会被再次访问。如循环结构的程序就是如此。所谓空间上的局部性,是指如果某一地址空间的程序被访问,则它附近的程序有可能被访问。如顺序结构程序就是如此。

71

72 Cache控制逻辑依据地址判断此字当前是否在 Cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到Cache中。由始终管理cache使用情况的硬件逻辑电路来实现LRU替换算法。 3) 写:通常有两种方式,一种是只写Cache,在相应字块将被替换时才写入主存(即写回法--Write Back);二是同时写Cache和主存,使二者保持一致(即写通或直达法--Write Through)。    2. cache的基本原理 1) 数据交换单位:   CPU<->Cache:字   Cache <->主存:块   1块 = 若干定长字 2) 读:CPU发要读的字单元地址 Cache 主存

73

74 3.cache的命中率   增加Cache的目的,就是在性能上使主存的平均读出时间尽可能接近Cache的读出时间。因此,Cache的命中率应接近于1。由于程序访问的局部性 ,这是可能的。 在一个程序执行期间,设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值以5—10为宜,不宜太大。命中率h与程序的行为、Cache的容量、组织方式、块的大小有关。

75 【例5】CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。 【解】 命中率:      h=Nc/(Nc+Nm)=1900/( )=0.95  主存存取时间与Cache存取时间比:      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

76 3.5.2.主存与cache的地址映射 cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。
  址映射方式有全相联方式、直接方式和组相联方式三种  1) 行--Cache的数据块大小称为行   用Li表示,i=0,1,2,……m-1,共有m=2r行; 2) 块--主存的数据块大小称为块   用Bj表示,j= 0,1,2,……n-1,共有n=2s块; 3) 行、块、字的关系:   1行=1块,由k=2w个连续的字组成;   字是CPU每次访问存储器时可存取的最小单位。

77 1.全相联映射方式 主存中一个块的地址(块号)与块的内容一起存于Cache行中,其中块地址存于Cache行的标记部分。
行号3 bit 行号 字地址 字地址:w bit 主存的地址 块  号 字地址 块号8 bit

78

79 映射方式:主存的一个块直接拷贝到Cache中的任意一行上,
  CPU访问一个指定的内存地址(包括主存和Cache),为了快速检索,指令中的块号与Cache中所有行的标记同时在比较器中进行比较,如果块号命中,则按字地址从Cache中读取一个字,如果未命中,则按内存地址从主存中读取该字,并将此字所在的一个块调入Cache。 注意: 其中全部标记用一个CAM来实现,而数据用RAM实现。 优点:由于这种方法可使主存的一个块直接拷贝到Cache中的任意一行上,非常灵活。 缺点:比较器电路难于设计和实现 应用:只适合于小容量cache采用。

80 2. 直接映射方式 这也是一种多对一的映射关系,但一个主存块只能拷贝到Cache的一个特定行位置上去。
2. 直接映射方式   这也是一种多对一的映射关系,但一个主存块只能拷贝到Cache的一个特定行位置上去。 Cache的行号i和主存的块号j有如下函数关系: i=j mod m  其中:m为cache中的总行数,如右图中m=8。

81 仍设Cache为8行,主存为256块,每块(行)有同样多的字
L B0,B8,B16,…,B248 L1    B1,B9,B17,…,B249 L2 的主存块号是 B2,B10,B18,…,B250 L7    B7,B15,B23,…,B255 32个块 则允许存于Cache第 每一个Cache行只可映射主存中的固定32块 Cache的地址 行号:r bit,本例为3 行号 字地址 主存的地址 标记 字地址 块号:s bit,本例为8,其中标记s-r bit ,本例为5。 块地址s bit   将s位的块地址分成两部分,r位的行号,s-r位标记。   标记与块数据一起保存该行中。

82   CPU以一个给定的内存地址访问Cache时,首选用r bit行号找到Cache中的此一行,然后用地址中的s-r bit 标记部分与此行的标记在比较器做比较,若相符(即命中),在Cache中找到所要的块,则可用地址的最低w位(字地址)读取所需求的字,若不符(即未命中)由主存读取所要求的字,并将此字所对应的一个块调入Cache. 优点:硬件简单,成本低。 缺点:每个主存块只有一个固定的行位置可存放,容易产生冲突。 注意:对于块号相距m整数倍的两个块,只能映射到Cache的同一行时,若发生新块不在Cache中而对应行号又已占用时,就发生了冲突,只能用新的块替代原已占Cache此行中的一块,即使此时Cache还有其它空行,也不可利用。 应用:适合大容量cache采用。

83

84 3.组相联映射方式   这种方式是前两种方式的折衷方案。它将Cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪 一行是灵活的,即有如下函数关系: m=u×v     组号 q=j mod u           组相联映射方式中的每组行数v一般取值较小,这种规模的v路比较器容易设计和实现。而块在组中的排放又有一定的灵活性,冲突减少。 Cache共8行,分4组,每组2行,即8=4 × 2。组号用2bit,组内的行号用1bit。   主存256块,各块分到Cache的哪个组是固定的,主存的块号j与Cache的组号q的对应关系是:q=j mod 4,即 B0,B4,B8,…,B252 共64个块映射到Cache的s0组 B1,B5,B9,…,B253 共64个块映射到Cache的s1组 B2,B6,B10,…,B254 共64个块映射到Cache的s2组 B3,B7,B11,…,B255 共64个块映射到Cache的s3组 主存的

85 至于具体映射到一个组中的哪一行,则可以任意。即组间采用直接映射,而组内采用全相联映射方式。
  s位的块号可分成两个部分,低d位为组号,而高s-d位为标记。   对于一个具体地址,首先将根据其标记与所在组的每一个行比较,查找是否在Cache中,若在,则命中,由低w位的块内地址直接访问Cache中的一个字,若不在,则访问主存,同时更新Cache。  注意:为了便于比较器实现,组相联映射中的每组行数v一般取值较小,典型值为2,4,8,16。

86

87 3.5.3.替换策略 换出(替换、淘汰)哪一行,应有一定的策略。常用的算法有三种。 1 最不经常使用(LFU)算法
3.5.3.替换策略    Cache工作原理要求它尽量保存最新数据,必然要产生替换。   对直接映射的Cache来说,只要把此特定位置上的原主存块换出cache即可。   对全相联和组相联Cache来说, 就要从允许存放新主存块的若干特定行中选取一行换出。                                                                              换出(替换、淘汰)哪一行,应有一定的策略。常用的算法有三种。 1 最不经常使用(LFU)算法   LFU算法将一段时间内被访问次数最少的那行数据换出。每行设置一个计数器。从0开始计数,每访问一次, 被访行的计数器增1。当需要替换时,将计数值最小的行换出,同时将这些行的计数器都清零。 问题 这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内,不能严格反映近期访问情况。

88 2 近期最少使用(LRU)算法     LRU算法将近期内长久未被访问过的行换出。每行也设置一个计数器,Cache每命中一次,命中行计数器清零,其它各行计数器增1。当需要替换时,将计数值最大的行换出。   这种算法保护了刚拷贝到Cache中的新数据行,有较高的命中率。 3 随机替换   随机替换策略从特定的行位置中随机地选取一行换出。在硬件上容易实现,且速度也比前两种策略快。   缺点是降低了命中率和Cache工作效率。

89 3.5.4 Cache的写操作策略   CPU对cache的写入更改了Cache的内容。可选用写操作策略使cache内容和主存内容保持一致。                                                     1 写回法   当CPU写Cache命中时,只修改Cache的内容,而不立即写入主存;只有当此行被换出时才写回主存。   这种方法减少了访问主存的次数,但是存在不一致性的隐患。

90   实现这种方法时,每个Cache行必须配置一个修改位,以反映此行是否被CPU修改过。
2 全写法   当写Cache命中时,Cache与主存同时发生写修改,因而较好地维护了Cache与主存的内容的一致性。   当写Cache未命中时,直接向主存进行写入。Cache中每行无需设置一个修改位以及相应的判断逻辑。   缺点是降低了Cache的功效。 3 写一次法   基于写回法并结合全写法的写策略,写命中与写未命中的处理方法与写回法基本相同,只是第一次写命中时要同时写入主存。这便于维护系统全部Cache的一致性。

91 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控制寄存器CR0中CD和NW位组合状态控制,如下表3.8所示。 CD  NW   新行填入   全写法   使无效  0    允许   允许  1    禁止   禁止

92 其中CD=1,NW=1时复位后状态,而CD=0,NW=0时是最佳使用状态。
  两级Cache和主存之间的工作环境方框图演示          CPU与外部数据交换时,存储器读写总线周期主要有两类:   一类是256位猝发式传送,用于L1的行填入和行写出,一次完成整行的填入或写出。   另一类是不经L1的64位传送 ,此时CHACE#为高电平,称为非超高速缓存式传送。   L2级Cache采用的是写回法,L1级数据Cache采用的是写一次法。为了维护Cache的一致性,L1和L2均采用MESI协议,即要求每个Cache行有两个状态位,用以描述该行当前是处于修改态、专有态、共享态或者无效态中的哪种状态,从而决定对它的读/写操作行为。  总之,L2级Cache的内容是主存的子集,而L1级Cache又是L2级Cache的子集。L2负责整个系统的Cache/主存一致性,L1负责响应L2,与L2一起维护L1/L2两个Cache的一致性,保证三级存储系统的一致性。

93

94 3.6 虚拟存储器 3.6.1虚拟存储器的基本概念 1.什么是虚拟存储器
3.6  虚拟存储器 3.6.1虚拟存储器的基本概念          1.什么是虚拟存储器  虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。   它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。   它指的是主存-外存层次。以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。 注意:   物理地址由CPU地址引脚送出,用于访问主存的地址。   虚拟地址由编译程序生成的,是程序的逻辑地址,其地址空间的大小受到辅助存储器容量的限制。   主存-外存层次和cache-主存层次用的地址变换映射方法和替换策略是相同的,都基于程序局部性原理。它们遵循的原则是:

95 ①把程序中最近常用的部分驻留在高速的存储器中。
  ②一旦这部分变得不常用了,把它们送回到低速的存储器中。  ③这种换入换出是由硬件或操作系统完成的,对用户是透明的。  ④力图使存储系统的性能接近高速存储器,价格接近低速存储器。 两种存储系统的主要区别在于:   在虚拟存储器中未命中的性能损失要远大于Cache系统中未命中的损失。 2.主存-外存层次的基本信息传送单位   主存-外存层次的基本信息传送单位可采用几种不同的方案:段、页或段页。 段是按照程序的逻辑结构划分成的多个相对独立部分,作为独立的逻辑单位。

96   优点是段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享;某些类型的段具有动态可变长度,允许自由调度以便有效利用主存空间。
  缺点是因为段的长度各不相同,起点和终点不定,给主存空间分配带来麻烦,而且容易在段间留下许多空余的零碎存储空间,造成浪费。 页是主存物理空间中划分出来的等长的固定区域。   优点是页面的起点和终点地址是固定的,方便造页表,新页调入主存也很容易掌握,比段式空间浪费小。   缺点是处理、保护和共享都不及段式来得方便。 段页式管理采用分段和分页结合的方法。   程序按模块分段,段内再分页,进入主存以页为基本信息传送单位,用段表和页表进行两级定位管理。

97 3.6.2页式虚拟存储器 1. 分页的方法 页式虚拟存储系统中,虚拟空间分成页,称为逻辑页;主存空间也分成同样大小的页,称为物理页。
1.  分页的方法             页式虚拟存储系统中,虚拟空间分成页,称为逻辑页;主存空间也分成同样大小的页,称为物理页。   虚存地址分为两个字段:   实存地址也分两个字段: 2.  建立页表   页表中每一个虚存逻辑页号有一个表目,表目内容包含该逻辑页所在的主存页面地址(物理页号)及控制位(装入位、修改位等) 3.  地址变换   当程序被调入系统运行时,页表调入内存,其首地址装入页表基地址寄存器。   以一个虚存地址访问存储器时,首先根据逻辑页号查页表,若该页已装入,则可得其主存物理页号,用它作为实存地址的高位字段,与虚存地址的页内行地址字段相拼接,产生完整的实主存地址,据此来访问主存。若该页未装入,则发生缺页中断,由OS调入该页,并记入页表中。 4.  速度影响—由于查表过程需要时间,所以运行速度变慢。   逻辑页号  页内行地址 物理页号 页内行地址

98

99   为了避免页表已保存或已调入主存储器时对主存访问次数的增多, 把页表的最活跃部分存放在高速存储器中组成快表。快表与慢表实现内部地址变换的方式演示:
  快表由硬件组成,比页表小得多,查表时,由逻辑页号同时去查快表和慢表,当在快表中有此逻辑页号时,就能很快地找到对应的物理页号送入实主存地址寄存器,从而做到虽采用虚拟存储器但访主存速度几乎没有下降。

100 GC88_8 某虚拟存储器的用户编程空间共32个页面,每页1KB,主存为16KB,假定某时刻该用户页表中已调入主存的页面的虚页号和物理页号对照表为
虚页号 物理页号 则下表中与虚地址相对应的物理地址为 (如果找不到,即为页失效) 虚拟地址 物理地址 0A5CH 1A5CH A B 虚拟存储器的功能是由 完成的,,在虚拟存储系统中,采用 提高 的速度。 A,B : ①页失效 ② 1E5CH ③ 2A5CH ④ 165CH ⑤ 125CH ⑥ 1A5CH C: ①硬件 ② 软件 ③ 软硬件结合 D: ① 高速辅助存储器 ② 高速光盘存储器 ③ 快速通道 ④ 高速缓冲存储器 E: ① 连接编辑 ② 虚空间分配 ③ 动态地址翻译 ④ 动态连接 C D E

101 3.6.3段式虚拟存储器 页式的不足 需要对程序进行静态链接,形成一个一维逻辑地址空间;
不便于页面的共享(因链接可能造成一页有共享和不共享内容)。 分段的方法   按程序的逻辑结构划分,各个段的长度因程序而异。 程序为二维地址结构,每个段均从0开始编址。 逻辑地址为: 段号  段内行地址 建立段表   每一个段有一个表目,内容包括 段起始地址 装入位 段长 地址变换  程序运行时,段表装入内存,段表首地址装入段标基址寄存器。 对于一个要访问的逻辑地址,根据段号查段表,若装入位为“1”,则表示该段已装入内存,由段表可取该段在内存中的段起始地址,由“段起始地址+段内地址”即可得所对应的物理地址。

102   段表也是一个段,可以存在外存中,但一般是驻留在主存中。
  虚存地址向实存地址的变换过程演示。   

103 3.6.4 段页式虚拟存储器 1. 段式的问题 因段长不等,容易造成存储碎片(新入段只能≤替换段)。 2. 段页式的实现
1. 段式的问题 因段长不等,容易造成存储碎片(新入段只能≤替换段)。 2. 段页式的实现 段页式虚拟存储器是段式和页式虚拟存储器的结合。   它把程序按逻辑单位分段以后,再把每段分成固定大小的页。    在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行定位的。段表中的每个表目对应一个段,每个表目有一个指向该段的页表起始地址及该段的控制保护信息。由页表指明该段各页在主存中的位置以及是否已装入、已修改等状态信息。 如果有多个用户在机器上运行,多道程序的每一道需要一个基号,由它指明该道程序的段表起始地址。 虚拟地址格式如下: 地址变换 先查段表找到该段所对应的页表,再查页表转换成物理地址。 优缺点 优点:程序对主存的调入调出是按页面进行的,但它又可以按段  基号  段号  页号  页内地址

104 实现共享和保护,兼备页式和段式的优点。 缺点:在映象过程中需要多次查表。降低了程序的运行速度。 【例6】 假设有三道程序(用户标志号为A,B,C),其基址寄存器内容分别为SA,SB,SC ,逻辑地址到物理地址的变换过程见演示 在主存中,每道程序都有一张段表,A程序有4段,C程序有3段。每段应有一张页表,段表的每行就表示相应页表的起始位置,而页表内的每行即为相应的物理页号。请说明虚实地址变换过程。 【解】地址变换过程如下:   ①根据基号C执行SC加1(段号)操作,得到段表相应行地址,其内容为页表的起始地址b。   ②执行b+2(页号),得到物理页号的地址,其内容即为物理页10。   ③物理页号与页内地址拼接即得物理地址。 如计算机只有一个基址寄存器,基号可不要,多道程序切换时,操作系统修改基址寄存器内容。   可以看出,段页式虚拟存储系统由虚拟地址向主存地址的变换至少需要查两次表。

105

106 3.6.5 替换算法 虚拟存储器中的页面替换策略和cache中的行替换策略有很多相似之处,但有三点显著不同:
  (2)页面替换是由操作系统软件实现的。   (3)页面替换的选择余地很大,属于一个进程的页面都可替换。   虚拟存储器中的替换策略一般采用LRU算法、LFU算法、 FIFO算法,或将两种算法结合起来使用。   对于将被替换出去的页面,假如该页调入主存后没有被修改,就不必进行处理,否则就把该页重新写入外存,以保证外存中数据的正确性。为此,在页表的每一行应设置一修改位。 【例7】假设主存只有a,b,c三个页框,组成a进c出的FIFO队列,进程访问页面的序列是0,1,2,4,2,3,0,2,1,3,2号。若采用①FIFO算法,②FIFO算法+LRU算法,用列表法分别求两种替换策略情况下的命中率。 【解】求解表格如下所示

107

108 3.6.6 虚拟存储器实例 1.奔腾PC的虚地址模式  奔腾PC的存储管理部件MMU包括分段部件SU和分页部件PU两部份,可允许SU,PU单独工作或同时工作。

109 分段不分页模式: 虚拟地址由一个16位的段参照和一个32位的偏移组成。分段部件SU将二维的分段虚拟地址转换成一维的32位线性地址。优点是无需访问页目录和页表,地址转换速度快。对段提供的一些保护定义可以一直贯通到段的单个字节级。   分段分页模式:在分段基础上增加分页存储管理的模式。即将SU部件转换后的32位线性地址看成由页目录、页表、页内偏移三个字段组成,再由PU部件完成两级页表的查找,将其转换成32位物理地址。兼顾了分段和分页两种方式的优点。   不分段分页模式:这种模式下SU不工作,只是分页部件PU工作。程序也不提供段参照,寄存器提供的32位地址被看成是由页目录、页表、页内偏移三个字段组成。由PU完成虚拟地址到物理地址的转换。这种模式减少了虚拟空间,但能提供保护机制,比分段模式具有更大的灵活性。

110 2.保护模式的分页地址转换   奔腾机4MB分页方式地址转换演示

111   页面(页框)大小为4MB的分页方式使用单级页表,只进行一次主存访问,地址转换过程加快了。
在此方式下,32位线性地址分为高10位的页面和低22位的页内偏移两个字段 。页表项的I位指示页面大小,P位为出现位,A位为访问过位,D位为修改过位.RW位用于读/写控制,US位用于用户/监督控制,PCD位用于页cache禁止的控制,PWT位用于页全写法的控制。

112 3.7  存储保护 3.7.1 存储区域保护                    当多个用户共享主存时,应防止由于一个用户程序出错而破坏其他用户的程序和系统软件,以及一个用户程序不合法地访问不是分配给它的主存区域。   在虚拟存储系统中,通常采用页表保护、段表保护和键式保护方法。 1. 页表保护和段表保护   每个程序的段表和页表本身都有自己的保护功能。每个程序的虚页号是固定的,经过虚地址向实地址变换后的实存页号也就固定了。那么不论虚地址如何出错, 也只能影响到相对的几个主存页面。不会侵犯其他程序空间。段表和页表的保护功能相同,但段表中除包括段表起点外,还包括段长。 段表保护方式演示

113

114 2. 键保护方式   这种方法是为主存的每一页配一个键,称为存储键,就象一把锁,每个用户的实存页面的键都相同。为了打开这个锁,必须有钥匙,称为访问键。访问键赋予每道程序,并保存在该道程序的状态寄存器中。当数据要写入主存的某一页时,访问键要与存储键相比较。若两键相符,则允许访问该页,否则拒绝访问。    键保护方式演示

115 3. 环保护方式  环保护方式可以做到对正在执行的程序本身的核心部分或关键部分进行保护。它是按系统程序和用户程序的重要性及对整个系统的正常运行的影响程度进行分层,每一层叫做一个环。在现行程序运行前由操作系统定好程序各页的环号,并置入页表中。然后把该道程序的开始环号送入CPU的现行环号寄存器。程序可以访问任何 外层空间;访问内层空间则需由操作系统的环控例行程序判断这个向内访问是否合法。   环保护方式演示

116 3.7.2 访问方式保护   对主存信息的使用可以有三种方式:读(R)、写(W)和执行(E),相应的访问方式保护就有R,W,E三种方式形成的逻辑组合.这些访问方式保护通常作为程序状态寄存器的保护位,并且和区域保护结合起来实现。       表3.11 访问方式保护的逻辑组合

117 本章要点 存储器的技术指标 SRAM和DRAM的异同 只读存储器的特点、种类和作用 位扩展、字扩展及存储器与CPU的连接
  三级存储存储体系结构的含义及作用   存储器的技术指标    SRAM和DRAM的异同   只读存储器的特点、种类和作用   位扩展、字扩展及存储器与CPU的连接   提高存取速度的措施   高速缓冲存储器的作用   虚拟存储器的含义、作用   不同虚拟存储器管理模式及其地址转换


Download ppt "计算机组成原理 武汉科技大学 计算机科学与技术学院"

Similar presentations


Ads by Google