版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 第四章第四章 指令系统指令系统 4.1 指令系统的发展与性能要求 4.2 指令格式与 4.3 操作数类型 4.4 指令和数据的寻址方式 4.5 典型指令 返回 2 4.1 指令系统的发展与性能要求指令系统的发展与性能要求 1、指令在计算机系统中的地位 (1)是软件和硬件分界面的一个主要标志 l硬件设计人员采用各种手段实现它; l软件设计人员则利用它编制各种各样的系统软件和 应用软件 (2)是硬件设计人员和软件设计人员之间的分 界面,也是他们之间沟通的桥梁。 3 4.1 指令系统的发展与性能要求指令系统的发展与性能要求 2、指令系统基本概念 l指令:就是要计算机执行某种操作的命令。从计算机组
2、成的层 次结构来说,计算机的指令有微指令、机器指令和宏指令之分。 微指令是微程序级的命令,它属于硬件; l宏指令:由若干条机器指令组成的软件指令,它属于软件; l机器指令:介于微指令与宏指令之间,通常简称为指令,每一 条指令可完成一个独立的算术运算或逻辑运算操作。 l本章所讨论的指令,是机器指令。本章所讨论的指令,是机器指令。 l一台计算机中所有机器指令的集合,称为这台计算机的指令系 统。 l指令系统是表征一台计算机性能的重要因素,它的格式与功能 不仅直接影响到机器的硬件结构,而且也直接影响到系统软件, 影响到机器的适用范围 4 4.1 指令系统的发展与性能要求指令系统的发展与性能要求 3、发
3、展情况 l复杂指令系统计算机,简称CISC。但是如 此庞大的指令系统不但使计算机的研制周期 变长,难以保证正确性,不易调试维护,而 且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。 l精简指令系统计算机:简称RISC,人们又 提出了便于VLSI技术实现的精简指令系统计 算机。 5 4.1 指令系统的发展与性能要求指令系统的发展与性能要求 4、为什么会出现CISC到RISC的转变 l2/8规则 l控制器设计难度下降 6 4.1 指令系统的发展与性能要求指令系统的发展与性能要求 5、对指令系统的要求 l完备性:完备性:完备性是指用汇编语言编写各种程序时,指令系统直接提供的 指令足够使用
4、,而不必用软件来实现。完备性要求指令系统丰富、功能 齐全、使用方便。一台计算机中最基本、必不可少的指令是不多的。许 多指令可用最基本的指令编程来实现。例如,乘除运算指令、浮点运算 指令可直接用硬件来实现,也可用基本指令编写的程序来实现。采用硬 件指令的目的是提高程序执行速度,便于用户编写程序。 l有效性:有效性:有效性是指利用该指令系统所编写的程序能够高效率地运行。 高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个 功能更强、更完善的指令系统,必定有更好的有效性。 7 4.1 指令系统的发展与性能要求指令系统的发展与性能要求 5、对指令系统的要求 l规整性:规整性:规整性包括指令
5、系统的对称性、匀齐性、指令格式和数据格式 的一致性。对称性是指:在指令系统中所有的寄存器和存储器单元都可 同等对待,所有的指令都可使用各种寻址方式;匀齐性是指:一种操作 性质的指令可以支持各种数据类型,如算术运算指令可支持字节、字、 双字整数的运算,十进制数运算和单、双精度浮点数运算等;指令格式 和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便 处理和存取。例如指令长度和数据长度通常是字节长度的整数倍。 l兼容性:兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集, 因而指令系统是兼容的,即各机种上基本软件可以通用。但由于不同机 种推出的时间不同,在结构和性能上有差异,
6、做到所有软件都完全兼容 是不可能的,只能做到“向上兼容”,即低档机上运行的软件可以在高 档机上运行。 8 4.1 指令系统的发展与性能要求指令系统的发展与性能要求 6、低级语言与高级语言关系 比较内容高级语言低级语言 1 对程序员的训练要求 (1)通用算法 (2)语言规则 (3)硬件知识 有 较少 不要 有 较多 要 2 对机器独立的程度独立不独立 3 编制程序的难易程度 易难 4 编制程序所需时间短较长 5 程序执行时间较长短 6 编译过程中对计算机资 源的要求 多 少 9 4.2 指令格式指令格式 l影响计算机指令格式的因素 l机器的字长 l存储器的容量 l指令的功能 l指令能反映以下信息
7、 l做什么操作 l如果需要操作数,从哪里取 l结果送哪里 l下一条指令从哪里取 l所以指令格式包括两个方面: 操作码字段操作码字段地址码字段地址码字段 10 4.2 指令格式指令格式 一、操作码 l设计计算机时,对指令系统的每一条指令都要规定一个操作码。 指令的操作码OP表示该指令应进行什么性质的操作,如进行加 法、减法、乘法、除法、取数、存数等等。不同的指令用操作 码字段的不同编码来表示,每一种编码代表一种指令。 l组成操作码字段的位数一般取决于计算机指令系统的规模。较 大的指令系统就需要更多的位数来表示每条特定的指令。 l等长(指令规整,译码简单) l例如IBM 370机,该机字长32位,
8、16个通用寄存器R0 R15,共有183条指令;指令的长度可以分为16位、32位 和48位等几种,所有指令的操作码都是8位固定长度。 l固定长度编码的主要缺点是:信息的冗余极大,使程序的 总长度增加。 11 二、地址码二、地址码 l根据一条指令中有几个操作数地址,可将该指 令称为几操作数指令或几地址指令。 三地址指令 二地址指令 单地址指令 零地址指令 12 二、地址码二、地址码 l三地址指令 l指令格式如下: l操作码 第一操作数A1 第二操作数A2 结果 A3 l功能描述: l(A1)(A2)A3 l(PC) +1PC l这种格式虽然省去了一个地址,但指令长度仍比较 长,所以只在字长较长的
9、大、中型机中使用,而小 型、微型机中很少使用。 13 二、地址码二、地址码 l二地址指令 l其格式如下: l操作码第一操作数A1第二操作数A2 l 功能描述: l(A1)(A2)A1 l(PC)+1PC l二地址指令在计算机中得到了广泛的应用,但是在 使用时有一点必须注意:指令执行之后,A1中原存 的内容已经被新的运算结果替换了。 14 二、地址码二、地址码 l二地址地址根据操作数的物理位置分为: lSS 存储器-存储器类型 lRS 寄存器-存储器类型 lRR 寄存器-寄存器类型 慢 15 二、地址码二、地址码 l一地址指令 l指令格式为: l 操作码 第一操作数A1 l功能描述: l(AC)
10、(A1) A1 l(PC)+1PC l单操作数运算指令,如“+1”、“-1”、“求反” l指令中给出一个源操作数的地址 16 二、地址码二、地址码 l零地址指令 l其格式为: l 操作码 l“停机”、“空操作”、“清除”等控制类 指令。 17 三三、指令长度、指令长度 l概念 l指令字长度(一个指令字包含二进制代码的位数) l机器字长:计算机能直接处理的二进制数据的位数。 l单字长指令 l半字长指令 l双字长指令 l多字长指令多字长指令的优缺点 l优点提供足够的地址位来解决访问内存任何单元的寻址问题 ; l缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的 运算速度,又占用了更多的存储
11、空间。 l指令系统中指令采用等长指令等长指令的优点:各种指令字长度是相等的, 指令字结构简单,且指令字长度是不变的 ; l采用非等长指令非等长指令的的优点:各种指令字长度随指令功能而异,结 构灵活,能充分利用指令长度,但指令的控制较复杂 。 指令格式优化指令格式优化 l优化原由: 指令字长要短,以得到时间和空间上的优势;而指令 字长必须有足够的长度。(矛盾!) l原则: 在不减少指令数量的前提下,尽可能缩短指令字的长 度。 l指令字长一般应是机器字符长度的整数倍以便存储系统的 管理。若机器中字长是L位,则指令字长最好是0.5L,L, 2L,4L,8L等。 优化方法:优化方法: l1、尽可能减少
12、地址码的个数 尽可能采用单地址指令格式;操作数和运算结 果尽可能存于CPU或通用寄存器中。 l 2、操作码长度的缩短 操作码有两种编码格式: 固定格式:操作码长度固定,且集中放在指令 字的一个字段中; 可变格式:即操作码长度可变,且分散地放在 指令字的不同字段中。 扩展操作码(可变格式)扩展操作码(可变格式) l1、要点: (1) 操作码位数随地址码个数变化采取可 变长度的类型; (2) 各指令间指令码一定不重复; (3) 根据需要灵活变通。 l一个重要的原则是使用频率高的指令应分配较 短的操作码,使用频率低的指令分配较长的操 作码。 l2、比较 假设一台计算机指令字长12位,操作码与 地址码
13、都为3位,如图所示。 (1) 方法一:固定格式,则最多可以设计8条 三地址指令。 A1操作码操作码OPA3A2 3位3位3位3位 A1操作码操作码OPA3A2 l2) 方法二:扩展操作码 指令字长为12位,每个地址码为3位,采用扩展操作码 的方式,设计4条三地址指令、255条一地址指令和8条零地 址指令。 l4条三地址指令 000 * * *011 * * * l255条一地址指令 100 000 000 *111 111 110 * l8条零地址指令 111 111 111 000111 111 111 111 l操作码平均长度为 (4*3+255*9+8*12)/(4+255+8)=9 例
14、:某指令系统指令长16位,每个操作数的地址码长6位, 指令分为无操作数、单操作数和双操作数三类。若双操作 数指令有K条,无操作数指令有L条,问单操作数指令最多 可能有多少条? A1(6位)位) 操作码(操作码(4位)位) A2(6位)位) 解:设单操作数指令最多可以有解:设单操作数指令最多可以有x条,则:条,则: 无操作数指令无操作数指令L=( -K) - x 2 4 2 6 2 6 x=( - K) -L/ 2 4 2 6 2 6 24 五、指令助记符五、指令助记符 l由于硬件只能识别1和0,所以采用二进制操作 码是必要的,但是我们用二进制来书写程序却 非常麻烦。 l为了便于书写和阅读程序,
15、每条指令通常用3 个或4个英文缩写字母来表示。这种缩写码叫 做指令助记符 用34个英文字母来表示操作码,一般为英文缩写 不同的计算机系统,规定不一样 必须用汇编语言翻译成二进制代码 25 六、指令格式举例六、指令格式举例 l8位微型计算机的指令格式 l如8088,字长8位,指令结构可变 l包括单字长指令、双字长指令和三字长指令 l操作码长度固定 lPDP/11系列机的指令格式 l字长16位 l单字长指令 l操作码字段不固定 26 七七、 Pentium指令格式指令格式 l指令长度可变,最短1个字节,最长12个字节,典型的CISC指 令系统 l由可选前缀(04)、操作码(12)、一个由mod-R
16、/M字节 和一个SIB(Scale Index Base)比例变址字节组成的地址指定 器、一个可选的位移量(04)和一个可选的立即数字段(04) 构成。 指令前缀段取代操作数长度取代地址长度取代 操作码ModReg或操作码R/MSIB位移量立即数 27 七七、 Pentium指令格式指令格式 l指令前缀中的重复前缀指定串的重复操作,这样使 Pentium处理串比软循环快得多。 lLOCK前缀用于多CPU环境中对共享存储器的排他性 访问 l段取代用于改变默认段寄存器的情况 l操作数长度取代和地址长度取代用于在保护模式下决 定操作数和指令的长度 l以下4个指令前缀都是可选的,分别为0或1个字节 指
17、令前缀段取代操作数长度取代地址长度取代 28 七七、 Pentium指令格式指令格式 l操作码是必须的,12个字节 lMod、Reg、R/M为共1个字节,是可选的。 lmod-R/M指定的操作数是在R中还是在M中。 lmod(2位)R/M(3位)的32种值构成了8种寄存 器方式和24种变址方式(参考汇编语言教材); lReg或OP(3位)指定另一个操作数(寄存器)或 用作OP的补充。 操作码ModReg或操作码R/MSIB位移量立即数 1个字节1个字节 29 七七、 Pentium指令格式指令格式 lS、I、B共1个字节,分别是比例系数、变址寄存器号、 基址寄存器号,可选。mod-R/M中的某
18、些编码要求 SIB字节来完成寻址方式的指定; lSS(2)指定比例变换的因子, lIndex(2)指定变址寄存器, lBase(3)指定基址寄存器 l位移量:可以是0,1,2,4个字节 l立即数:可以是0,1,2,4个字节 操作码ModReg或操作码R/MSIB位移量立即数 30 4.3 操作数类型操作数类型 l操作数类型 l地址数据:地址实际上也是一种形式的数据。 l数值数据:计算机中普遍使用的三种类型的数值数据。 l字符数据:文本数据或字符串,目前广泛使用ASCII码。 l逻辑数据:一个单元中有几位二进制bit项组成,每个bit的值 可以是1或0。当数据以这种方式看待时,称为逻辑性数据。
19、lPentium数据类型(见表4.4) l常规数据类型 l整数数据类型 l. 31 4.4 指令和数据的寻址方式指令和数据的寻址方式 l研究问题 l确定本条指令中各操作数的地址 l下一条指令的地址 l寻址方式是指CPU根据指令中给出的地址码字 段寻找相应的操作数的方式,它与计算机硬件 结构紧密相关,而且对指令的格式和功能有很 大的影响。 32 4.4 指令和数据的寻址方式指令和数据的寻址方式 l指令的寻址方式 l顺序方式 lPC l跳跃方式 33 4.4 指令和数据的寻址方式指令和数据的寻址方式 l操作数的寻址方式 l形成操作数有效地址的方法,称为寻址方 式。 l操作数通常放在哪儿呢? 34
20、4.4 指令和数据的寻址方式指令和数据的寻址方式 l操作数包含在指令中; l操作数包含在CPU的某一个内部寄存器中; l操作数包含在主存储器中; l操作数包含在I/O设备的端口中 l根据操作数放在不同的地方,从而派生各种不 同的寻址方式,往往不同的计算机具有不同的 寻址方式。 35 36 1、隐含寻址、隐含寻址 l指令中隐含着操作数的地址 l如某些运算,隐含了累加器AC作为源和目的寄存器 l如8086汇编中的STC指令,设置标志寄存器的C为1 37 2、立即寻址、立即寻址 l立即寻址是一种特殊的寻址方式,指令中在操作码字 段后面的部分不是通常意义上的操作数地址,而是操 作数本身,也就是说数据就
21、包含在指令中,只要取出 指令,就取出了可以立即使用的操作数,因此,这样 的操作数被称为立即数。 l指令格式:操作码 操作数A 38 2、立即寻址、立即寻址 l特点:在取指令时,操作码和操作数被同时取出,不 必再次访问存储器,从而提高了指令的执行速度。 l但是,因为操作数是指令的一部分,不能被修改; l而且对于定 长指令格式,操作数的大小将受到指令长 度的限制,所以这种寻址方式灵活性最差 l通常用于给某一寄存器或主存单元赋初值,或者用于 提供一个常数。 39 3、直接寻址 l 指令中地址码字段给出的地址A就是操作数的 有效地址EA(Effective Address),即EAA。 41 3、直接
22、寻址 l操作数地址是不能修改的,与程序本身所在的位置 无关,所以又叫做绝对寻址方式 l在早期的计算机中,主存储器的容量较小,指令中 地址码的位数要求不长,采用直接寻址方式简单快 速,也便于硬件实现,因此,常被作为主要的寻址 方式。 l但在现代,随着计算机主存容量的不断扩大,所需 的地址码将会越来越长。指令中地址码的位数将不 能满足整个主存空间寻址的要求,因此直接寻址方 式受到了很大的限制。另外,在指令的执行过程中, 为了取得操作数,必须进行访存操作,降低了指令 的执行速度。 42 4、间接寻址 l 间接寻址意味着指令的地址码部分给出的 地址A不是操作数的地址,而是存放操作数 地址的主存单元的地
23、址,简称操作数地址的 地址。操作数的有效地址的计算公式为: EA(A) 44 4、间接寻址 l特点:因为操作数的有效地址在主存储器中,可以 被灵活的修改而不必修改指令,从而使间接寻址要 比直接寻址灵活得多。但是,间接寻址在指令执行 过程中至少需要两次访问主存储器才能取出操作数, 严重降低了指令执行的速度。 45 5、寄存器寻址 l在指令的地址码部分给出CPU内某一通用寄存器的 编号,指令的操作数存放在相应的寄存器中,即 EA=Ri 优点: (1)由于寄存器在CPU的内部,指令在执行时从寄存 器中取操作数比访问主存要快得多; (2)由于寄存器的数量较少,因此寄存器编号所占位数 也较少,从而可以有
24、效减少指令的地址码字段的长 度。 46 6、寄存器间接寻址 l为了克服间接寻址中多次访存的缺点,可采用寄存器间接寻址, 即将操作数放在主存储器中,而操作数的地址放在某一通用寄 存器中,然后在指令的地址码部分给出该通用寄存器的编号, 这时有EA=(Ri) l这种寻址方式的指令较短,并且在取指后只需一次访存便可得到操作 数,因此指令执行速度较前述的间接寻址方式要快,也是目前在计算 机中使用较为广泛的一种寻址方式。 47 7、相对寻址 l由程序计数器由程序计数器PC提供基准地址,而指令的地址码提供基准地址,而指令的地址码 部分给出相对的位移量部分给出相对的位移量D,两者相加后作为操作数,两者相加后作
25、为操作数 的有效地址,即:的有效地址,即:EA(PC)D。 48 7、相对寻址 l对寻址方式使程序模块可采用浮动地址,编程时 只要确定程序内部操作数与指令之间的相对距离, 而无需确定操作数在主存储器中的绝对地址,这 样,将程序安排在主存储器的任意位置都不会影 响程序执行的正确性。 49 8、基址寻址 l在基址寻址方式中,指令的地址码部分给出偏 移量D,而基准地址放在基址寄存器Rb中,最 后操作数的有效地址仍然是由基准地址A与偏 移量D相加而成,即:EA(Rb)D。用哪一 个寄存器作为基址寄存器也必须在硬件设计时 就事先规定,基址寄存器Rb中的内容称为基 准地址,该值可正可负。 50 8、基址寻
26、址 l基址寄存器的位数可以设置得很长,从而可以在较 大的存储空间中寻址。 51 9、变址寻址 l变址寻址就是将指令的地址码部分给出的基准 地址A与CPU内某特定的变址寄存器Rx中的内 容相加,以形成操作数的有效地址,即:EA A(Rx)。用哪一个寄存器作为变址寄存器 必须在硬件设计时就事先规定,变址寄存器 Rx中的内容称为变址值,该值可正可负。 52 9、变址寻址 53 9、变址寻址 l变址寻址方式是一种被广泛采用的寻址方式,最典 型的应用就是将指令的地址码部分给出的地址A作 为基准地址,而将变址寄存器Rx中的内容作为修改 量。在遇到需要频繁修改操作数地址时,无须修改 指令,只要修改Rx中的变
27、址值就可以了,这对于数 组运算、字符串操作等一些进行成批数据处理的指 令是很有用的。 54 10、段寻址方式、段寻址方式 1111、堆栈结构及其寻址方式、堆栈结构及其寻址方式 1)堆栈是一种数据结构。它是压入和弹出都在栈顶的一 端进行的结构;特点:“后进先出”。 2)分类:1)硬堆栈:由CPU内部设置的专用寄存器构成; (速度快,容量小);2)软堆栈:在主存储器中划 分的专门用于堆栈的一片区域。(容量大,速度慢) 3)堆栈结构在计算机中的作用 (a) 具有堆栈结构的机器使用零地址指令,这使得 指令长度短,指令结构简单,机器硬件简化。 (b) 实现程序调用,子程序嵌套调用和递归调用。 (c) 对
28、于“中断”技术,堆栈更是不可缺少的,保 存“断点”和“现场”。 4)软堆栈的操作(SP始终指向栈顶) 设数据进栈方向为从高地址向低地址发展 (“向下生长),当向堆栈压入数据时, SP的内容先自动递减而指向一个新的空栈 顶单元,再把数据写入此栈顶单元;当数据 弹出堆栈时,立即读出SP所指向的栈顶单 元内容,再把SP内容自动递增而指向新的 栈顶位置。即 PUSH X;(SP)-1SP (X)(SP) POP X; (SP)X (SP)+1SP 堆栈寄存器SP 通用寄存器 100 101 102 103 104 105 106 A进栈 B进栈 B出栈 A出栈 软堆栈过程 105 A A B B AA
29、 104103104105 BA 常用寻址方式及有效地址的计算常用寻址方式及有效地址的计算 寻址方式寻址方式有效地址有效地址寻址方式寻址方式有效地址有效地址 立即寻址立即寻址Data=DData=D变址寻址变址寻址E=RE=Rx x+D+D 寄存器寻址寄存器寻址Data=RData=R变址间接寻址变址间接寻址E=(RE=(Rx x+D)+D) 寄存器直接寻址寄存器直接寻址 E=RE=R间接变址寻址间接变址寻址E=RE=Rx x+(D)+(D) 寄存器间接寻址寄存器间接寻址 E=(R)E=(R)基址寻址基址寻址E=RE=Rb b+D+D 直接寻址直接寻址E=DE=D基址间接寻址基址间接寻址E=(
30、RE=(Rb b+D)+D) 间接寻址间接寻址E=(D)E=(D)间接基址寻址间接基址寻址E=RE=Rb b+(D)+(D) 二次间接寻址二次间接寻址E=(D)E=(D)基址变址寻址基址变址寻址E=RE=Rx x+R+Rb b+D+D 相对寻址相对寻址E=PC+DE=PC+D 注:注:DataData操作数操作数 E E有效地址有效地址 R Rx x变址寄存器变址寄存器 R Rb b基址寄存器基址寄存器 D D形式地址形式地址 R R寄存器寄存器 PCPC程序计数器程序计数器 ( )某单元的内容某单元的内容 寻址方式例题 例1:一条双字长的LOAD指令存储地址为200和201的存储位置, 该指
31、令将地址码指定的内容装入累加器AC中,指令的第一个 字指定操作码和寻址方式,第二个字是地址部分。(PC) =200;(R1)=400;变址寄存器XR的内容是100。 条件(201)=500;(309)=450;(400)=700;(500)=800; (600)=900;(702)=325;(800)=300 问:若寻址方式分别为以下的方式,那么装入AC的值? 1)直接寻址;2)立即数寻址;3)间接寻址;4)相对寻址; 5)变址寻址;6)寄存器(R1)寻址;7)寄存器间接寻址 62 寻址方式举例:寻址方式举例: Pentium 63 Pentium寻址方式寻址方式 方式算法 立即作数=A 寄存
32、器LA=R 偏移量LA=(SR)+A 基址LA=(SR)+(B) 基址带偏移量LA=(SR)+(B)+A 比例变址带偏移量LA=(SR)+(I)S+A 基址带变址和偏移量LA=(SR)+(B)+(I)+A 基址带比例变址和偏移量 LA=(SR)+(B)+(I)S+A 相对LA=(PC)+A 64 例例4 l某16位机器所使用的指令格式和寻址方式如下所示,该机有两个 20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。 指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主 存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H, STO(OP)=(1B)H,LAD(OP
33、)=(3C)H。MOV是传送指 令,STO为存数指令,LAD为取数指令。要求: (1)分析三种指令的指令格式与寻址方式特点。 (2)CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长? 第二种指令的执行时间有时会等于第三种指令的执行时间吗? (3)下列情况下每个十六进制指令字分别代表什么操作?其中如果有 编码不正确,如何改正才能成为合法指令? 65 P118例例4 F0F1 3CD2 1111 0000 1111 0001 0011 1100 1101 0010 3C15号寄存器13CD2 把主存13CD2的内存装载到15号寄存器 6FD6 0110111111010110由于是单字长指
34、令,则一定是MOV指令。 则OP错误,修改为001010001101011028D6 66 4.5 典型指令典型指令 l指令分类与基本指令类型指令分类与基本指令类型 l数据传送类指令 l一般传送指令: MOV AX,BX l数据交换指令: XCHG l堆栈操作指令: PUSH,POP l运算类指令 l算术运算指令: 加、减、乘、除以及加1、减1、比较 l逻辑运算指令: l移位指令 l程序控制类指令 l程序控制类指令用于控制程序的执行方向,并使程序具有测 试、分析与判断的能力。 l 输入和输出指令、字符串处理指令、特权指令、其他指令 67 4.5 典型指令典型指令 l基本指令系统 lP122表4
35、.9介绍 l20%和80%规律:CISC中大约有20%的指令使用频率高,占据了 80%的处理机时间,而有80%的不常用指令只占用处理机的20% 时间。 lVLSI技术发展引起的问题 lVLSI工艺要求规整性,而大量复杂指令控制逻辑极其不规整,给VLSI 工艺造成了很大的困难。 l现在用微程序实现复杂指令与用简单指令组成的子程序相比,没有多 大的区别。因为现在控制存储器和主存的速度差缩小。 lCISC中,通过增强指令系统的功能,简化了软件,增加了硬件的 复杂程度。然而指令复杂了,指令的执行时间必然加长,从而使 整个系统的执行时间反而增加,因而在计算机体系结构设计中, 软硬件的功能分配必须恰当 6
36、8 4.5 典型指令典型指令 lRISC l特点(采用流水线技术) l简单而统一格式的指令译码; l大部分指令可以单周期执行 l只有LOAD/STORE可以访问存储器 l简单的寻址方式 l采用延迟转移技术 l采用LOAD延迟技术 l三地址指令格式 l较多的寄存器 l对称的指令格式 返回 CISC和和RISC l复杂指令集计算机(CISC) 长期来,计算机性能的提高往往是通过增 加硬件的复杂性来获得随着集成电路技术、 超大规模集成电路技术的迅速发展,为了软件 编程方便和提高程序的运行速度,硬件工程师 采用的办法是不断增加可实现复杂功能的指令 和多种灵活的编址方式甚至某些指令可支持 高级语言语句归
37、类后的复杂操作至使硬件越 来越复杂,造价也相应提高为实现复杂操作, 微处理器除向程序员提供类似各种寄存器和机 器指令功能外还通过存于只读存贮器(ROM) 中的微程序来实现其极强的功能 ,CPU在分析 每一条指令之后执行一系列初级指令运算来完 成所需的功能,这种设计的型式被称为复杂指 令集计算机(Complex Instruction Set Computer-CISC)结构 l一般CISC计算机所含的指令数目至少 300条以上,有的甚至超过500条早 期的计算机使用汇编语言编程,由于 内存速度慢且价格昂贵,使得CISC体 系得到了用武之地。在20世纪90年代 中期之前,大多数的微处理器都采用
38、CISC体系包括Intel的80 x86和 Motorola的68K系列等。 l1CISC体系的指令特征 使用微代码。指令集可以直接在微代码内 存(比主内存的速度快很多)里执行,新设计 的处理器,只需增加较少的晶体管就可以执行 同样的指令集,也可以很快地编写新的指令集 程序。 庞大的指令集。可以减少编程所需要的代 码行数,减轻程序员的负担。 高级语言对应的指令集。包括双操作数格 式、寄存器到寄存器、寄存器到内存以及内存 到寄存器的指令。 l2CISC体系的优缺点 优点:能够有效缩短新指令的微代码设计 时间,允许设计师实现CISC体系机器的向上 兼容。新的系统可以使用一个包含早期系统的 指令超集
39、,也就可以使用较早电脑上使用的相 同软件。另外微程序指令的格式与高级语言相 匹配,因而编译器并不一定要重新编写。 缺点:指令集以及芯片的设计比上一代产 品更复杂,不同的指令,需要不同的时钟周期 来完成,执行较慢的指令,将影响整台机器的 执行效率。 IBM POWER6 精简指令集计算机精简指令集计算机(RISC) (RISC) l精简指令集计算机(RISC) 采用复杂指令系统的计算机有着较强的处 理高级语言的能力这对提高计算机的性能是 有益的当计算机的设计沿着这条道路发展 时有些人没有随波逐流他们回过头去看一 看过去走过的道路,开始怀疑这种传统的做法: IBM公司没在纽约Yorktown的Jh
40、omasI.Wason 研究中心于1975年组织力量研究指令系统的 合理性问题因为当时已感到,日趋庞杂的指 令系统不但不易实现而且还可能降低系统性 能1979年以帕特逊教授为首的一批科学家 也开始在美国加册大学伯克莱分校开展这一研 究 l结果表明,CISC存在许多缺点首先在这 种计算机中各种指令的使用率相差悬殊:事 实上最频繁使用的指令是取、存和加这些最简 单的指令这样一来,长期致力于复杂指令系 统的设计,实际上是在设计一种难得在实践中 用得上的指令系统的处理器同时复杂的指 令系统必然带来结构的复杂性这不但增加了 设计的时间与成本还容易造成设计失误此 外尽管VLSI技术现在已达到很高的水平,但
41、 也很难把CISC的全部硬件做在一个芯片上, 这也妨碍单片计算机的发展 l在CISC中,许多复杂指令需要极复杂的操作, 这类指令多数是某种高级语言的直接翻版,因 而通用性差由于采用二级的微代码执行方式, 它也降低那些被频繁调用的简单指令系统的运 行速度因而针对CISC的这些弊病帕特 逊等人提出了精简指令的设想,即指令系统应 当只包含那些使用频率很高的少量指令并提 供一些必要的指令以支持操作系统和高级语 言按照这个原则发展而成的计算机被称为精 简指令集计算机(Reduced Instruction Set Computer-RISC)结构简称RISC l它的关键技术在于流水线操作(Pipelin
42、ing): 在一个时钟周期里完成多条指令。而超流水线 以及超标量技术已普遍在芯片设计中使用。 RISC体系多用于非x86阵营高性能微处理器 CPU,厂商包括主要APPLE、SGI/MIPS、 IBM、SUN、Compaq/Digital(DEC)、 Motorola等。这些厂商设计的处理器在某种程 度上,代表了RISC CPU的发展趋势。 RISC技术的类型技术的类型 l在众多的RISC处理器中,如何了解它们的性 能和设计技术的差别,以便正确选择和应用它 们,这对系统设计者来讲是至关重要的。由于 早期RISC的发展基本上起源于一些著名大学 和公司的研究计划虽然RISC的处理器的品 种很多,制造
43、厂商也不相同但就其性能和设 计技术的差异可分四类:它们的典型代表是 IBM公司的810小型计算机;帕克莱分校的 RISC、RISC;斯坦福大学的MIPS R2000、R3000 和R4000以及克雷公司的 CRAY-1目前几乎所有各大公司研制或生产 的RISC处理器产品部分别隶属于这四种类型。 lIBM 801小型计算机 810小型计算机是IBM公司于70年代末期开始研制的32 位小型机,它排除了通常的两级微码控制方式,取而代之 的是在硬件中直接执行一组精选的简单指令和优化的编译 程序这种特殊的编译程序通过对程序详细执行步骤进行 重新安派以便更有效地利用CPU资源来提高程序的运行 速度,因为它
44、放弃了对复杂指令系统执行微码的方式,这 就有利于用硬连线控制系统来执行为数不多的简单指 令为了达到单周期时间执行一条指令的目的,存贮器结 构使CPU不需等待访问存贮器的时间提供指令和数据高 速缓存(CACHE),有32个32位寄存器所有指令在寄存器 中执行,同时编译器分寄存器和全局优化及存取校验部件, 还具有延迟转移功能,是一台采用紧藕合硬件和编译技术 相结合的RISC计算机。 l柏克莱分校的RISCI、RISC型 RISCI、RISC是帕克莱分校分别于1982年和1984 年研制成功的32位微处理器,它们的设计专注于最有效地 利用大规模整合电路(VLSI)芯片的区域研究,因为RISC设 计的
45、有限个简单指令只需要相对少量的芯片控制逻辑电路, 而芯片上更多的区域可以用作系统功能以加强处理器的 性能和使它的功能多样化它们采用重叠窗口技术有多 达138*32位寄存器组成8个重叠窗口,在相邻界面上有6 个寄存器以提供窗口间的运行参数和结果,它们是专为相 邻两个窗口共享的,在处理器中寄存器作为临时数据存 贮的快速存取区,通过这些寄存据保持信息参数在 CISC计算机中子程序调用之前,参数是存于系统内存 中这样非常浪费时间,而RISCI、RISC利用寄存器来 传送参数很有效地降低了执行子程序调用时所需要的时 间指令数为31个。 lMIPS R x 000系列型 斯坦福大学的MIPS计划,它不采用
46、帕克莱分校的RISC 窗口技术而采用消除流水线各级互锁的微处理器 MIPS(Microprosessor Without Interlocking Pipeline Stage)技术它将IBM公司对优化编译程序的研究和帕克 莱分校的大规模集成电路的思想结合起来流水线是现代 各类微处理器都采用的指令执行技巧即将若干条指令的 取指令,译码和执行过程部分重叠在流水线中同时执 行但在 CISC计算机中,由于指令多而复杂处理每条 指令的所得时间不固定,当后面指令需要前条指令的结 果往往造成指令互锁斯坦福大学的MIPS计划就是在编 译过程中,利用编译程序优化处理器的流水线,以求提高 处理器流水线的效率,由
47、于采用硬连续控制来执行为数不 多的简单指令,且能重组软件流水线这样就减少硬件复 杂性 lCRAY-I型 克雷(CRAY)公司的巨型机CRAY-I,它是70 年代中期开发成功的最先采用面向寄存器操作 的精简指令的高速计算机,公司创始人 Seymvur CRAY一开始就反对过在他的巨型计算 机系列的设计中采用增加指令的建议因此 CRAY一1除大量采用标量、向量和地址寄存器 外还采用流水线技术以达到高速运算的能力, 做到了一个机器周期时间里执行一条指令的目 标所以有人讲CRAY一1是RISC技术的鼻祖 RISC技术的设计技巧技术的设计技巧 lRISC的设计原则是使系统设计达到最高的有效速 度,将那些
48、能对系统性能产生净增益的功能用硬 件实现其余大部分都用软件实现它排除了那 些实现复杂功能的复杂指令,所谓精简并不是 简单的减少而是保留经验证明的能提高机器性 能的指令,另外还将编译器作为机器的功能而 且RISC微处理器使编译器能够直接访问基本的硬 件功能,RISC设计的基本目的在于使计算机结构 更加简单、更加合理、更加有效指令经过精简 后计算机体系结构自然趋于简单在这个基础 上,还必须克服CISC的许多缺点使得计算机速 度更快,程序运行时间缩短这样RISC才能以 崭新的面貌出现 RISC技术的主要设计技巧及其特点技术的主要设计技巧及其特点 l1短周期时间 为了指令的快速执行,就必须快速选择译
49、码和减小寄存器存取时间,尽量采用先进工艺技术以缩短 机器周期时间,也即提高机器的工作频率 2单周期执行指令由于RISC微处理器的指令经过精选, 所有指令长度都相同大多数指令都能在一个机器周期内 执行完实际上,大多数RISC微处理器在没有增加并行 技术时,平均每条指令执行时间为1.25-2个机器周期时间, 而CISC微处理器在相同工艺技术条件下平均执行每条指 令需5-8个机器周期时间,RISC微处理器力求达到每一个 机器周期时间执行一条指令单周期执行指令是RISC 微 处理器性能增强的基础必须简化指令系统和采用流水线 技术 l3 load(取)Store(存)结构 每当一条指令得要访问主存信息时
50、机器的执行速度 将会降低RISC的loadrestore指令只有在访问内存时 才使用,所有其它的指令都是在寄存器内对数据进行运 算一条存取数指令(load)从内存将数据取出放到寄存器 中,在那里可以对数据进行快速处理,并把它暂存在寄存 器里,以便将来还要使用在适当的时候一条存数指令 (store)可将这个数据送回到它在内存中的地址中 去CISC微处理器支持那些直接从内存处理信息的指 令这些指令需要多个机器周期时间才能完成RISC的设 计技术与CISC的设计技术相比有大量寄存器由于允许 数据在寄存器中保留较长的时间这样就减少了存取指 令对内存访问的需要在寄存器中每当再被使用时不必 再次访问内存这
51、种Loadrestore结构通过寄存器对寄 存器进行操作的方式乃是获得单周期执行的关键 l4简单固定格式的指令系统所有指令采用32位固定长 度,寻址方式不超过三种,简化了逻辑和缩短译码时 间确保单周期执行指令,同时也有利于流水线操作的执 行这是由于指令的固定格式保证指令译码和取操作能同 时进行 5不用微码技术由于RISC的设计采用简单合理的指 令系统和简化的寻址方式所以排除微代码设计技术,即 不采用微码只读存贮器(ROM),而是直接在硬件中执行指 令,这意味着省去将机器指令转换成原始微代码这一中间 步骤,这也就减少了执行一条指令所需要的机器周期个数, 也就节省了芯片的空间,使得可以利用这些节省
52、下来的芯 片空间扩展微处理器功能 l6大寄存器堆 RISC微处理器中大量的计算都在ALU高速 寄存器中执行由编译器产生、分配和优化寄存器的使 用从而简化流水线结构和使指令周期降到最小,同时又 不访问内存允许调用的嵌套执行,但这也增加ALU周期 中的寄存器存取时间和一些选址机构因此在任务变换中 需要较高的开销 l7延迟转移这可解决指令转移相关问题,它把转移指 令与前一条指令交换位置以避免浪费一个机器周期时间, 这不是靠程序员去完成,而是由RISC的编译程序自动完 成这也是 RISC设计技术一个重要特性 l8高效的流水线操作 当前不论什么结构的微处理器都毫无例外地采用流水 线技术,以达到高速执行指
53、令的能力,因为流水线的每一 级都负责执行一个单个的操作段比如、指令译码或取操 作数。实际上一个流水线微处理器是在同一时刻对数条指 令进行操作CISC微处理器执行指令时效率低,甚至有时 会使执行过程处于短暂的停滞状态例如,当处理器遇到 一条执行时间比预定时间要长的指令,它必须延长这条指 令的操作这样就要阻止其它指令在流水线中正常执行流 水线操作,直到这条长指令的完成这种状态除了降低了 执行指令效率外还迫使设计者将处理器的微结构在硬件 上设计得更加复杂,以便对付这些问题而在RISC微处理 器设计中,它具有对指令执行时间的预测能力,因此它能 使流水线在高效率状态下运行 l9硬连线控制采用少量、简单、
54、固定的硬连线控制逻 辑替代微码以实现减少指令系统保证短周期,单周期执 行指令,但不能处理复杂指令,除在特定状态机(state machine或使用垂直微码外不能处理多个Load Restore指令。 l10重叠寄存器窗口技术 重叠寄存器窗口技术:在处理机中设置一个数量比较 大的寄存器堆,并把它划分成很多个窗口。每个过程使用 其中相邻的三个窗口和一个公共的窗口,而在这些窗口中 有一个窗口是与前一个过程共用,还有一个窗口是与下一 个过程共用的。与前一过程共用的窗口可以用来存放前一 过程传送给本过程的参数,同时也存放本过程传送给前一 过程的计算结果。同样,与下一过程共用窗口可以用来存 放本过程传送给
55、下一过程的参数和存放下一过程传送给本 过程的计算结果。 l11优化编译程序 l12增强存贮管理功能 l13面向高级语言在R1SC设计中不用微码高 级语言可直接由硬件实现通过-次编译直接 生成由硬件执行的机器代码这样可提高执行 速度不过程序员没有可读的汇编语言,适合 人工编码 l14哈佛(Harvard)总线结构 RISC体系的优缺点体系的优缺点 l优点:在使用相同的晶片技术和相同运行时钟下,RISC 系统的运行速度将是CISC的24倍。由于RISC处理器的 指令集是精简的,它的内存管理单元、浮点单元等都能设 计在同一块芯片上。RISC处理器比相对应的CISC处理器 设计更简单,所需要的时间将变得更短,并可以比CISC 处理器应用更多先进的技术,开发更快的下一代处理器。 l缺点:多指令的操作使得程序开发者必须小心地选用合适 的编译器,而且编写的代码量会变得非常大。另外就是 RISC体系的处理器需要更快内存,这通常都集成于处理 器内部,就是L1 Cache(一级缓存)。 CISC VS RISC l长期以来,由于英特尔的x86处理器可以执行1到 87个字节长度的指令,人们都认为x86处理器是 典型的CISC处
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度养殖场租赁合同含农业产业链金融服务协议3篇
- 二零二五年度金融科技担保合同解除与普惠金融服务合作协议3篇
- 二零二五年度VV公司租赁WW公司培训室合同3篇
- 2025年度特色蔬菜大棚出售及技术服务合同模板
- 二零二五年度国际品牌授权与市场推广合同3篇
- 2025年度能源企业高管节能减排聘用合同3篇
- 2025年度智能公厕设备供应与安装服务承包合同范本3篇
- 二零二五年度公租房租赁合同(含租赁期限及续约规定)3篇
- 二零二五年度企业代为办理员工社保缴费及退休金领取合同2篇
- 二零二五年度产业园区委托经营管理与设施租赁合同3篇
- 浙江省绍兴市诸暨市2023-2024学年数学三上期末达标检测试题含答案
- 脚手架质量验收标准
- 小学思政课《爱国主义教育》
- 中药材的性状及真伪鉴别培训-课件
- 泵站项目划分
- 绿化养护工作检查及整改记录表
- 新能源发电技术学习通课后章节答案期末考试题库2023年
- GB/T 42752-2023区块链和分布式记账技术参考架构
- Module 9 (教案)外研版(一起)英语四年级上册
- 初中物理-初三物理模拟试卷讲评课教学课件设计
- DG-TJ 08-2367-2021 既有建筑外立面整治设计标准
评论
0/150
提交评论