计算机系统结构(第2版)清华大学计算机系列教材郑纬民汤志忠编著课程介绍1.课程名称ComputerArchitecture计算机系统结构计算机体系结构建筑物的设计或式样,通常指一个系统的外貌2.研究内容从外部来研究计算机系统使用者所看到的物理计算机的抽象编写出能够在机器上正确运行的程序所必须了解到的计算机属性3.学习目的建立计算机系统的完整概念学习计算机系统的分析方法和设计方法了解计算机系统的最新研究成果4.学科方向一级学科1个:计算机科学与技术二级学科3个:计算机系统结构、计算机软件及理论、计算机应用技术全国重点学科:计算机系统结构、计算机应用技术5.与其他学科的交叉学科交叉:计算机组成、操作系统、汇编语言、数据结构、微计算机技术、计算机网络、……新内容:超标量处理机、超流水线处理机、VLIW处理机、向量处理机、并行处理机、多处理机、互连网络、……计算机系统结构正处于变革时期软件-系统结构-实现技术,两头发展快中间慢非冯计算机正兴起系统结构的发展时期已经到来6.课程安排课内:64学时,实验:16学时,课内外比例:课内1:课外1除完成作业之外,还要多看参考书多看好论文(被SCI、EI收录),了解国内外最新研究成果7.教材和参考书教材:清华大学计算机系列教材:计算机系统结构(第二版),清华大学出版社参考书:(1)DavidA.PattersonandJohnL.Hennessy,ComputerArchitecture:AQuantitativeApproach3Ed.SanFrancisco:MorganKaufmannPublishers中文:计算机系统结构:一种定量的方法(第二版,第三版即将出版),清华大学出版社(2)KaiHwang,AdvancedComputerAcrchitectureParallelismScalabilityProgrammability中文:高等计算机系统结构:并行性可扩展性可编程性,清华大学出版社、广西科学技术出版社1.1计算机系统结构简介1.2计算机系统的评价标准1.3计算机系统的设计技术1.4计算机系统结构的发展1.5计算机系统的分类第1章基本概念1.1计算机系统结构简介1.1.1为什么要研究系统结构1.1.2如何认识计算机系统1.1.3计算机系统结构的定义1.1.4计算机组成技术1.1.5计算机实现技术1.1.1为什么要研究系统结构1.提高处理机运算速度:MIPS=FzIPC其中:Fz为处理机的工作主频IPC(InstructionPerCycle)为每个时钟周期平均执行的指令条数提高IPC:依靠先进系统结构过去,几个或几十个周期完成一条指令现在,一个周期完成几条指令提高Fz:缩短门电路延迟,依靠技术进步流水线技术等,依靠先进系统结构从指令串行执行,到P4的20级流水线350300250200150100500198519851986198719881989199019911992199319941995DECAlpha••••••••••••••••••••SUN4IBMPower1MIPSR2000DECAlphaMIPSR3000HP900IBMPower2DECAlpha每年1.58倍每年1.35倍SPECint速度指标依靠技术进步性能每年提高35%先进系统结构对性能的贡献是技术进步的5倍2.计算机性能提高的几个阶段20世纪70年代末之前,大型机和小型机计算机性能每年提高25%~30%。20世纪80年代初,出现微处理机,依靠集成电路技术,性能每年提高35%20世纪80年中期,出现RISC技术、高级语言和操作系统等,性能每年提高50%1995年,先进系统结构对微处理器性能的贡献是单纯技术进步的5倍。3.近几年及将来,计算机性能按摩尔定理发展。4.计算机系统的设计者们要不断创新。1.1.2如何认识计算机系统1.虚拟计算机定义:从不同角度所看到的计算机系统的属性是不同的。主要观察角度包括:应用程序员系统程序员硬件设计人员对计算机系统的认识通常只需要在某一个层次上广义语言虚拟计算机解释或编译作用对象观察者虚拟计算机系统2.计算机系统的层次结构•计算机系统可分为7个层次•第3级至第6级由软件实现,称为虚拟机•从学科领域来划分:第0级和第1级属于计算机组成原理第2级属于计算机系统结构第3至第5级属于系统软件第6级属于应用软件•它们之间有交叉例如:第3级必须依赖第4级和第5级来实现计算机系统的层次结构第6级:应用程序第5级:高级语言第4级:汇编语言第3级:操作系统第2级:机器语言第1级:微程序第0级:硬联逻辑应用软件系统软件硬件软硬件分界应用语言第6级应用程序应用程序信息处理系统用户高级语言第5级高级语言解释程序编译程序可执行程序高级语言程序员汇编语言第4级汇编语言汇编程序可执行程序汇编语言程序员系统原语键盘命令第3级操作系统操作系统系统资源系统操作员指令系统第2级机器语言中央处理机目标程序机器语言程序员指令时序第1级微程序控制微程序控制寄存器逻辑逻辑设计员操作时序第0级硬联逻辑硬联逻辑逻辑线路硬件设计员3.透明性概念•定义:本来存在的事物或属性,从某种角度看似乎不存在•例如:CPU类型、型号、主存储器容量等对应用程序员透明对系统程序员、硬件设计人员等不透明•例如:浮点数表示、乘法指令对高级语言程序员、应用程序员透明对汇编语言程序员、机器语言程序员不透明•例如:数据总线宽度、微程序对汇编语言程序员、机器语言程序员透明对硬件设计人员、计算机维修人员不透明1.1.3计算机系统结构的定义计算机系统结构定义一Amdahl于1964年在推出IBM360系列计算机时提出:程序员所看到的计算机系统的属性,即概念性结构和功能特性程序员:系统程序员(包括:汇编语言、机器语言、编译程序、操作系统)看到的:编写出能在机器上正确运行的程序所必须了解到的概念性结构IBM360系列计算机的概念性结构主存储器主存控制器CPUIOPIOP打印机磁盘机卡片机磁带机终端•数据表示:硬件能够直接认别和处理的数据类型;•寻址技术:编址方式、寻址方式和定位方式等;•寄存器组织:操作数寄存器、变址寄存器、控制寄存器及专用寄存器的定义、数量和使用规则等;•指令系统:操作类型、格式,指令间的排序控制等;•中断系统:中断类型、中断级别和中断响应方式等;•存储系统:寻址空间、虚拟存储器、Cache存储器等;•处理机工作状态:定义和切换方式,如管态和目态等;•输入输出系统:数据交换方式、交换过程的控制等;•信息保护:信息保护方式和硬件对信息保护的支持等。功能特性指令系统及其执行模式2.计算机系统结构定义二研究软硬件功能分配和对软硬件界面的确定计算机系统由软件、硬件和固件组成,它们在功能上是同等的。同一种功能可以用硬件实现,也可以用软件或固件实现。不同的组成只是性能和价格不同,他们的系统结构是相同的。系列计算机概念:相同系统结构,不同组成和实现的一系列计算机系统。1.1.4计算机组成技术1.课程名称ComputerOrganization计算机组成,计算机组织,计算机原理,计算机组成原理2.研究方法从内部研究计算机系统计算机组成是指计算机系统结构的逻辑实现。3.主要研究内容•确定数据通路的宽度;•确定各种操作对功能部件的共享程度;•确定专用的功能部件;•确定功能部件的并行度;•设计缓冲和排队策略;•设计控制机构;•确定采用何种可靠性技术。1.1.5计算机实现技术计算机实现是指计算机组成的物理实现主要包括:处理机、主存储器等部件的物理结构;器件的集成度和速度;专用器件的设计;器件、模块、插件、底版的划分与连接;信号传输技术;电源、冷却及装配技术,制造工艺及技术等。随着技术、器件和应用的发展,三者之间的界限越来越模糊。1.2.1运算速度1.2.2存储器系统1.2.3其他性能1.2.4价格标准1.2计算机系统的评价标准1.2.1运算速度运算速度是表示处理机性能的主要指标。有多种表示处理机运算速度的方法。哪一种表示方法合理?1.时钟频率(处理机主频)只能用于同一公司、同一类型、同一配置的处理机如:Pentium42.0G比Pentium41.6G快25%?Pentium42.4G比Pentium41.6G快50%?只表示CPU的指令处理能力实际运算速度还与Cache、内存、I/O、被执行程序等均有关。2.指令执行速度•一种经典的表示运算速度的方法MIPS(MillionInstructionsPerSecond),GIPS,TIPS其中:Fz为处理机的工作主频CPI(CyclesPerInstruction)为每条指令所需的平均时钟周期数IPC(InstructionPerCycle)为每个时钟周期平均执行的指令条数例1:计算PentiumIV2GHz处理机的指令执行速度。MIPS10FzCPIIPCFz6指令条数执行时间•解:由于PentiumIV2GHz处理机的IPC=4(或CPI=0.25),Fz=2000MHz因此,MIPSPentiumIV2G=FzIPC=20004=8000MIPS=8GIPS即每秒钟80亿次(平均每秒钟执行80亿条指令)•主要优点:直观、方便。目前还经常使用•主要缺点:(1)不同指令的执行速度差别很大(2)指令使用频度差别很大(3)有相当多的非功能性指令3.等效指令速度:吉普森(Gibson)法:加减法50%,乘法15%,除法5%,程序控制15%,其他15%静态指令使用频度:在程序中直接统计动态指令使用频度:在程序执行过程中统计niii1)Weight(TimeT等效指令执行时间nii1MIPSWeight1MIPS等效指令速度)(等效niii1WeightCPICPI例2:我国早期研制的一种小型计算机DJS-130定点16位,加法指令每秒50万次,但没有硬件乘除法指令。用软件实现乘除法,速度低100倍左右。求等效指令速度。解:等效指令速度为:MIPS0.02)100/0.50.200.50.80(1MIPS等效指令速度即每秒2万次,由于用软件实现乘除法,等效指令速度降低了25倍。例3:假设在一般程序中浮点开平方操作FPSQR所占的比例为2%,它的CPI为100;其他浮点操作FP所占的比例为23%,它的CPI=4.0;其余75%指令的CPI=1.33,计算该处理机的等效CPI。如果FPSQR操作的CPI也为4.0,重新计算等效CPI。解:等效CPI1=1002%+423%+1.3375%=3.92等效CPI2=425%+1.3375%=2.00改进了在用户程序中仅占2%的开平方操作,整个机器的等效运算速度提高了近一倍。4.指令执行速度的4种平均方法•算术平均:•调和平均(用速率来度量):•加权平均加权算术平均:加权调和平均:niin1Time1niin1Rate1iniinWeightTime11niii1RateWeight1•几何平均:其中:n指不同的程序,ETR(executiontimeratio)i是第i个程序相对于参考机器正交化后的执行时间几何平均速度与所参考的机器无关,有如下性质:几何平均值的比率等于比率的几何平均值nniiETR1的几何平均值的几何平均值的几何平均值iiiiYXYX运行程序P1时,A的速度是B的10倍;运行程序P2时,B的速度是A的10倍;运行程序P1时,A的速度是C的20倍;运行程序P2时,C的速度是A的50倍;运行程序P1时,B的速度是C的2倍;运行程序P2时,C的速度是B的5倍。例4:两个程序在三台机器上的执行时间机器A机器B机器C程序P1(秒)11020程序P2(秒)100010020算术平均:程序P1和P2各执行1次,B的速度是A的9.1倍;程序P1和P2各执行1次,C的速度是A的25倍;程序P1和P2各执行1次,C的速度是B的2.75倍。结论:执行程序P1和P2相同次数,机器A最慢,机器C最快算术平均速度:三台机器的速度之比为:A:B:C=1:9.1:25加权算