Presentation is loading. Please wait.

Presentation is loading. Please wait.

computer organization principle

Similar presentations


Presentation on theme: "computer organization principle"— Presentation transcript:

1 computer organization principle
计 算 机 组 成 原 理 computer organization principle 主讲教师 丁纪凯

2 第4章 存储系统和结构

3 第4章—存储系统和结构 本章要点 存储系统是以程序存储和程序控制的电子数字计 算机的重要的不可或缺的主要组成部分,本章论述
了存储系统的组成、主存的组织与操作、存储系统 的层次结构和高速缓冲存储器和虚拟存储器。

4 第4章 存储系统和结构 4.1 存储系统的组成 4.2 主存的组织与操作 4.3 存储系统的层次结构 4.4 高速缓冲存储器
第4章 存储系统和结构 4.1 存储系统的组成 4.2 主存的组织与操作 4.3 存储系统的层次结构 4.4 高速缓冲存储器 4.5 虚拟存储器

5 4.1 存储系统的组成 作时所使用的信息——程序和数据。 如图所示。 4.1.1 存储器的分类
存储器是计算机系统中必不可少的组成部分,用来存放计算机系统工 作时所使用的信息——程序和数据。 计算机系统中常用的存储器分类 如图所示。

6 1、 半导体存储器的特点是: ① 速度快、存取时间可为ns级; 4.1.2 主存 ② 集成化,存储单元所占的空间小,用来寻找存储单元地址的译
主存 在现代计算机系统中主存都是由半导体存储器组成。 1、 半导体存储器的特点是: ① 速度快、存取时间可为ns级; ② 集成化,存储单元所占的空间小,用来寻找存储单元地址的译 码电路和数据、地址缓冲寄存器以及存储单元都制作在同一芯片中, 体积特别小; ③ 非破坏性读出,特别是半导体静态存储器,读操作不破坏原来 的信息,而且不需要再生,既缩短了读写周期,又简化了控制操作。 2、 器件组成角度分类

7 采用金属氧化物半导体(MOS )电路 ,集成度高、功耗低,价格便宜
单极型存储器 采用金属氧化物半导体(MOS )电路 ,集成度高、功耗低,价格便宜 采用TTL(晶体管-晶体管逻辑)电路, 速度快、功耗不大,但集成度较低; 双极型存储器 3、 器件组成角度分类 从工作特点、作用等角度分类有: 掩膜ROM (1) 随机存取存储器RAM RAM的特点是存储器中信息能读能写,对存储器中任一存储 单元进行读写操作所需时间基本上一样的,写入的信息在掉电后 立即消失。 紫外线可擦除的PROM(EPROM) 电可擦除的PROM(EEPROM) 快擦写存储器(Flash Memory) RAM又可分为静态RAM(SRAM)和动态RAM(DRAM)。

8 ① 静态RAM ( SRAM) ● SRAM的基本电路是利用半导体触发器的两个稳定状态表示“1”
和“0”,最简单的TTL电路组成的SRAM是由两个双发射极晶体管和 两个电阻构成的触发器电路; 典型的单极型SRAM是由6个 MOS管组成的双稳态触发电路。 1 ◎ T1和T2组成一个双稳态触发器,用 于保存数据。T3和T4为负载管。 如A点为数据D,则B点为数据/D。

9 行选择线(X地址线)有效(高电 平) 时,A 、 B处的数据信息通过门控管T5和T6送至T7和T8 。
◎ 读操作: 行选择线(X地址线)有效(高电 平) 时,A 、 B处的数据信息通过门控管T5和T6送至T7和T8 。 列选择线(Y地址线)有效(高电 平)时, T7和T8导通,D0、/D0的数据信息通过输入输出电路I/O输出; ◎ 写操作: 写入信号自I/O以及/I/O线输入,当写“1”时 ,I/O线为“1”,而/ I/O线为“0”。I/O线上的高 电平通过T7管、D线、T5管送到A点,而/ I/O线 上的低电平经T8管、/ D线、T6管送到B点,使 T2管导通、T1管截止,保持A点为1、B点为0。

10 只要电源不撤除,写入SRAM的信息将不会消失;
不需要刷新电路; 一经写入可多次读出,读出时不破坏原存信息; 功耗较大,容量较小,但存取速度较快。 ② 动态RAM(DRAM) ◆ DRAM是利用MOS管的栅极对其衬底间的分布电容来保存信息,以 储存电荷的多少(即电容端电压的高低)来表示“1”和“0”。 典型的单管存储电路原理图如图所示。 电容C上有电荷表示存储的二进制 信息是“1”,无电荷表示“0”。

11 读操作: 字选线为高电平,T1管导通, 若存储单元为1,导通时C上电荷转 移到D上,所以D为1; 若存储单元为0, C上原无电荷,则 D为0; 每个数据读出后,C上的电荷释放, 信息被破坏,必须重新恢复C上的电 荷量,称为刷新。 写操作: 字选线X为“1”,T1管导通,写入的信息通过数据线D存入电 容C中。

12 (2)DRAM DRAM的每个存储单元所需的MOS管较少,DRAM的集成度较高; 功耗低;
DRAM中的信息一般信息保存时间为2ms左右,保存DRAM中的信 息,每隔1~2ms要对DRAM中所有的存储单元刷新一次,即对 其中存放的信息进行再生,采用DRAM的计算机必须配置刷新电路。 DRAM的DRAM一般微机系统中的内存都采用DRAM。

13 (2) 只读存储器ROM ROM的特点是用户在使用时只能读出其中信息,不能修改和写 入新的信息,但写入的信息在掉电后不会丢失。 ROM有如下几种类型: ① 掩膜ROM 存储单元中的信息由ROM制造厂在生产时一次性写入的。

14 PROM中的程序和数据是由用户自行写入的,但一经写入,就 无法更改,是一次性写入多次读出的ROM。
③ EPROM(可擦除可编程ROM) 这种由紫外线擦除的EPROM称为UVEPROM ; EPROM可由用户自行写入程序和数据,写入后 的内容可由紫外线灯照射擦除,然后可重新写入 新的内容, EPROM可多次擦除,多次改写。

15 其特点是使用方便,芯片不离开插件板便可擦除或改写其中的 信息。 E2PROM的存取速度较慢,价格较贵。
P+ N基片 P+ S 浮空多晶硅栅 D ED T3 T2 EPROM 位线 字线 ④ E2PROM(电可擦除可编程ROM) E2PROM是可用电信号进行擦除和改写的存储器; 其特点是使用方便,芯片不离开插件板便可擦除或改写其中的 信息。 E2PROM的存取速度较慢,价格较贵。 ⑤ 闪速存储器(Flash Memory,简称闪存) 又称快擦型存储器,是一种非挥发性存储器。

16 Flash Memory芯片借用了EPROM结构简单的特点,又吸收了 E2PROM电擦除的特点。
3. 闪速存储器 Flash Memory芯片借用了EPROM结构简单的特点,又吸收了 E2PROM电擦除的特点。 具有整块芯片电擦除和部分电擦除的特点、耗电低、集成度高 、体积小、可靠性高、无需后备电池、可重新改写、重复使用性 好(至少可反复使用百万次以上)等优点。 Flash Memory的访问时间可低至70ns,比硬盘驱动器快50~200倍 ,平均写入时间低于0.1秒。由于没有机械运动部件,所以抗震能 力比硬盘驱动器强10倍 。 广泛应用于便携式计算机的PC卡存储器(固态硬盘),代替 EPROM和E2PROM存储BIOS程序。 采用Flash Memory制成的“闪盘”(又称“U盘”或优盘) 广泛应用 用以替代软盘,成为大容量、高速度的移动式存储器。

17 4.1.3 辅存 必须指出:采用闪存的闪盘属于辅助存储器。 计算机系统中的辅助存储器用来存放CPU运行时暂时不用的各种程
辅存 计算机系统中的辅助存储器用来存放CPU运行时暂时不用的各种程 序和文件。辅存设在主机外部,CPU不能直接访问它。 当CPU在运行中,要用到辅存中的程序和文件时,必须通过专门的程 序将其调入主存, CPU才能使用。 常用的辅助存储器有:磁盘存储器、磁带存储器和光盘存储器。

18 4.2 主存的组织与操作 4.2.1 半导体存储器的基本结构 ◆ 计算机系统中用作内存储器的半导体存储器的基本结构如图所示。

19 虚线框内为内存储器,由半导体存储器组成。 MB: 存储体,是存储单元的集合体。
M位地址线:用来指出所需访问的存储单元的地址(2M ), N位数据线:用来在CPU与内存之间传送数据信息, 控制线:用来协调和控制CPU与内存之间的读写操作。 内存储器通过M位地址线、N位数据线和一些有关的控制线同CPU 交换信息。 ◆ 存储器读过程 CPU 先将地址码通过地址线送入存储地址寄存器MAR ; 然后CPU 使控制线中的读信号线READ线有效,MAR中地址码经过地 址译码后选中该地址对应的存储单元; 通过读写驱动电路,将选中单元的数据送入存储数据寄存器MDR; 通过数据总线读入CPU;

20 4.2.2存储器中的数据组织 ● 存储字: 作为一个整体一次存放或取出内存储器的数据
● 存储字: 作为一个整体一次存放或取出内存储器的数据 ● 字节编址:一个存储地址对应一个8位存储单元,在现代计算机 系统中,特别是在微机系统中,内存储器一般都以字节编址。 一个8位二进制数存一个存储单元、16位存储字就占了两个连续 的8位存储单元。 ● 小端存放格式 16位存储字或32位存储字的地址是2个或4个存储单元中最低端 的存储单元的地址,而此最低端存储单元中存放的是32位字中最 低8位。 Intel 80X86系统采用这种格式。 例如,32位存储字 H存放在内存中的情况如图所示。

21 H存放在内存中,占有24300H ~ 24303H 四个地址的存储单元,其中最低字节78H存放在24300H中 。

22 ● 大端存放格式 最高8位信息存放在最低地址24300H,16位或32位存储字的地址
● 大端存放格式 最高8位信息存放在最低地址24300H,16位或32位存储字的地址 指向最高8位数据的存储单元。在Motorola680X0系统采用这种格式。 例如, 32位存储字 H 存放在内存中的情况如图所示。

23 4.2.3 半导体存储器的主要技术指标 1. 存储容量 ◎半导体存储器芯片的存储容量是指存储器可以容纳的二进制信息量。
半导体存储器的主要技术指标 1. 存储容量 ◎半导体存储器芯片的存储容量是指存储器可以容纳的二进制信息量。 以存储器中存储地址寄存器MAR的编址数与存储字位数的乘积表示 。 例:某存储器芯片的MAR为16位,存储字长为8位,则其存储容量 为 216×8位=64K×8位=64KB。 例:内存储器的基本结构图中有M地址线和N 数据线的存储器芯片 的存储容量为2M×N位。 ◎ 内存最大容量:由系统地址总线决定 ; 内存的实际装机容量:由实际需要配置的; 例:一个以Pentium 4为CPU的PC机,其地址总线为36位,则内存 允许的最大容量为236=64GB; 而实际装机容量可能只有128MB、 256MB或1GB。

24 ◎ 常用基本单位是字节(Byte),还可用 KB、MB(兆) 、GB(吉) 、TB
(太) 、PB(皮) 等单位来衡量。 1 kilobyte (kB) = 210B≈1000 (103) byte 1 megabyte ( MB ) =220 B≈ (106) byte 1 gigabyte ( GB ) = 230 B≈ (109) byte 1 terabyte ( TB ) = 240B ≈ (1012) byte 1 petabyte ( PB ) = 250B ≈ (1015) byte

25 2. 存储速度 3. 可靠性 存储器的存储速度可以用两个时间参数表征: 存取时间TA:定义为从启动一次存储器操作,到完成该操作所经
历的时间。 存储周期TMC:定义为启动两次独立的存储器操作之间所需的最小 时间间隔。 通常存储周期TMC略大于存取时间TA。存储速度取决于内存储器的 具体结构及其工作机制。 3. 可靠性 用MTBF(平均故障间隔时间)来衡量,MTBF越长,可靠性越高, 内存储器常采用纠错编码技术来延长MTBF以提高可靠性。

26 4. 性能/价格比 性能主要包括上述三项指标——存储容量、存储速度和可靠性。
对不同用途的存储器可强调不同的要求。例如,有的存储器要求存储容量大,则就以存储容量为主;有的存储器如高速缓冲存储器,则要求以存储速度为主。

27 4.2.4 半导体存储器芯片的发展 DRAM芯片技术发展: 内存条所用的芯片都是DRAM芯片;
半导体存储器芯片的发展 内存条所用的芯片都是DRAM芯片; 特点:集成度高、容量大、价格低、存取速度也低; 随着CPU芯片的飞速发展,其工作频率越来越高,为了满足计算机 系统对访存速度的要求,用于内存条的DRAM芯片也在不断地开发新 型品种,以适应CPU频率高速发展的需求。 DRAM芯片技术发展: FPM DRAM EDO DRAM SDRAM DDR SDRAM 1. FPM DRAM(快页式DRAM) CPU访问内存单元时,在存取数据时,只要保持行地址不变而只改 变列地址,就可以快速地访问给定行的连续数据。 存取时间达80-100ns 。

28 成即可启动下一个页面的单元读写周期,即可以在输出一个数据的过程 中准备下一个数据的输出。
2. EDO DRAM(扩展数据输出DRAM) 在 FPM DRAM基础上加以改进的存储器控制技术。当前的读写周期完 成即可启动下一个页面的单元读写周期,即可以在输出一个数据的过程 中准备下一个数据的输出。 存取时间达50-70ns 。 3. SDRAM(同步DRAM) 一种与CPU外频同步工作的DRAM,在一个CPU时钟周期内可完成数据 的访问和刷新。SDRAM在同步脉冲的控制下工作,CPU不必等待。 采用双存储体结构,可自动切换。 4. DDR SDRAM(双倍数据速率SDRAM) 与SDRAM的主要区别是:DDR SDRAM能在时钟脉冲的上升沿和下降沿 分别读出数据,不需要提高时钟频率就能加倍提高SDRAM的速度。

29 5. DDR2 SDRAM 内部采用4bank的结构,在DDR基础上增加4位数据预取特性,可达到DDR带宽的2倍。 6. DDR3 SDRAM 具有频率高、工作电压低、带宽高、数据传送速率高的特性。

30 4.2.5 主存储器的组织 1. 静态RAM的功能和特性 HM6116是一种2048×8位的高速静态CMOS随机存取存储器 。
主存储器的组织 1. 静态RAM的功能和特性 HM6116是一种2048×8位的高速静态CMOS随机存取存储器 。 HM6116芯片引脚排列如图所示。 HM6116芯片的存储容量为2K×8b,片内有 16384(214)个存储单元电路,排列成128×128 的矩阵,构成2K个字,字长8位; HM6116芯片的内部结构功能框图如图所示。 HM6116芯片有: 11条地址线,其中7条作行地址线,4条作 列地址线,11位地址码选中一个存储单元即 一个8位存储字; 8条数据线,数据读出和写入;

31

32 3条控制线: 片选信号、写允许信号和输出允许信号。这3个控制
信号的组合控制HM6116芯片的工作方式,如表所示。

33 2.DRAM芯片Intel 2164 Intel 2164A的引脚排列如图所示。
Intel 2164是64K×1b的DRAM芯片。 Intel 2164A的引脚排列如图所示。 Intel 2164A片内有64K(65536)个内存单元,有64K个存储地址, 每个存储单元存储一位数据。 Intel 2164A芯片的内部结构功能框图如图所示。

34

35 片外地址线分为——行地址RA和列地址CA;
芯片的地址引脚只有8条,片内有地址锁存器,可利用外接多路开 关,由行地址选通信号将先送入的8位行地址送到片内行地址锁存器, 然后由列地址选通信号将后送入的8位列地址送到片内列地址锁存器。 16位地址信号选中64K个存储单元中的一个单元。 芯片中的64K存储体由4个128×128的存储矩阵组成,每个128× 128的存储矩阵,由7条行地址和7条列地址进行选择。 7位行地址经过译码分别选择128行中的一行; 7位列地址经过译码分别选择128列中的一列。 选中的一行和一列可同时选中4个存储矩阵中各一个存储单元,然 后由RA7与CA7(即地址总线中的A7和A15)经1:4的 I/O门电路选中 1个单元进行读写。

36 刷新时,在送入7位行地址时选中4个存储矩阵的同一行,即对
4×128=512个存储单元进行刷新。 Intel 2164A有:8条地址线、1条数据输出线、1条数据输入线、 写允许信号、行地址选通信号RAS、列地址选通信号CAS 。

37 3. 芯片的互联 根据存储系统的容量要求和存储器芯片的容量大小,可以计算出需 要的总的芯片数,即
用多片存储器芯片互联可以扩大存储容量,构成系统所需的存储器。 根据存储系统的容量要求和存储器芯片的容量大小,可以计算出需 要的总的芯片数,即 总片数= 采用多片RAM芯片构成计算机存储系统的方法有: (1)位扩展法 主存的字数与单个存储芯片的字数相同(两者存储单元数相同)而位 数不同时, 要用位扩展的方式来组织多个存储芯片构成存储器。扩展 芯片时, 字数不变, 位数增加。

38 位扩展的方式时,各芯片和CPU总线连接应: ◆ 各芯片的片选端CS、地址线Ao—Ai、读/写控制信号都应分别
◆ 各芯片的数据线单独列出作I/O0、I/O1 …… I/Om 分别和CPU 的数据线D0 …… Dm相连接。 例:用64K×1b的存储器芯片组成64K×8b(64KB)的存储器。 采用位扩展方式,需要芯片数为: = 8片 每片芯片应有16根地址线:A0 – A15, 8片芯片的地址线A15~A0分别连在一起同CPU的地址线A15~ A0相连;每片只有一位数据线,8片芯片的8位数据线分别和CPU的 数据线D7~D0相连。

39 中每个芯片的同一单元;CPU发出的 读/写控制信号同时传给8个芯片。
该存储器连接如图所示。

40 指存储单元的扩展,主存的位数与采用存储芯片的位数相同,但 字数不同(存储单元数不同), 要采用字扩展的方式来组织多个存储
(2) 字扩展法 指存储单元的扩展,主存的位数与采用存储芯片的位数相同,但 字数不同(存储单元数不同), 要采用字扩展的方式来组织多个存储 芯片扩展存储单元构成主存储器。 字扩展的方式时,各芯片和CPU总线连接应: ◆ 各芯片的地址线、数据线、读写控制线并联后, 再与CPU 或系统总线的地址线、数据线、读写控制线相连接。 ◆ 各芯片地址范围不同, 即片选信号CS应连接不同的片选控 制信号, 片选信号用CPU地址总线的高位地址经片选译码器 译码得到。 例: 用64K×8b的存储器芯片组成512K×8b(512KB)的存储器。

41 8片芯片的地址线A15~A0分别连在一起同CPU的20位地址线中 A15~ A0相连;
采用字扩展方式,所需芯片数为: = 8 片 每片芯片应有16根地址线:A0 - A15 ;计算机系统有20根地址线: A0-A19 , 8片芯片的地址线A15~A0分别连在一起同CPU的20位地址线中 A15~ A0相连; 采用全译码方式时,高4位地址线 A16 ~ A19通过译码器译码产生 16个片选信号,其中8个分别同8片芯片的片选信号连接;每片只有8位 数据线,8片芯片的8位数据线并联分别和CPU的数据线D7~D0相连。 采用字扩展法的存储器连接如图所示。

42

43 若主存储器容量为M×N位,采用容量为L×K的存储器芯片,则需 要M/L × N/K 片芯片,其中用 N/K片 L×K的存储器芯片组成一组
(3) 字位扩展法 存储器芯片的字数和字长均不能满足主存储器要求时, 需要在字 数和位数上同时扩展,以构成主存储器。 若主存储器容量为M×N位,采用容量为L×K的存储器芯片,则需 要M/L × N/K 片芯片,其中用 N/K片 L×K的存储器芯片组成一组 ,实现位扩展构成L×N位的存储器,再采用M/L组的L×N位的存储器组 进行字扩展构成M× N位的存储器。 字位扩展方式时,各芯片和CPU总线连接应: ◆ 各芯片的地址线、读写控制线并联后, 再与CPU或系统总线 的地址线、读写控制线相连接。 ◆ 同一组中各芯片(共N/K片 )的片选信号CS并接一起接同一 个片选控制信号,不同组CS应接不同的片选控制信号。

44 CPU的数据线D0-Dn-1 相连,但每组中对应的芯片应并联接同样 数据线。
◆ 一组中各芯片(共N/K片 )存储器的数据线单独列出分别和 CPU的数据线D0-Dn-1 相连,但每组中对应的芯片应并联接同样 数据线。 例: 用256K×1b的存储器芯片组成2M×32b(8MB)的存储器。 解: 位扩展:32 片 256 K×1位的芯片组成一组,构成256 K×32位存 储器组; 字扩展:8组 256 K×32位存储器组构成 2M×32位的存储器; 总共需要256片256 K×1位的芯片。 每片芯片应有18根地址线:A2 - A19 ,分别和同CPU的地址线A2 ~A19相连;计算机系统有21根地址线:A2-A22 ,采用全译码方式 时,高4位地址线 A20 ~ A22通过译码器译码产生8个片选信号, 分别同8组芯片的片选信号连接;每组中32片芯片的一位数据线分别 和CPU的数据线D0-D31 连接 。

45 采用字位扩展法的存储器连接如图所示。

46 多体交叉存储技术是一种提高访存速度的结构技术;
多体交叉存储技术 多体交叉存储技术是一种提高访存速度的结构技术; 多体交叉访问存储器是一个多体系统: 由多个容量相同的存储体存储模块组成; 各存储体各自具有相互独立的数据寄存器、地址寄存器和读写电路, 各存储体能并行工作,也能交叉工作; 一种多体访问存储器的结构原理图如图所示 ◆ 组成 有:n个容量相同的存储体M0,M1,···,Mn-1; n个 地址寄存器MAR、 n个数据寄存器MDR和n个读写电路; 各存储体都是一个独立操作的单位,

47 多体交叉访问存储器

48 存储器地址寄存器MAR中的高位地址(块内地址)指向存储体中
的存储字,低位地址(模块号)经地址译码器选择不同的存储体。 ◆ 工作原理 CPU可以对多个存储体进行读写操作,可以交替地访问这些存储 体,即在对一个存储体的访问刚开始时,可立即开始对另一个存储 体的访问。 多体交叉访问存储器的交叉访问不要求访问的地址是连续的, 只要连续访问的存储单元位于不同的存储体中。 CPU采用的是在一个存储周期内分时访问各个存储体。 多体交叉访问存储器采用分时启动的方法,可以在不改变每个 存储体存取周期的条件下,提高主存的访问速度,

49 设存储器由n个存储体组成,各存储体可按一定的顺序分时地轮流
启动,两个相邻存储体启动访问的间隔时间可以等于单个存储体访问 周期的1/n,即每隔1/n访问周期启动一个存储体的操作,从而存储器 的带宽可以增加到原来的n倍。整个存储器的访存速率可得到提高。 实际应用中,当出现数据相关和程序转移时,将破坏并行性,主 存的访问速度的提高达不到n倍。 多体交叉访问存储器结构中要求存储体的个数必须是2的整数冪 — 2、4、8、16···个。 构成多体交叉访问存储器的n个存储体中,任一个存储体发生故 障都会影响整个地址空间区域 。

50 4.3 存储系统的层次结构 ■ 在计算机应用中对存储系统的要求是大容量、高速度和低成本。 但三者是相互制约的;
4.3 存储系统的层次结构 ■ 在计算机应用中对存储系统的要求是大容量、高速度和低成本。 但三者是相互制约的; 在同一存储器(即用相同器件构成的存储器)中要同时达到上述 要求是困难的,必须从结构上采用专门技术来实现存储系统的要求。 ■ 访存局部性规律: 程序对其存储空间的访问并不是均匀分布 的,在一个较短的时间间隔内,程序对存储空间的90%的访问局限 在存储空间的10%的区域中,而其余的10%的访问则分布在存储空间 的其余90%区域中。 下一次执行的指令和上一次执行的指令在存储空间的位置是相 邻的或相近的。程序中所使用的数据而言,经常使用数组和变量的 数据结构,它们在内存中的分布也相对集中。 因此,程序和数据的存放都符合一定访存的局部性规律。

51 根据容量和工作速度把几种不同特性的存储器件构成分成一个多
■ 层次化存储系统 根据容量和工作速度把几种不同特性的存储器件构成分成一个多 层次的存储系统: 将速度较慢、价格/容量比较低的存储器件实现较低层次的大容 量存储器; 用少量的速度较快、容量较小、价格/容量比较高的存储器件实 现高速的存储层次; 这样可以用较低的成本实现大容量存储,又使存储器具有较高的 平均访问速度。 现代计算机系统中的层次化存储系统结构图如下图所示。

52 其中,最高层次的存储部件是CPU中的寄存器,是一个高速存储部
件, 其存取速度最快,存储容量最小,价格/容量比最大; 最低层次的存储部件是辅助存储器,由磁盘(软磁盘和硬磁盘)、磁带和光盘等组成,是一个大容量存储部件,其存取速度慢、存 储容量大、价格/容量比小,

53 目前多数计算机系统采用Cache、主存储器、辅助存储器三级存
储器系统构成两个存储层次:Cache-主存存储层次(Cache存储系统) 主存-辅存存储层次(虚拟存储系统)。如图所示。

54 ■ Cache-主存存储层次 用来解决主存速度低的问题,弥补CPU与主存在速度上的差异。
CPU访问Cache存储系统时,速度接近Cache速度,而容量是主存容 量,价格/容量比接近主存。 在主存和Cache之间增加辅助硬件使主存和Cache构成一个整体, CPU对Cache和主存层次的调度全部由硬件实现。 Cache存储系统对系统程序员和应用程序员都是透明的。 ■ 主存-辅存存储层次 用来解决主存容量小的问题,主存和辅存构成一个整体,把磁 盘空间当作主存空间供程序使用,建立起一个虚拟存储器。CPU访 问虚拟存储系统时,速度接近主存的速度,容量是虚拟地址空间的, 价格/容量比接近辅存。

55 在主存和辅存之间增加辅助硬件和辅助软件,使主存和辅存构成
一个整体。 虚拟存储系统对应用程序员是透明的,对系统程序员是不透明的, 因为虚拟存储系统需要通过操作系统进行调度。

56 4.4 高速缓冲存储器 4.4.1 Cache的工作原理 为了提高CPU访问主存的速度,在不大幅度增加成本的前提下,
可以在主存(动态RAM)与CPU之间插入一个速度快、容量较小的静 态RAM(SRAM),用于存储近阶段CPU访问最频繁的指令和操作数据, 起到缓冲作用。这样一个由高速的SRAM芯片组成的小容量临时存储 器称为高速缓冲存储器Cache。 (2) Cache的结构 现代微处理器芯片中都集成有高速缓冲存储器,Pentium 4处 理器芯片中就集成了20KB的L1 Cache(一级Cache)和256KB的L2 Cache(二级Cache);64位处理器芯片Itanium(安腾)中还集成 了3MB的全速L3 Cache(三级Cache)。

57 (3)CPU-Cache-主存间的联系 通过“主存控制逻辑”实现CPU同主存之间的数据交换;
通过“Cache控制逻辑”实现CPU与Cache、Cache与主存、CPU与主 存之间的数据传送。 CPU-Cache-主存间的联系框图为:

58 对Cache在CPU芯片外的情况,实现二者之间控制的是—个称为 “主存/Cache控制器”的逻辑电路,也即芯片组中“北桥”的一个组成部 分。
对Cache集成在CPU内部的情况,由CPU提供对Cache的控制逻辑。 (4) Cache的工作过程 CPU对主存和Cache的读写是以字(存储字)为单位,主存同 Cache之间的数据传送是以数据块(简称块)为单位,一个块由若干 定长的字组成 。 开始工作时,Cache中无数据和程序。 CPU访问主存(设为读主存),从主存中读取数据或代码,写入 CPU中的寄存器,同时把含有该字的一个数据块从主存读出写入 Cache,(称为 “调入”Cache)。 此后CPU再对主存访问时,便发出欲访问字的内存地址,Cache 控制逻辑依据地址判断此字是否在Cache中:

59 若是在Cache中,可直接以Cache的存取速度从Cache中访问到数
的统计概率称为“Cache的失效率”。这时,CPU必需访问主存,从主 存中读取数据或代码写入CPU中的寄存器,同时把含有该字的一个数 据块调入Cache。

60 地址映像 — 在主存地址和Cache地址之间建立一个确定的逻辑 关系。 可以根据主存的地址来构成Cache的地址,以便在Cache被命中
(1)地址映像和地址映像表 地址映像 — 在主存地址和Cache地址之间建立一个确定的逻辑 关系。 可以根据主存的地址来构成Cache的地址,以便在Cache被命中 时,使用指令中给出的主存地址能正确地在Cache中访问到对应的存 储字。 地址映像可解决CPU访问含有Cache的存储系统时, 确定Cache 是否被命中,若被命中,确定被访问的数据字在Cache中的存储位置等 问题。 地址映像表 — 反映主存单元和Cache单元对应的地址映像关系 的表格。 该表采用高速器件实现,以提高查表的速度。

61 地址映像表可以和Cache数据项结合起来可使查 表与访问Cache结合起来,在Cache中为每个数据块
存储地址映像表;主存中调入的数据; 地址映像表可以和Cache数据项结合起来可使查 表与访问Cache结合起来,在Cache中为每个数据块 增加一个“地址映像标记”,地址映像标记包含了判 断访问的数据是否存在于Cache中的信息,该标记可 以是一个地址的信息,即是数据块在主存中的块地 址。 为识别一个Cache存储块中数据是否有效,增加一个“有效位”表示 Cache中一个块对应的标记是否有效。

62 每次把主存以块方式调入Cache时,将该数据块在主存中的地址
要访问的数据就在Cache中,确定Cache被命中,也找到了数据在 Cache中的存储位置。 (3)主存的地址 CPU按主存的地址访问存储器,主存的地址由二部分组成: 高段地址为“主存块号”用于标识一个存储块; 低段地址称为“块内地址”或“偏移量”,用于块内寻址。可直接作 为Cache地址的块内地址。

63 (4) Cache的基本结构

64 Cache中的块数远小于主存中的块数,Cache中存放的信息仅是主 存中最急需执行的若干块的副本。
◆ CPU访问某主存单元时,用该主存地址的块号字段去访问“地址 映像表”,判定该主存地址的存储单元的副本是否在Cache中: 若 Cache被命中,由“地址映像机构” 将主存地址高段块号转 换为Cache地址的块号,与块内地址合并生成被访问主存单元的 Cache地址去访问Cache。 若 Cache不命中,CPU需访问主存,同时将该存储单元所在块 调入Cache,有两种情况: ① 若Cache中可装入,则直接将该块主存数据装入Cache,同 时补充“地址映像表”;

65 ② 若Cache有块冲突,需按某种替换算法将Cache中的某一块数
(5) 地址映像中需注意的问题 ■ CPU访问主存时,Cache地址转换,或主存中调入Cache以及替换算 法以实现块替换都由硬件来实现的,因此Cache的工作对程序员而言 是透明的。 ■ 地址映像是将主存地址映像成Cache中的地址,Cache的地址空间 较小,主存的地址空间较大,Cache中的一个存储块可与主存中的若 干个存储块相对应,即若干个主存地址将可映射到同一Cache地址。 一般有三种地址映像方法。

66 4.4.3 直接映像 直接映像:一个主存块只能映像到Cache中某一个特定块地址的映像 方式。
直接映像 1、 直接映像方式 直接映像:一个主存块只能映像到Cache中某一个特定块地址的映像 方式。 设主存有m×n块,Cache有n块,可把主存分成m区,每区中有n块 ,则主存区号为0、1、2、… m-1,主存块号为0、1、2、… mn-1, Cache 块号为0,1,2,…n-1, 一个主存有256块,分成32区,Cache有8块的直接映象的示意图如 下。在直接映像方式下,主存中第1块的数据只能调入到Cache中第1块, 主存中第9块也只能调入Cache中第1块。 主存中第j块(j=0~mn-1)的数据只能调入Cache 中块号为第i块(i=0~n-1)的位置。 j与i的关系为:i = j mod n,n为Cache的块数。

67

68 2、主存地址 个区内可按Cache块号编号,这样主存地址结构如下: “区号”作为标记(表示为Tag)存放在“地址映像表”中,用于判断是
i = j mod n相当于将主存的地址空间按Cache的空间大小分区,每 个区内可按Cache块号编号,这样主存地址结构如下: 主存块号 “区号”作为标记(表示为Tag)存放在“地址映像表”中,用于判断是 否命中; “块号”是区内块号,同Cache块号,用于直接查“地址映像表”(用作 查表索引),以及在Cache中进行“块寻址”; “块内地址”用于在块内选择字或字节(表示为BS); 例如 一块有1024个字(16位)或字节,则块内地址为10位(1024个字 节)或11位(1024个字)。在上例中,主存地址中区号为5位,块号为 3位,块内地址为10位(块内字地址)共18位。

69 3、直接映像的访存过程 访存过程 以图表示。

70 直接映像方式下的Cache内容由调入数据块的数据和调入块的主存
区号(称为“标记”)组成。 访问存储器时给出主存地址,由区号(标记)、块号和块内地址 组成,以块号到Cache中检索到该块号所对应块,取出标记部分同主存 地址中的标记(区号)送比较器进行比较: 若相等,说明被命中,由该块号加上块内地址构成的Cache地址访 问Cache。 若不等,说明未被命中,则以主存地址访问主存,并把主存中该 块数据调入填补空块(直接映像只能调入指定块内,不需要采用替换 策略)或替换原有的副本,且修改标记值。

71 例4-1:设在直接映像的Cache中,主存地址的区号5位,块号3位,CPU访存过程中,依次访问主存单元高8位地址为:
, , , , , , , 。 要求写出每次访问后Cache中的内容。 解:(1) 开始工作时Cache的初始状态如表

72 (2) 访问 , Cache中块地址为110的块内无数据—有效位为N,未命中,访问主存,将主存块号 的内容调入Cache 块地址为110的数据段中后,Cache中块地址为110的有效位写为Y,标记字段写入00010。Cache内容如下表所示,(( )表示块内容)。 Y 00010 ( )

73 Cache中块地址为010的块内无数据——有效 位为N,未命中,访问主存,将主存块号00011010的内容调入Cache
(3)访问 , Cache中块地址为010的块内无数据——有效 位为N,未命中,访问主存,将主存块号 的内容调入Cache 块地址为010的数据段中后,Cache中块地址为010的有效位写为Y, 标记字段写入00011,Cache内容如下表所示,(( )表示块 内容)。 Y 00011 ( )

74 (4) 访问00010110命中,访问Cache,Cache中内容不变;

75 Cache中块地址为000的块内无数据——有效 位为N,未命中,访问主存,将主存块号00010000的内容调入Cache
块地址为000的数据段中后,Cache中块地址为000的有效位写为Y,标 记字段写入00010,Cache内容如下表所示。,(( )表示块 内容)。 (6) 访问 , Y 00010 ( )

76 Cache中块地址为011的块内无数据—有效位 为N,未命中,访问主存,将主存块号00000011的内容调入Cache 块地
(7) 访问 , Cache中块地址为011的块内无数据—有效位 为N,未命中,访问主存,将主存块号 的内容调入Cache 块地 址为011的数据段中后,Cache中块地址为011的有效位写为Y,标记字 段写入00000,Cache内容如下表所示。 Y 00000 ( )

77 (8)访问00010000命中,访问Cache,Cache中内容不变;

78 ,未命中,访问主存,以(00010010)替换(00011010),修改标记 为00010,Cache内容如表所示。
(9)访问 , Cache中块地址为010的块标记为00011≠00010 ,未命中,访问主存,以( )替换( ),修改标记 为00010,Cache内容如表所示。 00010 ( )

79

80 4、直接映像的特点 直接映像的地址变换速度快; 不涉及替换策略; 实现的硬件简单,成本低;
缺点是每一主存块只能调入Cache中某一指定的区域,块冲突的概 率高,Cache的效率低;

81 4.4.4 全相联映像 1、 全相联映像方式 2、主存和Cache的地址结构 地址映像方式。
全相联映像 1、 全相联映像方式 全相联映像 :主存中每一个块都可映像到Cache中的任何块中的 地址映像方式。 设主存有m块,Cache有n块,主存块号为0、1、2、… m-1, Cache 块号为0,1,2,…n-1,主存中第j块(j=0~m-1)的数据能 调入Cache 中块号为第i块(i=0~n-1)的位置。 一个主存有256块,Cache有8块的全相联 映象的示意图如下。 2、主存和Cache的地址结构 主存地址为 : Cache地址为:

82

83 3、全相联映像下的访存过程 访存过程 以图表示。

84 Cache由存放从主存调入的数据和调入块的主存块号(作为“标
记”)组成; CPU访问存储器时,给出由“主存块号”及“块内地址”组成的主 存地址。将主存地址中的标记依次分别同Cache中的各标记送比较器 比较: 若有一个相等,说明被命中,由主存块号转换为Cache块号,同 主存地址中的块内地址组合为Cache地址访问Cache; 若无一个相等,说明未被命中,则以主存块地址访问主存,并 在Cache中各块未充满情况下,则将该块数据调入到Cache 任意空 块中,或在Cache中各块都已充满情况下,则采用一定的替换算法 替换掉Cache中某一块,然后把该块的主存块号作为新标记写入到 Cache中该块的标记处以修改标记。

85 4、 全相联映像的特点 全相联映像在Cache中各块全部装满时才会出现块冲突,可以灵活 地进行块的分配,所以块冲突概率低;
标记检查速度慢,控制复杂,比较电路较难实现; 用硬件来实现替换算法; 适用于容量较小的Cache中,使参与比较的标记较少、比较电路相 应简单、检索速度也不会太长。

86 例4-2:设在全相联映像的Cache中,主存地址块号8位,Cache块号3位, CPU在访存过程中依次访问主存单元的高8位地址为:
, , , , , , , (与例4-1同)。 要求画出全相联映像下完成上述访问后Cache的调入块的分配情况,并 同直接映像的分配情况作对比。 解:为简单起见,把被访问的8个主存单元的块地址依次用十进制表示 为:22、26、22、26、16、3、16、18,省略Cache标记等,根据例4-1的 分析,可画出直接映像方式下Cache中的块分配情况如图4-19所示,第8 次访问时,虽然Cache中8块仅装入了4块,但还是发生了块冲突,因为18 mod 8 = 26 mod 8必须进行替换操作。

87 18

88 同样,可画出全相联映像方式下Cache中的块分配情况如图4-20所示,从图可见,8次访问后,Cache未被装满,不会发生块冲突。
22 22 26 22 26 22 26 22 26 16 22 26 16 3 22 26 16 3 22 26 16 3 18

89 4.4.5 组相联映像 1、 组相联映像方式 间和主存空间中的每一区都等分成大小相同的组。让主存各区中某组
组相联映像 1、 组相联映像方式 组相联映像:将主存空间按Cache大小等分成区后,再将Cache空 间和主存空间中的每一区都等分成大小相同的组。让主存各区中某组 中的任何一块,均可直接映像装入Cache中对应组的任何一块位置上, 即组间采取直接映像,而组内采取全相联映像。 设主存空间按Cache容量分为m区 , 每个区分为 p个组 ,每个 组含有n块,(称为“n路组相联”),则主存共有m×n×p块,Cache为 n×p块,亦分成p个组 ,每组含有n块。 主存第i区(0≤i≤m-1)中的块数等于Cache中块数,主存第i区 中第j组( 0≤j≤p-1)第k块( 0≤k≤n-1)的数据只能调入到Cache 中第j组的空间,但可存放于第j组中0~ n-1的任意一块。

90 一个主存256块,分成32个区,Cache有8块,分成4组的组相联映

91 2、主存和Cache的地址结构 组相联映像中主存地址结构为: Cache地址结构为:
组内块号是查找地址映像表的结果。

92 3、组相联映像 组相联地址映像表又称为“块表”。用来检索Cache是否被命中, 形成命中块的Cache地址, “块表”如下图所示。
检索标记包括二部分: 区号标记和组内块号标记。

93 项中 ,查找有无和主存地址的区号和组内块号相同的主存区号标记 和组内块号标记:
访存时,根据主存地址中组号在“地址映像表”中的该组对应的表 项中 ,查找有无和主存地址的区号和组内块号相同的主存区号标记 和组内块号标记: 若有,表示Cache被命中,将对应的Cache块号取出,形成Cache 地址访问Cache。 若无,表示Cache未被命中,在对主存进行访问同时,将主存中对 应块调入Cache中相应组的一块中,并在地址映像表中对应Cache块 号标记处写入主存区号、组内块号,改变地址映像关系。 主存块存入Cache中哪一组是由直接映像规定的,关于存入该组中 哪一块是由全相联映像规定,这里也涉及替换操作及替换算法。

94 例4-3 设两路组相联映像Cache中,主存块地址(块号)8位,Cache块
号3位,分区分组情况同图4-21,CPU在访存过程中,依次访问主存单 元的两8位地址(块地址)为: (22), (26), (22), (26), (16), (3), (16), (18)。 要求画出两路组相联映像下完成上述访问后,Cache内调入块的分配情况。 解(1)访问 (22) 8位地址中最高5位“00010”为区号,次2位“11”为组号,末位“0” 为组内块号。 开始时,Cache内8块都是空的,未命中,访问主存,将主存的第 22块数据块内容调入Cache中3组0块,即Cache块地址(块号)“6”; 并在地址映像表中Cache块块号为“6”(110)对应区号标记和组内块 号标记分别写入00010和 0 。

95 22

96 地址映像表的内容为:

97 (2)访问 (26), 同理,将26块内容调入1组0块, Cache块地址“2”。 26

98 地址映像表的内容为: 00011

99 在地址映象表的 3 组对应的标记中查到Cache中第6块的区号为 00010和组内块号为0 ,表明副本在Cache中,命中,从表中查得
(3) 访问 (22) 在地址映象表的 3 组对应的标记中查到Cache中第6块的区号为 00010和组内块号为0 ,表明副本在Cache中,命中,从表中查得 Cache块号为 110 ,可进行访问。 (4) 访问 (26) 查得1组中区号为00011,副本在Cache中,命中。

100 未命中,调入到Cache0组0块,Cache块地址“0”;
(5)访问 (16) 未命中,调入到Cache0组0块,Cache块地址“0”; (6)访问 (3) 未命中,调入到1组,但1组0块已满,1块尚空,调入到1块, Cache块地址“3”; 16 16 26 3 22

101 查得0组中区号为2,副本在Cache中,命中。
(7)访问 (16) 查得0组中区号为2,副本在Cache中,命中。 (8)访问 (18) Cache中1组已满,0块中存放3区(26)及1块存放0区(3)的数 据块。发生块冲突,访问主存替换1组中任一个,现替换0块(FIFO 替换),得下图分配情况。 18

102 4、组相联映像的特点 组内是全相联映像,组间是直接映像。 组内的容量为1块时即为直接映像;
组的容量为Cache块容量时(只有1组)即为全相联映像。

103 全相联和组相联可提高命中率,但要涉及替换算法,要应用复杂的多路比较器,硬件电路复杂并使映像速度降低;
直接映像的硬件电路较简单,无需考虑替换策略,映像速度快,但命中率较低,易发生块冲突。 在计算机系统中,大容量高速Cache采用直接映像,小容量较低速 的Cache采用组相联映像和全相联映像。

104 4.4.6 替换策略和更新策略 Cache未命中,则CPU访问主存,并将该数据块调入Cache,这时对 应于不同的地址映像方式有不同的处理。
替换策略和更新策略 1. 替换策略 Cache未命中,则CPU访问主存,并将该数据块调入Cache,这时对 应于不同的地址映像方式有不同的处理。 ① 若为直接映像的Cache,则调入的数据块只能存入Cache中固定 的位置,如果该位置是空的还是已有其他数据块占有,都不需要考虑 替换策略。 ② 若为全相联映像或组相联映像的Cache,则调入的数据块可存入Cache中任意位置或组内任意位置,如果Cache或组内已被占满则就有一个新数据块写入哪一个位置(替换掉原有的哪一个块)的问题。这就是替换策略 — 替换算法的问题。 常用的替换算法有三种:

105 (1) 随机法 ◆ 从Cache中随机地取出一块作为替换块,把新的数据块调入即可。
(1) 随机法 ◆ 从Cache中随机地取出一块作为替换块,把新的数据块调入即可。 ◆ 硬件实现简单,可用随机数产生器产生一个随机的替换块号。 ◆ 替换速度快,但没有考虑程序访问的局部性原理,随机换出的 数据块可能马上又要被访问,从而降低了命中率和工作效率。这一 缺点随着Cache容量增大而减小。 (2) 先进先出法 ◆ 先进先出(FIFO)算法是将最先调入Cache的数据块替换出来。 ◆ 实现较容易,开销少。 ◆ 缺点是没有顾及程序访问的局部性原理,往往在执行循环程序时, 会降低效率和命中率。

106 ◆ 近期最少使用(LRU)算法是将Cache中近期内长久未被访问过
(3)近期最少使用法 ◆ 近期最少使用(LRU)算法是将Cache中近期内长久未被访问过 的数据块替换出来。 ◆ 为实现该算法,Cache中每一块各设置一个计数器,访存时,当 Cache被命中时,命中的块计数器清零,其余块计数器加1,当需要 替换时,比较各特定块的计数值,将计数值最大的块替换出去。 ◆ 这种算法使刚调入及近期访问过的Cache数据块不会立即被替换。 符合程序访问局部性原理, 能提高访存速度,可以使Cache有较高 的命中率。 ◆ 对2路组相联的Cache而言,实现LRU算法的硬件电路可以不 需要计数器,只需用一个二进制位即可。因是两路组相联,一个主 存块只能在一个特定组的两个数据块中存放。 例如一组中A块调入新数据块将计数位置“0”,当需要替换时,

107 只需检查该计数位状态,为“0”替换B块,为“1”替换A块。保
护了新调入块。 Pentium(奔腾)芯片的数据Cache是一种2路组相联结构的 Cache,采用这种简化的LRU替换算法。

108 2. 更新策略 读操作时,读主存并在Cache中存放已读数据所在数据块的副本,
2. 更新策略 读操作时,读主存并在Cache中存放已读数据所在数据块的副本, 或直接读速度快的Cache,在存放数据块时要考虑替换策略。但读操作 不会改变主存的内容。 写操作时,要改变主存内容。 ■ 若Cache被命中, CPU对Cache中相应数据块进行写操作而改变Cache中该块的内容 时,如何使主存保持同Cache的一致,就是在Cache写操作时采用的 策略—更新策略: ① 写回法 CPU写Cache命中时,只修改Cache的内容,不立即写入主存, 只有当该数据块要被替换时,才将它写回主存。 多次命中都在Cache中高速完成,只是在需要替换时,才把 已改写的Cache块写回主存,减少了CPU访问主存的次数。

109 采用写回法时,要求每个Cache块配置一个修改位,以反映
修改位清“0”,在被写时,修改位置“1”。 ② 全写法 又称“写直达法”。 当写Cache命中时,Cache与主存同时发生写修改,维护了 Cache与主存内容的一致性; 无需在Cache块中增加修改位; 缺点是CPU向主存进行写操作时,Cache无高速缓冲功能,降低 了Cache的作用; ■ 若Cache未被命中, CPU是否将被写的主存块调入Cache,此时也有两种写策略:

110 ① 写装入法 ② 写不装入法 又称“按写分配法”。 在写主存时,将修改过的主存块调入Cache并为其分配一个块位 置; 又称“不按写分配法”
① 写装入法 又称“按写分配法”。 在写主存时,将修改过的主存块调入Cache并为其分配一个块位 置; ② 写不装入法 又称“不按写分配法” 只写主存,不调入Cache。 通常“写装入法”同“写回法”一起使用,“写不装入法”同“全写法”一 起使用。 在Pentium芯片的片内数据Cache采用“写回法”结合“全写法”的 写策略,称为“写一次法”。 具体策略是:写命中与写未命中的处理方法与“写回法”基本相 同,只是第一次写命中时要同时写入主存。

111 因为第一次写Cache命中时,CPU要在总线上启动一个存储器写周

112 4.5 虚拟存储器 4.5.1 虚拟存储器的基本概念 1. 虚拟存储器 虚拟存储器:指计算机层次化存储系统中的主存-辅存(外存)层
4.5 虚拟存储器 虚拟存储器的基本概念 1. 虚拟存储器 虚拟存储器:指计算机层次化存储系统中的主存-辅存(外存)层 次,是一个容量极大的存储器的逻辑模型,不是实际的物理存储器。 虚拟地址:又称虚地址,以透明的方式给计算机用户提供一个比 实际主存空间大得多的程序地址空间,这时程序的逻辑地址称为“虚 拟地址” ,程序的逻辑地址空间称为虚拟地址空间。 虚拟地址是由编译程序生成的,CPU工作在虚拟地址模式下能识别 这些虚拟地址,并将虚拟地址转换为物理地址。 物理地址:又称实地址,是由CPU地址引脚产生,用于访问主存储 器的地址。物理地址空间大小由CPU的地址总线宽度决定,地址总线 为n位, 则物理地址空间为2n。

113 2. 虚拟存储器的特点 虚拟存储器的内容保存在磁盘上,所以虚拟地址空间的大小受辅助 存储器容量限制。
2. 虚拟存储器的特点 籍助磁盘、磁带和光盘等辅助存储器来扩大主存容量了; 解决了存储系统的存储容量与存取速度的矛盾; 是管理存储设备的有效方法; 编程方便; 使计算机系统具有辅存的容量和成本/位,速度接近主存; 3. 主存和辅存层次间信息传递的单位 段(Segment):利用程序的模块化性质,按程序的逻辑结构划分 多个相对独立部分。段作为独立的逻辑单位可以被其它程序段调用, 形成段间连接产生较大规格的程序。 段作为基本信息单位在主存-辅存间定位和传送。

114 4. 虚拟存储器的工作原理 段表指示段的特性——在主存中的位置(起始地址、段长)段名 等。
页(Page):把主存的物理地址空间和虚拟地址空间划分为等长的 固定区域称为页面(或页),各虚拟页可以调入主存中不同的页面 位置,用页表来指示页的特性。 4. 虚拟存储器的工作原理 虚拟存储器的工作原理是基于“访存局部性规则”。 虚拟存储器的物理结构基础是主存和辅存,各种存储器硬件以及 管理这些存储器的软硬件构成了计算机的存储系统。 存储管理软件属于OS(操作系统)的一部分,用以处理所有的软 件操作,包括确定将哪一个页面从主存中移出以腾出空间装入新的页 面,以及什么时候将一个页面从辅存中调入主存,还有将页面放在主 存的什么地方等。

115 助存储器相连,构成一个供用户使用的(可寻址)容量非常大的存储
硬件对于虚拟存储器的支持主要是提供快速的地址映像,这部分 硬件称为MMU(存储管理部件)。 在主存-辅存层次结构中,使用硬件和软件技术,把主存储器和辅 助存储器相连,构成一个供用户使用的(可寻址)容量非常大的存储 器。用户可以根据按这个虚拟地址空间编程,程序由OS装入辅存。程 序运行时,MMU和存储管理软件会把当前要运行的程序从辅存调入主 存,或把非运行程序调出。在执行指令访问存储器时或调入调出过程 中必须有存储管理的硬软件完成虚地址和实地址的转换。 按存储映像算法划分虚拟存储器有三种存储管理方式:

116 4.5.2 页式虚拟存储器 ◆ 在页式虚拟存储器中把虚拟存储空间和实际存储空间等分成固定 容量的页,分别称为“虚拟页”和“实际页” 。
页式虚拟存储器 ◆ 在页式虚拟存储器中把虚拟存储空间和实际存储空间等分成固定 容量的页,分别称为“虚拟页”和“实际页” 。 各虚拟页可装入主存中不同的实际页的页面位置。主存中的页面 存放位置称为“页框架” 。通常一页为4Kbyte ~ 64Kbyte。 ◆ 页式虚拟存储器地址结构 程序所用的逻辑地址(虚地址)结构如下: 基号是OS(操作系统)给每个程序产生的附加地址字段; 实际地址(实地址)结构为:

117 任一时刻,每个虚拟地址都对应一个实际地址,该实际地址可 能在主存中,也可能在辅存中,地址映像结构将虚地址转换成实际
地址。这种把存储空间按页分配的存储管理方式称为“页式管理”。 ◆ 页式虚拟存储器的地址映像 页式虚拟存储器采用页表和页基址表来实现地址映像和存储管理。 如图所示。 页表:虚拟页号(逻辑页号)与实页号(物理页号)的映像表。 页表包括每个页的主存页号,表示该页是否已装入主存的装入位 以及访问方式(只读、只执行和可写)三项内容。 虚页号一般对应于该页在页表中的行号。页的长度固定,不需 要在页表中记录。 在页式虚拟存储器中一个页表对应一个运行的程序,每个页表驻 留在主存中,各页表在主存中的起始地址由页基址表指示。

118 页式虚拟存储器

119 页基址表:CPU中的一个专门寄存器组,表中每一行代表一个运行
的程序的页表信息——页表起始地址(页表基址)和页表长度。 从页基址表中查出页表的起始地址,用虚页号从页表中查找实页号,同时判断该页是否已装入主存。若已装入,则从页表中取出实页号,与页内地址一起构成物理地址。 ◆ 页式虚拟存储器的地址变换过程 ① 首先由虚地址中“基号”查找“页基址表”,由页基址表查找得到 页表基址; ② 查页表,通过页表将虚页号变换成主存中的实页号; ③ 若页表中对应该页的装入位=1,表示该页已装入主存,可按主 存地址访问主存; 若装入位=0,表示该页未装入主存,从外存中调页,先通过外 部地址更换,一般通过查外页表,将虚地址变换为外存中的实际地 址,然后通过I/O接口将该页调入主存;

120 在页面数量多时页表本身占用较大存储空间,页式管理的工作效率
会降低。

121 4.5.3 段式虚拟存储器 ◆ 在段式虚拟存储器中,按照程序的逻辑结构划分段,段长可以任意
段式虚拟存储器 ◆ 在段式虚拟存储器中,按照程序的逻辑结构划分段,段长可以任意 设定,将主存按段分配的存储管理方式为“段式管理”,这是一种模块 化的存储管理方式。采用段式管理的虚拟存储器为“段式虚拟存储器”。 操作系统为每一个运行的用户程序分配一个或几个段,每个运行的 程序只能访问分配给该程序的段所对应的主存空间,每个程序都以段 内地址访问存储器,即每个程序都按各自的虚拟地址访存。 ◆ 段式虚拟存储器地址结构 虚地址(逻辑地址)结构如下: 基号是一个段标识符,用以标识不同程序中的地址被映像到不同的 段中。 段号是查找段表项的序号;

122 ◆ 段式虚拟存储器的地址映像 段式虚拟存储器采用段表和段基址表来实现地址映像。如图所示。

123 段表:用来指明各段在主存中的位置的映像表,驻留在主存中,允 许一个段映像到主存中的任何位置;
段表包括段基址、装入位和段长以及访问方式四项内容。 段基址用来指示该段在主存中的起始位置; 装入位用以表示该段是否已装入主存; 段长为该段的长度,用于检查访问地址是否越界。 访问方式包含只读/可写/只执行,以提供段的访问方式的保护。 ◆ 段式虚拟存储器的地址映像过程 ① 首先,由虚地址中“基号”查找“段基址表”,从段基址表中查 出段表的起始地址(段表基址)。段基址表一般由CPU中的专门寄 存器组组成。

124 ② 由虚地址中“段号”从“段表”中查找该段在主存中的起始地址
(段基址); ③ 判断该段是否装入主存: 若装入位=1,说明已装入主存,则从“段表”中取出“段基址”与 虚地址中的“段内地址”相加构成被访问数据的物理地址。 若发生段失效时,操作系统必须进行控制,首先在外存中找到 该段,然后决定将该段装入主存何处。虚地址中未直接指明在外 存中的位置,通常在操作系统有一个数据结构,记录各段的存储 位置。 ◆ 段式虚拟存储器的特点 大程序可分模块编制,独立运行,容易以段为单位实现存储保 护和数据共享;

125 用户地址空间分离; 段表占用存储空间少,管理简单; 整个段必须一起调入/调出,使段长不能大于主存容量;

126 4.5.4 段页式虚拟存储器 ◆ 段页式虚拟存储器是段式管理和页式管理的结合。 将存储空间按逻辑模块分段,每段又分成若干页。访存通过一个
段页式虚拟存储器 ◆ 段页式虚拟存储器是段式管理和页式管理的结合。 将存储空间按逻辑模块分段,每段又分成若干页。访存通过一个 段表和若干个页表进行。段长必须是页长的整数倍,段的起点必须是 某一页的起点。 ◆ 段页式虚拟存储器的地址结构 在段页式虚拟存储器中的虚拟地址结构如下: ◆ 段页式虚拟存储器的地址映像 段页式虚拟存储器采用段基址表、段表、页表进行地址映像,如 图所示。

127 段表:每一项对应一个段——装入位、该段页表行数、页表地址;
页表:每一项对应一个页——装入位、主存实页号、访问方式; 地址变换时需查段表和页表。每个运行程序通过一个段表和相应的 一组页表建立虚拟地址与物理地址的映像关系。

128 4.5.5 快表技术 ◆ 段页式虚拟存储器的地址映像过程 ① 由基号从段基址表中查出段表基址; ② 由段号从段表中查出该段页表起始地址;
◆ 段页式虚拟存储器的地址映像过程 ① 由基号从段基址表中查出段表基址; ② 由段号从段表中查出该段页表起始地址; ③ 由页号查找页表,查出实页号—该页在内存中的起始地址; ④ 判断该段该页是否已装入主存,若已装入,从页表中取出“实页 号”与“页内地址”拼接构成被访问数据的物理地址。 快表技术 (1)采用快表的原因 在虚拟存储器中,实地址转换是最主要的工作,而实现地址转 换必需先查页表或段表,而页表和段表一般存放在主存中,因此每次 访问主存时必需两次访问主存,一次是查表形成读/写数据在主存中 的物理地址;一次是读/写数据。

129 这样主存的访问速度必然下降。因此为了提高虚拟存储器的访存 速度,必需提髙查表的速度,从而引出快表的概念。
(2) 快表的形成 根据程序访问的局部性原理,程序虚拟地址空间内不同页面的 访问概率不是均匀的,在一段时间内对页表的访问往往只局限在少数 几个页面上,若能提高对这些使用频率高的页面的访问速度,就可以 提高CPU的访存速度。 据此,将当前最常用的地址转换关系的信息表存放在一个小容量 的髙速存储器(一个特殊的Cache)中。这个存放地址转换关系的特 殊的表来实现地址映像,被称为“地址转换参照表” 或“快表”。 存放整个地址转换关系的信息表称为“慢表”。 在段页式虚拟存储器中,存放在“快表”的信息既有页号字段又有 段号字段。

130 快表由高速硬件构成,而慢表存放在主存中,“快表”是“慢表” 中部分内容的复本。当CPU访问存储器时,先查“快表”若在“快表”
中末查到再从“慢表”中查找。 (3) 利用“快表”和“慢表”实现地址转换 在页式虚拟存储器中,虚地址到实地址的转换如图所示。

131 “快表”由三个字段——虚页号、实页号和装入位组成;“快表”
采用全相联映像。 在CPU访问主存时,按指令给出的虚地址中的虚页号同时查找 “快表”和“慢表”: ① 若在“快表”中查找到该虚页号,取其对应的实页号同指令中的页 内地址组合为实地址访问主存,同时查找“慢表”作废; ② 若在“快表”中未查找到该虚页号,首先判断是“快表”失效还是页 面失效: 若是页面失效,即该页面尚未调入主存,则由操作系统作出响应; 若是快表失效,而页面已存放在主存中,要经过一个访问主存的 时间延迟,将从“慢表”中查到的实页号同指令中的页内地址组合为 实地址访问主存。同时将此虚页号和对应的实页号通过替换算法调 入“快表”。

132 Thank You !


Download ppt "computer organization principle"

Similar presentations


Ads by Google