《计算机系统结构(第5讲).ppt》由会员分享,可在线阅读,更多相关《计算机系统结构(第5讲).ppt(109页珍藏版)》请在三一办公上搜索。
1、计算机系统结构(第5讲),计算机系统结构,第一章 基本概念第二章 指令系统第三章 存储系统第四章 输入输出系统第五章 标量处理机,第六章 向量处理机第七章 互连网络第八章 并行处理机和 多处理机,第二章指令系统,指令系统是计算机系统结构的主要组成部分指令系统是软件与硬件分界面的一个主要标志指令系统是软件与硬件之间互相沟通的桥梁指令系统与软件之间的语义差距越来越大,第二章指令系统,2.1 数据表示2.2 寻址技术2.3 指令格式的优化设计2.4 指令系统的功能设计2.5 RISC指令系统,2.1 数据表示新的研究成果,如浮点数基值的选择方法新的数据表示方法,如自定义数据表示2.1.1 数据表示与
2、数据类型2.1.2 浮点数的设计方法2.1.3 自定义数据表示,2.1.1 数据表示与数据类型数据表示的定义:数据表示是指计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型。定点、逻辑、浮点、十进制、字符、字符串、堆栈和向量数据类型:文件、图、表、树、阵列、队列、链表、栈、向量、串、实数、整数、布尔数、字符等。确定哪些数据类型用数据表示实现,是软件与硬件的取舍问题。,确定数据表示的原则:1.缩短程序的运行时间2.减少CPU与主存储器之间的通信量3.这种数据表示的通用性和利用率数据表示在不断发展如:矩阵、树、图、表及自定义数据表示等,2.1.2 浮点数的设计方法1、浮点数的表示方式一个
3、浮点数N可以用如下方式表示:需要有6个参数来定义。两个数值:m:尾数的值,包括尾数的码制(原码或补码)和数制(小数或整数)e:阶码的值,移码(偏码、增码、译码、余码等)或补码,整数,1.原码、反码、补码(1)x=+10101(2)x=-10101x原=010101 x原=110101x反=010101 x反=101010 x补=010101 x补=101011结论1:对于正数来说,x原=x反=x补即符号位为零,后面加上x的真值。结论2:对于负数来说,x原=1+x的真值x反=1+x的真值的每一位求反x补=1+x的真值的每一位求反,最后一位加1,2.移码十进制值补码移码十进制值补码移码+70111
4、1111-111110111+601101110-211100110+501011101-311010101+401001100-411000100+300111011-510110011+200101010-610100010+100011001-710010001000001000-810000000由x补得到x移的方法是变x补的符号位为其反码。最高一位为符号位,1代表正号,0代表负号。,3浮点数的规格化同一个浮点数的表示不是唯一的。0.5可表示为0.05*101,50*10-2尾数用原码表示,最高位不等于零,称之为规格化数。尾数用补码表示,最高位与符号位不等,称之为规格化数。尾数的符号位
5、表示整个数的正负。阶码的符号位表示把尾数扩大(缩小)N倍。,2.1.2 浮点数的设计方法1、浮点数的表示方式一个浮点数N可以用如下方式表示:需要有6个参数来定义。两个数值:m:尾数的值,包括尾数的码制(原码或补码)和数制(小数或整数)e:阶码的值,移码(偏码、增码、译码、余码等)或补码,整数,两个基值:rm:尾数的基值,2进制、4进制、8进制、16进制和10进制等re:阶码的基值,通常为2两个字长:p:尾数长度,当rm16时,每4个二进制位表示一位尾数q:阶码长度,阶码部分的二进制位数p和q均不包括符号位,浮点数的存储式注:mf为尾数的符号位,ef为阶码的符号位,e为阶码的值,m为尾数的值。2
6、、浮点数的表数范围尾数为原码、小数,阶码用移码、整数时,规格化浮点数N的表数范围:,尾数为补码,而负数区间的表数范围为:浮点数在数轴上的分布情况例2.1:p23,q7,rmre2,尾数用原码、小数表示,阶码用移码、整数表示,求规格化浮点数N的表数范围。,解:规格化浮点数N的表数范围是:例2.3:尾数用补码、小数表示,阶码用移码、整数表示,p6,q6,rm16,re2,求规格化浮点数N表数范围解:规格化浮点数N在正数区间的表数范围是:,在负数区间的表数范围是:,6、浮点数格式的设计定义浮点数表示方式的6个参数的确定原则:尾数:多数机器采用原码、小数表示。采用原码制表示:加减法比补码表示复杂,乘除
7、法比补码简单,表示非常直观。采用小数表示能简化运算,特别是乘除法运算。阶码:一般机器都采用整数、移码表示。采用移码表示的主要原因是:浮点0与机器0一致。阶码进行加减运算时,移码的加减法运算要比补码复杂,尾数的基值rm选择2,阶码的基值re取2,浮点数格式设计的关键问题是:在表数范围和表数精度给定的情况下,如何确定最短的尾数字长p和阶码字长q例2.5:要求设计一种浮点数格式,其表数范围不小于1037,正、负数对称,表数精度不低于10-16。解:根据表数范围的要求:解这个不等式:,取阶码字长q7根据表数精度的要求,得到:解这个不等式:由于浮点数的字长通常为8的倍数,因此,取尾数字长p55,总的字长
8、为1+1+7+55=64,浮点数格式如下:,所设计浮点数格式的主要性能如下:最大尾数值:绝对值最小的尾数值:最大阶码:最小阶码:最大正数:最小正数:,最大负数:最小负数:表数精度:浮点零:浮点零与机器零相同,64位全为0表数效率:采用隐藏位,表数效率=100%,练习题:2.2 2.3 2.5 2.6 2.102.14 2.15,计算机系统结构(第6讲),第二章指令系统,2.1 数据表示2.2 寻址技术2.3 指令格式的优化设计2.4 指令系统的功能设计2.5 RISC指令系统,2.2 寻址技术寻找操作数及其他信息的地址的技术称为寻址技术内容:编址方式、寻址方式和定位方式对象:寄存器、主存储器、
9、堆栈和输入输出设备方法:分析各种寻址技术的优缺点,如何选择和确定寻址技术2.2.1 编址方式2.2.2 寻址方式2.2.3 定位方式重点是寻址方式的选择方法,2.2.1 编址方式编址方式是指对各种存储设备进行编码的方法。主要内容:编址单位、零地址空间个数、并行存储器的编址技术、输入输出设备的编址技术1、编址单位常用的编址单位:字编址、字节编址、位编址、块编址等,编址单位与访问字长一般:字节编址,字访问部分机器:位编址,字访问辅助存储器:块编址字节编址字访问的优缺点有利于信息处理地址信息浪费、存储器空间浪费读写逻辑稍复杂0字节位置引起的问题2、零地址空间个数三个零地址空间:通用寄存器、主存储器和
10、输入输出设备均独立编址,两个零地址空间:主存储器与输入输出设备统一编址一个零地址空间:所有存储设备统一编址,最低端是通用寄存器,最高端是输入输出设备,中间为主存储器隐含编址方式,实际上没有零地址空间:堆栈、Cache等3、输入输出设备的编址一台设备一个地址一台设备两个地址:数据寄存器、状态或控制寄存器,多个需要编址的寄存器共用同一个地址的方法:依靠地址内部来区分,适用于被编址的接口寄存器的长度比较短。“下跟法”隐含编址方式,必须按顺序读写寄存器。一台设备多个地址。对编程增加困难4、并行存储器的编址技术高位交叉编址主要目的是用来扩大存储器容量。低位交叉编址主要目的是提高存储器速度。,2.2.2
11、寻址方式寻址方式:寻找操作数及数据存放单元的方法。主要内容:设计思想和设计方法1、寻址方式的设计思想立即数寻址方式用于数据比较短、源操作数面向寄存器的寻址方式OPCROPCR,ROPCR,R,R,OPCR,M面向主存储器的寻址方式:OPCMOPCM,MOPCM,M,M面向堆栈的寻址方式:OPCOPCM2、间接寻址方式与变址寻址方式的比较目的相同:都是为了解决操作数地址的修改问题,都能做到不改变程序而修改操作数地址原则上,一种处理机中只需设置间址寻址方式与变址寻址方式中的任何一种即可,有些处理机两种寻址方式都设置如何选取间址寻址方式与变址寻址方式?优缺点怎样?例2.7:一个由N个元素组成的数组,
12、已经存放在起始地址为AS的主存连续单元中,现要把它搬到起始地址为AD的主存连续单元中。不必考虑可能出现的存储单元的重叠问题。为了编程简单,采用一般的两地址指令编写程序。,解:用间接寻址方式编写程序如下:start:moveasr,asi;保存源数组的起始地址moveadr,adi;保存目标数组起始地址movenum,cnt;保存数据的个数loop:moveasi,adi;用间址寻址方式传送数据incasi;源数组的地址增量incadi;目标数组的地址增量deccnt;个数减1bgtloop;测试n个数据是否传送完halt;停机asr:as;源数组的起始地址adr:ad;目标数组的起始地址num
13、:n;需要传送的数据个数asi:0;当前正在传送的源数组地址,都能做到不改变程序而修改操作数地址原则上,一种处理机中只需设置间址寻址方式与变址寻址方式中的任何一种即可,有些处理机两种寻址方式都设置如何选取间址寻址方式与变址寻址方式?优缺点怎样?例2.7:一个由N个元素组成的数组,已经存放在起始地址为AS的主存连续单元中,现要把它搬到起始地址为AD的主存连续单元中。不必考虑可能出现的存储单元的重叠问题。为了编程简单,采用一般的两地址指令编写程序。,解:用间接寻址方式编写程序如下:start:moveasr,asi;保存源数组的起始地址moveadr,adi;保存目标数组起始地址movenum,c
14、nt;保存数据的个数loop:moveasi,adi;用间址寻址方式传送数据incasi;源数组的地址增量incadi;目标数组的地址增量deccnt;个数减1bgtloop;测试n个数据是否传送完halt;停机asr:as;源数组的起始地址adr:ad;目标数组的起始地址num:n;需要传送的数据个数asi:0;当前正在传送的源数组地址,adi:0;当前正在传送的源数组地址cnt:0;剩余数据的个数用变址寻址方式编写程序如下:start:moveas,x;源数组起址送变址寄存器movenum,cnt;保存数据个数,保证再入性loop:move(x),ad-as(x);ad-as位地址偏移量,
15、;在汇编时计算incx;增量变址寄存器deccnt;个数减1bgtloop;测试n个数据是否传送完成halt;停机num:n;需要传送的数据个数 cnt:0;剩余数据的个数,主要优缺点比较:采用变址寻址方式编写的程序简单、易读。对于程序员,两种寻址方式的主要差别是:间址寻址方式:间接地址在主存储器中,没有偏移量变址寻址方式:基地址在变址寄存器中,有偏移量实现的难易程度:间址寻址方式容易指令的执行速度:间址寻址方式慢对数组运算的支持:变址寻址方式比较好自动变址:在访问间接地址过程中,地址自动增减,变址与间址混合时,两种方式:前变址寻址方式:EA(X)A)后变址寻址方式:EA(X)(A)3、寄存器
16、寻址主要优点:指令字长短、指令执行速度快、支持向量和矩阵运算主要缺点:不利于优化编译、现场切换困难、硬件复杂4、堆栈寻址方式主要优点:支持高级语言,有利与编译程序;节省存储空间,支持程序的嵌套和递归调用,支持中断处理主要缺点:运算速度比较低,栈顶部分设计成一个高速的寄存器堆2.2.3 定位方式程序的主存物理地址在什么时间确定?采用什么方式来实现?程序需要定位的主要原因:程序的独立性;程序的模块化设计;数据结构在程序运行过程中,其大小往往是变化的;有些程序本身很大,大于分配给它的主存物理空间,直接定位方式:在程序装入主存储器之前,程序中的指令和数据的主存物理就已经确定了的称为直接定位方式。静态定
17、位:在程序装入主存储器的过程中随即进行地址变换,确定指令和数据的主存物理地址的称为静态定位方式。动态定位:在程序执行过程中,当访问到相应的指令或数据时才进行地址变换,确定指令和数据的主存物理地址的称为动态定位 方式。,计算机系统结构(第7讲),第二章指令系统,2.1 数据表示2.2 寻址技术2.3 指令格式的优化设计2.4 指令系统的功能设计2.5 RISC指令系统,2.3 指令格式的优化设计主要目标:节省程序的存储空间指令格式尽量规整,便于译码研究内容:操作码的优化表示;地址码的优化表示2.3.1 指令的组成2.3.2 操作码的优化设计2.3.3 地址码的优化设计2.3.4 指令格式设计举例
18、,2.3.1 指令的组成一般的指令主要由两部分组成:操作码和地址码操作码主要包括两部分内容:操作种类:加、减、乘、除、数据传送、移位、转移、输入输出操作数描述:数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量进位制:2进制、10进制、16进制数据字长:字、半字、双字、字节,地址码通常包括三部分内容:地址:直接地址、间接地址、立即数、寄存器编号、变址寄存器编号地址的附加信息:偏移量、块长度、跳距寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址,2.3.2 操作码的优化表示操作码的三种编码方法:固定长度,Huffman编码、扩展编码改进操作码编码方式能够节省程序
19、存储空间,例如:Burroughs公司的B-1700机,2、Huffman编码法1992年由Huffman首先提出操作码的最短平均长度可通过下式计算:其中:Pi表示第i种操作码在程序中出现的概率固定长操作码相对于Huffman操作码的信息冗余量为:,例2.6:假设一台模型计算机共有7种不同的操作码,如果采用固定长操作码需要3位。已知各种操作码在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量。利用Huffman树进行操作码编码的方法,又称为最小概率合并法。,1.把所有指令按照操作码在程序中出现的概率,自左向右从排列好。2
20、.选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成新结点集合。3.在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。4.最后得到的根结点的概率值为1。5.每个结点都有两个分支,分别用一位代码“0”和“1”表示。,6.从根结点开始,沿尖头所指方向,到达属于该指令的概率结点,把沿线所经过的代码组合起来得到这条指令的操作码编码。解:采用Huffman编码法所得到的操作码的平均长度0.4510.3020.1530.0540.0350.0160.0161.97(位)采用最优Huffman编码法,操作码的最短平均长度
21、0.451.1520.301.7370.152.7370.054.3220.035.0590.016.6440.016.6441.95(位),采用3位固定长操作码的信息冗余量为:,Huffman编码法的信息冗余量仅为:与3位定长操作码的冗余量35相比要小得多3、扩展编码法Huffman操作码的主要缺点:操作码长度很不规整,硬件译码困难与地址码共同组成固定长的指令比较困难扩展编码法:由固定长操作码与Huffman编码法相结合形成,例如:例2.7改为1-2-3-5扩展编码法,其操作码最短平均长度为:H=0.4510.3020.153(0.050.030.010.01)5=2.00信息冗余量为:又例
22、如:例2.7改为2-4等长扩展编码法,其操作码最短平均长度为:H=(0.450.30+0.15)2+(0.05+0.03+0.01+0.01)4=2.20信息冗余量为:,序号,概率,1-2-3-5扩展编码,I1,0.45,0,I2,0.30,10,I3,0.15,110,I4,0.05,11100,I5,0.03,11101,I6,0.01,11110,I7,0.01,11111,2-4等长扩展编码,00,01,10,1100,1101,1110,1111,平均长度,2.0,2.2,信息冗余量,2.5%,11.4%,7条指令的操作码扩展编码法,操作码编码,说明,000000011110,4位长
23、度的操作码共15种,等长15/15/15扩展编码法,1111 00001111 00011111 1110,8位长度的操作码共15种,1111 1111 00001111 1111 00011111 1111 1110,12位长度的操作码共16种,采用3位固定长操作码的信息冗余量为:,操作码编码,说明,000000010111,4位长度的操作码共8种,等长8/64/512扩展编码法,1000 00001000 00011111 0111,8位长度的操作码共64种,1000 1000 00001000 1000 00011111 1111 0111,12位长度的操作码共512种,编码方法,不等长
24、操作码(4/6/10)扩展编码法,4位,指令操作码的长度,6位,10位,指令种类,15/3/16,15,3,16,34,8/31/16,8,31,16,55,8/30/32,8,30,32,70,8/16/256,8,16,256,280,4/32/256,4,32,256,292,2.3.4 指令格式设计举例指令的长度:有固定长度和可变长度两种操作码长度:有固定长度和可变长度两种例如:IBM370系列机,操作码长度固定:8位 指令长度有16位、32位和48位等多种地址个数以两地址为主16个通用寄存器可兼做变址寄存器和基址寄存器使用,计算机系统结构(第8讲),第二章指令系统,2.1 数据表示2
25、.2 寻址技术2.3 指令格式的优化设计2.4 指令系统的功能设计2.5 RISC指令系统,2.4 指令系统的功能设计完整性、规整性、高效率和兼容性2.3.1 指令的组成五类:数据传送,运算,程序控制,输入输出,处理机控制和调试1、数据传送类指令由如下三个主要因素决定:数据存储设备的种类数据单位:字、字节、位、数据块等采用的寻址方式,指令种类(以字为传送单位,不考虑寻址方式等):通用寄存器 通用寄存器通用寄存器 主存储器通用寄存器 堆栈主存储器 通用寄存器主存储器 主存储器主存储器 堆栈堆栈 通用寄存器堆栈 主存储器,2、运算类指令考虑四个因数的组合:(1)操作种类:加、减、乘、除、与、或、非
26、、异或、比较、移位、检索、转换、匹配、清除、置位等(2)数据表示:定点、浮点、逻辑、十进制、字符串、定点向量等(3)数据长度:字、双字、半字、字节、位、数据块等(4)数据存储设备:通用寄存器、主存储器、堆栈等,以加法指令为例,一般应设置如下几种:寄存器-寄存器型的定点单字长加法指令寄存器-寄存器型的定点双字长加法指令寄存器-寄存器型的定点半字加法指令寄存器-寄存器型的字节加法指令寄存器-寄存器型的浮点单字长加法指令寄存器-寄存器型的浮点双字长加法指令寄存器-寄存器型的单字长逻辑加法指令寄存器-寄存器型的定点向量加法指令寄存器-寄存器型的浮点向量加法指令,移位指令,要组合以下三个因素:移位方向:
27、左移(L)、右移(R)移位种类:算术移位(A)、逻辑移位(L)、循环移位(R)移位长度:单字长(S)、双字长(D)组合起来共有:32212种,因逻辑左移与算术左移相同,因此移位指令应该有10种,分别是:SLAS单字长算术左移SRAS单字长算术右移SLLS(SRLS)单字长逻辑左移,或单字长算术左移,SLRS单字长循环左移SRRS单字长循环右移SLAD双字长算术左移SRAD双字长算术右移SLLD(SRLD)双字长逻辑左移,或双字长算术左移SLRD双字长循环左移SRRD双字长循环右移位操作指令:置位、清位、位测试、找位等字符串指令:比较、查找、匹配、转换等,3、程序控制指令主要包括三类:转移指令、
28、调用和返回指令、循环控制指令转移条件有:零(Z)、正负(N)、进位(C)、溢出(V)及它们的组合主要条件转移指令有:BEQ等于零转移BNEQ不等于零转移BLS小于转移BGT大于转移BLEQ小于等于转移,或不大于转移BGEQ大于等于转移,或不小于转移,BLSU不带符号小于转移BGTU不带符号大于转移BLEQU不带符号小于等于转移,或不带符号不大于转移BGEQU不带符号大于等于转移,或不带符号不小于转移BCC没有进位转移BCS有进位转移BVC没有溢出转移BVS有溢出转移程序调用和返回指令:CALL转入子程序,RETURN从子程序返回,本身可以带有条件中断控制指令开中断、关中断、改变屏蔽、中断返回、
29、自陷等4、输入输出指令主要有:启动、停止、测试、控制设备,数据输入、输出操作等采用单一的直接寻址方式,在多用户或多任务环境下,输入输出指令属于特权指令,也可以不设置输入输出指令,输入输出设备与主存储器共用同一个零地址空间5、处理机控制和调试指令处理机状态切换指令处理机至少有两个或两个以上状态硬件和软件的调试指令硬件调试指令:钥匙位置、开关状态的读取寄存器和主存单元的显示等软件调试指令:断点的设置、跟踪,自陷井指令等,2.4.2 指令系统性能完整性是指应该具备的基本指令种类,通用计算机必须有类基本指令规整性包括对称性和均匀性对称性:所有寄存器头等对待操作码的设置等都要对称,如:AB与BA均匀性:
30、不同的数据类型、字长、存储设备、操作种类要设置相同的指令高效率:指令的执行速度要快;指令的使用频度要高;各类指令之间要有一定的比例兼容性:在同一系列机内指令系统不变(可以适当增加),2.4.3 指令系统的优化设计指令系统的优化设计有两个截然相反的方向:1.复杂指令系统计算机CISC(Complex Instruction Set Computer)增强指令功能,设置功能复杂的指令面向目标代码、高级语言和操作系统用一条指令代替一串指令2.精简指令系统计算机RISC(Reduced Instruction Set Computer)只保留功能简单的指令功能较复杂的指令用子程序来实现下一节主要介绍R
31、ISC,第二章指令系统,2.1 数据表示2.2 寻址技术2.3 指令格式的优化设计2.4 指令系统的功能设计2.5 RISC指令系统,2.5 精简指令系统计算机RISC2.5.1 从CISC到RISC70年代,指令系统已非常庞大,指令功能相当复杂(见下页表)。1975年,IBM公司率先组织力量开始研究指令系统的合理性问题1979年研制出世界上第一台采用RISC思想的计算机IBM 8011986年,IBM正式推出采用RISC体系结构的工作站IBM RT PC,机型(年代),IBM 370/168(1973),VAX-11(1978),iAPX 432(1982),指令种类,208,303,222
32、,微程序容量,420K,480K,64K,指令长度,16-48,16-456,6-321,制造工艺,ECL MSI,TTL MSI,NMOS VLSI,指令操作类型,Mem-MemMem-RegReg-Reg,Mem-MemMem-RegReg-Reg,面向堆栈Mem-Mem,Cache容量,64K,64K,0,CISC指令系统存在的问题:David Patterson,UC Berkeley,19791、20与80规律CISC中,大约20的指令占据了80的处理机时间。8088处理机的指令种类约100种前11种(11)指令的使用频度已经超过80前8种(8)指令的运行时间已经超过80前20种(2
33、0)指令:使用频度达到91.1,运行时间达到97.72,其余80指令:使用频度只有8.9,只占2.28的处理机运行时间2、VLSI技术的发展引起的问题VLSI工艺要求规整性RISC正好适应了VLSI工艺的要求主存与控存的速度相当简单指令没有必要用微程序实现,复杂指令用微程序实现与用简单指令组成的子程序实现没有多大区别;由于VLSI的集成度迅速提高,使得生产单芯片处理机成为可能。,3、软硬件的功能分配问题复杂的指令使指令的执行周期大大加长一般CISC处理机的指令平均执行周期都在4以上,有些在10以上CISC增强了指令系统功能,简化了软件,但硬件复杂了1981年Patterson等人研制了32位R
34、ISC I微处理器,共31种指令,3种数据类型,2种寻址方式;研制周期10个月,比当时最先进的MC68000和Z8002快3至4倍;1983年又研制了RISC II,指令种类扩充到39种,单一的变址寻址方式,通用寄存器138个,2.5.2 RISC的定义与特点卡内基梅隆大学(Carnegie Mellon)论述RISC的特点:1、大多数指令在单周期内完成2、LOAD/STORE结构3、硬布线控制逻辑4、减少指令和寻址方式的种类5、固定的指令格式6、注重编译优化技术,90年代初,IEEE的Michael Slater对RISC定义的描述:1、RISC为使流水线高效率执行,应具有:简单而统一格式的
35、指令译码大部分指令可以单周期执行完成仅Load和Store指令可以访问存储器简单的寻址方式采用延迟转移技术采用LOAD延迟技术2、RISC为使优化编译器便于生成优化代码,应具有:三地址指令格式、较多的寄存器、对称的指令格式,2.5.3 减少CPI是RISC思想的精华程序执行时间的计算公式:P=I CPI T其中:P是执行这个程序所使用的总的时间;I是这个程序所需执行的总的指令条数;CPI(Cycles Per Instruction)是每条指令执行的平均周期数T是一个周期的时间长度。RISC的速度要比CISC快3倍左右,关键是RISC的CPI减小了,硬件方面:采用硬布线控制逻辑,减少指令和寻址
36、方式的种类,使用固定的指令格式,采用LOAD/STORE结构,指令执行过程中设置多级流水线等。软件方面:十分强调优化编译技术的作用RISC设计思想也可以用于CISC中,例如:Intel公司的80 x86处理机的CPI在不断缩小,8088的CPI大于2080286的CPI大约是5.580386的CPI进一步减小到4左右80486的CPI已经接近2Pentium处理机的CPI已经与RISC十分接近目前,超标量、超流水线处理机的CPI已经达到0.5,实际上用IPC(Instruction Per Cycle)更确切。,2.5.4 RISC的关键技术1、延时转移技术定义:为了使指令流水线不断流,在转移
37、指令之后插入一条不相关的有效的指令,而转移指令被延迟执行,这种技术称为延迟转移技术。采用指令延迟转移技术时,指令序列的调整由编译器自动进行。,F,E,F,E,F,E,F,E,1:add r1,r22:jmp next23:next1:sub r3,r4n:next2:move r4,a,产生转移地址,指令作废,重新取指令,因转移指令引起的流水线断流,F,E,F,E,F,E,1:jmp next22:add r1,r23:next1:sub r3,r4n:next2:move r4,a,产生转移地址,插入指令,重新取指令,采用指令延迟转移技术的指令流水线,采用延迟转移技术的两个限制条件(1)被移
38、动指令在移动过程中与所经过的指令之间不能有数据相关(2)被移动指令不破坏条件码,至少不影响后面的指令使用条件码如果找不到符合条件的指令,必须在条件转移指令后面插入空操作;如果指令的执行过程分为多个流水段,则要插入多条指令,调整前的指令序列:1:mover1,r22:cmpr3,r4;(r3)与(r4)比较3:beqexit;如果(r3)(r4)则转移到next4:addr4,r5n:next:move r4,a调整后的指令序列:1:cmpr3,r4;(r3)与(r4)比较2:beqexit;如果(r3)(r4)则转移到next3:mover1,r2,4:addr4,r5n:next:move
39、r4,a2、指令取消技术采用指令延时技术,在许多情况下找不到可以用来调整的指令;分为三种情况:(1)向后转移(循环程序)实现方法:循环体的第一条指令经调整后安排在两个位置,第一个位置是在循环体的前面,第二个位置安排在循环体的后面。,如果转移成功,则执行循环体后面的指令,然后返回到循环体开始;否则,则取消循环体后面的指令,继续执行后面的指令。例子:调整前调整后loop:X X XX X XY Y Yloop:Y Y YZ Z ZZ Z Zcmp r1,r2,loopcmp r1,r2,loopW W WX X XW W W,效果:能够使指令流水线在绝大多数情况下不断流,由于绝大多数情况下,转移是
40、成功的。(2)向前转移(if-then)实现方法:如果转移不成功执行下条指令,否则取消下条指令。例子:R R RS S S;If部分的程序代码cmp r1,r2,thru;若转移,则取消TTTT T T;若不转移,则执行TTT;Then部分的程序代码,U U U;Then部分的程序代码thru:VVV效果:成功与不成功的概率通常各为50%(3)隐含转移技术应用场合:用于if.then.结构,且then部分只有一条指令实现方法:把IF的条件取反,如果取反后的条件成立则取消下条指令,否则执行下条指令。,例子:if(a=,ra,rb;若(ra)=(rb)则取消下条指令inc rb3、重叠寄存器窗口技
41、术(Overlapping Register Window)原因:RISC中,子程序比CISC中多因传送参数而访问存储器的信息量很大美国加洲大学伯克利分校的F.Baskett提出实现方法:设置一个数量比较大的寄存器堆,并把它,例子:if(a=,ra,rb;若(ra)=(rb)则取消下条指令inc rb3、重叠寄存器窗口技术(Overlapping Register Window)原因:RISC中,子程序比CISC中多因传送参数而访问存储器的信息量很大美国加洲大学伯克利分校的F.Baskett提出实现方法:设置一个数量比较大的寄存器堆,并把它,划分成很多个窗口。在每个过程使用的几个窗口中有一个窗
42、口是与前一个过程共用,还有个窗口是与下一个过程共用SUN公司的Sparc、SuperSparc、UtraSparc处理机,把最后一个过程与第一个过程的公用寄存器重叠起来,形成一个循环圈效果:可以减少大量的访存操作。另外,要在主存中开辟一个堆栈,当调用层数超过规定层数(寄存器溢出)时,把溢出部分的寄存器中内容压入堆栈。例子:(在RISC II中采用的方法),A局部寄存器,B局部寄存器,AB公用寄存器,BC公用寄存器,C局部寄存器,CD公用寄存器,全局寄存器,0,9,10,84,89,83,90,99,100,105,106,115,116,121,122,131,132,137,物理寄存器,0,
43、传送参数,A局部寄存器,传送参数,传送参数,B局部寄存器,传送参数,传送参数,C局部寄存器,传送参数,局部寄存器,与过程B合用,全局寄存器,9,10,15,16,25,26,31,与过程A合用,局部寄存器,与过程C合用,全局寄存器,与过程B合用,局部寄存器,全局寄存器,寄存器重叠,寄存器重叠,RISC II溢出次数,程序名称,调用次数,最大调用深度,RISC II访问次数,VAX-11访问次数,111K(0.7%),43K(8.0%),Quick Sort,Puzzle,10,20,64,124,4K(0.8%),8K(1.0%),696K(50%),444K(28%),寄存器窗口技术的效果,
44、MC68000,机器类型,VAX-11,PDP-11,RISC II,5,执行指令条数,19,9,6,过程调用所需开销的比较,26,执行时间(s),22,19,2,10,访问内存次数,15,12,0.2,注:Quick sort程序的调用次数多,深度不大,而Puzzle程序正好相反。,4、指令流调整技术目标:通过变量重新命名消除数据相关,提高流水线执行效率例子:调整后的指令序列比原指令序列的执行速度快一倍addr1,r2,r3addr1,r2,r3addr3,r4,r5mulr6,r7,r0mulr6,r7,r3addr3,r4,r5mulr3,r8,r9mulr0,r8,r9调整前调整后,5
45、、以硬件为主固件为辅固件的主要缺点是:执行速度低主要优点是:便于实现复杂指令,便于修改指令系统以硬联逻辑为主来实现指令系统对于复杂指令,也使用微程序技术实现。,2.5.5 RISC优化编译技术RISC对编译器带来的方便主要有:1、指令系统比较简单、对称、均匀,指令选择工作简单2、选择寻址方式的工作简单,省去了是否生成访问存储器指令的选择工作3、用于大多数指令在一个周期内执行完成,为编译器调整指令序列提供了极大的方便,RISC对编译器造成的困难主要有:1、必须精心安排每一个寄存器的用法,以便充分发挥每一个通用寄存器的效率,尽量减少访问主存储器的次数2、做数据和控制相关性分析,要调整指令的执行序列,并与硬件相配合实现指令延迟技术和指令取消技术等3、要设计复杂的子程序库,RISC的子程序库通常要比CISC的子程序库大得多,本 章 重 点1、浮点数的性质和设计方法2、自定义数据表示方法的原理3、寻址方式的选择方法4、指令格式的优化设计5、RISC思想6、RISC的关键技术,练习题:2.22.32.52.62.102.142.15,
链接地址:https://www.31ppt.com/p-6432916.html