第 1章 计算机系统结构的基本概念
1.1 计算机系统的多级层次结构
1.2 计算机系统结构、组成与实现
1.3 软件取舍与计算机系统的设计思路
1.4 软件、应用、器件对系统结构的影响
1.5 系统结构中的并行性及系统的分类
本章重点:
计算机系统结构、计算机组成、计算机实现三者之间的定义及所包含的内容;有关透明性的判断;软件和硬件的功能分配原则;软件可移植性的途径、方法、使用场合、存在问题和对策;有关并行性的概念;系统结构中开发并行性的途径和类型等。
本章难点,
透明性的判断与分析。
1.1 计算机系统的多级层次结构
1.六个层次结构现代通用的计算机系统是由紧密相关的用硬件和软件组成的。从应用的语言角度,可以将系统看成是按功能划分的多个机器级组成的以下六个层次结构:
VM5 应用语言机器 M5 面向应用环境,通过相应程序包翻译成高级语言,逐层向下实现
VM4 高级语言机器 M4 经编译程序翻译成汇编语言或中间语言或机器语言,再向下执行
VM3 汇编语言机器 M3 经汇编程序翻译成机器语言,然后在 RM上实现
VM2 操作系统机器 M2 主要用 C编写,但最终还要由机器语言解释作业控制语句执行
RM1 传统机器 M1 用微指令程序(固件)解释机器指令来实现
RM0 微程序机器 M0 微指令直接由硬件执行图 1.1 计算机系统的多级层次结构机器,并非是指真正的一台有鼠标、键盘、显示器等的机器实体,而是指能够存贮和执行相应语言程序的算法和数据结构的集合体,是同时存在于计算机内的。
这样,对于会使用某一级高级语言编程的程序员来说,只要他熟悉和遵守该级语言的规定,
所编写的程序总能在这一机器上运行,得到结果,
而不用管这个机器级是如何实现的。就好像该程序员有了可以直接使用这种语言作为机器语言的机器一样。实际上,只有二进制机器指令即传统所说的机器语言才与硬件直接对应,方可以被硬件直接识别和执行。
翻译,是先用转换程序将高一级机器级上的程序整个地变成低一级机器级上可运行的等效程序,
然后再在低一级机器级上去实现的技术。
解释,是在低一级机器级上用它的一串语句或指令来仿真高一级机器级上的一条语句或指令的功能,通过高一级机器语言程序中的每条语句或指令逐条解释来实现的技术。
各机器级的实现主要就是靠翻译或解释,或者是两者的结合。
应用语言虚拟机器 VM5是为了满足管理、人工智能、图像处理、辅助设计等专门的应用来设计的。使用面向某一种应用环境的的应用语 L5
编写的程序一般是经过应用程序包翻译成高级语言 L4程序后,再逐级向下实现的。
高级语言机器级 M4上的程序可以先用编译程序整个的翻译成汇编语言 L3程序或机器语言 L1程序,再逐级或越级向下实现,也可以用汇编语言
L3程序、机器语言 L1程序,甚至是微指令语言 L0
程序解释实现。
对汇编语言 L3源程序则先用汇编程序整个将其变换成等效的二进制机器语言 L1目标程序,再在传统机器级 M1上实现。
操作系统程序虽然已发展成用高级语言(如我们所熟悉的 C语言)编写,但最终还要用机器语言程序或微指令程序来解释。它提供了传统机器级 M1所没有,但为汇编语言和高级语言使用和实现所用的基本操作、命令和数据结构。如文件管理、存贮管理、进程管理、多道程序共行、
多重处理等。因此,操作系统机器级 M2放在传统机器机 M1和汇编语言机器级 M3之间是适宜的。
传统机器级 M1采用组合逻辑电路控制,其指令可以直接用硬件来实现,也可以采用微程序控制,用微指令 L0程序来解释实现。微指令直接控制硬件电路的动作。
2.实现方式就目前情况,M0用硬件实现,M1用微程序
(固件)实现,M2到 M5大多用软件实现。我们称以软件为主实现机器为虚拟机器 VM,以区别于用硬件实现的实际机器 RM。虚拟机器不一定全都由软件实现,有些操作可以用固件或硬件现。
具体采用何种实现方式,要从整个计算机系统的效率、速度、造价、资源状况等方面全面考虑,对软件、硬件、固件取舍进行综合平衡。
原理上,软件实现的功能完全可以用硬件或固件实现,同样,硬件实现的功能也可以由软件的模拟来完成,只是其性能,价格,实现的难易程度不同而已。具有相同功能的系统,其软硬件功能分配比例也是很宽的。而且在不同时期及同一时期的不同机器也是在动态改变的。
软 件硬 件只有最必需的硬件程序不可编目前的计算机系统功能分配比例
(%)
计算机系统的软、硬件功能分配图
3.分层的优点
1)有利于理解软件、硬件、固件的地位和作用
2)有利于多处理机,分布处理,计算机网络发展
3)有利于用 VM,多操作系统共同执行,促进软件移植、计算机系统性能评价、计算机设计自动化的发展
1.2 结构、组成与实现
1.2.1基本概念
1.系统结构,我们回到层次图上,系统结构
( System Architecture) 是对计算机系统中各机器之间界面的划分和定义,以及对各级界面上,
下的功能进行分配 。 各层都由它自己的系统结构 。
系统结构的设计就是研究针对某级,哪些应当透明,哪些不可以的 。
透明性概念,在计算机中,客观存在的事物或属性从某个角度看不到,称这些事物或属性对它是透明的 。 计算机重的,透明,与社会生活中的
,透明,,含义正好相反 。 社会生活中所说的,透明,,
是指公开的,让大家看得到的意思;而计算机中所讲的,透明,,则是指看不到的意思 。 透明就会简化某一级的设计,但同时由于看不到,就会无法控制,带来不利 。 所以,要正确的进行透明性分析和取舍 。
2.计算机系统结构,这里所说的计算机系统结构或是计算机体系结构( Computer Architecture)
只是系统结构中的一部分。它指的是层次结构中传统机器级的系统结构,其界面之上的功能包括操作系统级,汇编语言级,高级语言级和应用语言级中所有软件的功能。界面之下的功能包括所有硬件和固件的功能,因此,这个界面实际是软件与硬件或固件的分界面。
研究:软,硬件功能的划分和传统机器级界面的确定,提供保证程序运行的计算机属性 。
属性包括:
数据表示寻址方式寄存器组织指令系统存贮系统中断机构及 I/O结构信息保护方式和保护机构
3.计算机组成,计算机组成 ( Computer
Organization) 指的是计算机系统结构的逻辑实现,包括机器级内的数据流和控制流的组成以及逻辑实现 。
研究,在所期望达到的性价比下,怎样最佳,最合理的把各种设备和部件组织成计算机,以实现所确定的系统结构 。
包括:
数据通路宽度专用部件的设置各种操作对部件的共享程度功能部件的并行度控制机构的组织方式缓冲和排队技术预估,预判技术可靠性技术
4.计算机实现,计算机实现 ( Computer
Implementation) 指的是计算机组成的物理实现 。
研究:实际器件技术和微组装技术 。
包括:
处理机,主存等的物理结构器件的集成度和速度器件,模块,插件,底板的划分与连接专用器件的设计微组装技术举例,我们要制造飞机 。 首先要确定载客人数,
速度,高度等技术指标,这就属于系统结构;然后根据技术指标研究,设计座舱怎么安排才可以满足载客数量,飞机外形怎么设计才符合空气动力学,供油,发动机,控制系统等等怎样设计,
组成,从而形成设计图纸上的飞机,这属于组成;
最后,经过论证确定设计没有问题,把图纸交付工厂,由工人开始生产,这就是实现了 。
1.2.2结构,组成与实现之间的关系三者是互不相同的概念,既相互联系又相互影响 。
1.联系,
1)具有相同系统结构 (如指令系统相同 )的计算机可以因速度等因素的要求不同而采用不同的组成 。
例如:对于乘法指令,我们可以使用专用的乘法器来实现,也可以使用加法器重复相加,右移来实现 。
2)相同的计算机组成可以采用多种不同的实现方法 。
例如:主存器件既可以选用双极型的,也可以选用 MOS型的;可以使用单片大规模集成电路,也可以用多片小规模集成电路进行组搭 。
显然,这取决于所要求的性价比和当时的器件技术 。
2.影响:
1)不同的系统结构会使组成技术产生差异 。
2)计算机组成也会影响系统结构,组成的设计,
其上取决于系统结构,其下又受限于所可以用的实现技术 。
3)计算机实现,特别是器件技术的进展构成了计算机系统结构和组成的基础,对系统结构有很大影响 。
1.3 软硬件取舍与系统的设计思想
1.3.1软件取舍的基本原则
1.原则一,在现有的硬件和器件 (主要是逻辑器件和存贮器件 )的条件下,系统要有高的性价比 。
1)提高硬件功能的比例,可以提高解题速度,
减少程序所需的存贮空间;但是,会提高硬件的成本,降低硬件的利用率和系统的灵活性与适应性 。
2)提高软件功能的比例,可以降低硬件的造价,
提高系统的灵活性和适应性 。 但解题速度要下降,软件设计费用和所需的存贮空间要增加 。
2.原则二,充分考虑准备采用和可能要用的的组成技术,使它尽可能不要过多或不合理地限制各种组成,实现技术的采用 。
3.原则三,不能仅从,硬,的角度去考虑如何便于应用组成技术的成果和发挥器件技术的进展,还应从,软,的角度把为编译和操作系统的实现,
以至高级语言程序的设计提供更多,更好的硬件支持放在首位 。
1.3.2计算机系统的设计思路从多级层次结构出发,计算机系统结构的设计可以分为由上往下,由下往上和从中间开始三种不同的设计思路 。
1.由上往下
1)方法:根据用户的要求,设计基本的命令,指令,数据类型与格式等,然后再逐级往下设计,
并考虑对上一级进行优化来实现 。
面向应用的高级语言虚拟机器级应用虚拟机器级汇编 (中间 )语言虚拟机器级操作系统虚拟机器级传统机器级微程序机器级由上往下设计第一步,确定这一级的基本特性第二步,设计或选择面向这种应用的高级语言第三步,设计使用于所用高级语言编译的中间语言第四步,设计面向这种应用的操作系统第五步,设计面向所用编译程序和操作系统的机器语言第六步,设计面向机器语言的微指令及其硬件实现计算机系统,由上往下,设计的方法
2)优点:适用于专用机的设计,对所面对的具体应用,其效能是很好的 。
3)缺点:不适用于通用机的设计,当应用对象或范围发生变化时,软硬件分配不适应,就导致系统效率急剧下降;另一方面,作为厂家,
为追求经济效益,避免生产批量少,专用性强,使用面窄的硬件和系统,这就难以做到面向应用来优化实现 。
2.由下往上
1)方法:根据器件条件,先把微程序机器级及传统机器级研制出来,然后再配合不同的操作系统和编译系统软件,使应用人员根据所提供的条件来采用合适的算法满足相应的应用要求 。
2)优点:是一种通用机的设计思想 。
3)缺点:软件的设计受限于固定不变的硬件,造成软,硬件的脱节 。
应用虚拟机器级高级语言 (多种 )
虚拟机器级汇编 (中间 )语言虚拟机器级操作系统 (多种 )
虚拟机器级传统机器级微程序机器级由下往上设计计算机系统“由下往上”设计的方法
3.中间法
1)方法:既考虑能拿到的硬件,器件,又考虑可能所需的算法和数据结构,先进行软,硬功能的合理分配 并定义好这个界面,然后从这一中间点分别往上,往下进行软,硬设计 。
2)优点:软件,硬件同时进行交互设计,有利于缩短整个系统的设计周期 。
3)缺点:要求设计人员同时具备软件,硬件,器件及应用的多方面的知识 。
1.4 软件、应用、器件对系统结构的影响 (自学 )
1.软件的可移植性
1)概念,可移植性是指软件可以不加修改或经少量修改,就可以由一台机器搬到另一台机器去运行,使得同一套软件可以应用于不同的硬件环境 。
2)优点,可以大量节省重复工作量,是软件设计者可以集中精力更好的改进或开发全新的软件 。
2.实现可移植性的技术
1)统一高级语言
2)系列机思想
3)模拟与仿真
1.5 系统中的并行性及其分类
1.5.1并行性概念
1.并行性的含义及理解
1)并行性,解题中具有可以同时进行运算或操作的特性 。 目的是为了能并行处理,提高解题效率 。
2)广义并行性,只要在同一时刻或是在同一时间间隔内完成两种或两种以上性质相同或不同的工作,在时间上能相互重叠,都称为并行性 。
包括同时性与并发性 。
3)同时性,两个或多个事情在同一时刻发生 。
4)并发性,两个或多个事情在同一时间间隔内发生 。
2.并行性等级
1)从执行角度分
a)指令内部 —— 一条指令内部各个微操作之间的并行执行 。
b)指令之间 —— 多条指令的并行执行 。
c)任务或进程之间 —— 多个任务或程序段的并行执行 。
d)作业或进程之间 —— 多个作业或多道程序的并行 。
硬件比例增大作业或进程间并行的关键在于并行算法,即怎样将有限的软硬件资源有效的同时分配给正在解题的多个程序;任务或进程级间的并行主要涉及如何进行任务分解;指令之间的并行主要应解决和处理好指令之间存在的相互关联;指令内部的并行主要取决于硬件和组成的设计。由上可以看出,并行性等级由高到低反映了硬件实现的比例在增大。所以并行性的实现是一个软硬件功能分配的问题,需要折衷权衡。
2)从数据处理角度
a)位串字串 —— 单字单位 —— 串行单处理机
b)位并字串 —— 单字全位 —— 并行处理机
c)位片串字并 —— 多字同位 (位片 )—— 多机串行
d)全并行 —— 多字多位 —— 多机并行
3)从信息加工角度
a)存贮器操作并行 —— 同一个存贮周期访问多字 —— 并行存贮器,相联处理机 。
b)处理器操作步骤并行 —— 操作步骤在时间上重叠流水进行 —— 流水线处理机 。
c)处理器操作并行 —— 对同一条指令的多个数据组同时操作 —— 阵列处理机 。
d)指令,任务,作业并行 —— 多处理机同时对多条指令及相关多数据组的操作 —— 多处理机 。
3.并行性开发途径
1)时间重叠
a)方法:在并行性中引入时间因素,让多个处理过程在时间上错开,轮流重复的使用同一套硬件设备的各个部分,以加快硬件周转而提高速度 。
b)优点:不必增加额外硬件设备就可以提高计算机系统的性价比 。
取指 分析 执行
(a) 指令流水线
k
k
k
k+1
k+1
k+1
k+2
k+2
k+2
△ t 2△ t 3△ t 4△ t 5△ t t
取指分析执行部件
(b) 指令在流水线各部件中流过的时间关系
2)资源重复
a)方法:在并行性概念中引入空间因素 。 通过重复设置硬件资源来提高可靠性或性能 。 如双工系统 。
b)优点:系统的速度性能得到很大提高 。
控制器 CU
处理单元 PE0 PE1 PEN-1…

资源重复
3)资源共享
a)方法,利用软件的办法让多个用户按一定时间顺序轮流使用同一套资源,以提高其利用率,这样可以提高整个系统的性能 。 例如,
多道程序分时系统就是利用共享 CPU,主存资源,以降低系统价格,提高设备的利用率 。
b)优点,节省资源,效率高,介于上述两种之间 。
1.5.2并行处理系统结构与多机系统耦合度
1.并行处理系统的结构并行处理计算机是强调并行处理的系统 。 按其基本的结构特征,可以分为以下四种:
1)流水线计算机 —— 时间重叠 —— 多部件在时间上交错重叠地并行执行运算和处理 —— 以实现时间上并行 。
注意问题:解决好拥塞控制,冲突防止,分支处理,指令和数据的相关处理,流水线重组,
中断处理,流水线调度以及作业顺序等 。
2)阵列处理机 —— 资源重复 —— 设置大量算术逻辑单元,在同一控制部件作用下同时运算和处理 —— 以实现空间上的并行 。
注意问题:解决好处理单元间的灵活而有规律的互连模式及互连网络的设计,存贮器组织,
数据分布等 。
3)多处理机 —— 资源共享 —— 由统一的 OS控制共享 I/O子系统、数据库资源及处理机 —— 以实现时间、空间上的异步并行。
注意问题:解决好处理机间的互连、存贮器组织、存贮管理、资源分配、任务分解、系统死锁、进程间的通信与同步、多处理机的调度、
系统保护等。
4)数据流机 —— 指令中的数据控制指令执行顺序 —— 数据是以表示某一操作数或参数已准备就绪的数据令牌的形式直接在指令间传递 ——
研究高效的数据流语言。
2.多级系统的耦合度
1)基本概念
a)多机系统:指的是多处理机系统和多计算机系统 。
b)多处理机系统:多台处理机组成的单一计算机系统 。
c)多计算机系统:多台独立的计算机组成的系统 。
2)耦合度耦合度是反映多机系统中各机器之间连接的紧密程度和交叉作用能力强弱的 。 可以分为以下三种:
a)最低耦合 —— 只是通过某种介质(如磁盘)
交换信息,各机之间没有物理连接,无共享的联机硬件资源。
b)松散耦合 —— 也叫间接耦合,通过通道或通信线路互连,只共享某些外围设备 。 又分两种形式:一种形式是多台计算机通过通道和共享的外围设备相联;另一种形式是各台计算机通过通信线路连接成计算机网络 。 这两种都是非对称,异步的 。
c)紧密耦合 —— 也叫直接耦合,通过总线或高速开关互连,共享主存,信息传输速率高,可以实现数据集一级,任务级,作业级的并行 。
大多是对称型多处理系统 。
1.5.3计算机系统的分类从不同的观点和角度,可以对现有的计算机提出许多不同的分类方法,主要介绍三种 。
1.弗林分类法根据指令流和数据流的多倍性 (是指在系统性能瓶颈部件上处于同一执行阶段的指令或数据的最大可能个数 )状况对计算机进行分类 。
1)单指令流单数据流 SISD
一次仅对一条指令译码,仅对一个操作部件分配数据 。 单处理器计算机,
2)单指令流多数据流 SIMD
一条指令,多个操作过程 。 阵列机和相联处理机 。
3)多指令流单数据流 MISD
多条指令对同一个数据流及其中间结构进行不同的处理 。 这类系统少见 。
4)多指令流多数据流 MDMD
全面并行的多机系统 。
2.库克分类法根据指令流和执行流 (Execution Stream)及其多倍性对计算机系统结构进行分类 。
1)单指令流单执行流 SISE—— 单处理机系统
2)单指令流多执行流 SIME—— 多部件处 理机
3)多指令流单执行流 MISE—— 多指令单处理
4)多指令流多执行流 MIME—— 多处理机系统
3.冯泽云分类法根据数据处理并行度对计算机系统结构进行分类 。
1)字串位串 —— 位串处理,一字一位 —— 位串行计算机
2)字串位并 —— 字片处理,一字 n位 —— 位并行单处理机
3)字并位串 —— 位片处理,m字一位 —— 相联,阵列处理机
4)字并位并 —— 全并行处理,m字 n位 —— 相联,阵列处理机及多处理机第一章小结
1.六级层次结构应用语言机器 面向用户高级语言机器 面向用户汇编语言机器 面向用户操作系统机器 面向上层机器传统机器 面向上层机器微指令机器 面向上层机器
2.结构,组成,实现
1)概念
2)关系
3.系统设计
1)三条基本原则
2)三种设计思路
a)方法,
b)优缺点,
4.并行性
1)概念
2)并行性等级分类
3)三种开发途径
a)时间重叠
b)资源重复
c)资源共享
4)并行性处理机的结构
a)流水线计算机
b)阵列处理机
c)多处理机
d)数据流机
5)耦合度
a)最低耦合
b)松散耦合
c)紧密耦合
6)计算机系统分类
a)弗林法单指令流单数据流 SISD
单指令流多数据流 SIMD
多指令流单数据流 MISD
多指令流多数据流 MDMD
b)库克法单指令流单执行流 SISE
单指令流多执行流 SIME
多指令流单执行流 MISE
多指令流多执行流 MIME
c)冯泽云法字串位串字串位并字并位串字并位并习题处理
2.有一个经解释实现的计算机,可以按功能分为
4级。每一级为了执行一条指令需要下一级的 N
条指令解释。若执行第一级的一条指令需 K ns
时间,那么执行第 2,3,4级的一条指令分别需要多长时间?
『 分析 』 计算机按功能分配时,最低层是第 1级,
向上依次是第 2、第 3、第 4级;解释方式的执行是在低级机器级上用它的一串语句或指令来仿真高一级机器级上的一条语句或指令的功能,
而且是通过对高级机器级程序中的每条语句或指令逐条加以解释来实现的。
『 解答 』 执行第 2、第 3、第 4级的一条指令分别需要 NK ns,N2K ns,N3K ns的时间。
作业 (课后习题 ):
1.计算机系统结构 透明性由中间向两边设计 并行性时间重复 松耦合系统
4,7,8,15,16