计算机系统组成电子教案第4章.ppt
《计算机系统组成电子教案第4章.ppt》由会员分享,可在线阅读,更多相关《计算机系统组成电子教案第4章.ppt(104页珍藏版)》请在三一办公上搜索。
1、东南大学计算机学院,主讲教师:徐造林,计算机系统组成,第4章 指令系统,计算机指令 指令:就是要计算机执行某种操作的命令;有微指令、机器指令和宏指令之分。,计算机能执行的机器指令全体称为该机的指令系统 指令系统是软件编程的出发点和硬件设计的依据,它衡量机器硬件的功能,反映硬件对软件支持的程度。,4.1 指令系统概述 4.1.1 指令系统简介,指令系统主要是为计算机应用、编译程序和操作系统提供支持。,指令系统中指令的设计,需要从性能提高和带来的成本增加两个方面考虑。,1.指令系统组成,两种类型的指令,(1)非特权指令:这类指令主要供用户使用,又可分为功能性指令和非功能性指令两种。,(2)特权指令
2、:主要供系统程序员使用,一般不允许用户使用。其中包括I/O指令、停机等待指令、存储管理及保护指令、控制系统状态指令、诊断指令等。,2.对指令系统性能的要求,完备性:指令系统应功能齐全,给用户带来方便。,规整性:指令系统的正交性、均匀性、对称性。,兼容性:不同机种之间具有相同的基本结构和共同的基本指令集,目的是给软件资源的重复利用带来方便。,可扩充性:指令系统中要保留一定的指令字空间,以便在需要时进行指令系统的功能扩充。,4.1.2 指令的格式,指令一般的格式如下:,2.地址码 地址码指出指令中操作数所在的存储器地址或寄存器地址。,1.操作码 操作码指出指令应该执行什么性质的操作和具有何种功能;
3、n位操作码字段的指令系统最多能够表示2n条指令。,按指令包含的地址的个数可分:,有两种可能:一是无需任何操作数,如空操作指令、停机指令等。二是所需的操作数地址是默认的。,指令字长度,1.指令长度应为存储器基本字长的整数倍,2.指令字长应尽量短 指令短,可减少所需存储量和加快运行速度,但不能为了使指令短而影响指令系统的完备性和规整性。,计算机中CPU能直接处理的二进制的位数称为机器字长;,指令字长度:一个指令字包含的所有二进制代码的位数。有等长指令字结构和变长指令字结构。,指令字长度选取原则,指令助记符,表4.1 常用指令助记符,4.1.3 指令系统设计概论,任务是确定所有机器指令的格式、类型、
4、操作以及对操作数的访问方式。出发点是提高指令系统的性能/价格比。,1.指令系统设计的基本思路,基本设计思想:(1)确定计算机系统中的基本操作(包括操作系统和高级语言的)是由硬件实现还是由软件实现;,(2)按照尽量缩短平均码长、方便译码与执行的原则,设计指令字格式。,功能设计和指令格式设计,基本功能设计:确定指令系统包含哪些基本操作;,优化功能设计:从对目标程序、操作系统、高级语言的支持角度,确定哪些常用的、相对复杂的操作(指令串)可作为指令系统包含的操作(指令);,指令格式设计:设计出平均码长较短、便于译码和执行的指令字;,规整和优化设计:形成长度规整的、信息冗余较小的指令字。,指令所占存储空
5、间是否尽可能小;表现在指令中代码密度是否高、信息冗余量是否少;,2.衡量指令系统性能的指标,指令代码对应用需求的效率是否高,表现在非特权指令中功能性指令所占比例是否高、指令中操作数的访问范围满足应用需求的概率是否大、对操作系统和编译程序的支持程度是否高;,指令的译码速度、执行速度是否快。,4.2 操作数类型及存储方式 4.2.1 操作数类型,数值型数据;字符;地址;逻辑数据。,操作数类型在指令中的表示,指令中增加一些二进制位标识;可选择存储时标识或处理时标识。,操作数的4种类型,标识方法,(a)每个操作数标识,(b)所有操作数共一个标识,图4.1 二地址指令数据类型表示方法,通常将操作码与数据
6、类型标识合并成新的操作码。,4.2.2 操作数存储方式,操作数可以存储在指令、寄存器、堆栈和存储器中;,数据存储采用小端存储方式的处理机有Intel 80 x86/Pentium,DEC VAX,DEC Alpha等。,4.2.3 数据对齐方式,操作数应存储在存储器空间阵列的同一行;,信息按整数边界存储原则:数据长度为2n个字节,则该数据在存储器中最小存储地址的最低n位应为0。,图4.3 数据的边界对齐,4.2.4 堆栈存取方式,堆栈是一种按特定顺序访问的存储区;其特点是后进先出(LIFO)或先进后出(FILO)。,堆栈中存放的最上面数据的位置是不停变化的,该位置称为栈顶;,存取数据只能在栈顶
7、进行,不可中间插入或者从中间将数据取出。,堆栈和其它形式的存储部件之间的差别:(1)堆栈在数据存取时不需要地址,而其它存储部件在数据存取时需要地址;,堆栈操作只有入栈(push)和出栈(pop)两种。,(2)堆栈只能按先进后出或后进先出方式存取数据,而其它存储部件可以根据地址随机存取数据;,(3)堆栈不可以在同一位置连续写入或取出数据,而其它存储部件可以。,1.用移位寄存器实现堆栈,堆栈的实现方法,图4.4,2.内存中开辟堆栈区 选取固定的存储器单元为堆栈区,存储器堆栈的具体位置由程序员指定,空间大小由程序员分配;,1)自底向上生成堆栈(满递减和空递减):建栈时堆栈指针SP指向栈底下面一个单元
8、(栈底是堆栈中地址最大的单元);入栈操作(PUSH)步骤:i)SP-1SP ii)存入数据(SP)出栈操作(POP)步骤:i)(SP)内容读出 ii)SP+1SP,建栈时设置堆栈指针SP,指示栈顶位置。,图4.5 自底向上堆栈操作示例,2)自顶向下生成堆栈(满递增和空递增):堆栈建栈时堆栈指针SP指向栈底上面一个单元(栈底是堆栈中地址最小的单元),,入栈操作(PUSH)步骤:i)SP+1SP ii)存入数据(SP)出栈操作(POP)步骤:i)(SP)内容读出 ii)SP-1SP,两者指针变化方向不同。,例2 某存储器堆栈,栈底地址 Bottom=3000H,栈中已压入两个数据a和b,SP为堆栈
9、指针。(1)画出此时堆栈示意图。(2)现将数据 c,d 和 e 按顺序压入堆栈,且用累加器AC 进行数据交换,写出数据入栈步骤,画出数据入栈后的堆栈情况。(3)写出数据 e 出栈的操作步骤。,堆栈操作对临时保存和恢复某些数据极为简便。堆栈存取方式对应的操作有建栈、入栈和出栈三种,可对应指令系统中的三条指令。,堆栈存取方式在指令中的应用,解:(1)堆栈情况如下图所示,2FFFH,4.3 指令系统功能设计,指令集中包含的所有操作功能的集合称为指令系统的功能集,操作码是指令系统功能集中各种功能(操作)的编码。,4.3.1 功能类型分类,1.数据传送类指令,传送(MOV)指令:实现寄存器与寄存器间、常
10、数操作数与寄存器间的数据传送;,取数(LOAD或LD)指令:实现存储器到寄存器的数据传送;,存数(STORE或ST)指令:实现常数操作数或寄存器到存储器的数据传送;数据交换(XCHG)指令:实现两个数据之间的交换,可以看成是双向传送;,入栈(PUSH)指令:实现寄存器或存储器到堆栈的数据传送;出栈(POP)指令:实现堆栈到寄存器或存储器的数据传送。,指令主要包括加(ADD)、减(SUB)、乘(MUL)、除(DIV)指令,求反(NOT)、求补(NEG)指令,算术移位(SLA、SRA)、算术比较(COMP)指令等。,2.算术运算类指令,为区分数据类型和运算规则,形成扩展运算,如十进制运算、带进位运
11、算、双精度运算等指令。,指令主要包括逻辑与(AND)、逻辑或(OR)、逻辑异或(XOR)、逻辑非(NOT)、逻辑移位(SLL、SRL)、循环移位(ROL、ROR、ROLC、RORC)指令。,3.逻辑运算类指令,指令主要包括无条件转移(JMP)、条件转移(Jcc)、跳步(SKIP)、转子(CALL)、返主(RET)、循环(LOOP)指令等。,4.程序控制类指令,当前指令地址码给出直接地址或相对于当前指令位置的偏移地址,,实现CPU与外部设备间的数据交换、传送控制命令及取得设备状态等功能。,5.输入输出类指令,这类指令有输入(IN)和输出(OUT)两种指令。,指令包含字符串转换、字符串传送、字符串
12、比较、字符串查找、字符串抽取、字符串替换等指令。,6.字符串类指令,能够改变系统的工作状态、实现操作系统所需要的特殊功能。大多数为特权指令。,7.系统控制类指令,包括停机(HALT)、开中断(STI)、关中断(CLI)、自陷(Trap,即软中断INTn)、系统管理、存储管理等指令。,特定功能的专用指令;包含状态寄存器置位(STC、CLD等)、暂停(WAIT)、测试(TEST)、空操作(NOP)、中断返回(IRET)等指令。,8.其它指令,4.3.2 指令系统功能集设计,指令系统是计算机软、硬件主要交界面,直接反映了计算机的性能/价格。,复杂指令集计算机CISC(Complex Instruct
13、ion Set Computer)的提出。,计算机的硬件成本不断下降,软件成本不断上升;,强化指令功能,实现软件功能向硬件功能转移;,指令系统增加了越来越多功能强大的复杂命令,以便使机器指令的功能接近高级语言语句的功能。,指令系统越来越复杂的出发点:使目标程序得到优化:把原来要用一段程序才能完成的功能,只用一条指令来实现;,给高级语言提供更好的支持:改进指令系统,设置一些在语义上接近高级语言语句的指令,就可以减轻编译的负担,提高编译效率;,提供对操作系统的支持:操作系统日益发展,其功能也日趋复杂,要求指令系统提供越来越复杂的功能。,庞大的指令系统中,只有算术逻辑运算、数据传送、转移、子程序调用
14、等几十条基本指令才是常使用的,在程序中出现的概率占到80%以上;,复杂的指令系统带来的问题 计算机的结构也越来越复杂,不仅增加了计算机的研制周期和成本,而且难以保证其正确性,有时还可能降低系统的性能;,需要大量硬件支持的复杂指令的利用率却很低,造成了硬件资源的大量浪费。,各种高级语言的语义之间有很大差别;不可能设计出一种能对所有高级语言都能提供很好支持的指令系统。,精简指令集计算机RISC(Reduced Instruction Set Computer)的提出。,指令系统越复杂,包含的指令越多,编译时生成目标程序的方法也越多,对最终优化编译造成困难。,精简指令系统计算机特点 通过简化指令使计
15、算机的结构更加简单合理,从而提高机器的性能。,指令数目较少,一般都选用使用频度最高的一些简单指令;,指令长度固定,指令格式种类少,寻址方式种类少;,大多数指令可在一个机器周期内完成;,通用寄存器数量多,只有存数/取数指令访问存储器,而其余指令均在寄存器之间进行操作。,采用RISC技术 指令系统可以采用速度较快的硬连线逻辑来实现,且更适合于采用指令流水技术,可使指令的执行速度进一步提高;,指令数量少,固然使编译工作量加大,但由于指令系统中的指令都是精选的,编译时间少,反过来对编译程序的优化又是有利的;,CISC和RISC技术都在发展,两者都各有自己的优点和缺点。,结构更适合VLSI、并行处理,更
16、能够提高计算机的性能;,CISC与RISC之争论 70年代中期,IBM公司、斯坦福大学、加州大学伯克利分校等机构分别先后开始对CISC技术进行研究,其成果分别用于IBM、SUN、MIPS等公司的产品中;,八十年代中期,RISC技术蓬勃发展,先后出现了PowerPC、MIPSR4400、MC88000、Super Spare、Intel0860等高性能RISC芯片以及相应的计算机;,RISC也随着速度、芯片密度的不断提高,使RISC系统日趋复杂;,CISC机采用了部分RISC先进技术(强调指令流水线、分级Cache 和多设通用寄存器),其性能更加提高。,4.4 寻址方式,指令如何指定操作数或操作
17、数地址称为寻址方式。,确定指令系统的寻址方式时,须考虑以下几点:希望指令内所含地址尽可能短;希望能访问尽可能大的存储空间;寻址方法尽可能简单;,操作数的寻址方式主要解决的是操作数存放在指令、寄存器和存储器中的寻址问题。,在不改变指令的情况下,仅改变地址的实际值,从而能方便地访问数组、串、表格等较复杂数据。,4.4.1 常用的寻址方式,1.立即寻址 操作数在指令中;Data=A。,图4.6,2.直接寻址 指令直接给出操作数(有效)地址;即EA=A。,3.存储器间接寻址 操作数地址在内存中;即EA=(A)。,4.寄存器(直接)寻址,寄存器寻址有以下优点:CPU寄存器数量远小于内存单元,所以寄存器号
18、比内存地址短,因而寄存器寻址方式指令短;不用访存,指令执行速度快。,指令地址码字段给出存放操作数的寄存器编号;即data=(R)。,5寄存器间接寻址 操作数地址在指令指定的CPU某个寄存器中;EA=(R);如8086指令 MOV AL,BSI,6相对寻址 操作数地址为程序计数器PC中的内容与位移量A之和,即EA=(PC)+A。,图4.11 相对寻址,7基址寻址 把由指令中给出的地址(位移量)与CPU 中的某个基址寄存器相加而得到实际的操作数地址。,EA=(R)基址+A,图4.12 基址寻址,8寄存器变址寻址 操作数地址为变址寄存器中的内容与位移量之和;即EA=(R)变址+A。,变址寻址主要解决
19、程序内部的循环问题;基址寻址则要求基址寄存器的内容能提供整个主存范围的寻址能力;在多道程序运行环境下,实现程序的再定位。,9隐含寻址方式 指令没有明显地给出操作数地址,而在操作码中隐含着操作数地址。如操作数隐含在累加器,堆栈内。,10其它寻址方式 有的计算机指令系统中还有更复杂的寻址方式,如基址变址寻址、位寻址、块寻址、串寻址等等。,在使用机器时,不仅要了解该机总体上有哪些寻址方式,还应了解各指令具体有哪些寻址方式。,例.某计算机有变址寻址、间接寻址和相对寻址等寻址方式,设当前指令的地址码部分为001AH,正在执行的指令所在的地址为1F05H,变址寄存器中的内容为23A0H。请填充:,(1)当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 组成 电子 教案

链接地址:https://www.31ppt.com/p-6342672.html