1.1 计算机系统的层次结构
从使用语言的角度,一台由软、硬件组成的通用计算机系统可以被看成是按功能划分
的多层机器级组成的层次结构。
层次从高到低为:
- 应用语言机器级M5
- 高级语言机器级M4
- 汇编语言机器级M3
- 操作系统机器级M2
- 传统机器语言机器级M1
- 微程序机器级M0
翻译:先用转换程序将高一级机器级上的程序整个地变换成低一级机器级上等效的程序,然后在低一级机器上实现的技术。
解释:在低级机器级上用它的一串语句或指令来仿真高级机器上的一条语句或指令的功能,是通过对高级机器级语言程序中的每条语句或指令逐条解释来实现的技术。
M0用硬件实现,M1用微程序(固件)实现,M2到M5大多是用软件实现。
机器
被定义为能存储
和执行
相应语言程序的算法
和数据结构
的集合体。
实际上,只有二进制机器指令
,即传统所讲的机器语言与机器硬件直接对应,方可直接被硬件识别和执行。
1.2 计算机系统结构、计算机组成和计算机实现
1.2.1 计算机系统结构的定义和内涵
透明:如果客观存在的事物或属性从某个角度看不到,则称对它是透明的。
计算机系统结构研究的是软、硬件之间的功能分配以及对传统机器级界面的确定。
就目前的通用机来说,计算机系统结构的属性包括:
- ①硬件能
直接
识别和处理的数据类型及格式等的数据表示。 - ②
最小
可寻址单位、寻址种类、地址计算等的寻址方式。 - ③通用/专用寄存器的设置、数量、字长、使用约定等的
寄存器组织
。 - ④二进制或汇编指令的操作类型、格式、排序方式、控制机构等的
指令系统
。 - ⑤主存的
最小
编址单位、编址方式、容量、最大可编址空间等的存储系统组织。 - ⑥
中断
的分类与分级、中断处理程序功能及入口地址等的中断机构。 - ⑦系统机器级的
管态
和用户态
的定义与切换。 - ⑧
输入/输出设备
的连接、使用方式、流量、操作结束、出错指示灯的机器级I/O结构。 - ⑨系统各部分的
信息保护
方式和保护机构等属性。
1.2.2 计算机组成与计算机实现的定义和内涵
计算机组成:
指的是计算机系统结构的逻辑实现
,包括机器级内部的数据流
和控制流
的组成以及逻辑设计等。
计算机组成着眼于机器级内部各事件的排序方式
与控制机构
、各部件的功能及各部件间的联系。
计算机组成(单选、简答):
- ①数据通路宽度
- ②专用部件的设置
- ③各种操作对部件的共享程度
- ④功能部件的并行度
- ⑤控制机构的组成方式
- ⑥缓冲和排队技术
- ⑦预估、预判技术
- ⑧可靠性技术
计算机实现:
指的是计算机组成的物理实现
,包括处理机
、主存
等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,专用器件的设计,微组装技术,信号传输,电源、冷却及整机装配技术等。
计算机实现的设计着眼于器件技术
和微组装技术
,其中,器件技术
起着主导
作用。
确定指令系统中是否要设置乘法指令属于计算机系统结构,主存容量与编址方式(按位、按字节、还是按字访问等)的确定属于计算机系统结构。
1.3 计算机系统的软、硬件取舍及定量设计原理
1.3.1 软硬件取舍的基本原则
软件的功能实现(填空)
软件的功能可以用硬件
或固件
完成,硬件的功能也可以用软件模拟
完成,只是它们在性能、价格、实现的难易程度上是不同的。
取舍的基本原则(简答):
提高硬件功能的比例可提高解题速度
,减少
程序所需的存储空间
,增加硬件成本
,降低硬件利用率
和计算机系统的灵活性
及适应性
;提高软件功能的比例可降低
硬件成本,提高
系统的灵活性、适应性,但解题速度会下降
,软件设计费用和所需的存储器用量增加
。
- 原则1:要考虑在现有硬、器件(主要是逻辑和存储器件)条件下,系统有有高的性能价格比,主要从实现费用、速度和其他性能要求来综合考虑。
- 原则2:要考虑准备采用和可能采用的组成技术,使之尽可能不要过多或不合理地限制各种组成、实现技术的采用。
- 原则3:不仅要从“硬”的角度考虑如何便于应用组成技术的成果和便于发挥器件技术的发展,还应从“软”的角度把如何为编译和操作系统的实现以及为高级语言程序的设计提供更多、更好的硬件支持放在首位。
总结:三个方面(硬件上、技术上、软件上)
费用上
硬件设计费用比软件设计费用高。
硬件重复生产费用比软件重复生产费用高。
硬件实现的功能一般只需设计一次,而软件功能可能要多次重复实现。
1.3.2 计算机系统的定量设计原理
- 哈夫曼(Huffman)压缩原理:尽可能
加速处理高概率
的事件远比加速处理概率很低的事件对性能的提高
要显著 - Amdahl定律
Sp:系统加速比 fnew:可改进部分所占比例 rnew:部件加速比
Amdahl定律(单选、填空)
改进效果
好的高性能系统应是一个各部分性能均能平衡
得到提高的系统,不能只是其中某个功能部件性能的提高。
- 程序访问的局部性原理
时间
上的局部性:现在正使用的信息可能不久还要使用,因为程序存在着循环空间
上的局部性:最近的将来要用到的信息很可能与现在正在使用的信息在程序位置上是邻近的,这是因为指令通常是是顺序存放,顺序执行的。
时间局部性 | 空间局部性 | |
---|---|---|
指令 | 循环语句 | 顺序语句 |
数据 | 变量、数据 | 字符串、数组 |
指令硬件的设计尽量加速高频指令的执行。
1.3.3 计算机系统设计的主要任务和方法
计算机系统设计的主要任务
主要任务:包括系统结构
、组成
和实现
的设计。
它涉及软硬件功能分配
、计算机指令系统设计
、功能组织
、逻辑设计、集成电路设计、封装、电源、冷却等许多方面。
计算机系统设计首先要根据市场和应用情况,确定用户对计算机系统的功能、性能和价格的要求。
其中,应用软件
对功能的确定起主要
作用。(需求决定一切)
主要任务划分(单选):
- 要弄清其应用领域是专用的还是通用的
- 要弄清软件兼容是放在哪级层次
- 要弄清对操作系统有何种要求
- 要如何保证有高的标准化程度
设计方法
- “由上往下”设计,也称“由顶向底”设计。这是一种环境要求比较稳定的专用机的设计方法,无法用于通用机的设计。“由上往下”设计是一种串行设计方法,设计周期较长。
- “由下往上”设计,也称“由底向顶”设计。这是一种通用机的设计方法,对软件设计不友好。“由下向上”也是串行设计,同样会延长设计周期。
- “从中间开始”向两边设计。这是
通用机
一般采用的方法。“从中间开始”设计是在传统机器语言机器级与操作系统机器级之间
进行合理的软、硬件功能分配。
设计步骤:需求分析、需求分析说明书、概念设计、模拟和测试;
1.4 软件、应用、器件的发展对系统结构的影响
1.4.1 软件发展对系统结构的影响
软件的可移植性:指软件不修改或只经少量修改就可由一台机器移到另一台机器上运行,同一软件可应用于不同的环境。
实现软件可移植性的技术有:
-
统一高级语言
-
采用系列机
只能应用在结构相同或相似的机器之间的汇编程序的软件移植。系统内各档机器之间的软件兼容从速度和性能上有向上兼容和向下兼容的不同。
向上(下)兼容指的是按某档机器编制的软件,不加修改就能运行于比它高(低)档的机器上。同一系列内的软件一般应做到向上兼容,但向下兼容不一定。
向前(后)兼容指的是在按某个时期投入市场的该型号机器上编制的软件,不加修改就能运行于在它之前(后)投入市场的机器上。系列机软件必须保证向后兼容,力争向前兼容。 -
模拟和仿真
(1) 模拟:用机器语言程序解释实现软件移植的方法称为模拟。
(2) 仿真:用微程序直接解释另一种机器指令系统的方法就称为仿真。
仿真和模拟的主要区别在于解释用的语言。仿真是用微程序
解释,其解释程序存储于控制存储器
中;而模拟是用机器语言程序
解释,其解释程序存储于主存
中。
(3) 模拟和仿真的选择:一般是仿真和模拟并行。频繁使用的易于仿真的机器指令宜用仿真,以提高速度;很少使用的、难以仿真的指令及I/O操作宜用模拟。
1.4.2 应用的发展对系统结构的影响
计算机应用可归纳为向上升级的4类(填空):数据处理
、信息处理
、知识处理
、智能处理
。
1.4.3 器件的发展对系统结构的影响
器件发展:电子管、晶体管、小规模集成电路、大规模集成电路、超大规模集成电路。
非用户片、现场片、用户片。
- 非用户片:也称通用片,其功能是由器件厂家生产时固定的,器件的用户只能使用,不能改变器件内部功能。
- 现场片:用户根据需要可改变器件内部功能。
- 用户片:专门按用户要求生产的高集成度的VLSI器件,完全按用户要求设计的用户片称为全用户片。
器件的发展加速了结构的“下移”。
器件的发展促进了算法、语言和软件的发展。
影响(简答):
- ①器件
集成度的提高
,使器件的速度迅速提高,机器主频和速度也有数量级的提高 - ②器件
可靠性
有数量级的提高,保证流水技术的实现 - ③
高速、廉价的半导体存储器
的出现,使解题速度得以迅速提高的高速缓冲存储器和虚拟存储器的概念真正实现;(价格降低) - ④现场型
PROM器件
,使微程序技术得以实现;(新材料) - ⑤
高速相联存储器
的实现,促使相联处理机这种结构的发展,推动向量机、数组机、数据库机的发展。(新技术)
总结:二功能二材料一技术
1.5 系统结构中的并行性开发及计算机系统的分类
1.5.1 并行性的概念与开发
1 并行性
解题
中具有可以同时进行运算或操作
的特性,称为并行性
。
同时性
:两个或多个事件在同一时刻发生。
并发性
:两个或多个事件在同一时间间隔内发生。
(1)从计算机系统执行程序
的角度,并行性等级由低到高有:
- 指令内部 – 一条指令内部各个微操作之间的并行执行
- 指令之间 – 多条指令的并行执行
- 任务或进程之间 – 多个任务或程序段的并行执行
- 作业或程序之间 – 多个作业或多道程序的并行执行
(2)从计算机系统处理数据
的角度,并行性等级从低到高有:
- 位串字串 – 同时只对一个字的一位进行处理,没有并行性。 串行单处理机。 (001
1
0100,111010100) - 位并字串 – 同时对一个字的全部位进行处理,开始出现并行性. 并行单处理机。(
00110100
,111010100) - 位片串字并 – 同时只对许多字的同一位(称位片)进行处理,开始进入并行处理领域. (00
1
10100,111
010100) - 全并行 – 同只对许多字的全部或部分位组进行处理。(
00110100
,111010100
)或者(0011
0100,1110
10100)
(3) 从计算机信息加工
的各个步骤和阶段,并行性等级有:
- 存储器操作并行. 并行存储器系统、相联处理机
- 处理器操作步骤并行。 流水线处理机
- 处理器操作并行。 阵列处理机
- 指令、任务、作业并行。 多处理机
2 并行性开发的途径
时间重叠
:在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,加快硬件周转来赢得速度。资源重复
:在并行概念中引入空间因素,通过重复设置硬件资源来提高可靠性或性能资源共享
:用软件方法,让多个用户按一定时间顺序轮流使用同一套资源来提高资源利用率,相应地也就提高了系统性能
3 计算机系统的并行性发展
4 多机系统的耦合
包含多处理机系统和多计算机系统。
多处理机系统是由多台计算机组成的单一系统,各处理机都有自己的控制部件,可带本地存储器,能执行各自的程序,但都受逻辑上统一的操作系统控制。
多计算机系统则是由多台独立的计算机组成的系统。各计算机分别在逻辑上独立的操作系统控制下运行,计算机之间可以互不通信,即使通信也只是经通道或通信线路以文件或数据集形式进行,实现多个作业间的并行。
耦合度:反应多级系统中各机器之间物理连接的紧密度和交叉作用能力的强弱,分为最低耦合、松散耦合、紧密耦合。
-
最低耦合系统:各种脱机处理系统,除通过某种存储介质外,各计算机之间无物理连接,也无共享的联机硬件资源。
-
松散耦合系统:多台计算机通过通道或通信线路实现互联,共享某些如磁带、磁盘等外围设备,以较低频带在文件或数据集一级相互作用。
-
紧密耦合系统:多台计算机经总线或告诉开关互连,共享主存,有较高的信息传输速率,可实现数据集一级、任务级、作业级并行。
1.5.2 计算机系统的分类
弗林分类法:按指令流和数据流的多倍性
对计算机系统分类。指令流是指机器执行的指令序列。数据流是指指令流调用的数据序列,包括输入数据和中间结果。多倍性是指在系统性能瓶颈部件上处于同一执行阶段的指令或数据的最大可能个数。
弗林分类法把计算机系统分为:
- 单指令流单数据流(
SISD
)。 传统的单处理器计算机、流水方式的单处理计算机 - 单指令流多数据流(
SIMD
)。阵列处理机和相联处理机,流水线处理机 - 多指令流单数据流(
MISD
)。宏流水和脉动阵列流水机 - 多指令流多数据流(
MIMD
)。共享内存的紧密耦合多处理机、不直接共享内存的松散耦合多处理机及多计算机系统
冯氏分类法:用数据处理的并行度
来定量地描述各种计算机系统特性。
- 字串位串(WSBS)
- 字串位并(WSBP)
- 字并位串(WPBS)
- 字并位并(WPBP)
库克分类法:用指令流和执行流及其多倍性
来描述计算机系统总控制器的结构特点。
- 单指令流单执行流(SISE)---- 典型的单处理机系统
- 单指令流多执行流(SIME)---- 带多操作部件的处理机
- 多指令流单执行流(MISE)---- 带指令级多道程序的单处理机
- 多指令流多执行流(SISE)---- 典型的多处理机系统