1、第一章第一章计算机体系结构的基本概念计算机体系结构的基本概念1.第一台通用电子计算机诞生于第一台通用电子计算机诞生于1946年年 18000个电子真空管个电子真空管 33万亿个晶体管万亿个晶体管 (18亿倍亿倍)800字节存储容量字节存储容量 4万亿字节万亿字节 (50亿倍亿倍)运算速度运算速度5000次次/秒秒 12.5万亿次万亿次/秒秒 (25亿倍亿倍)2.经历了经历了4个发展过程个发展过程 1.1 1.1 引论引论1.1 1.1 引论引论时时 间间原原 因因每年的性能每年的性能增长增长1946年起的年起的25年年 制造技术和体系结构的发制造技术和体系结构的发展展 25%20世纪世纪70年
2、代年代末末80年代初年代初 大规模集成电路和微处理大规模集成电路和微处理器出现器出现,以集成电路为代表以集成电路为代表的制造技术的发展的制造技术的发展 约约35%20世纪世纪80年代年代中开始中开始 RISC结构的出现,系统结结构的出现,系统结构不断更新和变革,制造构不断更新和变革,制造技术不断发展技术不断发展50%以上以上维持了约维持了约16年年 2002年以来年以来 更大规模集成电路技术的更大规模集成电路技术的发展为体系结构的发展尤发展为体系结构的发展尤其是并行化技术的发展提其是并行化技术的发展提供了空间供了空间约约20%4推动性能提高的主要因素:推动性能提高的主要因素:1)更高的主频更高
3、的主频 器件工艺的进步器件工艺的进步(Natural frequency growth)更深的流水线更深的流水线2)开发各个层次的并行性开发各个层次的并行性 指令级并行性指令级并行性 线程线程/进程级并行性进程级并行性 数据级并行性数据级并行性3)减少内存延迟减少内存延迟 大容量、高性能的片上多级大容量、高性能的片上多级Cache 及更成熟的先行控制、指令预取等技术及更成熟的先行控制、指令预取等技术指令的深度流水线指令的深度流水线乱序执行乱序执行超标量处理机超标量处理机分支预测及前瞻执行分支预测及前瞻执行1.1 1.1 引论引论 计算机技术的飞速发展得益于计算机技术的飞速发展得益于:计算机制造
4、技术的发展计算机制造技术的发展 计算机系统结构的创新计算机系统结构的创新1.1 1.1 引论引论进一步发展面临的问题进一步发展面临的问题 主频主频指令级并行性指令级并行性 内存访问速度的内存访问速度的功耗问题功耗问题1.1 1.1 引论引论7微处理机的发展轨迹遵从摩尔定理:微处理机的发展轨迹遵从摩尔定理:Moores law:The number of transistors that can be placed inexpensively on an integrated circuit doubles approximately every two years.This trend has
5、 continued for more than half a century and is expected to continue until at least 2015 or 20201.1 1.1 引论引论8晶体管尺寸的减小晶体管尺寸的减小速度的提高速度的提高连线尺寸的缩小连线尺寸的缩小传输距离传输距离缩小缩小更少的电更少的电荷能驱动荷能驱动从性能的角度来看:从性能的角度来看:.1.1 1.1 引论引论9摩尔定律有三种解释摩尔定律有三种解释:一种是集成电路芯片上所集成的电路的数目,每一种是集成电路芯片上所集成的电路的数目,每隔隔18个月就翻一番;个月就翻一番;第二种是微处理器的性能每隔
6、第二种是微处理器的性能每隔18个月提高一倍,个月提高一倍,而价格下降一半;而价格下降一半;第三种解释是用一个美元所能买到的电脑性能,第三种解释是用一个美元所能买到的电脑性能,每隔每隔18个月翻两番。个月翻两番。1.1 1.1 引论引论101)功耗问题功耗问题:晶体管尺寸的减小晶体管尺寸的减小速度的提高速度的提高数量的增加数量的增加电压的降低电压的降低线间距的缩小线间距的缩小功耗增加功耗增加功耗降低功耗降低连线尺寸的缩小连线尺寸的缩小电阻的增加电阻的增加功耗增加功耗增加漏电流的增加漏电流的增加可靠性下降可靠性下降功耗增加功耗增加功耗增加,功耗增加,Pentium 4 达到达到100w,平均平均0
7、.5w/mm2功耗增加功耗增加1.1 1.1 引论引论11Max Power(Watts)i386 i486 Pentium Pentium w/MMX tech.1101001.5m1.5m1m1m0.8m0.8m0.6m0.6m0.35m0.35m0.25m0.25m0.18m0.18m0.13m0.13m Pentium Pro Pentium II Pentium III 1.1 1.1 引论引论12应用中可利用的应用中可利用的ILP在在4 10 之间之间,目目前可达到的前可达到的ILP在在4 8 之间之间 进一步发展的空间并不是很大进一步发展的空间并不是很大1)2)实现过于复杂可能反
8、而造成性能下降实现过于复杂可能反而造成性能下降2)ILP(指令级并行指令级并行)问题问题:1.1 1.1 引论引论1.1 1.1 引论引论包含上亿个晶体管包含上亿个晶体管芯片复杂性芯片复杂性的不断提高的不断提高正确性验证非常困难正确性验证非常困难+体系结构的不断复杂化体系结构的不断复杂化研发、生产的成本不断提高研发、生产的成本不断提高3)复杂性问题复杂性问题:14 主频:主频:不可能无限提高不可能无限提高 散热:散热:主频每增加主频每增加1G,功耗将上升,功耗将上升25瓦,而在芯瓦,而在芯片功耗超过片功耗超过150瓦后,现有的风冷散热系统将无法满瓦后,现有的风冷散热系统将无法满足散热的需要足散
9、热的需要 复杂度复杂度:英特尔的奔腾:英特尔的奔腾(Pentium)四至尊版四至尊版840处理处理器,晶体管数量已经增加至器,晶体管数量已经增加至2.5亿个亿个 有效性:有效性:不到不到6%的晶体管用于计算的晶体管用于计算 1.2.1 计算机系统中的层次概念计算机系统中的层次概念1.计算机系统是计算机系统是软件硬件软件硬件/固件固件2.计算机语言由低级向高级发展。计算机语言由低级向高级发展。高一级语言的语句相对于低级语言功高一级语言的语句相对于低级语言功能更强,更便于应用,但又都以低级语言能更强,更便于应用,但又都以低级语言为基础。为基础。3.从计算机语言的角度,把计算机系统按功从计算机语言的
10、角度,把计算机系统按功能划分成能划分成多级层次结构多级层次结构。1.2 1.2 计算机体系结构的概念计算机体系结构的概念 第第 6 级级:应应 用用 语语 言言 虚虚 拟拟 机机 第第 5 级级:高高 级级 语语 言言 虚虚 拟拟 机机 第第 4 级级:汇汇 编编 语语 言言 虚虚 拟拟 机机 第第 3 3 级级:操操 作作 系系 统统 虚虚 拟拟 机机 第第 2 2 级级:机机 器器 语语 言言(传传 统统 机机 器器 级级)第第 1 1 级级:微微 程程 序序 机机 器器 级级 1.2 1.2 计算机体系结构的概念计算机体系结构的概念(1)虚拟机:虚拟机:由软件实现的机器由软件实现的机器。
11、(2)语言实现的两种基本技术语言实现的两种基本技术 翻译:翻译:先把先把N+1级程序全部变换成级程序全部变换成N级程序后,级程序后,再去执行新产生的再去执行新产生的N级程序,在执行过程中级程序,在执行过程中N+1 级程序不再被访问。级程序不再被访问。解释:解释:每当一条每当一条N+1级指令被译码后,就直接级指令被译码后,就直接 去执行一串等效的去执行一串等效的N级指令,然后再去取下一级指令,然后再去取下一 条条N+1级的指令,依此重复进行。级的指令,依此重复进行。解释执行比翻译花的时间多,但存储空间占用较少。解释执行比翻译花的时间多,但存储空间占用较少。1.2 1.2 计算机体系结构的概念计算
12、机体系结构的概念1.2.2 计算机体系结构的定义计算机体系结构的定义1.计算机体系结构:计算机体系结构:程序员所看到的计算机的属性,程序员所看到的计算机的属性,即即概念性结构概念性结构与与功能特性功能特性。2.按照计算机系统的多级层次结构,不同级程序按照计算机系统的多级层次结构,不同级程序 员所看到的计算机具有不同的属性。员所看到的计算机具有不同的属性。如低级语言程序员所看到的许多计算属性对高级语如低级语言程序员所看到的许多计算属性对高级语 言程序员透明言程序员透明透明性:透明性:在计算机技术中,对这种本来是存在的事物在计算机技术中,对这种本来是存在的事物或属性,但从某种角度看又好象不存在。或
13、属性,但从某种角度看又好象不存在。1.2 1.2 计算机体系结构的概念计算机体系结构的概念3.Amdahl 提出的体系结构:提出的体系结构:传统机器级的体系结构传统机器级的体系结构 即一般所说的机器语言程序员所看到的传统机器级即一般所说的机器语言程序员所看到的传统机器级所具有的属性。所具有的属性。5.对于通用寄存器型机器,这些属性主要是指:对于通用寄存器型机器,这些属性主要是指:指令系统指令系统 包括机器指令的操作类型和格式、指令间的包括机器指令的操作类型和格式、指令间的排序和控制机构等。排序和控制机构等。数据表示数据表示 硬件能直接识别和处理的数据类型。硬件能直接识别和处理的数据类型。寻址规
14、则寻址规则 包括最小寻址单元、寻址方式及其表示。包括最小寻址单元、寻址方式及其表示。1.2 1.2 计算机体系结构的概念计算机体系结构的概念 寄存器定义寄存器定义(包括各种寄存器的定义、数量和使用方式)(包括各种寄存器的定义、数量和使用方式)中断系统中断系统(中断的类型和中断响应硬件的功能等)(中断的类型和中断响应硬件的功能等)机器工作状态的定义和切换机器工作状态的定义和切换(如管态和目态等)(如管态和目态等)存储系统存储系统(主存容量、程序员可用的最大存储容量等)(主存容量、程序员可用的最大存储容量等)信息保护信息保护(包括信息保护方式和硬件对信息保护的支(包括信息保护方式和硬件对信息保护的
15、支持)持)1.2 1.2 计算机体系结构的概念计算机体系结构的概念 I/O结构结构包括包括I/O连结方式、处理机连结方式、处理机/存储器与存储器与I/O设备之设备之间数据传送的方式和格式以及间数据传送的方式和格式以及I/O操作的状态等操作的状态等经典计算机体系结构概念的实质:经典计算机体系结构概念的实质:计算机系统中软硬件界面的确定,其界面之上计算机系统中软硬件界面的确定,其界面之上的是软件的功能,界面之下的是硬件和固件的功能。的是软件的功能,界面之下的是硬件和固件的功能。1.2 1.2 计算机体系结构的概念计算机体系结构的概念1.2.3 计算机组成和计算机实现技术计算机组成和计算机实现技术1
16、.计算机组成:计算机组成:计算机体系结构的逻辑实现。计算机体系结构的逻辑实现。2.计算机实现:计算机实现:计算机组成的物理实现。计算机组成的物理实现。计算机组成包括的内容可以有:计算机组成包括的内容可以有:处理机、主存等部件的逻辑结构,机器级内数据流和处理机、主存等部件的逻辑结构,机器级内数据流和控制流的组成、各部件的功能以及之间的联系等控制流的组成、各部件的功能以及之间的联系等。计算机实现包括的内容可以有:计算机实现包括的内容可以有:处理机、主存等部件的物理结构,包括器件的集成度处理机、主存等部件的物理结构,包括器件的集成度和速度的确定,器件、模块、插件、底板的划分与连和速度的确定,器件、模
17、块、插件、底板的划分与连接,组装装配技术及信号连接、电源、冷却方法等。接,组装装配技术及信号连接、电源、冷却方法等。1.2 1.2 计算机体系结构的概念计算机体系结构的概念体系结构与组成、实现之间的关系为:体系结构与组成、实现之间的关系为:体系结构是组成的抽象,组成是实现的抽象体系结构是组成的抽象,组成是实现的抽象一种体系结构可以有多种组成。一种体系结构可以有多种组成。一种组成可以有多种物理实现。一种组成可以有多种物理实现。广义的计算机体系结构概念包括体系结构的外部特性广义的计算机体系结构概念包括体系结构的外部特性和内部特性:和内部特性:1)计算机体系结构外部特性计算机体系结构外部特性-计算机
18、体系结构的经典计算机体系结构的经典定义定义2)计算机体系结构内部特性计算机体系结构内部特性-计算机组成与实现中一计算机组成与实现中一些比较抽象的内容些比较抽象的内容(微体系结构)(微体系结构)1.2 1.2 计算机体系结构的概念计算机体系结构的概念系列机系列机在一个厂家内生产的具有相同的体系结构在一个厂家内生产的具有相同的体系结构(经典定经典定义义),但具有不同组成和实现的一系列不同型号的机,但具有不同组成和实现的一系列不同型号的机器。器。如如 IBM 370系列有系列有370/115、125、135、145、158、168等一系列从低速到高速的各种型号等一系列从低速到高速的各种型号。相同点:
19、相同点:程序员所看到的概念性结构和功能属性程序员所看到的概念性结构和功能属性 指令系统一致指令系统一致不同点:不同点:组成和实现技术组成和实现技术 速度特性不一样速度特性不一样 1.2 1.2 计算机体系结构的概念计算机体系结构的概念1.2 1.2 计算机体系结构的概念计算机体系结构的概念1.2.4 计算机系统结构的分类计算机系统结构的分类常见的计算机系统结构分类法有两种:常见的计算机系统结构分类法有两种:Flynn分类法、冯氏分类法分类法、冯氏分类法1.2 1.2 计算机体系结构的概念计算机体系结构的概念冯氏分类法冯氏分类法用系统的最大并行度对计算机进行分类。用系统的最大并行度对计算机进行分
20、类。最大并行度:最大并行度:计算机系统在单位时间内能够处理计算机系统在单位时间内能够处理的最大的二进制位数。的最大的二进制位数。用平面直角坐标系中的一个点代表一个计算用平面直角坐标系中的一个点代表一个计算机系统,其横坐标表示字宽(机系统,其横坐标表示字宽(n位位),纵坐标),纵坐标表示一次能同时处理的字数(表示一次能同时处理的字数(m字字)。)。mn就表示了其最大并行度。就表示了其最大并行度。Flynn分类法分类法 按照指令流和数据流的多倍性进行分类。按照指令流和数据流的多倍性进行分类。指令流:指令流:计算机执行的指令序列。计算机执行的指令序列。1.2 1.2 计算机体系结构的概念计算机体系结
21、构的概念数据流:数据流:由指令流调用的数据序列。由指令流调用的数据序列。多倍性:多倍性:在系统受限的部件上,同时处于在系统受限的部件上,同时处于同一执行阶段的指令或数据的最大数目。同一执行阶段的指令或数据的最大数目。Flynn分类法把计算机系统的结构分为分类法把计算机系统的结构分为4类:类:单指令流单数据流单指令流单数据流(SISD)单指令流多数据流单指令流多数据流(SIMD)多指令流单数据流多指令流单数据流(MISD)多指令流多数据流多指令流多数据流(MIMD)4类计算机的基本结构类计算机的基本结构IS:指令流,:指令流,DS:数据流,:数据流,CS:控制流,:控制流,CU:控制部件,:控制
22、部件,PU:处理部件,:处理部件,MM和和SM:存储器。:存储器。CUPUMMISCSPU1PU2PUnPU1PU2PUnCU1CU2CUnCS1CS2CSnPU1PU2PUnCU1CU2CUnCS1CS2CSnMM1MM2MMmDSIS1IS2ISnSMDS(c)MISD 计计算算机机 DS1DS2DSnMM1MM2MMmSMIS1IS2ISn(d)MIMD 计计算算机机(a)SISD 计计算算机机 MM1MM2MMmSMCUDS1DS2DSnIS(b)SIMD 计计算算机机 CSDS1.3 1.3 定量分析技术定量分析技术4个定量原理:个定量原理:以经常性事件为重点以经常性事件为重点对经常
23、发生的情况采用优化方法的原则进对经常发生的情况采用优化方法的原则进行选择,以得到更多的总体上的改进。行选择,以得到更多的总体上的改进。优化优化是指分配更多的资源、达到更高的性是指分配更多的资源、达到更高的性能或者分配更多的电能等。能或者分配更多的电能等。1.3.1 计算机系统设计的定量原理计算机系统设计的定量原理1.3 1.3 定量分析技术定量分析技术Amdahl定律定律 加快某部件执行速度所能获得的系统性加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。中总执行时间的百分比。系统性能加速比:系统性能加速比:加速
24、比加速比系统性能系统性能改进后改进后系统性能系统性能改进前改进前总执行时间总执行时间改进前改进前总执行时间总执行时间改进后改进后 1.3 1.3 定量分析技术定量分析技术加速比依赖于两个因素加速比依赖于两个因素可改进比例:可改进比例:在改进前的系统中,可改进在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的部分的执行时间在总的执行时间中所占的比例。它总是小于等于比例。它总是小于等于1 1。例如:例如:一个需运行一个需运行6060秒的程序中有秒的程序中有2020秒的运算可以加秒的运算可以加速,那么这个比例就是速,那么这个比例就是20/6020/60。部件加速比:部件加速比:可改进部分改
25、进以后性能提可改进部分改进以后性能提高的倍数。它是改进前所需的执行时间与高的倍数。它是改进前所需的执行时间与改进后执行时间的比。一般情况下部件加改进后执行时间的比。一般情况下部件加速比是大于速比是大于 1 1 的。的。例如:例如:若系统改进后,可改进部分的执行时间是若系统改进后,可改进部分的执行时间是2 2秒,秒,而改进前其执行时间为而改进前其执行时间为5 5秒,则部件加速比为秒,则部件加速比为5/25/2。1.3 1.3 定量分析技术定量分析技术改进后程序的总执行时间改进后程序的总执行时间总执行时间总执行时间改进后改进后 不可改进部分的执行时间不可改进部分的执行时间 可改进部分改进后的执行时
26、间可改进部分改进后的执行时间总执行时间总执行时间改进后改进后 (1可改进比例可改进比例)总执行时间总执行时间改进前改进前 +(1 可改进比例可改进比例)+总执行时间总执行时间改进前改进前 可改进比例可改进比例部件加速比部件加速比可改进比例可改进比例总执行时间总执行时间改进前改进前部件加速比部件加速比1.3 1.3 定量分析技术定量分析技术系统加速比系统加速比为改进前与改进后总执行时间之比为改进前与改进后总执行时间之比加速比加速比 总执行时间总执行时间改进前改进前总执行时间总执行时间改进后改进后(1可改进比例)可改进比例)+可改进比例可改进比例部件加速比部件加速比11.3 1.3 定量分析技术定
27、量分析技术 例例1.1 将计算机系统中某一功能的处理速度提高将计算机系统中某一功能的处理速度提高到原来的到原来的20倍,但该功能的处理时间仅占整个系统倍,但该功能的处理时间仅占整个系统运行时间的运行时间的40%,则采用此提高性能的方法后,能,则采用此提高性能的方法后,能使整个系统的性能提高多少?使整个系统的性能提高多少?1.3 1.3 定量分析技术定量分析技术解解 可改进比例可改进比例=40%=0.4,部件加速比部件加速比=20 根据根据Amdahl定律可知:定律可知:采用此提高性能的方法后,能使整个系统的采用此提高性能的方法后,能使整个系统的性能提高到原来的性能提高到原来的1.613倍倍。总
28、加速比总加速比=10.6+0.420=1.6131.3 1.3 定量分析技术定量分析技术 例例1.2 某计算机系统采用浮点运算部件后,使浮某计算机系统采用浮点运算部件后,使浮点运算速度提高到原来的点运算速度提高到原来的20倍,而系统运行某一倍,而系统运行某一程序的整体性能提高到原来的程序的整体性能提高到原来的5倍,试计算该程序倍,试计算该程序中浮点操作所占的比例。中浮点操作所占的比例。1.3 1.3 定量分析技术定量分析技术解解 部件加速比部件加速比=20,系统加速比,系统加速比=5 根据根据Amdahl定律可知定律可知 由此可得:可改进比例由此可得:可改进比例=84.2%即程序中浮点操作所占
29、的比例为即程序中浮点操作所占的比例为84.2%。15120进进可可 改改比比 例例可可 改改比比 例例1.3 1.3 定量分析技术定量分析技术Amdahl定律:定律:一种性能改进的递减规则一种性能改进的递减规则如果仅仅对计算任务中的一部分做性能改如果仅仅对计算任务中的一部分做性能改进,则改进得越多,所得到的总体性能的进,则改进得越多,所得到的总体性能的提升就越有限。提升就越有限。重要推论:重要推论:如果只针对整个任务的一部分进行如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过改进和优化,那么所获得的加速比不超过 1/(1可改进比例)可改进比例)1.3 1.3 定量分析技术定量
30、分析技术两种情况两种情况:(1)可改进比例为可改进比例为,这时系统加速比等于,即系,这时系统加速比等于,即系统性能无法提高。统性能无法提高。(2)部件加速比趋于无穷部件加速比趋于无穷,这时分母中可改进比例与,这时分母中可改进比例与部件加速比之比趋于,由此系统加速比趋于除部件加速比之比趋于,由此系统加速比趋于除以减可改进比例,这是加速这个部件所获得的系以减可改进比例,这是加速这个部件所获得的系统性能改善的极限。统性能改善的极限。1.3 1.3 定量分析技术定量分析技术部部件件加加速速比比 系系统统性性能能 1.3 1.3 定量分析技术定量分析技术3.CPU性能公式性能公式执行一个程序所需的执行一
31、个程序所需的CPU时间时间 CPU时间时间=执行程序所需的时钟周期数执行程序所需的时钟周期数时钟时钟周期时间周期时间执行程序所需的时钟周期数可进一步分解为:执行程序所需的时钟周期数可进一步分解为:CPI:每条指令执行的平均时钟周期数每条指令执行的平均时钟周期数 IC:所执行的指令条数所执行的指令条数程序执行的程序执行的CPU时间可以写成时间可以写成 CPU时间时间=IC CPI 时钟周期时间时钟周期时间 1.3 1.3 定量分析技术定量分析技术计算机工作的计算机工作的时钟频率时钟频率 计算机系统中与实现技术和工艺有关的因素。计算机系统中与实现技术和工艺有关的因素。单位是单位是MHz或或GHz。
32、时钟周期时间时钟周期时间=1/时钟频率时钟频率 CPU时间时间=CPI IC/时钟频率时钟频率 1.3 1.3 定量分析技术定量分析技术时钟频率:时钟频率:受计算机实现技术和计算机组成影响受计算机实现技术和计算机组成影响CPI:受计算机指令集结构和计算机组成影响受计算机指令集结构和计算机组成影响IC:受计算机指令集结构和编译技术影响受计算机指令集结构和编译技术影响对许多对许多CPU来说,不同的指令运行时所用的周期数是来说,不同的指令运行时所用的周期数是不同的,如果我们假设:计算机系统有不同的,如果我们假设:计算机系统有 n 种指令,其种指令,其中中 CPIi:第第 i 种指令所用的时钟周期数;
33、种指令所用的时钟周期数;ICi:在程序运行过程中中第在程序运行过程中中第 i 种指令被运行的种指令被运行的次数;次数;1.3 1.3 定量分析技术定量分析技术CPU时间时间=(CPIi ICi)/时钟频率时钟频率CPI=(CPIi ICi)/IC=(CPIi ICi/IC)其中:其中:(ICi/IC)反映了第反映了第 i 种指令在程序中所占的种指令在程序中所占的 比例。比例。例例1.3 假设我们考虑条件分支指令的两种不同设计方法假设我们考虑条件分支指令的两种不同设计方法如下:如下:(1)CPUA:通过比较指令设置条件码,然后测试条通过比较指令设置条件码,然后测试条 件码进行分支。件码进行分支。
34、(2)CPUB:在分支指令中包括比较过程在分支指令中包括比较过程 在两种在两种CPU中,条件分支指令都占用中,条件分支指令都占用2个时钟周期而个时钟周期而所有其它指令占用所有其它指令占用1个时钟周期,对于个时钟周期,对于CPUA,执行的指,执行的指令中分支指令占令中分支指令占20%;由于每个分支指令之前都需要有;由于每个分支指令之前都需要有比较指令,因此比较指令也占比较指令,因此比较指令也占20%。由于。由于CPUA1.31.3 定量分析技术基础定量分析技术基础在分支时不需要比较,因此假设它的时钟周期时间在分支时不需要比较,因此假设它的时钟周期时间比比CPUB快快1.25倍。哪一个倍。哪一个C
35、PU更快?如果更快?如果CPUA的时的时钟周期时间仅仅比钟周期时间仅仅比CPUB快快1.1倍,哪一个倍,哪一个CPU更快呢?更快呢?解:解:我们不考虑所有系统问题,所以可用我们不考虑所有系统问题,所以可用CPU性能公性能公式。占用式。占用2个时钟周期的分支指令占总指令的个时钟周期的分支指令占总指令的20%,剩,剩下的指令占用下的指令占用1个时钟周期。所以个时钟周期。所以 CPIA=0.2 2+0.80 1=1.2则则CPU性能为:性能为:总总CPU时间时间A=ICA 1.2 时钟周期时钟周期A1.31.3 定量分析技术基础定量分析技术基础对对 CPUB 根据假设,有:根据假设,有:时钟周期时钟
36、周期B=1.25 时钟周期时钟周期A在在CPUB中没有独立的比较指令,所以中没有独立的比较指令,所以CPUB的程序量的程序量为为CPUA的的80%,分支指令的比例为:,分支指令的比例为:20%/80%=25%这些分支指令占用这些分支指令占用2个时钟周期,而剩下的个时钟周期,而剩下的75%的指令的指令占用占用1个时钟周期,因此:个时钟周期,因此:CPIB=0.25 2+0.75 1=1.251.31.3 定量分析技术基础定量分析技术基础因为因为CPUB不执行比较,故:不执行比较,故:ICB=0.8 ICA因此因此CPUB性能为:性能为:总总CPU时间时间B=ICB CPIB 时钟周期时钟周期B
37、=0.8 ICA 1.25 (1.25 时钟周期时钟周期A)=1.25 ICA 时钟周期时钟周期A在这些假设之下,尽管在这些假设之下,尽管CPUB执行指令条数较少,执行指令条数较少,CPUA因为有着更短的时钟周期,所以比因为有着更短的时钟周期,所以比CPUB快。快。1.31.3 定量分析技术基础定量分析技术基础如果如果CPUA的时钟周期时间仅仅比的时钟周期时间仅仅比CPUB快快1.1倍,则倍,则 时钟周期时钟周期B=1.10 时钟周期时钟周期ACPUB的性能为:的性能为:总总CPU时间时间B=ICB CPIB 时钟周期时钟周期B =0.8 ICA 1.25 (1.10 时钟周期时钟周期A)=1
38、.10 ICA 时钟周期时钟周期A因此因此CPUB由于执行更少指令条数,比由于执行更少指令条数,比CPUA运行更快运行更快。1.31.3 定量分析技术基础定量分析技术基础1.3 1.3 定量分析技术定量分析技术4.程序的局部性原理程序的局部性原理 程序在执行时所访问地址的分布不是随机的,而程序在执行时所访问地址的分布不是随机的,而是相对地簇聚;这种簇聚同时存在于指令访问和数据是相对地簇聚;这种簇聚同时存在于指令访问和数据访问中。访问中。程序的时间局部性:程序的时间局部性:程序即将用到的信息很可能程序即将用到的信息很可能就是目前正在使用的信息。就是目前正在使用的信息。程序的空间局部性:程序的空间
39、局部性:程序即将用到的信息很可能程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。与目前正在使用的信息在空间上相邻或者临近。1.3 1.3 定量分析技术定量分析技术用用Amdahl定律分析并行加速定律分析并行加速 现实世界的计算过程从来不会按照简单的串并行现实世界的计算过程从来不会按照简单的串并行来区分,实际上,也几乎没有计算过程能纯粹地来区分,实际上,也几乎没有计算过程能纯粹地划归为串行或者并行实现的划归为串行或者并行实现的 绝大多数软件会包含绝大多数软件会包含 可并行可并行 和和 不可并行(串行)不可并行(串行)的操作的操作1.3 1.3 定量分析技术定量分析技术 p:处理
40、器数;处理器数;W:问题规模(计算负载、工作负载):问题规模(计算负载、工作负载)WS:应用程序中的串行分量应用程序中的串行分量 WP:应用程序中可并行分量:应用程序中可并行分量 W =WS+WP串行分量比例(串行分量比例(f =WS/W)并行分量比例(并行分量比例(1-f =WP/W)S:加速比:加速比1.3 1.3 定量分析技术定量分析技术53/(1)(1)111(1)SPSPWWSWWpfWf WffpffWfpffWpp加速比加速比1:PSf 处处理理机机数数 加加速速比比 1.3 1.3 定量分析技术定量分析技术例例 如 果 想 用如 果 想 用 1 0 0 个 处 理 器 达 到个
41、 处 理 器 达 到 8 0 的 加 速 比,的 加 速 比,求原计算程序中串行部分所占比例。求原计算程序中串行部分所占比例。解解 Amdahl定律为定律为 得出:得出:f0.0025 可以看出要用可以看出要用100个处理器达到个处理器达到80的加速比,串行计算的部分的加速比,串行计算的部分只能占只能占0.25%。1(1)pSpf100801(100 1)f1.3 1.3 定量分析技术定量分析技术例例 如果一个程序中如果一个程序中80%的部分能完全并行化,剩下的部分能完全并行化,剩下20%串行执串行执行,问 用行,问 用 1 0 0 个 处 理 器 能 达 到 多 少 加 速 比?个 处 理
42、器 能 达 到 多 少 加 速 比?忽略所有因并行产生的额外开销。忽略所有因并行产生的额外开销。解解 Amdahl定律为定律为 这时用这时用 100 个处理器只能达到个处理器只能达到 4.8 倍的加速比倍的加速比1004.8071(1)1 99 0.2pSpf1.3 1.3 定量分析技术定量分析技术56例例 当处理器数目当处理器数目p=1024,加速比公式如下:,加速比公式如下:102410241(1024 1)1 1023pSff1.3 1.3 定量分析技术定量分析技术Gustafson定律定律 除非特定研究,在实际应用中没有必要固定工作除非特定研究,在实际应用中没有必要固定工作负载而让负载
43、而让计算程序运行在不同数目的处理器上,增计算程序运行在不同数目的处理器上,增多处理器必须相应地增大问题规模才有实际意义多处理器必须相应地增大问题规模才有实际意义 对大多数问题,问题规模的改变只会改变计算中对大多数问题,问题规模的改变只会改变计算中并行计算量,而不会改变串行计算量并行计算量,而不会改变串行计算量1.3 1.3 定量分析技术定量分析技术58/(1)(1)(1)SPSPSPSPWpWWpWSWp WpWWfWpf Wf p f fWf W 并行计算是为了解决大规模计算问题,可并行部并行计算是为了解决大规模计算问题,可并行部分的比例是可扩大的分的比例是可扩大的 加速比与处理器数成斜率为
44、(加速比与处理器数成斜率为(1-f)的线性关系)的线性关系 串行比例串行比例 f 不再是并行扩展的瓶颈不再是并行扩展的瓶颈 1.3 1.3 定量分析技术定量分析技术评测的性能指标:评测的性能指标:执行时间执行时间和和吞吐率吞吐率采用什么性能指标,与测试者看问题的角度有关。采用什么性能指标,与测试者看问题的角度有关。一般用户:一般用户:单个程序的单个程序的执行时间执行时间(执行(执行 单个单个 程序所花的时间)程序所花的时间)数据处理中心的管理员:数据处理中心的管理员:吞吐率吞吐率(在单位时间里能够(在单位时间里能够 完成的任务完成的任务)1.3.2 计算机系统的性能评测计算机系统的性能评测1.
45、3 1.3 定量分析技术定量分析技术 执行时间可以有多种定义:执行时间可以有多种定义:计算机完成某一任务所花费的全部时间计算机完成某一任务所花费的全部时间:包括磁包括磁盘访问、存储器访问、输入盘访问、存储器访问、输入/输出、操作系统开输出、操作系统开销等。销等。CPU时间:时间:CPU执行所给定的程序所花费的时执行所给定的程序所花费的时间,不包含间,不包含I/O等待时间以及运行其他程序的时等待时间以及运行其他程序的时间。间。用户用户CPU时间:时间:用户程序所耗费的用户程序所耗费的CPU时间。时间。系统系统CPU时间:时间:用户程序运行期间操作系统耗费用户程序运行期间操作系统耗费的的CPU时间
46、。时间。1.3 1.3 定量分析技术定量分析技术假设两台计算机为假设两台计算机为X和和Y,X比比Y快快的意思是:的意思是:对于给定任务,对于给定任务,X的执行时间比的执行时间比Y的执行时间少。的执行时间少。X的性能是的性能是Y的的n倍,即倍,即而执行时间与性能成反比,即而执行时间与性能成反比,即 执行时间执行时间Y执行时间执行时间X=nn=执行时间执行时间Y执行时间执行时间X性能性能Y1性能性能X1性能性能X性能性能Y1.3 1.3 定量分析技术定量分析技术通用评测方法通用评测方法:(1)采用基于测试的方法,如以测试程序的执行时采用基于测试的方法,如以测试程序的执行时间为度量间为度量;(2)采
47、用基于分析的方法,如通过对主频、采用基于分析的方法,如通过对主频、CPI、各类指令的计数等的分析来获得各类指令的计数等的分析来获得。1.3 1.3 定量分析技术定量分析技术2.基准测试程序基准测试程序 1.目前常用的测试程序可以分为四类:目前常用的测试程序可以分为四类:(按测试可靠性由高至低的顺序列出)(按测试可靠性由高至低的顺序列出)(1)真实程序真实程序 (2)核心程序核心程序 (3)小测试程序小测试程序 (4)合成测试程序合成测试程序 1.51.5 定量分析技术基础定量分析技术基础2.测试程序组件测试程序组件 选择一组各个方面有代表性的测试程序,选择一组各个方面有代表性的测试程序,组成组
48、成一个通用测试程序集合。一个通用测试程序集合。最大优点:最大优点:避免了独立测试程序存在的片面性,尽可能全避免了独立测试程序存在的片面性,尽可能全面地测试了一个计算机系统的性能。面地测试了一个计算机系统的性能。基本测试程序基本测试程序 SPEC科学与工程计算性能科学与工程计算性能 LINPACK1.51.5 定量分析技术基础定量分析技术基础台式计算机的基准测试程序套件可以分为两大类:台式计算机的基准测试程序套件可以分为两大类:处理器性能测试程序处理器性能测试程序图形性能测试程序图形性能测试程序SPEC89:用于测试处理器性能。用于测试处理器性能。10个程序(个程序(4个整个整数程序,数程序,6
49、个浮点程序)个浮点程序)演化出了演化出了4个版本个版本SPEC92:20个程序个程序SPEC95:18个程序个程序SPEC2000:26个程序个程序SPEC CPU2006:29个程序个程序1.51.5定量分析技术基础定量分析技术基础 SPEC CPU2006 整数程序整数程序12个(个(CINT2006)9个是用个是用C写的,写的,3个是用个是用C+写的写的 浮点程序浮点程序17个(个(CFP2006)6个是用个是用FORTRAN写的,写的,4个是用个是用C+写的,写的,3个是用个是用C写的,写的,4个是用个是用C和和FORTRAN混合编写的。混合编写的。为真正的程序经过精简并最小化为真正的
50、程序经过精简并最小化I/O活动而形成活动而形成,1.51.5 定量分析技术基础定量分析技术基础针对桌面计算机图形系统支持针对桌面计算机图形系统支持OpenGL库的性能库的性能:SPECviewperf针对桌面计算机针对桌面计算机图形密集型应用的性能:图形密集型应用的性能:SPECapc针对针对文件服务器性能:文件服务器性能:SPECSFS针对网络针对网络文件服务器性能:文件服务器性能:SPECWeb针对事务处理领域针对事务处理领域:TPC测试程序组件(主要测试事测试程序组件(主要测试事务处理的吞吐能力)务处理的吞吐能力)1.51.5 定量分析技术基础定量分析技术基础基于基于Windows的的P