计算机系统结构:第二章 指令系统

上传人:人*** 文档编号:573181536 上传时间:2024-08-14 格式:PPT 页数:100 大小:703.50KB
返回 下载 相关 举报
计算机系统结构:第二章 指令系统_第1页
第1页 / 共100页
计算机系统结构:第二章 指令系统_第2页
第2页 / 共100页
计算机系统结构:第二章 指令系统_第3页
第3页 / 共100页
计算机系统结构:第二章 指令系统_第4页
第4页 / 共100页
计算机系统结构:第二章 指令系统_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《计算机系统结构:第二章 指令系统》由会员分享,可在线阅读,更多相关《计算机系统结构:第二章 指令系统(100页珍藏版)》请在金锄头文库上搜索。

1、tigerSeptember2014计算机系统结构n第一章 基本概念n第二章 指令系统n第三章 存储系统n第四章 输入输出系统*n第五章 标量处理机n第六章 向量处理机n第七章 互连网络n第八章 并行处理机n第九章 多处理机1tigerSeptember2014三种类型的指令系统CISC:复杂指令系统RISC:精简指令系统VLIW:超长指令字指令系统设计指令的格式设计指令系统的功能设计指令系统的性能评价2.1数据表示*2.2寻址技术*2.3指令格式的优化设计2.4指令系统的功能设计2.aVLIW指令系统第二章指令系统2tigerSeptember20142.3指令格式的优化设计n指令系统n是计

2、算机系统结构的主要组成部分n是软件与硬件分界面的一个主要标志n是软件与硬件之间互相沟通的桥梁n与软件之间的语义差距越来越大n指令系统的作用n在机器上直接运行的程序由指令组成n指令系统是计算机所有命令的集合,是软件、硬件的之间的一个主要分界面,也是它们之间互相沟通的一座桥梁n主要研究指令格式、数据表示和寻址方式n硬件设计人员采用各种手段实现指令系统,而软件设计人员则使用这些指令系统编制系统软件和应用软件,用这些软件来填补指令系统与人们习惯的使用方式之间的语义差距。指令系统发展越缓慢,需要用软件来填补的东西就越多nC-C+-C#-.n指令系统设计必须由软件设计人员和硬件设计人员共同完成3tiger

3、September20142.3指令格式的优化设计n主要目标n节省程序的存储空间n指令格式尽量规整,便于译码n研究内容n操作码的优化表示n地址码的优化表示n2.3.1指令的组成n2.3.2操作码的优化设计n2.3.3地址码的优化设计n2.3.4指令格式设计举例4tigerSeptember20142.3.1指令的组成n一般的指令主要由两部分组成n操作码和地址码n地址码通常包括三部分内容n地址:地址码、立即数、寄存器、变址寄存器n地址的附加信息:偏移量、块长度、跳距n寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址n操作码主要包括两部分内容n操作种类:加、减、乘、除、数据

4、传送、移位、转移、输入输出、程序控制、处理机控制等n操作数描述n数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量n进位制:2进制、10进制、16进制n数据字长:字、半字、双字、字节操作码(OPC)地址码(A)5tigerSeptember20142.3.2操作码的优化表示n操作码的三种编码方法n固定长度,Huffman编码、扩展编码n改进操作码编码方式能够节省程序存储空间n例如:Burroughs公司的B-1700机操作码编码方式整个操作系统所用指令的操作码总位数改进的百分比8位固定长编码301,24804-6-10扩展编码184,96639Huffman编码172,346436t

5、igerSeptember20142.3.2.1固定长操作码n就是所有指令使用相同的代码位数,其最小码长n式中是平均码长,是第i种指令的码长,n是指令总数n优点:规整,译码简单n缺点:浪费信息量(操作码的总长位数增加)n例:已知n=15,求定长编码的最小平均码长。n解:n如:nIBM公司的大中型机:最左边8位为操作码nIntel公司的Intanium处理机:14位定长操作码n许多RISC处理机采用定长操作码7tigerSeptember20142.3.2.2Huffman编码法n(1)Huffman压缩概念(最佳编码定理)n1952年由Huffman首先提出n最早用于电报报文编码,如e,t等使

6、用频度高,用短编码;q,x使用频度低,用长编码n基本原理n当用n个长度不等的代码分别代表n种发生概率不等的事件时,按照短代码给高概率事件、把长代码给低概率事件的原则分配,可使平均码长达到最低,即n使用频度高的指令,短编码n使用频度低的指令,长编码8tigerSeptember20142.3.2.2Huffman编码法n1992年由Huffman首先提出n最优Huffman编码的操作码的最短平均长度n其中:Pi表示第i种操作码在程序中出现的概率n固定长操作码相对于最优Huffman编码的信息冗余量9tigerSeptember2014Huffman编码法-最小概率合并法n把所有指令按照操作码在程

7、序中出现的概率,自左向右从大到小排列好n选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成新结点集合n在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕n最后得到的根结点的概率值为1n每个结点都有两个分支,分别用一位代码“0”和“1”表示n从根结点开始,沿尖头所指方向,到达属于该指令的概率结点,把沿线所经过的代码组合起来得到指令的操作码编码n利用Huffman树进行操作码编码的方法,又称最小概率合并法10tigerSeptember2014例p92n假设一台模型计算机共有7种不同的操作码,如果采用固定长操作码

8、需要3位。已知各种操作码在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量。指令I1I2I3I4I5I6I7概率0.45 0.30 0.15 0.05 0.03 0.01 0.0111tigerSeptember20140.450.300.150.050.030.010.011.000.550.250.100.050.02010101010101解12tigerSeptember2014利用Huffman树进行操作码编码13tigerSeptember2014利用Huffman树进行操作码编码14tigerSeptemb

9、er2014利用Huffman树进行操作码编码15tigerSeptember2014利用Huffman树进行操作码编码16tigerSeptember2014利用Huffman树进行操作码编码17tigerSeptember2014利用Huffman树进行操作码编码18tigerSeptember2014利用Huffman树进行操作码编码19tigerSeptember2014利用Huffman树进行操作码编码20tigerSeptember2014指令序号 出现的概率 Huffman编码法 操作码长度I10.4501位I20.30102位I30.151103位I40.0511104位I50

10、.03111105位I60.011111106位I70.011111116位利用Huffman树进行操作码编码21tigerSeptember2014利用Huffman树进行操作码编码?22tigerSeptember2014n采用Huffman编码法所得到的操作码的平均长度n=0.451+0.302+0.153+0.054+0.035+0.016+0.016n=1.97(位)n采用最优Huffman编码法,操作码的最短平均长度n=0.451.152+0.301.737+0.152.737+0.054.322+0.035.059+0.016.644+0.016.644n=1.95(位)23ti

11、gerSeptember2014n采用3位固定长操作码的信息冗余量nHuffman编码法的信息冗余量n与3位定长操作码的冗余量35%相比要小得多nHuffman操作码的优点:优点:平均长度最短,信息的冗余量最小24tigerSeptember20140.400.330.090.080.070.020.011.000.600.270.170.100.03010101010101解25tigerSeptember2014指令序号 出现的概率 Huffman编码法 操作码长度I10.4001位I20.33102位I30.0911004位I40.0811014位I50.0711104位I60.0211

12、1105位I70.01111115位利用Huffman树进行操作码编码n操作码的平均长度为nH=0.40+20.33+4(0.09+0.08+0.07)+5(0.02+0.01)n=2.1726tigerSeptember20142.3.2.3扩展编码法nHuffman操作码的主要缺点n操作码长度很不规整,硬件译码困难n与地址码共同组成固定长的指令比较困难n(1)扩展编码法:固定长操作码与Huffman编码法相结合n如例p92改为1-2-3-5扩展编码法,操作码最短平均长度nH=0.451+0.302+0.153+(0.05+0.03+0.01+0.01)5=2.00n信息冗余量n例p92改为

13、2-4等长扩展编码法,操作码最短平均长度nH=(0.450.30+0.15)2+(0.05+0.03+0.01+0.01)4=2.20n信息冗余量27tigerSeptember2014指令序号出现的概率 1-2-3-5扩展编码 2-4等长扩展编码I10.45000I20.301001I30.1511010I40.05111001100I50.03111011101I60.01111101110I70.01111111111平均长度2.02.2信息冗余量2.511.47条指令的操作码扩展编码法28tigerSeptember2014(2)等长扩展法n为了便于实现分级译码,一般采用等长扩展法n根

14、据不同的扩展标志,对于等长扩展法还可以有多种不同的扩展方法n衡量的标准主要看这种编码方法的操作码的平均长度是否最短,或信息量的冗余量是否最小n用码长表示:例如4-8-12法n这并不能说明具体编码方法n如下面两种编码方法都是4-8-12法n用码点数表示:例如15/15/15法,8/64/512法n同属4-8-12法29tigerSeptember201415/15/15法n每一种码长按4位分段,都有4位可编码位(前面可有相同的扩展标识前缀),可产生16个码点(即编码组合)n使用其中15个来表示事件,留下1个或多个码点组合作为更长代码的扩展标识前缀n表事件的码点须符合“非前缀原则”。即:已用来表示

15、事件的码点组合不能再作为其它更长代码的前导部分,否则接收者会混淆n在4位的16个码点中,用15个表示最常用的15种命令,“XXXX”用1个码点表示扩展到下一个4位,“1111XXXX”;而第二个4位的16个码点也是如此,“11111111XXXX”0001000011101500000001.1110151111.11111111.000000011110151111.11111111.111111111111.15/15/15编码法30tigerSeptember20148/64/512法n每一种码长按4位分段n每一段中至少要留下1位或多位作为扩展标识,各段剩余的码位一起编码,所产生的码点用

16、来对应被编码事件n每一段中的标识位指出后面还有没有后续段n如,用头4位的“0XXX”表示最常用的8种命令,接着操作码扩展成2个4位,用“1XXX0XXX”的64个码点表示64种指令,而后面扩展成3个4位,用“1XXX1XXX0XXX”的512个码点表示512种命令800000001.01116410001000.111151210001000.1111000000010111100010001111000000010111.8/64/512编码法31tigerSeptember2014操作码等长扩展编码法4-8-12n等长15/15/15扩展法等长8/64/512扩展法操作码编码说明操作码编码

17、说明0000000111104位长度的操作码共24-1=15种0000000101114位长度的操作码共24-1=8种1111000011110001111111108位长度的操作码共24-1=15种1000000010000001111101118位长度的操作码共23+3=64种11111111000011111111000111111111111012位长度的操作码共24-1=15种10001000000010001000000111111111011112位长度的操作码共23+3+3=512种32tigerSeptember2014(3)不等长编码法n不等长操作码扩展编码法(4-6-10

18、扩展编码)编码方法各种不同长度操作码的指令指令种类4位操作码 6位操作码10位操作码15/3/1615316348/31/1683116558/30/3283032708/16/2568162562804/32/25643225629233tigerSeptember2014小结n操作码优化的主要目的:尽可能地减少各种信息冗余n空间、时间少、短,(尽可能不要跨段)n要想程序占地空间小,则应使操作码尽可能短34tigerSeptember20142.3.3地址码的优化表示n2.3.3.1地址码个数的选择n地址码个数通常有3个、2个、1个及0个等4种情况n地址码个数直接、决定性地影响计算机系统n应

19、用领域n性能n硬件设计(存储系统,.)n一条指令有几次存储器读写n处理器内部设计(寄存器,数据通路,.)n单总线、双总线、三总线.n评价指令中地址码个数应该取多少的标准主要有两个n程序存储容量,包括操作码和地址码n程序执行速度,以程序执行过程中访问主存的信息量代表35tigerSeptember2014n例如:计算一个典型的算术表达式:;用三地址指令编写的程序MULX,A,B;X(A)(B)ADDX,X,C;X(X)+(C)SUBX,X,D;分子的计算结果在X中ADDY,E,F;计算分母,存入YDIVX,X,Y;最后结果在X单元中36tigerSeptember2014;用普通二地址指令编写的

20、程序MOVEX,A;复制临时变量到X中MULX,BADDX,CSUBX,D;X中存放分子运算结果MOVEY,E;复制临时变量到Y中ADDY,F;Y中存放分母运算结果DIVX,Y;最后结果在X单元中37tigerSeptember2014;用多寄存器结构的二地址指令编写程序MOVER1,A;操作数a取到寄存器R1中MULR1,BADDR1,CSUBR1,D;R1中存放分子运算结果MOVER2,EADDR2,F;R2中存放分母运算结果DIVR1,R2;最后结果在R1中MOVEX,R1;最后结果存入X中38tigerSeptember2014;用一地址指令编写的程序LOADE;先计算分母;取一个操作

21、数到累加器中ADDF;分母运算结果在累加器中STOREX;保存分母运算结果到X中LOADA;开始计算分子MULBADDCSUBD;累加器中是分子运算结果DIVX;最后运算结果在累加器中STOREX;保存最后运算结果到X中39tigerSeptember2014;用0地址指令编写程序:ab*c+d-ef+/PUSHA;操作数a压入堆栈PUSHB;操作数b压入堆栈MUL;栈顶两数相乘,结果压回堆顶PUSHCADDPUSHDSUB;栈顶是分子运算的结果PUSHEPUSHFADDDIV;栈顶是最后运算的结果POPX;保存最后运算结果40tigerSeptember2014地址数目 指令条数访存次数程序

22、存储量执行速度(访存信息量)三地址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=15 8P+7A+9R=40B8P+7A+9R+7D=96B用不同地址个数指令编写的程序的存储容量和执行速度nP表示操作码长度,A表示地址码长度,D表示数据长度,R表示通用寄存器的地址码长度,B表示字节数n并取:D2A8P16R8B41tige

23、rSeptember2014P A MRW;用0地址指令编写程序:ab*c+d-ef+/1 111PUSHA;操作数a压入堆栈1 111PUSHB;操作数b压入堆栈1 021MUL;栈顶两数相乘,结果压回堆顶1 111PUSHC1 021ADD1 111PUSHD1 021SUB;栈顶是分子运算的结果1 111PUSHE1 111PUSHF1 021ADD1 021DIV;栈顶是最后运算的结果1 111POPX;保存最后运算结果12 717 1217MR+12W=29D地址数目指令条数访存次数程序存储量执行速度(访存信息量)零地址1212P+29D=4112P+7A=40B12P+7A+29D

24、=272B42tigerSeptember2014地址数目程序的长度程序存储量程序执行速度适用场合三地址最短最大一般向量,矩阵运算为主二地址较短很大很低一般不宜采用一地址较长较大较快连续运算,硬件结构简单零地址最长最小最低嵌套,递归,变量较多二地址寄存器型一般最小最快多累加器,数据传送较多不同地址个数指令的特点及适用场合n地址码个数的结论n一般商用处理机,采用多寄存器结构的二地址指令最理想n强调硬件结构简单,以连续运算(如求累加和等)为主,宜采用一地址结构n向量、矩阵运算为主的处理机,最好采用三地址结构。部分RISC处理机也采用三地址指令n解决递归问题为主的处理机,宜采用零地址结构。编程容易、

25、节省程序存储量43tigerSeptember20142.3.3.2缩短地址码长度的方法n用一个短地址码表示一个大地址空间n用间址寻址方式缩短地址码长度n方法:在主存储器的低端开辟一个专门存放间接地址的区域n用变址寻址方式缩短地址码长度n变址寻址方式中的地址偏移量比较短n用寄存器间接寻址方式缩短地址码长度n如16个间址寄存器,用4位地址码就能表示很长的逻辑地址空间44tigerSeptember20142.4指令系统的功能设计n完整性是指应该具备的基本指令种类,通用计算机必须有5类基本指令n规整性包括对称性和均匀性n对称性:所有寄存器同等对待,操作码的设置等都要对称n如:A-B与B-An均匀性

26、:不同的数据类型、字长、存储设备、操作种类要设置相同的指令n高效率:指令的执行速度要快;指令的使用频度要高;各类指令之间要有一定的比例n兼容性:在同一系列机内指令系统不变(可以适当增加)45tigerSeptember2014指令系统的优化设计n指令系统的优化设计有两个截然相反的方向n1复杂指令系统计算机CISCn(ComplexInstructionSetComputer)n增强指令功能,设置功能复杂的指令n面向目标代码、高级语言和操作系统n用一条指令代替一串指令n2精简指令系统计算机RISCn(ReducedInstructionSetComputer)n只保留功能简单的指令n功能较复杂的

27、指令用子程序来实现46tigerSeptember20142.4.2CISC指令系统n2.4.2.1目标程序的优化n2.4.2.2对高级语言和编译程序的支持n2.4.2.3操作系统的优化实现47tigerSeptember20142.4.2.1目标程序的优化n优化目标程序的指标主要有两个n一是缩短程序的长度,即减少程序的空间开销n另一个是缩短程序的执行时间,即减少程序的时间开销n优化目标程序的方法n对大量的目标程序及其执行情况进行统计分析,找出那些使用频度高,执行时间长的指令或指令串n对于那些使用频度高的指令,用硬件加快其执行n缩短整个程序的执行时间n对于那些使用频度高的指令串,用一条新的指令

28、来代替n缩短整个程序的执行时间n缩短整个程序的长度,从而减少程序的空间开销n优化目标程序的主要途径n(1)增强数据传送指令的功能n(2)增强运算型指令的功能n(3)增强程序控制指令的功能48tigerSeptember2014n(1)增强数据传送指令的功能nIntel8088处理机nMOVE、PUSH和POP等3种数据传送指令的使用频度在程序中占40%左右,执行时间占30%以上nIBM大中型计算机的统计结果n数据传送指令所占的比例还要高n数据传送指令在整个指令系统中占有非常重要的地位n设计好数据传送指令对提高计算机系统的性能至关重要n数据块传送指令n(2)增强运算型指令的功能n在科学计算的应用

29、程序中,经常要计算各种各样的函数n在有些计算机系统设置有常用的函数运算指令n如:开平方,三角函数sin(x)、cos(x)、tg(x),对数函数ln(x)、lg(x),指数函数等n用一条指令代替软件的一个子程序来完成函数计算49tigerSeptember2014n(3)增强程序控制指令的功能n循环在一般程序占有相当大的比例n许多循环程序中的循环体本身往往很短n在一般高级语言中,循环体中只有一条语句的约占40%n有1至3条语句的约占70%左右n循环控制指令在整个循环程序中占据了相当大的比例n可以用一条循环控制指令来实现对循环变量的运算、测试和转移功能50tigerSeptember20142.

30、4.2.2对高级语言和编译程序的支持n大多数人都已经习惯用高级语言编写程序,只有在极少数有特殊要求的场合才用机器语言或汇编语言编写程序n目前在机器上实际运行的绝大多数程序,都是用高级语言编写,并经编译程序编译后生成的目标程序n大多数高级语言与一般计算机的机器语言的语义差距非常大n通常用高级语言编写的程序经编译程序编译后生成的目标程序,与直接用机器语言或汇编语言编写的程序相比,时间开销和空间开销都要大一个数量级n改进指令系统,增加对高级语言和编译程序的支持,缩小高级语言与机器语言的差距,就能提高整个计算机系统的性能n面向高级语言和编译程序增强指令系统的途径n(1)增强对高级语言和编译程序支持的指

31、令的功能n(2)研制高级语言计算机51tigerSeptember2014n(1)增强对高级语言和编译程序支持的指令的功能n在用高级语言编写的源程序中,对各种语句的使用频度和执行时间进行统计和分析n对使用频度高,执行时间长的语句,增强有关指令的的功能,或增加相关的专门指令n缩短目标程序长度n减少目标程序执行时间n同时也能缩短编译所用的时间n增强体系结构的规整性,减少体系结构中各种例外情况,是对编译程序的有力支持52tigerSeptember2014n(2)研制高级语言计算机n缩小高级语言与机器语言差距,如果走到极端就是把高级语言与机器语言合二为一,即所谓的高级语言计算机n在这种机器中,高级语

32、言不需要经过编译,直接由机器的硬件来执行n如LISP计算机、PROLOG计算机n针对多种高级语言,可以研制各种VLSI芯片,在同一台机器上可以安装多种高级语言的专用芯片n也可以采用微程序技术,通过微程序存储器的动态加载来实现在同一台机器上具有多种高级语言53tigerSeptember20142.4.2.3操作系统的优化实现n任何一种计算机系统都必须有操作系统的支撑才能工作,而操作系统又必须用指令系统来实现n指令系统对操作系统的支持主要有n(1)处理机工作状态和访问方式的转换n(2)进程的管理和切换n(3)存储管理和信息保护n(4)进程的同步和互斥,信号灯的管理等n支持操作系统的有些指令属于特

33、权指令,对一般用户不公开n尽管有些指令的使用频度很低,但是,如果没有这些指令的支持,操作系统将很难实现,或根本不能实现n如处理机状态的转换,进程的切换,信号灯的管理等方面所使用的有关指令54tigerSeptember20142.4.3RISC指令系统n70年代,指令系统已经非常复杂n1975年,IBM公司率先组织力量研究指令系统的合理性问题n1979年研制出世界上第一台采用RISC思想的计算机IBM801n1986年,IBM正式推出采用RISC体系结构的工作站IBMRTPC机型(生产年代)IBM370/168(1973)VAX-11(1978)iAPX432(1982)Dorado(1978

34、)指令种类208303222270微程序容量420K480K64K136K指令长度16-4816-4566-3218-24采用的工艺ECLMSITTLMSINMOSVLSIECLMSI指令操作类型 存储器-存储器存储器-寄存器寄存器-寄存器存储器-存储器存储器-寄存器寄存器-寄存器面向堆栈存储器-存储器面向堆栈Cache容量64KB64KB064KB55tigerSeptember2014RISCn精简指令系统计算机(RISC)是80年代提出的一种新的计算机体系结构设计思想n目前运行中的许多处理机都采用了RISC体系结构nSUN公司的SPARC、SuperSPARC、UtraSPARCnSGI

35、公司的R4000、R5000、R10000nIBM公司的Power、PowerPCnIntel公司的80860、80960、ItaniumnDEC公司的AlphanMotorola公司的88100nHP公司的HP3000/930系列、950系列等n有些典型的CISC处理机也采用了RISC设计思想n如Intel公司的80486、Pentium、PentiumPro,Xeon等56tigerSeptember20142.4.3.1从CISC到RISCnCISC指令系统存在的问题n120%与80%规律nCISC中,大约20%的指令占据了80%的处理机时间n其余80%指令:使用频度只占20%的处理机运

36、行时间n2VLSI技术的发展引起的问题nVLSI工艺要求规整性nCISC处理机中,为了实现大量的复杂指令,控制逻辑极不规整,给VLSI造成很大困难nRISC正好适应了VLSI工艺的要求n主存与控存的速度相当n简单指令没有必要用微程序实现,n复杂指令用微程序实现与用简单指令组成的子程序实现没有多大区别n由于VLSI的集成度迅速提高,使得生产单芯片处理机成为可能57tigerSeptember2014表2.25Intel8088处理机指令系统使用频度和执行时间统计(C语言编译程序和PROLOG解释程序)使用频度执行时间序号指令%累计%序号指令%累计%123456789101112131415161

37、7181920MOVPUSHCMPJMPccADDPOPRETCALLJUMPSUBINCLESREPNIMULDECXORREPNZCLDLOOPccTEST24.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.101234567891011121314151617181920IMULMO

38、VPUSHJMPccCMPCALLRETADDJMPLESPOPDECSUBXORINCLOOPccLDSCMPSMOVSJCXZ19.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.7258tigerSeptember2014表2.26Intel8088处理机各类指令使用频度统计指令类型

39、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.1959tigerSeptember20143软硬件的功能分配问题

40、n复杂的指令使指令的执行周期大大加长n一般CISC处理机的指令平均执行周期都在4以上,有些在10以上nCISC增强了指令系统功能,简化了软件,但硬件复杂了n1981年Patterson等人研制了32位RISCI微处理器n共31种指令,3种数据类型,2种寻址方式n所有指令都在一个周期(500ns)内完成。只有LOAD/STORE可访问存储器,其它指令的操作都在通用寄存器之间进行,有78个通用寄存器n采用寄存器窗口技术n研制周期10个月,比当时最先进的MC68000和Z8002快3至4倍n1983年又研制了RISCIIn指令种类扩充到39种,单一的变址寻址方式,通用寄存器138个60tigerSe

41、ptember20142.4.3.2RISC的定义与特点n卡内基梅隆大学(CarnegieMellon)论述RISC的特点n1大多数指令在单周期内完成n2LOAD/STORE结构n3硬布线控制逻辑n4减少指令和寻址方式的种类n5固定的指令格式n6注重译码的优化n从目前的发展来看,RISC体系结构还应具有如下特点n(1)面向寄存器结构n(2)十分重视提高流水线的执行效率n要提高RISC处理机的速度,必须采用流水线,而且,要尽量减少断流,提高流水线的效率n(3)重视优化编译技术n优化编译技术在提高系统性能中发挥很重要的作用,改变了过去认为提高计算机速度仅仅依靠硬件的传统观点n高效率的流水线和优化编

42、译技术是现代RISC系统必须十分注重的两点。这比卡内基梅隆大学的定义更加全面了61tigerSeptember201490年代初,IEEE的MichaelSlater对RISC定义的描述n1RISC为使流水线高效率执行,应具有n(1)简单而统一格式的指令译码n(2)大部分指令可以单周期执行完成n(3)仅Load和Store指令可以访问存储器n(4)简单的寻址方式n(5)采用延迟转移技术n(6)采用LOAD延迟技术n2RISC为使优化编译器便于生成优化代码,应具有n(1)三地址指令格式n(2)较多的寄存器n(3)对称的指令格式62tigerSeptember20142.4.3.3减少CPI是RI

43、SC思想的精华n程序执行时间nP=ICPITn其中nP是执行这个程序所使用的总的时间nI是这个程序所需执行的总的指令条数nCPI(CyclesPerInstruction)是每条指令执行的平均周期数nT是一个周期的时间长度nRISC的速度要比CISC快3倍左右,关键是RISC的CPI减小了类型 指令条数I 指令平均周期数CPI 周期时间TCISC121533ns5nsRISC1.31.41.11.410ns2ns63tigerSeptember2014n对于T而言nRISC一般采用硬布线逻辑实现,指令要实现的功能都比较简单nRISC的T通常要比CISC的T小nRISC处理机的工作主频一般要比C

44、ISC处理机高n对于CPI而言nRISC的大多数指令都是单期执行的,它们的CPI应该是1n由于RISC中还有LOAD和STORE指令,也还有少数复杂指令,所以,CPI要略大于1n对于I而言n由于CISC中复杂指令使用的频度很低,程序中使用的绝大多数指令都是与RISC一样的简单指令n因此,实际上RISC的I长度只比CISC的长30%40%n结论nRISC的速度要比CISC快3倍左右n同类问题的程序长度,RISC比CISC长30%40%64tigerSeptember2014n硬件方面n采用硬布线控制逻辑n减少指令和寻址方式的种类n使用固定的指令格式n采用LOAD/STORE结构n指令执行过程中设

45、置多级流水线等n软件方面n十分强调优化编译技术的作用nRISC设计思想也可以用于CISC中n例如:Intel公司的80x86处理机的CPI在不断缩小n8088的CPI大于20n80286的CPI大约是5.5n80386的CPI进一步减小到4左右n80486的CPI已经接近2nPentium处理机的CPI已经与RISC十分接近n目前,超标量、超流水线处理机的CPI已经达到0.5,实际上用IPC(InstructionsPerCycle)更确切65tigerSeptember20142.4.3.4RISC的关键技术n1延时转移技术n2指令取消技术n3重叠寄存器窗口技术n4指令流调整技术n5以硬件为

46、主固件为辅66tigerSeptember20141延时转移技术n思想n为了使指令流水线不断流,在转移指令之后插入一条没有数据相关和控制相关的有效指令,而转移指令被延迟执行,这种技术称为延迟转移技术n采用指令延迟转移技术时,指令序列的调整由编译器自动进行,用户不必干预n采用延迟转移的程序,必须十分小心67tigerSeptember2014无条件转移指令的延迟执行68tigerSeptember2014条件转移指令的延迟执行调整前的指令序列1:MOVER1,R22:CMPR3,R4;(R3)与(R4)比较3:BEQNEXT;如果(R3)=(R4)则转移NEXT:MOVER4,A调整后的指令序列

47、1:CMPR3,R4;(R3)与(R4)比较2:BEQNEXT;如果(R3)=(R4)则转移3:MOVER1,R2;被插入的指令NEXT:MOVER4,A69tigerSeptember2014采用延迟转移技术的两个限制条件n两个限制条件n1被移动指令在移动过程中与所经过的指令之间没有数据相关n2被移动指令不破坏条件码,至少不影响后面的指令使用条件码n如果找不到符合上述条件的指令,必须在条件转移指令后面插入空操作n如果指令的执行过程分为多个流水段,则要插入多条指令n插入1条指令成功的概率比较大n插入2条或2条以上指令成功的概率明显下降70tigerSeptember20142指令取消技术n采用

48、指令延时技术,经常找不到可以用来调整的指令n可考虑采用另一种方法:指令取消技术n分为两种情况n(1)向后转移(适用于循环程序)n实现方法n循环体的第一条指令安放在两个位置,分别在循环体的前面和后面n如果转移成功,则执行循环体后面的指令,然后返回到循环体开始n否则取消循环体后面的指令71tigerSeptember2014(1)向后转移(适用于循环程序)n效果效果n能够使指令流水线在绝大多数情况下不断流n对于循环程序,绝大多数情况下,转移是成功的n只有最后一次出循环时,转移不成功72tigerSeptember2014(2)向前转移(IFTHEN)n实现方法:如果转移不成功,继续执行转移指令之后

49、的下条指令TTT,否则取消下条指令n例子n R R Rn “IF”部分的程序代码 n S S Sn COMP R1, R2, THRUn T T Tn “THEN”部分的程序代码n U U Un THRU: V V Vn效果:转移成功与不成功的概率,通常各占50%n优点:不必进行指令流调整73tigerSeptember2014隐含转移技术n特殊的IF.THEN.结构中,THEN部分只有一条指令n把IF条件取反,如果取反后的条件成立则取消下条指令,否则执行下条指令n例子:IF(ab)THENb=b+1nCOMP=,Ra,Rb;若(Ra)=(Rb)则取消;否则,继续完成INCnINCRb74ti

50、gerSeptember20143重叠寄存器窗口技术n(OverlappingRegisterWindow)n原因n在RISC中,子程序比CISC中多nCALL和RETURN操作保存现场、传送参数访问存储器的信息量很大n为使CALL和RETURN操作尽量少访问存储器,美国加洲大学伯克利分校的F.Baskett提出重叠寄存器窗口技术n实现方法n设置一个数量比较大的寄存器堆,并把它划分成多个窗口n每个过程使用其中相邻的3个窗口和一个公共的窗口n有一个窗口与前一个过程共用n存放前一过程传送给本过程的参数n存放本过程传送给前一过程的计算结果n有一个窗口与下一个过程共用n存放本过程传送给下一过程的参数n

51、存放下一过程传送给本过程的计算结果75tigerSeptember2014RISCII的重叠寄存器窗口76tigerSeptember20143重叠寄存器窗口技术nSUN公司的SPARC、SuperSPARC、UtraSPARC等处理机,把最后一个过程与第一个过程的公用寄存器重叠起来,形成一个循环n效果:可以减少大量的访存操作n在主存中开辟一个堆栈,当调用层数超过规定层数(寄存器溢出)时,把溢出部分的寄存器中内容压入堆栈77tigerSeptember2014n寄存器窗口技术的效果nRISCII调用引起的访存占总访存次数的0.8%,1%n过程调用所需开销的比较程序名称调用次数最大调用深度RIS

52、CII溢出次数RISCII访存次数VAX-11访存次数Quicksort 111K(0.7%)10644K(0.8%)696K(50%)Puzzle43K(8.0%)201248K(1.0%)444K(28%)3重叠寄存器窗口技术机器类型 执行指令条数 执行时间(微秒) 访问存储器次数VAX-11PDP-11MC68000RISCII5199626221921015120.278tigerSeptember20144指令流调整技术n目标:通过变量重新命名消除数据相关,提高流水线效率n例子ADDR1,R2,R3;(R1)+(R2)R3ADDR1,R2,R3ADDR3,R4,R5;(R3)+(R4

53、)R5MULR6,R7,R0MULR6.R7,R3;(R6)(R7)R3ADDR3,R4,R5MULR3,R8,R9;(R3)(R8)R9MULR0,R8,R9(a)调整前的指令序列(b)调整后的指令序列n(a)存在R3寄存器的数据相关n第二条指令必须等第一条指令执行完后才能开始执行,后续的指令也是这样。如果执行一条指令需要两个机器周期,那么,每两条指令之间都要浪费一个周期n(b)通过优化编译器调整后的指令序列n在两条乘法指令中用R0寄存器代替原来的R3寄存器,消除了两条乘法指令与两条加法指令之间的数据相关,并且重新调整指令序列n调整后的指令序列比原指令序列的执行速度快一倍79tigerSep

54、tember20145以硬件为主固件为辅n固件的主要缺点是n执行速度低n目前,ROM的速度低于SRAMn一条机器指令通常要多条微指令解释执行n固件的主要优点是:便于实现复杂指令,便于修改指令系统n以硬联逻辑为主来实现指令系统,对于少数复杂的指令,目前的许多处理机也用微程序技术实现80tigerSeptember20142.4.3.5RISC优化编译技术nRISC对编译器带来方便n(1)指令系统比较简单、对称、均匀,指令选择工作简单n(2)选择寻址方式的工作简单n(3)采用LOAD/STORE方式,省去了是否生成访问存储器指令的选择工作n(4)大多数指令在一个周期内执行完成,为编译器调整指令序列

55、提供了极大的方便nRISC对编译器造成困难n(1)必须精心安排每一个寄存器的用法,以便充分发挥每一个通用寄存器的效率,尽量减少访问主存储器的次数n(2)做数据和控制相关性分析,要调整指令的执行序列,并与硬件相配合实现指令延迟技术和指令取消技术等n(3)要设计复杂的子程序库nRISC的子程序库通常要比CISC的子程序库大得多81tigerSeptember20142.aVLIW指令系统n2.a.1什么是VLIWn2.a.2指令级并行技术n2.a.3VLIW的主要特点n2.a.4VLIW处理机n2.a.5目标代码兼容问题82tigerSeptember20142.a.1什么是VLIWn1VLIW(

56、VeryLongInstructionWord)的背景n2什么是VLIW指令系统-一种显式指令级并行指令系统n1VLIW(VeryLongInstructionWord)的背景n由美国J.A.Fisher教授于1981年首先提出n最初来源于水平微程序n一条指令中包含有多个能够同时执行的操作n由J.A.Fisher创建的Mutiflow公司研制了的世界上第一台VLIW处理机TRACE28/300nTRACE28/300处理机的一条超长指令中最多有28条可以同时执行的指令n算法和编译技术是关键n(在下一代处理机中将普遍采用)83tigerSeptember20142.a.1什么是VLIWn2什么是

57、VLIW指令系统-一种显式指令级并行指令系统n在一条VLIW指令中包含有多个相同或不同的操作字段(每个操作字段的功能相当于一般处理机中的一条指令)n每个操作字段能够分别独立控制各自的功能部件同时工作n二维程序结构n指令级并行度高84tigerSeptember20142.a.2指令级并行n提出VLIW指令系统的主要目的是要开发程序中的指令级并行性(InstructionLevelParallelism)n超标量(Superscalar)处理机n依靠设置多条指令流水线,并通过同时发射多条指令来提高处理机的运算速度n超流水线(Superpipelining)处理机n通过分时使用同一条指令流水线的不

58、同部分来提高处理机的运算速度nVLIW处理机85tigerSeptember20142.a.3VLIW的主要特点n1采用显式并行指令计算n2指令级并行度高n3硬件结构规整、简单n4编译器的实现难度大n1采用显式并行指令计算(EPIC:ExplicitlyParallelInstructionComputing)方式n在VLIW处理机上运行的程序是一个二维指令矩阵,每一行上的所有操作组成一条超长指令,它们之间没有数据相关、控制相关和功能部件冲突,这些指令可以在VLIW处理机上同时执行n超标量处理机和超流水线处理机通常采用隐式并行指令方式。程序是一维线性的指令序列,每条指令中一般只包含一个操作86

59、tigerSeptember20142.a.3VLIW的主要特点n2指令级并行度高n超标量处理机和超流水线处理机的指令级并行度一般为2左右,通常不超过4n目前多数VLIW处理机的指令级并行度在4至8之间,有的已经达到几十nVLIW通过并行编译器来开发程序中的指令级并行性n可在一个循环、一个函数、甚至整个程序中寻找指令级并行性n可采用软件流水、循环展开等指令级并行度很高的方法充分开发程序中的多种并行性87tigerSeptember20142.a.3VLIW的主要特点n3硬件结构规整、简单nVLIW处理机主要由很规则的寄存器、存储器、运算部件和数据通路等组成n规则的控制器很简单n不需要复杂的指令

60、并行调度窗口及多发射机制等n4编译器的实现难度大nVLIW并行编译器主要依靠n指令级并行算法n数据相关性分析算法n寄存器分配算法n并行编译技术n来显式开发程序中的指令级并行性,从而提高处理机的运行速度n要研制指令级并行度高的编译器难度很大88tigerSeptember20142.a.4VLIW处理机n1安腾(Itanium)处理机nIntel公司与HP公司联合研制n在Intel公司称为IA-64处理机n安腾(Itanium)处理机有自己独立的系统软件和应用软件n2DAISY(DynamicallyArchitectedInstructionSetfromYorktown)处理机n由IBM公司

61、研制n采用动态二进制转换技术实现与X86处理机兼容89tigerSeptember20142.a.4VLIW处理机n3Crusoe(漂流)、Efficeon处理机n由Transmeta(全美达)公司研制n大量应用于笔记本计算机中,一个重要特点是功耗很低n采用动态二进制转换技术把X86通用处理机的程序直接映射到Crusoe处理机的VLIW结构中执行n4嵌入式、DSP、JAVA虚拟机n很多专用处理机采用VLIW体系结构90tigerSeptember20142.a.5目标代码兼容问题n1动态代码转换技术:两个成功的先例nIBM公司推出开放源代码DAISYn实现IBM的VLIW处理器与X86处理机之

62、间的二进制兼容n实现PowerPC、S/390、IBM的Java虚拟机与VLIW处理器之间的二进制兼容nTransmeta公司推出“代码映射软件”(CodeMorphingSoftware)n这种软件可保证Transmeta公司的VLIW处理机Crusoe与X86处理机之间实现二进制兼容91tigerSeptember20142.a.5目标代码兼容问题nCrusoe处理机动态转换技术92tigerSeptember20142.a.5目标代码兼容问题n2IBM公司的VLIW处理机93tigerSeptember20142.a.5目标代码兼容问题nIBM公司推出的开放源代码DAISY94tiger

63、September20142.a.5目标代码兼容问题nIBM公司的PowePC到VLIW的转换95tigerSeptember20142.a.5目标代码兼容问题n3可执行代码的并行编译技术n有动态重编译和静态重编译两种方法n动态重编译:DAISY和CodeMorphingn静态重编译:还没有商业化的先例n难度很大,正在研究中n目标n一种系列机的目标代码重新编译到本系列机或另一种系列机的并行目标代码n方法n串行目标代码中间表示形式数据相关性分析并行调度并行目标代码96tigerSeptember20143可执行代码的并行编译技术n意义n(1)编译器不再受限于程序采用的编程语言、开发工具及开发环境

64、,不同的编程语言都呈现为统一的二进制视图n(2)将大量已有的二进制目标代码直接编译成能够在最新的超标量、超流水线或VLIW处理机上执行的并行可执行代码,充分利用最新处理机的硬件资源,大幅度缩短程序的执行时间n(3)不同机器之间的软件能够很方便地移植n(4)系统结构与软件可以同时并行发展,克服目前制约系统结构发展的限制因素97tigerSeptember20143可执行代码的并行编译技术n关键技术n(1)可执行代码的指令流重构和控制流重构,如非规则循环结构的整理和重构等n(2)中间代码的表示形式和表示方法n(3)如何把各种可执行代码转换成中间代码n(4)可执行代码的数据相关性分析,进行有效数组相关性分析的前提是正确重构数组下标表达式n(5)系统调用和中断指令在并行优化中的正确性及效率98tigerSeptember2014?nCLRnCLInCLSn.NETFramework99tigerSeptember2014本章重点*1浮点数的表示方法及性质*2浮点数的设计方法*3浮点数的舍入方法和警戒位位数的设置*4自定义数据表示方法的原理5指令格式的优化设计6RISC思想7RISC关键技术100

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号