登录后台

页面导航

本文编写于 500 天前,最后修改于 496 天前,其中某些信息可能已经过时。

第一章

1.1 计算机系统结构

计算机系统结构是程序员所看到的计算机的属性,即程序员编写出能在机器上正确运行的程序所必须了解到的概念性结构和功能特性。

从计算机系统的多级层次结构出发,不同级的程序员所看到的计算机属性不一样的。

透明性(Transparency):一种本来存在的事物或属性,从某个角度看却好象不存在;通常计算机系统中,低层机器级的概念性结构和功能特性对高层机器级的程序员来说是基本透明的。由于从不同层次(级)的程序员看计算机的属性是不同的,这个属性就是计算机系统不同层次的界面。

“系统结构”就是指的计算机系统中对各级之间界面的定义及其上下的功能分配。

计算机系统结构的属性:

  1. 硬件能直接识别和处理的数据类型和格式等的数据表示;
  2. 最小可寻址单位、 寻址种类、地址计算等的寻址方式;
  3. 最小可寻址单位、 寻址种类、地址计算等的寻址方式;
  4. 二进制或汇编级指令的操作类型、 格式、 排序方式、 控制机构等的指令系统;
  5. 内存的最小编址单位、编址方式、容量、最大可编址空间等的存贮系统组织;
  6. 中断的分类与分级、中断处理程序功能及入口地址等的中断机构;
  7. 系统机器级的管态和用户态的定义和切换;
  8. 输入输出设备的连接、 使用方式、 流量、 操作结束、 出错指示等的机器级I/O结构;
  9. 系统各部分的信息保护方式和保护机构;
1.2 计算机组成与实现

计算机组成:指计算机系统结构的逻辑实现,包括机器级内的数据流和控制流的组成以及逻辑设计等。

任务:系统结构确定了分配给硬件子系统的功能及概念性结构后,研究各组成部分的内部构造和相互联系,以实现机器指令级的要求。

设计要求:按性价比要求,最佳最合理地把各种设备和部件组合成计算机,而且性能参数互相匹配。

重点:提高速度、提高并行度、功能分散和专用部件设置

计算机组成设计要确定的方面:数据通路宽度、专用部件的设置(乘除法器专用器件等)、各种操作对部件的共享程度、功能部件的并行度(顺序/流水)、控制机构的组成方式(硬布线/微程序,单机/多机)

计算机实现:指计算机组成的物理实现。

任务:器件的选择和组装技术。

要求:性能价格比要求

指令系统的确定(条数、类型、方式) -----系统结构

取指、取操作数、运算、送结果等具体操作及其排序方式 -----组成

具体电路、器件的设计及装配技术等 -----实现

1.3 系统结构、组成和实现的关系

相同系统结构可因速度、价格要求不同而采用不同组成;一种组成可以采用多种不同的实现;

不同系统结构使采用的组成、实现技术差异; 组成、实现(器件技术)的发展也影响系统结构;

组成要考虑系统结构和实现;决定于结构,受限于实现

三者包含的具体内容随不同机器而变化,界限也将越来越模糊;

1.4 软硬取舍与计算机系统的设计思路

某功能的软、硬件实现的每次设计费用分别为Ds和Dh,则Dh≈100Ds是完全可能的

该功能软、 硬件实现的每次重复生产费用分别为Ms和Mh, 则Mh≈100 Ms也是可能的

用硬件实现一个功能(如子程序调用的全部操作),往往只需设计一次;

而用软件实现时,每用到该功能往往要重新设计。设C为该功能在软件实现时需重新设计的次数,则该功能用软件实现的设计费用就为C×Ds(由于重新设计时可利用原设计进行修改或简单搬用,使设计费用Ds要低得多)。同一功能的软件在存贮介质上有可能多次出现,每出现一次都需要有复制和存贮费用。 设该功能在存贮介质上出现了R次,软件实现此功能的重复生产费用就为R×Ms。

假定该计算机系统共生产了V台,每台计算机若用硬件实现该功能的费用就为Dh/V+Mh

改用软件实现则为:C×Ds/V+R×Ms

只有 Dh/V+Mh<C×Ds/V+R×Ms 时,用硬件实现才是适宜的。将上述Dh与Ds、Mh与Ms的比值代入,得

100Ds/V+100Ms<C×Ds/V+R×Ms

软件设计费用远比软件的重复生产费用高,Ds≈104×Ms是完全可能的。如果将此关系式代入上式, 得

106/V+100<104×C/V+R

因为C值一般总比100小,所以V值愈大,这个不等式就愈能成立。

换句话说,只有计算机系统的产量大,增大硬件实现的比例才是适宜的。

确定软、硬件功能分配的第二个基本原则是,要考虑到准备采用和可能采用的组成技术,使它尽可能不要过多或不合理地限制各种组成、 实现技术的采用。

确定软、硬件功能分配的第三个基本原则是,不能仅从“硬”的角度去考虑如何便于应用组成技术的成果和发挥器件技术的进展,还应从“软”的角度把为编译和操作系统的实现,以至高级语言程序的设计提供更多更好的硬件支持放在首位。

计算机系统“由上往下”设计的方法和计算机系统“由下往上” 设计的方法

1.5 计算机系统的设计技术

计算机系统的设计者要熟悉从编译系统、OS到逻辑设计和组装的一系列技术,综合考虑好设计的任务和要求。

1、明确用户对计算机系统的功能要求

(1)应用领域:专用/通用?科学计算/商用?

(2)软件兼容层次:程序设计语言层/二进制目标代码层?

(3)OS需求:地址空间大小/存储管理方式/保护方式?

(4)标准要求:浮点数/IO总线/网络/程序设计?

(5)特定应用优化或软件兼容:

2、 软硬件取舍原则 ----优化

原则一:在现有器件和技术条件下,系统要有高的性能价格比:

硬件实现 优点: 速度快、占存少 缺点: 成本高、灵活性差

软件实现 优点: 成本低、灵活性好 缺点: 速度慢、占存大、周期长

原则二:考虑设计的软硬件实现复杂度:

完成时间与竞争力 不应对组成和实现技术有过多的限制

原则三:对软件(OS、编译高级语言)提供更好的硬件支持

软件领域 组成、实现技术 计算机系统结构变化不大 用于解题时间不到一半 缩短语义差距

3、计算机系统的设计思路

出发点:多级层次结构

一、由上往下(Top-Down)

1. 特点:从应用开始 逐级往下

2.优点:运行效率高,软硬分配合理 适用于专用机的设计

3.缺点:适应性差,周期长 软硬脱节、分离

4.解决方法:不完全优化 不专门设计机器级 “选型”

二、由下往上(Bottom-Up)

1.特点:根据器件等情况研制硬件 根据要求配置软件

2.优点:可设计通用计算机 早期采用

3.缺点:软硬脱节、效率差; 软件被动复杂,硬件无法改变;某些性能指标是虚假的

三、由中间开始(Middle-Out)

1.特点:综合考虑硬器件和软件要求,好软硬界面,再同时进行软硬件设计

2.优点:软硬件功能分配比较合理 缩短了研制周期 交互式

解决上述两种方法的软硬设计分离和脱节

3.更高要求:

设计人员同时具备硬器件、软件和应用等多方面知识;

软件设计周期较长,需要有效的设计环境和开发工具;

4.趋势:软硬件交界面上升

1.6 系统设计的定量原理

大概率事件优先原理:对于大概率事件(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果。

阿姆达尔(Amdahl)定律:

系统中某一部件由于采用某种更快的执行方式后,整个系统性能的提高与这种方式的使用频率或占总执行时间的比例有关。

CPU性能公式 CPI

程序访问的局部性规律:

​ 程序访问的局部性主要反映在时间和空间局部性两个方面。

​ 时间局部性是指程序中近期被访问的信息项可能马上将被再次访问;

​ 空间局部性指那些在访问地址上相邻近的信息项很可能被一起访问。

1.7 评价标准

MIPS

MFLOPS

测试程序:真实程序、核心程序、小测试程序、综合测试程序

性能的比较:算术平均值法、加权算术平均值、调和平均值法、加权调和平均值、几何平均值法

1.8 成本与价格

(1)成本的构成

一次性开发成本(设计成本)、重复生产成本、开发工具的折旧费用

(2)成本的变化趋势

软件:免费赠送—有价商品、开发成本高,盗版,垄断,技术保密

硬件:不断下降、需求量大

1.9 软件对系统结构的影响

问题的提出

​ · 软件成本越来越高

​ · 软件产量和可靠性的提高困难

​ · 积累了大量成熟的软件

​ · 排错比编写困难、软件生产率低

​ 系统更新换代,不希望重新编写软件 ——可移植性问题

可移植性的定义

软件不用修改或只需少量加工就能由一台机器搬到另一台机器上运行,即同一软件可以应用于不同的环境。

实现软件可移植性的几种技术

技术一:统一高级语言

采用满足各种应用需要的通用高级语言,编操作系统的全部或一部分,编应用软件。

存在的问题:

a不同的用途要求不同的语法和语义结构

b对语言的基本结构没有透彻和统一的认识

c习惯势力的影响,不愿抛弃惯用

技术二:采用系列机思想

同一厂家生产的具有相同系统结构但有不同组成和实现的一系列不同型号的机器,称为系列机。

系列机特点:

a与“从中间开始”的设计方法相呼应;

b较好地解决了软件环境相对稳定

c与硬件技术迅速发展的矛盾

兼容机:不同厂家生产的具有相同系统结构的计算机

1.采用新的组成实现技术,具有更高的性能/价格比

2.对原有系统结构进行某种扩展

1)软件兼容(compatibility)

具有相同的机器属性,区别在于运行时间不同

编译软件相同,OS不一定相同

2)软件兼容分类

·向上(下)兼容

·向前(后)兼容

·向上(下)兼容

按某档机器编制的软件,不加修改就能运行于比它高(低)档的机器上

·向前(后)兼容

按某个时期投入市场的该型号机器上编制的软件,不加修改就能运行于在它之前(后)投入市场的机器上

系列机要求 :保证向后兼容 力争做到向上兼容

技术三:模拟与仿真

在A机器上模拟实现B机器的系统结构 A有B的指令系统

模拟: 用机器语言解释实现程序移植的方法

被模拟的——虚拟机

模拟用的——宿主机

解释程序——模拟程序

模拟的内容:指令系统、数据表示、存储系统、I/O 系统等,形成OS 、

缺点:

1)模拟程序很复杂、编费时

2)速度较低、实时性差、不能被

硬件直接执行

适用运行时间短、使用次数少、

时间约束和限制少

改进:可采用高级语言编制、采用仿真方法

仿真

1.特点

少两重解释(机器语言、微程序)

2.定义

仿真: 用微程序直接解释另一种机器

指令系统的方法

进行仿真的——宿主机

被仿真的——目标机

解释微程序——仿真微程序

3.内容

把目标机的系统结构一一映像到宿主机上,形成OS

4.优点

被移植的软件运行速度较高

5.缺点

仿真程序更复杂、灵活性差

6.区别

仿真—— 微程序 ——控存中

模拟—— 机器语言——主存中

​ 7.问题和进展

​ 很难优化仿真差别大的

​ 1)通用宿主机结构的研究

​ 位片式微处理器 + 不同微程序 =不同型号的机器

​ 2)微程序汇编语言、高级语言、

​ 开发系统、操作系统

总结:

A 统一高级语言

解决结构相同或完全不同的各种机器上的软件移植,是重要方向

问题:语言标准化很重要,短期很难,只能相对统一

B 系列机

普遍采用,只解决同一系列结构内的软件兼容

问题:兼容的约束阻碍系统结构取得突破进展

C 模拟

灵活性较大,可实现不同系统间的软件移植

问题:结构差别大时,效率和速度急剧下降

D 仿真

速度损失小,可实现不同系统间的软件移植

问题:灵活性较小,只能在结构差别不大的机器间采用。需结合模拟。

E 其他方法:异种机联网

设计机器,要考虑满足软件兼容,提供可移植手段。汇编级兼容 -> 操作系统兼容

P23页图

途径:价格不变 提高性能(沿水平线)

​ 性能不变 降低价格(沿虚线)

器件对系统结构的影响:

一、器件的功能和使用方法会影响系统结构和组成

二、器件是推动系统结构和组成的关键因素

三、器件的发展改变了逻辑设计的传统方法

并行性的发展及计算机系统分类

一、并行的概念

并行性(parallelism):可以同时进行运算或操作的特性

目的:提高效率

例:CPU内重叠流水 OS中的多道程序分时

两重含义:

同时性 同一时刻(simultaneity)

并发性 同一间隔(concurrency)

  1. 并行性的含义与并行性级别

从计算机系统中执行程序的角度来看,并行性等级从低到高可以分为四级。它们分别是:

指令内部——一条指令内部各个微操作之间的并行。

指令之间——多条指令的并行执行。

任务或进程之间——多个任务或程序段的并行执行。

作业或程序之间——多个作业或多道程序的并行。

并行性是贯穿于计算机信息加工的各个步骤和阶段的,从这个角度来看,并行性等级又可分为:

存贮器操作并行——可以采用单体多字、多体单字或多体多字方式在一个存贮周期内访问多个字,进而采用按内容访问方式在一个存贮周期内用位片串字并或全并行方式实现对存贮器中大量字的高速并行比较、检索、更新、变换等操作。典型的例子就是并行存贮器系统和以相联存贮器为核心构成的相联处理机。

处理器操作步骤并行——处理器操作步骤可以指一条指令的取指、 分析、 执行等操作步骤,也可指如浮点加法的求阶差、对阶、 尾加、舍入、规格化等具体操作的执行步骤。处理器操作步骤并行是将操作步骤或具体操作的执行步骤在时间上重叠流水地进行。典型的例子就是流水线处理机。

处理器操作并行——为支持向量、数组运算,可以通过重复设置大量处理单元,让它们在同一控制器的控制下,按照同一条指令的要求对多个数据组同时操作。典型的例子就是阵列处理机。

指令、任务、作业并行——这是较高级的并行,虽然它也可包含如操作、操作步骤等较低等级的并行,但原则上与操作级并行是不同的。 指令级以上的并行是多个处理机同时对多条指令及有关的多数据组进行处理,而操作级并行是对同一条指令及其有关的多数据组进行处理。因此,前者构成的是多指令流多数据流计算机,后者构成的则是单指令流多数据流计算机。 典型的例子是多处理机。

二、提高并行性的技术途径

1.时间重叠 引入时间概念

轮流使用同一套硬件设备的各部分

优点:不需要增加硬件

2.资源重复 引入空间因素

重复设置多套硬件

3.资源共享

利用软件让多个用户轮流使用同一套资源 例:多道程序分时系统

三、并行性等级

1. 从执行程序角度 低->高

指令内—硬件和组成技术—微操作之间

指令间—相关问题—多条指令并行执行

任务或进程间—分解—任务或程序段

作业或程序间—并行算法—作业或多道程序

2.从数据处理角度

位串字串—无并行性—一个字的一位

位并字串—开始出现并行—一个字的全部位

位片串字并—进入并行—许多字的同一位

位并字并—全并行— 许多字的全部部分位组

3.从信息加工步骤

存储器操作并行 例:单体多字—并行存储器 多体多字—相联存储器

处理器操作步骤并行 例:流水处理机

处理器操作并行 例:并行处理机

指令、任务、作业并行 例:多处理机

四、系统结构向并行性发展

两极 单机 功能部件级

​ 多机 更高并行水平

不同耦合度:

最低耦合、松散耦合、紧密耦合

三类:

分布处理系统

同构型多处理机

异构型多处理机

1.10 计算机系统分类

一、 FLYNN(弗林)分类法

​ 出发点 并行性等级

​ 1. 基本概念

​ 指令流:机器执行的指令序列

​ 数据流:由指令流调用的数据序列

​ 多倍性:在系统瓶颈部件上处于同一执行阶段的指令或数据的最大可能个数

2. 分类

单指令流单数据流 SISD 单处理机

单指令流多数据流 SIMD 并行处理机

多指令流单数据流 MISD 流水线

多指令流多数据流 MIMD 多机系统

优点:反映大多数并行方式和结构特点

缺点:不能反映工作原理上的差别

二、 其他分类法

1、 库克分类

指令流 执行流

SISE、SIME、MISE、MIME

后来于 1978 年,美国的David J.Kuck(库克)提出与Flynn相类似的分类,用指令流和执行流(Execution Stream)及其多倍性来描述计算机系统总控制器的结构特征。这样,将计算机系统也分成 4 类。它们是:

单指令流单执行流(SISE)——典型的单处理机系统;

单指令流多执行流(SIME)——带多操作部件的处理机;

多指令流单执行流(MISE)——带指令级多道程序的单处理机;

多指令流多执行流(MIME)——典型的多处理机系统。

2、冯氏分类 用并行度

1972 年,美籍华人冯泽云(Tseyun Feng)提出用数据处理的并行度来定量地描述各种计算机系统特性的冯氏分类法。 他把计算机系统分成 4 类。 它们是:

字串位串(WSBS)——位串处理方式,每次只处理一个字中的一位, 如早期的位串行计算机。

字串位并(WSBP)——字(字片)处理方式,每次处理一个字中的n位,如大多数传统的位并行单处理机。

字并位串(WPBS)——位(位片)处理方式,一次处理m个字中的一位, 如某些相联处理机及阵列处理机。

字并位并(WPBP)——全并行处理方式,一次处理m个字,且每个字为n位,如某些相联处理机,大多数阵列处理机及多处理机。

第二章 数据表示与指令系统

2.1 数 据 表 示

数据表示指的是能由机器硬件直接识别和引用的数据类型。 例如定点数据表示、逻辑数据表示、浮点数据表示。

数据结构是通过软件映象,将信息变换成机器中所具有的各种数据表示来实现的,可见,数据表示是构成数据结构的元素。不同的数据表示可以为数据结构的实现提供不同的支持,表现在实现的效率和方便性上不同。

数据结构和数据表示是软、硬件的交界面。

2.2 高级数据表示

自定义(Self-defining)数据表示包括带标志符的数据表示和数据描述符两类。

1、带标志符的数据表示

标志符数据表示的主要优点为:

1)简化了指令系统和程序设计。

2)简化了编译程序。

3)便于实现一致性校验。

4)能由硬件自动完成数据类型的变换。

5)支持了数据库系统的实现与数据类型无关的要求。

6)为软件调试和应用软件开发提供了支持。

带来的问题:

1)存储空间变大

2)采用标志符会降低指令的执行速度。

2、数据描述符

​ 为进一步减少标志符所占的存贮空间,对于向量、数组、记录等数据,由于每个元素具有相同的属性,为此发展出数据描述符。数据描述符和标志符的差别在于标志符是和每个数据相连的,合存在一个存贮单元中,描述单个数据的类型特征;描述符是和数据分开存放的,专门用来描述所要访问的数据是整块数据还是单个数据,访问该数据块或数据元素所需要的地址以及其他特征信息等。

向量数组数据表示

在具有向量、数组数据表示的向量处理机上,表现出在硬件上设置有丰富的向量或阵列运算指令,配置有以流水或阵列方式处理的高速运算器,只需用一条如下的向量加法指令:

向量加A向量参数B向量参数C向量参数

堆栈数据表示

(1) 有若干高速寄存器组成的硬件堆栈,并附加控制电路让它与主存中的堆栈区在逻辑上组成一个整体,使堆栈的访问速度是寄存器的,堆栈的容量是主存的。

(2) 有很丰富的堆栈操作类指令且功能很强, 直接可对堆栈中的数据进行各种运算和处理。

(3) 有力地支持高级语言程序的编译。

(4) 有力地支持子程序的嵌套和递归调用。

引入数据表示的原则

一方面是看系统的效率有否提高,即是否减少了实现时间和所需的存贮空间。衡量实现时间是否减少,主要是看在主存和处理机之间传送的信息量有否减少。 传送的信息量越少, 其实现时间就会越少。

是否引入某种高级数据表示的另一方面是看引入这种数据表示后, 其通用性和利用率是否高。如果只对某种数据结构的实现效率很高, 而对其他数据结构的实现效率很低,或者引入这种数据表示在应用中很少用到,那么为此所花的硬件过多却并未在性能上得到好处,必然导致性能价格比的下降, 特别是对一些复杂的数据表示。

浮点数尾数基值大小和下溢处理方法的选择

浮点数尾数基值的选择

2.3 寻 址 方 式

寻址方式分析:

面向寄存器的寻址方式操作数可以取自寄存器或主存,结果大多保存在寄存器中,少量的送入主存。面向堆栈的寻址方式主要访问堆栈,少量访问主存或寄存器。面向主存的寻址方式主要访问主存,少量访问寄存器。

编址方式

1、需要编址的部件:存储数据(主存、寄存器、堆栈);I/O设备

2、编址方式:统一编址、分类编址、隐含编址

编址单位

字编址:编址单位同访问信息量 缺点:未支持非数值运算(字节)

字节编址:最普遍,适合非数值运算

①从任意位置开始:

不浪费存储资源;信息跨存储单元;硬件复杂;

②从一个存储字的开始访问:

​ 浪费空间:字节、半字、单字、双字;

​ 硬件简单,访问快;

③从地址的整数倍位置开始访问:

​ 不出现跨字信息,少浪费空间;

寻址方式

概念:

指令按什么方式访问到所需要的信息或数据

寻址能力包括:

多样性、灵活性、寻址空间范围大小、

地址变换速度

目的:以最短的位描述给定的寻址方式

寻址方式分析:

大多数采用分类编址

三类: 面向寄存器、面向堆栈、面向主存

比较:

1)存储效率 堆栈型 〉通用寄存器型

·支持高级语言和编译程序

·支持子程序嵌套、递归调用

·释放不用的单元及使用零地址

2)运算速度 堆栈型〈通用寄存器型

·减少访存,速度快

·支持向量、矩阵

所以三类寻址方式都应当采用

2.4 逻辑地址与主存物理地址

概念: 程序运行时必须装入主存,进行程序逻辑地址到主存物理地址的变换,称为进行程序的定位。

1、逻辑地址与物理地址

逻辑地址:程序员编写程序时用的地址,各源程序或程序段从0开始编址。

物理地址:程序在主存中存放的实际地址。

2、定位方式分类

直接定位----装入主存前

静态定位----装入主存过程中进行变换

动态定位----装入主存后,程序运行中变换

2.5 指令系统的设计和优化

指令一般由两部分组成:一部分是操作码,另一部分是操作地址码。当操作数地址为隐式时(如堆栈的操作,默认为栈顶),后一部分则不是必须的。根据指令地址码部分中显式指明的地址个数,则可形成零地址、单地址、二地址、三地址及四地址指令。

我们说的确定指令格式主要就是选择指令字中的操作码长度和地址数。指令字的长度有定长和变长两种。

我们着重要讨论的问题是指令格式的优化问题,优化就是以较少的格式,以尽可能短的码长来实现各种指令编码。

指令字包括操作码和地址码,所以对这两部分都采取优化措施。

设计原则:有利于性能价格比、有利于发展改进

设计内容:指令格式优化设计、指令功能优化设计

指令格式的优化

主要目标:节省程序存储空间;指令格式尽量规整,简化译码;优化后执行速度不降低;

操作码的优化、地址码的优化

(1)定长操作码

一个字节表示规整、译码简单;

有冗余信息,总长增加;没有体现各指令的特点;

(2)哈夫曼编码

地址码个数的选择

地址码个数通常有三个、两个、一个及0个等四种情况

评价地址码个数应该取多少的标准主要有两个:

一是程序的存储容量,包括操作码和地址码

二是程序的执行速度,以程序执行过程中访问主存的信息量代表

地址数目指令长度程序存储量程序执行速度适用场合
三地址最大一般向量,矩阵运算为主
二地址一般很大很低一般不宜采用
一地址较长较大较快连续运算,硬件结构简单
零地址最长最小最低嵌套,递归,变量较多
二地址R型一般最小最快多累加器,数据传送较多

地址码个数结论:

1、对于一般处理机,采用通用寄存器结构二地址指令是最理想的,其程序存储器容量最省,指令执行速度最快。

2、如果强调硬件结构简单,并且以连续运算(如求累加和等)为主,宜采用一地址结构。

3、对于以向量,矩阵运算为主的计算机系统,最好采用三地址结构。

4、对于解决以递归问题为主的计算机系统,宜采用零地址结构。

缩短地址码长度的方法:

目的:用一个短的地址码表示一个大的逻辑地址空间

用间址寻址方式缩短地址码长度

​ 在主存储器的低端开辟一个专门存放地址区域,

用变址寻址方式缩短地址码长度

​ 由于程序的局部性,变址寻址方式中的地址偏移量比较短,

用寄存器间接寻址方式缩短地址码长度,很有效的方法

​ 用来支持间接寻址的寄存器,可以借用通用寄存器

2.6 基本指令系统:

通用计算机系统的5类基本指令:数据传送类指令、运算类指令、程序控制指令、输入输出指令、处理机控制和调试指令

1、数据传送类指令,

由如下三个主要因素决定:

(1) 数据存储设备的种类

(2) 数据单位:字、字节、位、数据块等

(3) 采用的寻址方式

2、运算类指令

考虑四个因数的组合:

(1) 操作种类:加、减、乘、除、与、或、非、异或、比较、移位、检索、转换、匹配、清除、置位等

(2) 数据表示:定点、浮点、逻辑、十进制、字符串、定点向量等

(3) 数据长度:字、双字、半字、字节、位、数据块等

(4) 数据存储设备:通用寄存器、主存储器、堆栈等

3、程序控制指令

主要包括三类:转移指令、调用和返回指令、循环控制指令

转移条件主要有:零(Z)、正负(N)、进位©、溢出(V)及它们的组合

中断控制指令: 开中断、关中断、改变屏蔽、中断返回、自陷等

4、输入输出指令

主要有:启动、停止、测试、控制设备,数据输入、输出操作等采用单一的直接寻址方式,

在多用户或多任务环境下,输入输出指令属于特权指令

也可以不设置输入输出指令输入输出设备与主存储器共用同一个零地址空间

5、处理机控制和调试指令

处理机状态切换指令

处理机至少有两个或两个以上状态

硬件和软件的调试指令

硬件调试指令:钥匙位置、开关状态的读取, 寄存器和主 存单元的显示等

软件调试指令:断点的设置、跟踪,自陷井指令等

2.7 指令系统性能

完整性是指应该具备的基本指令种类,

通用计算机的5类基本指令

规整性包括对称性和均匀性

对称性:所有寄存器头等对称, 操作码的设置等都要对称,如:A-B与B-A

均匀性:不同的数据类型、字长、存储设备、操作种类要设置相同的指令

高效率:指令的执行速度要快

指令的使用频度要高、各类指令之间要有一定的比例

兼容性:在同一系列机内指令系统不变(可以适当增加)

2.8 按增强指令功能的方向发展与改进指令系统

CISC和RISC

1、面向目标程序的优化

优化方法:统计指令和指令串的使用频度

2、面向高级语言的优化

——缩短高级语言与机器语言的语义差异

增加对高级语言和编译系统支持的指令功能

高级语言计算机指令系统

3、面向OS的优化

思路1:统计OS常用指令和指令串的使用频度,进行分析改进;

思路2:增设专用于支持OS的新指令;

思路3:硬件、固件实现OS的某些功能--使用频繁、影响速度

思路4:发展由专门的处理机完成OS功能的分布式系统结构

减少CPI是RISC思想的精华

RISC的关键技术:

1、延时转移技术

2、指令取消技术

3、重叠寄存器窗口技术(Overlapping Register Window)

4、指令流调整技术

通过变量重新命名消除数据相关,提高流水线执行效率

5、以硬件为主固件为辅

​ 对于复杂指令,也微程序技术实现。

第三章 存储、中断、总线与I/O系统

3.1 输入输出系统

输入输出系统是计算机系统中最具多样性和复杂性的部分

输入输出系统最典型地反映了软件与硬件的相互结合

目前,输入输出系统的复杂性都隐藏在操作系统中

输入输出系统的发展经历了 3 个阶段, 对应于 3 种方式, 即程序控制输入输出(包括全软的、程序查询状态驱动的、 中断驱动的几种)、 直接存贮器访问(DMA)和I/O处理机方式。 这 3 种方式可以分别用在不同的计算机系统上, 也可以用在同一个计算机系统上作为相互补充。

3.2 总线设计

总线可以有单向传输和双向传输两种。

总线按其用法可以分成专用的和非专用的。

总线控制:集中式控制和分布式控制

集中式控制:串行链接式、集中式定时查询方式、独立请求方式

控制方式主要特点优点缺点
串行链接各模块的请求信号经过一条公共的请求线向总线控制器发出.各模块根据其固定的优先级别获得总线使用的机会.总线裁决算法简单,控制线数少,而且与模块的数量无关,可扩充性好灵活性差,不能由软件改变优先级.在优先级高的部件频繁使用总路线时,优先级低的模块可能很久得不到响应.又由于总线可用信号串行地通过各模块,延迟较大,总线分配的速度较低.
定时查询方式由控制器轮流对各模块进行测试,看其是否有请求.查询时以计数方式向各模块发出一个计数值,根据计数值所对应的模块是否有请求信号来决定总线使用权的分配.这种方式的优先级可以用程序控制,动态改变,灵活性较强;模块的故障不会影响总线的控制; 可靠性高.控制线较多 较差的扩展性.
独立请求方式各模块都有各自的一对总线请求和总线可用信号线,总线忙的信号是公共的.各模块独立地向控制器发出总线请求,总线控制器可根据某种算法对同进送来的请求进行裁决.总线分配的速度快,各模块的优先级的确定灵活.控制线数量多 总线裁决机构较复杂

总线通信技术:

同步通信和异步通信

单向控制指的是通信过程只由目的或源部件中的一个控制。而双向控制是由源和目的双方共同控制。单向控制又有源控制和目的控制两种。

3.3 I/O系统性能与CPU性能

误区:使用多进程技术可以忽略I/O性能对系统性能的影响。

​ ◆ 多进程技术只能够提高系统吞吐率,并不能够减少系统响应时间。

​ ◆ 进程切换时可能需要增加I/O操作。

​ ◆ 可切换的进程数量有限,当I/O处理较慢时,仍然会导致CPU处于空闲状态。

3.4 I/O系统的可靠性

◆ 处理器性能已经很高,人们更加关注系统可靠性。

◆ 可信性是存储的基础

可靠性、可用性、可信性

3.5 外部存储设备

访问时间

磁盘的工作过程:

磁头首先移动到目标磁道上

使期望的扇区旋转到磁头下

读取扇区中的数据

工作均在磁盘控制器的控制下完成

磁盘访问时间 = 寻道时间 + 旋转时间 + 传输时间 + 控制器开销

数据传输率

◆ 数据访问过程

​ 从盘面上读出的数据首先要送到磁盘缓冲存储器,再从缓冲存储器经过接口送到主机。

◆ 外部传输率

突发数据传输率

计算机通过磁盘接口从硬盘的缓存中将数据读出,交给相应的控制器的速度。

外部数据传输率和磁盘的接口有关

◆ 内部传输率

硬盘持续传输率硬盘将数据从盘片上读取出,交给硬盘上的缓冲存储器的速度;

内部传输率等于磁头相对磁盘的线速度与磁盘位密度之积。

◆ 提高内部传输率

提高转速、提高记录密度

磁盘Cache

​ ◆ 可以弥补磁盘和主存之间的速度差距

​ ◆ 利用被访问数据的局部性原理

​ ◆ 磁盘Cache的管理和实现一般由硬件和软件共同完成

磁盘的发展

◆ 磁盘容量的提高通常用面密度来衡量面密度为单位面积可以记录的数据位数

​ 面密度=磁盘面的道密度×磁道的位密度

◆ 容量不断提升,每位价格不断下降。

“访问时间差距”问题

磁盘的性能价格比高于主存,但访问速度却要低得多,换句话说,性能价格比与速度要求差距太大。

3.6 可靠性、可用性和可信性

反映存储外设可靠性能的参数: 可靠性(Reliability)、 可用性(Availability)、 可信性(Dependability)

与可靠性相关的三个术语: 故障(fault)、 错误(error)、 失效(failure)

故障、错误和失效之间的关系

(1) 一个故障可能会导致一个或者多个错误;

(2) 错误通常具有以下特性

◆ 错误在潜在状态和有效状态间相互转换;

◆ 潜在的错误可能通过激活而有效;

◆ 有效错误的影响可以传递,引起新的错误。

(3) 如果错误影响到部件正常的服务时,部件就发生了失效;

(4) 系统中的所有部件的故障、错误和失效均存在这样的关系。

3.7 数据宽度与总线线数

数据宽度:I/O设备取得总线使用权后所传送数据的总量,可能经多个时钟周期分时传送。

数据通路宽度:指数据传送的物理宽度,如 16bit,32bit等,即一个时钟周期传送的信息量。

数据宽度种类:有单字(或单字节)、定长块、可变长块、单字加定长块及单字加可变长块等。

总线的线数:

总线需要有发送电路、接收电路、传输导线或电缆、转接插头和电源等,这部分比起逻辑线路的成本高得多,而且转接器往往占系统物理空间的相当部分,是降低系统可靠性的主要部分。

总线的线数越多,成本越高、干扰越大、可靠性越低、占用的空间也越大,当然传送速度和流量也越高。 此外,总线的长度越长,成本越高,干扰越大,波形畸变越严重,可靠性越低。为此,越是长的总线,其线数就应尽可能减少。数据总线的宽度有一位、一个字节或一个全字等等。

3.8 中 断 系 统

中断系统是现代计算机系统中最重要的组成部分之一。

只有采用中断系统,才能使处理机的各个部分之间、处理机与外部世界之间真正并行工作。

中断系统需要硬件和软件共同来实现。

中断优先级:

安排中断优先顺序主要由下列因素来决定

(1) 中断源的急迫性。

(2) 设备的工作速度。优先级从高到低的次序一般如下:

实时钟

磁盘存储器,包括软磁盘

行式打印机

控制台终端输出

控制台键盘输入

(3) 数据恢复的难易程度。

(4) 要求处理机提供的服务量。

按中断事件的紧迫程度分成两大类: 可屏蔽中断(一般中断)、不可屏蔽中断(异常) 

中断优先级通常是由硬件固定的,为了能根据需要,由操作系统 控制改变实际的中断处理程序,一般设置中断级屏蔽位寄存器

设置中断屏蔽有如下三个用处:

(1)在中断优先级由硬件确定了的情况下,改变中断源的中断服务顺序。

(2)决定设备是否采用中断方式工作。

(3)在多处理机系统中,把对外围设备的服务工作分配到相关处理机中。

中断响应次序与处理次序

1)中断响应次序

​ 同时发生多个中断请求时,由中断响应硬件的排队器所决定的响应次序,次序是固定的。

2)中断处理次序

​ 一个中断处理程序执行前或中再有其它中断产生时中断处理完的次序,可以不同于响应次序。

3)处理原则

​ 在处理某级中断时,只有更高级的请求到来才转去响应和处理,完成后返回原中断继续处理。

中断源的识别方法:

1、识别中断源的查询法

2、软件排队链法

3、硬件排队链法

4、中断向量法

5、独立请求法

3.9 通 道 处 理 机

优点:

​ 每完成一次I/O工作,CPU只需要两次调用管理程序,大大减少了对用户程序的打扰。当系统中有多个通道同时工作时,CPU与多种不同类型、不同工作速度的外围设备可以充分并行工作。

根据通道数据传送期中信息传送方式的不同,分字节多路、选择和数组多路三类通道。

1、字节多路通道:它适用于连接大量低速设备。这些设备传送一个字符(字节)的时间很短,但是在字符间的等待时间很长。因此,通道“数据宽度”为单字节,以字节交叉方式轮流为多台低速设备服务,使效率提高。

2.数组多路通道:它适合于连接多台像磁盘等高速设备。这些设备的传输速率很高,但传送开始前的寻址辅助操作时间很长。为了充分利用并尽可能重叠各台高速设备的辅助操作时间,它采用成组交叉方式工作。其"数据宽度"为定长块,在传送完一定长度的数据后即重新选择下一个外设进行数据传送,使多路传输并行进行。

3.选择通道:它适合于连接优先级高的磁盘等高速设备,让它独占通道,只能执行一道通道程序。数据传送以不定长块方式进行,每次将N字节的数据全部传送完毕,因此,在数据传送期内只选择一次设备。

通道类型字节多路数组多路选择
数据宽度单字节定长块不定长块
适用范围大量低速设备大量高速设备优先级高的高速设备
工作方式字节交叉成组交叉独占通道
共享性分时共享分时共享独占
选择设备次数多次多次一次

3.设计原则

1)极限流量大于等于实际最大流量

2)极限流量与实际最大流量的差值越小越好

通道缺点:

1)并非独立的处理机,指令简单,无大容量存贮器。

2)I/O过程中需要CPU承担很多工作。

3)流水等组成技术因I/O中断而不能发挥作用,CPU速度严重下降。

4)访管中断转入I/O管理程序妨碍CPU资源的合理利用。

3.10外围处理机(PPU)

1.外围处理机的优点

1)更接近于一般的处理机,指令丰富,功能强。

2)独立于主处理机异步工作。

3)可以与主处理机共享或不共享主存。

4)可以自由选择通道和设备进行灵活通信。

2.缺点:

​ 就硬件利用率和成本来讲不如通道处理机好,但随着器件技术不断提高,成本在逐渐降低。

第 4 章 存 贮 体 系

4.1 存贮体系的形成与性能

2.容量

​ SM=W · l · m

​ W:存贮体的字长,单位为bit或Byte。

​ l:每个存贮体的字数。

​ m:并行工作的存贮体的个数。

3.速度

​ 从下面三个方面来描述:

1)访问时间TA

​ TA是存贮器接到访存到信息被读到数据总线上所需的时间。是确定CPU与存贮器时间关系的重要指标。

2)存贮周期TM

​ TM是连续启动一个存贮体所需要的时间间隔。一般来说总比TA大。

3)存贮器频宽

​ 是指存贮器可以提供的数据传送率,一般用每秒钟所传送的信息位数来衡量。

a)最大频宽BM(极限频宽)

​ 是存贮器连续访问时能提供的频宽。

​ 单体: BM =W/TM

​ m体并行工作:BM =mW/TM

​ b)实际频宽

​ 实际频宽小于最大频宽BM

提高主存带宽的措施主要有:

1.增加存储器的数据宽度。(也就是增加数据位数) 单体多字

2.采用存储器的多体交叉技术。

高位交叉访问存储器

实现方法:用地址码的高位部分区分存储体号

上述能并行读出多个CPU字的单体多字和多体单字或多体多字的交叉存贮主存系统统称为并行主存系统。

提高m值,可以提高主存系统的最大频率,但并不能线性提高实际频率。

原因:

1)模m越高,存贮器数据总线越长,导致传输延迟增加;

2)系统效率问题,对于顺序取指,效率可以提高m倍,但遇到转移指令,效率就会下降。

由于程序的转移概率不会很低,数据分布的离散性较大,所以单纯靠增大m来提高并行主存系统的频宽是有限的,而且性价比还会随m的增大而下降。如果采用并行主存系统仍不能满足速度上的要求,就必须从系统结构上改进,采用存贮体系。

Cache-主存主存-辅存
为了弥补主存速度的不足为了弥补主存容量的不足
存储管理实现全部由专用硬件实现主要由软件实现
访问速度的比值 (第一级比第二级) 大小几比一几百比一
典型的块(页)几十个字节几百到几千个字节
CPU对第二级的 访问方式可直接访问均通过第一级
失效时CPU是否切换不切换切换到其它进程

a)减小相邻两级的访问速度差距

b)减小相邻两级存贮器的容量差

4.2 虚 拟 存 贮 器

​ 虚拟存储器是主存的扩展,虚拟存储器的空间大小取决于计算机的访存能力而不是实际外存的大小,实际存储空间可以小于虚拟地址空间。从程序员的角度看,外存被看作逻辑存储空间,访问的地址是一个逻辑地址(虚地址),虚拟存储器使存储系统既具有相当于外存的容量又有接近于主存的访问速度。

虚存概念

1.虚拟存贮器是一个存贮体系

2.允许用户用比主存大得多的程序空间来访问主存

3.每次访存时要进行虚地址到实地址转换

优点

1)用户不必再做存贮器分配工作

2)程序的执行独立于存贮器的容量和配置

3)多用户共享存贮器

设计

实质上在各种存贮器之间进行数据的调度主要解决:

1)什么时候,采用什么方法进行调度

2)调入的数据应放在什么地方

3)调度时,数据块应多大

原理及解决办法:

1.程序的局部性

指令和数据的分布不是随机的,而是相对簇聚的

包括时间局部性和空间局部性

时间局部性:最近未来要用的信息就是当前正在使用的——程序的循环造成的

空间局部性:最近未来要用的信息就是当前信息的相邻信息——程序顺序执行

结论:1)M1不必存放整个程序 2)调入时,调入一块数据

2.程序的定位

定位:放在主存的什么位置,怎样将逻辑地址转换成物理地址

何时定位?由谁来完成

​ 1)书写程序时,由程序员完成

​ 2)编译时,由编译程序完成

​ 3)装入时,由装入程序完成

​ 4)运行时,由OS、硬件完成

程序定位:

由于CPU只能执行已装入主存的程序块,为了提高主存空间的利用率,应及时释放主存中现已不用的空间以装入别的程序块。随着程序的运行,程序的各个部分就会在主存和辅存间来回调进调出。当辅存中的程序调入主存时,必须进行程序在主存中的定位。这种定位应该由系统提供的定位机构来自动完成,从而对应用程序员透明。

  1. 段式管理

段表

为了进行段式管理,每道程序都由一个段表(映像表),用以存放该程序各程序段装入主存的状况信息。

段名(号):实际由于段号与行对应,省略掉。

装入位:表征是(1)否(0)已调入主存。

地址:调入主存时,在主存的起始(绝对)地址。

段长:段的大小,限制偏移越界。

访问方式:只读、可写、只执行,提供访问保护。

3)段表基址寄存器

段表长度:该道程序的段数(段表行数)。

段表基地址:程序的段表在主存中的起始地址。

4)虚拟地址

基号(程序号):段表在段表基址寄存器的位置。

段号:段在段表中的位置。

段内位移:所访问单元在段内的偏移。

2.页式管理

段式管理的缺点

a)各程序段装入主存的起点是任意的,段表中的地址字段必须能够表示出主存中的任意一个绝对地址。

​ b)各段长度受程序本身影响也是任意的,所以地址字段和段长字段都很长。

​ c)容易产生较大的段间零头浪费。

页表

  保存虚页装入实页时的页面对应关系。

​ 虚页号:与页表行号相同,可以省略。

​ 实页号:主存起点。

​ 装入位:标志该页是否装入主存。

​ 访问方式:用于存贮保护。

​ 专用位:区分该页是独占或共享。

•用户标志u:指明程序所使用的页表基址寄存器。

•页表寄存器:存放页表在主存中的地址。

1)地址映像

​ 就是将每个虚存单元按某种规则(算法)装入(定位于)实存,即建立多用户虚地址NS与实存地址np的对应关系。对于页式就是将多用户虚页号Nv的页可以主存中的哪些页面位置,建立Nv与nv的对应关系装入。

2)地址变换

​ 指的是程序按这种映像关系装入实存后,在执行时多用户虚地址NS如何变换成对应的实地址np。对页式而言就是多用户虚页号Nv如何变换成实页号nv。

影响主存命中率和CPU效率的某些因素

1、页大小

当页面大小增大时,造成的浪费也要增加。

当页面大小减小时,页表和页面表在主存储器中所占的比例将增加。

2、命中率与主存容量有关

3、主存命中率与所采用的页面调度策略有关

Cache四种不同映象:

·全相联映象及其变换

·直接映象及其变换

·组相联映象及其变换

·段相联映象及其变换

更新策略思想优点缺点
写回法是指在CPU执行写操作时,信息只写入Cache中,仅当需要替换时,才将改写过的Cache块先送回主存(写回),然后再调块有利于省去许多将中间结果写入主存的无谓开销。需设修改位增加Cache的复杂性
全写法(写直达法)在写操作时,将数据同时写入Cache和主存实现开销小、简单为了写中间结果浪费了不少时间

影响Cache存贮器性能的因素

Cache的命中率对计算机速度的影响很大。实践证明,Cache的尺寸越小,地址映象方法和替换策略对命中率的影响越大。

在组的大小一定情况下,Cache的容量越大则命中率越高。当Cache的大小确定时,组的大小或块的大小将影响不命中率,由于块的内部是全相联的,因此块越大则命中率越高。

4.3 “Cache—主存—辅存”存贮层次

​ 以地址变换为例,CPU提供访存的虚地址就可能需要变换成Cache地址、主存地址和辅存地址。如果对应此虚地址的单元已在Cache中,就需把虚地址直接变换成Cache地址,访Cache, 而不是先把虚地址变换成主存实地址,再由主存实地址变换成Cache地址,这样可以缩短地址变换的时间。如果对应单元已在主存但尚未调入Cache时,则需把虚地址经快表和慢表变换成主存实地址去访主存

第 5 章 重叠、 流水和向量处理机

解决访存冲突的方法:

(1) 采用低位交叉存取方式,

这种方法不能根本解决冲突问题。

(2) 两独立的存储器:

独立的指令存储器和数据存储器。

如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,

那么,取指令、分析指令和执行指令就可以同时进行。

在许多高性能处理机中,有独立的指令Cache和数据Cache。这种结构被称为哈佛结构。

指令存储器和数据存储器分开的明显缺点:对程序员不透明。

(3) 增设指令缓冲寄存器(指缓)

缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以平滑它们的工作。

在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大幅度提高程序的执行速度。

5.1 流水线的分类

1、线性流水线与非线性流水线

流水线的各个流水段之间是否有反馈信号。

线性流水线(Linear Pipelining):每一个流水段都流过一次,而且仅流过一次。

非线性流水线(Nonlinear Pipelining):在流水线的某些流水段之间有反馈回路或前馈回路。

2、按照流水线的级别来分

处理机级流水线,又称为指令流水线(Instruction Pipelining)。

部件级流水线(操作流水线)

3、单功能流水线与多功能流水线

单功能流水线:只能完成一种固定功能的流水线。

多功能流水线:流水线的各段通过不同的连接实现不同的功能。

4、静态流水线与动态流水线

静态流水线:同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能。

动态流水线:在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。

5、流水线的其他分类方法

按照数据表示方式:标量流水线和向量流水线

按照控制方式:同步流水线和异步流水线

顺序流水线与乱序流水线,乱序流水线又称为无序流水线、错序流水线或异步流水线等

5.2 流水线处理机的主要性能

吞吐率TP (Throughput Rate) 效率E (Efficiency) 加速比Sp (Speedup Ratio)

1.吞吐率TP

单位时间内能处理的指令条数或能输出的结果数 ——最大吞吐率 ——实际吞吐率

​ 如果各个子过程所需的时间分别为Δt1、Δt2、Δt3、Δt4,时钟周期应当为max{Δt1, Δt2, Δt3, Δt4},即流水线的最大吞吐率

(2)实际吞吐率 :

​ 任务不连续,建立和排空时间

计算:m段时间均为Δt,n个连续任务

不仅实际的吞吐率总是小于最大的吞吐率,而且只有当n>>m时,才能使实际的吞吐率接近于理想的最大吞吐率。 如果用加速比(Speedup Ratio, Sp)表示流水线方式相对非流水线顺序串行方式速度提高的比值, 那么,非流水线顺序串行方式工作,连续完成n个任务需要n·m·Δt0的时间,因此, 流水线方式工作的加速比

计算流水线加速比的基本公式:S=顺序执行所需时间T0/流水线执行时间Tk

流水线的效率是指流水线中的设备实际使用时间占整个运行时间之比,也称流水线设备的时间利用率。由于流水线存在有建立时间和排空时间(最后一个任务流入到流出的时间),在连续完成n个任务的时间里,各段并不总是满负荷工作的。

分母——m段和总时间T所围成的面积

分子——时空图中实际占用的总面积

效率即n个任务所占用的时空区与m个段所占用的总的时空区的面积之比

 超标量(superscalar)是指在CPU中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。 其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。

第6章 向量处理机

两种并行性概念:

同时性并行:两个或两个以上事件在同一时刻发生。

并发性并行 :两个或两个以上事件在同一时间间隔内发生。

三条技术途径:

资源重复:通过重复设置多个处理部件来提高速度。

时间重叠:流水线

资源共享:分时系统,分布式系统

并行处理机采用同时性并行,资源重复技术。

并行处理机的定义:

多个PU按照一定方式互连,在同一个CU控制下,对各自的数据完成同一条指令规定的操作。从CU看,指令是串行执行的,从PU看,数据是并行处理的。

并行处理机也称为阵列处理机。按照佛林分类法,它属于SIMD计算机。(SIMD 单指令流多数据流,并行处理机是SIMD计算机的典型代表)

 并行处理机的应用领域

并行处理机主要用于高速向量或矩阵运算中