Download presentation
Presentation is loading. Please wait.
1
第一章 计算机体系结构的基本概念
2
1.1 引论 第一台通用电子计算机诞生于1946年 18000个电子真空管 33万亿个晶体管 (18亿倍)
18000个电子真空管 33万亿个晶体管 (18亿倍) 800字节存储容量 4万亿字节 (50亿倍) 运算速度5000次/秒 12.5万亿次/秒 (25亿倍) 2. 经历了4个发展过程
3
1.1 引论 时 间 原 因 每年的性能增长 1946年起的25年 制造技术和体系结构的发展 25% 20世纪70年代末-80年代初
时 间 原 因 每年的性能增长 1946年起的25年 制造技术和体系结构的发展 25% 20世纪70年代末-80年代初 大规模集成电路和微处理器出现,以集成电路为代表的制造技术的发展 约35% 20世纪80年代中开始 RISC结构的出现,系统结构不断更新和变革,制造技术不断发展 50%以上 维持了约16年 2002年以来 更大规模集成电路技术的发展为体系结构的发展尤其是并行化技术的发展提供了空间 约20%
4
1.1 引论 推动性能提高的主要因素: 1)更高的主频 器件工艺的进步(Natural frequency growth ) 更深的流水线
2)开发各个层次的并行性 指令级并行性 线程/进程级并行性 数据级并行性 3)减少内存延迟 大容量、高性能的片上多级Cache 及更成熟的先行控制、指令预取等技术 指令的深度流水线 乱序执行 超标量处理机 分支预测及前瞻执行
5
1.1 引论 计算机技术的飞速发展得益于: 计算机制造技术的发展 计算机系统结构的创新
6
1.1 引论 进一步发展面临的问题 主频 指令级并行性 内存访问速度的 功耗问题
7
1.1 引论 微处理机的发展轨迹遵从摩尔定理: Moore's law :
The number of transistors that can be placed inexpensively on an integrated circuit doubles approximately every two years. This trend has continued for more than half a century and is expected to continue until at least 2015 or 2020
8
1.1 引论 从性能的角度来看: 更少的电荷能驱动 晶体管尺寸的减小 速度的提高 传输距离缩小 连线尺寸的缩小 …….
9
1.1 引论 摩尔定律有三种解释: 一种是集成电路芯片上所集成的电路的数目,每隔18个月就翻一番;
第二种是微处理器的性能每隔18个月提高一倍,而价格下降一半; 第三种解释是用一个美元所能买到的电脑性能,每隔18个月翻两番。
10
1.1 引论 1) 功耗问题: 功耗增加 速度的提高数量的增加 电压的降低 晶体管尺寸的减小 功耗增加 功耗降低 连线尺寸的缩小 电阻的增加
可靠性下降 功耗增加 线间距的缩小 漏电流的增加 功耗增加,Pentium 4 达到100w, 平均0.5w/mm2
11
1.1 引论 100 Max Power (Watts) 10 1 i386 i486 Pentium® w/MMX tech. 1.5m
Pentium® Pro Pentium® II Pentium® 4 Pentium® III
12
1.1 引论 2) ILP(指令级并行)问题: 1) 应用中可利用的ILP在4 ~ 10 之间,目前可达到的ILP在4 ~ 8 之间
进一步发展的空间并不是很大 2) 实现过于复杂可能反而造成性能下降
13
1.1 引论 3) 复杂性问题: 芯片复杂性的不断提高 包含上亿个晶体管 + 体系结构的不断复杂化 正确性验证非常困难
3) 复杂性问题: 芯片复杂性的不断提高 包含上亿个晶体管 + 体系结构的不断复杂化 正确性验证非常困难 研发、生产的成本不断提高
14
总结 主频:不可能无限提高 散热:主频每增加1G,功耗将上升25瓦,而在芯片功耗超过150瓦后,现有的风冷散热系统将无法满足散热的需要
复杂度:英特尔的奔腾(Pentium)四至尊版840处理器,晶体管数量已经增加至2.5亿个 有效性:不到6%的晶体管用于计算
15
1.2 计算机体系结构的概念 1.2.1 计算机系统中的层次概念 1. 计算机系统是=软件+硬件/固件 2. 计算机语言由低级向高级发展。
1.2 计算机体系结构的概念 1.2.1 计算机系统中的层次概念 1. 计算机系统是=软件+硬件/固件 2. 计算机语言由低级向高级发展。 高一级语言的语句相对于低级语言功能更强,更便于应用,但又都以低级语言为基础。 3. 从计算机语言的角度,把计算机系统按功能划分成多级层次结构。
16
1.2 计算机体系结构的概念
17
1.2 计算机体系结构的概念 (1) 虚拟机:由软件实现的机器。 (2) 语言实现的两种基本技术
1.2 计算机体系结构的概念 (1) 虚拟机:由软件实现的机器。 (2) 语言实现的两种基本技术 ◆ 翻译:先把N+1级程序全部变换成N级程序后, 再去执行新产生的N级程序,在执行过程中N 级程序不再被访问。 ◆ 解释:每当一条N+1级指令被译码后,就直接 去执行一串等效的N级指令,然后再去取下一 条N+1级的指令,依此重复进行。 解释执行比翻译花的时间多,但存储空间占用较少。
18
1.2 计算机体系结构的概念 1.2.2 计算机体系结构的定义 1. 计算机体系结构:程序员所看到的计算机的属性, 即概念性结构与功能特性。
1.2 计算机体系结构的概念 计算机体系结构的定义 1. 计算机体系结构:程序员所看到的计算机的属性, 即概念性结构与功能特性。 2. 按照计算机系统的多级层次结构,不同级程序 员所看到的计算机具有不同的属性。 如低级语言程序员所看到的许多计算属性对高级语 言程序员透明 透明性: 在计算机技术中,对这种本来是存在的事物或属性,但从某种角度看又好象不存在。
19
1.2 计算机体系结构的概念 3. Amdahl 提出的体系结构:传统机器级的体系结构 即一般所说的机器语言程序员所看到的传统机器级所具有的属性。 5. 对于通用寄存器型机器,这些属性主要是指: 指令系统 包括机器指令的操作类型和格式、指令间的 排序和控制机构等。 数据表示 硬件能直接识别和处理的数据类型。 寻址规则 包括最小寻址单元、寻址方式及其表示。
20
1.2 计算机体系结构的概念 寄存器定义 (包括各种寄存器的定义、数量和使用方式) 中断系统 (中断的类型和中断响应硬件的功能等)
1.2 计算机体系结构的概念 寄存器定义 (包括各种寄存器的定义、数量和使用方式) 中断系统 (中断的类型和中断响应硬件的功能等) 机器工作状态的定义和切换 (如管态和目态等) 存储系统 (主存容量、程序员可用的最大存储容量等) 信息保护 (包括信息保护方式和硬件对信息保护的支持)
21
1.2 计算机体系结构的概念 I/O结构 包括I/O连结方式、处理机/存储器与I/O设备之间数据传送的方式和格式以及I/O操作的状态等
1.2 计算机体系结构的概念 I/O结构 包括I/O连结方式、处理机/存储器与I/O设备之间数据传送的方式和格式以及I/O操作的状态等 经典计算机体系结构概念的实质: 计算机系统中软硬件界面的确定,其界面之上的是软件的功能,界面之下的是硬件和固件的功能。
22
1.2 计算机体系结构的概念 1.2.3 计算机组成和计算机实现技术 1. 计算机组成:计算机体系结构的逻辑实现。
1.2 计算机体系结构的概念 1.2.3 计算机组成和计算机实现技术 1. 计算机组成:计算机体系结构的逻辑实现。 2. 计算机实现:计算机组成的物理实现。 计算机组成包括的内容可以有: 处理机、主存等部件的逻辑结构,机器级内数据流和控制流的组成、各部件的功能以及之间的联系等。 计算机实现包括的内容可以有: 处理机、主存等部件的物理结构,包括器件的集成度和速度的确定,器件、模块、插件、底板的划分与连接,组装装配技术及信号连接、电源、冷却方法等。
23
1.2 计算机体系结构的概念 体系结构与组成、实现之间的关系为: 体系结构是组成的抽象,组成是实现的抽象 一种体系结构可以有多种组成。
1.2 计算机体系结构的概念 体系结构与组成、实现之间的关系为: 体系结构是组成的抽象,组成是实现的抽象 一种体系结构可以有多种组成。 一种组成可以有多种物理实现。 广义的计算机体系结构概念包括体系结构的外部特性和内部特性: 1)计算机体系结构外部特性---计算机体系结构的经典定义 2)计算机体系结构内部特性---计算机组成与实现中一些比较抽象的内容(微体系结构)
24
1.2 计算机体系结构的概念 系列机 在一个厂家内生产的具有相同的体系结构(经典定义),但具有不同组成和实现的一系列不同型号的机器。
1.2 计算机体系结构的概念 系列机 在一个厂家内生产的具有相同的体系结构(经典定义),但具有不同组成和实现的一系列不同型号的机器。 如 IBM 370系列有370/115、125、135、145、158、168等一系列从低速到高速的各种型号。 相同点:程序员所看到的概念性结构和功能属性 指令系统一致 不同点:组成和实现技术 速度特性不一样
25
1.2 计算机体系结构的概念 1.2.4 计算机系统结构的分类 常见的计算机系统结构分类法有两种: Flynn分类法、冯氏分类法
26
1.2 计算机体系结构的概念 冯氏分类法 用系统的最大并行度对计算机进行分类。
1.2 计算机体系结构的概念 冯氏分类法 用系统的最大并行度对计算机进行分类。 最大并行度:计算机系统在单位时间内能够处理的最大的二进制位数。 用平面直角坐标系中的一个点代表一个计算机系统,其横坐标表示字宽(n位),纵坐标表示一次能同时处理的字数(m字)。m×n就表示了其最大并行度。 Flynn分类法 按照指令流和数据流的多倍性进行分类。 指令流:计算机执行的指令序列。
27
1.2 计算机体系结构的概念 数据流:由指令流调用的数据序列。 多倍性:在系统受限的部件上,同时处于同一执行阶段的指令或数据的最大数目。
1.2 计算机体系结构的概念 数据流:由指令流调用的数据序列。 多倍性:在系统受限的部件上,同时处于同一执行阶段的指令或数据的最大数目。 Flynn分类法把计算机系统的结构分为4类: 单指令流单数据流(SISD) 单指令流多数据流(SIMD) 多指令流单数据流(MISD) 多指令流多数据流(MIMD) 4类计算机的基本结构 IS:指令流,DS:数据流,CS:控制流, CU:控制部件,PU:处理部件,MM和SM:存储器。
29
1.3 定量分析技术 1.3.1 计算机系统设计的定量原理 4个定量原理: 以经常性事件为重点
计算机系统设计的定量原理 4个定量原理: 以经常性事件为重点 对经常发生的情况采用优化方法的原则进行选择,以得到更多的总体上的改进。 优化是指分配更多的资源、达到更高的性能或者分配更多的电能等。
30
1.3 定量分析技术 Amdahl定律 加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。
系统性能加速比: 系统性能改进后 总执行时间改进前 加速比= = 系统性能改进前 总执行时间改进后
31
1.3 定量分析技术 加速比依赖于两个因素 可改进比例:在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例。它总是小于等于1。
例如:一个需运行60秒的程序中有20秒的运算可以加速,那么这个比例就是20/60。 部件加速比:可改进部分改进以后性能提高的倍数。它是改进前所需的执行时间与改进后执行时间的比。一般情况下部件加速比是大于 1 的。 例如:若系统改进后,可改进部分的执行时间是2秒,而改进前其执行时间为5秒,则部件加速比为5/2。
32
1.3 定量分析技术 改进后程序的总执行时间 总执行时间改进后 = (1-可改进比例)×总执行时间改进前
总执行时间改进后 = 不可改进部分的执行时间 + 可改进部分改进后的执行时间 总执行时间改进后 = (1-可改进比例)×总执行时间改进前 可改进比例×总执行时间改进前 + 部件加速比 可改进比例 = [ (1 -可改进比例) ] ×总执行时间改进前 部件加速比
33
系统加速比为改进前与改进后总执行时间之比
1.3 定量分析技术 系统加速比为改进前与改进后总执行时间之比 总执行时间改进前 加速比 = 总执行时间改进后 1 = 可改进比例 (1-可改进比例)+ 部件加速比
34
1.3 定量分析技术 例1.1 将计算机系统中某一功能的处理速度提高到原来的20倍,但该功能的处理时间仅占整个系统运行时间的40%,则采用此提高性能的方法后,能使整个系统的性能提高多少?
35
1.3 定量分析技术 解 可改进比例 = 40% = 0.4, 部件加速比 = 20 根据Amdahl定律可知:
解 可改进比例 = 40% = 0.4, 部件加速比 = 20 根据Amdahl定律可知: 采用此提高性能的方法后,能使整个系统的性能提高到原来的1.613倍。 1 总加速比 = = 1.613 0.4 0.6 + 20
36
1.3 定量分析技术 例1.2 某计算机系统采用浮点运算部件后,使浮点运算速度提高到原来的20倍,而系统运行某一程序的整体性能提高到原来的5倍,试计算该程序中浮点操作所占的比例。
37
1.3 定量分析技术 解 部件加速比 = 20,系统加速比 = 5 根据Amdahl定律可知 由此可得:可改进比例 = 84.2%
解 部件加速比 = 20,系统加速比 = 5 根据Amdahl定律可知 由此可得:可改进比例 = 84.2% 即程序中浮点操作所占的比例为84.2%。
38
1.3 定量分析技术 Amdahl定律:一种性能改进的递减规则
如果仅仅对计算任务中的一部分做性能改进,则改进得越多,所得到的总体性能的提升就越有限。 重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过 1/(1-可改进比例)
39
1.3 定量分析技术 两种情况: (1)可改进比例为0,这时系统加速比等于1,即系统性能无法提高。
(2)部件加速比趋于无穷,这时分母中可改进比例与部件加速比之比趋于0,由此系统加速比趋于1除以1减可改进比例,这是加速这个部件所获得的系统性能改善的极限。
40
1.3 定量分析技术
41
1.3 定量分析技术 CPU性能公式 执行一个程序所需的CPU时间 执行程序所需的时钟周期数可进一步分解为:
CPI :每条指令执行的平均时钟周期数 IC: 所执行的指令条数 程序执行的CPU时间可以写成 CPU时间 = IC ×CPI ×时钟周期时间
42
1.3 定量分析技术 计算机工作的时钟频率 计算机系统中与实现技术和工艺有关的因素。 单位是MHz或GHz 。
时钟周期时间= 1 / 时钟频率 CPU时间 = CPI IC / 时钟频率
43
1.3 定量分析技术 时钟频率: 受计算机实现技术和计算机组成影响 CPI: 受计算机指令集结构和计算机组成影响
时钟频率: 受计算机实现技术和计算机组成影响 CPI: 受计算机指令集结构和计算机组成影响 IC: 受计算机指令集结构和编译技术影响 对许多CPU来说,不同的指令运行时所用的周期数是不同的,如果我们假设:计算机系统有 n 种指令,其中 CPIi : 第 i 种指令所用的时钟周期数; ICi : 在程序运行过程中中第 i 种指令被运行的次数;
44
1.3 定量分析技术 CPU时间 = (CPIi ICi) / 时钟频率
CPI = (CPIi ICi) / IC = (CPIi ICi / IC) 其中:(ICi / IC) 反映了第 i 种指令在程序中所占的 比例。
45
1.3 定量分析技术基础 例1.3 假设我们考虑条件分支指令的两种不同设计方法如下:
1.3 定量分析技术基础 例1.3 假设我们考虑条件分支指令的两种不同设计方法如下: (1) CPUA:通过比较指令设置条件码,然后测试条 件码进行分支。 (2) CPUB:在分支指令中包括比较过程 在两种CPU中,条件分支指令都占用2个时钟周期而所有其它指令占用1个时钟周期,对于CPUA,执行的指令中分支指令占20%;由于每个分支指令之前都需要有比较指令,因此比较指令也占20%。由于CPUA
46
1.3 定量分析技术基础 在分支时不需要比较,因此假设它的时钟周期时间比CPUB快1.25倍。哪一个CPU更快?如果CPUA的时钟周期时间仅仅比CPUB快1.1倍,哪一个CPU更快呢? 解:我们不考虑所有系统问题,所以可用CPU性能公式。占用2个时钟周期的分支指令占总指令的20%,剩下的指令占用1个时钟周期。所以 CPIA = 0.2 1 = 1.2 则CPU性能为: 总CPU时间A = ICA 1.2 时钟周期A
47
1.3 定量分析技术基础 对 CPUB 根据假设,有: 时钟周期B = 1.25 时钟周期A
1.3 定量分析技术基础 对 CPUB 根据假设,有: 时钟周期B = 1.25 时钟周期A 在CPUB中没有独立的比较指令,所以CPUB的程序量为CPUA的80%,分支指令的比例为: 20%/80% = 25% 这些分支指令占用2个时钟周期,而剩下的75%的指令占用1个时钟周期,因此: CPIB = 0.25 1 = 1.25
48
1.3 定量分析技术基础 因为CPUB不执行比较,故: ICB = 0.8 ICA 因此CPUB性能为:
1.3 定量分析技术基础 因为CPUB不执行比较,故: ICB = 0.8 ICA 因此CPUB性能为: 总CPU时间B = ICB CPIB 时钟周期B = 0.8 ICA 1.25 (1.25 时钟周期A) = 1.25 ICA 时钟周期A 在这些假设之下,尽管CPUB执行指令条数较少,CPUA因为有着更短的时钟周期,所以比CPUB快。
49
1.3 定量分析技术基础 如果CPUA的时钟周期时间仅仅比CPUB快1.1倍,则 时钟周期B = 1.10 时钟周期A
1.3 定量分析技术基础 如果CPUA的时钟周期时间仅仅比CPUB快1.1倍,则 时钟周期B = 1.10 时钟周期A CPUB的性能为: 总CPU时间B = ICB CPIB 时钟周期B = 0.8 ICA 1.25 (1.10 时钟周期A) = 1.10 ICA 时钟周期A 因此CPUB由于执行更少指令条数,比CPUA运行更快。
50
1.3 定量分析技术 4. 程序的局部性原理 程序在执行时所访问地址的分布不是随机的,而是相对地簇聚;这种簇聚同时存在于指令访问和数据访问中。 ◆ 程序的时间局部性:程序即将用到的信息很可能就是目前正在使用的信息。 ◆ 程序的空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。
51
1.3 定量分析技术 用Amdahl定律分析并行加速
现实世界的计算过程从来不会按照简单的串并行来区分,实际上,也几乎没有计算过程能纯粹地划归为串行或者并行实现的 绝大多数软件会包含 可并行 和 不可并行(串行)的操作
52
1.3 定量分析技术 p: 处理器数; W:问题规模(计算负载、工作负载) WS: 应用程序中的串行分量 WP:应用程序中可并行分量
串行分量比例( f = WS/W) 并行分量比例(1-f = WP/W) S:加速比
53
1.3 定量分析技术 加速比
54
1.3 定量分析技术 例如果想用100个处理器达到80的加速比, 求原计算程序中串行部分所占比例。 解 Amdahl定律为
得出:f=0.0025 可以看出要用100个处理器达到80的加速比,串行计算的部分只能占0.25%。
55
1.3 定量分析技术 例 如果一个程序中80%的部分能完全并行化,剩下20%串行执行,问用100个处理器能达到多少加速比? 忽略所有因并行产生的额外开销。 解 Amdahl定律为 这时用 100 个处理器只能达到 4.8 倍的加速比
56
1.3 定量分析技术 例 当处理器数目p =1024,加速比公式如下:
57
1.3 定量分析技术 Gustafson定律 除非特定研究,在实际应用中没有必要固定工作负载而让计算程序运行在不同数目的处理器上,增多处理器必须相应地增大问题规模才有实际意义 对大多数问题,问题规模的改变只会改变计算中并行计算量,而不会改变串行计算量
58
1.3 定量分析技术 并行计算是为了解决大规模计算问题,可并行部分的比例是可扩大的 加速比与处理器数成斜率为(1-f)的线性关系
59
1.3 定量分析技术 1.3.2 计算机系统的性能评测 评测的性能指标:执行时间和吞吐率 采用什么性能指标,与测试者看问题的角度有关。
一般用户: 单个程序的执行时间(执行 单个 程序所花的时间) 数据处理中心的管理员:吞吐率(在单位时间里能够 完成的任务 )
60
1.3 定量分析技术 执行时间可以有多种定义: 计算机完成某一任务所花费的全部时间: 包括磁盘访问、存储器访问、输入/输出、操作系统开销等。
CPU时间:CPU执行所给定的程序所花费的时间,不包含I/O等待时间以及运行其他程序的时间。 用户CPU时间:用户程序所耗费的CPU时间。 系统CPU时间:用户程序运行期间操作系统耗费的CPU时间。
61
1.3 定量分析技术 假设两台计算机为X和Y,X比Y快的意思是: 对于给定任务,X的执行时间比Y的执行时间少。 X的性能是Y的n倍,即
而执行时间与性能成反比,即 执行时间Y =n 执行时间X 1 执行时间Y 性能Y 性能X n= = = 执行时间X 1 性能Y 性能X
62
1.3 定量分析技术 通用评测方法: (1) 采用基于测试的方法,如以测试程序的执行时间为度量;
(2) 采用基于分析的方法,如通过对主频、CPI 、各类指令的计数等的分析来获得 。
63
1.3 定量分析技术 2 .基准测试程序 1.目前常用的测试程序可以分为四类: (按测试可靠性由高至低的顺序列出) (1) 真实程序
(2) 核心程序 (3) 小测试程序 (4) 合成测试程序
64
1.5 定量分析技术基础 2. 测试程序组件 选择一组各个方面有代表性的测试程序, 组成一个通用测试程序集合。 最大优点:
1.5 定量分析技术基础 2. 测试程序组件 选择一组各个方面有代表性的测试程序, 组成一个通用测试程序集合。 最大优点: 避免了独立测试程序存在的片面性,尽可能全面地测试了一个计算机系统的性能。 基本测试程序 SPEC 科学与工程计算性能 LINPACK
65
1.5 定量分析技术基础 台式计算机的基准测试程序套件可以分为两大类: 处理器性能测试程序 图形性能测试程序
1.5 定量分析技术基础 台式计算机的基准测试程序套件可以分为两大类: 处理器性能测试程序 图形性能测试程序 SPEC89:用于测试处理器性能。10个程序(4个整数程序,6个浮点程序) 演化出了4个版本 SPEC92: 个程序 SPEC95: 个程序 SPEC2000: 个程序 SPEC CPU2006: 29个程序
66
1.5 定量分析技术基础 SPEC CPU2006 整数程序12个(CINT2006) 9个是用C写的,3个是用C++写的 浮点程序17个(CFP2006) 6个是用FORTRAN写的,4个是用C++写的,3个是用C写的,4个是用C和FORTRAN混合编写的。 为真正的程序经过精简并最小化I/O活动而形成,
67
1.5 定量分析技术基础 针对桌面计算机图形系统支持OpenGL库的性能: SPECviewperf 针对桌面计算机图形密集型应用的性能:
1.5 定量分析技术基础 针对桌面计算机图形系统支持OpenGL库的性能: SPECviewperf 针对桌面计算机图形密集型应用的性能: SPECapc 针对文件服务器性能: SPECSFS 针对网络文件服务器性能: SPECWeb 针对事务处理领域: TPC测试程序组件(主要测试事务处理的吞吐能力)
68
1.5 定量分析技术基础 基于Windows的PC机方面: PCMark04 包括中央处理器测试组、内存测试组、图
1.5 定量分析技术基础 基于Windows的PC机方面: PCMark04 包括中央处理器测试组、内存测试组、图 形芯片测试组、硬盘测试组等; Business Winstone 2004 主要用于测试计算机系统商业应用的综合 性能; Multimedia Content Creation Winstone 2004 主要用于测试计算机系统多媒体应用的综合性能;
69
1.5 定量分析技术基础 对高性能计算机: 机器的理论峰值速度 用户能得到的实际速度 加速比、效率 可扩展性:
1.5 定量分析技术基础 对高性能计算机: 机器的理论峰值速度 用户能得到的实际速度 加速比、效率 可扩展性: 随着计算负载的增加和机器规模的扩大,计算系统的性能是否随着处理器的数目的增加而按比例的增加
70
1.5 定量分析技术基础 系统评估: 单位时间内能完成的工作量 工作量: 执行的指令数 :计算单位为百万条
1.5 定量分析技术基础 系统评估: 单位时间内能完成的工作量 工作量: 执行的指令数 :计算单位为百万条 每秒执行多少百万条指令 (MIPS) 完成的浮点运算数 :计算单位为百万次 每秒执行多少百万次浮点运算 (MFLOPS) GFLOPS(10亿), TFLOPS(万亿), PFLOPS(千万亿)
71
1.3 定量分析技术 性能比较 两个程序在A、B、C三台计算机上的执行时间 A机 B机 C机 W(1) W(2) W(3) 程序1 1.00
10.00 20.00 0.50 0.909 0.999 程序2 0.091 0.001 加权算术 平均值Am(1) 500.50 平均值Am(2) 91.91 平均值Am(3) 2.00
72
1.3 定量分析技术 平均执行时间:各测试程序执行时间的算术平均值 其中,Ti:第i个测试程序的执行时间 n:测试程序组中程序的个数
73
1.3 定量分析技术 加权执行时间:各测试程序执行时间的加权平均值 其中,Wi:第i个测试程序在测试程序组中所占的比重
Ti:该程序的执行时间
74
1.4 计算机体系结构的发展 1.4.1 冯·诺依曼结构
75
1.4 计算机体系结构的发展 存储程序原理的基本点:指令驱动
1.4 计算机体系结构的发展 存储程序原理的基本点:指令驱动 程序预先存放在计算机存储器中,计算机一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。
76
1.4 计算机体系结构的发展 1. 冯·诺依曼结构的主要特点 以运算器为中心。 在存储器中,指令和数据同等对待。
1.4 计算机体系结构的发展 1. 冯·诺依曼结构的主要特点 以运算器为中心。 在存储器中,指令和数据同等对待。 指令和数据一样可以进行运算,即由指令组成的程序是可以修改的。 存储器是按地址访问、按顺序线性编址的一维结构,每个单元的位数是固定的。
77
1.4 计算机体系结构的发展 指令的执行是顺序的。 一般是按照指令在存储器中存放的顺序执行; 程序的分支由转移指令实现;
1.4 计算机体系结构的发展 指令的执行是顺序的。 一般是按照指令在存储器中存放的顺序执行; 程序的分支由转移指令实现; 由指令计数器 PC 指明当前正在执行的指令在存储器中的地址; 指令由操作码和地址码组成。 指令和数据均以二进制编码表示,采用二进制运算。
78
1.4 计算机体系结构的发展 2. 对体系结构进行的改进 (1) 对输入输出方式的改进 以运算器为中心带来了慢速输入/输
1.4 计算机体系结构的发展 2. 对体系结构进行的改进 (1) 对输入输出方式的改进 以运算器为中心带来了慢速输入/输 出操作占用快速运算器的问题。
79
1.4 计算机体系结构的发展
80
1.4 计算机体系结构的发展 (2) 采用并行处理技术 如何挖掘传统机器中的并行性? 在不同的级别采用并行技术。
1.4 计算机体系结构的发展 (2) 采用并行处理技术 如何挖掘传统机器中的并行性? 在不同的级别采用并行技术。 例如,微操作级、指令级、线程级、进程级、任务级等。
81
1.4 计算机体系结构的发展 (3) 存储器组织结构的发展 通用寄存器:提高运行速度
1.4 计算机体系结构的发展 (3) 存储器组织结构的发展 通用寄存器:提高运行速度 高速缓冲存储器和多级存储器组织结构:提高运行速度并降低成本 堆栈的引入:支持高级语言过程调用、递归机制以及表达式计算 虚拟存储器:方便高级语言编程 相联存储器:支持内容查找
82
1.4 计算机体系结构的发展 (4) 指令集的发展 指令集的功能 : 复杂指令集计算机(CISC) 精简指令集计算机(RISC)
1.4 计算机体系结构的发展 (4) 指令集的发展 指令集的功能 : 复杂指令集计算机(CISC) 精简指令集计算机(RISC) (5) 指令的寻址方式 多种灵活的寻址方式。
83
1.4 计算机体系结构的发展 1.4.2 软件对系统结构的影响
1.4 计算机体系结构的发展 1.4.2 软件对系统结构的影响 软件的可移植性:一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上正确地运行。差别只是执行时间的不同。 我们称这两台计算机是软件兼容的。 实现可移植性的常用方法 采用系列机,模拟与仿真,统一高级语 言 。
84
1.4 计算机体系结构的发展 1. 系列机 由同一厂家生产的具有相同的系统结构,但具有不同组成和实现的一系列不同型号的机器。
1.4 计算机体系结构的发展 1. 系列机 由同一厂家生产的具有相同的系统结构,但具有不同组成和实现的一系列不同型号的机器。 较好地解决软件开发要求系统结构相对稳定与器件、硬件技术迅速发展的矛盾。
85
1.4 计算机体系结构的发展 系列机的软件兼容 向上(下)兼容:按某档机器编制的程序,不加修改就能运行于比它高(低)档的机器。
1.4 计算机体系结构的发展 系列机的软件兼容 向上(下)兼容:按某档机器编制的程序,不加修改就能运行于比它高(低)档的机器。 向前(后)兼容:按某个时期投入市场的某种型号机器编制的程序,不加修改地就能运行于在它之前(后)投入市场的机器。 向后兼容是系列机的根本特征。 兼容机:由不同公司厂家生产的具有相同系统结构 的计算机 。
86
1.4 计算机体系结构的发展 2. 模拟和仿真 使软件能在具有不同系统结构的机器之间相互移植。 在一种系统结构上实现另一种系统结构;
1.4 计算机体系结构的发展 2. 模拟和仿真 使软件能在具有不同系统结构的机器之间相互移植。 在一种系统结构上实现另一种系统结构; 从指令集的角度来看,就是要在一种机器上实现另一种机器的指令集。 模拟:用软件的方法在一台现有的机器(称为宿主机)上实现另一台机器(称为虚拟机)的指令集。 通常用解释的方法来实现。 运行速度较慢,性能较差。
87
1.4 计算机体系结构的发展 仿真:用一台现有机器(宿主机)上的微程序去解释实现另一台机器(目标机)的指令集。 运行速度比模拟方法的快
1.4 计算机体系结构的发展 仿真:用一台现有机器(宿主机)上的微程序去解释实现另一台机器(目标机)的指令集。 运行速度比模拟方法的快 仿真只能在系统结构差距不大的机器之间使用 3. 统一高级语言 实现软件移植的一种理想的方法 较难实现
88
1.4 计算机体系结构的发展 1.4.3 器件发展对系统结构的影响 逻辑电路 单芯片上的晶体管数量每年60%80%
1.4 计算机体系结构的发展 1.4.3 器件发展对系统结构的影响 逻辑电路 单芯片上的晶体管数量每年60%80% 速度的不断提高(主频的提高, GHz 以上) 64位- 128位机器成为可能 门级 — 寄存器级— 部件级— 系统级均在一个VLSI芯片中实现 使物理实现、逻辑组成和体系结构之间的差别模糊化, 使软件、硬件之间的差别模糊化(如FPGA器件) 。
89
1.4 计算机体系结构的发展 摩尔定律 集成电路芯片上所集成的晶体管数目每隔18个月就翻一番。 计算机的分代主要以器件作为划分标准。
1.4 计算机体系结构的发展 摩尔定律 集成电路芯片上所集成的晶体管数目每隔18个月就翻一番。 计算机的分代主要以器件作为划分标准。 它们在器件、系统结构和软件技术等方面都有各自的特征。
90
Cray-1,IBM 3090,DEC VAX 9000,Convax-1
分代 器件特征 结构特征 软件特征 典型实例 第一代 (1945—1954年) 电子管和继电器 存储程序计算机 程序控制I/O 机器语言 汇编语言 普林斯顿ISA, ENIAC,IBM 701 第二代 (1955—1964年) 晶体管、磁芯 印刷电路 浮点数据表示 寻址技术 中断、I/O处理机 高级语言和编译 批处理监控系统 Univac LAPC, CDC 1604, IBM 7030 第三代 (1965—1974年) SSI和MSI 多层印刷电路 微程序 流水线、Cache 先行处理 系列机 多道程序 分时操作系统 IBM 360/370, CDC 6600/7600, DEC PDP-8 第四代 (1975—1990年) LSI和VLSI 半导体存储器 向量处理 分布式存储器 并行与分布处理 Cray-1,IBM 3090,DEC VAX 9000,Convax-1 第五代 (1991年—) 高性能微处理器高密度电路 超标量、超流水 SMP、MP、MPP 机群 大规模、可扩展 SGI Cray T3E, IBM SP2,DEC AlphaServer 8400
91
1.4 计算机体系结构的发展 1.4.4 应用对系统结构的影响 不同的应用对计算机系统结构的设计提出了不同的要求, 通用:性能价格比
1.4 计算机体系结构的发展 1.4.4 应用对系统结构的影响 不同的应用对计算机系统结构的设计提出了不同的要求, 通用:性能价格比 专用:需要对某一方面性能特别支持的系统结构 高结构化的数值计算 气象模型、流体动力学、有限元分析 非结构化的数值计算 蒙特卡洛模拟、稀疏矩阵 实时多因素问题 语音识别、图像处理、计算机视觉
92
1.4 计算机体系结构的发展 大存储容量和输入输出密集的问题数据库系统、事务处理系统 图形学和设计问题 计算机辅助设计 人工智能
1.4 计算机体系结构的发展 大存储容量和输入输出密集的问题数据库系统、事务处理系统 图形学和设计问题 计算机辅助设计 人工智能 面向知识的系统、推理系统等
93
1.4 计算机体系结构的发展 目前的主流分类: 服务器 桌面系统 嵌入式计算
94
1.4 计算机体系结构的发展 应用需求的分化 桌面计算: 性能价格比,对图形的支持; 服务器: 可用性,可扩展性,高性能
1.4 计算机体系结构的发展 应用需求的分化 桌面计算: 性能价格比,对图形的支持; 服务器: 可用性,可扩展性,高性能 嵌入式计算:成本,功耗,实时性 基本发展规律:计算机性能随时间下移
95
1.4 计算机体系结构的发展 1.4.5 系统结构的生命周期 诞生、发展、成熟、消亡: 从硬件成熟到系统软件成熟大约需要5~7年的时间;
1.4 计算机体系结构的发展 1.4.5 系统结构的生命周期 诞生、发展、成熟、消亡: 从硬件成熟到系统软件成熟大约需要5~7年的时间; 从系统软件成熟到应用软件成熟,大约也需要5~7年时间; 再过5~7年的时间,这种系统结构就不会作为主流系统结构存在了。
96
1.4 计算机体系结构的发展 Intel的x86系列微处理器中32位系统结构的发展
97
1.5 计算机体系结构中并行性的发展 1.5.1 并行性的概念 并行性:计算机系统在同一时刻或者同一时间间隔 内进行多种运算或操作。
1.5 计算机体系结构中并行性的发展 1.5.1 并行性的概念 并行性:计算机系统在同一时刻或者同一时间间隔 内进行多种运算或操作。 只要在时间上相互重叠,就存在并行性。 同时性:两个或两个以上的事件在同一时刻发生。 并发性:两个或两个以上的事件在同一时间间隔内发生。
98
1.5 计算机体系结构中并行性的发展 计算机中并行性分两类: 数据并行 (如:多个数据同时被处理) 控制并行 (如:多条指令同时被执行)
99
1.5 计算机体系结构中并行性的发展 数据并行,并行性等级从低到高可分为: 字串位串 字串位并 字并位串 全并行
100
1.5 计算机体系结构中并行性的发展 字串位串:每次只对一个字的一位进行处理。 最基本的串行处理方式。 不存在并行性。
1.5 计算机体系结构中并行性的发展 字串位串:每次只对一个字的一位进行处理。 最基本的串行处理方式。 不存在并行性。 字串位并:同时对一个字的全部位进行处理,不 同字之间是串行的。 开始出现并行性。 字并位串: 同时对许多字的同一位(称为位片) 进行处理。 具有较高的并行性。 全并行: 同时对许多字的全部位或部分位进行处 理。 最高一级的并行。
101
1.5 计算机体系结构中并行性的发展 控制并行,并行性等级从低到高可分为: 指令内部并行 指令级并行 线程级并行 任务级或过程级并行
1.5 计算机体系结构中并行性的发展 控制并行,并行性等级从低到高可分为: 指令内部并行 指令级并行 线程级并行 任务级或过程级并行 作业或程序级并行
102
1.5 计算机体系结构中并行性的发展 指令内部并行:单条指令中各微操作之间的并行。 指令级并行: 并行执行两条或两条以上的指令。
1.5 计算机体系结构中并行性的发展 指令内部并行:单条指令中各微操作之间的并行。 指令级并行: 并行执行两条或两条以上的指令。 线程级并行: 并行执行两个或两个以上的线程。 通常是以一个进程内派生的多个 线程为调度单位。 任务级或过程级并行: 并行执行两个或两个以上的过程 或任务(程序段),以子程序或 进程为调度单元。 作业或程序级并行: 并行执行两个或两个以上的作业 或程序。
103
1.5 计算机体系结构中并行性的发展 1.5.2 提高并行性的技术途径 1. 三种途径 (1) 时间重叠
1.5 计算机体系结构中并行性的发展 1.5.2 提高并行性的技术途径 1. 三种途径 (1) 时间重叠 多个处理过程在时间上相互错开,轮流重迭地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。 (2) 资源重复 根据“以数量取胜”的原则,通过重复地设置资源,尤其是硬件资源,以大幅度提高计算机系统的性能。
104
1.5 计算机体系结构中并行性的发展 (3) 资源共享 这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。
1.5 计算机体系结构中并行性的发展 (3) 资源共享 这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。 目的:一般为提高资源利用率而非性能。
105
1.5 计算机体系结构中并行性的发展 2. 单机系统中并行性的发展
1.5 计算机体系结构中并行性的发展 2. 单机系统中并行性的发展 1) 时间重叠:在发展高性能单处理机过程中起着主导作用,其实现基础为部件功能专用化。 把一件工作按功能分割为若干相互联系的部分; 把每一部分指定给专门的部件完成; 然后按时间重叠原则把各部分执行过程在时间 上重叠起来,使所有部件依次分工完成一组同样 的工作。
106
例如 对于解释指令的五个过程,就分别需要五个专用的部件,即取指令部件(IF)、指令译码部件(ID)、指令执行部件(EX)、访问存储器部件(M)和写结果部件(WB)。
107
1.5 计算机体系结构中并行性的发展 2) 资源重复:在单处理机中运用也已经十分普遍。 多体存储器 多操作部件
1.5 计算机体系结构中并行性的发展 2) 资源重复:在单处理机中运用也已经十分普遍。 多体存储器 多操作部件 通用部件被分解成若干个专用部件,如加法部件、乘法部件、除法部件、逻辑运算部件等,而且同一种部件也可以重复设置多个; 只要指令所需的操作部件空闲,就可以开始执行这条指令(如果操作数已准备好的话)。 实现了指令级并行。
108
1.5 计算机体系结构中并行性的发展 阵列处理机(并行处理机)
1.5 计算机体系结构中并行性的发展 阵列处理机(并行处理机) 设置许多相同的处理单元,让它们在同一个控制器的指挥下,按照同一条指令的要求,对向量或数组的各元素同时进 行同一操作,就形成了阵列处理机。
109
1.5 计算机体系结构中并行性的发展 3)资源共享:分时系统 在单处理机上模拟多个 独立系统的功能,形成所谓虚拟机的概 念。
110
1.5 计算机体系结构中并行性的发展 1.5.4 多机系统中并行性的发展
1.5 计算机体系结构中并行性的发展 1.5.4 多机系统中并行性的发展 多机系统遵循时间重叠、资源重复、资源共享原理,发展为3种不同的多处理机: 同构型多处理机 异构型多处理机 分布式系统
111
1.5 计算机体系结构中并行性的发展 耦合度: 反映多机系统中各机器之间物理连接的紧密程度和交互作用能力的强弱。
1.5 计算机体系结构中并行性的发展 耦合度: 反映多机系统中各机器之间物理连接的紧密程度和交互作用能力的强弱。 紧密耦合系统(直接耦合系统):在这种系统中,计算机之间的物理连接的频带较高,一般是通过总线或高速开关互连,可以共享主存。 表现形式: 高可靠系统 高性能系统
112
1.6 计算机体系结构中并行性的发展 松散耦合系统(间接耦合系统):一般是通过通道或通信线路实现计算机之间的互连,可以共享外存设备(磁盘、磁带等)。机器之间的相互作用是在文件或数据集一级上进行的。 表现形式: 多台计算机和共享的外存设备连接,不同机器之间实现功能上的分工(功能专用化),机器处理的结果以文件或数据集的形式送到共享外存设备,供其他机器继续处理。 计算机网络,通过通信线路连接,实现更大范围的资源共享。
113
1.6 计算机体系结构中并行性的发展 三种途径 (1) 时间重叠 专用外围处理机(松散耦合系统 ) 高级语言编译处理机、数据库处理机
1.6 计算机体系结构中并行性的发展 三种途径 (1) 时间重叠 专用外围处理机(松散耦合系统 ) 高级语言编译处理机、数据库处理机 异构型多处理机系统 (2) 资源重复 容错多处理机 ( 紧密耦合系统 ) 同构型多处理机系统
114
1.6 计算机体系结构中并行性的发展 (3) 资源共享 局部计算机网(松散耦合系统) 分布处理系统
1.6 计算机体系结构中并行性的发展 (3) 资源共享 局部计算机网(松散耦合系统) 分布处理系统 把若干个具有独立功能的处理机(或计算机)相互连接起来,在操作系统全盘控制下,统一协调地工作,而最少依赖集中的程序、数据或硬件。
115
一个作业由一台处理机完成,必要时才请求它机协作
三种类型多处理机比较 项目 同构型多处理机 异构型多处理机 分布处理系统 目的 提高系统性能 (可靠性、速度) 提高系统使用效率 兼顾效率与性能 技术 途径 资源重复 时间重迭 (功能专用化) 资源共享 (网络化) 组成 同类型 (同等功能) 不同类型 (不同功能) 不限制 分工方式 任务分布 功能分布 硬件、软件、数据 等各种资源分布 工作方式 一个作业由多机 协同并行地完成 一个作业由多机 协同串行地完成 一个作业由一台处理机完成,必要时才请求它机协作 控制形式 常采用浮动控制方式 采用专用控制方式 分布控制方式 耦合度 紧密耦合 紧密、松散耦合 松散、紧密耦合 对互连网络的要求 快速性、灵活性、可重构性 专用性 快速、灵活、简单、通用
Similar presentations