Download presentation
Presentation is loading. Please wait.
1
计算机系统结构教程 武汉理工大学
2
目 录 第1章 导论 1.1 计算机系统结构的基本概念 1.2 计算机性能评测 1.3 并行计算机的发展
3
1.1 计算机系统结构的基本概念 计算机系统性能的不断提高主要靠器件的变革和计算机系统结构的改进。
1.1 计算机系统结构的基本概念 计算机系统性能的不断提高主要靠器件的变革和计算机系统结构的改进。 计算机的器件 计算机换代的标志: 计算机系统的结构 推动计算机系统结构发展的关键是提高计算机系统的并行性
4
1.1.1 计算机系统的层次结构 从计算机语言的角度,可将通用计算机系统划分成多级层次结构,每一层以一种不同的语言为特征。
计算机系统的层次结构 从计算机语言的角度,可将通用计算机系统划分成多级层次结构,每一层以一种不同的语言为特征。 按由低层到高层的顺序,各层分别是: 微程序机器级 传统机器语言机器级 操作系统机器级 汇编语言机器级 高级语言机器级 应用语言机器级
5
第2级 机器语言 机器语言 程序员 计算机 传统机器语言机器级 第1级 逻辑设计员 实现机器指定功能的中央控制部分 硬件维护员 第0级
处理机 机器程序 机器指令 系统 第2级 机器语言 计算机 机器语言 程序员 传统机器语言机器级 微程序控制 寄存器 传送门 机器指令 时序 第1级 逻辑设计员 实现机器指定功能的中央控制部分 硬联逻辑 逻辑线路 内核 硬操作时序 第0级 硬件维护员 设计员
6
第6级 用户 应用语言机器级 第5级 高级语言 计算机 程序员 高级语言机器级 第4级 汇编语言 计算机 程序员 汇编语言机器级 第3级
应用程序 信息处理 系统 应用语言 第6级 用户 应用语言机器级 解释程序 编译程序 运行程序 高级语言 第5级 计算机 高级语言 程序员 高级语言机器级 汇编程序 运行程序 汇编语言 第4级 计算机 汇编语言 程序员 汇编语言机器级 操作系统 系统资源 键盘命令 系统原语 第3级 操作员 操作系统机器级
7
1. 低层机器级对高层机器级的支持 各层机器级语言的功能是依靠下一层机器级的支持才能实现的,而且,这种支持要满足透明性要求。 透明性:
从计算机系统的某一层的使用者角度看,只需通过该层的语言就可以使用机器,而不必关心其下层的机器级是如何工作和如何实现对上层的支持的。 计算机系统的“透明”是看不到的意思,即对某一层的使用者来说,他看不到该层以下各层的机器属性。
8
2. 计算机系统结构、计算机组成与实现 计算机系统结构: 计算机组成 :
(Computer Architecture)也称为计算机体系结构,经典的计算机系统结构的定义是指计算机系统多级层次结构中机器语言机器级的结构,它是软件和硬件/固件的主要交界面,是由机器语言程序、汇编语言源程序和高级语言源程序翻译生成的机器语言目标程序能在机器上正确运行所应具有的界面结构和功能。 计算机组成 : (Computer Organization)是计算机系统结构的逻辑实现,它主要研究硬件系统在逻辑上是如何组织的,机器级内部数据流和控制流的组成与逻辑设计。计算机实现(Computer Implementation)是指计算机组成的物理实现,主要着眼于器件技术和微组装技术。
9
结构、组成与实现之间的相互影响 相同结构的计算机可以因速度等性能要求不同而采用不同的组成,相同的组成可有多种不同的实现方法,这都取决于计算机系统的性能和价格要求以及器件技术的发展情况。 结构不同则可用的组成技术会有所不同,而不同的组成又会反过来影响系统结构的设计。
10
3. 软件可移植性 软件可移植性 : 在计算机系统结构的范畴内,实现软件可移植性的基本途径有: 统一高级语言 采用系列机 模拟和仿真等。
(Software Portability)是指在一台机器上编制的软件不用修改或只经少量修改就可在另一台机器上运行,使得同一个软件可以应用于不同的硬件环境中。 在计算机系统结构的范畴内,实现软件可移植性的基本途径有: 统一高级语言 采用系列机 模拟和仿真等。
11
系列机: 软件兼容 : 具有相同的系统结构,但具有不同组成和实现技术的一系列不同型号的机器。
系列机技术既可以使同一系列的机器在汇编语言上实现统一,又能在同一系列内开发出性能价格比更高的新机器。因此,在结构相同或相近的机器之间能实现汇编语言应用软件和部分系统软件的移植。 软件兼容 : 是指同一个软件可以不加修改地运行于结构相同的各档机器上,而且运行结果一致。 向上(下)兼容是指在某档机器上编制的程序可不加修改地运行于比它高(低)档的机器上; 向前(后)兼容是指在某型号机器上编制的程序可不加修改地运行于在它之前(后)投入市场的机器上。 对于系列机必须保证做到向后兼容,力争做到向上兼容。
12
模拟与仿真 (1) 模拟与仿真能实现在结构不同的机器之间的机器语言程序的移植。
模拟(Simulation)是用机器语言程序解释另一机器的机器指令来实现软件移植的。在两种机器的机器指令系统差异较大时,使用模拟方法会使程序运行速度严重下降。 仿真(Emulation)是用微程序直接解释另一机器的机器指令来实现软件移植的。采用仿真方法可以提高被移植软件的运行速度,但在机器结构差异较大的情况下,难以实现仿真。
13
模拟与仿真 (2) 在不同系列机器之间实现软件移植时,可将模拟和仿真两种技术结合起来使用,模拟与仿真的区别是:模拟是用机器语言程序解释指令,其解释程序存储在主存中;仿真是用微程序解释指令,其解释程序存储在控制存储器中。
14
1.1.2 计算机系统并行性的基本概念 并行性 : 同时性 : 并发性 :
计算机系统并行性的基本概念 并行性 : 是指同一时刻或同一时间间隔内发生两种或两种以上性质相同或不相同的事件。 同时性 : 是指两个或多个事件在同一时刻发生。 并发性 : 是指两个或多个事件在同一时间间隔内发生。
15
1. 发展计算机系统并行性的技术途径 可以通过3类技术途径来提高计算机系统的并行性,这就是时间重叠、资源重复和资源共享。
时间重叠是在并行性概念中引入时间因素,让多个处理过程在处理时间上错开,轮流重叠地使用同一套硬件设备的各个部件,提高多个处理过程的并发性。 资源重复是在并行性概念中引入空间因素,通过重复设置硬件资源分别同时用于多个处理过程,实现多个处理过程的同时性。 资源共享是利用软件方法让多个任务按一定顺序轮流使用一套资源,通过提高系统资源利用率来提高系统的性能和效率。
16
2. 并行性等级 (1)按计算机系统中执行程序的并行性划分 ① 指令内部并行 ② 指令之间并行 ③ 任务或进程之间并行
2. 并行性等级 (1)按计算机系统中执行程序的并行性划分 ① 指令内部并行 ② 指令之间并行 ③ 任务或进程之间并行 ④ 作业或程序之间并行 (2)按计算机信息加工的并行性划分 ① 存储器操作并行 ② 处理器操作步骤并行 ③ 处理器操作并行 ④ 指令、任务、作业并行
17
3. 计算机系统结构的分类 指令流 : 数据流 : 多倍性 : 是指机器执行的指令序列。
3. 计算机系统结构的分类 是指机器执行的指令序列。 指令流 : 是指由指令流调用的数据序列,包括输入数据和中间结果。 数据流 : 是指在系统最受限制的部件上,同时处于同一执行阶段的指令或数据的最大可能个数。 多倍性 : Flynn按指令流和数据流的多倍性对计算机系统结构进行分类: 单指令流单数据流(SISD)体系结构 单指令流多数据流(SIMD)体系结构 多指令流单数据流(MISD)体系结构 多指令流多数据流(MIMD)体系结构
18
CU:控制部件 PU:处理部件 MM:存储器模块 IS:指令流 DS:数据流
图1.4 Flynn分类法各类机器结构
19
1.2 计算机性能评测 计算机性能 : 通常是指计算机的工作速度,它是程序执行时间的倒数。
1.2 计算机性能评测 计算机性能 : 通常是指计算机的工作速度,它是程序执行时间的倒数。 计算机的性能不仅与计算机的系统结构有关,而且与程序和算法有关。
20
1.2.1 计算机性能评测的作用与分级 1. 性能评测的作用 (1)改进体系结构设计,提高机器的性能 (2)促进软/硬件结合,合理功能划分
(3)优化“结构—算法—应用”的最佳组合 (4)提高高性能计算机的使用效率
21
2. 性能评测的分级 计算机性能的评测可以划分为机器级、算法级和程序级3个层次。
机器级的性能评测主要包括:CPU的基本性能指标;存储器的基本性能指标;并行计算机的并行计算与通信的开销;并行计算机的可用性和好用性以及机器成本、价格与性能/价格比等。 算法级的性能评测主要是为了评价算法的性能。在并行计算机上进行计算的主要目的是要加速整个计算过程,其中,并行算法的加速性能是最关键的因素,它体现了对于一个给定的应用,并行算法相对于串行算法的执行速度加快了多少倍。 程序级的性能评测主要使用一组基准测试程序测试和评价计算机系统的各种性能。
22
基准测试程序 ① 真实程序 真实程序是指实际应用程序,例如,C语言的各种编译程序、Tex文本处理软件、CAD设计工具Spice等。
② 核心程序 核心程序是从实际程序中抽取少量但很关键的代码段组成。 ③ 小测试程序 小测试程序是指代码长度一般在100行以内的测试程序。用户可以根据自己的测试目的编写一些小段程序,并按已预知的输出结果。 ④ 综合测试程序 程序中各种操作类型和操作数类型所占的比例不同,程序运行的时间也就不相同。综合测试程序试图使程序中各类操作和操作数的比例与大量应用程序中的比例一致,从而提高测评的准确性。。 ⑤ 测试程序组件 最常见的测试组件有SPEC’95和WinBench’98
23
计算机的基本性能指标 1. 单CPU性能 一个程序在计算机上运行,花费的CPU时间为CPU的时钟周期与该程序所有机器指令使用CPU的时钟周期数的乘积,即 CPU时间 = CPU时钟周期数 × 时钟周期 或 CPU时间 = CPU时钟周期数 / 时钟频率 若程序使用的指令条数用IC表示,那么,指令的平均时钟周期数CPI为 CPI = CPU时钟周期数 / IC
24
可重写CPU时间表达式为 CPU时间 = ( IC × CPI ) / 时钟频率 上式表明,CPU的性能取决于3个因素: 时钟频率,时钟频率取决于硬件技术和组织。 机器指令的平均时钟周期数CPI,CPI 取决于系统结构及其指令集的设计与实现。 程序使用的指令条数IC,IC取决于系统结构的指令集和编译技术。
25
若指令 i 在程序中执行的次数为Ii,指令 i 所需的时钟周期数为CPIi ,那么,指令的平均时钟周期数 CPI 为
其中,Ii / IC表示指令i在程序所使用的指令条数中所占的比例,称为指令 i 的使用频度。
26
2. 加速比 Amdahl定律用加速比来衡量改进措施对系统性能提高的程度。 加速比S的定义为 S = T0 / T
27
若Fe表示改进前可被改进部分的执行时间相对T0的百分比,那么,改进前不被改进部分的执行时间相对T0的百分比为1-Fe。另外,用Se表示可被改进部分改进前执行时间对改进后执行时间的比值,即被改进部分改进后的速度提高倍数。可以用Fe和Se表示Tn为 Tn=T0(1-Fe)+T0Fe/Se=T0(1-Fe+Fe/Se) 可得改进后整个系统的加速比Sn为 由于0≤Fe≤1,Se≥1,故Sn≥1。可见性能的提高幅度受改进部分所占比例Fe的限制。即使改进部分的改进效果非常好,有Se→∞,可得Sn=1/(1-Fe),整个系统的性能提高的程序受Fe的限制。
28
【例1.3】 如果FP指令的比例为25%,其中,FPSQR占全部指令的比例为2%,FP操作的CPI为4,FPSQR操作的CPI为20,其他指令的平均CPI为1.33。现有两种改进方案,一种是把FPSQR操作的CPI减至2,另一种是把所有的FP操作的CPI减至2,试比较两种方案对系统性能的提高程度。
29
解:没有改进之前,系统的指令平均时钟周期CPI为
采用方案A,如果使FPSQR操作的时钟周期数由CPIFPSQR=20降至 ,那么,整个系统的指令平均时钟周期数为
30
采用方案B,如果使所有FP操作的平均时钟周期数由CPIFP=4降至 ,那么,整个系统的指令平均时钟周期数为
31
从降低整个系统的指令平均时钟周期数的程度来看,方案B优于方案A。
分别计算两种方案的加速比 同样可计算出方案B的加速比SB = CPI /CPIB = 2 / 1.5 = 1.33。从加速比来看,也可得出方案B优于方案A的结论。
32
3. MIPS和MFLOPS MIPS : 表示每秒百万指令条数。对于一个给定的程序,MIPS定义为 程序的执行时间为
33
表示每秒百万浮点操作次数。 MFLOPS定义为 MFLOPS :
34
是为测试比较机器性能而专门编制的程序,它考虑了各种操作和各种程序的比较。
4. 基准测试程序的执行时间 基准测试程序: 是为测试比较机器性能而专门编制的程序,它考虑了各种操作和各种程序的比较。 将n个测试程序在机器上运行,记录它们的执行时间,可按下述几种方法对n个执行时间进行处理之后来评价机器性能。 是各测试程序执行时间的算术平均值。 (1)平均执行时间 : 其中,Ti 为第 i 个测试程序的执行时间。
35
(2)加权执行时间 : 是各测试程序执行时间的加权平均值。 其中,权因子 Wi 是第 i 个测试程序在总共 n 个测试程序中所占的比重
36
【例1.4】 用一台时钟频率为40MHz的处理机执行标准测试程序,程序含有的各类指令条数和各类指令的平均时钟周期数如下表所示。
指令类型 指令条数 平均时钟周期数 整数运算 45 000 1 数据传送 32 000 2 浮点运算 15 000 控制传送 8000 求测试程序的CPI、MIPS和执行时间。
37
解: 测试程序的指令条数 测试程序的指令平均时钟周期数
38
测试程序在处理机上用每秒百万指令条数表示的执行速率为
测试程序在处理机上执行的时间
39
1.3 并行计算机的发展 并行计算机 : 串行计算机 :
1.3 并行计算机的发展 并行计算机 : 是由多个处理单元或处理器组成的计算机系统,这些处理单元或处理器之间通过互连网络相互通信和协作,能快速、高效地求解大型复杂问题。 串行计算机 : (又称为顺序计算机)只有单个处理单元,按顺序工作方式逐一顺序地执行程序中的指令。 当代的主流并行计算机是可扩放并行计算机,包括 共享存储的对称多处理机 分布存储的大规模并行处理机 分布式共享存储多处理机 工作站机群 网格计算环境
40
1.3.1 支持并行计算机的技术进展 1. 硬件进展 (1)处理器
支持并行计算机的技术进展 1. 硬件进展 (1)处理器 在单片上制造包括内存和 I/O 支持的较强功能的计算机系统,即片上计算机系统;或者在单片上放置多个处理器,即单片并行结构。 (2)存储系统 存储器工艺技术的进展远跟不上处理器的发展步伐。 处理器和存储器性能改进的悬殊差异,迫使在近代计算机中的存储系统使用多级存储器的结构。
41
2. 软件进展 至今,并行软件的进展主要有以下表现: 清楚地明确并行软件的要求和关键问题。 并行软件的开发应坚持与结构无关的基本原则。
应该开发公共使用的、开放的、标准的软件工具。 在串行编程语言(如Fortran或C语言)的基础上,加上某些用于并行进程通信、管理和相互作用的库函数或编译制导。 开发各自软件产品的并行软件版本。
42
1.3.2 并行结构的发展 1. 处理器级并行度的发展 (1)位级并行 (2)指令级并行 (3)线程级并行
并行结构的发展 1. 处理器级并行度的发展 (1)位级并行 (2)指令级并行 (3)线程级并行 是控制流程的简称,它是指被执行的一个指令序列。 线程 : 就是一台处理机有多个控制线程,能同时执行多个指令序列。 多线程 :
43
2. 并行结构的发展变化 (1)并行机的萌芽阶段(1964年~1975年) (2)向量机的发展和鼎盛阶段(1976年~1990年)
(3) MPP出现和蓬勃发展阶段(1990年~1995年) (4)各种体系结构并存发展(1995年以后) 1995年以后,PVP、MPP、SMP、DSM和COW等各种体系结构进入并存发展的阶段。 3T要求:即1Tflop/s的计算能力,1TB的主存容量和1TB/s的I/O带宽。
44
网上资源 参考资源 http://bwrc.eecs.berkeley.edu/classes/cs252/index.htm
45
教材与主要参考书 John L. Hennessy & David A. Patterson, Computer Architecture: A Quantitative Apprach. 3rd ed by Elsevier Science Pte Ltd., 北京:机械工业出版社(影印版),2002.9 John L. Hennessy, David A. Patternson, Computer Organization & Design : The Hardware/Software Interface, 2nd ed. San Francisco: Morgan Kaufmann Publishers, Inc. 1998, 机械工业出版社(影印版)1999 David A. Patternson, John L. Hennessy, Computer Architecture: A Quantitative Apprach. 2nd ed. San Francisco: Morgan Kaufmann Publishers, Inc.,1996, 机械工业出版社(影印版),1999
Similar presentations