计算机原理.ppt

上传人:本田雅阁 文档编号:2634782 上传时间:2019-04-25 格式:PPT 页数:37 大小:530.01KB
返回 下载 相关 举报
计算机原理.ppt_第1页
第1页 / 共37页
计算机原理.ppt_第2页
第2页 / 共37页
计算机原理.ppt_第3页
第3页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机原理.ppt》由会员分享,可在线阅读,更多相关《计算机原理.ppt(37页珍藏版)》请在三一文库上搜索。

1、计算机原理,第四章 评估和理解计算机性能,本讲简要说明,目的与要求:掌握计算机中的性能评价 授课重点:计算机性能指标 授课难点:如何合理评价计算机的性能 阅读章节:Computer Organization and Design第4章,计算机原理和设计第1章第4节 作业安排: Computer Organization and Design P272 4.1、4.2、4. 3 (选做) 、4.10 、4.11和4.14 (选做)题,制造成本(manufacturing cost) 衡量计算机性能的基本指标 响应时间(Response Time) 执行时间(Execution Time)、等待时

2、间(Latency) 吞吐量(Throughput ) 带宽(Bandwidth) 指令执行速度(MIPS、MFLOPS) 计算机性能评估 CPU Time=cycle time CPI Instructions / program 基准程序( Benchmark),主要内容,单晶硅锭,圆形薄片 / 硅抛光片 (6/8/12寸,厚度不足1mm),IC小片 / 芯片,不合格的用磁浆点上记号,封装:将芯片固定在塑胶或陶瓷基座上,把芯片上蚀刻出来的引线与基座底部伸出的引脚连接,盖上盖板并封焊成芯片,约需400多道工序!,“晶圆” / 大芯片,Integrated Circuits Costs man

3、ufacturing process,在考察性能前,先考察成本!,Integrated Circuits Costs 公式,Die cost = Dies per wafer = Die Yield =,每个圆晶片上的小片数、集成电路成本都与芯片面积有关!,小片合格率,与芯片成本有关的因素 圆晶价格 圆晶所含小片数 小片合格率,IC cost = Die cost + Testing cost + Packaging cost Final test yield 封装成本(Packaging cost) : 取决于引脚数、散热性等,Other Costs,Chip Die Package Tes

4、t & Total cost pins type cost Assembly 386DX $4 132 QFP $1 $4 $9 486DX2 $12 168 PGA $11 $12 $35 PowerPC 601 $53 304 QFP $3 $21 $77 HP PA 7100 $73 504 PGA $35 $16 $124 DEC Alpha $149 431 PGA $30 $23 $202 SuperSPARC $272 293 PGA $20 $34 $326 Pentium $417 273 PGA $19 $37 $473,性能的定义,如何理解“一台计算机的性能比另一台好”的

5、含义?先考虑民航客机的“性能”:续航能力、巡航速度、载客量、运载能力?,Time of Concorde vs. Boeing 747? 巡航速度上 Concorde 比Boeing 747快:1350/610=2.2倍 Concorde的性能更好! Throughput of Boeing 747 vs. Concorde? 运载能力上 Boeing 747 比Concorde大:286,700/178,200=1.6倍 Boeing 747的性能更好!,若考虑制造成本,则性能评价更复杂,不同的性能评价标准会导致不同的结论!,计算机性能的基本评价指标,计算机也有两种不同的性能 Time to

6、 do the task 响应时间(response time):完成一个任务所需的总时间 执行时间(execution time) 等待时间或时延(latency) Tasks per day, hour, sec, ns. 吞吐率(throughput):一定时间内所完成的工作量 带宽(bandwidth) 不同应用场合用户关心的性能不同 吞吐率高的场合多媒体应用(音/视频播放要流畅) 响应时间短的场合事务处理系统(存/取款的速度要快) 吞吐率高且响应时间短的场合ATM、文件服务器、Web服务器等,SKIP,不同层次上对吞吐率性能的度量,(millions) of Instructions

7、 per second MIPS (millions) of (F.P.) operations per second MFLOPS,Cycles per second (clock rate),Megabytes per second(带宽),Answers per hour Operations per second,BACK,吞吐率与响应时间,Do the following changes to a computer system increase throughput, decrease response time, or both? 1) Replacing the process

8、or in a computer with a faster version 2) Adding additional processors to a system that uses multiple processors for separate tasksfor example, searching the World Wide Web. 解:缩短响应时间通常也意味着提高吞吐率 (1)响应时间与吞吐率都能得到一定程度的改善 (2)单个任务的处理速度并不会加快,只有吞吐率得到了提高。如果请求处理的数量超过系统的吞吐能力,请求在系统排队等待处理,请求在队列等待时间减少,则响应时间也会相应有所

9、改善 所以,执行时间与吞吐率的变化常常是相互影响,计算机性能的基本评价指标,基本的性能评价标准是:CPU的执行时间 相对性能用执行时间的倒数来表示! Performance = 1 / Execution Time,例:相对性能计算 If computer A runs a program in 10 senconds and computer B runs the same program in 15 senconds, how much faster is A than B?,计算机性能的测量,比较计算机的性能时,用执行时间来衡量 完成同样工作量所需时间最短的那台计算机性能最好 处理器时间

10、往往被多个程序共享使用,因此,用户感觉到的程序执行时间并不是程序真正的执行时间 通常把用户感觉到的响应时间分成: CPU时间:CPU真正花在程序执行上的时间。包括两部分: 用户CPU时间:用来运行用户代码的时间 系统CPU时间:为了执行用户程序而需要运行操作系统程序的时间 其他时间:等待I/O操作完成或CPU花在其他用户程序的时间 系统性能和CPU性能是不等价的,有一定的区别 系统性能(System performance):表示系统响应时间,与CPU外的其他部分也都有关系 CPU性能(CPU performance):表示用户CPU时间 本章主要讨论CPU性能,即:CPU真正用在用户程序执行

11、上的时间,CPU执行时间的计算,时钟周期:所有计算机都有一个固定频率的硬件时钟,它所产生的离散时间间隔称为时钟周期 评价CPU性能的最重要指标是CPU执行时间 CPU execution time = CPU clock cycles/pgm clock rate = CPU clock cycles/pgm clock cycle time CPU clock cycles/pgm = Instrs / pgm CPI (avg. clock cycles per instr) CPI = CPU clock cycles/pgm Instructions / pgm CPI 用来衡量以下各

12、方面的综合结果 Instruction Set Architecture Implementation of that architecture program,Aspects of CPU Performance,Instr. count CPI Clock rate Program Compiler Instr. Set Arch. Organization Technology,思考:三个因素与哪些方面有关?,Aspects of CPU Performance,Instr. count CPI Clock rate Program X X Compiler X (X) Instr. S

13、et Arch. X X Organization X X Technology X,问题:ISA、计算机组织(Organization)、计算机实现技术(Technology)三者的关系是什么?,Architecture = Instruction Set Arch. + Organization,Computer Design,Computer Hardware Design Machine Implementation Logic Designers View Processor Architecture Computer Organization “Construction Engin

14、eer“,“建造工程师” 考虑用什么材料,如何布线等,如:是否提供“乘法指令”是ISA设计考虑的问题;如何实现乘法指令(用专门的乘法器还是用一个加法器+移位器实现)是组成(Organization)考虑的问题;如何布线、用什么材料、工艺设计等是计算机实现技术(Technology)考虑的问题,Instruction Set Architecture,. . . the attributes of a computing system as seen by the programmer, i.e. the conceptual structure and functional behavior,

15、 as distinct from the organization of the data flows and controls the logic design, and the physical implementation. Amdahl, Blaw, and Brooks, 1964,Organization of Programmable Storage(程序员可见存储的组织) 如:寄存器个数、名称、长度;内存单元长度、主存地址长度 Data Types & Data Structures (数据类型和结构) Encodings & Representations (编码和表示)

16、Instruction Formats(指令格式) Instruction (or Operation Code) Set (操作码集合:指令功能) Modes of Addressing and Accessing Data Items and Instructions (寻址方式、数据 / 指令的存取方式) Exceptional Conditions and handle (异常条件和处理),主要内容包括:,Organization,Logic Designers View,ISA Level,FUs & Interconnect,Capabilities & Performance C

17、haracteristics of Principal Functional Units(主要功能部件的能力和工作特性) (e.g., Registers, ALU, Shifters, Memory, Cache, etc.) Ways in which these components are interconnected(互连方式) nature of information flows between components(部件间的信息流动方式) logic and means by which such information flow is controlled(部件间信息流动的控

18、制逻辑和控制方法),主要内容包括:,为实现ISA,该如何安排功能部件 寄存器传送级的描述,Organizational Trade-offs,3 factors:Where are they?,3 factors: How are they related? CPI的减少可能会增加时钟周期的长度 缩短时钟周期可能会增加指令的条数 改变IS以减少指令条数会使时钟周期变长 即使是在同一台机器上的同一个问题,最少指令条数的程序不一定执行的最快,因此,必须在各方面进行权衡!,CPU time = Instruction counts CPI Cycle Time,Example1:提高性能,Our f

19、avorite program runs in 10 sec on machine A, which has a 4GHz clock. We are trying to design a machine B with faster clock rate so as to reduce the execution time to 6 sec. The increase of clock rate will affect the rest of the CPU design, causing B to require 1.2 times as many clock cycles as machi

20、ne A for this program. What clock rate should be?,Answer: CPU time A = CPU clock cycle A / clock rate A CPU clock cycle A = 10 sec 4 109 Clock rate B = CPU clock cycle B / CPU time B = 1.2 40 109 / 6 = 8GHz,机器B的频率是A的两倍,但机器B的速度并不是A的两倍!,如何计算CPI?,对于某一条特定的指令而言,其CPI是一个确定的值。但是,对于某一类指令、或一个程序、或一台机器而言,其CPI是一

21、个平均值,表示该类指令或该程序或该机器的指令集中每条指令执行时平均需要多少时钟周期。,问题:指令的CPI、机器的CPI、程序的CPI各反映哪方面的性能? 单靠CPI不能反映CPU的性能!为什么?如:单周期处理器CPI=1,但性能差!,Instruction type and Instruction frequencies in the execution of a program: Op Freq Cycles ALU 43% 1 Load 21% 2 Store 12% 2 Branch 24% 2,Example2:CPI的计算,Question: What is the average

22、CPI of the machine?,CPI = 143% + 221% + 212% + 224% = 1.57,Example3:性能公式的应用,Suppose we have two implementations of the same instruction set. Machine A has a clock cycle time of 250ps and an average CPI of 2.0 for some program. Machine B has a clock cycle time of 500 ps and an average CPI of 1.2 for

23、the same program. Which is faster? And by how much?,Let I denote the number of instructions of the program CPU time A = I 2.0 250 = 500 I(ps) CPU time B = I 1.2 500 = 600 I(ps) Machine A is 1.2 faster than B . 在此,又看到三个因素之间的相互影响。,相同IS对于同一个程序,其指令序列是一样的,当然条数相同!,CPU 时间=指令条数 CPI 时钟周期,CPU time = Instructi

24、on counts CPI Cycle Time,程序性能的影响,Example 4:比较不同的代码段,ISA has 3 kinds of instructions:,One program has 2 code sequences:,Which code sequence has more instructions? Which will be faster? What is the CPI for each sequence?,序列1 有5条指令; 序列2 有 6条. 序列1 需 21+12+23=10 cycles; 序列2 需 41+12+13=9 cycles 序列1 的 CPI=

25、10/5=2; 序列2 的CPI=9/6=1.5,虽然序列2的指令条数更多,但速度更快!,Marketing Metrics (产品宣称指标),MIPS = Instruction Count / Execution Time 106 = Clock Rate / CPI 106 一种用来代替执行时间的指标 Million Instructions Per Seconds 因为每条指令执行时间不同,所以MIPS是一个平均值 不同机器的指令集不同 程序由不同的指令混合而成 指令使用的频度动态变化 Peak MIPS(不实用) MIPS数不能说明性能的好坏? MFLOPS = FP Operati

26、ons / Execution Time 106 Million Floating-point Operations Per Second 与机器相关性大 并不是程序中花时间的部分,Example: MIPS数不可靠!,Consider the computer with three instruction classes and CPI measurements from the example 4. Now suppose we measure the code for the same program from two different compilers and obtain the

27、 following data: Assume that the computers clock rate is 4GHz. Which code sequence will execute faster according to MIPS? According to execution time?,CPU clock cycles 1 = (51+12+13) 109 = 10 109 CPU clock cycles 2 = (101+12+13) 109 = 15 109 Execution time 1 = 10 109 / 4 109 = 2.5 seconds Execution

28、time 2 = 15 109 / 4 109 = 3.75 seconds MIPS 1 = (5+1+1) 109 / 2.5 106 = 2800 MIPS 2 = (10+1+1) 109 / 3.75 106 = 3200,结论:来自compiler2产生代码的MIPS高,而来自compiler1产生的代码的执行时间快。,选择性能评价程序(Benchmarks),用基准程序来评测计算机的性能 基准测试程序是专门用来进行性能评价的一组程序 不同用户使用的计算机用不同的基准程序 基准程序通过运行实际负载来反映计算机的性能 最好的基准程序是用户实际使用的程序或典型的简单程序 基准程序的缺陷

29、 现象:基准程序的性能与某段短代码密切相关时,会被利用以得到不当的性能评测结果 手段:硬件系统设计人员或编译器开发者针对这些代码片段进行特殊的优化,使得执行这段代码的速度非常快 例1:Intel Pentium处理器运行SPECint时用了公司内部使用的特殊编译器,使其性能极高 例2:矩阵乘法程序SPECmatrix300有99%的时间运行在一行语句上,有些厂商用特殊编译器优化该语句,使性能达VAX11/780的729.8倍!,用于性能评估的程序,(Toy) Benchmarks(短小基准程序) 程序短小容易编译,便于仿真或手工编译,因而可用于对新开发的机器进行性能评测. (因为新机器往往没有

30、配编译器) 大小:10-100 line 例:sieve, puzzle, quicksort 缺陷:不是实际使用的程序,只用于新开发的计算机。 Synthetic Benchmarks(综合基准程序) 目的:试图用一个基准程序去涵盖一系列基准程序的特征 做法:使各种语句的执行频度与一系列基准程序中的频度一致 例: Whetstone(Algol 60Fortran), Dhrystone(AdaC) 缺陷:不是实际用的程序,可特殊优化使评测结果优,但实际并不如此 Kernels(核心程序段) 实际程序中的耗时较多的关键片断 通常用在科学计算领域测试某个特殊功能的性能 例: Livermore

31、 loops(21 loops), Linpack(linear algebra) Real programs(频繁使用的实际程序) e.g., gcc, spice,Successful Benchmark: SPEC,1988年,5家公司( Sun, MIPS, HP, Apollo, DEC )联合提出Systems Performance Evaluation Committee (SPEC) SPEC给出一组标准的测试程序、标准输入和测试报告。它们是一些实际的程序,包括 OS calls、 I/O等 版本 89:10 programs = 4 for integer + 6 for

32、FP, 用每个程序的执行时间求出一个综合性能指标 版本92:SPECInt92 (6 integer programs) and SPECfp92 (14 floating point programs) 整数和浮点数单独提供衡量指标:SPECInt92和SPECfp92 增加 SPECbase: 禁止使用任何与程序有关的编译优化开关 版本95: 8 int + 10fp 较新版本: include SPEC HPC96, SPEC JVM98, SPEC WEB99, SPEC OMP2001. SPEC CPU2000 http:/www.spec.org for more details

33、 “benchmarks useful for 3 years” Base machine is changed from VAX-11/780 to Sun SPARC 10/40,如何给出综合评价结果?,Program 1: 1 sec on machine A, 10 sec on machine B Program 2: 1000 sec on A,100 sec on B What are your conclusions?,A is 10 times faster than B for program1. B is 10 times faster than A for Progra

34、m2.,一种简单的综合评价指标Total execution time B is 1001/110=9.1 times faster than A 实际上,须考虑每个程序在作业中的使用频度,即加权平均,问题:如果用一组基准程序在不同的机器上测出了运行时间,那么如何综合评价机器的性能呢?,例:,无法比较A和B的好坏,须用一个综合的值来表示,综合性能评价的方法,可用两种平均值来评价性能 Arithmetic mean(算术平均):求和后除n Geometric mean(几何平均):求积后开根号n 根据算术平均执行时间能得到程序总平均执行时间 根据几何平均执行时间不能得到程序总的执行时间 执行时间

35、的规格化(测试机器相对于参考机器的性能) time on reference machine time on measured machine 平均规格化执行时间不能用算术平均来计算,而应该用几何平均 program A going from 2 seconds to 1 second as important as program B going from 2000 seconds to 1000 seconds. (算术平均值不能反映这一点!),算术平均和几何平均各有长处,可灵活使用!,Impact of Means on SPECmark89 for IBM 550,Ratio to V

36、AX: Time: Weighted Time: Program Before After Before After Before After gcc 30 29 49 51 8.91 9.22 espresso 35 34 65 67 7.64 7.86 spice 47 47 510 510 5.69 5.69 doduc 46 49 41 38 5.81 5.45 nasa7 78 144 258 140 3.43 1.86 li 34 34 183 183 7.86 7.86 eqntott 40 40 28 28 6.68 6.68 matrix300 78 730 58 6 3.4

37、3 0.37 fpppp 90 87 34 35 2.97 3.07 tomcatv 133 138 20 19 2.01 1.94 Mean 54 72 124 108 54.42 49.9 Geometric Arithmetic Weighted Arith. Ratio 1.33 Ratio 1.16 Ratio 1.09,注:“After”表示加了特殊编译开关后的结果。 好的评价标准应该对特殊处理不敏感!,该表反映了不同的均值计算法得到的结论可能不同。,性能、功耗及能量效率,功耗:能耗=CV2 f 功耗逐渐成为处理器性能的主要限制 电源的消耗通常是与性能及价格同样重要的因素 CMOS

38、电路可以通过降低频率来降低电能消耗 最大时钟频率 可调时钟频率,相对性能,相对效率,计算机某方面改进,系统的性能能成比例提高吗?,例:假设某个程序在某台计算机上运行时所需的时间是100秒,其中80秒是用来执行乘法操作。若希望使该程序的速度提高到原来的5倍,乘法部件的速度应该是原来的多少倍呢?若其中90秒用来执行乘法操作,结果又会如何? 受改进影响部分的执行时间 改进后程序的执行时间 = (Amdahl定律) 改进部分性能提高的倍数 + 未受改进影响部分的执行时间 因为系统性能提高到原来的5倍,故新的执行时间应该是20秒 20秒= 80秒/n +(100-80)秒, 0 = 80秒/n 说明如果

39、乘法只是占到总计算量的80%的话,无论对乘法部件做何种改进,系统性能都不可能提高到原来的5倍。 硬件设计的基本策略:使最常用的部分变得更快,小结,性能的定义:一般用程序的响应时间或系统的吞吐率表示机器或系统整体性能 CPU性能的测量(用户程序的CPU执行时间) 一般把程序的响应时间划分成CPU时间和等待时间,CPU时间又分成用户CPU时间和系统CPU时间 因为操作系统对自己所花费的时间进行测量时,不十分准确,所以,对CPU性能的测算一般通过测算用户CPU时间来进行 各种性能指标之间的关系 CPU执行时间=CPU时钟周期数 x 时钟周期 时钟周期和时钟频率互为倒数 CPU时钟周期数 = 程序指令数 x 每条指令的平均时钟周期数CPI MIPS数在有些情况下不能说明问题,不具有可比性! 性能评价程序的选择 采用一组基准测试程序进行综合(算术(加权)平均/几何平均)评测 有些制造商会针对评测程序中频繁出现的语句采用专门编译器,使评测程序运行效率大幅提高。因此有时基准评测程序也不能说明问题 对某种特定指令集体系结构,提高计算机性能的主要途径有 提高时钟频率(第七章 流水线) 优化处理器中数据通路结构以降低CPI(第六章 处理器) 用编译优化措施来减少指令条数或降低指令复杂度(第二章 指令系统 ),谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1