computer organization principle

Slides:



Advertisements
Similar presentations
第五章 存储系统 5.1 存储器的构成 5.2 存储系统的构成 5.3 Cache 5.4 虚拟存储器.
Advertisements

第 4 章存储器、存储管理和 高速缓存技术 4.1 存储器和存储部件 4.2 存储器的连接 4.3 微型计算机系统中存储器的体系结构 4.4 Pentium 的虚拟存储机制和片内两级存储管理 4.5 高档微机系统中的高速缓存技术 第一次课 第二次课 第三次课.
计算机系统结构 (第9讲).
第四章 存储系统 4-1 存储系统概论 4-2 RAM(随机读写存储器) 4-3 ROM(只读存储器) 4-4 高速缓冲存储器(Cache)
第6章 微机存储器系统 存储器是计算机中存储信息的部件。它可以把需要CPU处理的程序和原始数据存储起来,处理时自动而连续地从存储器中取出程序中的指令并执行指令规定的操作。程序执行过程中的数据也可利用存储器保存起来。这就是说,计算机每完成一条指令,至少有一次为了取指而访问存储器。
计算机系统结构 第五章 存储系统.
第5章 存储器 本章学习主要内容为: 存储器的分类及性能指标。 存储器的分级结构。 常用存储芯片与CPU的接口特性。 存储器的接口设计。
计算机原理及系统结构 第三十一讲 主讲教师:赵宏伟                 学时:64.
第 6 章 存储系统 ——本章主要介绍三级存储体系的含义,及存储器的逻辑设计方法。
第3章 存储系统.
实验四 利用中规模芯片设计时序电路(二).
第六章 微型计算机存储器.
第6章 存储系统 计算机教学实验中心.
第五章 存储层次 5.1 存储器的层次结构 5.2 高速缓冲存储器基本知识 5.3 降低Cache不命中率的方法
第6章 存储器和高速缓存技术.
第 4 章 主存储器与存储体系 计算机的工作依赖于存储器中的程序和数据,存储器的容量和性能对于整个系统的性能至关重要。 本章教学内容
小学生游戏.
计算机组成原理第四章 知识点一:存储系统层次结构和评价方法 主讲教师:吴非.
第五章 存储器 本章要点: ♦ 现代高档微机系统的存储器体系结构 ♦ 半导体存储器的分类与选用原则 ♦ 存储器芯片与CPU的接口特性
Cache综合应用案例 某计算机的主存地址空间大小为256 MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64 B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示: 程序A: int a[256][256]; …… int.
3.1 存储器的构成 3.2 存储系统的构成 3,3 Cache 3,4 虚拟存储器
§3 高速缓冲存储器(Cache) 工作原理和基本结构 地址映象与变换 Cache存储器的LRU替换算法的硬件实现
第 5 章 存 储 器 中国科学技术大学 何克东.
版权所有,引用请注明出处 第四章、存储系统 原著 谭志虎 主讲(改编) 蒋文斌.
第3章 存储系统 现代计算机系统以存储器为中心 3.1 存储系统原理 3.2 虚拟存储器 3.3 高速缓冲存储器(Cache)
第五章 存储系统 半导体存储器概述 系统内存扩充 高速缓冲存储器 虚拟存储器 PC系列机中的主存储器 习题与思考 上一章 目 录 帮助
第 6 章 存储系统 6.1 概述 存储器的层次结构 存储器的分类 存储器的基本组成
存储系统.
微机原理与接口技术 第5章 80X86_88存储系统 黄强 深圳大学 信息工程学院.
微机原理与接口技术 第5章 存储器 朱华贵 2015年11月05日.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
逆向工程-汇编语言
CPU结构和功能.
第六章 半导体存储器 第一节 半导体存储器的分类 第二节 读写存储器RAM 第三节 只读存储器ROM 第四节 存储器空间的分配和使用 第六章 半导体存储器 第一节 半导体存储器的分类 第二节 读写存储器RAM 第三节 只读存储器ROM 第四节 存储器空间的分配和使用 第五节.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第12章 半导体存储器 孙卫强.
移相正弦信号发生器设计 采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图
计算机组成与系统结构 陈泽宇 副教授.
C语言程序设计 主讲教师:陆幼利.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
微机系统的组成.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
顺序表的删除.
第5章 存储器 5.1 存储器概述 5.2 半导体存储芯片结构及使用 位系统的存储器接口.
(Random Access Memory)
第三章 MCS 51的硬件结构.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
iSIGHT 基本培训 使用 Excel的栅栏问题
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
《数字电子技术基础》(第五版)教学课件 清华大学 阎石 王红
段式存储管理(Segmentation)
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
数据报分片.
HSC高速输出例程 HORNER APG.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
7.1 AT89C51最小应用系统 从本质上讲,单片机本身就是一个最小应用系统。由于晶振、开关等器件无法集成到芯片内部,这些器件又是单片机工作所必需的器件,因此,由单片机与晶振电路及由开关、电阻、电容等构成的复位电路就是单片机的最小应用系统。如图7-1所示,AT89C51片内有Flash程序存储器,由它构成的最小应用系统简单可靠。
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
基于列存储的RDF数据管理 朱敏
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
第九章 存储器和可编程逻辑器件 本章主要内容 半导体存储器 只读存储器 随机存取存储器 存储器容量的扩展 可编程逻辑器件
第四章:内存储器接口的基本技术 主讲教师:范新民.
DSP技术与应用 电子与信息技术系.
9.6.2 互补对称放大电路 1. 无输出变压器(OTL)的互补对称放大电路 +UCC
Presentation transcript:

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

第4章 存储系统和结构

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

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

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

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

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

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

行选择线(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。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

片外地址线分为——行地址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个单元进行读写。

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

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

位扩展的方式时,各芯片和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相连。

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

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

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相连。 采用字扩展法的存储器连接如图所示。

若主存储器容量为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应接不同的片选控制信号。

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 连接 。

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

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

多体交叉访问存储器

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

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

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

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

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

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

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

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

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)。

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

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

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

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

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

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

(4) Cache的基本结构

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

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

4.4.3 直接映像 直接映像:一个主存块只能映像到Cache中某一个特定块地址的映像 方式。 4.4.3 直接映像 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的块数。

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

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

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

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

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

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

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

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

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

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

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

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

4.4.4 全相联映像 1、 全相联映像方式 2、主存和Cache的地址结构 地址映像方式。 4.4.4 全相联映像 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地址为:

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

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

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

例4-2:设在全相联映像的Cache中,主存地址块号8位,Cache块号3位, CPU在访存过程中依次访问主存单元的高8位地址为: 00010110,00011010,00010110,00011010,00010000,00000011, 00010000,00010010(与例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必须进行替换操作。

18

同样,可画出全相联映像方式下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

4.4.5 组相联映像 1、 组相联映像方式 间和主存空间中的每一区都等分成大小相同的组。让主存各区中某组 4.4.5 组相联映像 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的任意一块。

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

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

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

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

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

22

地址映像表的内容为: 0 0 0 1 0

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

地址映像表的内容为: 00011

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

页式虚拟存储器

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

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

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

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

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

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

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

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

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

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

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

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

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

Thank You !