




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机系统结构1复 习 课2 第1章 计算机设计基础1.1 引言1.2 计算机的分类1.3 计算机系统结构定义和计算机的设计任务1.4 实现技术的趋势1.5 集成电路功耗的趋势1.6 成本的趋势1.7 可靠性1.8 测量, 报告和总结计算机性能1.9 计算机设计的量化原则 1.10 结论3 第1章 计算机设计基础1.1 引言1.2 计算机分类1.3 计算机系统结构定义和设计任务1.4 技术趋势1.5 集成电路功耗趋势1.6 成本的趋势1.7 可靠性1.8 测量, 报告和总结计算机性能1.9 计算机设计的量化原则 1.10 结论1.2 计算机分类一、Flynns 分类:基于指令流和数据流数量的计
2、算机结构分类43类计算机市场特点桌面计算机服务器嵌入式系统价格$500-$5000$5000-$5,000,000$10-$100,000微处理器价格$50-$500/片$200-$10,000/片$0.01-$100/片关键设计需求Price-perf.Graphics perf.Throughput,availability,scalabilityPrice, Power consumption,application-specific perf.56 第1章 计算机设计基础1.1 引言1.2 计算机分类1.3 计算机系统结构定义和设计任务1.4 技术趋势1.5 集成电路功耗趋势1.6 成
3、本的趋势1.7 可靠性1.8 测量, 报告和总结计算机性能1.9 计算机设计的量化原则 1.10 结论计算机系统结构是什么?一台计算机的组件是什么?怎样有效地将各种组件组合在一起?1.3 计算机系统结构定义及设计任务7计算机系统结构本书中,计算机系统结构:是在满足功能、性能和价格目标的条件下,选择和互连硬件部件构成计算机。 系统结构覆盖:指令系统设计组成(Organization):计算机设计方面的高层次存储器、存储器互连、CPU内部硬件: 计算机的具体实现技术详细逻辑设计、封装、冷却系统、板级设计,功耗89 第1章 计算机设计基础1.1 引言1.2 计算机分类1.3 计算机系统结构定义和设计
4、任务1.4 技术趋势1.5 集成电路功耗趋势1.6 成本的趋势1.7 可靠性1.8 测量, 报告和总结计算机性能1.9 计算机设计的量化原则 1.10 结论10 第1章 计算机设计基础1.1 引言1.2 计算机分类1.3 计算机系统结构定义和设计任务1.4 技术趋势1.5 集成电路功耗趋势1.6 成本的趋势1.7 可靠性1.8 测量, 报告和总结计算机性能1.9 计算机设计的量化原则 1.10 结论11 第1章 计算机设计基础1.1 引言1.2 计算机分类1.3 计算机系统结构定义和设计任务1.4 技术趋势1.5 集成电路功耗趋势1.6 成本的趋势1.7 可靠性1.8 测量, 报告和总结计算机
5、性能1.9 计算机设计的量化原则 1.10 结论12 第1章 计算机设计基础1.1 引言1.2 计算机分类1.3 计算机系统结构定义和设计任务1.4 技术趋势1.5 集成电路功耗趋势1.6 成本的趋势1.7 可靠性1.8 测量, 报告和总结计算机性能1.9 计算机设计的量化原则 1.10 结论1.7 可靠性-Dependability可靠性:广义上包括可靠性、安全性和可用性(Dependability is a deliberately broad term to encompass many facets including reliability, security and availab
6、ility.) 计算机系统的可靠性(Dependability):用于表示系统提供给用户服务的质量,这里“可靠性( Dependability )”可用“信任(reliance)”代替。 例如:一个硬盘能用多久?1314可靠性的量化模块可靠性(Reliability):从模块可用到出现故障的持续服务度量MTTF: Mean Time To FailureMTTR: Mean Time To RepairFIT (故障率) : Failure In Time = 1/MTTFMTBF: Mean Time Between Failure = MTTF+MTTR模块可用性(Availability
7、) MTTF = MTTF MTTF + MTTR MTBF15 第1章 计算机设计基础1.1 引言1.2 计算机分类1.3 计算机系统结构定义和设计任务1.4 技术趋势1.5 集成电路功耗趋势1.6 成本的趋势1.7 可靠性1.8 测量, 报告和总结计算机性能1.9 计算机设计的量化原则 1.10 结论16评价性能比较机器性能的指标Execution time (latency):桌面机Throughput:网站服务器MIPS :millions of instructions per second用程序集比较机器性能选择适当的程序集评估性能Benchmark SuitesDifferent
8、 Means(不同平均值): Arithmetic, Harmonic, and Geometric Means17性能指标响应时间墙钟时间程序开始到结束看钟知道的时间,就是墙钟时间,也称为响应时间或消逝时间测量用户感觉到的系统速度墙钟时间的问题如果一个机器上运行多个程序 ?如果程序运行时需要用户输入?墙钟时间是一项任务所需的总时延,包括了磁盘访问时间、存储器访问时间、输入输出时间、操作系统开销。而现代处理器会当某个程序等待IO操作时转去执行另一个程序,此时计算机不一定会使每个程序的消逝时间最短。18性能指标-CPU time测量CPU时间更具可计算性 (not waiting for I/O
9、)设计者通常感觉到的是程序从开始到结束全过程的时间,而不是CPU时间CPU时间进一步分为:用户CPU时间- 花费在用户模式的时间系统CPU时间- 花费在OS的时间Unix时间命令报告CPU时间:90.7u 12.9s 2:39 65%90.7 user CPU seconds (in the users program)12.9 system CPU seconds (in the system calls e.g. printf)2 minutes, 39 seconds wall-clock time65% of the wall clock time was spent running
10、on the CPU19性能指标Throughput单位时间内完成的工作总量吞吐量测量管理员感觉到的系统性能常用吞吐量测量每秒一根导线传输的二进制位的数量、每秒服务的网页数量相比前一个时延指标产生一行代码的时间量一根导线传输一位的时间量等待接受网页的时间量处理器性能一般仅使用时延指标:程序A比程序B快10倍对于很多应用,吞吐量比时延更重要:金融市场, 政府统计(人口普查)20响应时间 vs. 吞吐量 通常改善了响应时间也会改善吞吐量处理器用更快的型号替换只改善吞吐量而不改善响应时间在一个系统中增加额外的处理器,如用多处理器针对分开的任务,如机票预订系统21另一个工业性能指标: MIPSMIPS
11、 - Millions of Instructions per Second用相同的指令集比较两台机器 (A, B), MIPS一般是公平的MIPS可能是一个“无意义的性能指标”机器A有一条计算平方根的特殊指令,它执行需要100个时钟周期机器B 没有这种指令 它计算平方根用软件方式即用加、乘、移位简单指令(一般执行需要1个时钟周期)编程实现计算机性能通常用峰值性能(Peak performance)和持续性能(Sustained performance)来评价。峰值性能是指在理想情况下计算机系统可获得的最高理论性能,它不能反映出系统的实际性能。实际性能又称持续性能,其值只有峰值性能的5%35%
12、,这是因为实际程序运行时会受到硬件结构、操作系统、算法设计和编程等因素的影响。2223选择程序评估机器性能 不同类型的基准测试程序(benchmarks) 核心测试程序:从实际的程序中抽取少量较短的关键程序框架代码构成,这些代码的执行直接影响程序总的执行时间。如Livermore Loops和Linpack。小测试程序:代码在10100行,具有特定目的测试程序。如Sieve of Erastosthenes, Puzzle和Quieksort。综合测试程序:对一大套应用程序中的操作和操作数的执行频率进行统计,得到平均执行频率,再按这个频率编制的模拟测试程序。如Whetstone和Dhrysto
13、ne。 基准测试程序集:选择一组有代表性的不同类型应用程序,集中起来构成基准测试程序集,以有效评测计算机处理各种应用的性能。这种测试程序集合也称为测试程序组件(benchmark suites)。如SPEC,TPC。24注意:基准测试程序的局限基准测试程序可以针对一个系统的某些方面floating point & integer 运算, memory system, I/O, OS通用基准测试程序可能是一个误导,因为硬件和编译器的供应商或许会只针对这些基准测试程序优化他们的设计。最好的基准测试程序就是实际应用程序,因为它们反应了终端用户的需要。系统结构可能对某些应用性能好,而对其他应用性能差。
14、编译通过利用结构的特点可以提高性能。应用程序特定的编译器优化已越来越流行。25SPEC实用基准测试程序集SPEC - The System Performance Evaluation Cooperative一个开放性的非赢利组织1988年由工作站厂商HP,DEC,MIPS,SUN共同发起, 以满足市场迫切需要的标准化性能测试。已成为最成功的性能测试标准化组织,有40个公司成员。SPECs Philosophy目标:保证市场有一套公平和实用的指标来区分不同的候选系统。基本方法:提供基于现有应用程序的一套标准化源代码作为基准测试程序集。26SPEC benchmarks - Desktop Be
15、nchmarksCPU-intensive benchmarksSPEC89SPEC92SPEC95SPEC2000SPEC CPU2006 ( 12 CINT2006, 17 CFP2006) graphics-intensive benchmarksSPEC2000SPECviewperfis used for benchmarking systems supporting the OpenGL graphics librarySPECapcconsists of applications that make extensive use of graphics.Server Benchma
16、rks 由于Server有不同的服务功能,因此有多类benchmarks:SPECrateprocessing rate of a multiprocessor 面向Server的处理器吞吐量的benchmarks,SPEC CPU2000使用了SPEC CPU benchmarks,通过运行多个CPU基准测试程序副本来获得多处理机的处理速率(SPECrate)。SPECSFS-file server benchmark:测试网络文件系统的性能,包括磁盘、IO和处理器的性能。SPECWeb-Web server benchmark:模拟多个用户请求Server的静态和动态页面。27Server
17、 Benchmarks TPC benchmarkTransaction Processing Council,针对带有复杂数据库访问和决策的交易处理系统 TPC-A, 1985 TPC-C, 1992:模拟了一个复杂的查询环境 TPC-H:建模了一个随机决策支持 TPC-W:面向商业互联网环境的Web交易评测指标:每秒钟处理的事务数。对响应时间也有要求。典型TP系统:机票预订系统,银行ATM系统28运行 Benchmarks 关键:可重现性(Reproducibility )尽量多的细节 列出实验时的所有条件如:hardware, program input, version of the
18、program, version of the compiler, optimization level, OS version, main memory size, disk types, etc. 系统软件的配置会有效地影响benchmark的性能结果。2930 SPEC采用比选择权值更好的方法,就是选择一个统一的参考计算机,给出各测试程序在参考机上的执行时间,然后将被测机器的执行时间与之比较来评价不同机器的性能。 SPEC的评价指标有2个: SPEC率(SPEC Ratio) SM(Spec mark):采用SPEC率的几何平均值SPEC 性能评价31SPEC率(SPEC Ratio)是
19、测试程序在参考计算机上的执行时间与在被测计算机上的执行时间的比值,可以表示为: 显然,SPEC Ratio比值越高,说明被测计算机的性能越高。 例如,假设针对同一个基准测试程序A计算机的SPEC Ratio比B计算机的高出1.3倍,则可表示为:32SM(Spec mark)是被测试计算机执行n个基准测试程序分别得到的SPEC率的几何平均值。若某被测计算机的SPEC率有n个数值,则该计算机的SPEC率的几何平均值的计算公式为: 采用SPEC定义的单一性能指标SM为衡量不同计算机的性能提供了依据。 但是为了完整的表示出系统的性能特征,通常也将n个基准程序的SPEC率列出,以分项比较分析。33 第1
20、章 计算机设计基础1.1 引言1.2 计算机分类1.3 计算机系统结构定义和设计任务1.4 技术趋势1.5 集成电路功耗趋势1.6 成本的趋势1.7 可靠性1.8 测量, 报告和总结计算机性能1.9 计算机设计的量化原则 1.10 结论341.9 计算机设计的量化原则利用并行性(parallelism)- 并行的级别分类局部性原理(Principle of Locality)注重经常性事件(the common case)Amdahls Law CPU Performance Equation作业级线程级指令级操作级35 Amdahl定律定义了一台计算机系统采用某种改进措施所取得的加速比: 加
21、速比反映了使用改进措施后完成一个任务比不使用改进措施完成同一任务加快的比率。 Amdahl定律可以阐述为:系统中某一部件由于采用某种更快的执行方式后所获得系统性能的提高,与这种执行方式的使用频率或占总执行时间的比例有关。 Amdahl定律定义了一台计算机系统采用某种改进措施所取得的加速比。Amdahl 定律Amdahl定律中,加速比与两个因素有关:在原有的计算机上,能被改进的部分在总执行时间中所占的比例,即这个值称为改进比例,记为Fe,它总小于等于1。例如,如果一个任务在原来机器上的执行时间为60s,其中20s的执行时间可以使用改进措施,那么Fe就是2060=1/3。36 加速比反映了使用改进
22、措施后完成一个任务比不使用改进措施完成同一任务加快的比率。 第一章 计算机系统结构的基本概念b. 改进部分采用改进措施后,相比没有采用改进措施前性能提高的倍数,即 这个值称为改进加速比,记为Se,它总大于1。例如,在原来的条件下程序的某一部分执行时间为5s,而改进后这一部分只需要2s,那么Se是52。我们可以得出如下结论:37 第一章 计算机系统结构的基本概念(1)改进后整个任务的执行时间Tn为:其中T0为改进前的整个任务的执行时间。(2)改进后整个系统的加速比Sn为: 上面式子中(1-Fe)表示不可改进部分,我们做以下分析:1.当Fe为0,即没有可改进部分时,Sn为1;38 第一章 计算机系
23、统结构的基本概念加速比Sn为:39 第一章 计算机系统结构的基本概念2.当Fe为1,即全可改进部分时,Sn=Se,所以性能的提高幅度等于改进后性能提高的倍数。若假设改进前是单核,改进后是4核,且Fe=1,则Sn=4.可以看出无论采用几核处理器,加速比不会超过4. 问题是,上面是理想情况,考虑Fe=3/4. 即源程序的3/4的部分都可以并行,只有1/4的程序必须串行。那么在这种情况下Sn最多为多少?加速比Sn为:40 第一章 计算机系统结构的基本概念3. 当 时,则 ,因此,可获取性能改善极限值受Fe值的约束。41下面举例子来说明Amdahl定律的应用。 【例1-1】 假定新的处理器采用了改进措
24、施,新处理器处理Web应用程序的运行速度是原来处理器的10倍,同时假定新处理器有40%的时间用于计算,另外60%的时间用于I/O操作。那么改进性能后总的加速比是多少? 解:由题意可知:Fe = 40% = 0.4 , Se = 10 【例1-2】 试分析采用哪种设计方案实现求浮点数平方根FPSRQ(是FP运算的子集)对系统性能提高更大。假定FPSRQ操作占整个程序执行时间的20%。 一种设计方案是增加专门的FPSRQ硬件,可以将FPSRQ操作的速度加快到10倍; 另一种设计方案是提高所有FP运算指令的执行速度,使得FP指令的执行速度加快为原来的1.6倍,设FP运算指令在总执行时间中占50%。
25、试比较这两种设计方案。42 第一章 计算机系统结构的基本概念43 解:对这两种设计方案的加速比分别进行计算。 增加专门FPSRQ硬件方案:Fe = 20% = 0.2 , Se = 10 提高所有FP运算指令速度方案:Fe = 50% = 0.5 ,Se = 1.6 根据结果判断,提高所有FP运算指令速度的方案要好一些,这是由于该测试程序中浮点操作所占比重较大。 上例需要知道FPSQR硬件方法和改进FP操作的时间,直接测量这些时间是比较困难。因此,也使用后面介绍的 CPU性能公式来选择设计方案。44CPU性能公式 处理器性能的“铁律”:要直接测量使用新改进措施的改进时间是困难的。CPU性能公式
26、 一个程序执行时所花费的CPU时间: CPU时间 = 一个程序的CPU时钟周期数时钟周期 或 CPU时间 = 一个程序的CPU时钟周期数 / 频率此外,还可用一个程序的指令条数(用IC表示)和执行所需的时钟周期数,来计算出执行一条指令所需的平均时钟周期数CPI(Clock cycles Per Instruction): CPI = 一个程序的CPU时钟周期总数 / IC CPI是衡量不同指令和不同实现方法的一个处理器性能指标。45Calculation of CPU Time CPU time = Instruction count CPI Clock cycle timeOr 46 如程序
27、中有n类指令时,处理器设计用下式计算总的CPU时钟周期数: 其中 表示i类指令在程序中执行的次数, 表示i类指令所需的平均时钟周期数。以下式子表示CPU时间: 总的CPI也可以表示为: 其中,IC表示程序中总的指令数, /IC表示i类指令在程序中所占的比例(即i类指令执行频度,可统计获得)。 需要通过测量获得,它与流水线效率、Cache的命中率以及其他存储器效率等有关。 【例1-3 】假设针对一个测试程序有如下的测量值: FP指令(包括FPSRQ指令)的执行频度 = 25% FP指令的平均CPI = 4.0 其他指令的平均CPI = 1.33 FPSRQ指令的执行频度 = 2% FPSRQ指令
28、的CPI = 20 假定有两种备选的设计方案: 一种是将FPSRQ的CPI减至2;另一种是将所有FP的CPI减至2.5。 下面用CPU性能公式比较这两种方案。47 下面是对例1-2的两种设计方案,改用指令的执行频度和指令CPI来分析,在实际情况中可以通过仿真或使用硬件仪器来测量相应的指标。下面通过例子来说明上述CPU性能公式。 第一章 计算机系统结构的基本概念解:由题意可知,方案中只有CPI发生了变化,指令执行频度保持不变。首先计算改变之前的原始 : 先看第一种备选方案,根据公式 ,有:48 第一章 计算机系统结构的基本概念FP指令(包括FPSRQ指令)的执行频度 = 25%FP指令的平均CP
29、I = 4.0,其他指令的平均CPI = 1.33FPSRQ指令的执行频度 = 2%,FPSRQ指令的CPI = 20?对吗正确的解法是: 用原始的 减去改进了FPSRQ功能所节省的时间,就可以计算出改进FPSRQ方案的 : 可以用同样的方法计算改进所有FP方案的CPI,或通过将改进FP的CPI值和非FP的CPI值加起来得到。49 第一章 计算机系统结构的基本概念利用后一种方法的计算如下: 因为改进所有FP方案的CPI较小,所以这种方案的对CPU的性能提高更多。 由此得到加速比: 50 第一章 计算机系统结构的基本概念作业511试述Flynn 分类的4 种计算机系统结构有何特点。(1)单指令流
30、单数据流SISD(Single Instruction Stream Single Datastream),SISD 是传统的顺序处理计算机;(2)单指令流多数据流SIMD(Single Instruction Stream Multiple Datastream),SIMD 以阵列处理机为代表;(3)多指令流单数据流MISD(Multiple Instruction Stream Single Datastream),MISD 实际代表何种计算机,存在着不同的看法;(4)多指令流多数据流MIMD(Multiple Instruction Stream Multiple Datastream)
31、,多处理机与多计算机系统属于MIMD 结构。522假设高速缓存Cache 工作速度为主存的5 倍,且Cache 被访问命中的概率为90%,则采用Cache 后,能使整个存储系统获得多高的加速比?加速比 = 1/(1-0.9 +0.9/5) = 25/7533某工作站采用时钟频率为15 MHz、处理速率为10 MIPS 的处理机来执行一个已知混合程序。假定每次存储器存取为1 周期延迟,试问:(1)此计算机的有效CPI 是多少?(2)假定将处理机的时钟提高到30 MHz,但存储器子系统速率不变。这样,每次存储器存取需要两个时钟周期。如果30%指令每条只需要一次存储存取,而另外5%每条需要两次存储存
32、取,并假定已知混合程序的指令数不变,并与原工作站兼容,试求改进后的处理机性能。(1)CPI = 一个程序的CPU 时钟周期数/ IC = 时钟频率/MIPS =15/10 = 1.5 CPI时间是1.5*(1/15)us = 0.1us(2)由第一问可得原始CPI 为1.5 ,改进后一次访存操作需要2 个时钟周期,比改进前每次访存多了1 个时钟周期; 由于有30% 的指令由于需要1 次访存,所以它们的时钟周期数需要加1 ; 有5% 的指令由于需要2 次访存,所以它们的时钟周期数需要加2. 所以: CPI new = CPI original + 30%*1 + 5%*2 = 1.5 + 0.3
33、 + 0.1 = 1.9改进后CPI new的时间:1.9 *(1/30)us = 0.0627us54CPI = 一个程序的CPU 时钟周期数/ IC = 时钟频率/MIPS =15/10 = 1.5CPI时间是1.5*(1/15)us = 0.1us由第一问可得原始CPI 为1.5 ,改进后一次访存操作需要2 个时钟周期,比改进前每次访存多了1 个时钟周期; 由于有30% 的指令由于需要1 次访存,所以它们的时钟周期数需要加1 ; 有5% 的指令由于需要2 次访存,所以它们的时钟周期数需要加2. 所以可得 CPI new = CPI original + 30%*1 + 5%*2 = 1.
34、5 + 0.3 + 0.1 = 1.9改进后CPI new的时间:1.9 *(1/30)us = 0.0627us55564处理机的时钟30 MHz(1)计算在单处理机上用上述跟踪数据运行程序的平均CPI。(2)根据(1)所得CPI,计算相应的MIPS 速率。平均CPI = 1*60% + 2*18% + 4*12 + 8*10% = 2.24;MIPS = 时钟周期/CPI = 30M/2.24 = 13.4第二章 指令系统原理与实例2.1 简介2.2 指令集系统结构的分类2.3 存储器寻址2.4 操作数的大小和类别2.5 指令系统的操作2.6 控制流指令2.7 指令系统的编码2.8 相关问
35、题:编译器的角色 2.9 MIPS系统结构2.10 谬误和易犯的错误2.11 结论572.2指令集系统结构的分类指令集系统结构最根本的区别在于处理器内部的存储类型,所以本节主要讨论这方面的内容。主要的设计方案包括使用堆栈、累加器或者一组寄存器。操作数可以显式指定或者隐含指定: (1)堆栈系统结构中操作数隐含地位于栈顶 (2)累加器系统结构中的一个隐含操作数就是累加器。 (3)通用寄存器系统结构只能明确地指定操作数,不是寄存器就是存储器地址。58通用寄存器系统结构按照寄存器访问方式划分:(1)register-memory系统结构,任何一条指令都可以访问存储器。(2)load-store系统结构
36、,只能通过load和store指令来访问内存。(3)memory-momery系统结构,所有操作数都在存储器中,现代处理器已不使用。 早期的计算机使用堆栈型或累加器型指令系统结构,但1980年代后计算机都基本采用load-store系统结构。主要原因来自于General-purpose寄存器(GPR)的出现。59不同的系统结构的方块图(四类指令系统结构中操作数的位置) 栈顶寄存器(TOS)60输入输出堆栈结构累加器结构通用寄存器结构通用寄存器系统结构由两个特性来划分:指令是否有两个或者三个操作数。 在三个操作数格式中,指令包含一个结果(目的操作数)和两个源操作数。在两个操作数的格式中,有一个既
37、是结果操作数也是源操作数。ALU指令中可以有多少个操作数作为存储器地址。 典型的ALU指令中所支持的存储器操作数的数量可能从0个到3个不等。612.3存储器寻址存储器地址表示 我们讨论的所有指令系统都是字节寻址的,都提供了字节(8位)、半字(16位)和字(32位)寻址,大多数的计算机还提供了双字(64位)寻址。内存中的字节内存中的字62小端模式&大端模式小端模式把地址为“XX000”的字节放在整个字的最低有效位置上,字节内各位编码为大端模式把地址为“XX000”的字节放在整个字的最高有效位置上,字节内各位编码为 765432100123456763对齐:假设一个大小为s个字节的数据地址是A,如
38、果A mod s=0,访问该地址就是对齐的。字节地址的低三位数据宽度012345671字节(字节)对齐对齐对齐对齐对齐对齐对齐对齐2字节(半字)对齐对齐对齐对齐2字节(半字)未对齐未对齐未对齐未对齐4字节(字)对齐对齐4字节(字)未对齐未对齐4字节(字)未对齐未对齐4字节(字)未对齐未对齐8字节(双字)对齐8字节(双字)未对齐8字节(双字)未对齐8字节(双字)未对齐8字节(双字)未对齐8字节(双字)未对齐8字节(双字)未对齐8字节(双字)未对齐64寻址方式 寻址方式是指各种系统结构如何指定它们所要访问的对象的地址。寻址方式指定常量和存储器位置。选择适合的寻址方式能明显减少指令数量。但也增加了实
39、现的复杂度和实现这些寻址方式的计算机的平均CPI。对于系统结构设计者,如何选择各种寻址方式很重要。65寻址方式指令举例含义何时使用寄存器寻址Add R4,R3RegsR4RegsR4+RegsR3数值在寄存器中立即数寻址Add R4,#3RegsR4RegsR4+3数值是常量位移量寻址Add R4,100(R1)RegsR4RegsR4 +Mem100+RegsR1存取局部变量(+模拟寄存器间接、直接寻址)寄存器间接寻址Add R4,(R1)RegsR4RegsR4+MemRegsR1使用指针或者计算出的地址进行寻址间接寻址Add R3,R1+R2RegsR3RegsR3 +MemRegsR1
40、+RegsR2有时用在数组寻址中索引寻址Add R1,(1001)RegsR1RegsR1 +Mem1001R1是数组的基址,R2是索引值用来存取静态数据;地址常量可能需要很大存储器间接寻址Add R1,(R3)RegsR1RegsR1 +MemMemRegsR3如果P3是指针p的地址,那么就得到*p自动递增寻址Add R1,(R2)+RegsR1RegsR1+MemRegsR2RegsR2RegsR2+d用在循环中递增变量,R2是数组的起始地址,每次增加d自动递减寻址Add R1,-(R2)RegsR2RegsR2-dRegsR1RegsR1+MemRegsR2和自动递增类似,自动递增/递减
41、用来实现类似堆栈的push/pop功能比例寻址Add R1,100(R2)R3RegsR1RegsR1+Mem100+RegsR2+RegsR3*d用来对数组寻址。一些计算机可以用任意的索引(间接)寻址方式662.5指令系统的操作大多数指令集系统结构都支持的操作可以按下图进行分类:操作类型举例算术和逻辑运算定点算术和逻辑操作:加、减、与、或、乘、除数据传输Load-store指令(在存储器寻址的计算机上是传送指令)控制转移、跳转、过程调用和返回、陷阱系统操作系统调用、虚拟存储器管理指令浮点浮点操作:加、乘、除、比较十进制十进制加、十进制乘、十进制到字符的转换字符串字符串传送、字符串比较、字符串
42、匹配图像像素、顶点操作、压缩/解压缩操作共同的规律:指令系统中使用最多的是一些简单指令。一般所有的计算机都提供前三类指令。根据系统结构不同指令系统对系统功能的支持有很大的差别,但是所有的计算机都必须提供对基本系统功能的支持。672.7 指令系统的编码对指令进行编码时,寄存器和寻址方式的数量对指令的大小有明显的影响,因为在一条指令中,寄存器字段和地址字段都可能出现很多次。实际上,大多数指令用于寻址方式和寄存器编码上的位数比用在操作码上的位数还要多。对指令进行编码时,应该在下面的几个因素之间找到一个最佳平衡点:1、尽可能多的寄存器和寻址方式。2、平均指令长度中用来存放寄存器和寻址方式的字段尽量少,
43、从而使程序尽量小。3、指令的长度应该易于用流水线处理。68三种常见编码方式操作和操作数个数地址标识符1地址字段1地址标识符n地址字段n操作地址字段1地址字段2地址字段3操作地址标识符地址字段操作地址标识符1地址标识符2地址字段操作地址标识符地址字段1地址字段2(a)变长编码(如VAX和Intel 80 x86)(b)定长编码(如Alpha,ARM,MIPS,PowerPC,SPARK,SuperH)(c)混合编码(如IBM360/370,MIPS16,Thumb, TI TMS320C54x)支持多个操作数,代码长度通常最小。代码长度通常最大。以减轻多种结构的指令带来的工作负担,但仍提供多种指
44、令长度以减少代码长度。69适合寻址方式和操作比较多的情形适合寻址方式和操作比较少的情形变长编码的例子X86指令:Add EAX, 1000(EBX)Add是有两个操作数的32位加法指令,其中操作码1个字节;地址标识符占1个字节,用于确定源或目标寄存器(EAX)和寻址方式及第二个操作数的基址寄存器(EBA);地址字段4个字节指令长度为1+1+4=6字节X86指令长度从1字节到7字节不等。它的程序通常比使用定长编码的RISC程序要小。70RISC中的精简代码 混合编码方式,包括16位和32位指令。较短的指令支持较少的操作,较小且相近的地址和较少的寄存器,同时还放弃了典型RISC的三地址指令格式而采
45、用两地址格式。(ARM Thumb,MIPS 16)IBM CodePack:将标准指令压缩,添加新硬件来译码。指令Cache只保存32位指令,压缩的指令留在存储器、ROM和磁盘中。编译器无须修改就可以处理不同的指令系统,而且指令的译码也很容易。SuperH:为配合较短的指令格式和较少的操作,这种指令系统只有16个寄存器而不是32个,但其它方面均与典型的RISC系统类似。71723.3 流水线中的冒险问题1 什么是流水线冒险下面的这段MIPS代码,对存储器中的数组元素做递增操作,0(R1)存放数组的首地址,8(R2)存放数组元素的尾地址,F2中存放标量S。 Loop:L.D F0, 0(R1)
46、;ADD.D F4, F0, F2;S.D F4, 0(R1);DADDUI R1, R1, #-8;BNE R1, R2, LoopF0=数组元素加上F2中的标量保存结果;指针减8字节R1!=R2时转移73流水线中的冒险主要分为以下3种类型: 1.结构冒险 2.数据冒险 3.控制冒险 第三章 流水线技术冒险总是可以用停顿解决解决冒险最简单的方式就是停顿流水线停顿意味着为某些指令暂停流水线一个或多个时钟周期。 一条指令被停顿后,其后的所有指令被停顿;该指令之前的指令必须继续执行。一个流水线停顿也称为流水线气泡或气泡。 停顿时,没有任何新的指令被取到流水线。流水线的性能流水线处理器的理想CPI
47、差不多总是1。 (may less than or greater that ) 因此:忽略流水线时钟周期的额外开销。流水段是理想平衡的。 74流水线CPI=理想CPI+每条指令的平均停顿周期数 = 1 +每条指令的平均停顿周期数有停顿的流水线性能停顿会降低流水线的性能,使其性能比理想的差流水线加速比= = = =非流水线指令的平均执行时间流水线指令的平均执行时间非流水线CPI * 非流水线时钟周期流水线CPI * 流水线时钟周期非流水线CPI * 非流水线时钟周期(1+每条指令的平均停顿周期数)* 流水线时钟周期流水线的级数1+每条指令的平均停顿周期数76 2 流水线中的结构冒险 如果某些指
48、令组合在流水线中重叠执行时产生了资源冲突,那么我们称该流水线有结构冒险。 由于访问同一个存储器而引起的结构冲突 第三章 流水线技术寄存器冲突!7778对于这种冲突,通常有以下两种解决方法 解决办法(1): 插入暂停周期,即让流水线在完成前一条指令对数据的存储器访问时,暂停取后一条指令的操作 MM 第三章 流水线技术79解决方法(2): 设置相互独立的指令存储器和数据存储器或设置相互独立的指令Cache和数据Cache 第三章 流水线技术80 第三章 流水线技术解决方法(3): 预取指令技术 允许在一个时钟周期WB段先写,ID段后读每个时钟周期完成2个读和一个写需要提供2个读端口和一个写端口当写
49、和读同一个寄存器会发生什么? (数据冒险 Data hazard )81解决方法(4):重新设计寄存器堆资源结构冒险总结Taxonomy of Hazards 结构冒险 硬件资源冲突解决:可以增加硬件资源; 或者功能部件完全流水 ; 否则,只有停顿流水线Data hazardsInstruction depends on result of prior computation which is not ready (computed or stored) yetControl hazards branch condition and the branch PC are not availabl
50、e in time to fetch an instruction on the next clock82833 流水线中的数据相关如果下面的条件之一成立,则指令j与指令i数据相关:(1)指令j使用指令i产生的结果(2)指令j与指令k数据相关,指令k与指令i数据相关,则指令j与指令i数据相关。第2个条件指出,如果两条指令之间存在类似上述的传递关系,则它们之间也存在冒险的。这条相关链甚至可以贯穿整个程序。 第三章 流水线技术数据冒险基本结构一条指令想要使用还没有“完成”的数据值“完成”表示“数据值已经被计算了”和“值已经被放好,正常情况可以在流水线硬件中找到它”原因习惯上总是假定采用纯串行指令执
51、行模型对于k = 1 ,指令N在指令N+1之前完成在相邻指令之间有依赖存在结论数据冒险指令想要的数据值还没有完成,或者值没有在正确的地方84数据相关/冒险:例子85数据相关有3个方面的意思:存在冒险的可能性;必须遵循的计算顺序;决定了可以达到的并行度的上界。解决数据冒险的一般方式:1. 保持冒险,但要避免风险;(调度代码技术)2. 消除冒险,通过变化(transform)代码。由于数据可以在寄存器和存储器之间流动。当数据在寄存器中出现时,检测相关很容易,因为寄存器名字在指令中是固定的。对于存储器之间的数据相关的检测会更难,因为多个看起来不同地址可能指的是同一个地址,例如100(R4)和20(R
52、6)可能是86 第三章 流水线技术相同的地址,例如100(R4)和20(R6)可能是相同的地址,而随着指令的执行,前一个20(R4)和后一个20(R4)可能就不同了。87解决数据冒险的一般技术:暂停流水线;使用相关专用数据通路;编译优化调度(静态调度);动态调度。 第三章 流水线技术BubbleBubbleBubbleBubbleBubbleBubbleBubbleBubbleBubble怎样停顿?软件方式:由编译器插入 nop 指令(软件)88RsRtRdRdRdRs =? RdRt =? Rdbetween IF/ID and ID/EX, EX/MEM Stages89怎样停顿?硬件方式
53、:增加相应的检测机制ExampleDSUB R2, R1, R3 Rd = R2 Rs = R1 Rt = R3AND R12, R2, R5 Rd = R12 Rs = R2 Rt = R5OR R13, R6, R2 Rd = R13 Rs = R6 Rt = R2DADDR14, R2, R2 Rd = R14 Rs = R2 Rt = R2SWR15, 100(R2) Rd = R15 Rs = R2 Rt = XXSUB-AND HazardID/EX.RegRd(sub) = IF/ID. RegRs(and) = R2SUB-OR HazardEX/MEM.RegRd(sub)
54、= IF/ID. RegRt(or) = R2AND-OR: No HazardID/EX.RegRd(and)=R12 IF/ID.RegRt Or IF/ID.RegRs 90刚才介绍了暂停流水线的两种机制,软件方式和硬件方式,那么是否真的必须暂停流水线才能避免数据冒险?9192 4 流水线的控制冒险 控制冒险是指因为程序的执行方向可能被改变而引起的相关。可能改变程序执行方向的指令通常有无条件转移、条件转移、子程序调用、中断、异常等。无条件转移指令在程序中的使用情况一般如下 k: k1: JMP Lk2: ADD R1, R2, R3 L: SUB 第三章 流水线技术例如,有条件转移指令的
55、程序:93 MOV R1,NUM LOOP: DEC R1 JGE LOOP ;=0转移 SUB从相关的角度看,转移指令与后续指令之存在着一种冒险,使后续指令不能同时进入流水线执行,故称为控制冒险。 第三章 流水线技术下一条指令PC要花时间计算对于条件转移,转移分析要花时间计算控制冒险会引起MIPS流水线的性能损失比数据冒险大得多。Example: Branches240094控制冒险2495在第4个阶段计算出转移地址处理控制冒险四种简单的处理方式冻结或冲刷流水线假设转移不发生处理每条转移指令都当作未发生转移假设转移发生Treat every branch as takenDelayed br
56、anchNote:以上任何一种方法都会使硬件固定编译时会根据硬件机制和转移行为对代码进行调度,以获取最佳性能961. 冻结或冲刷流水线Simplest hardware:在转移目标地址确定前,保持或者删除转移指令后进入流水线的指令。性能损失是固定的,不能通过软件来减少。9748 or 72 24981. 冻结或冲刷流水线 冻结或冲刷流水线会造成大的性能损失?Problem:程序中有30%的转移频率,理想CPI为1,插入stalls后的性能是多少?Answer:CPI = 1+30%1.9这种方法得到的性能大约只有理想性能的一半。99Always Stalling Hurts the Not-
57、taken case241002. 假设转移不发生24101假设转移不发生(Predict not-taken)Hardware:对每条转移指令都当作转移未选中处理 (or as the formal instruction)当转移未选中时,取到的指令正好是要继续执行的,没有任何停顿。编译时,将使用频率最高的代码放在转移未选中路径上,改进性能。如果转移选中,则怎么处理?102如果转移是发生的会怎样?24103如果转移是发生的会怎样?241043. 假设转移选中(Predict taken)Hardware将所有转移指令都当作转移选中处理 (evidence: more than 60% bra
58、ches are taken)只要转移目标地址计算出来,就开始取目标指令。只有在目标地址计算比转移结果更早产生才有用。对于经典5段流水线(如前页图),是先得到转移结果后得到转移目标地址,因此转移选中方法没有任何益处。Compiler编译时,将使用频率最高的代码放在转移选中路径上,改进性能。105转移选中:转移地址提前计算转移时,目标地址提前到ID段计算,转移条件判断不变。106Pipeline status for predict-taken44 BEQ R1, 24IFIDEXMEMWB48 AND R12, R2, R5IFidleidleidleidle72 LW R4, 50(R7)I
59、FIDEXMEMWB76IFIDEXMEM80IFIDEXBranch is not taken: 3 stall44 BEQ R1, 24IFIDEXMEMWB48 AND R12, R2, R5IFidleidleidleidle72 LW R4, 50(R7)IFIDidleidleidle76IFidleidleidle48 AND R12, R2, R5IFIDEXBranch is taken: 1 stall107转移未选中/选中的问题流水线按照假定的转移方向执行通常,选择方向是正确的,可以节省时钟周期偶尔,选择是错误的结论开始执行选择错误的指令要修复,则 必须确认这些错误指令没
60、有真正执行尤其是,必须保证错误指令没有改变机器状态108Result: New & Improved MIPS Datapath在BEQ指令后,只需要1个额外周期就可以知道正确地址On MIPS, its called - the branch delay slot48 or 72 24109Flushing : 只需插入one stall解决控制冒险(硬件固定)48 or 72 40 ADD R30,R30,R30IF IDEXMEMWB44 BEQ R1, 24IFIDEXMEMWB48 AND R12, R2, R5IFidleidleidleidle48 or 72IFIDEXMEM1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 图书工作计划推广绿色阅读倡导环保理念
- 新年加强时间管理的工作计划
- 放射科个人工作计划
- 会计工作目标设定与执行计划
- 第2课 昂首阔步-计时器和对象的位移 教学设计 -2023-2024学年粤教清华版初中信息技术九年级上册
- 2025年葫芦岛货运从业资格考试题
- 人教版九年级道德与法治下册同步教学设计第一单元《我们共同的世界》001
- 2025年许昌货运从业资格证模拟考试下载
- 天津市多校2024-2025学年高一(上)11月半期检测物理试卷(含解析)
- 消防安全培训方案
- 2022年江西科技职业学院单招综合素质考试笔试试题及答案解析
- 季节性施工专项施工方案(常用)
- 伤口(压疮)的评估与记录
- 煤矿机电运输类台账(各种记录汇编)
- 风电场道路及平台施工组织方案
- 风险分级管控74411ppt课件(PPT 146页)
- 三八女神节活动策划PPT课件
- 毕业设计(论文)3000t自由锻液压机本体设计
- 风力发电机组PLC系统
- Q∕GDW 12131-2021 干扰源用户接入电网电能质量评估技术规范
- T∕CAEPI 32-2021 全尾砂膏体充填关键设备技术要求
评论
0/150
提交评论