《二章指令系统》由会员分享,可在线阅读,更多相关《二章指令系统(53页珍藏版)》请在金锄头文库上搜索。
1、二章指令系统Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望2.3指令格式的优化设计指令格式的优化设计 指令格式的优化是指如何用最短的二进制位数表示指令的操作码信息和地指令格式的优化是指如何用最短的二进制位数表示指令的操作码信息和地址码信息,使指令的平均字长最短,同时便于译码。址码信息,使指令的平均字长最短,同时便于译码。 指令的组成指令的组成操作码操作码地址码地址码1)指令的操作种类。指令的操作种类。2)所用操作数数据所用操作数数据类型。类型。1)操作数地址。操作数地址。2)地址附
2、加信息。地址附加信息。3)寻址方式。寻址方式。指令格式的优化设计目标:指令格式的优化设计目标:指令格式的优化设计目标:指令格式的优化设计目标:1)使程序中指令的平均字长最短,节省程序的存储空间。使程序中指令的平均字长最短,节省程序的存储空间。2)指令格式要规整,减少硬件译码的复杂程度。指令格式要规整,减少硬件译码的复杂程度。操作码的优化表示操作码的优化表示操作码的表示方法:操作码的表示方法:操作码的表示方法:操作码的表示方法:1)固定长度操作码。固定长度操作码。2)Huffman编码法。编码法。3)扩展编码法。扩展编码法。一、一、一、一、固定长度操作码固定长度操作码采用等长操作码。采用等长操作
3、码。若指令系统共有若指令系统共有N种不同功能的指令,则指令系统中的种不同功能的指令,则指令系统中的所有指令的操作码长度固定为所有指令的操作码长度固定为lbN位。位。特点:特点:特点:特点:1)1)长度规整,有利于硬件设计,减少指令译码时间。长度规整,有利于硬件设计,减少指令译码时间。长度规整,有利于硬件设计,减少指令译码时间。长度规整,有利于硬件设计,减少指令译码时间。2)2)信息冗余。信息冗余。信息冗余。信息冗余。例:例:假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码,已知各种不同的操作码,已知各种操作码在程序中出现的概率如下表,利用固定长度编码种操作码在程序中出现的概率如下表
4、,利用固定长度编码法进行操作码编码。法进行操作码编码。指令指令I1概率概率0.45I20.30I30.15I40.05I50.03I60.01I70.01解:解:由于由于N=7因此,指令操作码固定长度为因此,指令操作码固定长度为lbN=lb7=3指令序号指令序号概率概率编码编码操作码长度操作码长度I10.450003位位I20.300013位位I30.150103位位I40.050113位位I50.031003位位I60.011013位位I70.011103位位编码结果:编码结果:编码结果:编码结果:二、二、二、二、Huffman编码法(编码法(最小概率合并法最小概率合并法)Huffman压压
5、缩缩概概念念(最最佳佳编编码码定定理理):当用n个长度不等的代码分别代表n种发生概率不等的事件时,按照短代码给高概率事件、把长代码给低概率事件的原则分配,可使平均码长达到最低。Huffman编码方法编码方法这种编码方法由两个过程组成。频频度度合合并并:将全部n个事件(在此即为n条指令)的频度值排序,选取其中最小的2个频度合并,然后将剩下的n-1个频度再次排序,再合并最小的2个频度,如此重复,直至剩下1个频度为止。记录所有的合并关系,形成一棵二叉树 Huffman树,所有原始频度值充当树叶,而最后剩下的总频度1为树根;码码元元分分配配:从树根开始,对每个中间结点的左右2个分支边各赋予一位代码“0
6、”和“1”(“0”在哪一侧不限)。读出从根结点到任一片树叶的路径上依次出现的代码位就排成了这个事件(即指令)的完整编码。由于频度高的事件较晚被合并,它的编码位数也就较少,符合Huffman压缩原则。上面所说的上面所说的频度值频度值就是各事件实际出现次数的百分比,就是各事件实际出现次数的百分比,它是理论出现它是理论出现概率概率的近似值。的近似值。例:例:假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码,已种不同的操作码,已知各种操作码在程序中出现的概率如下表,利用知各种操作码在程序中出现的概率如下表,利用Huffman编码法进行操作码编码。编码法进行操作码编码。指令指令I1概率概率0
7、.45I20.30I30.15I40.05I50.03I60.01I70.01Huffman树生成步骤:树生成步骤:q把所有指令按照操作码在程序中出现的概率,自左向右把所有指令按照操作码在程序中出现的概率,自左向右从排列好。从排列好。q选取两个概率最小的结点合并成一个概率值是二者之和选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一的新结点,并把这个新结点与其它还没有合并的结点一起形成新结点集合。起形成新结点集合。q在新结点集合中选取两个概率最小的结点进行合并,如在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。
8、此继续进行下去,直至全部结点合并完毕。q最后得到的根结点的概率值为最后得到的根结点的概率值为1。q每个结点都有两个分支,分别用一位代码每个结点都有两个分支,分别用一位代码“0”和和“1”表示。表示。注意:注意:对于同一个频度分布,应用哈夫曼算法可能生成不同的哈夫曼树,对于同一个频度分布,应用哈夫曼算法可能生成不同的哈夫曼树,因此,得到的哈夫曼编码并不唯一,但平均码长唯一。因此,得到的哈夫曼编码并不唯一,但平均码长唯一。0.450.300.150.050.030.010.011.000.550.250.100.050.02010101010101I1 I2 I3 I4 I5 I6 I7Huffm
9、an编码树生成过程编码树生成过程指令序号指令序号概率概率Huffman编码法编码法操作码长度操作码长度I10.4501位位I20.30102位位I30.151103位位I40.0511104位位I50.03111105位位I60.011111106位位I70.011111116位位编码结果:编码结果:编码结果:编码结果:编码方法性能指标编码方法性能指标信息量:信息量:信息量:信息量:根据信息论的基本知识,在n种可能发生的事件集合中,报告第i种事件发生的消息中包含的信息量为: 其中Pi是第i种事件发生的先验概率,a是编码基值。信息量的单位是表示位数(最少所需位数)。 这个定义式表明事件的发生概率
10、越低,关于它的消息中的信息量越大。熵熵熵熵(entropyentropy)平平平平均均均均信信信信息息息息量量量量:一个消息源对n种事件发布的消息的信息量平均值,记为:平均码长:平均码长:平均码长:平均码长:各事件编码长度的数学期望。各事件编码长度的数学期望。信息冗余量:信息冗余量:信息冗余量:信息冗余量:表明消息编码中表明消息编码中“无用成分无用成分”所占的百分比。所占的百分比。 从从减减少少存存储储与与传传输输量量的的角角度度看看,编编码码方方法法的的平平均均码码长长越越短短越越好好。但但是是平平均均码码长长不不可可能能无无限限制制缩缩短短,它它的的下下限限就就是是熵熵(即即R=0时时)。
11、如如果果短短于于熵熵就就一一定定会会丢丢失失有有用用信信息息(即即混混淆淆不不同同指指令令),这是不允许的。这是不允许的。例:例:假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码,如果采用固定种不同的操作码,如果采用固定长操作码需要长操作码需要3位。已知各种操作码在程序中出现的概率如下表,位。已知各种操作码在程序中出现的概率如下表,计算采用计算采用Huffman编码法的操作码平均长度,并计算固定长操编码法的操作码平均长度,并计算固定长操作码和作码和Huffman操作码的信息冗余量。操作码的信息冗余量。解:解:Huffman编码结果如:编码结果如:指令序号指令序号概率概率Huffma
12、n编码法编码法操作码长度操作码长度I10.4501位位I20.30102位位I30.151103位位I40.0511104位位I50.03111105位位I60.011111106位位I70.011111116位位采用采用Huffman编码法的操作码平均长度:编码法的操作码平均长度:0.4510.3020.1530.0540.0350.0160.0161.97(位)(位)最优最优Huffman编码法的操作码平均长度计算公式:编码法的操作码平均长度计算公式:所以,采用最优所以,采用最优Huffman编码法的操作码平均长度为:编码法的操作码平均长度为:0.451.1520.301.7370.152
13、.7370.054.3220.035.0590.016.6440.016.6441.95(位)(位)采用固定长度编码信息冗余量:采用固定长度编码信息冗余量:采用采用Huffman编码法信息冗余量:编码法信息冗余量:与与3位定长操作码的冗余量位定长操作码的冗余量35相比要小得多。相比要小得多。HuffmanHuffman操作码的主要缺点:操作码的主要缺点:操作码的主要缺点:操作码的主要缺点:1)操作码长度很不规整,硬件译码困难操作码长度很不规整,硬件译码困难2)与地址码共同组成固定长的指令比较困难与地址码共同组成固定长的指令比较困难扩展编码方法(等长扩展法)扩展编码方法(等长扩展法)由固定长操作
14、码与由固定长操作码与Huffman编码法相结合形成。编码法相结合形成。码长表示法:码长表示法:分等长扩展法和不等长扩展法。等长扩展法如4-8-12法,每次加长4位。但这并不能说明具体编码方法,例如下面两种编码方法都是4-8-12法。码点表示法:码点表示法:例如15/15/15法,8/64/512法15/15/15法,每一种码长都有4位可编码位(前头可以有相同的扩展标识前缀),可产生16个码点(即编码组合),但是至多只能使用其中15个来表示事件,留下1个或多个码点组合作为更长代码的扩展标识前缀。已经用来表示事件的码点组合不能再作为其它更长代码的前导部分,否则接收者会混淆。这就是“非前缀原则”。8
15、/64/512法,每一种码长按4位分段,每一段中至少要留下1位或多位作为扩展标识。各段剩下的可编码位一起编码,所产生的码点用来对应被编码事件。每一段中的标识位指出后面还有没有后续段。0000000111101111 00001111 00011111 11101111 1111 00001111 1111 00011111 1111 11104位长度的操作码共有15种8位长度的操作码共有15种12位长度的操作码共有15种操作码编码操作码编码说明说明0000000101111000 00001000 00011111 01111000 1000 00001000 1000 00011111 11
16、11 01114位长度的操作码共有8种8位长度的操作码共有64种12位长度的操作码共有512种操作码编码操作码编码说明说明等长等长等长等长15/15/1515/15/15扩展法扩展法扩展法扩展法等长等长等长等长8/64/5128/64/512扩展法扩展法扩展法扩展法例:例:假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码。已知各种操作种不同的操作码。已知各种操作码在程序中出现的概率如下表,如果采用码在程序中出现的概率如下表,如果采用1-2-3-5和和2-4扩展编扩展编码法,计算操作码平均长度和信息冗余量。码法,计算操作码平均长度和信息冗余量。指令指令I1概率概率0.45I20.30
17、I30.15I40.05I50.03I60.01I70.01解:解:采用采用1-2-3-5扩展编码法操作码平均长度:扩展编码法操作码平均长度:H=0.4510.3020.153(0.050.030.010.01)5=2.00信息冗余量:信息冗余量:采用采用2-4扩展编码法操作码平均长度:扩展编码法操作码平均长度:H=(0.45+0.30+0.15)2+(0.05+0.03+0.01+0.01)4=2.20信息冗余量:信息冗余量:序号概率1-2-3-5扩展编码I10.450I20.3010I30.15110I40.0511100I50.0311101I60.0111110I70.01111112
18、-4等长扩展编码0001101100110111101111平均长度2.02.2信息冗余量2.5%11.4%7 7条指令的操作码扩展编码法条指令的操作码扩展编码法指令指令I1I2I3I4I5I6I7I8I9I10概率概率0.250.200.150.100.080.080.050.040.030.02例:例:一台处理机有一台处理机有I1-I10共共10条指令,经统计,各指令在程序中使用的频率条指令,经统计,各指令在程序中使用的频率如下:如下:(1)计算这)计算这10条指令的操作码编码的最短平均码长。条指令的操作码编码的最短平均码长。(2)写出这)写出这10条指令的操作码的哈夫曼编码,并计算编码的
19、平均码长和信条指令的操作码的哈夫曼编码,并计算编码的平均码长和信息冗余量。息冗余量。(3)采用)采用3/7扩展编码和扩展编码和2/8扩展编码编写这扩展编码编写这10条指令的操作码,并分别计条指令的操作码,并分别计算平均码长和信息冗余量。哪种扩展编码比较好?说明理由。算平均码长和信息冗余量。哪种扩展编码比较好?说明理由。解解:(1)最短平均码长:最短平均码长:H=-pilog2pi=-(0.25log20.250.20log20.200.15log20.150.10log20.100.08log20.080.08log20.080.05log20.050.04log20.040.03log20.
20、030.02log20.02)2.96(位)(位)(2)两种哈夫曼树两种哈夫曼树0.020.030.040.050.080.080.100.150. 200.250.050.090.130.170.230.320.430.5711011111111000000000.020.030.080.100.200.040.050.080.150.250.050.130.430.230.090.170.320.571101111111100000000IiPi哈夫曼哈夫曼1I1i哈夫曼哈夫曼2I2iI10.25102002I20.20002102I30.1511030103I40.1001031103I
21、50.081110301104I60.080110411104I70.0501114011105I80.04111105011115I90.031111106111105I100.021111116111115可见,哈夫曼编码不唯一。可见,哈夫曼编码不唯一。哈夫曼哈夫曼1平均码长:平均码长:I1=PiI1i=0.252+0.202+0.153+0.103+0.084+0.084+0.054+0.045+0.036+0.026=2.99(位位)哈夫曼哈夫曼2平均码长:平均码长:I2=PiI2i=0.252+0.202+0.153+0.103+0.084+0.084+0.055+0.045+0.0
22、35+0.025=2.99(位位)可见,平均码长唯一。可见,平均码长唯一。信息冗余量:信息冗余量:Rn=(1-H/I1)=1-2.96/2.99=1.0%3/7和和2/8扩展编码如下表所示:扩展编码如下表所示:IiPi3/7扩展扩展I1i2/8扩展扩展I2iI10.25002002I20.20012012I30.1510210004I40.1011000510014I50.0811001510104I60.0811010510114I70.0511011511004I80.0411100511014I90.0311101511104I100.02111105111143/7扩展平均码长:扩展平
23、均码长:I3/7=PiI1i=(0.25+0.20+0.15)2+(0.10+0.08+0.08+0.05+0.04+0.03+0.02)5=3.2(位位)2/8扩展平均码长:扩展平均码长:I2/8=PiI2i=(0.25+0.20)2+(0.15+0.10+0.08+0.08+0.05+0.04+0.03+0.02)4=3.1(位位)可见,可见,2/8扩展优于扩展优于3/7扩展。扩展。两种编码的信息冗余量:两种编码的信息冗余量:Rn3/7=(1-H/I3/7)=1-2.96/3.2=7.5%Rn2/8=(1-H/I2/8)=1-2.96/3.1=4.5%地址码的优化表示地址码的优化表示地址码
24、在指令地址码在指令地址码在指令地址码在指令中所占的长度最长。中所占的长度最长。地址码长度地址码长度地址码长度地址码长度=f=f(地址码个数,存储设备,寻址空间大小,编地址码个数,存储设备,寻址空间大小,编址方式,寻址方式)址方式,寻址方式)本节解决问题:本节解决问题:本节解决问题:本节解决问题:1)地址个数的选择地址个数的选择2)单个地址码长度如何优化。单个地址码长度如何优化。地址码个数选择:地址码个数选择:地址码个数选择:地址码个数选择:通常有通常有3个、个、2个、个、1个及没有地址码等个及没有地址码等4种情况。种情况。评价指令中地址个数的标准:评价指令中地址个数的标准:评价指令中地址个数的
25、标准:评价指令中地址个数的标准:1)程序的存储量,即程序中所有指令的长度相加的总和最短。程序的存储量,即程序中所有指令的长度相加的总和最短。2)程序的执行速度,即程序在执行过程中访问主存储器的信息(包程序的执行速度,即程序在执行过程中访问主存储器的信息(包括指令和数据)量的总和最短。括指令和数据)量的总和最短。指令字格式优化设计的措施指令字格式优化设计的措施1)采用扩展操作码,以缩短操作码的平均码长。采用扩展操作码,以缩短操作码的平均码长。2)采用诸如基址、变址、相对寻址、寄存器寻址、寄存器间采用诸如基址、变址、相对寻址、寄存器寻址、寄存器间接寻址等多种寻址方式,以缩短需要在指令中表示的地址接
26、寻址等多种寻址方式,以缩短需要在指令中表示的地址码长度,但不减少地址码寻址空间的大小。码长度,但不减少地址码寻址空间的大小。3)指令集采用零地址、一地址、二地址和三地址等多种地址指令集采用零地址、一地址、二地址和三地址等多种地址制,且让常用的短操作码与多地址字段配合,长操作码与制,且让常用的短操作码与多地址字段配合,长操作码与少地址字段配合。少地址字段配合。4)采用采用R-R、R-M、M-M等多种地址表示方式,让每种地址字等多种地址表示方式,让每种地址字段有多种长度,使长度不等的操作码与地址码配合成规整段有多种长度,使长度不等的操作码与地址码配合成规整长度的指令字。长度的指令字。5)在维持指令
27、字在存储器中按整数边界存储的前提下,使用在维持指令字在存储器中按整数边界存储的前提下,使用多种不同的指令字长度。要求指令字长应是主存存储字长多种不同的指令字长度。要求指令字长应是主存存储字长的整数倍。的整数倍。表2.10 各种不同地址数指令的特点及适用场合 各种不同地址数指令的特点及适用场合各种不同地址数指令的特点及适用场合各种不同地址数指令的特点及适用场合各种不同地址数指令的特点及适用场合 地址数目地址数目 指令长度指令长度程序存储量程序存储量程序执行程序执行速度速度使用场合使用场合三地址三地址短短最大最大一般一般向量,矩阵运算为主向量,矩阵运算为主二地址二地址一般一般很大很大很低很低一般不
28、宜采用一般不宜采用一地址一地址较长较长较大较大较快较快连续运算,连续运算,硬件结构简单硬件结构简单0地址地址最长最长最小最小最低最低嵌套,递归,嵌套,递归,变量较多变量较多二地址二地址R形形一般一般最小最小最快最快多累加器,多累加器,数据传送较多数据传送较多例例:一一台台模模型型机机共共有有7条条指指令令,各各指指令令的的使使用用频频率率分分别别为为35%,25%,20%,10%,5%,3%和和2%,有有8个个通通用用数数据据寄寄存存器,器,2个变址寄存器。个变址寄存器。(1)要要求求操操作作码码的的平平均均长长度度最最短短,请请设设计计操操作作码码的的编编码码,并并计算所设计操作码的平均长度
29、。计算所设计操作码的平均长度。(2)设设计计8字字长长的的寄寄存存器器-寄寄存存器器型型指指令令3条条,16位位字字长长的的寄寄存存器器-存存储储器器型型变变址址寻寻址址方方式式指指令令4条条,变变址址范范围围不不小小于于127。请请设设计计指指令令格格式式,并并给给出出各各字字段段的的长长度度和和操操作作码码的的编码。编码。解:解:(1)要使得到的操作码长度最短,应采用)要使得到的操作码长度最短,应采用Huffman编码,构造编码,构造Huffman树如下:树如下:0.350.350.250.250.200.200.100.100.050.050.030.030.020.020.050.05
30、0.100.100.200.200.400.400.600.601.001.00由此可以得到由此可以得到7条指令的编码分别如下:条指令的编码分别如下:指令指令出现的频率出现的频率编编码码135%00225%01320%10410%11055%111063%1111072%11111这样,采用这样,采用Huffman编码法得到的操作码的平均长度为:编码法得到的操作码的平均长度为:H=2(0.35+0.25+0.20)+30.10+40.05+5(0.03+0.02)=1.6+0.3+0.2+0.25=2.35三条指令的操作码分别为三条指令的操作码分别为00,01,10设计设计16位字长的寄存器位
31、字长的寄存器-存储器型变址寻址方式指令如下:存储器型变址寻址方式指令如下:4318(2)设设计计8位位字字长长的的寄寄存存器器-寄寄存存器器型型变变址址寻寻址址方方式式指指令令如如下下,因因为为只只有有8个个通通用用寄寄存存器器,所所以以寄寄存存器器地地址址需需3位位,操操作作码码只有两位,设计格式如下:只有两位,设计格式如下:233操作码操作码OP源寄存器源寄存器R1目的寄存器目的寄存器R2操作码操作码OP通用寄存器通用寄存器变址寄存器变址寄存器偏移地址偏移地址四条指令的操作码分别为四条指令的操作码分别为1100,1101,1110,11112.4.3精简指令系统计算机精简指令系统计算机精简
32、指令系统计算机精简指令系统计算机RISCRISC1.复杂指令系统计算机复杂指令系统计算机CISC(ComplexInstructionSetComputer)增强指令功能,设置功能复杂的指令。增强指令功能,设置功能复杂的指令。面向目标代码、高级语言和操作系统。面向目标代码、高级语言和操作系统。用一条指令代替一串指令。用一条指令代替一串指令。2.精简指令系统计算机精简指令系统计算机RISC(ReducedInstructionSetComputer)只保留功能简单的指令。只保留功能简单的指令。功能较复杂的指令用子程序来实现。功能较复杂的指令用子程序来实现。ISA(InstructionSetAr
33、chitecture)(IndustrialStandardArchitecture)CISC的特点的特点1)庞大的指令系统庞大的指令系统原因:原因:q硬件成本下降、软件成本上升。硬件成本下降、软件成本上升。q系统向上兼容。系统向上兼容。q微程序技术的发展。微程序技术的发展。2)采用了可变长的指令格式采用了可变长的指令格式为了缩短指令字长,同时增大存储器寻址范围,出现了为了缩短指令字长,同时增大存储器寻址范围,出现了多种寻址方式,出现了可变字长的指令格式。多种寻址方式,出现了可变字长的指令格式。3)指令使用的寻址方式繁多指令使用的寻址方式繁多4)指令系统中包括了一些用于特殊用途的指令指令系统中
34、包括了一些用于特殊用途的指令复杂的指令系统,增加了微处理器的复杂性,使微处理复杂的指令系统,增加了微处理器的复杂性,使微处理器研制时间长、成本高,降低了机器的速度。器研制时间长、成本高,降低了机器的速度。从从CISC到到RISCCISC指令系统存在的问题:指令系统存在的问题:1、20与与80规律规律CISC中,使用频度约中,使用频度约20的指令占据了的指令占据了80的处理机时的处理机时间,而使用频度间,而使用频度80的指令只占的指令只占20的处理机运行时间的处理机运行时间2、VLSI技术的发展引起的问题技术的发展引起的问题qVLSI工艺要求规整性工艺要求规整性RISC正好适应了正好适应了VLS
35、I工艺的要求工艺的要求q主存与控存的速度相当主存与控存的速度相当简单指令没有必要用微程序实现,复杂指令用微程序实简单指令没有必要用微程序实现,复杂指令用微程序实现与用简单指令组成的子程序实现没有多大区别;由于现与用简单指令组成的子程序实现没有多大区别;由于VLSI的集成度迅速提高,使得生产单芯片处理机成为可的集成度迅速提高,使得生产单芯片处理机成为可能。能。3、软硬件的功能分配问题、软硬件的功能分配问题q复杂的指令使指令的执行周期大大加长复杂的指令使指令的执行周期大大加长一般一般CISC处理机的指令平均执行周期都在处理机的指令平均执行周期都在4以上,有些在以上,有些在10以上。以上。qCISC
36、增强了指令系统功能,简化了软件,但硬件复杂了增强了指令系统功能,简化了软件,但硬件复杂了1981年年Patterson等人研制了等人研制了32位位RISCI微处理器,共微处理器,共31种指令,种指令,3种数据类型,种数据类型,2种寻址方式;研制周期种寻址方式;研制周期10个月,比当个月,比当时最先进的时最先进的MC68000和和Z8002快快3至至4倍;倍;1983年又研制了年又研制了RISCII,指令种类扩充到,指令种类扩充到39种,使用单一的变址寻址方式,通种,使用单一的变址寻址方式,通用寄存器用寄存器138个。个。RISC的定义与特点的定义与特点卡内基梅隆大学(卡内基梅隆大学(卡内基梅隆
37、大学(卡内基梅隆大学(CarnegieMellonCarnegieMellon)论述)论述)论述)论述RISCRISC的特点:的特点:的特点:的特点:1)大多数指令在单周期内完成大多数指令在单周期内完成2)LOAD/STORE结构结构3)硬布线控制逻辑硬布线控制逻辑4)减少指令和寻址方式的种类减少指令和寻址方式的种类5)固定的指令格式固定的指令格式6)注重编译优化技术注重编译优化技术90年代初,年代初,IEEE的的MichaelSlater对对RISC定义的描述:定义的描述:1、RISC为使流水线高效率执行,应具有:为使流水线高效率执行,应具有:1)简单而统一格式的指令译码简单而统一格式的指令
38、译码2)大部分指令可以单周期执行完成大部分指令可以单周期执行完成3)仅仅Load和和Store指令可以访问存储器指令可以访问存储器4)简单的寻址方式简单的寻址方式5)采用延迟转移技术采用延迟转移技术6)采用采用LOAD延迟技术延迟技术2、RISC为使优化编译器便于生成优化代码,应具有:为使优化编译器便于生成优化代码,应具有:1)三地址指令格式三地址指令格式2)较多的寄存器较多的寄存器3)对称的指令格式对称的指令格式程序执行时间的计算公式:程序执行时间的计算公式:P=ICPITP=ICPIT其中:其中:1)P是执行这个程序所使用的总的时间;是执行这个程序所使用的总的时间;2)I是这个程序所需执行
39、的总的指令条数;是这个程序所需执行的总的指令条数;3)CPI(CyclesPerInstruction)是每条指令执行的平均是每条指令执行的平均周期周期4)T是一个周期的时间长度。是一个周期的时间长度。RISC的速度要比的速度要比CISC快快3倍左右,关键是倍左右,关键是RISC的的CPI减小了。减小了。减少减少CPI是是RISC思想的精华思想的精华类型CISC指令条数I指令平均周期数CPI周期时间T121533ns5nsRISC1.31.41.11.410ns2nsCISCCISC与与与与RISCRISC的的的的I I、CPICPI和和和和T T的比较的比较的比较的比较RISC的关键技术的关
40、键技术1)延时转移技术延时转移技术2)指令取消技术指令取消技术3)重叠寄存器窗口技术重叠寄存器窗口技术4)指令流调整技术指令流调整技术5)以硬件为主固件为辅以硬件为主固件为辅延时转移技术延时转移技术ADDR1,R2JMPNEXT2NEXT1:SUBR3,R4NEXT2:MOVER4,A取指执行取指执行取指执行取指执行产生转移地址产生转移地址指令作废指令作废重新取指令重新取指令a)因转移指令引起流水线断流因转移指令引起流水线断流产生转移地址产生转移地址JMPNEXT2ADDR1,R2NEXT1:SUBR3,R4NEXT2:MOVER4,A取指执行取指执行取指执行插入指令插入指令重新取指令重新取指
41、令b)采用延时转移技术的指令流水线采用延时转移技术的指令流水线指令取消技术指令取消技术LOOP:XXXYYYZZZCOMPR1,R2,LOOPWWWa)调整前程序调整前程序XXXLOOP:YYYZZZCOMPR1,R2,LOOPXXXWWWb)调整后程序调整后程序如果转移成功,则执行下面的如果转移成功,则执行下面的XXX指令,然后返回指令,然后返回LOOP;如;如果转移不成功,则取消下面的果转移不成功,则取消下面的XXX指令,执行指令,执行WWW指令。指令。后后取指执行取指执行取指执行取指执行产生转移地址产生转移地址指令作废指令作废重新取指令重新取指令重叠寄存器窗口技术重叠寄存器窗口技术A局部
42、寄存器A,B公用寄存器B局部寄存器B,C公用寄存器C局部寄存器C,D公用寄存器全局寄存器137132131122121116115106105100999089841090A局部寄存器传送参数B局部寄存器传送参数传送参数C局部寄存器传送参数传送参数寄存器重叠寄存器重叠寄存器重叠寄存器重叠局部寄存器与下一个过程合用与上一个过程合用全局寄存器31262516151090A A过程寄存器窗口过程寄存器窗口过程寄存器窗口过程寄存器窗口指令流调整技术指令流调整技术ADDR1,R2,R3;(R1)+(R2)R3ADDR3,R4,R5;(R3)+(R4)R5MULR6,R7,R3;(R6)(R7)R3MUL
43、R3,R8,R9;(R3)(R8)R9a)调整前的指令序列调整前的指令序列ADDR1,R2,R3MULR6,R7,R0ADDR3,R4,R5MULR0,R8,R9b)调整后的指令序列调整后的指令序列消除数据相关消除数据相关硬件为主固件为辅硬件为主固件为辅RISC要求主要指令在单个周期内执行完成,因此,主要求主要指令在单个周期内执行完成,因此,主要采用硬连线逻辑实现。对于少数复杂的指令,可以使用微要采用硬连线逻辑实现。对于少数复杂的指令,可以使用微程序(固件)实现,程序(固件)实现,并且较多使用全水平型微指令。并且较多使用全水平型微指令。RISC优化编译技术优化编译技术RISC是硬件和软件相结合
44、的产物。是硬件和软件相结合的产物。RISC硬件设计为优化编译程序设计带来如下方便:硬件设计为优化编译程序设计带来如下方便:1)RISC指令系统比较简单,而且对称、均匀,简化了编译程序复杂指令系统比较简单,而且对称、均匀,简化了编译程序复杂指令选择工作。指令选择工作。2)RISC寻址方式简单,指令大都在寄存器之间进行操作,因此省却寻址方式简单,指令大都在寄存器之间进行操作,因此省却了存储器地址计算、访问工作。了存储器地址计算、访问工作。3)RISC大多数指令在一个周期完成,方便编译器调整指令序列。大多数指令在一个周期完成,方便编译器调整指令序列。1)RISC给编译器造成的困难:给编译器造成的困难
45、:1)编译器需要使用大量的寄存器,因此,必须精心安排寄存器的用编译器需要使用大量的寄存器,因此,必须精心安排寄存器的用法,发挥寄存器的效率。法,发挥寄存器的效率。2)编译器要做数据和控制相关分析,要调整指令序列,并与硬件相编译器要做数据和控制相关分析,要调整指令序列,并与硬件相配合实现指令延迟技术和指令取消技术。配合实现指令延迟技术和指令取消技术。3)程序量较大,需要建立复杂的子程序库。程序量较大,需要建立复杂的子程序库。CISC和和RISC体系结构比较体系结构比较CISCCISC和和和和RISCRISC体系结构到底谁更好?体系结构到底谁更好?体系结构到底谁更好?体系结构到底谁更好?qqRIS
46、CRISC支持者:廉价、速度快。支持者:廉价、速度快。支持者:廉价、速度快。支持者:廉价、速度快。qqRISCRISC反对者:软件开发复杂。反对者:软件开发复杂。反对者:软件开发复杂。反对者:软件开发复杂。眼下事实:眼下事实:眼下事实:眼下事实:75%75%的的的的PCPC、工作站和服务器基于、工作站和服务器基于、工作站和服务器基于、工作站和服务器基于CISCCISC体系结构。体系结构。体系结构。体系结构。背后原因:背后原因:背后原因:背后原因:CISCCISC和和和和RISCRISC体系结构越来越接近。许多体系结构越来越接近。许多体系结构越来越接近。许多体系结构越来越接近。许多RISCRIS
47、C芯片仍然芯片仍然芯片仍然芯片仍然支持更多过去的支持更多过去的支持更多过去的支持更多过去的CISCCISC芯片,今天芯片,今天芯片,今天芯片,今天CISCCISC芯片也运用了很多与芯片也运用了很多与芯片也运用了很多与芯片也运用了很多与RISCRISC体系结构相关技术,因此,体系结构相关技术,因此,体系结构相关技术,因此,体系结构相关技术,因此,CISCCISC和和和和RISCRISC共同发展。共同发展。共同发展。共同发展。主存储器主存储器合一高速缓存合一高速缓存指令指令/数据通路数据通路控制部件控制部件控制控制存储器存储器(指令)主存储器(数据)(指令)主存储器(数据)数据高速缓存数据高速缓存
48、数据通路数据通路硬连线控制部件硬连线控制部件数据高数据高速缓存速缓存(a)经典)经典CISC处理器处理器(b)纯)纯RISC处理器处理器小规模寄存器堆小规模寄存器堆大型寄存器堆大型寄存器堆经典经典CISC和纯和纯RISC处理器的体系结构区别处理器的体系结构区别经典经典CISC和纯和纯RISC体系结构的特征体系结构的特征特性特性特性特性经典经典经典经典CISCCISC体系结构体系结构体系结构体系结构纯纯纯纯RISCRISC体系结构体系结构体系结构体系结构指令格式指令格式可变格式:可变格式:1632和和64位位固定固定32位指令位指令时钟频率时钟频率随技术发展而变化随技术发展而变化随技术发展而变化
49、随技术发展而变化寄存器堆寄存器堆824个通用寄存器个通用寄存器32192个分离的整数个分离的整数和浮点寄存器堆和浮点寄存器堆指令系统指令系统规模和类型规模和类型约约300条,条,多于多于48种指令类型种指令类型约约100条,除取条,除取/存外,存外,大都基于寄存器大都基于寄存器寻址方式寻址方式约约12种种,包含间接包含间接/变址寻址变址寻址35种种,只有取只有取/存寻址存储器存寻址存储器高速缓存设计高速缓存设计较早使用合一高速缓存,较早使用合一高速缓存,有些使用分离高速缓存有些使用分离高速缓存大多数使用分离的大多数使用分离的数据和指令高速缓存数据和指令高速缓存CPI及平均及平均CPI120个周
50、期个周期,平均平均4个个简单操作简单操作1个周期个周期,平均约平均约1.5个个CPU控制控制大多数用微程序控制,大多数用微程序控制,有些使用硬连线控制有些使用硬连线控制大多数用硬连线控制,大多数用硬连线控制,没有控制存储器没有控制存储器代表性代表性商品化处理器商品化处理器Intelx86,Vax8600,IBM390,MC68040,IntelPentium,AMD486和和Cyrix686SunUltraSparc,MIPSR10000PowerPC-604,HPPA-8000,DigitalAlpha21164混合混合CISC/RISC体系结构体系结构PentiumProPentiumPro处理器的处理器的处理器的处理器的CISC/RISCCISC/RISC体系结构体系结构体系结构体系结构前前前前端端端端部部部部分分分分基于基于基于基于RISCRISC核心核心核心核心DBAB将将将将X86X86代码转化为代码转化为代码转化为代码转化为RISCRISC指令指令指令指令