1. 概述
-
计算机体系结构、计算机组织和计算机实现三者的关系:
从上到下实现 (1)计算机体系结构(Computer Architecture) 计算机的概念性结构和功能属性 (2)计算机组织(Computer Organization) 计算机体系结构的逻辑实现 包括机器内的数据流和控制流的组成以及逻辑设计等(常称为计算机组成原理) (3)计算机实现(Computer Implementation) 计算机组织的物理实现
2. 计算机体系结构分类
(1)宏观
- 按处理机数量分类
物理实现 | 目的 | |
---|---|---|
单处理系统 | 利用一个处理单元与其他外部设备结合起来 | 实现存储、计算、通信、输入与输出等功能的系统 |
并行处理与多处理系统 | 将两个以上的处理机互连起来,彼此进行通信协调 | 充分发挥问题求解过程中处理的并行性。共同求解一个大问题 |
分布式处理系统 | 物理上远距离而松耦合的多计算机系统 | 远距离:通信时间与处理时间相比已不可忽略 松耦合:在通信线路上的数据传输速率要比在处理机内部总线上传输慢得多 |
(2)微观
- 按并行程度分类
定义 | 解释 | 计算机系统的结构分类 | |
---|---|---|---|
Flynn分类法 | 1966 年,MJ.Flynn 提出 按指令流和数据流 的多少进行分类 | 指令流:机器执行的指令序列 数据流:由指令调用的数据序列 |
(1)单指令流、单数据流 (2)单指令流、多数据流 (3)多指令流、单数据流 (4)多指令流、多数据流 |
冯泽云分类法 | 1972 年,美籍华人冯泽云(Tse-yun Feng)提出按 并行度 对各种计算机系统进行结构分类 | 最大并行度Pm是指计算机系统在单位时间内能够处理的最大二进制位数 | (1)字串行位串行(WSBS)计算机 (2)字并行位串行(WPBS)计算机 (3)字串行位并行(WSBP)计算机 (4)字并行位并行(WPBP)计算机 |
Handler分类法 | 1977 年,德国的汉德勒(Wolfgang Handler)提一个基于硬件并行程度计算并行度的方法 | 分别计算这三级中可以并行或流水处理的程序,即可算出某系统的并行度 | (1)处理机级 (2)每个处理机中的算逻单元级 (3)每个算逻单元中的逻辑门电路级 |
Kuck分类法 | 1978 年,美国的库克(David J.Kuck)提出与Flynn分类法类似的方法,用指令流和执行流(Execution Stream)及其多重性来描述计算机系统控制结构的特征 | (1)单指令流单执行流(SISE) (2)单指令流多执行流(SIME) (3)多指令流单执行流(MISE) (4)多指令流多执行流(MIME) |
-
Flynn 把计算机系统的结构分为:
体系结构类型 结构 关键特性 代表 单指令流、单数据流( Single Instruction stream Single Data stream,SISD) 控制部分:一个
处理器:一个
主存模块:一个单处理器系统 单指令流、多数据流(Single Instruction stream Multiple Data stream, SIMD) 控制部分:一个
处理器:多个
主存模块:多个各处理器以异步的形式执行同一条指令 并行处理机
阵列处理机
超级向量处理机多指令流、单数据流(Multiple Instruction stream Single Data stream, MISD) 控制部分:多个
处理器:一个
主存模块:多个被证明不可能,至少是不实际 目前没有,有文献称流水线计算机为此类 多指令流、多数据流(Multiple Instruction stream Multiple Data stream, MIMD) 控制部分:多个
处理器:多个
主存模块:多个能够实现作业、任务、指令等各级全面并行 多处理机系统
多计算机
3. 指令系统
- 指令集体系结构:一个处理器支持的指令和指令的字节级编码
- 不同的处理器族支持不同的指令集体系结构
(1)指令的基本概念
- 一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如下:操作码字段操作码字段
- 操作码部分指出了计算机要执行什么性质的操作,如加法、减法、取数、存数等。地址码字段需要包含各操作数的地址及操作结果的存放地址等,从地址结构的角度可以分为三地址指令、二地址指令、一地址指令和零地址指令。
(2)寻址方式
特点 | |
---|---|
➢立即寻址方式 | 操作数接在指令中,速度快,灵活性差 |
➢直接寻址方式 | 指令中存故的是操作数的地址 |
➢间接导址方式 | 指令中存故了一个地址,这个地址对应的内容是操作数的地址 |
➢寄存器寻址方式 | 寄存器存故操作数 |
➢寄存器间接寻址方式 | 寄存器内存放的是操作数的地址 |
(2)指令集体系结构的分类
-
从体系结构的观点对指令集进行分类
含义 (1)操作数在CPU中的存储方式 操作数从主存中取出后保存在什么地方 (2)显式操作数的数量 在典型的指令中有多少个显式命名的操作数 (3)操作数的位置 即任一一个ALU指令的操作数能否放在主存中,如何定位 (4)指令的操作 在指令集中提供哪些操作 (5)操作数的类型与大小 -
按暂存机制分类,根据在CPU内部存储操作数的区别:
分类 堆栈(Stack) 累加器(Accumulator) 寄存器组(a set of Registers)
(3)CISC和RISC
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其它 |
---|---|---|---|---|
CISC(复杂) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 研制周期长 |
RISC (精简) | 数量少,使用频率接近,定长格式,大部分为单周期指令, 操作寄存器,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器;硬布线逻辑控制为主,适合采用流水线 | 优化编译,有效支持高级语言 |
CISC与RISC比较,分哪些维度?
指令数量、指令使用频率,寻址方式,寄存器,流水线支持,高级语言支持-
指令 指令使用频率 寻址方式 寄存器 流水线支持 高级语言支持 CISC 复杂 数量多 频率差别大 多寻址 RISC 精简 数量少 操作寄存器 单周期,少寻址 多通用寄存器 √ √
(4)指令的流水处理
- 相关参数计算: 流水线执行时间计算、流水线吞吐率、流水线加速比、流水线效率
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度
流水线计算
-
计算
流水线周期为执行时间最长的段
-
流水线计算公式:
小题:一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间t取指=3ot.分析时间分析=2ot、执行时间执行=4ot的情况下,若按串行方式执行,则10条指令全部执行完需要( 90 )ot;若按流水线的方式执行,流水线周期为( 4 ) ot ,则10条指令全部执行完需要( 9ot + 9*4ot ) ot
超标量流水线
流水线吞吐率计算
流水线的吞吐率( Though Put rate,TP )是指在单位时间内流水
线所完成的任务数量或输出的结果数量计算流水线吞吐率的最基本的公式如下:
流水线最大吞吐率: