计算机体系结构
第1章 计算机系统结构导论
计算机系统结构(Computer Architecture)
- 又名计算机体系结构。
- 计算机系统由
硬件/器件
和软件
组成 - 按
功能
划分成多级层次结构
- 主要研究
硬件和软件的功能分配
以及确定硬件与软件的界面
1.1 计算机系统结构的层次性与透明性
1.1.1 层次结构的划分
(1)计算机语言可以分为一系列的层次(Level)或级,最底层的语言的功能最简单,最高层语言的功能最强,更便于应用
(2)从计算机语言的角度看,可将通用计算机系统划分成多级层次结构,每一层以一种不同的语言
为特征,由低到高为:
- 微
程序机器级
- 传统机
器语言机器级
- 操
作系统机器级
- 汇
编语言机器级
- 高
级语言机器级
- 应
用语言机器级等
对每一层的使用者来说,都可以把此机器级看成是一台独立的及其,都可以应用相应的机器级语言
(3)
级 | 用什么实现的 |
---|---|
微程序机器级 | 硬件 |
用组合逻辑控制的传统机器语言机器级 | 硬件 |
采用微程序控制的传统机器语言机器级 | 固件 |
操作系统机器级 | 软件为主,可增加硬件 |
汇编语言机器级 | 软件为主,可增加硬件 |
高级语言机器级 | 软件为主,可增加硬件 |
应用语言机器级 | 软件为主,可增加硬件 |
固件(Firmware):一种具有软件功能的硬件,例如,把软件固化在只读存储器中,此只读存储器就是一种固件。
实际机器:以硬件或固件为主实现的机器称。
虚拟机器(Virtual Machine):以软件为主实现的机器。
1.1.2 透明性
从计算机系统的某一层的使用者角度看,只需通过该层的语言就可以使用机器,而不必关心其下层的机器级是如何工作和如何实现各自功能的,这一性质称为透明性(Transparency)。
计算机系统的“透明”是看不到
的意思,即对某一层的使用者来说,他看不到该层以下的机器属性。
1.1.3 各机器级的实现技术
-
低层机器级为高层机器级的功能实现提供支持,实现的技术就是翻译和解释。
-
翻译
(Translate)是先用翻译程序
(Translator)把高层机器级上的程序翻译成低层机器级上的等效程序,然后在低层机器级上实现程序功能。 -
采用
翻译
技术实现的典型例子有:- 用翻译程序将应用语言机器级上的应用程序包翻译成高级语言程序;
- 用编译程序将高级语言源程序转换成机器语言目标程序;
- 用汇编程序将汇编语言源程序转换成机器语言目标程序。
-
解释
(Interpretation)是用低层机器级的一些语句或指令来仿真高层机器级上的一条语句或指令的功能,高层机器级程序中的每条语句或指令被逐条解释来实现程序功能。 -
采用
解释
技术实现的典型例子有:- 用解释方式在传统机器语言机器级上执行高级语言程序;
- 用微指令程序解释实现机器指令;
- 用微程序或机器指令程序解释实现操作系统的操作命令等。
-
我的补充(上述可以看Java程序的执行):
(编译程序和汇编程序都是翻译程序,编译程序和汇编程序生成目标代码,解释程序是对源程序进行解释执行的程序,类似于口译,不生成目标代码)
1.2 计算机系统结构和计算机组成与实现的关系
1.2.1 计算机系统结构
- 传统的计算机系统结构的定义是指计算机系统多级层次结构中
机器语言机器级
的结构,它是软件和硬件/固件
的主要交界面
,是由机器语言程序
、汇编语言源程序
和高级语言源程序
翻译生成的机器语言目标程序能在机器上正确运行所应具有的界面结构和功能
。 - 目前,经常使用的是广义的计算机系统结构的概念,除了包括传统的计算机系统结构的概念外,还包括了计算机组成和实现技术。
1.2.2 计算机组成与实现
- 计算机组成是计算机系统结构的
逻辑实现
,它主要研究硬件系统
在逻辑
上是如何组织的,机器级内部数据流和控制流的组成与逻辑设计
。 - 计算机实现是指计算机组成的
物理实现
,主要着眼于器件技术
和微组装技术
。
1.2.3 结构、组成与实现之间的相互联系
-
相同结构的计算机可以因速度等性能要求不同而采用不同的组成,
相同的组成可有多种不同的实现方法,
这都取决于计算机系统的性能和价格要求以及器件技术的发展情况。 -
结构不同则会使可用的组成技术有所不同,
而不同的组成又会反过来影响系统结构的设计。 -
因此,系统结构的设计不仅需要结合应用需求来考虑,要能为软件和算法的实现提供更多更好的硬件支持;同时还要考虑可能采用和准备采用哪些组成技术,不能过多或不合理地限制各种可能的组成与实现技术的采用。
-
组成与实现可以折中考虑,主要取决于器件的来源和性能价格比。应该在可提供的器
件及其实现技术的条件下,尽可能提高系统的性能并使价格不增或少增。
1.2.4 软件可移植性及其实现途径
软件可移植性(Software Portability)是指在一台机器上编制的软件不用修改或只经少量修改就可在另一台机器上运行,使得同一个软件可以应用于不同的硬件环境中。这样,在原有计算机系统上使用的大量成熟可靠的软件,特别是应用软件,就可以在新计算机系统上使用而不必重新编写。
在计算机系统结构的范畴内,实现软件可移植性的基本途径有:统一高级语言
、采用系列机
、以及模拟和仿真
等。
1、统一高级语言(结构不同也可)
2、采用系列机(相同系统结构)
3、模拟和仿真(结构不同)
1.2.5 并行性及提高并行性的途径
- 并行性(Parallelism)
- 同一时刻或同一时间间隔内发生两种或两种以上性质相同或不同的事件。
- 只要时间上相互交叉,就存在并行性。
- 并行性实际上包含
同时性
与并发性
两层含义。同时性(Simultaneity)是指两个或多个事件在同一时刻
发生。并发性(Concurrency)是指两个或多个事件在同一时间间隔
内生。
- 提高并行性的技术途径
从单处理机向现代高性能的多处理机系统发展的过程来看,
- 按
时间交叉
途径,将多个处理机按宏流水技术
构成的多处理机系统,一般都是非对称型(Asymmetrical)或异构型(Heterogeneous)多处理机系统(Multiprocessor System); - 按
资源重复
途径构成的相联处理机系统和阵列处理机系统都是对称型(Symmetrical)或同构型(Homogeneous)多处理机系统; - 按
资源共享
途径发展的多处理系统可以是同构型的,也可以是异构型的。
20 世纪 90 年代以来,计算机系统最主要的发展是开发大规模并行处理
(MPP)系统,其中,多处理机系统和多计算机系统
是研究和开发的热点,它们可以是由数十个乃至数千个微处理机构成的 MPP 系统,也可以是由多个高性能工作站或高档微机使用高速通信网络互联来构成高效并行处理的机群(Cluster)系统。这是因为当前重大科学计算课题要求计算机系统能达到 3T 性能,即 1TFLOPS 的计算能力、1TB 的主存容量和 1TB/s 的 I/O 带宽。
1.2.6 多级系统的耦合度
耦合度
用来反映多机系统中各处理机
(计算机)之间物理连接的紧密程度和交互作用能力
的强弱程度
。- 多机系统的耦合度可分为
最低耦合
、松散耦合
和紧密耦合
等三种。 - 最低耦合系统(Least Coupled System)是指计算机之间
没有物理的连接
,最多只是通过盘、带等存储介质对机器之间的交互作用提供支持的系统。 - 松散耦合系统(Loosely Coupled System)是指计算机或处理机之间通过
低速通信线路
互联或通过通道互联,共享一部分外设
的系统。 - 紧密耦合系统(Tightly Coupled System)是指处理机之间通过
高速总线或开关网络
互联,共享主存
的系统。
1.2.7 Flynn分类法
- 指令流和数据流
- 指令流(Instruction Stream):机器执行的指令序列
- 数据流(Data Stream):由指令流调用的数据序列,包括输入数据和中间结果数据
- 多倍性(Multiplicity):指在系统
最受限制的部件上
,同时处于同一执行阶段
的指令或数据
的最大可能个数 - 弗林(Flynn)分类法
- Flynn 分类法按
指令流
和数据流
的多倍性
把计算机系统分为:- 单指令流单数据流(SISD)系统
- 单指令流多数据流(SIMD)系统
- 多指令流单数据流(MISD)系统
- 多指令流多数据流(MIMD)系统等 4 类。
- 传统的按
顺序方式
执行指令的单处理机属于 SISD 系统; - 阵列处理机和流水处理机属于 SIMD 系统;
- 宏流水和脉动阵列机属于 MISD 系统;
- 能全面实现作业、任务、指令、数组等各级并行的多处理机系统和多计算机系统都属于 MIMD 系统。
- Flynn 分类法不适用于现代非控制流计算机系统的分类。可以根据
执行程序或指令的控制方式
对计算机系统分类,将其分为:- 由控制驱动的控制流方式,
- 由数据驱动的数据流方式
- 由需求驱动的归约方式
- 由模式驱动的匹配方式等计算机系统。
1.2.8 性能定量分析基础
1. CPU性能
程序在机器上运行所需的CPU时间为:
若程序运行时执行的指令条数为 IC,则每条指令的平均运行时钟周期数 CPI 为:
由此可得CPU性能公式:
CPU 性能公式的 3 个参数反映了与系统结构相关的 3 个因素:
时钟频率
取决于计算机实现技术和计算机组成;- 机器指令的平均运行时钟周期数·
CPI
取决于计算机指令集的结构和指令集的设计与实现技术; - 程序运行时执行的指令条数
IC
取决于计算机指令集的结构和编译技术。
通过改进计算机系统设计,可以相应提高这 3 个参数的指标,从而提高 CPU 性能。
2. Amdahl定律
1.2.9 计算机性能测评方法
目前公认的相对可靠的计算机性能测评方法是用测试程序在机器上的执行时间来衡量
机器的性能。常用的测试程序可分为以下 4 类。
衡量机器性能的惟一可靠的标准是机器真正执行程序的时间
,其他各种替代标准可能导致错误的结论,较为流行的替代标准是 MIPS
和 MFLOPS
。