系统结构的基础
第一章
基本概念
定义:指令系统结构、组成、硬件(实现) 实质:确定计算机系统中软硬件的界面, 界面之上是软件实现的功能,界面之下是硬件和固件实现的功能。
具有相同系统结构的计算机可以采用不同的计算机组成。 同一种计算机组成又可以采用多种不同的计算机实现。
层次分类
从高到低 6 级
- 应用语言机器
- 高级语言机器
- 汇编语言机器
- 操作系统机器
- 传统机器语言机器
- 微程序机器
最下面三级一般是用解释实现的,但上面三级经常是用翻译的方法。 最下面两级机器是用硬件/固件实现的,称为物理机。 上面 4 层一般是由软件实现的,成为虚拟机器。
系统结构的分类
三种分类方法:
- Flynn 分类法:按照指令流和数据流的多倍性进行分类(SISD, SIMD, MISD, MIMD)
- 指令流:计算机执行的指令序列
- 数据流:由指令流调用的数据序列
- 多倍性:在系统最受限的部件上,同时处于同一执行阶段的指令或数据的最大数目
- 冯式分类法:用系统的最大并行度对计算机进行分类
- 最大并行度:计算机系统在单位时间内能够处理的最大的二进制位数
- Handler 分类法:根据并行度和流水线,量化指标是三元组
- 程序控制部件个数
- 算数逻辑部件或处理部件的个数
- 每个算术逻辑不见包含基本逻辑线路套数
系统结构的发展
冯·诺依曼结构
5 部分组成,以运算器为中心,指令驱动:
- 输入设备
- 运算器
- 存储器
- 控制器
- 输出设备
指令驱动
程序预先存放在计算机存储器中,机器一旦启动, 就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。
对系统结构进行改进
输入/输出方式的改进
- 程序控制
- 等待
- 中断
- DMA
- 成组传递
- 周期挪用
- I/O 处理机
- 通道
- 外围处理机
存储器的发展
- 相联存储器(检索)与相联处理机(检索+算术逻辑运算)
- 通用寄存器组
- 高速缓冲存储器 cache
指令系统的发展
- CISC:复杂指令集
- RISC:精简指令集
软件对系统结构的影响
兼容性:
- 向上(下)兼容:按某档机器编制的程序,不加修改就能运行于比它高(低)档的机器。
- 向前(后)兼容:按某个时期投入市场的某种型号机器编制的程序, 不加修改地就能运行于在它之前(后)投入市场的机器。
实现兼容性于可移植性
- 统一高级语言
- 系列机
- 模拟和仿真
- 模拟:用软件的方法在一台现有的机器(称为宿主机) 上实现另一台机器(称为虚拟机)的指令集。
- 仿真:用一台现有机器(宿主机)上的微程序去解释实现另一台机器(目标机)的指令集。
仿真在机器语言级是相同的,只解释执行微程序机器级的指令。 仿真用微程序解释执行,其解释程序放在控制存储器中,模拟用机器语言解释执行,存放在主存中。
系统结构中并行性的发展
并行性:计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。
- 同时:两个或两个以上的事件在同一时刻发生
- 并发:两个或两个以上的事件在同一时间间隔内发生
从数据角度看,并行性从低到高:
- 字串位串:每次只对一个字的一位进行处理。最基本的串行处理方式,不存在并行性。
- 字串位并:同时对一个字的全部位进行处理,不同字之间是串行的。
- 字并位串:同时对许多字的同一位(称为位片)进行处理。具有较高的并行性。
- 全并行:同时对许多字的全部位或部分位进行处理。最高一级的并行。
从执行程序角度看,并行性从低到高:
- 指令内部并行:单条指令中各微操作之间的并行。
- 指令级并行:并行执行两条或两条以上的指令。
- 线程级并行:并行执行两个或两个以上的线程。 通常是以一个进程内派生的多个线程为调度单位。
- 任务级或过程级并行:并行执行两个或两个以上的过程或任务(程序段) 以子程序或进程为调度单元。
- 作业或程序级并行:并行执行两个或两个以上的作业或程序。
提高并行性的三种途径
- 时间重叠:引入时间因素,让多个处理过程在时间上相互错开, 轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
- 资源重复:引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。
- 资源共享:这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。
计算机系统的设计
定量原理
Amdahl 定律
- : 总执行时间-改进前
- : 总执行时间-改进后
- : 加速比
- : 在改进前的系统中,可改进部分的执行时间在总时间中的占比
- : 改进前所需执行时间与改进后所需执行时间的比
对于多部件的系统
CPU 性能公式
CPU 时间 = 执行程序所需的时钟周期数 * 始终周期时间
CPI: Cycles Per Instruction
CPI = 执行程序所需的时钟周期数 / 所执行的指令条数
CPU 时间 = 指令数 * CPI * 时钟周期时间
计算机系统的性能评测
不同计算机系统执行不同程序的性能会有所不同,有 3 种方法解决这一问题。
- 对比总执行时间
- 对比调和平均值:
- 对比几何平均值:
题目
1.7
某台主频为 400 MHz 的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下
指令类型 | 指令执行数量/条 | 平均时钟周期数 |
---|---|---|
整数 | 45 000 | 1 |
浮点 | 8 000 | 4 |
数据传送 | 75 000 | 2 |
分支 | 1 500 | 2 |
求该计算机的有效 CPI、MIPS 和程序执行时间。
1.10
有三个部件可以改进,加速比如下
-
如果部件 1 和部件 2 的可改进比例都为 30%,那么当部件 3 的可改进比例为多少时,系统的加速比才可以达到 10?
-
如果三个部件的可改进比例分别为 30%, 30% 和 20%,三个部件同时改进, 那么系统中不可改进部分的执行时间在总时间中占比多少?
令原系统总时间为 ,则不可改进部分时间为 , 改进后总时间为 ,两者的比值即为答案。
1.11
FP 指令的比例为 30%,其中 FPSQR 站全部指令的比例为 4%,FP 操作的 CPI 为 5,FPSQR 操作的 CPI 为 20,其他指令的平均 CPI 为 1.25。现有两种改进方案, 第一种是把 FPSQR 操作的 CPI 减至 3,第二种是把所有 FP 的 CPI 减至 3, 试比较两种对整体性能的提升。
优化前整体:30% * 5 + 4% * 20 + (1 - 34%) * 1.25 = 3.25
第一种优化后:30% * 5 + 4% * 3 + (1 - 34%) * 1.25 = 2.445
第二种优化后:30% * 3 + 4% * 20 + (1 - 34%) * 1.25 = 2.525