第4章指令系统Chapter4InstructionSystem.ppt

上传人:本田雅阁 文档编号:2577676 上传时间:2019-04-11 格式:PPT 页数:72 大小:312.01KB
返回 下载 相关 举报
第4章指令系统Chapter4InstructionSystem.ppt_第1页
第1页 / 共72页
第4章指令系统Chapter4InstructionSystem.ppt_第2页
第2页 / 共72页
第4章指令系统Chapter4InstructionSystem.ppt_第3页
第3页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第4章指令系统Chapter4InstructionSystem.ppt》由会员分享,可在线阅读,更多相关《第4章指令系统Chapter4InstructionSystem.ppt(72页珍藏版)》请在三一文库上搜索。

1、2019/4/11,1,第4章 指令系统 Chapter 4 Instruction System,4.1 指令格式 4.2 指令的寻址方式 4.3 指令系统设计举例 4.4 CISC和RISC的基本概念,2019/4/11,2,本章学习要求 指令的基本格式、定长和扩展操作码指令格式 各种寻址方式的寻址执行过程 定长操作码指令系统的设计示例 CISC和RISC指令系统的思想及特点 指令系统的设计:指令类型(规模)、指令长度、操作码长度、寻址方式,2019/4/11,3,一台计算机所有指令的集合称为该计算机的指令系统,不同类型的计算机由于结构的差别具有不同的指令系统。计算机的性能与其所设置的指令

2、系统有很大关系,而指令系统又与计算机硬件结构密切相关,因此计算机指令系统的设计是计算机组成结构设计中一个非常重要的环节。 本章主要介绍指令的格式、指令的寻址方式、CISC和RISC的指令系统,2019/4/11,4,4.1 指令格式 指令(Instruction):指示计算机执行某种操作的命令,它由一串二进制数码组成 。每条指令可以完成一个独立的算术运算或逻辑运算操作。 指令系统(Instruction Set):是一台计算机全部指令的集合,是计算机所有功能的体现。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适应范围

3、 。 指令系统的改进是围绕着缩小指令与高级语言的语义差异以及有利于操作系统的优化而进行的。,2019/4/11,5,4.1 指令格式 4.1.1 指令格式 计算机通过执行指令来处理各种数据。为了指出数据的来源、操作结果的去向及所执行的操作 。 一条指令一般包含下列信息: (1)操作码,说明操作的性质及功能 (2)操作数的地址,说明参与运算的数据来源 (3)操作结果的存储地址,说明操作结果存放何处 (4)下一条指令的地址,当遇到非顺序执行指令时,给出转移地址,2019/4/11,6,4.1 指令格式 4.1.1 指令格式 在计算机内部,每条指令都表示一串二进制位,称为指令字。指令字划分为若干个域

4、,分别对应指令的构成部分,指令字的结构称为指令格式 计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系 指令格式的设置一般遵循以下规则: (1)包含尽量多的信息; (2)长度尽可能与机器字长相匹配; (3)指令中包含尽量少的冗余信息。,2019/4/11,7,4.1 指令格式 4.1.1 指令格式 指令由操作码和地址码两部分组成,其基本格式如图4-1所示 :,操作码:用来表示指令所要完成的操作 地址码:用来指出该指令的源操作数地址、结果 地址以及下一条指令的地址,2019/4/11,8,4.1 指令格式 4.1.1 指令格式 指令字长度 :指一条指令中所包含的二进制代码的位数

5、,它取决于操作码字段的长度、操作数地址的个数及长度。指令长度可以等于机器字长,也可以与机器字长不等 。 固定字长指令结构:指令系统中所有指令的长度都是一样的。优点是控制简单,实现方便。但占用地址空间较大,不够灵活 变长指令字结构 :各种指令的长度随指令的不同而有所不同 。变长指令字结构字长不确定,指令执行周期与指令功能有关系,往往不能在相同的周期内完成。优点是节省存储空间,指令系统灵活,被广泛应用于现代计算系统的设计中,2019/4/11,9,4.1 指令格式 4.1.1 指令格式 操作码(Operation Code) :用来表示指令所要完成的操作,如加法、减法、传送、移位、转移等 。 每条

6、指令都有不同于其它指令的操作码编码。操作码占用的二进制位数一般取决于计算机指令系统的规模,实际上也就是与指令的条数有关。 一般来讲,如果操作码固定,占m位,则该机器最多包含2m条指令 操作码的长度可以是固定的,也可以是变化的。相应的指令格式可分为定长操作码指令格式和扩展操作码指令格式两类,2019/4/11,10,4.1 指令格式 4.1.1 指令格式 地址码(Address Code) :用来指出该指令的源操作数地址、结果地址以及下一条指令的地址。这里的“地址”可以是主存地址,也可以是寄存器地址或者I/O设备的地址 。 不是所有的指令都必须包含地址码,也不是所有指令的地址码段数都相同。根据指

7、令中包含的地址码的段数,可以将指令分为零地址指令、一地址指令、二地址指令、三地址指令,2019/4/11,11,根据地址码部分给出的地址个数分类: 1. 零地址指令 指令中只有操作码,而没有操作数或没有操作数地址。这种指令有两种可能: (1) 无需任何操作数。如空操作指令、停机指令等 (2) 操作数按照某种约定隐含,如堆栈类指令 2. 一地址指令 指令中只给出一个地址。一种是单操作数运算,如加1,减1,移位,取反等,该地址既是操作数的地址,又是操作结果存储地址。对这一地址所指定的操作数执行相应的操作后,产生的结果又存回该地址中。另一种情况是双操作数,另一个操作数必须存放在事先约定的专门的寄存器

8、中,2019/4/11,12,3. 二地址指令 这是最常见的指令格式,两个地址指出两个源操作数地址,其中一个还是存放结果的目的地址 4. 三地址指令: 指令中包含三个地址段,其中的两个地址段用来存放源操作数地址,第三个地址段用来存放目的操作数地址 5. 四地址指令 指令中包含四个地址段,其中前两个地址段用来存放源操作数地址,第三个地址段用来存放目的操作数地址,第四个地址段给出下一条指令的地址。,2019/4/11,13,6. 多地址指令 高档机或大型机中用于处理成批数据的指令,如字符串处理指令,向量、矩阵运算指令等。为了描述一批数据,指令中需要多个地址来指出数据存放的首地址、长度和下标等信息。

9、 具有不同数量地址码的指令系统格式如图4-2所示 适应范围: 零地址、一地址和两地址指令具有指令短,执行速度快,硬件实现简单等特点,多为结构较简单,字长较短的小型、微型机所采用 两地址、三地址及多地址指令具有功能强,便于编程等特点,多为字长较长的大,中型机所采用,2019/4/11,14,2019/4/11,15,4.1.2 定长操作码指令格式 定长操作码指令格式将操作码集中放在指令字的一个字段内,这种格式便于硬件设计,指令译码时间短,广泛应用于字长较长的大、中型计算机和超级小型机以及RISC(Reduced Instruction Set Computer)中 。 IBM370机就采用定长操

10、作码指令格式。IBM370机是一种32位机,机器字长32位,有三种结构的指令,分别是半字长指令(指令长度为16位)、单字长指令(指令长度为32位)、1.5倍字长指令(指令长度为48位)。不同类型的指令编码格式有所不同,但操作码字段的长度都是固定的8位。,2019/4/11,16,4.1.2 定长操作码指令格式 图4-3列出了IBM370机的指令系统格式 。,2019/4/11,17,4.1.3 扩展操作码指令格式 扩展操作码指令格式将操作码分散在指令字的不同字段中,可有效压缩操作码平均长度,在字长较短的微型计算机中广泛应用,如Z80、Intel80x86、Pentium等,操作码长度都是可变的

11、 。 操作码长度不固定将增加指令译码和分析的难度,使控制器设计复杂化,因此对操作码的编码至关重要。通常是在指令字中用一个固定长度的字段来表示基本操作码,而对于一部分不需要某个地址码的指令,把它们的操作码扩展到该地址字段,这样既能充分利用指令字的各字段,又能在不增加指令长度情况下扩展操作码的长度,使它表示更多指令。,2019/4/11,18,设某机器的指令长度为16位,包括4位基本操作码和三个4位地址码段。 15 12 118 7 4 30,4位基本操作码可表示16个状态, 如用4位操作码能表示16条三地址指令, 而用8位操作码可表示256条二地址指令, 而用12位操作码可表示4096条一地址指

12、令。,2019/4/11,19,4.1.3 扩展操作码指令格式 设某机器的指令长度为16位,包括4位基本操作码字段和3个4位地址字段,其指令格式如图4-4所示。4位基本操作码可表示16个状态,如全部用于表示三地址指令,只有16条。若该机器有三地址指令15条,两地址指令15条,一地址指令15条,零地址指令16条,共61条,应该如何安排操作码呢 ?,2019/4/11,20,4.1.3 扩展操作码指令格式 只用4位基本操作码明显是不够的,必须将操作码的长度向地址码字段扩展才行。一种可供扩展的方法和步骤如下: (1)15条三地址指令的操作码由4位基本操作码从00001110给出,剩下一个码点1111

13、把操作码扩展到A1,即4位扩展到8位; ( 2)15条二地址指令的操作码由8位操作码从1111000011111110给出,剩下一个码点11111111把操作码扩展到A2,即从8位扩展到12位; ( 3)15条一地址指令的操作码由12位操作码从111111110000111111111110给出,剩下一个码点111111111111把操作码扩展到A3,即从12位扩展到16位; ( 4)16条零地址指令的操作码由16位操作码从1111111111110000111111111111给出 。,2019/4/11,21,操作码 地址码,15 12 11 8 7 4 3 0,0000 X Y Z 11

14、10 X Y Z,1111 0000 Y Z 1111 1110 Y Z,三地址指令 15条,二地址指令 15条,1111 1111 0000 Z 1111 1111 1110 Z,一地址指令 15条,1111 1111 1111 0000 1111 1111 1111 1111,零地址指令 16条,2019/4/11,22,4.1.3 扩展操作码指令格式 除了这种方法以外,还有其他多种扩展方法,如还可以形成15条三地址指令,14条两地址指令,31条一地址指令和16条零地址指令,共76条指令:,15条三地址为:0000 1110 14条二地址为:11110000 11111101 31条一地址

15、为:111111100000 111111111110 16条零地址为:1111111111100001111111111111111,2019/4/11,23,4.1.3 扩展操作码指令格式 在可变长度的指令系统的设计中,到底使用何种扩展方法还有一个重要原则-指令使用频率 (1)使用频率高的指令应分配较短的操作码 (2)使用频率低的指令应分配较长的操作码 这样可有效地缩短操作码在程序中的平均长度,节省存储空间,缩短经常使用的指令的译码时间,可提高程序的运行速度。 操作码扩展技术是一种重要的指令优化技术,它可以缩短指令的平均长度,减少程序的总位数以及增加指令字所能表示的操作信息。 扩展操作码比

16、固定操作码译码复杂,使控制器的设计难度增大,且需更多的硬件来支持,2019/4/11,24,4.1 指令格式 比较: 定长操作码 - 操作码长度固定 优点:便于控制; 缺点:会限制指令系统规模; 扩展操作码 -操作码长度不固定 优点:合理利用存储空间; 缺点:增加指令译码和分析难度,使控制器设计复杂化;,2019/4/11,25,4.2 指令的寻址方式 组成程序的指令代码:一般在存储器中 程序执行过程中的操作数:可能在运算部件的某个寄存器中或存储器中,也可能就在指令中 寻址方式(Addressing mode):确定本条指令的数据地址以及下一条将要执行的指令地址的方法,它与硬件结构紧密相关,而

17、且直接影响指令格式和指令功能 。 从程序员角度看,寻址方式与汇编程序设计的关系极为密切,与高级语言的编译程序设计也同样密切。,2019/4/11,26,4.2 指令的寻址方式 4.2.1 有效地址 通常把指令中地址码字段给出的地址称作形式地址(用字母A表示),这个地址一般不能直接用来访问存储器。 形式地址经过某种运算而得到的可用来访问存储器的地址称作有效地址(用EA表示),有效地址实际上是操作数所在单元位置到段地址的距离,由段地址和有效地址可以直接得出操作数在存储器中的物理地址 不同的寻址方式,从形式地址A计算得到有效地址EA的方法也不一样,2019/4/11,27,4.2 指令的寻址方式 4

18、.2.2 数据寻址和指令寻址 寻址方式分为数据寻址和指令寻址两大类。 指令寻址方式实际上是程序执行的过程,即计算机在执行程序的过程中如何在主存中找到将要执行的指令的地址 数据寻址方式是指操作数的有效地址的寻址方式,2019/4/11,28,4.2 指令的寻址方式 4.2.2 数据寻址和指令寻址 1. 数据寻址 数据寻址方式通过指令中的地址码字段计算操作数的有效地址,地址码字段由形式地址和寻址方式特征位组合而成,因此,通常指令中给出的地址码并不是操作数的有效地址 。 数据寻址过程就是把地址码字段中的操作数形式地址转换为操作数的有效地址的过程 数据寻址方式种类较多,将在4.2.3节中详细介绍,20

19、19/4/11,29,4.2 指令的寻址方式 4.2.2 数据寻址和指令寻址 2. 指令寻址 指令寻址方式有两种 (1)顺序寻址 指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行 指令在执行过程中,根据程序计数器PC的值去寻址存储器,在指定的存储器中取出指令后,PC自动加1,从而指向下一条指令所在的地址 主要用在程序执行过程中,从存储器中取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,再执行第二条指令;接着再取出第三条指令,2019/4/11,30,4.2 指令的寻址方式 4.2.2 数据寻址和指令寻址 2. 指令寻址 (2)跳转寻址 当程序遇到非

20、顺序执行时,指令寻址就采用跳转寻址方式。跳转是指下一条指令的地址不是由程序计数器PC给出,而是由本条指令给出。 跳转指令就是程序中的转移指令,当程序执行至转移指令时,下一条将要执行的指令可能就不是程序中的下一行 采用跳转寻址方式,可实现程序转移或构成循环程序,缩短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳转寻址而设置的,2019/4/11,31,4.2.3 常见寻址方式 不同的计算机有不同的寻址方式,但其基本原理是相同的 寻址方式一般可归结为立即寻址、直接寻址、寄存器寻址、基址寻址、变址寻址、间接寻址以及相对寻址等几种寻址方式,或者这

21、几种方式的组合与变形 。 寻址过程:从“形式地址”到“有效地址”的转换 对寻址方式的评价包括:寻址能力;地址计算的复杂性 约定:A形式地址,指令地址字段中的内容 EA有效地址,包含被访问操作数的实际单元 (X)表示单元X中的内容 R寄存器,2019/4/11,32,1. 立即寻址 指令的地址字段指出的不是操作数的地址,而是操作数本身,又称之为立即数 这种方式的特点是指令执行时间很短,只要取出指令便可获得操作数,不需要访问存储器取数。现在地址字段A的位数限制了这类指令所能表示的立即数的范围 例: MOV AX,1234H,OP A,立即数,指令字,2019/4/11,33,2. 直接寻址 指令的

22、地址码部分给出操作数在存储器中的地址。 优点是简单直观,不需专门计算机操作数地址,指令执行阶段对主存只访问一次,便于硬件实现 地址字段A的位数限制了操作数的寻址范围,而且必须修改A的值,才能修改操作数的地址 例: MOV AX,1234H,存储器,OP A,操作数 1234H,2019/4/11,34,2. 直接寻址 有些指令中增加一个M字段,例如3位,可表示8种寻址方式,存储器, M A,操作数 0110H,OP,2019/4/11,35,3. 寄存器寻址 指令地址码部分给出某一通用寄存器地址,所需的操作数就在这一寄存器(R)中 地址码短,从寄存器中存取数据比从存储器中存取快得多;速度快,是

23、提高性能的常用手段 寄存器寻址方式可以缩短指令长度、节省存储空间,提高指令的执行速度,在计算机中得到广泛应用。 缺点:寻址空间受寄存器数量限制 EA=R 例:MOV AX,BX BX为源操作数地址,AX为目的操作数地址,操作的结果为将BX中的数据传送(拷贝)到AX中。,2019/4/11,36,4. 基址寻址 在计算机中设置或由指令指定一个通用寄存器为基址寄存器(BR)。操作数的地址由基址寄存器的内容和指令的地址码A相加得到,地址码A通常被称为位移量(disp) EA=(BR)+A 例:MOV AX,BX+50H 程序员可以不用考虑程序加载到内存中的位置,编程只需使用逻辑地址即可(程序转换到物

24、理地址) 当存储器容量较大,由指令的地址码部分直接给出的地址不能直接访问到存储器所有单元时,通常把整个存储空间分成若干段,段首地址放于基址寄存器或段寄存器中,段内位移量由指令给出。,2019/4/11,37,图4.7 基址寻址过程,2019/4/11,38,5. 变址寻址 指令地址码部分给出的地址A和指定的变址寄存器X的内容通过加法器相加,所得的和作为地址从存储器中读出所需的操作数。 当计算机中还有基址寄存器时,计算有效地址时还需加上基址寄存器内容 EA=(X)+A 例:MOV AX,SI+50H 变址操作支持一维数组,结合循环方法进行,逐次改变变址寄存器的值,来访问一片主存地址 变址寄存器的

25、自动增量和自动减量功能,每存取一个数据,自动增减,指向下一单元,为存取下一数据作准备,2019/4/11,39,2019/4/11,40,基址寻址面向系统,主要解决程序的存储定位问题,即解决程序逻辑空间与物理空间的无关性; 变址寻址面向用户,主要是为了可以编写出高效的访问一片存储空间的程序,用以访问字串和数组,2019/4/11,41,6. 间接寻址 地址码中给出的不是操作数地址,而是存放操作数地址的地址,这种方式称为间接寻址或间址。 根据地址码指的是寄存器地址还是存储器地址,间接寻址又可分为寄存器间接寻址和存储器间接寻址两种方式。 间接寻址有一次间址和多次间址两种情况。 存储器间接寻址:EA

26、=(A),寻址空间大,执行速度慢;至少需要两次访存才能获得操作数,如一次间址情况,第一次从存储器读出操作数地址,第二次读出操作数 寄存器间接寻址:EA=(R) ,需要一次访存 例:MOV AX,BX,2019/4/11,42,2019/4/11,43,以转移指令Jump为例,来说明在直接寻址和间接寻址方式下如何确定下一条要执行的指令的地址。,2019/4/11,44,7. 相对寻址 把程序计数器PC的内容(即当前执行指令的地址)与指令的地址码部分给出的位移量(disp)之和作为操作数的地址或转移地址,称为相对寻址。主要用于转移指令。 EA=(PC)+disp 相对寻址有两个特点: (1) 转移

27、地址不是固定的,但是无论程序装入存储器的任何地方,只要指令间的相对位置不变,均能正确运行,对浮动程序很适用。 (2) 位移量可正、可负,通常用补码表示。,2019/4/11,45,计算机的程序和数据一般是分开存放的,程序区在程序执行过程中不允许修改,否则数据区的 相对地址会发生变化。 在程序与数据分区存放的情况下,不用相对寻址方式来确定操作数地址 三种偏移寻址:基址寻址、变址寻址、相对寻址,2019/4/11,46,补充: 堆栈寻址 堆栈(stack)是由若干个连续存储单元组成的先进后出(first in last out,简称FILO)存储区 栈底是固定不变的,而栈顶却是随着数据的入栈和出栈

28、在不断变化。任何堆栈操作只能在栈顶进行。 堆栈指针(stack pointer,简称SP)是一个专用寄存器,用来指明栈顶的位置。 在一般计算机中,堆栈主要用来暂存中断和子程序调用时现场数据及返回地址。 压入指令(PUSH)是把指定的操作数送入堆栈的栈顶,而弹出指令(POP)的操作刚好相反,是把栈顶的数据取出,送到指令所指定的目的地。,2019/4/11,47,设栈底的地址大于或等于栈顶的地址 压栈操作的过程:首先把堆栈指针(SP)减量(减量的多少取决于压入数据的字节数),然后把数据送入SP所指定的单元 出栈操作的过程:首先把SP所指定的单元(即栈顶)的数据取出,然后根据数据的大小(即所占的字节

29、数)对SP增量。 由于堆栈具有先进后出的性质,因而在中断、子程序调用过程中广泛用于保存返回地址、状态标志及现场信息。 例如,假设有一主程序M和两个子程序 A,B,它们的调用关系是M调用A,A又调用B,如图所示。,2019/4/11,48,当主程序M执行到子程序调用指令call A时,先把该指令的下条指令地址M1及其他信息压入堆栈中保存,然后转入子程序A执行。 当子程序A执行到指令call B时,又把其下条指令的地址A1压入堆栈,并转入子程序B执行。 子程序B执行完毕,从堆栈中弹出A1(此时A1在栈顶)作为返回地址,返回到A子程序继续执行。 A子程序执行完毕,又从堆栈中弹出M1(此时M1在栈顶)

30、,返回主程序M继续执行。,2019/4/11,49,以上这些寻址方式,在计算机中可以组合使用,如在一条指令中可以同时实现基址寻址与变址寻址,其有效地址为: 基址寄存器内容+变址寄存器内容+指令地址码A 例:MOV AX,BX+SI+50H 如果用户用高级语言编程,根本不用考虑寻址方式,因为这是编译程序的事但若用汇编语言编程,则应对它有确切的了解,才能编出正确而又高效率的程序。 不同计算机采用的寻址方式是不同的,即使是同一种寻址方式,在不同的计算机中也有不同的表达方式或含义,2019/4/11,50,4.3 指令系统设计举例 【例4-2】某机器字长为16位,采用一地址格式的指令系统,允许直接、间

31、接、变址、基址寻址,变址寄存器和基址寄存器均为16位,则 (1)若采用单字指令,共能完成108中操作,画出指令格式,直接寻址和一次间接寻址的寻址范围是多少? (2)若采用双字指令,操作码位数和寻址方式不变,画出指令格式,指令可直接寻址的范围是多少? 【解】(1)采用单字指令的指令格式如图4-11(a)所示。由于指令集有108条指令,则操作码位数为7位,允许4种不同的寻址方式,寻址方式字段需要2位。地址码位数为7位,可直接寻址范围为27个地址单元;采用一次间接寻址时,由于地址码字段中是操作数地址的地址,操作数的有效地址在存储器内,该地址16位,因此一次间接寻址范围为216个地址单元。 (2)采用

32、双字指令的指令格式如图4-11(b)所示。地址码位数为16+7=23位。则可直接寻址的范围为223个地址单元。,2019/4/11,51,4.3 指令系统设计举例 【例4-2】某机器字长为16位,采用一地址格式的指令系统,允许直接、间接、变址、基址寻址,变址寄存器和基址寄存器均为16位,则 (1)若采用单字指令,共能完成108中操作,画出指令格式,直接寻址和一次间接寻址的寻址范围是多少? (2)若采用双字指令,操作码位数和寻址方式不变,画出指令格式,指令可直接寻址的范围是多少?,2019/4/11,52,4.3 指令系统设计举例 【例4-3】某模型机字长为16位,共有64种操作,操作码位数固定

33、,且具有如下特点:(1)采用一地址或二地址格式;(2)有寄存器寻址、直接寻址和相对寻址(位移量为-128+127)三种寻址方式;(3)有16个通用寄存器,算术运算和逻辑运算指令的操作数、结果均在寄存器中;(4)取数/存数指令在通用寄存器和存储器之间传送数据;(5)存储器容量为1MB,按字节编址。试设计算术运算和逻辑运算指令、取数/存数指令和相对转移指令的格式。 【解】(1)算术运算和逻辑运算指令格式为寄存器-寄存器型,取单字长16位,指令格式如图4.12。其中,OP为操作码,6位,可实现64种操作;M为寻址方式,2位,可反映寄存器寻址、直接寻址、相对寻址;R1和R2各取4位,指出源操作数和目的

34、操作数的寄存器(共16个)编号。,2019/4/11,53,4.3 指令系统设计举例 【例4-3】某模型机字长为16位,共有64种操作,操作码位数固定,且具有如下特点:(1)采用一地址或二地址格式;(2)有寄存器寻址、直接寻址和相对寻址(位移量为-128+127)三种寻址方式;(3)有16个通用寄存器,算术运算和逻辑运算指令的操作数、结果均在寄存器中;(4)取数/存数指令在通用寄存器和存储器之间传送数据;(5)存储器容量为1MB,按字节编址。试设计算术运算和逻辑运算指令、取数/存数指令和相对转移指令的格式。 【解】(2)取数/存数指令格式为寄存器-存储器型,取双字长32位,指令格式如图4.13

35、。其中,OP为操作码,6位不变;M为寻址方式,2位不变;R1为4位,源操作数地址(存数指令)或目的操作数地址(取数指令)。A1和A2共20位,为存储器地址,可直接访问按字节编址的1MB存储器。,A2,2019/4/11,54,4.3 指令系统设计举例 【例4-3】某模型机字长为16位,共有64种操作,操作码位数固定,且具有如下特点:(1)采用一地址或二地址格式;(2)有寄存器寻址、直接寻址和相对寻址(位移量为-128+127)三种寻址方式;(3)有16个通用寄存器,算术运算和逻辑运算指令的操作数、结果均在寄存器中;(4)取数/存数指令在通用寄存器和存储器之间传送数据;(5)存储器容量为1MB,

36、按字节编址。试设计算术运算和逻辑运算指令、取数/存数指令和相对转移指令的格式。 【解】(3)相对转移指令格式为一地址格式,取单字长16位 ,指令格式如图4.14。其中,OP为操作码,6位不变;M为寻址方式,2位不变;A为位移量,8位,对应位移量为-128+127 。,2019/4/11,55,4.3 指令系统设计举例 【例4-4】某计算机字长为16位,主存地址空间为128KB,按字编址。采用单字长指令格式,指令各字段定义如图4-15所示。转移指令采用相对寻址方式,相对偏移是用补码表示,寻址方式定义如表4.1所示。请回答下列问题: (1)该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存

37、器?存储器地址寄存器(MDR)至少各需多少位? (2)转移指令的目标地址范围是多少? (3)若操作码0010B表示加法操作(助记符为add),寄存器R4和R5的编号分别为100B和101B,R4的内容为1234H,R5的内容为5678H,地址1234H中的内容为5678H中的内容为1234H ,则汇编语言为add(R4),(R5)+(逗号前原操作数,都号后为目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和存储单元的内容会改变?改变后的内容是什么?,2019/4/11,56,4.3 指令系统设计举例 【解】 (1)OP字段占4个bit位,因此该指令系统最多有24=16

38、条指令;Rs/Rd为3个bit,因此最多有23=8个通用寄存器;128K/2B=64kK=216,所以存储器地址寄存器位数至少为16位,指令字长度为16位,所以存储器数据寄存器至少为16位。 因为Rn是16位寄存器,所以可以寻址的目标地址范围是64K,转移地址目标范围是0000H-FFFFH。 (3)汇编语句add(R4),(R5)+对应的机器码0010 001 100 010 101B,用十六进制表示是2315H,该指令执行后R5的内容变为5679H,地址5678H的内容变为68AC H。,2019/4/11,57,例4-6 一种两地址指令的结构如下所示,其中I为间接寻址标志位,M为寻址模式

39、字段,A为偏移量字段。通过I,M, A的组合,可构成下表所式的寻址方式。请写出六种寻址方式的名称。 6位 4位 1位 2位 16位,寻址方式表,2019/4/11,58,答:,直接寻址 ,相对寻址 ,变址寻址 ,寄存器间接寻址 ,存储器间接寻址 ,基址寻址,2019/4/11,59,例4-7:某计算机字长32位,有16个通用寄存器,主存容量为1MB,采用单字长二地址指令,共有64条指令,试采用四种寻址方式(寄存器寻址、直接寻址、变址寻址、相对寻址)设计指令格式,并说明各种寻址模式下,有效地址如何计算。,2019/4/11,60,例4-8:某机字内存64KB,CPU内有8个16位通用寄存器(其中

40、4个又可当作8个8位通用寄存器)。该机指令系统共有64条指令,全部为双地址指令,且第一个操作数在寄存器中,指令采用下列寻址方式: (1)寄存器直接寻址 (2)寄存器间接寻址(用16位寄存器) (3)存储器直接寻址 (4)变址寻址(用任意一个16位寄存器作变址寄存器,位移量为16位) 要求: (1)设计该计算机指令格式,并画出各种类型的指令格式示意图; (2)写出各种寻址方式的有效地址。,2019/4/11,61,4.4 CISC和RISC的基本概念 4.4.1 CISC 复杂指令集计算机(Complex Instruction Set Computer,CISC) 早期的计算机运算速度慢。为提

41、高运算速度,人们将越来越多的复杂指令加入指令系统中,以提高计算机处理效率,逐步形成复杂指令集计算机体系 为了在有限的指令长度内实现更多的指令,人们又设计了操作码扩展 为了达到操作码扩展的先决条件减少地址码,设计师又发现了各种寻址方式,如基址寻址、相对寻址等,以最大限度地压缩地址长度,为操作码留出空间,2019/4/11,62,4.4 CISC和RISC的基本概念 4.4.1 CISC Intel公司的X86系列CPU是典型的CISC体系的结构,从最初的8086到后来的Pentium系列,每出一代新的CPU,都会有自己新的指令,而为了兼容以前的CPU平台上的软件,旧的CPU的指令集又必须保留,这

42、就使指令的解码系统越来越复杂 为了支持复杂指令集,CISC通常包括一个复杂的数据通路和一个微程序控制器 。微程序控制器由一个微程序存储器、一个微程序计数器和地址选择逻辑构成。在微程序存储器中的每一个字都表示一个控制字,并且包含了一个时钟周期内所有数据通路控制信号的值。这就意味着控制字中的每一位表示一个数据通路控制线的值 。,2019/4/11,63,4.4 CISC和RISC的基本概念 4.4.1 CISC CISC存在的主要问题: (1)复杂指令并不能有效地得到利用。CISC计算机系统中,各种指令的使用频率相差悬殊。统计表明,大概有20%的比较简单的指令被反复使用,使用量约占整个程序的80%

43、;而有80%左右的指令则很少使用,其使用量约占整个程序的20%。 (2)复杂指令系统会降低整个机器的执行速度。 (3)不便于用VLSI实现。 (4)设计时间长,且由于系统复杂,可能包含更多的设计错误。,2019/4/11,64,4.4 CISC和RISC的基本概念 4.4.1 CISC CISC存在的主要问题: (5)控制字的数量及时钟周期的数目对于每一条指令都可以是不同的。因此在CISC中很难实现指令流水操作。 (6)CISC的设计思想是把硬件资源主要用于提高指令系统的功能和规模,使指令系统设计得尽可能接近高级语言,而没有最大限度地利用这些资源来提高性能 。 另外,速度相对较慢的微程序存储器

44、需要一个较长的时钟周期。由于指令流水和短的时钟周期都是快速执行程序的必要条件,因此CISC体系结构对于高效处理器而言不太合适,2019/4/11,65,4.4 CISC和RISC的基本概念 4.4.2 RISC 精简指令集计算机(Reduced Instruction Set Computer,RISC)是一种执行较少类型计算机指令的微处理器,起源于80 年代的MIPS主机,RISC机中采用的微处理器统称RISC处理器 IBM研究中心的John Cocke证明,计算机中约20%的指令承担了80%的工作,他于1974年提出了RISC的概念。RISC概念已经引领了微处理器设计的一个更深层次的思索。

45、设计中必须考虑到:指令应该如何较好的映射到微处理器的时钟速度上(理想情况下,一条指令应在一个时钟周期内执行完);体系结构需要多“简单”;以及在不诉诸于软件的帮助下,微芯片本身能做多少工作等等 。,2019/4/11,66,4.4 CISC和RISC的基本概念 4.4.2 RISC RISC微处理器精简了指令系统,采用超标量和超流水线结构;指令数目只有几十条,增强了并行处理能力。如1987年Sun Microsystem公司推出的SPARC芯片就是一种超标量结构的RISC处理器。SGI公司推出的MIPS处理器则采用超流水线结构,这些RISC处理器在构建并行精简指令系统多处理机中起着核心的作用 由

46、于RISC处理器指令简单、采用硬布线控制逻辑、处理能力强、速度快,世界上绝大部分UNIX工作站和服务器厂商均采用RISC芯片作CPU用。如原DEC的Alpha21364、IBM的Power PC G4、HP的PA-8900、SGI的R12000A和SUN Microsystem公司的Ultra SPARC II等 。,2019/4/11,67,4.4 CISC和RISC的基本概念 RISC是在继承CISC的成功技术并克服CISC的缺点的基础上产生并发展起来的,大部分RISC具有下述一些特点: (1) 优先选取使用频率最高的一些简单指令,以及一些很有用但不复杂的指令。避免复杂指令。 (2) 指令

47、长度固定,指令格式种类少,寻址方式种类少。指令之间各字段划分比较一致,各字段的功能也比较规整。 (3) 只有取数/存数指令(load/store)访问存储器,其余指令的操作都在寄存器之间进行。 (4) CPU中通用寄存器数量相当多。算术逻辑运算指令的操作数都在通用寄存器中存取。 (5)大部分指令在一个或小于一个机器周期内完成。 (6)以硬布线控制逻辑为主,不用或少用微码控制。 (7)特别重视编译优化工作,以减少程序执行时间。,2019/4/11,68,4.4 CISC和RISC的基本概念 RISC 和CISC 是目前设计制造微处理器的两种典型技术,它们都试图在体系结构、操作运行、软件硬件、编译

48、时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,在很多方面差异很大,主要有: (1)指令系统:RISC 设计者把主要精力放在经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。在RISC 机器上实现特殊功能时,效率可能较低。但可利用流水技术和超标量技术加以改进和弥补。CISC 指令系统较丰富,有专用指令来完成特定功能,处理特殊任务效率较高 。,2019/4/11,69,RISC 和CISC的主要差异: (2)存储器操作:RISC 对存储器操作有限制,使控制简单化;而CISC 机器的存储器操作指令多,操作直接 。 (3)程序:RIS

49、C 汇编语言程序需较大内存空间,实现特殊功能时程序复杂,不易设计;CISC 汇编语言程序编程相对简单,复杂操作的程序设计相对容易,效率较高。 (4)中断:RISC 机器在一条指令执行的适当地方可以响应中断;而CISC 机器是在一条指令执行结束后响应中断。 (5)CPU:RISC CPU 包含较少的单元电路,面积小、功耗低;CISC CPU 包含丰富的电路单元,功能强、面积大、功耗大。,2019/4/11,70,RISC 和CISC的主要差异: (6)设计周期:RISC 微处理器结构简单,布局紧凑,设计周期短,易于采用最新技术;CISC 微处理器结构复杂,设计周期长。 (7)用户使用:RISC 微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。 (8)应用范围:由于RISC 指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机;而CI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1