资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,考试,1,复习,计算机系统结构的定义,指令在处理器中的执行流程,性能的衡量,指令集,:,软硬件界面,instruction set,software,hardware,The actual programmer visible instruction set,计算机系统的层次结构,从使用语言的角度,把计算机系统按功能划分成多级层次结构,5,指令的组成,一般的指令主要由两部分组成:,操作码和地址码,地址码通常包括三部分内容:,地址:地址码、立即数、寄存器、变址寄存器,地址的附加信息:偏移量、块长度、跳距,寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址,操作码主要包括两部分内容,操作种类:,加、减、乘、除、数据传送、移位、转移、输入输出、程序控制、处理机控制等,操作数描述:,数据的类型:,定点数、浮点数、复数、字符、字符串、逻辑数、向量,进位制:,2,进制、,10,进制、,16,进制,数据字长:,字、半字、双字、字节,Quantitative principles,Improve means,increase performance,decrease execution time,“X is n%faster than Y”,Quantitative principles,Make the common case fast,Amdahls Law,Locality of reference,90%of execution time in 10%of code,CPU,性能公式,CPU,的性能取决于三个要素:,时钟频率,f(,或时钟周期,t),;,每条指令所花的时钟周期数,CPI,;,指令条数,IC,一个程序所花的,CPU,时间,(T),可以用两种方式来表示:,CPU,时间,(T)=CPU,时钟周期数,(CPIIC)*,时钟周期长,(t),每条指令的平均时钟周期数:,系统结构的评价标准,评价一个计算机系统结构好坏的标准主要是性能和成本这两个指标。,性能,衡量机器性能的唯一固定而且可靠的标准就是真正执行程序的时间。,1,主要标准,(1)MIPS,MIPS,表示每秒百万指令条数。对于一个给定的程序,,MIPS,定义为:,程序的执行时间为:,愈快的机器其,MIPS,愈高,9,2.1.1,数据表示与数据类型,数据表示的定义:,指计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型。,(,由硬件实现的数据类型,),数据结构:,面向计算机系统软件、面向应用领域所需处理的数据类型。,由软件实现的数据类型,确定哪些数据类型用数据表示实现,是软件与硬件的取舍问题。,确定数据表示的原则:,1.,缩短程序的运行时间,2.,减少,CPU,与主存储器之间的通信量,3.,这种数据表示的通用性和利用率,数据表示在不断发展、扩大,用软件和硬件相结合的方法实现新的数据表示,10,2.1.3,自定义数据表示,一般处理机中的数据表示方法,数据存储单元,(,寄存器、主存储器、外存储器等,),只存放纯数据,通过指令中的操作码来解释:,数据的类型,(,定点、浮点、字符、字符串、逻辑数、向量等,),进位制,(2,进制、,10,进制、,16,进制等,),数据字长,(,字、半字、双字、字节等,),寻址方式,(,直接寻址、间接寻址、相对寻址、寄存器寻址,数据的功能,(,地址、数值、控制字、标志等,),等,同一种操作,(,如加法,),有很多条指令,在高级语言和应用软件中,数据的属性由数据自己定义。,在高级语言与机器语言之间的语义差距,要靠编译器等填补,60,年代开始,,Burroughs,公司在大型计算机中引入自定义数据表示方式和带标志符的数据表示方式,11,2.2,寻址技术,寻找操作数及其他信息的地址的技术称为寻址技术,内容:编址方式、寻址方式和定位方式,对象:寄存器、主存储器、堆栈和输入输出设备,方法:分析各种寻址技术的优缺点,如何选择和确定寻址技术,2.2.1,编址方式,欲寻址先编址,2.2.2,寻址方式,2.2.3,定位方式,重点是寻址方式的选择方法,12,2.3,指令格式的优化设计,主要目标:,节省程序的存储空间,指令格式尽量规整,便于译码,研究内容:,操作码的优化表示;地址码的优化表示,2.3.1,指令的组成,2.3.2,操作码的优化设计,2.3.3,地址码的优化设计,2.3.4,指令格式设计举例,13,2.4,指令系统的功能设计,完整性,是指应该具备的基本指令种类,通用计算机必须有类基本指令,规整性,包括对称性和均匀性,对称性,:所有寄存器同等对待,操作码的设置等都要对称,,如:,A-B,与,B-A,均匀性,:不同的数据类型、字长、存储设备、操作种类要设置相同的指令,高效率,:指令的执行速度要快;指令的使用频度要高;各类指令之间要有一定的比例,兼容性,:在同一系列机内指令系统不变,(,可以适当增加,),CISC VS RISC,14,指令系统的优化设计,指令系统的优化设计有两个截然相反的方向:,1.,复杂指令系统计算机,CISC,(Complex Instruction Set Computer),增强指令功能,设置功能复杂的指令,面向目标代码、高级语言和操作系统,用一条指令代替一串指令,2.,精简指令系统计算机,RISC,(Reduced Instruction Set Computer),只保留功能简单的指令,功能较复杂的指令用子程序来实现,15,存储系统,Cache,虚拟存储器,要达到的目标,提高速度,扩大容量,实现方法,全部硬件,软件为主硬件为辅,两级存储器速度比,310,倍,10,5,倍,页,(,块,),大小,116,字,1KB16KB,等效存储容量,主存储器,虚拟存储器,透明性,对系统和应用程序员,仅对应用程序员,不命中时处理方式,等待主存储器,任务切换,Cache,存储系统与虚拟存储系统比较,16,3.2.1,虚拟存储器工作原理,页式、段式和段页式三种虚拟存储器,页式虚拟存储器,存储器被划分为固定大小的块(页),,主存储器的页称为实页,,虚拟存储器中的页称为虚页。,用户号,U,虚页号,P,页内偏移,D,多用户虚拟地址,Av,的组成,实页号,p,页内偏移,d,主存地址,A,的组成,17,3.3.1,基本工作原理,块号,B,块内地址,W,主存,/Cache,地址变换,块号,b,块内地址,w,Cache,Cache,替换策略,储器,主存,替换块,装入块,已满,未满,未命中,命中,数据送,CPU,主存地址来自,CPU,18,提高存储系统速度的两条途径,一是提高命中率,H,二是两个存储器的速度不要相差太大,虚拟存储器,寻址时间长,两级存储器的速度相差得特别悬殊,T2/T1105,但数据传输速率较快,主要依靠较大量的预取提高命中率,磁盘在物理上是以块为单位,(,每块,512,个字节,),访问的,在逻辑上通常以,1KB,以上为单位访问。,虽然磁盘存储器的寻址时间很长,但当磁头找到要访问的数据块之后,数据的传输速率还是相当高的。,当不命中时,把将要使用的一大批程序和数据都调入主存储器,使得在以后的几万次,乃至几十万次以上的对虚拟存储系统的访问,都能在主存储器中命中。,Cache,存储系统,提高命中率有困难,两个存储器的速度不要相差两个数量级,两级、三级,Cache,19,3.3.3 Cache,替换算法及其实现,Cache,替换算法使用的时间:,发生块失效,且可以装入新调入块的几个,Cache,块都已经被装满时,直接映象方式实际上不需要替换算法,全相联映象方式的替换算法最复杂,Cache,替换算法要解决的问题:,记录每次访问,Cache,的块号,管理好所记录的,Cache,块号,为找出被替换的块号提供方便,根据记录和管理的结果,找出被替换的块号,Cache,替换算法的主要特点:,全部用硬件实现,20,3.3.4 Cache,的性能分析,Cache,存储系统的主要目标:,Cache,存储系统的加速比,Cache,存储系统的一致性问题,21,3.3.4.2 Cache,的一致性问题,本节讨论的内容仅限于单处理机、单存储器,造成,Cache,与主存的不一致的原因:,由于,CPU,写,Cache,,没有立即写主存,由于,IO,处理机或,IO,设备写主存,Cache,的更新算法,写直达法,(,写通过法,),Write-through,CPU,在执行写操作时,把数据同时写入,Cache,和主存,写回法,(,抵触修改法,)Write-Back,CPU,数据只写入,Cache,,不写入主存,仅当替换时,才把修改过的,Cache,块写回到主存,22,3.3.4.3 Cache,的预取算法,预取算法有如下几种:,按需取在出现,Cache,不命中时,把一个块取到,Cache,中来,恒预取无论,Cache,是否命中,都把下一块取到,Cache,中,不命中预取 当,Cache,不命中,把本块和下一块取到,Cache,中,输入输出系统主要内容:,(,1,)、输入输出原理(三种基本的输入输出方式),(,2,)、中断系统(中断源的组织、中断系统的软硬件功能分配、中断屏蔽),(,3,)、通道处理机(三种通道类型),(,4,)、输入输出处理机,24,4.1.3,基本输入输出方式,对于工作速度、工作方式和工作性质不同的外围设备,基本输入输出方式有如下三种。,1,程序控制输入输出方式,程序控制输入输出方式:,又称为状态驱动输入输出方式、应答输入输出方式、查询输入输出方式、条件驱动输入输出方式等,程序控制输入输出方式的,4,个特点:,(1),何时、对何设备进行输入或输出操作受,CPU,控制,(2)CPU,要通过指令对设备进行测试才能知道设备的工作状态。空闲、准备就绪、正在忙碌等,(3),数据的输入和输出都要经过,CPU,(4),用于连接低速外围设备,如终端、打印机等,输入设备,ID,输出设备,OD,处理机,CPU,主存储器,MM,程序控制方式的数据传送过程,25,2,中断输入输出方式,中断输入输出方式的定义如下:,当出现来自系统外部,机器内部,甚至处理机本身的任何例外的,或者虽然是事先安排的,但出现在现行程序的什么地方是事先不知道的事件时,,CPU,暂停执行现行程序,转去处理这些事件,等处理完成后再返回来继续执行原先的程序。,中断输入输出方式的特点:,(1)CPU,与外围设备能够并行工作,(2),能够处理例外事件。例如,电源掉电、非法指令、地址越界、数据溢出、数据校验错、页面失效等,(3),数据的输入和输出都要经过,CPU,(4),灵活性好,(5),用于连接低速外围设备,26,3,直接存储器访问,(DMA),方式,直接存储器访问方式又称为,DMA(Direct Memory Access),方式,这种输入输出方式主要用来连接高速外围设备。,如,磁盘存储器,磁带存储器等,DMA,方式具有如下特点:,(1),外围设备访问请求直接发往主存储器,(2),不需要,CPU,进行保存现场和恢复现场,(3)DMA,控制器中,需设置数据寄存器、设备状态或控制寄存器、主存地址寄存器、设备地址寄存器和数据交换个数计数器,(4),在,DMA,方式开始和结束时,需要处理机进行管理,(5),在,DMA,方式中,数据的传送过程不需要,CPU,的干预,输入设备,ID,输出设备,OD,处理机,CPU,主存储器,MM,DMA,方式的数据传送过程,I/O,总线,存储器总线,27,第五章标量处理机,标量处理机,-,只有标量数据表示和标量指令系统的处理机,提高指令执行速度,(,处理机设计主要任务之一)的主要途径,提高处理机的工作主频,采用更好的算法和设计更好的功能部件,采用指令级并行技术,三种指令级并行处理机,流水线处理机和超流水线,(Super-pipelining),处理机,超标量,(Superscalar),处理机,超长指令字,(VLIW:Very Long Instruction Word),处理机,三种基本技术,先行控制技术,流水线技术,相关性分析技术,动态调度技术,28,5.1,先行控制技术,先行控制,(Lookahead),技术最早在,IBM,公司的,STRETCH,机器中采用。,先行控制技术的关键是,缓冲技术,和,预处理技术,。,目前,许多处理机中都已经采用了先行控制技术。,29,5.1.2.1,处理机结构,在处理机内部设置一定容量的指令缓冲栈,把指令分析器所需要的指令事先取到指令缓冲栈中,而不必访问主存储器,使取指令、分析指令和执行指令重叠起来执行,三个独立的控制器:存储控制器、指令控制器、运算控制器,四个缓冲栈,:,先行指令缓冲栈、先行读数缓冲栈、先行操作栈 后行写数栈,30,5.1.3,数据相关,数据相关:在执行本条指令的过程中,如果用到的指令、操作数、变址量等正好是前面指令的执行结果,,则必须等待前面的指令执行完成,,并把结果写到主存或寄存器中之后,,本条指令才能开始执行。这种相关称为数据相关。,控制相关:由条件分支指令、转子程序指令、中断等引起的相关。,数据相关有四种:指令相关、主存操作数相关、通用寄存器相关和变址相关,解决数据相关的方法有两种:推后分析法和设置专用路径法。,31,5.1.3.1,指令相关,发生指令相关的情况:,n,:,STORE R1,n+1,n+1,:,满足关系:结果地址,(n)=,指令地址,(n+1),当第,n,条指令还没有把执行结果写到主存之前,取出的第,n+1,条指令显然是错误的。,32,5.1.4,控制相关,指因为程序的执行方向可能被改变而引起的相关,可能改变程序执行方向的指令通常有无条件转移、一般条件转移、复合条件转移、子程序调用、中断等,数据相关称为,局部相关,,影响到的仅仅是本条指令附近的少数几条指令,控制相关称为,全局相关,,影响的范围要大得多,它可能引起程序执行方向的改变,33,5.1.4.4,转移预测技术,在程序执行过程中,转移预测的方向不能改变的称为静态分支预测。,在程序执行过程中能够动态地改变转移预测方向的称为动态分支预测。,34,5.2,流水线处理机,两个方面来开发处理机的并行性,空间并行性,设置多个独立的操作部件,多操作部件处理机、超标量处理机,时间并行性,采用流水线技术。,不增加或只增加少量硬件就能使运算速度提高几倍,流水线处理机、超流水线处理机,35,5.2.1,流水线工作原理,5.2.1.1,从重叠到流水线,流水线的每一个阶段称为流水步、流水步骤、流水段、流水线阶段、流水功能段、功能段、流水级、流水节拍等。,在每一个流水段的末尾或开头必须设置一个寄存器,称为流水寄存器、流水锁存器、流水闸门寄存器等,会增加指令的执行时间。,锁存器作用,:保存分析或执行结果,为了简化,在一般流水线中不画出流水锁存器,指令分析与执行并行,输出端每,t,输出一条指令,分析器,分析,k+1,流水锁存器,执行部件,执行,k,流水锁存器,输,入,输,出,D,t,1,D,t,2,36,5.2.1.2,时空图,一条简单流水线的时空图:,分析,k,分析,k+1,分析,k+2,分析,k+3,执行,k,执行,k+1,执行,k+2,执行,k+3,时间,空间,0,t,1,t,2,t,3,t,4,t,5,37,5.2.2,流水线的分类,5.2.2.1,线性流水线与非线性流水线,流水线的各个流水段之间是否有反馈信号,线性流水线,(Linear Pipelining),每个流水段都流过一次,且仅流过一次,非线性流水线,(Nonlinear Pipelining),在流水线的某些流水段之间有反馈回路或前馈回路,线性流水线能够用流水线连接图唯一表示非线性流水线必须用流水线连接图流水线预约表等共同表示,S,1,输入,S,2,S,3,输出,前馈回路,反馈回路,一种简单的非线性流水线,38,5.2.2.3,单功能流水线与多功能流水线,单功能流水线:,只能完成一种固定功能的流水线,Cray-1,计算机中有,12,条;,YH-1,计算机有,18,条;,Pentium,有一条,5,段的定点和一条,8,段的浮点流水线;,PentiumIII,有三条指令流水线,其中两条定点指令流水线,一条浮点指令流水线。,多功能流水线:,流水线的各段通过不同连接实现不同功能,Texas,公司的,ASC,计算机中的,8,段流水线,能够实现:定点加减法、定点乘法、浮点加法、浮点乘法、逻辑运算、移位操作、数据转换、向量运算等。,39,5.2.2.4,静态流水线与动态流水线,静态流水线:,同一段时间内,,多功能流水线,中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能。,只有连续出现同一种运算时,流水线的效率才能得到充分的发挥。,动态流水线:,在同一段时间内,,多功能流水线,中的各段可以按照不同的方式连接,同时执行多种功能。,40,5.2.3.2,、加速比,(Speedup),计算流水线加速比的基本公式:,S=,顺序执行时间,T0/,流水线执行时间,Tk,各段执行时间相等,输入连续任务情况下,加速比为:,最大加速比为:,各段执行时间不等,输入连续任务情况下实际加速比为:,41,5.2.3.3,效率,(Efficiency),计算流水线效率的一般公式:,各流水段执行时间相等,输入,n,个连续任务流水线的效率为:,流水线的最高效率为:,42,5.2.4,非线性流水线的调度技术,线性流水:每一任务在流水中每一段流且仅流过一次,调度简单:每一时钟周期注入一个任务,流水线充满后,每一时钟周期输出一个任务,非线性流水:存在反馈回路,流水冲突(功能性部件冲突),反馈回路,任务可能多次流过同一功能段,每一时钟周期注入一个任务,多个任务竞争同一功能段,冲突解决方法:延迟输入新任务,延迟时间间隔?,非线性流水线调度,间隔周期周期变化:找出一个最小的循环周期,按照这周期向流水线输入新任务,流水线的各个功能段都不会发生冲突,流水线的吞吐率和效率最高,全局相关与局部相关,先行控制,数据相关和控制相关,流水线,条件分支,基本块,块内:局部相关,块间:全局相关,43,44,5.2.5.1,顺序流动与乱序流动,顺序流动方式:任务按顺序流入流水线,也按顺序流出流水线,把如下一段程序输入到这条流水线中:,45,5.2.6,全局相关,(,相关性分析技术,),5.2.6.1,条件分支对流水线的影响,5.2.6.2,动态分支预测技术,5.2.6.3,提前形成条件码,5.2.6.4,精确断点与不精确断点,46,k,段流水线基准标量处理机,m,度超标量,n,度超流水线,(,m,n,),度超标量超流水,机器类型,机器流水线周期,同时发射指令条数,指令发射等待时间,指令级并行度,ILP,1,个时钟周期,1,条,1,个时钟周期,1,1,m,1,m,1/,n,1,1/,n,n,1/,n,m,1/,n,m,n,超标量、超流水、超标量超流水处理机的主要性能,47,6.1.1,什么是向量处理,从标量到向量,如一个简单的,C,语言程序,for(i=10;i=1010;i+)ci=ai+bi+5;,在向量处理机上,可以只用一条指令:,C(10:1010)=A(10:1010)+B(15:1015),一条向量指令可处理,N,个或,N,对操作数,在标量处理机上用,10,多条机器指令,其中有,8,条指令要循环,1000,次。,采用多寄存器结构的两地址指令编写程序。,存储器采用字节编址方式,字长为,32,位,48,6.1.2,向量处理方式,要根据向量运算的特点和向量处理机的类型选择向量的处理方式。,有三种处理方式:,1,横向处理方式,又称为水平处理方式,横向加工方式等,向量计算是按行的方式从左至右横向地进行。,2,纵向处理方式,又称为垂直处理方式,纵向加工方式等,向量计算是按列的方式自上而下纵向地进行。,3,纵横处理方式,又称为分组处理方式,纵横向加工方式等,横向处理和纵向处理相结合的方式。,以一个简单的,C,语言编写的程序为例,说明向量的三种处理方式的工作原理,for(i=1,;,i=n,;,i+)yi=ai(bi+ci);,49,6.2,向量处理机的结构,向量处理机基本思想,两个向量的对应向量分别运算,产生结果向量,C=A+B,,,A,、,B,、,C,均为,n,维向量,可用流水线实现,存储器每个时钟周期提供,A,和,B,的一个元素到相应数据通路,每个时钟周期产生一个结果,向量处理机存储系统设计难点,提供运算器连续不断的数据流、接收来自运算器连续的结果,一个时钟周期内完成读两个操作数和写一个运算结果,一般随机存储器一个时钟周期只能完成一个操作,50,3,向量链接技术,(chaining),结果寄存器可能成为后继指令的操作数寄存器,两条有数据相关的向量指令并行执行,这种技术称为两条流水线的链接技术。,51,例,6.1,四条向量指令链接,V0-,存储器,V2-V0+V1,V3-V2 leftshift X,V5-V3 and V4,问题:第一个结果在时钟周期,t23,时形成,为什么,?,52,当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,采用循环结构处理这个长向量,这种技术称为向量循环开采技术,也称为,向量分段开采技术,。,例,6.3,:,A,和,B,为长度,N,的向量。,for(i=1;iN;i+)ai=5*b(i)+c;,当,N,为当,N,为,64,或更小时,产生,A,数组的,7,条指令序列是:,1,:,S,1,5.0,在标量寄存器内设置常数,2,:,S,2,C,将常数,C,装入标量寄存器,3,:,VLN,在,VL,寄存器内设置向量长度,4,:,V,o,B,将,B,向量读入向量寄存器,5,:,V1S,1,*V,o,B,数组的每个分量和常数相乘,6,:,V2S,2,+V1 C,和,5 B(x),相加,7,:,AV2,将结果向量存入,A,数组,当,N,大于,64,时,?,2,向量循环或分段开采技术,53,7.1,互连网络的基本概念,互连网络的作用,互连函数,互连网络的特性和传输的性能参数,互连网络的种类,
展开阅读全文