《计算机组成与体系结构》赵姝、陈洁、段震、陈付龙、刘路路第4章指令系统_第1页
《计算机组成与体系结构》赵姝、陈洁、段震、陈付龙、刘路路第4章指令系统_第2页
《计算机组成与体系结构》赵姝、陈洁、段震、陈付龙、刘路路第4章指令系统_第3页
《计算机组成与体系结构》赵姝、陈洁、段震、陈付龙、刘路路第4章指令系统_第4页
《计算机组成与体系结构》赵姝、陈洁、段震、陈付龙、刘路路第4章指令系统_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成与体系结构计算机组成与体系结构第四章 指令系统 2022-5-171安徽师范大学 计算机科学与技术系 陈付龙u4.1机器指令特征机器指令特征 u4.2寻址技术寻址技术 u4.3指令系统的设计指令系统的设计 u4.4两种指令系统两种指令系统u4.5Pentium 4和和PowerPC620的指令系统的指令系统u本章习题本章习题目录24.1机器指令机器指令3地址码操作码OPC指令系统指令一般由操作码和地址码两部分构成,其中操作码在前,地址码在后,地址码的个数可变。每种计算机系统均有一组指令提供给用户使用4.1机器指令4指令系统是指CPU支持的全部指令构成的指令集,它决定了计算机的基本功能

2、。指令是采用二进制进行编码的,指令字由操作码字段和操作数地址字段两个字段组成。操作码是指明指令操作性质的命令码,它提供指令的操作控制信息,不可缺少。 操作数地址码用来描述该指令的操作对象及其所在位置。 4.1机器指令5操作种类操作数的数据类型运算操作输入输出数据传送移位转移字节型字节型字型字型双字型双字型操作码 指令应该进行怎样操作4.1机器指令61u地址码u用以寻找操作数,其个数由指令中操作数的个数决定。2个数可以是1个,2个,3个或者多个,也可以没有地址码3分类分为零地址指令、一地址指令、二地址指令和三地址指令等。区别不同指令系统结构的主要因素 CPU中用来存储操作数的存储单元的类型CPU

3、中用来存储操作数的存储单元堆栈累加器通用寄存器组按存储单元类型分类7指令系统的结构堆栈结构累加器结构通用寄存器结构根据操作数的来源不同,又可进一步分为:寄存器-存储器结构(RM结构) (操作数可以来自存储器 )寄存器-寄存器结构(RR结构) (所有操作数都是来自通用寄存器组)也称为load-store结构,这个名称强调:只有load指令和store指令能够访问存储器。 8显式或隐式对于不同类型的结构,操作数的位置、个数以及操作数的给出方式(显式或隐式)也会不同。显式给出:用指令字中的操作数字段给出隐式给出:使用事先约定好的单元 9例: 表达式表达式Z Z=X+Y=X+Y在在4 4种类型指令系统

4、结构上的代码。种类型指令系统结构上的代码。假设假设:X X、Y Y、Z Z均保存在存储器单元中,并且均保存在存储器单元中,并且不能破不能破坏坏X X和和Y Y的值。的值。堆 栈 累加器寄存器(RM型) 寄存器(RR型) push Xload Xload R1,Xload R1,Xpush Yadd Yadd R1,Yload R2,Yaddstore Zstore R1,Zadd R3,R1,R2pop Zstore R3,Z10通用寄存器型结构现代指令系统结构的主流在灵活性和提高性能方面有明显的优势跟其它的CPU内部存储单元一样,寄存器的访问速度比存储器快。对编译器而言,能更加容易、有效地分

5、配和使用寄存器。寄存器可以用来存放变量。(1)减少对存储器的访问,加快程序的执行速度;(因为寄存器比存储器快)(2)用更少的地址位(相对于存储器地址来说)来对寄存器进行寻址,从而有效地减少程序的目标代码的大小。 11操作数个数根据ALU指令的操作数的两个特征对通用寄存器型结构进一步细分ALU指令的操作数个数3个操作数的指令 两个源操作数、一个目的操作数2个操作数的指令其中一个操作数既作为源操作数,又作为目的操作数。ALU指令中存储器操作数的个数可以是0中的某一个,为0表示没有存储器操作数。12ALU指令中存储器操作数的个数 ALU指令中操作数的最多个数 结构类型 机器实例 03RR MIPS,

6、SPARC,Alpha,PowerPC,ARM12RM IBM 360/370,Intel 80 x86,Motorola 680003RM IBM 360/370 22MM VAX 33MM VAX ALU指令中操作数个数和存储器操作数个数的典型组合13通用寄存器型结构通用寄存器型结构进一步细分为3种类型寄存器寄存器型(RR型)寄存器存储器型(RM型)存储器存储器型(MM型)14指令系统结构类型 优 点 缺 点 寄存器寄存器型 (0,3) 指令字长固定,指令结构简洁,是一种简单的代码生成模型,各种指令的执行时钟周期数相近。 与指令中含存储器操作数的指令系统结构相比,指令条数多,目标代码不够紧

7、凑,因而程序占用的空间比较大。 寄存器存储器型 (1,2) 可以在ALU指令中直接对存储器操作数进行引用,而不必先用load指令进行加载。容易对指令进行编码,目标代码比较紧凑。 指令中的两个操作数不对称。在一条指令中同时对寄存器操作数和存储器操作数进行编码,有可能限制指令所能够表示的寄存器个数。指令的执行时钟周期数因操作数的来源(寄存器或存储器)不同而差别比较大。 存储器存储器型 (2,2) 或(3,3) 目标代码最紧凑,不需要设置寄存器来保存变量。 指令字长变化很大,特别是3操作数指令。而且每条指令完成的工作也差别很大。对存储器的频繁访问会使存储器成为瓶颈。这种类型的指令系统结构现在已不用了

8、。 3种通用寄存器型结构的优缺点,表中(m,n)表示指令的n个操作数中有m个存储器操作数。15u4.2.1 立即数寻址方式u4.2.2 寄存器寻址方式u4.2.3 直接寻址方式u4.2.4 间接寻址方式u4.2.5 基址寻址方式u4.2.6 变址寻址方式u4.2.7 相对寻址方式u4.2.8 堆栈寻址方式4.2寻址技术164.2寻址技术17寻址方式寻址方式根据指令中给出的地址段内根据指令中给出的地址段内容寻找真实的操作数以及下容寻找真实的操作数以及下一条要执行的指令地址的方一条要执行的指令地址的方式。式。4.2寻址技术1形式地址形式地址指令地址段给出的地址并不能直接用来访问主存储器2有效地址有

9、效地址形式地址需要经过一定的计算才能得到有效地址3物理地址物理地址直接访问主存储器的地址。4.2.1 立即数寻址方式立即数寻址方式19 操作数直接在指令中给出,这种寻址方式就称为立即数寻址方式立即数寻址方式。操作数作为指令的一部分存放在代码段里,当从主存取指令到CPU时,操作数连同一起被取出;当CPU执行该条指令时,就可以立刻得到操作数而无须再次访问主存储器。 取指令时,操作码和操作数同时被取出,不必再次访问主存储器,提高了指令的执行速度;立即数寻址立即数寻址立即数立即数特点特点4.2.1 立即数寻址方式立即数寻址方式20例4.1 MOV AX,2013立即数只能作为源操作数,而不能作为目的操

10、作数,因为它不能被修改。源操作数长度应与目的操作数长度保持一致。寄存器寄存器寻址方式寻址方式寄存器寄存器指令长度指令长度优点优点u指令在执行过程中所需要的操作数来源于寄存器,运算结果也写回到寄存器。AX、BX、CX、DX、SI、DI、SP、BP等通用寄存器。地址码短,表示寄存器号的地址码部分可以短于用来表示存储单元的地址码部分。缩短指令长度、节省存储空间、提高指令的执行速度。4.2.2 寄存器寻址方式寄存器寻址方式4.2.2 寄存器寻址方式寄存器寻址方式22例4.2MOV BX,AX指令执行后,(AX)=(BX),(AX)保持不变。无需访问主存需访问主存立即数寻址寄存器寻址4.2.2 寄存器寻

11、址方式寄存器寻址方式操作数均存放在主存中,需要通过不同方式计算出操作数的有效地址直接寻址方式直接寻址方式是指直接在指令中给出操作数的地址,即形式地址等于形式地址等于有效地址有效地址。缺点缺点:受地址码位数限制,直接寻址空间较小。优点优点:直接寻址方式的有效地址不需要任何计算,因此寻址速度较快;4.2.3 直接寻址方式直接寻址方式4.2.3 直接寻址方式直接寻址方式25例4.3MOV AX,2013图4.3 直接寻址方式4.2.4 间接寻址方式间接寻址方式u根据指令地址码是寄存器地址还是存储器地址,间接寻址又可分为寄存器间接寻址寄存器间接寻址和存储器间存储器间接寻址接寻址两种方式。u根据指令的地

12、址码访问存储单元或寄存器,取出的内容是操作数的有效地址或指令的有效地址,这种方式称为间接寻址或间址间接寻址或间址。4.2.4 间接寻址方式间接寻址方式27例4.4 MOV AX,BX例4.5 MOV AX,*PBX寄存器的内容为操作数的真正有效地址。图4.4 间接寻址过程真正有效地址4.2.5 基址寻址方式基址寻址方式28专用的基址寄存器指定一个通用寄存器基址寄存器操作数的地址由基址寄存器的内容和指令的地址码A相加得到,地址码A通常被称为位移量(disp),也可用其他方法获得位移量。基址寻址主要用于解决程序在存储器中的定位基址寻址主要用于解决程序在存储器中的定位( (逻辑地址逻辑地址物理物理地

13、址地址) )和扩大寻址空间和扩大寻址空间( (基址基址+ +位移量位移量) )等问题。等问题。4.2.5 基址寻址方式基址寻址方式29例4.6 MOV AX,2013BX图4.5 基址寻址过程4.2.6 变址寻址方式变址寻址方式30u把指令地址码部分给出的地址A与指定的变址寄存器X的内容之和作为操作数的地址来获得所需要的操作数称为变址寻址变址寻址。 基址寻址方式和变址寻址方式可以组合使用基址寻址方式和变址寻址方式可以组合使用。4.2.6 变址寻址方式变址寻址方式31例例4.7 MOV AX, arraySI图4.6 变址寻址过程4.2.7 相对寻址方式相对寻址方式把程序计数器PC的内容(当前执

14、行指令的地址)与指令的地址码部分给出的位移量(disp)之和作为操作数的地址或转移地址 主要用于转移指令,执行本条指令后,将转移到(PC)+disp, (PC)为程序计数器的内容。转移地址不是固定的,它随着PC值的变化而变化,并且总是与PC相差一个固定值disp;位移量可正、可负,通常用补码表示;相对寻址相对寻址使用场合使用场合特点特点4.2.7 相对寻址方式相对寻址方式33例例4.8 JMP SHORT PTR L1 表示将PC计数器的内容加上L1这个偏移量,作为下一条指令的地址。图4.7 相对寻址方式4.2.8 堆栈寻址方式堆栈寻址方式34u 堆栈操作使用一组特殊的数据传送指令,即压入指令

15、压入指令(PUSH)(PUSH)和弹出指令弹出指令(POP)(POP)。若采用“向上生成”的堆栈,则两种指令的格式如下。(1)(1)压入指令压入指令PUSHPUSH 格式格式:PUSH OPR:PUSH OPR 操作操作:(SP)-2SP;OPR (SP):(SP)-2SP;OPR (SP)(2)(2)弹出指令弹出指令POPPOP 格式格式:POP OPR:POP OPR 操作操作:(SP)OPR;(SP)+2 SP:(SP)OPR;(SP)+2 SP。354.3 指令的格式设计指令的格式设计 指令格式设计主要有两个目标: (1)节省程序的存储空间节省程序的存储空间; (2)指令格式要尽量规整

16、指令格式要尽量规整, ,以减少硬件译码的复杂以减少硬件译码的复杂度度。 4.3.1 4.3.1 编码设计编码设计4.3.2 4.3.2 功能设计功能设计364.3.14.3.1编码设计编码设计固定长编码.扩展编码编码方式编码方式Huffman编码编码374.3.1 编码设计编码设计1.1.固定长编码固定长编码 固定长编码,即,每条操作码均等长每条操作码均等长。 主要缺点主要缺点: : (1)浪费许多信息量,即操作码的总长度增加了; (2)没有考虑各种指令使用的频率问题。码的长度完全由指令条数决定。384.3.1 编码设计编码设计2.Huffman2.Huffman编码编码u Huffman编码

17、:1952年由Huffman首先提出,开始主要用于电报报文的编码。u 根据Huffman编码法的原理,操作码的平均长度可通过下式计算: u 其中:pi表示第i种操作码在程序中出现的概率,一共有n种操作码。 iiilpH*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树,根据所得二叉树对操作码进行编码IipiHuf

18、fman编码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树的左右子树可以任意交换,因此所得编码也会发生改变。但无

19、论如何构造Huffman树,对应相同概率分布的Huffman编码的平均码长是唯一的。扩展编码法Huffman编码优点平均长度最短,信息的冗余量最小Huffman编码缺点编码方法所形成的操作码很不规整。固定长编码和Huffman编码法结合形成扩展编码4.3.1 编码设计编码设计434.3.1 编码设计编码设计扩展编码有两种表示方法:p码长-码长:编码的长度2.p码点数/码点数:同样长度编码的个数1.444.3.1 编码设计编码设计p最长操作码不超过4,可以采用2/7扩展编码,即2种码长的编码个数分别为2条和7条,则可以选择编码长度为2的指令2条,编码长度为4的指令7条;p最长操作码不超过5,可以

20、采用3/6扩展编码,即2种码长的编码个数分别为3条和6条,则可以选择编码长度为2的指令3条,编码长度为5的指令6条。454.3.1 编码设计编码设计Ii pi 2/7扩展编码li3/6扩展编码liI10.30002002I20.24012012I30.1910004102I40.0710014110005I50.0710104110015I60.0610114110105I70.0311004110115I80.0211014111005I90.0211104111015464.3.1 编码设计编码设计u 采用2/7扩展编码,平均编码长度为:H = 0.30 2 + 0.24 2 + 0.19

21、 4 + 0.07 4 + 0.07 4 + 0.06 4 + 0.03 4 + 0.02 4 + 0.02 4 = 2.92(位)u 采用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条,单地址和零地址指令的条数基本相同,计算单地址和零地址指令的条数。并为

22、这三类指令分配操作码。(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 编码设计编码设计扩展编码中需要注意的是短操作码编码时应留有足够的前缀给长操作码编码时使用。根据短操作码所留前缀的不同,相同的扩展编码表示下可以获得不同的总编码空间。编码方法各种不同长

23、度操作码的指令种类总的指令种类3位操作码6位操作码9位操作码7/7/8778227/3/407340503/3/296332963021/55/81558641/1/44011440442514.3.2 功能设计功能设计 地址码在指令中所占的长度最长,其编码长度主要与地址码的个数、操作数所存放的存储设备、存储设备的寻址空间大小、编址方式、寻址方式等有关。 完整性规整性高效率兼容性设计基本要求524.3.2 功能设计功能设计通用计算机系统的基本指令数据传送类指令数据传送类指令运算类指令运算类指令程序控制类指令程序控制类指令输入输出指令输入输出指令处理机控制处理机控制/ /调试指令调试指令4.3.

24、2 功能设计功能设计53数据传送类指令数据传送类指令根据数据存储设备的种类、数据传送单位以及采用的寻址方式可以构造多条传送类指令。运算类指令运算类指令运算类指令在整个指令系统中占有比较大的比重。程序控制指令程序控制指令包括三大类:转移指令、程序调用/返回指令、循环控制指令。4.3.2 功能设计功能设计54处理机控制和调试指令处理机控制和调试指令: :调试指令主要用于硬件和软件的调试。输入输出指令输入输出指令: :采用单一的直接寻址方式。主要的操作有:启动设备、测试设备、对设备进行控制、数据的输入/输出操作等。 指令系统最基本的要求,即指令系统的完整性完整性、规整性规整性、高效率高效率和兼容性兼

25、容性。设计指令系统的功能时,必须满足指令系统最基本的要求。4.4.1 4.4.1 复杂复杂指令系统指令系统4.4.2 4.4.2 精简精简指令系统指令系统4.4 指令系统的功能指令系统的功能554.4.1 复杂指令系统56复杂指令系统计算机CISC (Complex Instruction Set Computer)u增强指令功能,设置功能复杂的指令u面向目标代码、高级语言和操作系统u用一条指令代替一串指令CISC进一步增强原有指令的功能以及设置更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化。按照这种途径和方向来发展,使机器指令系统越来越庞大和复杂。 CISC指令系统的一大

26、特点: 指令数量多、功能多样。代表性的CISC有IBM 370、VAX-11/780、VAX 8600、Intel i486、MC68040等。57Instruction setBitsIntroducedMax #operandsTypeDesignRegisters(excluding FP/vector)Motorola 68k3219792Register MemoryCISC8 data and 8 address6502819751Register MemoryCISC 165k64 (864)102006?1Memory Memorycitation neededCISC 180

27、5132 (832) 1977?1register registerCISC32 in 4-bit16 in 8-bit8 in 16-bit4 in 32-bitNS320 xx3219825Memory MemoryCISC 8System/360 /370/z64 (3264)1964Register Memory / Memory MemoryCISC 16VAX3219776Memory MemoryCISC 16x8616, 32, 64 (163264)19782 (integer)3 (AVX-512)Register MemoryCISC8 in 16/32-bit16 in

28、 64-bitZ80819762Register MemoryCISC 8Itanium (IA-64)642001Register RegisterEPIC 128Transputer32 (464) 19871Stack machineMISC 058增强指令功能增强指令功能主要是从以下3个方面着手: 面向目标程序增强指令功能面向目标程序增强指令功能 面向高级语言的优化实现来改进指令系统面向高级语言的优化实现来改进指令系统 面向操作系统的优化实现改进指令系统面向操作系统的优化实现改进指令系统59面向目标程序增强指令功能 对大量的目标程序及其执行情况进行统计分析,找出那些使用频度高、执行时间

29、长的指令或指令串。对于使用频度高的指令,用硬件加快其执行;对于使用频度高的指令串,用一条新的指令来替代。既能减少目标程序的执行时间,也能有效地缩短程序的长度。可以从以下几个方面来改进: 增强运算型指令的功能增强数据传送指令的功能增强程序控制指令的功能60例如:循环在程序中占有相当大的 比例,所以在指令上提供专门的支持。循环控制部分通常用3条指令完成:一条加法指令一条比较指令一条分支指令设置循环控制指令,用一条指令完成上述3条指令的功能。 I = m1 I=I+m3 循环体循环体 Im2 N Y 一般循环程序的结构一般循环程序的结构61面向高级语言的优化实现来改进指令系统(缩小高级语言与机器语言

30、的语义差距) 高级语言与一般的机器语言的语义差距非常大,为高级语言程序的编译带来了一些问题。(1)编译器本身比较复杂;(2)编译生成的目标代码比较难以达到很好的优化。 62增强对高级语言和编译器的支持 p对高级语言中使用频度高、执行时间长的语句,增强有关指令的功能,加快这些指令的执行速度,或者增加专门的指令,可以达到减少目标程序的执行时间和减少目标程序长度的目的。 p增强系统结构的规整性,减少系统结构中的各种例外情况。 (面向高级语言的计算机 )63高级语言计算机 间接执行高级语言机器 高级语言作为机器的汇编语言。 直接执行高级语言的机器 直接把高级语言作为机器语言。 (一种比较激进的方法 )

31、p采用“比较简单的系统结构软件”的做法能够在较低成本和复杂度的前提下,提供更高的性能和灵活性。 64面向操作系统的优化实现改进指令系统 操作系统和计算机系统结构是紧密联系的,操作系统的实现在很大程度上取决于系统结构的支持。指令系统对操作系统的支持主要有:p处理机工作状态和访问方式的切换;p进程的管理和切换;p存储管理和信息保护;p进程的同步与互斥,信号灯的管理等。 支持操作系统的有些指令属于特权指令,一般用户程序是不能使用的。 65典型的典型的CISC机器机器vVAX-11/780,32位超级小型机,位超级小型机,304条指令,条指令,16种寻址方式,要识别种寻址方式,要识别支持多达支持多达7

32、类类14种之多的数据类型。种之多的数据类型。v1985推出的与推出的与VAX-11/780指令级兼容的指令级兼容的VAX 8600,寻址方式为,寻址方式为20种种,采用微程序控制,指令,采用微程序控制,指令6级流水。级流水。vMotorola公司的公司的MC 68020的基本指令远大于的基本指令远大于100条,有条,有18种寻址方式种寻址方式,要识别、支持,要识别、支持7种数据类型,指令字长短至单字种数据类型,指令字长短至单字16位,长到由位,长到由11个个单字组成。单字组成。v1990年生产的年生产的MC 68040有有113条指令,数据格式短的为条指令,数据格式短的为8位,长的达位,长的达

33、80位。位。66CISC的结构和思路存在的问题的结构和思路存在的问题1)指令系统庞大,一般在指令系统庞大,一般在200条以上,许多指令的功能又异常复杂,需条以上,许多指令的功能又异常复杂,需要使用许多种不同的寻址方式、指令格式和指令长度,这就使完成指要使用许多种不同的寻址方式、指令格式和指令长度,这就使完成指令的译码、分析和执行的控制器硬件非常复杂庞大。不仅给令的译码、分析和执行的控制器硬件非常复杂庞大。不仅给VLSI设计设计带来麻烦,不利于设计自动化技术的采用,延长了设计周期,增加了带来麻烦,不利于设计自动化技术的采用,延长了设计周期,增加了设计成本,也容易增大出现错误的机会,降低了系统的可

34、靠性。设计成本,也容易增大出现错误的机会,降低了系统的可靠性。2)由于许多指令的操作繁杂,使得执行速度很低,甚至比用几条简单基由于许多指令的操作繁杂,使得执行速度很低,甚至比用几条简单基本的指令组合实现还要慢。本的指令组合实现还要慢。3)由于指令系统庞大,使得高级语言编译程序选择目标指令的范围很大由于指令系统庞大,使得高级语言编译程序选择目标指令的范围很大,从而难以优化编译生成真正高效的机器语言程序,也使编译程序太,从而难以优化编译生成真正高效的机器语言程序,也使编译程序太长、太复杂。长、太复杂。4)由于指令系统非常庞大,各种指令的使用频度都不会太高,且相互差由于指令系统非常庞大,各种指令的使

35、用频度都不会太高,且相互差别很大,其中相当一部分指令的利用率很低(基本符合别很大,其中相当一部分指令的利用率很低(基本符合“二八定律二八定律”),特别是那些专用于面向某种高级语言优化实现的指令,不仅增加了,特别是那些专用于面向某种高级语言优化实现的指令,不仅增加了机器设计人员的负担也降低了机器的性价比。机器设计人员的负担也降低了机器的性价比。674.4.2 精简指令系统68精简指令系统计算机RISC (Reduced Instruction Set Computer)u只保留功能简单的指令u功能较复杂的指令用子程序来实现RISC是上个世纪80年代提出的一种新的设计思想,选取一些使用频率比较高的

36、简单指令以及很有用又不复杂的指令来构成指令系统,指令数目较少,指令长度固定,指令格式少。 典型的RISC如SUN公司的SPARC、SuperSPARC、UltraSPARC,SGI公司的R4000、R5000、R10000,IBM公司的Power、Power PC,Intel公司的80860、80960,DEC公司的Alpha,Motorola公司的88100等。 69Instruction setBitsIntroducedMax #operandsTypeDesignRegisters(excluding FP/vector)Alpha6419923Register RegisterRIS

37、C32 (including zero)ARM32/1619833Register RegisterRISC7 in 16-bit thumb mode15 in 32-bitARMv8-A64/32201123Register RegisterRISC31AVR819972Register RegisterRISC32 (16 on reduced architecture)AVR3232200623RISC15DLX3219903RISC32eSi-RISC16/3220093Register RegisterRISC872M32R321997RISC16Mico323220063Regi

38、ster RegisterRISC328MIPS64 (3264)198113Register RegisterRISC432 (including zero)MMIX6419993Register RegisterRISC256OpenRISC32, 6420103Register RegisterRISC16 or 32PA-RISC(HP/PA)64 (3264)19863Register RegisterRISC32PowerPC32/64 (3264)19913Register RegisterRISC32RISC-V32, 64, 128(ISA)2010Register Regi

39、sterRISC32 (including zero)S+core16/322005RISCSPARC64 (3264)19853Register RegisterRISC32 (including zero)Register Register / Register Memory70RISC的产生20%与80%定律VLSI技术的发展带来的问题软硬件的功能分配问题7120%与80%定律CISC机器中,各种指令的使用频度相差很悬殊,大量的统计数字表明,大约有20%的指令的使用频度较高,占据了80%的处理机时间。即80%的指令只在20%的处理机运行时间才被用到纽约约克镇IBM研究中心的John Co

40、cke证明,计算机中约20%的指令承担了80%的工作,他于1974年提出了RISC的概念。72VLSI技术的发展带来的问题进入80年代后,VLSI技术的发展非常迅速,往往每3至4年集成度就提高一个数量级。VLSI工艺要求规整性,而在CISC处理器中,为了实现大量的复杂指令,控制逻辑极不规整。给VLSI工艺造成很大的困难。CISC中,大量使用微程序技术实现复杂的指令系统。70年代之前,一般用磁芯作主存,用半导体做控制存储器,两者的速度相差5-10倍。从70年代后期开始,大量使用DRAM做主存,使得主存与控存的速度相当,从而使许多简单指令没有必要用微程序实现,而复杂的指令,用微程序实现和用简单指令

41、的子程序实现以没有多大区别。由于VLSI机程度的迅速提高,使得生产单芯片处理机成为可能,希望采用规整的硬布线控制逻辑,不希望使用微程序。73软硬件的功能划分问题在CISC中,通过增强指令的处理功能,简化了软件,增加了硬件的复杂度。然而,由于指令复杂了,指令的执行时间必然加长,从而有可能是整个程序的执行事件反而增加。因此,在计算机系统结构设计中,软硬件的功能分配必须恰当。74精简指令系统思想的提出精简指令系统思想的提出In 1980, Ditzel and Patterson analyzed the difficulties encountered by the high-level lang

42、uage architectures and argued that the answer lay in simpler architecture. In another paper, they first discussed the idea of RISC and presented the argument for simpler architecture.Begun in 1975, the IBM project was the first to start but was the last to become public. The IBM computer was designe

43、d as a 24-bit ECL minicomputer, while the university projects were both MOS-based, 32-bit microprocessors. John Coche is considered the father of the 801 design. Radin describes the highlights of 801 architecture. The 801 was an experimental project that was never designed to be a product.75精简指令系统思想

44、的提出(续)精简指令系统思想的提出(续)In 1980, Patterson and his colleagues at Berkeley began the project that was to give this architectural approach its name. They built two computers called RISC-I and RISC-II.In 1981, Hennessy and his colleagues at Stanford published a description of the Stanford MIPS computer.Eff

45、icient pipelining and compiler-assisted scheduling of the pipeline were both important aspects of the original MIPS design.Conclusion : Commercial RISCs are built primarily on the work of three research projects: the Berkeley RISC processor, the IBM 801, and the Stanford MIPS processor.76RISC的定义RISC

46、是计算机系统结构的设计思想,它不是一种产品。它是近代计算机系统结构发展中的一个里程碑。直到现在,RISC还没有一个确切的定义77Carnegie Mellon 关于RISC的定义大多数指令在单周期内完成。指令较快地在单个时钟周期内执行完成减少译码和解释所需的开销采用Load/Store结构凡是在CPU执行部件中所需要的指令都来自于通用寄存器,运算结果也只放到通用寄存器中。该结构有助于实现大多数指令在单周期内完成。硬布线控制逻辑使得大多数指令在单周期内执行完成,较少了微程序技术中的指令解释开销减少指令和寻址方式的种类固定的指令格式注重译码的优化78RISC体系结构的特点面向寄存器结构十分注重提高

47、流水线的执行效率要提高RSIC处理机的速度,必须采用流水线,而且要尽量减少断流,提高流水线的效率重视优化编译技术优化编译技术在提高系统性能中发挥重要的作用,该变了过去认为提高计算机速度紧紧依靠硬件的传统观点。79IEEE对于RISC的定义RSIC处理器所设计的指令系统应使流水线处理能高效率执行,并使优化编译器能生成优化代码。支持流水线简单而统一格式的指令编码大部分指令可以单周期执行完成只有Load 和Store指令可以访问存储器简单的寻址方式采用延迟转移技术采用Load延迟技术80IEEE对于RISC的定义(续)支持优化编译器生成优化代码三地址指令格式较多的寄存器对称的指令格式81RISC思想

48、的精华减少CPIP=I * CPI * TP:执行程序所需的总时间I:程序执行的总指令数目CPI:每条指令执行的平均周期数T:一个周期的时间长度82CISC与RISC的I、CPI和T的比较类型指令条数 I指令平均周期数CPI周期时间TCISC12-1533ns5nsRISC1.3-1.41.1-1.410ns-2ns83采用采用RISC结构的好处结构的好处1)简化指令系统设计,适合超大规模集成电路设简化指令系统设计,适合超大规模集成电路设计实现。计实现。2)提高机器的执行速度和效率。提高机器的执行速度和效率。3)降低设计成本,提高了系统的可靠性。降低设计成本,提高了系统的可靠性。4)可以提供直

49、接支持高级语言的能力,简化编译可以提供直接支持高级语言的能力,简化编译程序的设计。程序的设计。84RISC结构的不足和问题结构的不足和问题由于指令少,使原在由于指令少,使原在CISC上由单一指令完成的某些复杂功能上由单一指令完成的某些复杂功能现在需要用多条现在需要用多条RISC指令才能完成,这实际上加重了汇编语指令才能完成,这实际上加重了汇编语言程序员的负担,增加了机器语言程序的长度,从而占用了言程序员的负担,增加了机器语言程序的长度,从而占用了较大的存贮空间,加大了指令的信息流量。较大的存贮空间,加大了指令的信息流量。对浮点运算和虚拟存贮器的支持虽有很大加强,但仍不够理对浮点运算和虚拟存贮器

50、的支持虽有很大加强,但仍不够理想。想。相对来说,相对来说,RISC机器上的编译程序要比机器上的编译程序要比CISC机器上的难写。机器上的难写。85CISC VS RISC86指令集RISC VS CISCRISC括DEC Alpha、ARC、ARM、AVR、MIPS、PA-RISC、Power Architecture(包括PowerPC、PowerXCell)和SPARCCISCCDC 6600、System/360、VAX、PDP-11、Motorola 68000家族、x86理解汇编指令简单指令格式指令编码指令语义87884.5 典型典型的的指令系统指令系统 4.5.1 4.5.1 Pe

51、ntium 4Pentium 4指令系统指令系统4.5.2 PowerPC6204.5.2 PowerPC620指令系统指令系统4.5.3 MIPS4.5.3 MIPS指令系统指令系统4.5.1 Pentium 4指令系统89Pentium 3Pentium 4Pentium 包括了80486的全部指令又增加了5条指令,同时增加了57条特殊的多媒体扩展(MultiMedia eXtension,MMX)指令。 芯片在MMX指令集的基础上加入了SSE(Streaming SIMD Extensions)指令集。 芯片采用了全新的内部体系结构设计,指令系统在Pentium 3芯片的基础上增加了SE

52、E2指令集。4.5.1 Pentium 4指令系统90Pentium 4 指令可分为以下10种类型:u数据传送类指令u算术运算类指令u 逻辑运算类及位操作指令u 字符串操作类指令u 程序控制类指令u 系统寄存器和表控制类指令u 系统和Cache控制类指令u MMX指令集。u SEE指令集u SEE2指令集4.5.1 Pentium 4指令系统91Pentium 4 的基本指令格式由两部分组成:一部分是指令前缀,另一部分是指令本身。4.5.1 Pentium 4指令系统92寻址方式描述立即寻址寄存器寻址直接寻址寄存器间接寻址寄存器相对寻址比例变址加位移量寻址基址加变址加位移量寻址比例基址变址加位

53、移量寻址相对寻址指令中的形式地址部分就是操作数本身指令给出寄存器号,寄存器的内容为操作数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)+ DispPentium 4的9种寻址方式整数算术、逻辑、移位/旋转指令取数/存数指令每个主存块分配有一个目录项,主要有“状态”和“位向量”二种成分条件寄存器逻辑指令 转移指令PowerPC620RISC处理器第一种64位芯片4.5.2 PowerPC620指令系

54、统4.5.2 PowerPC620指令系统2022-5-1794PowerPC620 处理器有 32 个64 位GPR(通用寄存器)以及诸如 PC(程序 计数器)、LR(链接寄存器)、CR(条件寄存器)等各种其它寄存器。操作码目的操作数源操作数A源操作数B三操作数指令格式4.5.2 PowerPC620指令系统95寻址方式描述寄存器相对寻址寄存器相对寻址并更新寄存器基址变址寻址基址变址寻址并更新基址寄存器EA=(R)+ DispEA=(R)+ Disp,(R)= (R)+ DispEA=(B)+(I),B为基址寄存器,I为变址寄存器EA=(B)+(I),(B)=(B)+(I),B为基址寄存器,

55、I为变址寄存器PowerP620的寻址方式4.5.3 MIPS指令系统寄存器组织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位)字节、

56、半字或者字在装入64位寄存器时,用零扩展或者用符号位扩展来填充该寄存器的剩余部分。装入以后,对它们将按照64位整数的方式进行运算。4.5.3 MIPS指令系统97MIPS的数据寻址方式立即数寻址与偏移量寻址;立即数字段和偏移量字段都是16位的。寄存器间接寻址是通过把0作为偏移量来实现的;16位绝对寻址是通过把R0(其值永远为0)作为基址寄存器来完成的;MIPS的存储器是按字节寻址的,地址为64位;所有存储器访问都必须是边界对齐的。4.5.3 MIPS指令系统98在MIPS32架构中,指令被分为三种类型:R型、I型和J型。三种类型的指令的最高6位均为6位的opcode码。类型-31- 格式(位)

57、 -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.3 MIPS指令系统99寻址方式编码到操作码中所有的指令都是32位的操作码占6位3种指令格式 3种格式中,同名字段的位置固定种格式中,同名字段的位置固定不变。不变。 R型指令R型指令用连续三个5位二进制码来表示三个寄存器的地址,然后用一个5位二进制码来表示移位的位数(如果未使用移位操作,则全为0),最后为6位的function码(它与opcode码共同决定R型指令的具

58、体操作方式)包括ALU指令,专用寄存器读/写指令,move指令等。ALU指令 Regsrd Regsrs funct Regsrt funct为具体的运算操作编码操操作作码码 rs 6 5 5 6 rt 5 rd funct 0 5 6 10 11 15 16 31 20 21 sham25 26 5 100101I型指令I型指令则用连续两个5位二进制码来表示两个寄存器的地址,然后是一个16位二进制码来表示的一个立即数二进制码包括所有的load和store指令,立即数指令,分支指令,寄存器跳转指令,寄存器链接跳转指令。立即数字段为16位,用于提供立即数或偏移量。rt rs 立即数(立即数(im

59、mediate) 操作码操作码 6 5 5 16 0 5 6 10 11 15 16 31 102load指令 访存有效地址:Regsrsimmediate 从存储器取来的数据放入寄存器rtstore指令 访存有效地址:Regsrsimmediate 要存入存储器的数据放在寄存器rt中立即数指令 Regsrt Regsrs op immediate分支指令 转移目标地址:Regsrsimmediate,rt无用寄存器跳转、寄存器跳转并链接 转移目标地址为RegsrsI型指令103J型指令用26位二进制码来表示跳转目标的指令地址(实际的指令地址应为32位,其中最低两位为00,高四位由PC当前地址

60、决定)。包括跳转指令,跳转并链接指令,自陷指令,异常返回指令。在这类指令中,指令字的低26位是偏移量,它与PC值相加形成跳转的地址。26 操作码操作码 6 与与 PC 相加的偏移量相加的偏移量 31 0 5 6 104R-R运算105无符号加addu指令格式addu rd,rs,rt指令编码指令语义GPRrd GPRrs +GPR rtadd rd, rs, rtrd=rs+rt0 x00rsrtrd0 x000 x20加法溢addu rd, rs, rtrd=rs+rt0 x00rsrtrd0 x000 x21加法sub rd, rt, rsrd=rt-rs0 x00rsrtrd0 x000 x22减法溢s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论