




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章第二章 指令系统指令系统本章内容提要本章内容提要o 指令集结构概述指令集结构概述o 指令集结构的分类指令集结构的分类o 寻址方式寻址方式o 指令系统的设计和优化指令系统的设计和优化o 指令系统的发展和改进指令系统的发展和改进o 操作数的类型和大小操作数的类型和大小o MIPS指令系统结构指令系统结构第一节:指令集结构和设计技术第一节:指令集结构和设计技术o 指令集结构概述指令集结构概述o 指令集结构的分类指令集结构的分类1.指令集结构概述指令集结构概述o 指令集:指令集:n 一些指令的集合;一些指令的集合;n 每条指令都是每条指令都是直接直接由由CPU硬件执行。硬件执行。o 指令的表示方
2、法:指令的表示方法:n 二进制格式;二进制格式;n 物理存储空间组织方式是位、字节、字和多字等;物理存储空间组织方式是位、字节、字和多字等;n 当前的指令字长有:当前的指令字长有:16、32、64位;位;n 可变长格式和固定长度格式。可变长格式和固定长度格式。指令的特点指令的特点o 指令的操作十分简单,其操作由操作码编码表示。指令的操作十分简单,其操作由操作码编码表示。o 每个操作需要的操作数个数为每个操作需要的操作数个数为0-3个不等。个不等。n 操作数是一些存储单元的地址;操作数是一些存储单元的地址;n 典型的存储单元通常有:主存、寄存器、堆栈典型的存储单元通常有:主存、寄存器、堆栈和累加
3、器。和累加器。o 操作数地址隐含表示或显式表示。操作数地址隐含表示或显式表示。指令集与计算机的性能指令集与计算机的性能CLKCPUTICCPIT2. 指令集结构的分类指令集结构的分类o 一般来说,可以从如下五个因素考虑对计算一般来说,可以从如下五个因素考虑对计算机指令集结构进行分类,即:机指令集结构进行分类,即:n 在在CPU中操作数的存储方法;中操作数的存储方法;n 指令中显式表示的操作数个数;指令中显式表示的操作数个数;n 操作数的寻址方式;操作数的寻址方式;n 指令集所提供的操作类型;指令集所提供的操作类型;n 操作数的类型和大小。操作数的类型和大小。指令集结构的分类指令集结构的分类o
4、CPU中用来存储操作数的存储单元主要有:中用来存储操作数的存储单元主要有:n 堆栈;堆栈;n 累加器;累加器;n 一组寄存器。一组寄存器。o 指令中的操作数可以被明确地显式给出,也指令中的操作数可以被明确地显式给出,也可以按照某种约定隐式地给出。可以按照某种约定隐式地给出。指令集结构的分类指令集结构的分类o Z=X+Y表达式在这三种类型指令集结构上的实现表达式在这三种类型指令集结构上的实现方法方法堆栈堆栈累加器累加器寄存器寄存器 (寄存器寄存器-存储器存储器)寄存器寄存器(寄存器寄存器-寄存器寄存器)PUSH XPUSH YADDPOP ZLOAD XADD YStore ZLOAD R1,X
5、ADD R1,YStore R1,ZLOAD R1,XLOAD R2,YADD R3,R1,R2Store R3,Z指令集结构的分类指令集结构的分类o 早期的大多数机器都是采用堆栈型或累加器型指令早期的大多数机器都是采用堆栈型或累加器型指令集结构,但是自集结构,但是自1980年以来的大多数机器均采用年以来的大多数机器均采用的是寄存器型指令集结构。主要有两个方面的原因的是寄存器型指令集结构。主要有两个方面的原因:n 集成电路技术飞速发展集成电路技术飞速发展n 寄存器和寄存器和CPU内部其它存储单元一样,要比存储器快内部其它存储单元一样,要比存储器快n 对编译器而言,可以更容易有效地分配和使用寄存
6、器对编译器而言,可以更容易有效地分配和使用寄存器通用寄存器型指令集结构的分类通用寄存器型指令集结构的分类o 通用寄存器型指令集结构的主要优点通用寄存器型指令集结构的主要优点:n 在表达式求值方面,比其它类型指令集结构都具有在表达式求值方面,比其它类型指令集结构都具有更大的灵活性;更大的灵活性;n 寄存器可以用来存放变量;寄存器可以用来存放变量;o 减少存储器的通信量,加快程序的执行速度(因减少存储器的通信量,加快程序的执行速度(因为寄存器比存储器快)为寄存器比存储器快)o 可以用更少的地址位来寻址寄存器,从而可以有可以用更少的地址位来寻址寄存器,从而可以有效改进程序的目标代码大小。效改进程序的
7、目标代码大小。通用寄存器型指令集结构的分类通用寄存器型指令集结构的分类o 两种主要的指令特性能够将通用寄存器型指两种主要的指令特性能够将通用寄存器型指令集结构(令集结构(GPR)进一步细分。)进一步细分。n ALU指令到底有两个或是三个操作数?指令到底有两个或是三个操作数?n 在在ALU指令中,有多少个操作数可以用存储器指令中,有多少个操作数可以用存储器来寻址,也即有多少个存储器操作数?来寻址,也即有多少个存储器操作数?通用寄存器型指令集结构的分类通用寄存器型指令集结构的分类ALU指令中指令中存储器操作存储器操作数的个数数的个数ALU指令中指令中操作数的最多操作数的最多个数个数结构结构类型类型
8、机器实例机器实例03RRMIPS, SPARC, Alpha, PowerPC, ARM12RMIBM 360/370, Intel 80 x86, Motorola 68003RMIBM 360/37022MMVAX33MMVAX通用寄存器型指令集结构的分类通用寄存器型指令集结构的分类o 可以将当前大多数通用寄存器型指令集结构可以将当前大多数通用寄存器型指令集结构进一步细分为三种类型:进一步细分为三种类型:n 寄存器寄存器型寄存器寄存器型 (RR:register-register)n 寄存器存储器型寄存器存储器型 (RM:register-memory)n 存储器存储器型存储器存储器型 (
9、MM:memory-memory)三种通用寄存器型指令集结构的优缺点三种通用寄存器型指令集结构的优缺点o 寄存器寄存器型(寄存器寄存器型(0,3)n 优点:优点:o 指令字长固定,指令结构简洁,是一种简单的代指令字长固定,指令结构简洁,是一种简单的代码生成模型,各种指令的执行时钟周期数相近码生成模型,各种指令的执行时钟周期数相近。n 缺点:缺点:o 与指令中含存储器操作数的指令系统结构相比,与指令中含存储器操作数的指令系统结构相比,指令条数多,目标代码不够紧凑,因而程序占用指令条数多,目标代码不够紧凑,因而程序占用的空间比较大的空间比较大。三种通用寄存器型指令集结构的优缺点三种通用寄存器型指令
10、集结构的优缺点o 寄存器存储器型(寄存器存储器型(1,2)n 优点:优点:o 可以在可以在ALU指令中直接对存储器操作数进行引用,而不必指令中直接对存储器操作数进行引用,而不必先用先用load指令进行加载,容易对指令进行编码,目标代码指令进行加载,容易对指令进行编码,目标代码比较紧凑比较紧凑。n 缺点:缺点:o 由于有一个操作数的内容将被破坏,所以指令中的两个操由于有一个操作数的内容将被破坏,所以指令中的两个操作数不对称。在一条指令中同时对寄存器操作数和存储器作数不对称。在一条指令中同时对寄存器操作数和存储器操作数进行编码,有可能限制指令所能够表示的寄存器个操作数进行编码,有可能限制指令所能够
11、表示的寄存器个数。指令的执行时钟周期因操作数的来源(寄存器或存储数。指令的执行时钟周期因操作数的来源(寄存器或存储器)的不同而差别比较大器)的不同而差别比较大。三种通用寄存器型指令集结构的优缺点三种通用寄存器型指令集结构的优缺点o 存储器存储器型(存储器存储器型(3,3)n 优点:优点:o 目标代码最紧凑,不需要设置存储器来保存变量目标代码最紧凑,不需要设置存储器来保存变量。n 缺点:缺点:o 指令字长变换很大,特别是指令字长变换很大,特别是3个操作数指令。而个操作数指令。而且每条指令且每条指令每条指令的执行时钟周期数也大不一每条指令的执行时钟周期数也大不一样样。对存储器的频率访问会使存储器成
12、为瓶颈。对存储器的频率访问会使存储器成为瓶颈。这种类型的指令系统现在已经不用了这种类型的指令系统现在已经不用了。三种类型指令集结构的优缺点三种类型指令集结构的优缺点指令集结指令集结构类型构类型优点优点缺点缺点寄存器寄存器-寄寄存器(存器(0,3)指令字长固定,指令结构简洁,是一种简单指令字长固定,指令结构简洁,是一种简单的代码生成模型,各种指令的执行时钟周期的代码生成模型,各种指令的执行时钟周期数相近数相近与指令中含存储器操作数的指令系统结构相比,与指令中含存储器操作数的指令系统结构相比,指令条数多,目标代码不够紧凑,因而程序占指令条数多,目标代码不够紧凑,因而程序占用的空间比较大用的空间比较
13、大寄存器寄存器-存存储器型储器型(1,2)可以在可以在ALU指令中直接对存储器操作数进行指令中直接对存储器操作数进行引用,而不必先用引用,而不必先用load指令进行加载,容易指令进行加载,容易对指令进行编码,目标代码比较紧凑对指令进行编码,目标代码比较紧凑由于有一个操作数的内容将被破坏,所以指令由于有一个操作数的内容将被破坏,所以指令中的两个操作数不对称。在一条指令中同时对中的两个操作数不对称。在一条指令中同时对寄存器操作数和存储器操作数进行编码,有可寄存器操作数和存储器操作数进行编码,有可能限制指令所能够表示的寄存器个数。指令的能限制指令所能够表示的寄存器个数。指令的执行时钟周期因操作数的来
14、源(寄存器或存储执行时钟周期因操作数的来源(寄存器或存储器)的不同而差别比较大器)的不同而差别比较大存储器存储器-存存储器(储器(2,3)或(或(3,3)目标代码最紧凑,不需要设置存储器来保存目标代码最紧凑,不需要设置存储器来保存变量变量指令字长变换很大,特别是指令字长变换很大,特别是3个操作数指令。而个操作数指令。而且每条指令每条指令的执行时钟周期数也大不且每条指令每条指令的执行时钟周期数也大不一样。对存储器的频率访问会使存储器成为瓶一样。对存储器的频率访问会使存储器成为瓶颈。这种类型的指令系统现在已经不用了颈。这种类型的指令系统现在已经不用了指令集结构设计概观指令集结构设计概观第二节:指令
15、集结构和第二节:指令集结构和MIPS指令集指令集o 寻址方式寻址方式o 指令系统的设计和优化指令系统的设计和优化o 指令系统的发展和改进指令系统的发展和改进o 操作数的类型和大小操作数的类型和大小3.寻址技术寻址技术o 在通用寄存器型指令集结构中,一般是利在通用寄存器型指令集结构中,一般是利用寻址方式指明指令中的用寻址方式指明指令中的操作数操作数是一个是一个常常数数、一个、一个寄存器寄存器操作数,抑或是一个操作数,抑或是一个存储存储器操作数器操作数。寻址技术寻址技术o 寻址实际上是从形式地址到实际地址的转换。寻址实际上是从形式地址到实际地址的转换。形式地址由指令描述,实际地址也称为形式地址由指
16、令描述,实际地址也称为有效有效地址地址。o 有效地址指明的是存储器单元的地址或寄存有效地址指明的是存储器单元的地址或寄存器地址。器地址。o 必须加速有效地址生成。必须加速有效地址生成。常用的一些操作数寻址方式常用的一些操作数寻址方式o 寄存器寻址寄存器寻址n 指令实例:指令实例:Add R4 , R3n 含义:含义:RegsR4RegsR4RegsR3o 立即值寻址立即值寻址n 指令实例:指令实例:Add R4 , #3n 含义:含义:RegsR4RegsR43常用的一些操作数寻址方式常用的一些操作数寻址方式o 偏移寻址偏移寻址n 指令实例:指令实例:Add R4 , 100(R1)n 含义:
17、含义:o RegsR4RegsR4Mem100+RegsR1o 寄存器间接寻址寄存器间接寻址n 指令实例:指令实例:Add R4 , (R1)n 含义:含义:o RegsR4RegsR4MemRegsR1常用的一些操作数寻址方式常用的一些操作数寻址方式o 索引寻址索引寻址n 指令实例:指令实例:Add R3 , (R1 + R2)n 含义:含义:o RegsR3RegsR3MemRegsR1+RegsR2o 直接寻址或绝对寻址直接寻址或绝对寻址n 指令实例:指令实例:Add R1 , (1001)n 含义:含义:o RegsR1RegsR1Mem1001常用的一些操作数寻址方式常用的一些操作数
18、寻址方式o 存储器间接寻址存储器间接寻址n 指令实例:指令实例:Add R1 , (R3)n 含义:含义:o RegsR1RegsR1MemMemRegsR3o 自增寻址自增寻址n 指令实例:指令实例:Add R1 , (R2)+n 含义:含义:o RegsR1RegsR1MemRegsR2o RegsR2RegsR2d常用的一些操作数寻址方式常用的一些操作数寻址方式o 自减寻址自减寻址n 指令实例:指令实例:Add R1, -(R2)n 含义:含义:o RegsR2RegsR2do RegsR1RegsR1+MemRegsR2o 缩放寻址缩放寻址n 指令实例:指令实例:Add R1 , 10
19、0(R2)R3n 含义:含义:o RegsR1RegsR1Mem100RegsR2RegsR3*d常用的一些操作数寻址方式常用的一些操作数寻址方式偏移寻址偏移寻址立即址寻址立即址寻址立即址寻址立即址寻址寻址方式的表示方法寻址方式的表示方法o CPU在执行指令的时候,首先对指令进行在执行指令的时候,首先对指令进行译码,然后根据译码结果确定指令所表示的译码,然后根据译码结果确定指令所表示的操作,并根据指令所指定的寻址方式迅速定操作,并根据指令所指定的寻址方式迅速定位指令执行所需要的操作数。寻址方式的表位指令执行所需要的操作数。寻址方式的表示在指令集格式设计中有着极其重要的地位示在指令集格式设计中有
20、着极其重要的地位。o 通常,在指令中有两种通常,在指令中有两种表示寻址方式的方法表示寻址方式的方法o 指令集格式设计中选择哪种表示寻址方式的指令集格式设计中选择哪种表示寻址方式的方法,主要由指令集结构所采用的寻址方式方法,主要由指令集结构所采用的寻址方式种类及其适用范围,以及操作码与寻址方式种类及其适用范围,以及操作码与寻址方式之间的独立程度来决定。之间的独立程度来决定。o 如某些指令集结构的指令有如某些指令集结构的指令有15个操作数,每个操作个操作数,每个操作数有数有10种寻址方式,对于这种大规模的操作数和寻址种寻址方式,对于这种大规模的操作数和寻址方式组合,如果将寻址方式表示在操作码中显然
21、不合适方式组合,如果将寻址方式表示在操作码中显然不合适,因为它不仅增加了指令条数,导致指令的多样性,而,因为它不仅增加了指令条数,导致指令的多样性,而且增加了且增加了CPU对指令译码的难度。所以在这种情况下对指令译码的难度。所以在这种情况下通常采用增设地址描述符的方法来描述寻址方式。通常采用增设地址描述符的方法来描述寻址方式。 o 然而,对诸如然而,对诸如Load/Store类型指令集结构的指令而类型指令集结构的指令而言,由于只有言,由于只有13个操作数,而且只有有限的几种寻个操作数,而且只有有限的几种寻址方式。所以在这些指令集结构中,将寻址方式编码于址方式。所以在这些指令集结构中,将寻址方式
22、编码于操作码中是十分合适的。操作码中是十分合适的。4.指令系统的设计和优化指令系统的设计和优化o 一种指令集结构中的指令到底要支持哪些类型的操一种指令集结构中的指令到底要支持哪些类型的操作呢?这就是所谓的指令集结构功能设计问题。作呢?这就是所谓的指令集结构功能设计问题。o 在考虑哪些由硬件实现有三个因数:在考虑哪些由硬件实现有三个因数: 速度速度,成本,灵活性,成本,灵活性o 指令系统设计的基本要求指令系统设计的基本要求 完整性,规整性,正交性,高效性,兼容性完整性,规整性,正交性,高效性,兼容性指令集操作的分类指令集操作的分类算术和逻辑运算算术和逻辑运算 整数的算术和逻辑操作:加、减、与、或
23、整数的算术和逻辑操作:加、减、与、或等等数据传输数据传输Load/Store控制控制分支、跳转、过程调用和返回、自陷等分支、跳转、过程调用和返回、自陷等系统系统操作系统调用、虚拟存储器管理等操作系统调用、虚拟存储器管理等浮点浮点浮点操作:加、乘等浮点操作:加、乘等十进制十进制十进制加、十进制乘、十进制到字符的转十进制加、十进制乘、十进制到字符的转换换字符串字符串字符串移动、字符串比较、字符串搜索等字符串移动、字符串比较、字符串搜索等图形图形像素操作、压缩像素操作、压缩/解压操作等解压操作等控制指令控制指令o “跳转跳转”(Jump):当控制指令为无条件):当控制指令为无条件改变控制流时,我们称
24、之为改变控制流时,我们称之为“跳转跳转”。o “分支分支”(Branch):而当控制指令是有):而当控制指令是有条件改变控制流时,我们称之为条件改变控制流时,我们称之为“分支分支”。o 控制流程的改变情况:控制流程的改变情况:n 条件分支(条件分支(conditional branch););n 跳转(跳转(jump););n 过程调用(过程调用(call););n 过程返回(过程返回(return)。)。控制指令的使用频率控制指令的使用频率条件分支指令的表示条件分支指令的表示分支条件表示分支条件表示优优 点点缺缺 点点条件码条件码(CC):):在程序的控制下,在程序的控制下,由由ALU操作设
25、置操作设置特殊的位特殊的位可以自由设可以自由设置分支条件置分支条件必须从一条指令将分支条必须从一条指令将分支条件信息传送到分支指令,件信息传送到分支指令,所以所以CC是额外状态,条是额外状态,条件码限制了指令执行顺序件码限制了指令执行顺序 条件寄存器条件寄存器:根:根据比较结果测试据比较结果测试条件寄存器条件寄存器简单简单占用了一个寄存器占用了一个寄存器比较分支比较分支:比较:比较操作是分支指令操作是分支指令的一部分,比较的一部分,比较受限制受限制一条指令完一条指令完成了两条指成了两条指令的功能令的功能分支指令的操作增多分支指令的操作增多分支目标地址的表示分支目标地址的表示过程调用和返回的状态
26、保存过程调用和返回的状态保存o “调用者保存调用者保存”(caller saving)方法:如果采)方法:如果采用调用者保存策略,那么在一个调用者调用别的过用调用者保存策略,那么在一个调用者调用别的过程时,必须保存程时,必须保存调用者所要保存的寄存器调用者所要保存的寄存器,以备调,以备调用结束返回后,能够再次访问调用者。用结束返回后,能够再次访问调用者。o “被调用者保存被调用者保存”(callee saving)方法:如)方法:如果采用被调用者保存策略,那么果采用被调用者保存策略,那么被调用被调用的过程必须的过程必须保存它要用保存它要用的寄存器的寄存器,保证不会破坏过程调用者的,保证不会破坏
27、过程调用者的程序执行环境,并在过程调用结束返回时,恢复这程序执行环境,并在过程调用结束返回时,恢复这些寄存器的内容。些寄存器的内容。两种保存策略的比较两种保存策略的比较 保保存存状状态态 过过程程P P1 1 执执行行 过过程程P P2 2 恢恢复复状状态态 调调用用 保保存存状状态态 过过程程P P1 1 过过程程P P2 2 恢恢复复状状态态 调调用用 返返回回 返返回回 保保存存状状态态 过过程程P P3 3 恢恢复复状状态态 调调用用 返返回回 执执行行 R R1 1 R R1 1 R R1 1 R R1 1 R R1 1 R R1 1 ( (a a) ) 调调用用者者保保存存 ( (
28、b b) ) 被被调调用用者者保保存存 指令操作码的优化指令操作码的优化o 1、等长扩展码、等长扩展码o 2、定长操作码、定长操作码特点:特点: 1、编码规整,使译码机构简单、编码规整,使译码机构简单 2、当使用频度不一样时,不利于等效平均编、当使用频度不一样时,不利于等效平均编码长度的减少,从而不利于信息的传递效率码长度的减少,从而不利于信息的传递效率 定长法用于定长法用于RISC中中o 3、哈夫曼编码、哈夫曼编码 1、基本思想、基本思想 (1)频度高的指令用短的编码)频度高的指令用短的编码 (2)频度低的指令用较长的编码)频度低的指令用较长的编码o 2、绘制要点、绘制要点Pi为使用频度为使
29、用频度平均码长平均码长=PixLi5.指令系统的发展和改进指令系统的发展和改进o 一个方向是强化指令功能,实现软件功能向硬件功一个方向是强化指令功能,实现软件功能向硬件功能转移,基于这种指令集结构而设计实现的计算机能转移,基于这种指令集结构而设计实现的计算机系统称为系统称为复杂指令集计算机复杂指令集计算机(CISC)。)。o 八十年代发展起来的八十年代发展起来的精简指令集计算机精简指令集计算机(RISC),),其目的是尽可能地降低指令集结构的复杂性,以达其目的是尽可能地降低指令集结构的复杂性,以达到简化实现,提高性能的目的。到简化实现,提高性能的目的。CISC指令集功能设计指令集功能设计o 面
30、向目标程序增强指令功能面向目标程序增强指令功能n 提高运算型指令功能;提高运算型指令功能;n 提高传送指令功能;提高传送指令功能;n 增加程序控制指令功能。增加程序控制指令功能。o 面向高级语言和编译程序改进指令系统面向高级语言和编译程序改进指令系统n 增加对高级语言和编译系统支持的指令功能;增加对高级语言和编译系统支持的指令功能;n 高级语言计算机指令系统。高级语言计算机指令系统。CISC指令集功能设计指令集功能设计o 面向操作系统的优化实现改进指令系统面向操作系统的优化实现改进指令系统n 主要表现在对中断处理、进程管理、存储管理和主要表现在对中断处理、进程管理、存储管理和保护、系统工作状态
31、的建立与切换等的支持。保护、系统工作状态的建立与切换等的支持。n 可以设置支持系统工作状态和访问方式转移的指可以设置支持系统工作状态和访问方式转移的指令、支持进程转移的指令、支持进程同步和互斥令、支持进程转移的指令、支持进程同步和互斥的指令等措施,达到优化实现操作系统的目的。的指令等措施,达到优化实现操作系统的目的。RISC指令集功能设计指令集功能设计o CISC结构存在着如下缺点:结构存在着如下缺点:n 在在CISC结构的指令系统中,各种指令的使用频结构的指令系统中,各种指令的使用频率相差悬殊。据统计,率相差悬殊。据统计,有有20的指令使用频率的指令使用频率最大,占运行时间的最大,占运行时间
32、的80。也就是说,。也就是说,有有80的指令在的指令在20的运行时间内才会用到的运行时间内才会用到。n CISC结构指令系统的复杂性带来了计算机体系结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。而且还容易造成设计错误。RISC指令集功能设计指令集功能设计n CISC结构指令系统的复杂性给结构指令系统的复杂性给VLSI设计增加设计增加了很大负担,不利于单片集成。了很大负担,不利于单片集成。n CISC结构的指令系统中,许多复杂指令需要很结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。
33、复杂的操作,因而运行速度慢。n 在在CISC结构的指令系统中,由于各条指令的功结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。构技术(如流水技术)来提高系统的性能。RISC指令集功能设计指令集功能设计执行频率排序执行频率排序80X86指令指令指令执行频率指令执行频率1Load222条件分支条件分支203比较比较164Store125加加86与与67减减58寄存器寄存器间数据移动寄存器寄存器间数据移动49调用调用110返回返回1合合 计计96RISC指令集功能设计指令集功能设计o 进行进行RI
34、SC计算机指令集结构的功能设计时,计算机指令集结构的功能设计时,我们并不能简单地着眼于精简指令系统上,我们并不能简单地着眼于精简指令系统上,更重要的目的是使得更重要的目的是使得计算机体系结构计算机体系结构更加更加简简单单、更加、更加合理合理和更加和更加有效有效,克服,克服CISC结构结构的缺点,使机器速度更快,程序运行时间缩的缺点,使机器速度更快,程序运行时间缩短,从而提高计算机系统的性能。短,从而提高计算机系统的性能。RISC指令集功能设计原则指令集功能设计原则o 选取使用频率最高的指令,并补充一些最有选取使用频率最高的指令,并补充一些最有用的指令;用的指令;o 每条指令的功能应尽可能简单,
35、并在一个机每条指令的功能应尽可能简单,并在一个机器周期内完成;器周期内完成;o 所有指令长度均相同;所有指令长度均相同;o 只有只有load和和store操作指令才访问存储器,操作指令才访问存储器,其它指令操作均在寄存器之间进行;其它指令操作均在寄存器之间进行;o 以简单有效的方式支持高级语言。以简单有效的方式支持高级语言。6. 操作数的类型和大小操作数的类型和大小o 操作数类型和操作数表示也操作数类型和操作数表示也是软硬件主要界是软硬件主要界面之一面之一。o 操作数类型操作数类型是面向应用、面向软件系统所处是面向应用、面向软件系统所处理的各种数据结构。理的各种数据结构。o 操作数表示操作数表
36、示是硬件结构能够识别、指令系统是硬件结构能够识别、指令系统可以直接调用的那些结构。可以直接调用的那些结构。操作数的类型和大小操作数的类型和大小o 操作数表示操作数表示所表征的所表征的那些操作数类型,是那些操作数类型,是应用软件和系统软件应用软件和系统软件所处理的操作数类型所处理的操作数类型的子集。的子集。操作数的类型和大小操作数的类型和大小o 确定操作数表示实际上也是软硬件取舍折衷的问题确定操作数表示实际上也是软硬件取舍折衷的问题n 计算机即使只具有最简单的操作数表示,如只有整计算机即使只具有最简单的操作数表示,如只有整数(定点)表示法,也可以通过软件方法处理各种数(定点)表示法,也可以通过软
37、件方法处理各种复杂的操作数类型,但是这样会大大降低系统的效复杂的操作数类型,但是这样会大大降低系统的效率。率。n 如果各种复杂的操作数类型均包含在操作数表示之如果各种复杂的操作数类型均包含在操作数表示之中,无疑会大大提高系统的效率,但是所花费的硬中,无疑会大大提高系统的效率,但是所花费的硬件代价也很高。件代价也很高。操作数的类型和大小操作数的类型和大小o 整数(定点)整数(定点):二进制补码表示;其大小可以是字:二进制补码表示;其大小可以是字节(节(8位)、半字(位)、半字(16位)或单字(位)或单字(32位)。位)。o 浮点浮点:可以分为:可以分为单精度浮点单精度浮点(单字大小)和(单字大小
38、)和双精度双精度浮点浮点(双字大小)。当前普遍采用的是(双字大小)。当前普遍采用的是IEEE 754浮点操作数表示标准。浮点操作数表示标准。o 字符和字符串字符和字符串:8位位ASCII码表示。码表示。操作数的类型和大小操作数的类型和大小o 十进制:通常采用十进制:通常采用 “压缩十进制压缩十进制”或或“二进制编二进制编码十进制(码十进制(BCD)”表示。压缩十进制数据表示表示。压缩十进制数据表示用用4位编码数字位编码数字09,然后将两个十进制数字压缩,然后将两个十进制数字压缩在一个字节中存储。如果将十进制数字直接用字符在一个字节中存储。如果将十进制数字直接用字符串来表示,就叫做串来表示,就叫
39、做“非压缩十进制非压缩十进制”表示法。表示法。o 提供给压缩十进制表示法和非压缩十进制表示法两提供给压缩十进制表示法和非压缩十进制表示法两者之间的相互转换的操作分别称为者之间的相互转换的操作分别称为“压缩压缩”与与“解解压压”操作。操作。操作数的类型和大小操作数的类型和大小o 操作数类型的表示主要有如下两种方法:操作数类型的表示主要有如下两种方法:n 操作数的类型可以操作数的类型可以由操作码的编码指定由操作码的编码指定,这也,这也是最常见的一种方法;是最常见的一种方法;n 数据可以附上数据可以附上由硬件解释的标记由硬件解释的标记,由这些标记,由这些标记指定操作数的类型,从而选择适当的运算。然指
40、定操作数的类型,从而选择适当的运算。然而有标记数据的机器却非常少见(执行过程中而有标记数据的机器却非常少见(执行过程中动态检测标识符,动态过程开销大)。动态检测标识符,动态过程开销大)。操作数的类型和大小操作数的类型和大小o 一般的操作数类型大小选择主要有:字节、半字一般的操作数类型大小选择主要有:字节、半字(16位)、单字(位)、单字(32位)、和双字(位)、和双字(64位)。位)。7.MIPS指令系统结构指令系统结构o Load/Store型指令集结构型指令集结构o MIPS是一种是一种多元指令集结构多元指令集结构n体现了当今多种机器(体现了当今多种机器(AMD29K、DEC statio
41、n 3100、HP850、IBM 801、Intel i860、MIPS M/120A、MIPS M/1000、Motorola 88k、RISC I、SGI4D/60、SPARC station 1、Sun 4/110、Sun 4/260等)的指令集结构的共同特点。等)的指令集结构的共同特点。n还将会体现未来一些机器的指令集结构的特点。还将会体现未来一些机器的指令集结构的特点。MIPS指令集结构指令集结构o 具有一个简单的具有一个简单的Load/Store指令集;指令集;o 注重指令流水效率;注重指令流水效率;o 简化指令的译码;简化指令的译码;o 高效支持编译器。高效支持编译器。MIPS指
42、令集结构:指令集结构:寄存器寄存器R0R1R2R3R4R5R6R7R8R9R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31MIPS指令集结构:指令集结构:寄存器寄存器F0F1F2F3F4F5F6F7F8F9F10F11F12F13F14F15F16F17F18F19F20F21F22F23F24F25F26F27F28F29F30F31MIPS指令集结构:指令集结构:数据类型数据类型o 整型数据:整型数据:n 8位、位、16位、位、32位。位。o 浮点数据:浮点数据:n 32位单精度浮点;位单精度浮点;n 64
43、位双精度浮点;位双精度浮点;n IEEE 754标准。标准。0000000000000000000000000110010011111111111111111001100001100100MIPS指令集结构:指令集结构:寻址方式寻址方式o 寄存器寻址;如寄存器寻址;如ADD R1,R2,R3o 立即值寻址;如立即值寻址;如ADD R1,R2,#42o 偏移寻址;偏移寻址; 如如ADD R1,R2,40(R3)o 寄存器间接寻址。存储器地址宽度为寄存器间接寻址。存储器地址宽度为32位。位。 如如ADD R1,R2,0(R3)MIPS指令集结构:指令集结构:指令格式指令格式 I I I I类类类类
44、型型型型指指指指令令令令 6 6 6 6 5 5 5 5 5 5 5 5 1 1 1 16 6 6 6 操操操操作作作作码码码码 r r r rs s s s1 1 1 1 r r r rd d d d 立立立立即即即即值值值值 字字字字节节节节、半半半半字字字字、字字字字的的的的载载载载入入入入和和和和存存存存储储储储; r r r rd d d d r r r rs s s s1 1 1 1 o o o op p p p 立立立立即即即即值值值值。 MIPS指令集结构:指令集结构:指令格式指令格式 R R R R 类类类类型型型型指指指指令令令令 6 6 6 6 5 5 5 5 5 5 5
45、 5 5 5 5 5 1 1 1 11 1 1 1 操操操操作作作作码码码码 r r r rs s s s1 1 1 1 r r r rs s s s2 2 2 2 r r r rd d d d F F F Fu u u un n n nc c c c 寄寄寄寄存存存存器器器器寄寄寄寄存存存存器器器器 A A A AL L L LU UU U 操操操操作作作作:r r r rd d d dr r r rs s s s1 1 1 1 f f f fu u u un n n nc c c c r r r rs s s s2 2 2 2; 函函函函数数数数对对对对数数数数据据据据的的的的操操操操作作
46、作作进进进进行行行行编编编编码码码码:加加加加、减减减减、; 对对对对特特特特殊殊殊殊寄寄寄寄存存存存器器器器的的的的读读读读/ / / /写写写写和和和和移移移移动动动动。 MIPS指令集结构:指令集结构:指令格式指令格式 J J J J 类类类类型型型型指指指指令令令令 6 6 6 6 2 2 2 26 6 6 6 操操操操作作作作码码码码 与与与与 P P P PC C C C 相相相相加加加加的的的的偏偏偏偏移移移移量量量量 跳跳跳跳转转转转,跳跳跳跳转转转转并并并并链链链链接接接接,从从从从异异异异常常常常(e e e ex x x xc c c ce e e ep p p pt t
47、 t ti i i io o o on n n n)处处处处自自自自陷陷陷陷和和和和返返返返回回回回。 MPIS指令集结构:指令集结构:操作类型操作类型o Load和和Store操作;操作;o ALU操作;操作;o 分支和跳转操作;分支和跳转操作;o 浮点操作。浮点操作。MIPS指令集结构:指令集结构:操作类型操作类型o 符号符号“”表示数据传送操作,其后附带一表示数据传送操作,其后附带一个下标个下标n,也即,也即“n” 表示传送一个表示传送一个n位位数据。数据。o 符号符号“#”用来表示两个域的串联操作,用来表示两个域的串联操作,它可以出现在数据传送操作的任何一边。它可以出现在数据传送操作的
48、任何一边。MIPS指令集结构:指令集结构:操作类型操作类型o 域的下标域的下标用来表明从该域中选择某一位。域用来表明从该域中选择某一位。域中位的标记是从最高位开始标记,并且起始中位的标记是从最高位开始标记,并且起始标记为标记为0。下标可以是一个单独的数字,如。下标可以是一个单独的数字,如RegsR40表示选择寄存器表示选择寄存器R4中内容的中内容的符号位;下标也可以是一个范围,如符号位;下标也可以是一个范围,如RegsR324.31表示选择寄存器表示选择寄存器R3中内容中内容的最低一个字节。的最低一个字节。MIPS指令集结构:指令集结构:操作类型操作类型o 上标上标表示复制一个域,如表示复制一
49、个域,如024可以得到一个可以得到一个24位全为位全为0的一个域。的一个域。o 变量变量Mem用来表示存储器中的一个数组,用来表示存储器中的一个数组,存储器按照字节寻址,它可以传送任何数目存储器按照字节寻址,它可以传送任何数目的字节。的字节。MIPS指令集结构:指令集结构:操作类型操作类型RegsR1016.31 16 (MemRegsR80)8 # MemRegsR80000000000000000000000000000000010000101R8100001011111111111111111100001010000000000000000 1111111110000101R10MIPS
50、指令集结构:指令集结构:操作类型操作类型o Load和和Store操作操作:可以对:可以对MIPS的所有的所有通用寄存器和浮点寄存器进行通用寄存器和浮点寄存器进行Load(载入)(载入)和和Store(储存)操作,(储存)操作,但是对通用寄存器但是对通用寄存器R0的的Load操作没有任何效果操作没有任何效果。MIPS指令集结构:指令集结构:操作类型操作类型指令实例指令实例指令名称指令名称含含 义义LW R1 , 30 (R2)载入整型字载入整型字RegsR1 32 Mem30+RegsR2LW R1 , 1000 (R0) 载入整型字载入整型字RegsR1 32 Mem1000+0LB R1
51、, 40 (R3)载入字节载入字节RegsR1 32 (Mem40+RegsR30)24 # Mem40+RegsR3LBU R1 , 40 (R3)载入无符号载入无符号字节字节RegsR1 32 024 # Mem40+RegsR3LH R1 , 40 (R3)载入整型半载入整型半字字RegsR1 32 (Mem40+RegsR30)16 # Mem40+RegsR3# Mem41+RegsR3LF F0 , 50 (R3)载入单精度载入单精度浮点浮点RegsF0 32 Mem50+RegsR3LD F0 , 50 (R2)载入双精度载入双精度浮点浮点RegsF0 # RegsF1 64 M
52、em50+RegsR2SW 500 (R4) , R3储存整型字储存整型字Mem500+RegsR4 32 RegsR3SF 40 (R3) , F0储存单精度储存单精度浮点浮点Mem40+RegsR3 32 RegsF0SD 40 (R3) , F0储存双精度储存双精度浮点浮点Mem40+RegsR3 32 RegsF0Mem44+RegsR3 32 RegsF1SH 502 (R2), R31储存整型半储存整型半字字Mem502+RegsR2 16 RegsR3116.31SB 41 (R3) , R2储存整型字储存整型字节节Mem41+RegsR3 8 RegsR224.31MIPS指令集结构:指令集结构:操作类型操作类型o ALU操作操作:在:在MIPS中,所有的中,所有的ALU指令都是寄指令都是寄存器寄存器型指令,其运算包含了简单的算术和存器寄存器型指令,其运算包含了简单的算术和逻辑运算,如加、减、逻辑运算,如加、减、A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度浙江省二级造价工程师之建设工程造价管理基础知识题库综合试卷B卷附答案
- 主动脉夹层疑难病例讨论
- 客船船员特殊培训
- DB43-T 2865-2023 双纤维沥青混合料设计与施工技术规程
- 阅读区主题活动策划与实施
- 职高学生心理健康与情绪管理
- 部编版语文七下《驿路梨花》教学设计
- 中考化学测试题及答案
- 园本文化培训
- java持久层面试题及答案
- 2023年GCP培训班考试试题及答案
- 旅游管理专业申报汇报
- 军队院校招收普通高中毕业生面试表
- 电力有限公司检修公司B级检修基地建设项目可行性研究报告
- 神木市小保当二号煤矿矿山地质环境保护与土地复垦方案
- 池州市中银矿业发展有限公司池州市贵池区梅街松山铁铜多金属矿矿山地质环境保护与土地复垦方案
- 物业前期承接查验报告模板
- 挖掘机、装载机检验报告完整
- 《重庆市建设工程费用定额》电子版
- 报价单模板完整版
- 2023年山东军转真题
评论
0/150
提交评论