版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1计算机系统结构第一章基本概念第二章指令系统第三章存储系统第四章输入输出系统**第五章标量处理机第六章向量处理机**第七章互连网络第八章并行处理机第九章多处理机2三种类型的指令系统CISC:复杂指令系统RISC:精简指令系统VLIW:超长指令字指令系统设计指令的格式设计指令系统的功能设计指令系统的性能评价2.1数据表示*2.2寻址技术*2.3指令格式的优化设计2.4指令系统的功能设计2.aVLIW指令系统第二章指令系统32.3指令格式的优化设计指令系统是计算机系统结构的主要组成部分是软件与硬件分界面的一个主要标志是软件与硬件之间互相沟通的桥梁与软件之间的语义差距越来越大指令系统的作用在机器上直接运行的程序由指令组成指令系统是计算机所有命令的集合,是软件、硬件的之间的一个主要分界面,也是它们之间互相沟通的一座桥梁主要研究指令格式、数据表示和寻址方式硬件设计人员采用各种手段实现指令系统,而软件设计人员则使用这些指令系统编制系统软件和应用软件,用这些软件来填补指令系统与人们习惯的使用方式之间的语义差距。指令系统发展越缓慢,需要用软件来填补的东西就越多C-->C++-->C#-->...指令系统设计必须由软件设计人员和硬件设计人员共同完成42.3指令格式的优化设计主要目标节省程序的存储空间指令格式尽量规整,便于译码研究内容操作码的优化表示地址码的优化表示2.3.1指令的组成2.3.2操作码的优化设计2.3.3地址码的优化设计2.3.4指令格式设计举例52.3.1指令的组成一般的指令主要由两部分组成操作码和地址码地址码通常包括三部分内容地址:地址码、立即数、寄存器、变址寄存器地址的附加信息:偏移量、块长度、跳距寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址操作码主要包括两部分内容操作种类:加、减、乘、除、数据传送、移位、转移、输入输出、程序控制、处理机控制等操作数描述数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量进位制:2进制、10进制、16进制数据字长:字、半字、双字、字节操作码(OPC)地址码(A)62.3.2操作码的优化表示操作码的三种编码方法固定长度,Huffman编码、扩展编码改进操作码编码方式能够节省程序存储空间例如:Burroughs公司的B-1700机操作码编码方式整个操作系统所用指令的操作码总位数改进的百分比8位固定长编码301,24804-6-10扩展编码184,96639%Huffman编码172,34643%72.3.2.1固定长操作码就是所有指令使用相同的代码位数,其最小码长式中是平均码长,是第i种指令的码长,n是指令总数优点:规整,译码简单缺点:浪费信息量(操作码的总长位数增加)例:已知n=15,求定长编码的最小平均码长。解:如:IBM公司的大中型机:最左边8位为操作码Intel公司的Intanium处理机:14位定长操作码许多RISC处理机采用定长操作码82.3.2.2Huffman编码法(1)Huffman压缩概念(最佳编码定理)1952年由Huffman首先提出最早用于电报报文编码,如e,t等使用频度高,用短编码;q,x使用频度低,用长编码基本原理当用n个长度不等的代码分别代表n种发生概率不等的事件时,按照短代码给高概率事件、把长代码给低概率事件的原则分配,可使平均码长达到最低,即使用频度高的指令,短编码使用频度低的指令,长编码92.3.2.2Huffman编码法1992年由Huffman首先提出最优Huffman编码的操作码的最短平均长度其中:Pi表示第i种操作码在程序中出现的概率固定长操作码相对于最优Huffman编码的信息冗余量10Huffman编码法---最小概率合并法把所有指令按照操作码在程序中出现的概率,自左向右从大到小排列好选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成新结点集合在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕最后得到的根结点的概率值为1每个结点都有两个分支,分别用一位代码“0”
和“1”表示从根结点开始,沿尖头所指方向,到达属于该指令的概率结点,把沿线所经过的代码组合起来得到指令的操作码编码利用Huffman树进行操作码编码的方法,又称最小概率合并法11例p92假设一台模型计算机共有7种不同的操作码,如果采用固定长操作码需要3位。已知各种操作码在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量。指令I1I2I3I4I5I6I7概率0.450.300.150.050.030.010.01120.450.300.150.050.030.010.011.000.550.250.100.050.02010101010101解13利用Huffman树进行操作码编码14利用Huffman树进行操作码编码15利用Huffman树进行操作码编码16利用Huffman树进行操作码编码17利用Huffman树进行操作码编码18利用Huffman树进行操作码编码19利用Huffman树进行操作码编码20利用Huffman树进行操作码编码21指令序号出现的概率Huffman编码法操作码长度I10.4501位I20.30102位I30.151103位I40.0511104位I50.03111105位I60.011111106位I70.011111116位利用Huffman树进行操作码编码22利用Huffman树进行操作码编码??23采用Huffman编码法所得到的操作码的平均长度
=0.45×1+0.30×2+0.15×3+0.05×4
+0.03×5+0.01×6+0.01×6=1.97(位)采用最优Huffman编码法,操作码的最短平均长度
=0.45×1.152+0.30×1.737+0.15×2.737
+0.05×4.322+0.03×5.059+0.01×6.644+0.01×6.644=1.95(位)24采用3位固定长操作码的信息冗余量Huffman编码法的信息冗余量与3位定长操作码的冗余量35%相比要小得多Huffman操作码的优点:平均长度最短,信息的冗余量最小250.400.330.090.080.070.020.011.000.600.270.170.100.03010101010101解26指令序号出现的概率Huffman编码法操作码长度I10.4001位I20.33102位I30.0911004位I40.0811014位I50.0711104位I60.02111105位I70.01111115位利用Huffman树进行操作码编码操作码的平均长度为H=0.40+2×0.33+4×(0.09+0.08+0.07)+5×(0.02+0.01)=2.17272.3.2.3扩展编码法Huffman操作码的主要缺点操作码长度很不规整,硬件译码困难与地址码共同组成固定长的指令比较困难(1)扩展编码法:固定长操作码与Huffman编码法相结合如例p92改为1-2-3-5扩展编码法,操作码最短平均长度H = 0.45×1+0.30×2+0.15×3
+(0.05+0.03+0.01+0.01)×5
= 2.00信息冗余量例p92改为2-4等长扩展编码法,操作码最短平均长度H = (0.45×0.30+0.15)×2+
(0.05+0.03+0.01+0.01)×4
= 2.20信息冗余量28指令序号出现的概率1-2-3-5扩展编码2-4等长扩展编码I10.45000I20.301001I30.1511010I40.05111001100I50.03111011101I60.01111101110I70.01111111111平均长度2.02.2信息冗余量2.5%11.4%7条指令的操作码扩展编码法29(2)等长扩展法为了便于实现分级译码,一般采用等长扩展法根据不同的扩展标志,对于等长扩展法还可以有多种不同的扩展方法衡量的标准主要看这种编码方法的操作码的平均长度是否最短,或信息量的冗余量是否最小用码长表示:例如4-8-12法这并不能说明具体编码方法如下面两种编码方法都是4-8-12法用码点数表示:例如15/15/15法,8/64/512法同属4-8-12法3015/15/15法每一种码长按4位分段,都有4位可编码位(前面可有相同的扩展标识前缀),可产生16个码点(即编码组合)使用其中15个来表示事件,留下1个或多个码点组合作为更长代码的扩展标识前缀表事件的码点须符合“非前缀原则”。即:已用来表示事件的码点组合不能再作为其它更长代码的前导部分,否则接收者会混淆在4位的16个码点中,用15个表示最常用的15种命令,“XXXX”用1个码点表示扩展到下一个4位,“1111XXXX”;而第二个4位的16个码点也是如此,“11111111XXXX”0001000011101500000001...1110151111...11111111...000000011110151111...11111111...111111111111...15/15/15编码法318/64/512法每一种码长按4位分段每一段中至少要留下1位或多位作为扩展标识,各段剩余的码位一起编码,所产生的码点用来对应被编码事件每一段中的标识位指出后面还有没有后续段如,用头4位的“0XXX”表示最常用的8种命令,接着操作码扩展成2个4位,用“1XXX0XXX”的64个码点表示64种指令,而后面扩展成3个4位,用“1XXX1XXX0XXX”的512个码点表示512种命令800000001...011164
1000
1000...1111512
1000
1000...1111000000010111100010001111000000010111......8/64/512编码法32操作码等长扩展编码法4-8-12等长15/15/15……扩展法等长8/64/512……扩展法操作码编码说明操作码编码说明00000001……11104位长度的操作码共24-1=15种00000001……01114位长度的操作码共24-1=8种1111000011110001……111111108位长度的操作码共24-1=15种1000000010000001……111101118位长度的操作码共23+3=64种111111110000111111110001……11111111111012位长度的操作码共24-1=15种100010000000100010000001……11111111011112位长度的操作码共23+3+3=512种33(3)不等长编码法不等长操作码扩展编码法(4-6-10扩展编码)编码方法各种不同长度操作码的指令指令种类4位操作码6位操作码10位操作码15/3/1615316348/31/1683116558/30/3283032708/16/2568162562804/32/25643225629234小结操作码优化的主要目的:尽可能地减少各种信息冗余空间、时间少、短,(尽可能不要跨段)要想程序占地空间小,则应使操作码尽可能短352.3.3地址码的优化表示2.3.3.1地址码个数的选择地址码个数通常有3个、2个、1个及0个等4种情况地址码个数直接、决定性地影响计算机系统应用领域性能硬件设计(存储系统,...)一条指令有几次存储器读写处理器内部设计(寄存器,数据通路,...)单总线、双总线、三总线......评价指令中地址码个数应该取多少的标准主要有两个程序存储容量,包括操作码和地址码程序执行速度,以程序执行过程中访问主存的信息量代表36例如:计算一个典型的算术表达式:;用三地址指令编写的程序MULX,A,B;X←(A)×(B)ADDX,X,C;X←(X)+(C)SUBX,X,D;分子的计算结果在X中ADDY,E,F;计算分母,存入YDIVX,X,Y;最后结果在X单元中37;用普通二地址指令编写的程序MOVEX,A;复制临时变量到X中MULX,BADDX,CSUBX,D;X中存放分子运算结果MOVEY,E;复制临时变量到Y中ADDY,F;Y中存放分母运算结果DIVX,Y;最后结果在X单元中38;用多寄存器结构的二地址指令编写程序MOVER1,A;操作数a取到寄存器R1中MULR1,BADDR1,CSUBR1,D;R1中存放分子运算结果MOVER2,EADDR2,F;R2中存放分母运算结果DIVR1,R2;最后结果在R1中MOVEX,R1;最后结果存入X中39;用一地址指令编写的程序LOADE;先计算分母;取一个操作数到累加器中ADDF;分母运算结果在累加器中STOREX;保存分母运算结果到X中LOADA;开始计算分子MULBADDCSUBD;累加器中是分子运算结果DIVX;最后运算结果在累加器中STOREX;保存最后运算结果到X中40;用0地址指令编写程序:
ab*c+d-ef+/PUSHA;操作数a压入堆栈PUSHB;操作数b压入堆栈MUL;栈顶两数相乘,结果压回堆顶PUSHCADDPUSHDSUB;栈顶是分子运算的结果PUSHEPUSHFADDDIV;栈顶是最后运算的结果POPX;保存最后运算结果41地址数目指令条数访存次数程序存储量执行速度(访存信息量)三地址55P+15D=205P+15A=65B5P+15A+15D=185B二地址77P+19D=267P+14A=63B7P+14A+19D=215B一地址99P+9D=189P+9A=45B9P+9A+9D=117B零地址1212P+29D=4112P+7A=40B12P+7A+29D=272B二地址寄存器型88P+7D=158P+7A+9R=40B8P+7A+9R+7D=96B用不同地址个数指令编写的程序的存储容量和执行速度P表示操作码长度,A表示地址码长度,D表示数据长度,R表示通用寄存器的地址码长度,B表示字节数并取:D=2A=8P=16R=8B42PAMRW;用0地址指令编写程序:
ab*c+d-ef+/1111PUSHA;操作数a压入堆栈1111PUSHB;操作数b压入堆栈1021MUL;栈顶两数相乘,结果压回堆顶1111PUSHC1021ADD1111PUSHD1021SUB;栈顶是分子运算的结果1111PUSHE1111PUSHF1021ADD1021DIV;栈顶是最后运算的结果1111POPX;保存最后运算结果127171217MR+12W=29D地址数目指令条数访存次数程序存储量执行速度(访存信息量)零地址1212P+29D=4112P+7A=40B12P+7A+29D=272B43地址数目程序的长度程序存储量程序执行速度适用场合三地址最短最大一般向量,矩阵运算为主二地址较短很大很低一般不宜采用一地址较长较大较快连续运算,硬件结构简单零地址最长最小最低嵌套,递归,变量较多二地址寄存器型一般最小最快多累加器,数据传送较多不同地址个数指令的特点及适用场合地址码个数的结论一般商用处理机,采用多寄存器结构的二地址指令最理想强调硬件结构简单,以连续运算(如求累加和等)为主,宜采用一地址结构向量、矩阵运算为主的处理机,最好采用三地址结构。部分RISC处理机也采用三地址指令解决递归问题为主的处理机,宜采用零地址结构。编程容易、节省程序存储量442.3.3.2缩短地址码长度的方法用一个短地址码表示一个大地址空间用间址寻址方式缩短地址码长度方法:在主存储器的低端开辟一个专门存放间接地址的区域用变址寻址方式缩短地址码长度变址寻址方式中的地址偏移量比较短用寄存器间接寻址方式缩短地址码长度如16个间址寄存器,用4位地址码就能表示很长的逻辑地址空间452.4指令系统的功能设计完整性是指应该具备的基本指令种类,通用计算机必须有5类基本指令规整性包括对称性和均匀性对称性:所有寄存器同等对待,操作码的设置等都要对称如:A-B与B-A均匀性:不同的数据类型、字长、存储设备、操作种类要设置相同的指令高效率:指令的执行速度要快;指令的使用频度要高;各类指令之间要有一定的比例兼容性:在同一系列机内指令系统不变(可以适当增加)46指令系统的优化设计指令系统的优化设计有两个截然相反的方向1复杂指令系统计算机CISC(ComplexInstructionSetComputer)增强指令功能,设置功能复杂的指令面向目标代码、高级语言和操作系统用一条指令代替一串指令
2精简指令系统计算机RISC(ReducedInstructionSetComputer)只保留功能简单的指令功能较复杂的指令用子程序来实现472.4.2CISC指令系统2.4.2.1目标程序的优化2.4.2.2对高级语言和编译程序的支持2.4.2.3操作系统的优化实现482.4.2.1目标程序的优化优化目标程序的指标主要有两个一是缩短程序的长度,即减少程序的空间开销另一个是缩短程序的执行时间,即减少程序的时间开销优化目标程序的方法对大量的目标程序及其执行情况进行统计分析,找出那些使用频度高,执行时间长的指令或指令串对于那些使用频度高的指令,用硬件加快其执行缩短整个程序的执行时间对于那些使用频度高的指令串,用一条新的指令来代替缩短整个程序的执行时间缩短整个程序的长度,从而减少程序的空间开销优化目标程序的主要途径(1)增强数据传送指令的功能(2)增强运算型指令的功能(3)增强程序控制指令的功能49(1)增强数据传送指令的功能Intel8088处理机MOVE、PUSH和POP等3种数据传送指令的使用频度在程序中占40%左右,执行时间占30%以上IBM大中型计算机的统计结果数据传送指令所占的比例还要高数据传送指令在整个指令系统中占有非常重要的地位设计好数据传送指令对提高计算机系统的性能至关重要数据块传送指令(2)增强运算型指令的功能在科学计算的应用程序中,经常要计算各种各样的函数在有些计算机系统设置有常用的函数运算指令如:开平方,三角函数sin(x)、cos(x)、tg(x),对数函数ln(x)、lg(x),指数函数等用一条指令代替软件的一个子程序来完成函数计算50(3)增强程序控制指令的功能循环在一般程序占有相当大的比例许多循环程序中的循环体本身往往很短在一般高级语言中,循环体中只有一条语句的约占40%有1至3条语句的约占70%左右循环控制指令在整个循环程序中占据了相当大的比例可以用一条循环控制指令来实现对循环变量的运算、测试和转移功能512.4.2.2对高级语言和编译程序的支持大多数人都已经习惯用高级语言编写程序,只有在极少数有特殊要求的场合才用机器语言或汇编语言编写程序目前在机器上实际运行的绝大多数程序,都是用高级语言编写,并经编译程序编译后生成的目标程序大多数高级语言与一般计算机的机器语言的语义差距非常大通常用高级语言编写的程序经编译程序编译后生成的目标程序,与直接用机器语言或汇编语言编写的程序相比,时间开销和空间开销都要大一个数量级改进指令系统,增加对高级语言和编译程序的支持,缩小高级语言与机器语言的差距,就能提高整个计算机系统的性能面向高级语言和编译程序增强指令系统的途径(1)增强对高级语言和编译程序支持的指令的功能(2)研制高级语言计算机52(1)增强对高级语言和编译程序支持的指令的功能在用高级语言编写的源程序中,对各种语句的使用频度和执行时间进行统计和分析对使用频度高,执行时间长的语句,增强有关指令的的功能,或增加相关的专门指令缩短目标程序长度减少目标程序执行时间同时也能缩短编译所用的时间增强体系结构的规整性,减少体系结构中各种例外情况,是对编译程序的有力支持53(2)研制高级语言计算机缩小高级语言与机器语言差距,如果走到极端就是把高级语言与机器语言合二为一,即所谓的高级语言计算机在这种机器中,高级语言不需要经过编译,直接由机器的硬件来执行如LISP计算机、PROLOG计算机针对多种高级语言,可以研制各种VLSI芯片,在同一台机器上可以安装多种高级语言的专用芯片也可以采用微程序技术,通过微程序存储器的动态加载来实现在同一台机器上具有多种高级语言542.4.2.3操作系统的优化实现任何一种计算机系统都必须有操作系统的支撑才能工作,而操作系统又必须用指令系统来实现指令系统对操作系统的支持主要有(1)处理机工作状态和访问方式的转换(2)进程的管理和切换(3)存储管理和信息保护(4)进程的同步和互斥,信号灯的管理等支持操作系统的有些指令属于特权指令,对一般用户不公开尽管有些指令的使用频度很低,但是,如果没有这些指令的支持,操作系统将很难实现,或根本不能实现如处理机状态的转换,进程的切换,信号灯的管理等方面所使用的有关指令552.4.3RISC指令系统70年代,指令系统已经非常复杂1975年,IBM公司率先组织力量研究指令系统的合理性问题1979年研制出世界上第一台采用RISC思想的计算机IBM8011986年,IBM正式推出采用RISC体系结构的工作站IBMRTPC机型(生产年代)IBM370/168(1973)VAX-11(1978)iAPX432(1982)Dorado(1978)指令种类208303222270微程序容量420K480K64K136K指令长度16-4816-4566-3218-24采用的工艺ECLMSITTLMSINMOSVLSIECLMSI指令操作类型存储器-存储器存储器-寄存器寄存器-寄存器存储器-存储器存储器-寄存器寄存器-寄存器面向堆栈存储器-存储器面向堆栈Cache容量64KB64KB064KB56RISC精简指令系统计算机(RISC)是80年代提出的一种新的计算机体系结构设计思想目前运行中的许多处理机都采用了RISC体系结构SUN公司的SPARC、SuperSPARC、UtraSPARCSGI公司的R4000、R5000、R10000IBM公司的Power、PowerPCIntel公司的80860、80960、ItaniumDEC公司的AlphaMotorola公司的88100HP公司的HP3000/930系列、950系列等有些典型的CISC处理机也采用了RISC设计思想如Intel公司的80486、Pentium、PentiumPro,Xeon等572.4.3.1从CISC到RISCCISC指令系统存在的问题120%与80%规律CISC中,大约20%的指令占据了80%的处理机时间其余80%指令:使用频度只占20%的处理机运行时间2VLSI技术的发展引起的问题VLSI工艺要求规整性CISC处理机中,为了实现大量的复杂指令,控制逻辑极不规整,给VLSI造成很大困难RISC正好适应了VLSI工艺的要求主存与控存的速度相当简单指令没有必要用微程序实现,复杂指令用微程序实现与用简单指令组成的子程序实现没有多大区别由于VLSI的集成度迅速提高,使得生产单芯片处理机成为可能58表2.25Intel8088处理机指令系统使用频度和执行时间统计
(C语言编译程序和PROLOG解释程序)使用频度执行时间序号指令%累计%序号指令%累计%1234567891011121314151617181920MOVPUSHCMPJMPccADDPOPRETCALLJUMPSUBINCLESREPNIMULDECXORREPNZCLDLOOPccTEST24.8510.3610.289.036.804.143.923.892.702.432.371.981.921.691.371.130.780.540.520.4024.8535.2145.4954.5261.3265.4669.3873.2775.9778.4080.7782.7584.6786.3687.7388.8689.6490.1890.7091.101234567891011121314151617181920IMULMOVPUSHJMPccCMPCALLRETADDJMPLESPOPDECSUBXORINCLOOPccLDSCMPSMOVSJCXZ19.5517.4411.1110.557.807.274.853.273.262.832.611.491.181.040.990.640.640.440.390.3719.5536.9948.1058.6566.4573.7278.5781.8485.1087.9390.5492.0393.2194.2595.2495.8896.5296.9697.3597.7259表2.26Intel8088处理机各类指令使用频度统计指令类型8种应用程序平均值F1F2F3F4F5F6F7数据传送算术运算逻辑运算/位操作字符串处理转移指令处理器控制34.2524.973.402.4234.840.1335.8522.344.344.2232.990.2628.8445.327.632.7215.340.1520.1243.657.492.0117.630.1025.0445.726.382.1020.520.2424.3345.423.972.3525.720.1934.3128.284.892.1030.290.1430.2536.245.442.8625.330.19603软硬件的功能分配问题复杂的指令使指令的执行周期大大加长一般CISC处理机的指令平均执行周期都在4以上,有些在10以上CISC增强了指令系统功能,简化了软件,但硬件复杂了1981年Patterson等人研制了32位RISCI微处理器共31种指令,3种数据类型,2种寻址方式所有指令都在一个周期(500ns)内完成。只有LOAD/STORE可访问存储器,其它指令的操作都在通用寄存器之间进行,有78个通用寄存器采用寄存器窗口技术研制周期10个月,比当时最先进的MC68000和Z8002快3至4倍1983年又研制了RISCII指令种类扩充到39种,单一的变址寻址方式,通用寄存器138个612.4.3.2RISC的定义与特点卡内基梅隆大学(CarnegieMellon)论述RISC的特点1大多数指令在单周期内完成2LOAD/STORE结构3硬布线控制逻辑4减少指令和寻址方式的种类5固定的指令格式6注重译码的优化从目前的发展来看,RISC体系结构还应具有如下特点(1)面向寄存器结构(2)十分重视提高流水线的执行效率要提高RISC处理机的速度,必须采用流水线,而且,要尽量减少断流,提高流水线的效率(3)重视优化编译技术优化编译技术在提高系统性能中发挥很重要的作用,改变了过去认为提高计算机速度仅仅依靠硬件的传统观点高效率的流水线和优化编译技术是现代RISC系统必须十分注重的两点。这比卡内基梅隆大学的定义更加全面了6290年代初,IEEE的MichaelSlater对RISC定义的描述1RISC为使流水线高效率执行,应具有(1)简单而统一格式的指令译码(2)大部分指令可以单周期执行完成(3)仅Load和Store指令可以访问存储器(4)简单的寻址方式(5)采用延迟转移技术(6)采用LOAD延迟技术2RISC为使优化编译器便于生成优化代码,应具有(1)三地址指令格式(2)较多的寄存器(3)对称的指令格式632.4.3.3减少CPI是RISC思想的精华程序执行时间P=I·CPI·T其中P是执行这个程序所使用的总的时间I是这个程序所需执行的总的指令条数CPI(CyclesPerInstruction)是每条指令执行的平均周期数T是一个周期的时间长度RISC的速度要比CISC快3倍左右,关键是RISC的CPI减小了类型指令条数I指令平均周期数CPI周期时间TCISC12~1533ns~5nsRISC1.3~1.41.1~1.410ns~2ns64对于T而言RISC一般采用硬布线逻辑实现,指令要实现的功能都比较简单RISC的T通常要比CISC的T小RISC处理机的工作主频一般要比CISC处理机高对于CPI而言RISC的大多数指令都是单期执行的,它们的CPI应该是1由于RISC中还有LOAD和STORE指令,也还有少数复杂指令,所以,CPI要略大于1对于I而言由于CISC中复杂指令使用的频度很低,程序中使用的绝大多数指令都是与RISC一样的简单指令因此,实际上RISC的I长度只比CISC的长30%~40%结论RISC的速度要比CISC快3倍左右同类问题的程序长度,RISC比CISC长30%~40%65硬件方面采用硬布线控制逻辑减少指令和寻址方式的种类使用固定的指令格式采用LOAD/STORE结构指令执行过程中设置多级流水线等软件方面十分强调优化编译技术的作用RISC设计思想也可以用于CISC中例如:Intel公司的80x86处理机的CPI在不断缩小8088的CPI大于2080286的CPI大约是5.580386的CPI进一步减小到4左右80486的CPI已经接近2Pentium处理机的CPI已经与RISC十分接近目前,超标量、超流水线处理机的CPI已经达到0.5,实际上用IPC(InstructionsPerCycle)更确切662.4.3.4RISC的关键技术1延时转移技术2指令取消技术3重叠寄存器窗口技术4指令流调整技术5以硬件为主固件为辅671延时转移技术思想为了使指令流水线不断流,在转移指令之后插入一条没有数据相关和控制相关的有效指令,而转移指令被延迟执行,这种技术称为延迟转移技术采用指令延迟转移技术时,指令序列的调整由编译器自动进行,用户不必干预采用延迟转移的程序,必须十分小心68无条件转移指令的延迟执行69条件转移指令的延迟执行调整前的指令序列
1:MOVER1,R22:CMPR3,R4;(R3)与(R4)比较
3:BEQNEXT;如果(R3)=(R4)则转移
………NEXT:MOVER4,A调整后的指令序列1:CMPR3,R4;(R3)与(R4)比较2:BEQNEXT;如果(R3)=(R4)则转移3:MOVER1,R2;被插入的指令………NEXT:MOVER4,A70采用延迟转移技术的两个限制条件两个限制条件1被移动指令在移动过程中与所经过的指令之间没有数据相关2被移动指令不破坏条件码,至少不影响后面的指令使用条件码如果找不到符合上述条件的指令,必须在条件转移指令后面插入空操作如果指令的执行过程分为多个流水段,则要插入多条指令插入1条指令成功的概率比较大插入2条或2条以上指令成功的概率明显下降712指令取消技术采用指令延时技术,经常找不到可以用来调整的指令可考虑采用另一种方法:指令取消技术分为两种情况(1)向后转移(适用于循环程序)实现方法循环体的第一条指令安放在两个位置,分别在循环体的前面和后面如果转移成功,则执行循环体后面的指令,然后返回到循环体开始否则取消循环体后面的指令72(1)向后转移(适用于循环程序)效果能够使指令流水线在绝大多数情况下不断流对于循环程序,绝大多数情况下,转移是成功的只有最后一次出循环时,转移不成功73(2)向前转移(IFTHEN)实现方法:如果转移不成功,继续执行转移指令之后的下条指令TTT,否则取消下条指令例子
RRR
……
“IF”部分的程序代码
SSSCOMPR1,R2,THRU
TTT
……
“THEN”部分的程序代码
UUUTHRU:VVV效果:转移成功与不成功的概率,通常各占50%优点:不必进行指令流调整74隐含转移技术特殊的IF...THEN...结构中,THEN部分只有一条指令把IF条件取反,如果取反后的条件成立则取消下条指令,否则执行下条指令例子:IF(a<b)THENb=b+1COMP>=,Ra,Rb;若(Ra)>=(Rb)则取消
;否则,继续完成INCINCRb753重叠寄存器窗口技术(OverlappingRegisterWindow)原因在RISC中,子程序比CISC中多CALL和RETURN操作保存现场、传送参数访问存储器的信息量很大为使CALL和RETURN操作尽量少访问存储器,美国加洲大学伯克利分校的F.Baskett提出重叠寄存器窗口技术实现方法设置一个数量比较大的寄存器堆,并把它划分成多个窗口每个过程使用其中相邻的3个窗口和一个公共的窗口有一个窗口与前一个过程共用存放前一过程传送给本过程的参数存放本过程传送给前一过程的计算结果有一个窗口与下一个过程共用存放本过程传送给下一过程的参数存放下一过程传送给本过程的计算结果76RISCII的重叠寄存器窗口773重叠寄存器窗口技术SUN公司的SPARC、SuperSPARC、UtraSPARC等处理机,把最后一个过程与第一个过程的公用寄存器重叠起来,形成一个循环效果:可以减少大量的访存操作在主存中开辟一个堆栈,当调用层数超过规定层数(寄存器溢出)时,把溢出部分的寄存器中内容压入堆栈78寄存器窗口技术的效果RISCII调用引起的访存占总访存次数的0.8%,1%过程调用所需开销的比较程序名称调用次数最大调用深度RISCII溢出次数RISCII访存次数VAX-11访存次数Quicksort111K(0.7%)10644K(0.8%)696K(50%)Puzzle43K(8.0%)201248K(1.0%)444K(28%)3重叠寄存器窗口技术机器类型执行指令条数执行时间(微秒)访问存储器次数VAX-11PDP-11MC68000RISCII5199626221921015120.2794指令流调整技术目标:通过变量重新命名消除数据相关,提高流水线效率例子
ADDR1,R2,R3;(R1)+(R2)→R3
ADDR1,R2,R3
ADDR3,R4,R5;(R3)+(R4)→R5
MULR6,R7,R0
MULR6.R7,R3;(R6)×(R7)→R3
ADDR3,R4,R5
MULR3,R8,R9;(R3)×(R8)→R9
MULR0,R8,R9
(a)调整前的指令序列
(b)调整后的指令序列(a)存在R3寄存器的数据相关第二条指令必须等第一条指令执行完后才能开始执行,后续的指令也是这样。如果执行一条指令需要两个机器周期,那么,每两条指令之间都要浪费一个周期(b)通过优化编译器调整后的指令序列在两条乘法指令中用R0寄存器代替原来的R3寄存器,消除了两条乘法指令与两条加法指令之间的数据相关,并且重新调整指令序列调整后的指令序列比原指令序列的执行速度快一倍805以硬件为主固件为辅固件的主要缺点是执行速度低目前,ROM的速度低于SRAM一条机器指令通常要多条微指令解释执行固件的主要优点是:便于实现复杂指令,便于修改指令系统以硬联逻辑为主来实现指令系统,对于少数复杂的指令,目前的许多处理机也用微程序技术实现812.4.3.5RISC优化编译技术RISC对编译器带来方便(1)指令系统比较简单、对称、均匀,指令选择工作简单(2)选择寻址方式的工作简单(3)采用LOAD/STORE方式,省去了是否生成访问存储器指令的选择工作(4)大多数指令在一个周期内执行完成,为编译器调整指令序列提供了极大的方便RISC对编译器造成困难(1)必须精心安排每一个寄存器的用法,以便充分发挥每一个通用寄存器的效率,尽量减少访问主存储器的次数(2)做数据和控制相关性分析,要调整指令的执行序列,并与硬件相配合实现指令延迟技术和指令取消技术等(3)要设计复杂的子程序库RISC的子程序库通常要比CISC的子程序库大得多822.aVLIW指令系统2.a.1什么是VLIW2.a.2指令级并行技术2.a.3VLIW的主要特点2.a.4VLIW处理机2.a.5目标代码兼容问题832.a.1什么是VLIW1VLIW(VeryLongInstructionWord)的背景2什么是VLIW指令系统--一种显式指令级并行指令系统1VLIW(VeryLongInstructionWord)的背景由美国J.A.Fisher教授于1981年首先提出最初来源于水平微程序一条指令中包含有多个能够同时执行的操作由J.A.Fisher创建的Mutiflow公司研制了的世界上第一台VLIW处理机TRACE28/300TRACE28/300处理机的一条超长指令中最多有28条可以同时执行的指令算法和编译技术是关键(在下一代处理机中将普遍采用)842.a.1什么是VLIW2什么是VLIW指令系统--一种显式指令级并行指令系统在一条VLIW指令中包含有多个相同或不同的操作字段(每个操作字段的功能相当于一般处理机中的一条指令)每个操作字段能够分别独立控制各自的功能部件同时工作二维程序结构指令级并行度高852.a.2指令级并行提出VLIW指令系统的主要目的是要开发程序中的指令级并行性(InstructionLevelParallelism)超标量(Superscalar)处理机依靠设置多条指令流水线,并通过同时发射多条指令来提高处理机的运算速度超流水线(Superpipelining)处理机通过分时使用同一条指令流水线的不同部分来提高处理机的运算速度VLIW处理机862.a.3VLIW的主要特点1采用显式并行指令计算2指令级并行度高3硬件结构规整、简单4编译器的实现难度大1采用显式并行指令计算(EPIC:ExplicitlyParallelInstructionComputing)方式在VLIW处理机上运行的程序是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国有源音箱专用变压器数据监测研究报告
- 2024年矿业测量仪器项目成效分析报告
- 2024至2030年中国舞台提升机控制柜数据监测研究报告
- 2024年苯甲酰H酸项目综合评估报告
- 2024至2030年中国磷铁环压脱装置数据监测研究报告
- 2024至2030年中国电接头行业投资前景及策略咨询研究报告
- 2024至2030年中国焗油营养洗发露数据监测研究报告
- 2024至2030年中国同轴信号防雷器数据监测研究报告
- 小学二年级奥数100题及答案
- 河南省焦作市(2024年-2025年小学五年级语文)统编版随堂测试(下学期)试卷及答案
- 建筑公司合规性评价报告
- 促销策略课件
- 大数据和人工智能知识考试题库600题(含答案)
- 2023年上海机场集团有限公司校园招聘笔试题库及答案解析
- 勘察质量及安全保障措施
- 高保真音频功率放大器
- 架桥机安全教育培训试卷
- 临时工用工协议书简单版(7篇)
- 国家电网公司施工项目部标准化管理手册(2021年版)线路工程分册
- 马克·夏加尔课件
- 沧州市基层诊所基本公共卫生服务医疗机构卫生院社区卫生服务中心村卫生室地址信息
评论
0/150
提交评论