第一章 基本概念
1.1
1.1.1 计算机系统和层次结构
1 虚拟计算机
语言实现的两种技术
- 翻译: 将N+1 级程序全部转换成N级程序后,再去执行新产生的N级程序,执行过程中N+1级程序不再被访问。
- 解释:当N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去执行N+1级的指令,依次重复执行。
- 解释执行比编译后在执行花的时间较多,但是占用的存储空间较少。
- L0-L2级用接释的方法, L3-L5用翻译的方法。
1.1.2 计算机系统结构的定义
- 传统机器级的系统结构
- 软件和固件/硬件的交界面,是机器语言、汇编语言程序设计者或编译程序设计者看到的机器物理系统的抽象
1.1.3 计算机组成和实现
1.1.5 计算及系统分类
1 处理机性能分
按性能和价格的综合指标划分:巨型、大型、中型、小型、微型机
2 福林分类法
按照指令流和数据流的多倍性特征进行分类
- 指令流: 机器执行的指令序列。
- 数据流:由指令流调用的数据序列
- 多倍性:在系统性能瓶颈部件上同时处于同一执行阶段的指令或数据的最大可能个数
四种类型
-
单指令流单数据流 SISD; 典型的顺序处理机
-
单指令流多数据流 SIMD
-
多指令流单数据流 MISD
- 多指令流多数据流 MIMD
3 库克分类法
按控制流和执行流来分
- 单指令流单执行流: SISE ,典型的单处理机
- 单指令流多执行流: SIME ,多功能部件处理机、相联处理机、向量处理机、流水线处理机、超流水线处理机、超标量处理机、SIMD并行处理机
- 多指令流单执行流 :MISE , 多道程序系统
- 多指令流多执行流:MIME 多处理机
4 冯泽云分类法
最大并行度对计算机系统进行分类
- 最大并行度:单位时间内能处理的最大二进制位数
1.2 计算机系统的设计技术
1.2.1 计算机系统的定量原理
1 哈夫曼huffman压缩原理
- 在计算机系统的设计中经常要在不同的方法之间进行折中,尽可能加速处理高概率事件远比加速处理低概率事件对性能的提高要显著
2 Amdahl 定律
3 CPU 性能公式
CPU 的程序执行时间 T C P U T_{CPU} TCPU
- 程序执行的总指令条数IC:取决于是指令集结构和编译技术
- 平均每条指令的时钟周期数CPI:取决于计算机组成和指令集结构
- 始终主频 f c f_c fc:
T C P U = I C ∗ C P I ∗ 1 f c T_{CPU} = IC* CPI* \frac{1}{f_c} TCPU=IC∗CPI∗fc1
4 程序访问的局部性原理
时间局部性: 程序中近期被访问的信息项很可能马上将被再次访问。
空间局部性:指那些在访问地址上相邻近的信息项很可能会被一起访问
1.3 计算机系统的评价标准
1.3.1 性能
1 MIPS
主要优点:直观、方便
主要缺点:
- MIPS依赖于指令集,用MIPS来比较指令集不同的机器的性能好坏是很不准确的
- 在同一台机器上,由于指令使用频度差别很大,MIPS会因程序不同而变化
- MIPS可能与性能相反.例如,具有可选硬件浮点运算部件的机器,具有优化功能的编译器
2 MFLOPS
- 只能反映机器执行浮点操作的性能,并不能反映机器的整体性能(如编译性能)
- 基于浮点操作而非指令,比较适合用于衡量处理机中向量运算性能
- 会随着整数和浮点数的比例、快速浮点操作与慢速浮点操作的比例不同而不同
- 一般认为 1 MFLOPS ≈ 13MIPS
3 用基准测试程序来测试机器的性能
4 性能的比较
-
计算机的性能通常用峰值性能和持续性能来评价
-
持续性能又称为实际性能,它的值往往是峰值性能的5%~30%
-
持续性能的表示:
1)算数性能平均值
2)调和性能平均值
3)几何性能平均值
算数性能平均值
算数性能平均值 A m A_m Am是n道程序运算速度或运算时间的算数平均值
以速度评价;
以执行时间评价:
加权算数平均(各个程序出现的比例不同)
调和性能平均值
Hm的值与运行全部程序所需要的时间成反比,用他来衡量计算机的时间(速度)性能比较准确
几何性能平均值
对不同机器进行性能比较时,可以对性能采取归一化处理,以某一台机器的性能作为参考标准,即Ri是第i个程序相对于参考机器归一化后的运行速率
1.2.4 价格标准
1.4 计算机系统的发展
1.4.1 冯诺依曼结构
存储程序原理的基本点: 指令驱动
- 程序原先放在计算机的存储器中,计算机一旦启动,就能按照程序指定的逻辑顺序执行程序,自动完成程序所描述的工作。
对系统结构进行的改进
1.4.2 软件对系统结构的影响
- 可以执行: 软件不修改获知经过少量的修改,就可以在一直到另一条机器上运行,同一软件可应用于不同的环境。
系列机:
系列机定义:具有相同的系统结构,但组成和实现技术不同的一系列计算机系统。
在系统结构基本不变的基础上,根据不同的性能和不同的器件,研制出多种性能和价格不同的计算机系统。
模拟和仿真
- 模拟: 用机器语言程序解释实现软件移植的方法
- 仿真: 用为程序直接解释另一种机器指令的方法
统一高级语言 - 采用一种不依赖于人和机器的高级语言编写系统软件和应用软件
1.5 计算机系统结构中并行性的发展