版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成与体系结构第四章指令系统
2023/1/151安徽师范大学计算机科学与技术系陈付龙4.1机器指令特征
4.2寻址技术
4.3指令系统的设计
4.4两种指令系统4.5Pentium4和PowerPC620的指令系统本章习题目录24.1机器指令3地址码操作码OPC指令系统指令一般由操作码和地址码两部分构成,其中操作码在前,地址码在后,地址码的个数可变。每种计算机系统均有一组指令提供给用户使用4.1机器指令4指令系统是指CPU支持的全部指令构成的指令集,它决定了计算机的基本功能。指令是采用二进制进行编码的,指令字由操作码字段和操作数地址字段两个字段组成。操作码是指明指令操作性质的命令码,它提供指令的操作控制信息,不可缺少。操作数地址码用来描述该指令的操作对象及其所在位置。4.1机器指令5操作种类操作数的数据类型运算操作输入输出数据传送移位转移字节型字型双字型操作码
指令应该进行怎样操作4.1机器指令61地址码用以寻找操作数,其个数由指令中操作数的个数决定。2个数可以是1个,2个,3个或者多个,也可以没有地址码3分类分为零地址指令、一地址指令、二地址指令和三地址指令等。区别不同指令系统结构的主要因素
CPU中用来存储操作数的存储单元的类型CPU中用来存储操作数的存储单元堆栈累加器通用寄存器组按存储单元类型分类7指令系统的结构堆栈结构累加器结构通用寄存器结构根据操作数的来源不同,又可进一步分为:寄存器-存储器结构(RM结构)
(操作数可以来自存储器)寄存器-寄存器结构(RR结构)
(所有操作数都是来自通用寄存器组)也称为load-store结构,这个名称强调:只有load指令和store指令能够访问存储器。
8显式或隐式对于不同类型的结构,操作数的位置、个数以及操作数的给出方式(显式或隐式)也会不同。显式给出:用指令字中的操作数字段给出隐式给出:使用事先约定好的单元9例:表达式Z=X+Y在4种类型指令系统结构上的代码。假设:X、Y、Z均保存在存储器单元中,并且不能破坏X和Y的值。堆栈累加器寄存器(RM型)寄存器(RR型)pushXloadXloadR1,XloadR1,XpushYaddYaddR1,YloadR2,YaddstoreZstoreR1,ZaddR3,R1,R2popZstoreR3,Z10通用寄存器型结构现代指令系统结构的主流在灵活性和提高性能方面有明显的优势跟其它的CPU内部存储单元一样,寄存器的访问速度比存储器快。对编译器而言,能更加容易、有效地分配和使用寄存器。寄存器可以用来存放变量。(1)减少对存储器的访问,加快程序的执行速度;(因为寄存器比存储器快)(2)用更少的地址位(相对于存储器地址来说)来对寄存器进行寻址,从而有效地减少程序的目标代码的大小。
11操作数个数根据ALU指令的操作数的两个特征对通用寄存器型结构进一步细分ALU指令的操作数个数3个操作数的指令两个源操作数、一个目的操作数2个操作数的指令其中一个操作数既作为源操作数,又作为目的操作数。ALU指令中存储器操作数的个数可以是0~3中的某一个,为0表示没有存储器操作数。12ALU指令中存储器操作数的个数ALU指令中操作数的最多个数结构类型机器实例03RRMIPS,SPARC,Alpha,PowerPC,ARM12RMIBM360/370,Intel80x86,Motorola680003RMIBM360/37022MMVAX33MMVAXALU指令中操作数个数和存储器操作数个数的典型组合13通用寄存器型结构通用寄存器型结构进一步细分为3种类型寄存器-寄存器型(RR型)寄存器-存储器型(RM型)存储器-存储器型(MM型)14指令系统结构类型优点缺点寄存器-寄存器型(0,3)指令字长固定,指令结构简洁,是一种简单的代码生成模型,各种指令的执行时钟周期数相近。与指令中含存储器操作数的指令系统结构相比,指令条数多,目标代码不够紧凑,因而程序占用的空间比较大。寄存器-存储器型(1,2)可以在ALU指令中直接对存储器操作数进行引用,而不必先用load指令进行加载。容易对指令进行编码,目标代码比较紧凑。指令中的两个操作数不对称。在一条指令中同时对寄存器操作数和存储器操作数进行编码,有可能限制指令所能够表示的寄存器个数。指令的执行时钟周期数因操作数的来源(寄存器或存储器)不同而差别比较大。存储器-存储器型(2,2)或(3,3)目标代码最紧凑,不需要设置寄存器来保存变量。指令字长变化很大,特别是3操作数指令。而且每条指令完成的工作也差别很大。对存储器的频繁访问会使存储器成为瓶颈。这种类型的指令系统结构现在已不用了。3种通用寄存器型结构的优缺点,表中(m,n)表示指令的n个操作数中有m个存储器操作数。154.2.1立即数寻址方式4.2.2寄存器寻址方式4.2.3直接寻址方式4.2.4间接寻址方式4.2.5基址寻址方式4.2.6变址寻址方式4.2.7相对寻址方式4.2.8堆栈寻址方式4.2寻址技术164.2寻址技术17寻址方式根据指令中给出的地址段内容寻找真实的操作数以及下一条要执行的指令地址的方式。4.2寻址技术1形式地址指令地址段给出的地址并不能直接用来访问主存储器2有效地址形式地址需要经过一定的计算才能得到有效地址3物理地址直接访问主存储器的地址。4.2.1立即数寻址方式19操作数直接在指令中给出,这种寻址方式就称为立即数寻址方式。操作数作为指令的一部分存放在代码段里,当从主存取指令到CPU时,操作数连同一起被取出;当CPU执行该条指令时,就可以立刻得到操作数而无须再次访问主存储器。取指令时,操作码和操作数同时被取出,不必再次访问主存储器,提高了指令的执行速度;立即数寻址立即数特点4.2.1立即数寻址方式20例4.1
MOVAX,2013立即数只能作为源操作数,而不能作为目的操作数,因为它不能被修改。源操作数长度应与目的操作数长度保持一致。寄存器寻址方式寄存器指令长度优点指令在执行过程中所需要的操作数来源于寄存器,运算结果也写回到寄存器。AX、BX、CX、DX、SI、DI、SP、BP等通用寄存器。地址码短,表示寄存器号的地址码部分可以短于用来表示存储单元的地址码部分。缩短指令长度、节省存储空间、提高指令的执行速度。4.2.2
寄存器寻址方式4.2.2
寄存器寻址方式22例4.2MOVBX,AX指令执行后,(AX)=(BX),(AX)保持不变。无需访问主存需访问主存立即数寻址寄存器寻址4.2.2
寄存器寻址方式操作数均存放在主存中,需要通过不同方式计算出操作数的有效地址直接寻址方式是指直接在指令中给出操作数的地址,即形式地址等于有效地址。缺点:受地址码位数限制,直接寻址空间较小。优点:直接寻址方式的有效地址不需要任何计算,因此寻址速度较快;4.2.3直接寻址方式4.2.3直接寻址方式25例4.3MOVAX,[2013]图4.3直接寻址方式4.2.4间接寻址方式根据指令地址码是寄存器地址还是存储器地址,间接寻址又可分为寄存器间接寻址和存储器间接寻址两种方式。根据指令的地址码访问存储单元或寄存器,取出的内容是操作数的有效地址或指令的有效地址,这种方式称为间接寻址或间址。4.2.4间接寻址方式27例4.4MOVAX,[BX]例4.5MOVAX,**PBX寄存器的内容为操作数的真正有效地址。图4.4间接寻址过程真正有效地址4.2.5基址寻址方式28专用的基址寄存器指定一个通用寄存器基址寄存器操作数的地址由基址寄存器的内容和指令的地址码A相加得到,地址码A通常被称为位移量(disp),也可用其他方法获得位移量。基址寻址主要用于解决程序在存储器中的定位(逻辑地址→物理地址)和扩大寻址空间(基址+位移量)等问题。4.2.5基址寻址方式29例4.6
MOVAX,2013[BX]图4.5基址寻址过程4.2.6变址寻址方式30把指令地址码部分给出的地址A与指定的变址寄存器X的内容之和作为操作数的地址来获得所需要的操作数称为变址寻址。基址寻址方式和变址寻址方式可以组合使用。4.2.6变址寻址方式31例4.7
MOVAX,
array[SI]图4.6变址寻址过程4.2.7
相对寻址方式把程序计数器PC的内容(当前执行指令的地址)与指令的地址码部分给出的位移量(disp)之和作为操作数的地址或转移地址主要用于转移指令,执行本条指令后,将转移到(PC)+disp,
(PC)为程序计数器的内容。转移地址不是固定的,它随着PC值的变化而变化,并且总是与PC相差一个固定值disp;位移量可正、可负,通常用补码表示;相对寻址使用场合特点4.2.7
相对寻址方式33例4.8JMPSHORTPTRL1
表示将PC计数器的内容加上L1这个偏移量,作为下一条指令的地址。图4.7相对寻址方式4.2.8堆栈寻址方式34堆栈操作使用一组特殊的数据传送指令,即压入指令(PUSH)和弹出指令(POP)。若采用“向上生成”的堆栈,则两种指令的格式如下。(1)压入指令PUSH
格式:PUSHOPR操作:(SP)-2→SP;OPR→(SP)(2)弹出指令POP
格式:POPOPR操作:((SP))→OPR;(SP)+2→SP。354.3指令的格式设计指令格式设计主要有两个目标:(1)节省程序的存储空间;(2)指令格式要尽量规整,以减少硬件译码的复杂度。
4.3.1编码设计4.3.2功能设计364.3.1编码设计固定长编码.扩展编码编码方式Huffman编码374.3.1编码设计1.固定长编码
固定长编码,即,每条操作码均等长。
主要缺点:
(1)浪费许多信息量,即操作码的总长度增加了;(2)没有考虑各种指令使用的频率问题。码的长度完全由指令条数决定。384.3.1编码设计2.Huffman编码
Huffman编码:1952年由Huffman首先提出,开始主要用于电报报文的编码。根据Huffman编码法的原理,操作码的平均长度可通过下式计算:
其中:pi表示第i种操作码在程序中出现的概率,一共有n种操作码。
394.3.1编码设计例4.8:假设一个处理机有9条指令I1-I9,经统计,各指令在程序中的使用频度分别是:p1=0.30,p2=0.24,p3=0.19,p4=0.07,p5=0.07,p6=0.06,p7=0.03,p8=0.02,p9=0.02404.3.1编码设计由Huffman算法,构造Huffman树,根据所得二叉树对操作码进行编码IipiHuffman编码liI10.30012I20.24002I30.19112I40.0710004I50.0710114I60.0610104I70.03100115I80.021001006I90.021001016414.3.1编码设计采用Huffman编码法得到的操作码的平均长度为:
H=0.30×2+0.24×2+0.19×2+0.07×4+0.07×4+0.06×4+0.03×5+0.02×6+0.02×6=2.65(位)采用Huffman算法形成的操作码编码不是唯一的,Huffman树的左右子树可以任意交换,因此所得编码也会发生改变。但无论如何构造Huffman树,对应相同概率分布的Huffman编码的平均码长是唯一的。扩展编码法Huffman编码优点平均长度最短,信息的冗余量最小Huffman编码缺点编码方法所形成的操作码很不规整。固定长编码和Huffman编码法结合形成扩展编码4.3.1编码设计434.3.1编码设计扩展编码有两种表示方法:码长-码长:编码的长度2.码点数/码点数:同样长度编码的个数1.444.3.1编码设计最长操作码不超过4,可以采用2/7扩展编码,即2种码长的编码个数分别为2条和7条,则可以选择编码长度为2的指令2条,编码长度为4的指令7条;最长操作码不超过5,可以采用3/6扩展编码,即2种码长的编码个数分别为3条和6条,则可以选择编码长度为2的指令3条,编码长度为5的指令6条。454.3.1编码设计Iipi2/7扩展编码li3/6扩展编码liI10.30002002I20.24012012I30.1910004102I40.0710014110005I50.0710104110015I60.0610114110105I70.0311004110115I80.0211014111005I90.0211104111015464.3.1编码设计采用2/7扩展编码,平均编码长度为:H=0.30×2+0.24×2+0.19×4+0.07×4+0.07×4+0.06×4+0.03×4+0.02×4+0.02×4=2.92(位)采用3/6扩展编码,平均编码长度为:H=0.30×2+0.24×2+0.19×2+0.07×5+0.07×5+0.06×5+0.03×5+0.02×5+0.02×5=2.81(位)
474.3.1编码设计例4.10某处理机的指令字长为16位,有双地址指令,单地址指令和零地址指令三类,并假设每个地址字段的长度为6位。(1)如果双地址指令有15条,单地址和零地址指令的条数基本相同,计算单地址和零地址指令的条数。并为这三类指令分配操作码。(2)如果要求三类指令的比例大概为1:9:9。试计算双地址、单地址和零地址指令各有多少条?并为这三类指令分配操作码。
484.3.1编码设计解:(1)根据指令格式可知二地址指令格式如下:494.3.1编码设计(2)根据题目要求三类指令的比例大概为1:9:9,设双地址指令a条,则单地址和零地址指令均为9a条,则((16-a)×64-9a)×64=9a解得:a=14。504.3.1编码设计扩展编码中需要注意的是短操作码编码时应留有足够的前缀给长操作码编码时使用。根据短操作码所留前缀的不同,相同的扩展编码表示下可以获得不同的总编码空间。编码方法各种不同长度操作码的指令种类总的指令种类3位操作码6位操作码9位操作码7/7/8778227/3/407340503/3/296332963021/55/81558641/1/44011440442514.3.2
功能设计地址码在指令中所占的长度最长,其编码长度主要与地址码的个数、操作数所存放的存储设备、存储设备的寻址空间大小、编址方式、寻址方式等有关。
完整性规整性高效率兼容性设计基本要求524.3.2
功能设计通用计算机系统的基本指令数据传送类指令运算类指令程序控制类指令输入输出指令处理机控制/调试指令4.3.2
功能设计53数据传送类指令根据数据存储设备的种类、数据传送单位以及采用的寻址方式可以构造多条传送类指令。运算类指令运算类指令在整个指令系统中占有比较大的比重。程序控制指令包括三大类:转移指令、程序调用/返回指令、循环控制指令。4.3.2
功能设计54处理机控制和调试指令:调试指令主要用于硬件和软件的调试。输入输出指令:采用单一的直接寻址方式。主要的操作有:启动设备、测试设备、对设备进行控制、数据的输入/输出操作等。
指令系统最基本的要求,即指令系统的完整性、规整性、高效率和兼容性。设计指令系统的功能时,必须满足指令系统最基本的要求。4.4.1复杂指令系统4.4.2精简指令系统4.4指令系统的功能554.4.1复杂指令系统56复杂指令系统计算机CISC(ComplexInstructionSetComputer)增强指令功能,设置功能复杂的指令面向目标代码、高级语言和操作系统用一条指令代替一串指令CISC进一步增强原有指令的功能以及设置更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化。按照这种途径和方向来发展,使机器指令系统越来越庞大和复杂。CISC指令系统的一大特点:指令数量多、功能多样。代表性的CISC有IBM370、VAX-11/780、VAX8600、Inteli486、MC68040等。57InstructionsetBitsIntroducedMax#operandsTypeDesignRegisters(excludingFP/vector)Motorola68k3219792RegisterMemoryCISC8dataand8address6502819751RegisterMemoryCISC165k64
(8→64)[10]2006?1MemoryMemory[citationneeded]CISC1805132
(8→32)1977?1registerregisterCISC32in4-bit16in8-bit8in16-bit4in32-bitNS320xx3219825MemoryMemoryCISC8System/360//370/z64
(32→64)1964RegisterMemory/MemoryMemoryCISC16VAX3219776MemoryMemoryCISC16x8616,32,64(16→32→64)19782(integer)
3(AVX-512)RegisterMemoryCISC8in16/32-bit16in64-bitZ80819762RegisterMemoryCISC8Itanium
(IA-64)642001RegisterRegisterEPIC128Transputer32
(4→64)19871StackmachineMISC058增强指令功能增强指令功能主要是从以下3个方面着手:面向目标程序增强指令功能面向高级语言的优化实现来改进指令系统面向操作系统的优化实现改进指令系统59面向目标程序增强指令功能对大量的目标程序及其执行情况进行统计分析,找出那些使用频度高、执行时间长的指令或指令串。对于使用频度高的指令,用硬件加快其执行;对于使用频度高的指令串,用一条新的指令来替代。既能减少目标程序的执行时间,也能有效地缩短程序的长度。可以从以下几个方面来改进:增强运算型指令的功能增强数据传送指令的功能增强程序控制指令的功能60例如:循环在程序中占有相当大的比例,所以在指令上提供专门的支持。循环控制部分通常用3条指令完成:一条加法指令一条比较指令一条分支指令设置循环控制指令,用一条指令完成上述3条指令的功能。
一般循环程序的结构61面向高级语言的优化实现来改进指令系统(缩小高级语言与机器语言的语义差距)高级语言与一般的机器语言的语义差距非常大,为高级语言程序的编译带来了一些问题。(1)编译器本身比较复杂;(2)编译生成的目标代码比较难以达到很好的优化。62增强对高级语言和编译器的支持对高级语言中使用频度高、执行时间长的语句,增强有关指令的功能,加快这些指令的执行速度,或者增加专门的指令,可以达到减少目标程序的执行时间和减少目标程序长度的目的。增强系统结构的规整性,减少系统结构中的各种例外情况。
(面向高级语言的计算机)63高级语言计算机
①间接执行高级语言机器高级语言作为机器的汇编语言。②直接执行高级语言的机器直接把高级语言作为机器语言。(一种比较激进的方法)采用“比较简单的系统结构+软件”的做法能够在较低成本和复杂度的前提下,提供更高的性能和灵活性。64面向操作系统的优化实现改进指令系统操作系统和计算机系统结构是紧密联系的,操作系统的实现在很大程度上取决于系统结构的支持。指令系统对操作系统的支持主要有:处理机工作状态和访问方式的切换;进程的管理和切换;存储管理和信息保护;进程的同步与互斥,信号灯的管理等。
支持操作系统的有些指令属于特权指令,一般用户程序是不能使用的。65典型的CISC机器VAX-11/780,32位超级小型机,304条指令,16种寻址方式,要识别支持多达7类14种之多的数据类型。1985推出的与VAX-11/780指令级兼容的VAX8600,寻址方式为20种,采用微程序控制,指令6级流水。Motorola公司的MC68020的基本指令远大于100条,有18种寻址方式,要识别、支持7种数据类型,指令字长短至单字16位,长到由11个单字组成。1990年生产的MC68040有113条指令,数据格式短的为8位,长的达80位。66CISC的结构和思路存在的问题指令系统庞大,一般在200条以上,许多指令的功能又异常复杂,需要使用许多种不同的寻址方式、指令格式和指令长度,这就使完成指令的译码、分析和执行的控制器硬件非常复杂庞大。不仅给VLSI设计带来麻烦,不利于设计自动化技术的采用,延长了设计周期,增加了设计成本,也容易增大出现错误的机会,降低了系统的可靠性。由于许多指令的操作繁杂,使得执行速度很低,甚至比用几条简单基本的指令组合实现还要慢。由于指令系统庞大,使得高级语言编译程序选择目标指令的范围很大,从而难以优化编译生成真正高效的机器语言程序,也使编译程序太长、太复杂。由于指令系统非常庞大,各种指令的使用频度都不会太高,且相互差别很大,其中相当一部分指令的利用率很低(基本符合“二八定律”),特别是那些专用于面向某种高级语言优化实现的指令,不仅增加了机器设计人员的负担也降低了机器的性价比。674.4.2精简指令系统68精简指令系统计算机RISC(ReducedInstructionSetComputer)只保留功能简单的指令功能较复杂的指令用子程序来实现RISC是上个世纪80年代提出的一种新的设计思想,选取一些使用频率比较高的简单指令以及很有用又不复杂的指令来构成指令系统,指令数目较少,指令长度固定,指令格式少。典型的RISC如SUN公司的SPARC、SuperSPARC、UltraSPARC,SGI公司的R4000、R5000、R10000,IBM公司的Power、PowerPC,Intel公司的80860、80960,DEC公司的Alpha,Motorola公司的88100等。69InstructionsetBitsIntroducedMax#operandsTypeDesignRegisters(excludingFP/vector)Alpha6419923RegisterRegisterRISC32(including"zero")ARM32/1619833RegisterRegisterRISC7in16-bitthumbmode15in32-bitARMv8-A64/322011[2]3RegisterRegisterRISC31AVR819972RegisterRegisterRISC32(16on"reducedarchitecture")AVR323220062–3RISC15DLX3219903RISC32eSi-RISC16/3220093RegisterRegisterRISC8–72M32R321997RISC16Mico323220063RegisterRegisterRISC32[8]MIPS64
(32→64)19811–3RegisterRegisterRISC4–32(including"zero")MMIX6419993RegisterRegisterRISC256OpenRISC32,6420103RegisterRegisterRISC16or32PA-RISC(HP/PA)64
(32→64)19863RegisterRegisterRISC32PowerPC32/64
(32→64)19913RegisterRegisterRISC32RISC-V32,64,128(ISA)2010RegisterRegisterRISC32(including"zero")S+core16/322005RISCSPARC64
(32→64)19853RegisterRegisterRISC32(including"zero")SuperH
(SH)321990s2RegisterRegister/RegisterMemoryRISC16Blackfin322000RISC[4]8Crusoe3220001RegisterRegister[6]VLIW[6][7]64[6][7]70RISC的产生20%与80%定律VLSI技术的发展带来的问题软硬件的功能分配问题7120%与80%定律CISC机器中,各种指令的使用频度相差很悬殊,大量的统计数字表明,大约有20%的指令的使用频度较高,占据了80%的处理机时间。即80%的指令只在20%的处理机运行时间才被用到纽约约克镇IBM研究中心的JohnCocke证明,计算机中约20%的指令承担了80%的工作,他于1974年提出了RISC的概念。72VLSI技术的发展带来的问题进入80年代后,VLSI技术的发展非常迅速,往往每3至4年集成度就提高一个数量级。VLSI工艺要求规整性,而在CISC处理器中,为了实现大量的复杂指令,控制逻辑极不规整。给VLSI工艺造成很大的困难。CISC中,大量使用微程序技术实现复杂的指令系统。70年代之前,一般用磁芯作主存,用半导体做控制存储器,两者的速度相差5-10倍。从70年代后期开始,大量使用DRAM做主存,使得主存与控存的速度相当,从而使许多简单指令没有必要用微程序实现,而复杂的指令,用微程序实现和用简单指令的子程序实现以没有多大区别。由于VLSI机程度的迅速提高,使得生产单芯片处理机成为可能,希望采用规整的硬布线控制逻辑,不希望使用微程序。73软硬件的功能划分问题在CISC中,通过增强指令的处理功能,简化了软件,增加了硬件的复杂度。然而,由于指令复杂了,指令的执行时间必然加长,从而有可能是整个程序的执行事件反而增加。因此,在计算机系统结构设计中,软硬件的功能分配必须恰当。74精简指令系统思想的提出In1980,DitzelandPattersonanalyzedthedifficultiesencounteredbythehigh-levellanguagearchitecturesandarguedthattheanswerlayinsimplerarchitecture.Inanotherpaper,theyfirstdiscussedtheideaofRISCandpresentedtheargumentforsimplerarchitecture.Begunin1975,theIBMprojectwasthefirsttostartbutwasthelasttobecomepublic.TheIBMcomputerwasdesignedasa24-bitECLminicomputer,whiletheuniversityprojectswerebothMOS-based,32-bitmicroprocessors.JohnCocheisconsideredthefatherofthe801design.Radindescribesthehighlightsof801architecture.The801wasanexperimentalprojectthatwasneverdesignedtobeaproduct.75精简指令系统思想的提出(续)In1980,PattersonandhiscolleaguesatBerkeleybegantheprojectthatwastogivethisarchitecturalapproachitsname.TheybuilttwocomputerscalledRISC-IandRISC-II.In1981,HennessyandhiscolleaguesatStanfordpublishedadescriptionoftheStanfordMIPScomputer.Efficientpipeliningandcompiler-assistedschedulingofthepipelinewerebothimportantaspectsoftheoriginalMIPSdesign.Conclusion:CommercialRISCsarebuiltprimarilyontheworkofthreeresearchprojects:theBerkeleyRISCprocessor,theIBM801,andtheStanfordMIPSprocessor.76RISC的定义RISC是计算机系统结构的设计思想,它不是一种产品。它是近代计算机系统结构发展中的一个里程碑。直到现在,RISC还没有一个确切的定义77CarnegieMellon关于RISC的定义大多数指令在单周期内完成。指令较快地在单个时钟周期内执行完成减少译码和解释所需的开销采用Load/Store结构凡是在CPU执行部件中所需要的指令都来自于通用寄存器,运算结果也只放到通用寄存器中。该结构有助于实现大多数指令在单周期内完成。硬布线控制逻辑使得大多数指令在单周期内执行完成,较少了微程序技术中的指令解释开销减少指令和寻址方式的种类固定的指令格式注重译码的优化78RISC体系结构的特点面向寄存器结构十分注重提高流水线的执行效率要提高RSIC处理机的速度,必须采用流水线,而且要尽量减少断流,提高流水线的效率重视优化编译技术优化编译技术在提高系统性能中发挥重要的作用,该变了过去认为提高计算机速度紧紧依靠硬件的传统观点。79IEEE对于RISC的定义RSIC处理器所设计的指令系统应使流水线处理能高效率执行,并使优化编译器能生成优化代码。支持流水线简单而统一格式的指令编码大部分指令可以单周期执行完成只有Load和Store指令可以访问存储器简单的寻址方式采用延迟转移技术采用Load延迟技术80IEEE对于RISC的定义(续)支持优化编译器生成优化代码三地址指令格式较多的寄存器对称的指令格式81RISC思想的精华—减少CPIP=I*CPI*TP:执行程序所需的总时间I:程序执行的总指令数目CPI:每条指令执行的平均周期数T:一个周期的时间长度82CISC与RISC的I、CPI和T的比较类型指令条数
I指令平均周期数CPI周期时间TCISC12----1533ns—5nsRISC1.3-1.41.1-1.410ns---2ns83采用RISC结构的好处简化指令系统设计,适合超大规模集成电路设计实现。提高机器的执行速度和效率。降低设计成本,提高了系统的可靠性。可以提供直接支持高级语言的能力,简化编译程序的设计。84RISC结构的不足和问题由于指令少,使原在CISC上由单一指令完成的某些复杂功能现在需要用多条RISC指令才能完成,这实际上加重了汇编语言程序员的负担,增加了机器语言程序的长度,从而占用了较大的存贮空间,加大了指令的信息流量。对浮点运算和虚拟存贮器的支持虽有很大加强,但仍不够理想。相对来说,RISC机器上的编译程序要比CISC机器上的难写。85CISCVSRISC86指令集RISCVSCISCRISC括DECAlpha、ARC、ARM、AVR、MIPS、PA-RISC、PowerArchitecture(包括PowerPC、PowerXCell)和SPARCCISCCDC6600、System/360、VAX、PDP-11、Motorola68000家族、x86理解汇编指令简单指令格式指令编码指令语义87884.5典型的指令系统
4.5.1Pentium4指令系统4.5.2PowerPC620指令系统4.5.3MIPS指令系统4.5.1Pentium4指令系统89Pentium3Pentium4Pentium包括了80486的全部指令又增加了5条指令,同时增加了57条特殊的多媒体扩展(MultiMediaeXtension,MMX)指令。芯片在MMX指令集的基础上加入了SSE(StreamingSIMDExtensions)指令集。芯片采用了全新的内部体系结构设计,指令系统在Pentium3芯片的基础上增加了SEE2指令集。4.5.1Pentium4指令系统90Pentium4指令可分为以下10种类型:数据传送类指令算术运算类指令逻辑运算类及位操作指令字符串操作类指令程序控制类指令系统寄存器和表控制类指令系统和Cache控制类指令
MMX指令集。SEE指令集SEE2指令集4.5.1Pentium4指令系统91Pentium4的基本指令格式由两部分组成:一部分是指令前缀,另一部分是指令本身。4.5.1Pentium4指令系统92寻址方式描述立即寻址寄存器寻址直接寻址寄存器间接寻址寄存器相对寻址比例变址加位移量寻址基址加变址加位移量寻址比例基址变址加位移量寻址相对寻址指令中的形式地址部分就是操作数本身指令给出寄存器号,寄存器的内容为操作数EA=Disp
;Disp为位移量EA=(R);R为寄存器EA=(R)+DispEA=(I)×S+Disp;I为变址寄存器,S为比例值EA=(B)+(I)+Disp
;B为基址寄存器EA=(B)+(I)×S+Disp指令地址=(PC)+DispPentium4的9种寻址方式整数算术、逻辑、移位/旋转指令取数/存数指令每个主存块分配有一个目录项,主要有“状态”和“位向量”二种成分条件寄存器逻辑指令转移指令PowerPC620RISC处理器第一种64位芯片4.5.2PowerPC620指令系统4.5.2PowerPC620指令系统2023/1/1594PowerPC620处理器有32个64位GPR(通用寄存器)以及诸如PC(程序计数器)、LR(链接寄存器)、CR(条件寄存器)等各种其它寄存器。操作码目的操作数源操作数A源操作数B三操作数指令格式4.5.2PowerPC620指令系统95寻址方式描述寄存器相对寻址寄存器相对寻址并更新寄存器基址变址寻址基址变址寻址并更新基址寄存器EA=(R)+DispEA=(R)+Disp,(R)=(R)+DispEA=(B)+(I),B为基址寄存器,I为变址寄存器EA=(B)+(I),(B)=(B)+(I),B为基址寄存器,I为变址寄存器PowerP620的寻址方式4.5.3MIPS指令系统寄存器组织32个64位通用寄存器(GPRs)R0,R1,…,R31也称为整数寄存器R0的值永远是032个64位浮点数寄存器(FPRs)F0,F1,…,F31用来存放32个单精度浮点数(32位),也可以用来存放32个双精度浮点数(64位)。存储单精度浮点数(32位)时,只用到FPR的一半,其另一半没用。一些特殊寄存器它们可以与通用寄存器交换数据。例如浮点状态寄存器:用来保存有关浮点操作结果的信息。96MIPS的数据表示整数字节(8位)半字(16位)字(32位)双字(64位)浮点数单精度浮点数(32位)双精度浮点数(64位)字节、半字或者字在装入64位寄存器时,用零扩展或者用符号位扩展来填充该寄存器的剩余部分。装入以后,对它们将按照64位整数的方式进行运算。4.5.3MIPS指令系统97MIPS的数据寻址方式立即数寻址与偏移量寻址;立即数字段和偏移量字段都是16位的。寄存器间接寻址是通过把0作为偏移量来实现的;16位绝对寻址是通过把R0(其值永远为0)作为基址寄存器来完成的;MIPS的存储器是按字节寻址的,地址为64位;所有存储器访问都必须是边界对齐的。4.5.3MIPS指令系统98在MIPS32架构中,指令被分为三种类型:R型、I型和J型。三种类型的指令的最高6位均为6位的opcode码。类型-31-
格式(位)
-0-Ropcode(6)rs(5)rt(5)rd(5)shamt(5)funct(6)Iopcode(6)rs(5)rt(5)immediate(16)Jopcode(6)address(26)4.5.3MIPS指令系统99寻址方式编码到操作码中所有的指令都是32位的操作码占6位3种指令格式
3种格式中,同名字段的位置固定不变。R型指令R型指令用连续三个5位二进制码来表示三个寄存器的地址,然后用一个5位二进制码来表示移位的位数(如果未使用移位操作,则全为0),最后为6位的function码(它与opcode码共同决定R型指令的具体操作方式)包括ALU指令,专用寄存器读/写指令,move指令等。ALU指令
Regs[rd]←Regs[rs]functRegs[rt]funct为具体的运算操作编码100101I型指令I型指令则用连续两个5位二进制码来表示两个寄存器的地址,然后是一个16位二进制码来表示的一个立即数二进制码包括所有的load和store指令,立即数指令,分支指令,寄存器跳转指令,寄存器链接跳转指令。立即数字段为16位,用于提供立即数或偏移量。102load指令访存有效地址:Regs[rs]+immediate
从存储器取来的数据放入寄存器rtstore指令访存有效地址:Regs[rs]+immediate
要存入存储器的数据放在寄存器rt中立即数指令
Regs[rt]←Regs[rs]opimmediate分支指令转移目标地址:Regs[rs]+immediate,rt无用寄存器跳转、寄存器跳转并链接转移目标地址为Regs[rs]I型指令103J型指令用26位二进制码来表示跳转目标的指令地址(实际的指令地址应为32位,其中最低两位为00,高四位由PC当前地址决定)。包括跳转指令,跳转并链接指令,自陷指令,异常返回指令。在这类指令中,指令字的低26位是偏移量,它与PC值相加形成跳转的地址。104R-R运算105无符号加addu指令格式
addurd,rs,rt指令编码指令语义 GPR[rd]←GPR[rs]+GPR[rt]addrd,rs,rtrd=rs+rt0x00rsrtrd0x000x20加法溢addurd,rs,rtrd=rs+rt0x00rsrtrd0x000x21加法subrd,rt,rsrd=rt-rs0x00rsrtrd0x000x22减法溢suburd,rt,rsrd=rt-rs0x00rsrtrd0x000x23减法andrd,rs,rtrd=rs&rt0x00rsrtrd0x000x24逻辑与orrd,rs,rtrd=rs||rt0x00rsrtrd0x000x25逻辑或xorrd,rt,rsrd=~(rt||rs)0x00rsrtrd0x000x26异或norrd,rs,rtrd=~(rs&rt)0x00rsrtrd0x000x27或非sltrd,rt,rsrd=rs<rt0x00rsrtrd0x000x2a小于slturd,rt,rsrd=rs<rt0x00rsrtrd0x000x2b无符号小于31..2625..2120..1615..1110..65..0oprsrtrdshamtfunc000000rsrtrd00000100001106无符号减subu指令格式
suburd,rs,rt指令编码指令语义 GPR[rd]←GPR[rs]-GPR[rt]31..2625..2120..1615..1110..65..0oprsrtrdshamtfunc000000rsrtrd00000100011107R-I运算108加立即数addi指令格式addirt,rs,imm16指令编码指令语义 GPR[rt]←GPR[rs]+(zero-ext
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 202-2026年长途搬家与物流配送合同协议合同三篇
- 2026年九年级数学中考模拟试卷(深圳卷)
- 油库工程监理旁站方案
- 广告学:理论、方法与实务(3版)- 课件全套 第1-13章-广告导论 -国际广告
- 2026年高二生物下学期期中考试试卷及答案(八)
- 2026年开学第一课课件
- 走近心理护航-高一学生心理健康护理探索
- 在教学中提升高中学生与文本对话能力方法探略
- 谈高中物理教学中的反思策略
- 销售目标责任承诺函(5篇)
- 加工整改方案
- JC/T2041-2020 聚氨酯灌浆材料
- DLT1263-2013 12kV~40.5kV 电缆分接箱技术条件
- 《无人机载荷与行业应用》 课件全套 第1-6章 无人机任务载荷系统概述- 未来展望与挑战
- 2022年河北雄安新区容西片区综合执法辅助人员招聘考试真题
- 周围血管与淋巴管疾病第九版课件
- 付款计划及承诺协议书
- 王君《我的叔叔于勒》课堂教学实录
- 沙库巴曲缬沙坦钠说明书(诺欣妥)说明书2017
- 卓越绩效管理模式的解读课件
- 疫苗及其制备技术课件
评论
0/150
提交评论