计算机组成原理 1
计 算 机 组 成 原 理
第十一、十二讲
2009年 11月 10日
指 令 系 统
计算机组成原理 2
1,指令系统概述
2,指令构成与指令编码
操作码, 地址码, 定长指令和不定长指令格式, 定长操作
码, 操作码扩展技术
3,操作数存储及寻址方式
操作数类型, 边界对齐, 大数端, 小数端, 常见的寻
址方式以及实例
4,指令系统
指令类型, 五类基本指令, RISC技术
本讲安排
计算机组成原理 3
本讲将解决的主要问题
指令如何构成
如何寻址操作数
计算机组成原理 4
指令概述
? 用计算机解题时, 一般都要编制程序, 程序既可用高级语
言编写, 亦可用机器语言编写;
? 但计算机只能够识别和执行用 机器语言 编写的程序;
? 各种高级语言编写的应用程序, 最终都要翻译成机器语言
来执行 。
? 机器语言是由一系列的指令 ( 语句 ) 组成的;
? 指令的格式就是机器语言的语法;
? 每条指令 规定机器完成一定的功能 。
? 一台计算机的所有的 指令集合称为该机的指令系统 或指令
集。它是程序工作者编制程序的基本依据,也是进行计算机
逻辑设计的基本依据 。
计算机组成原理 5
一条指令应包含如下信息:
进行何种操作,即操作性质。
体现在指令中被称为 操作码 。
操作的对象,数据来源以及如何寻找操作数。
体现在指令中被称为 地址码
操作结果,结果存放在何处。
下一条指令又如何寻找
计算机组成原理 6
指令格式
指令由 操作码 和 地址码 两部分组成, 它的基本格式如下:
操 作 码 地 址 码
? 操作码是说明指令操作性质的二进制数代码 。
?操作码所占的二进制位数决定了一台计算机所能允许的指令
条数 。
例如, 操作码占用六位二进制码时, 这台计算机最多允许有:
26= 64条指令
1.操作码
计算机组成原理 7
固定长度操作码是指操作码所占的二进制位数固定不变, 而
且集中放在指令字的一个字段中 。
这种格式有利于简化硬件设计, 减少指令译码时间, 广泛用
于字长较长的大, 中型计算机和超级小型计算机中 。
例如 IBM370和 VAX﹣ 11系列机中,操作码的长度都是 8位,
可表示 256条指令 。
(2)可变长度操作码
可变长度操作码是操作码扩展技术的应用, 即操作码的长
度是可变的, 且分散地放在指令的不同字段中 。 这种格式有利
于压缩程序中操作码的平均长度, 在字长较短的微型机中被广
泛应用 。 如,PDP- 11,INTEL 8086/80386等, 其操作码的长
度均是可变的 。
(1)固定长度操作码
操作码字段分两种:
计算机组成原理 8
下图是一种扩展操作码的安排示意 。
这是一个 16位字长的指令码, 包括 4位基本操作码字段和三个
4位长的地址字段 。 4位基本操作码, 若全部用于三地址指令,
则有 16条 。
显然, 4位基本操作码是不够的, 必须向地址码字段扩展操作
作码的长度 。 其扩展方法及步骤如下:
OP A1 A2 A3
4位 4位 4位 4位
计算机组成原理 9
① 15条三地址指令的操作码由 4位基本操作码 0000~1110所给定,
剩下一个 1111则用于把操作码扩展到 X地址码字段, 即由 4位
扩展到 8位;
计算机组成原理 10
② 14条二地址指令的操作码由 8位操作码的 1111,0000~1111,1101
给定,剩下 的 1111,1110和 1111,1111又可用于把操作码扩充到 Y
地址字段,即从 8位又 扩充到 12位;
③ 31条一地址指令的操作码由 12位操作码的
1111,1110,0000 ~ 1111,1111,1110给定 。
计算机组成原理 11
15条三地址指令
14条二地址指令
31条一地址指令
0001 XXXX YYYY ZZZZ
1110 XXXX YYYY ZZZZ
1111 0000 YYYY ZZZZ
1111 0001 YYYY ZZZZ
1111 1101 YYYY ZZZZ


1111 1110 0000 ZZZZ
1111 1110 0001 ZZZZ
1111 1111 1110 ZZZZ

0000 XXXX YYYY ZZZZ
计算机组成原理 12
由此类堆,还可以把剩下的 1111,1111,1111扩充到 Z地址码字
段而形成的 16位操作码,这时还可由
1111,1111,1111,0000~1111,1111,1111,1111给出 16条零地址指令。
除了这种安排外, 还有多种其它安排方法 。
如,形成 15条三地址指令, 12条二地址指令, 31条一地址指令,
16条零地址指令, 共 74条指令 。
实际的机器可以采用各种灵活的扩展方式, 其思路与此类似 。
1111 1111 1111 0000
1111 1111 1111 0001
1111 1111 1111 1111
16 零
计算机组成原理 13
上述方法是在不增加指令长度的情况下, 采用对地址少的指
令使用较长的操作码, 对地址数多的指令使用较短的操作码 。
其实质是增加了指令的数量, 丰富了指令的功能 。
在可变长操作码的指令系统设计中, 究竟使用何种扩展方法
为好, 指令的 使用频度 ( 即在程序中出现的概率 ) 是非常重要
的依据 。 即 频度高的指令应分配短的操作码, 频度低的指令则
分配较长的操作码 。 这样, 既可有效地缩短操作码在程序中的
平均长度, 节省存储空间, 又可缩短常用指令的译码时间以提
高程序的运行速度 。
其 缺点 是译码系统比固定操作码复杂, 增加了设计控制器的
难度, 需要更多的硬件作支持 。
计算机组成原理 14
指令中的地址码用来指出该指令的 源操作数地址 (一个或两个 )、
结果地址 及 下一条指令的地址 。
这里的地址可以是 主存地址, 也可以是 寄存器地址, 甚至可
以是 I/O设备的地址 。
2.地址码
下面以主存地址为例,分析指令的地址码字段。
计算机组成原理 15
OP, 操作码;
A1:第一地址码, 存放第一操作数;
A2:第二地址码, 存放第二操作数;
A3:第三地址码, 存放操作结果;
A4:第四地址码, 存放下条要执行指令的地址 。
操作,( A1) OP( A2) → A3
(1) 四地址指令
指令格式,OP A1 A2 A3 A4
计算机组成原理 16
? 这种指令 直观易懂,后续指令的地址可任意填写。
? 可 直接寻址 的地址范围与地址字段的 位数有关 。
例如:指令字长 32位,操作码占 8位,4个地址段各占 6位,
则指令的直接寻址范围为,26 = 64
? 如果地址字段均指示主存的地址,则完成一条四地址指令,
共需访问 四次存储器 (取指令一次,取两个操作数两次,存结
果一次)。
? 因为程序中大部分指令都是顺序执行的,当采用指令计数器
后,A4地址 可以省去。
计算机组成原理 17
(2) 三地址指令
指令格式,OP A1 A2 A3
? 三地址指令中各项含义与四地址指令相同 。 由于采用了指
令计数器 ( 又称程序计数器, 简称 PC), 省去了 A4地址;
? 用三地址指令编写的程序, 其指令在内存中必须依次存放,
才能利用程序计数器自动增量的办法顺序执行 。 若程序要转
向时, 必须用转移指令改变程序的执行顺序 。
? 如果指令字长不变 (32位 ),操作码仍为 8位, 故 三地址指令
直接寻址范 围可达,28=256
? 若地址字段均为主存地址, 则完成一条三地址指令也需四
次访问存储器 。
计算机组成原理 18
OP:操作码;
A1:既作第一操作数地址, 又作 目的地址 ;
A2:第二操作数地址 。
操作,( A1) OP( A2) → A1
(3) 二地址指令
指令格式,OP A1 A2
? 有的机器也表示 ( A1) OP( A2) → A2,A2既作第一操作
数地址,又作目的地址;
? 在不改变字长和操作码位数的前提下,二地址指令可直接
访问的主存地址数为,212=4K
计算机组成原理 19
? 使用二地址指令编写的程序, 其指令在内存中也要依次存
放, 才能用程序计数器自动增量使之顺序执行 。 若程序发生
转向时, 也必须用转移指令改变程序的执行顺序 。
? 当二地址指令执行之后, A1中的 内容被修改 了 。
有的机器规定 A2为目的地址, 这时则是 A2的内容被修改了 。
? 若地址字段均为主存地址, 则完成一条二地址指令也需 四
次访问 存储器 。
计算机组成原理 20
指令中只给出一个操作数地址, 另一个操作数地址和目的地
址则是 隐含 的 。 这个隐含的地址就是运算器的累加寄存器 AC。
(4) 一地址指令
OP A指令格式:
操作:( AC) OP( A) → AC
? 在不改变字长和操作码位数的前提下,二地址指令可直接访
问的主存地址数为,224 = 16M
? 完成一条指令只需 两次访存 ;
计算机组成原理 21
? 采用一地址指令编写的程序, 其指令在内存中也要顺序存
放, 由程序计 数器自动增量控制其顺序执行 。 程序转向时,
也用转移指令改变程序的执行方向 。
? 在程序执行前, 必须用一条, 取数指令, 把其中一个操作
数放到累加寄存器中 。 程序结束后, 累加寄存器的内容已被
修改 。 若要将累加寄存器中的结果送回内存, 则必须使用
,存数指令, 。
? 没有操作数地址的指令称为零地址指令 。
? 执行零地址指令时, 被运算的操作数地址 全部是隐含 的,
指令格式中只说明作什么操作 。
? 如停机指令就是零地址指令 。
(5) 零地址指令
计算机组成原理 22
3.指令字长度与机器字长度的关系
? 机器字长 度简称字长, 指 计算机能直接处理的二进制数据的
位数 。
? 字长是计算机中的一项重要技术指标, 字长越长, 计算机的
运算精度 越高;
? 字长还能反映指令的 直接寻址 能力, 若字长 n位全用来寻址,
可直接 寻址 2n个字节 。
? 为了便于处理字符数据及尽可能地利用存储空间, 一般把机
器字长定为字节长度 ( 8位 ) 的整数倍, 即是 8位, 16位, 32
位或 64位 。
? 微型, 小型机的字长多为 8位, 16位和 32位, 中, 大型机的
字长多为 32位和 64位 。 因此, 一个字中可以存储 1个, 2个, 4
个或 8个字符 。
(1) 机器字长
计算机组成原理 23
指令字的长度 取决于操作码的长度, 操作数地址
的长度和操作数地址的个数 。
由于操作码的长度, 操作数地址的长度以及所采
用操作数地址数目不同, 各种指令的长度不是固定
的, 当然也不是任意的 。
为了充分利用存储空间, 指令字的长度也定为字节
长度的整数倍 。 例如 INTEL 8086/80586系列机的指
令长度分别为 8位, 16位, 24位, 32位, 48位等 。 而
最长的指令可达 120位 。
(2) 指令字长
计算机组成原理 24
(3) 指令字长与机器字长的关系
? 指令字长度与机器字长度 没有固定的关系,它可以
等于机器字长,也可以大于或小于机器字长。
? 指令字长度等于机器字长度的指令,称为 单字长指
令 ;指令字长等于两个机器字长的指令,称为 双字长
指令 ; 指令字长度只有半个机器字长度的指令,称为
半字长指令。
例如 IBM 370系列机的机器字长为 32位,它却有 16
位的半字长指令,32位的单字长指令,48位的一个半
字长指令。
计算机组成原理 25
? 等字长指令结构
在同一个指令系统中, 所有的指令字长度都是相
等 的, 称为等字长指令字结构, 这种指令字结构简
单, 控制方便;
? 变字长指令结构
如果各种 指令字长度随指令的功能而变化, 如有
的指令是单字长指令, 有的指令是双字长指令或三字
长指令, 则称为变字长指令结构, 这种指令字结构灵
活, 能充分利用指令字长度, 但指令的控制较复杂 。
计算机组成原理 26
各种指令字的结构情况
地址
I
I+1
I+2
I+3
指 令
指 令
指 令
指 令

一个字长
┆ ┆
指 令
指 令
指 令
指 令
地址
I
I+1
I+2
I+3
一个字长
指 令
指 令
指 令
指 令

地址
I
I+1
I+2
I+3
指令 1
指令 2
一个字长

单字长指令 双字长指令 半字长指令 变字长指令
指令 3
一个字长
地址
I
I+1
I+2
I+3
I+4
I+5
I+6
指令 1
指令 2

计算机组成原理 27
4.指令助记符
由于硬件只能识别 1和 0,所以采用二进制操作码是必要的,
但是我们用二进制来书写程序却非常麻烦。
为了便于书写和阅读程序,每条指令通常用 3个或 4个英文
缩写字母来表示。这种缩写码叫做 指令助记符。
典 型 指 令 指令助记符 二进制操作码
加 法 ADD 001
减 法 SUB 010
传 送 MOV 011
跳 转 JMP 100
转 子 JSR 101
存 储 STR 110
读 数 LDA 111
典型的指令助记符
计算机组成原理 28
5.指令格式举例
八位微型计算机的指令格式
8位微型机字长只有 8位,指令结构是一种可变字长形式,包含单字长、双字长、三字长指令等多种。
单字长指令 操作码
双字长指令 操作码 操作数地址
三字长指令 操作码 操作数地址 1 操作数地址 2
内存按字节编址,所以单字长指令每执行一条指令后,
指令地址加1。双字长指令或三字长指令每执行一条指令时,
指令地址要加 2或加 3,可见多字长的指令格式不利于提高机
器速度。
计算机组成原理 29
PDP/11系列机指令格式
PDP/11系列机指令字长 16位,其指令格式如下表所示。
在 PDP/11中,操作码字段是不固定的,其长度也是不相
同的。这样做可以扩展操作码以包含较多的指令。但是操作
码字段不固定,对控制器的设计来说必将复杂化。
计算机组成原理 30
Pentium指令格式
0或 1 0或 1 0或 1 0或 1 (字节数 )
指令前缀 段取代 操作数长度取代 地址长度取代
Mod-R/M字段,规定了存储器操作数的寻址方式,给出了寄存
器操作数的存器地址号。
SIB字段,和 Mod-R/M字段一起,对操作数来源进行完整的说
明。
(a) 前缀
1或 2 0或 1 0或 1 0,1,2,4 0,1,2,4
操作码 Mod Reg或操作码 R/M 比例 S 变址 I 基址 B 位移量 立即数
2位 3位 3位 2位 3位 3位
(字节数 )
(b) 指令
计算机组成原理 31
例 指令格式如下所示,其中 OP为操作码,试分析指令格式的
特点。
OP -------- 源寄存器 目标寄存器
15 9 7 4 3 0
解:
(1) 单字长二地址指令。
(2) 操作码字段 OP可以指定 128条指令。
(3) 源寄存器和目标寄存器都是通用寄存器(可分别指定
16个),所以是 RR型指令,两个操作数均在寄存器中。
(4) 这种指令结构常用于算术逻辑运算类指令。
计算机组成原理 32
例 指令格式如下所示,OP为操作码字段,试分析指令格式
特点。
OP ----------- 源寄存器 变址寄存器
位移量 (16位 )
15 10 7 4 3 0
解:
(1) 双字长二地址指令,用于访问存储器。
(2) 操作码字段 OP为 6位,可以指定 64种操作。
(3) 一个操作数在源寄存器(共 16个),另一个操作数在存储
器中(由变 址寄存器和位移量决定),所以是 RS型指令。
计算机组成原理 33
寻址方式
存储器既可以存放数据又可以存放指令。因此当某个操
作数或某条指令存放在某个存储单元时,其存储单元的编号,
就是该操作数或指令在存储器中的地址。
? 在存储器中,操作数或指令字写入或读出的方式,有 地址
指定方式, 相联存储方式 和 堆栈存取方式 。
? 几乎所有的计算机,在内存中都采用地址指定方式
? 当采用地址指定方式时,形成操作数或指令地址的方式,
称为 寻址方式 。
? 寻址方式分为两类,即 指令寻址方式 和 数据寻址方式,前
者比较简单,后者比较复杂。
计算机组成原理 34
1.指令的寻址方式
指令的寻址方式有两种,一种是 顺序寻址方式,另一
种是 跳跃 (转移 )寻址方式 。
(1) 顺序寻址方式
指令地址在内存中按顺序安排,当执行一段程序时,
通常是一条指令接一条指令的顺序执行。
从存储器取出第一条指令,然后执行这条指令;接着从
存储器取出第二条指令,再执行第二条指令;接着再取出第
三条指令 …… 这种程序顺序执行的过程,我们称为指令的顺
序寻址方式。
为此,必须使用程序计数器(又称指令指针寄存器) PC
来计数指令的顺序号,该顺序号就是指令在内存中的地址。
计算机组成原理 35
计算机组成原理 36
(2) 转移寻址方式
当程序转移执行的顺序时,指令的寻址就采取转移寻
址方式。
所谓转移,是指下条指令的地址码不是由程序计数器给
出,而是由本条指令给出。程序转移后,按新的指令地址开
始顺序执行。指令计数器的内容也必须相应改变,以便及时
跟踪新的指令地址。
采用指令转移寻址方式,可以实现程序转移或构成循
环程序,从而能缩短程序长度,或将某些程序作为公共程序
引用。指令系统中的各种条件转移或无条件转移指令,就是
为了实现指令的转移寻址而设置的。
计算机组成原理 37
6
计算机组成原理 38
1,存储方式
? 大数端 (Big Endian):最低字节存储在高地址
? 小数端 (Little Endian):最低字节存储在低地址
4 5 6 7
00 0F 42 40
( a ) 大数端存储方式
4 5 6 7
40 42 0F 00
( b ) 小数端存储方式
数据在存储器存储方式
当在具有不同定义的机器之间,传输存储字时,
必须变换字节的顺序,以保证数据的成功复制
计算机组成原理 39
2,边界对齐问题
对齐访问地址
字节 XXXXXXXXXXX
半字 XXXXXXXXXX0
字 XXXXXXXXX00
双字 XXXXXXXX000
要求对象只能安放于其大小的倍数的地址上
存储器中字的对齐情况
(a) 字不对齐
……16 16
12 128 8
4 40 0
3 2 1 0
(b) 字对齐
… … … ……… ……
地址 字节3 2 01
计算机组成原理 40
2.操作数的寻址方式
? 操作数的寻址就是寻找操作数的地址, 其目的是 寻找所需要
的操作数 。
? 寻址方式 就是指寻找操作数地址所用的 方法, 它与计算机的
硬件结构密切相关, 对指令的格式和功能都有极大的影响 。
从使用的观点来看, 寻址方式和汇编语言程序设计的关系更加
密切 。
? 由于各种计算机的硬件结构各不相同, 指令格式亦多种多样,
因而, 寻址方式也就千差万别, 这里仅对常见的单操作数地址
的寻址方式作介绍 。 用这些最基本的寻址方式可以组合成各类
计算机中更为复杂的寻址方式 。
计算机组成原理 41
一种单地址指令的一般结构
? 指令中操作数字段的地址码是由形式地址和寻址方式特征位
等组合形成;
一般来说,指令中所给出的地址码,并不是操作数的有效地址。
? 因此寻址过程就是把操作数的形式地址,变换为操作数的有
效地址的过程。
操作码 (OP) 寻址特征 (X) 形式地址 (D)
寻址方式
操作码 OP 变址 X 间址 I 形式地址 D
计算机组成原理 42
在指令中不明显地给出操作数的地址,其操作数或操作数的
地址隐含在某个通用寄存器中或指定的存储单元中。
例如,
① 单地址的指令格式,没有在地址字段中指明第二操作
数地址,而是规定累加寄存器 AC作为第二操作数地址,AC对
单地址指令格式来说是隐含地址。
② IBM-PC机中的乘法指令,MUL OPR
这种方式可以缩短指令的长度,在字长较短的微型机或
小型机中被广泛采用。
(1) 隐含寻址
计算机组成原理 43
(2) 立即寻址
所需的操作数由指令的直接给出,称为立即数寻址
方式,简称立即寻址。
OP # D
立即寻址特征
立即数
这种方式的特点是:
取指令时将操作码和一个操作数同时取出,不必再次访
问存储器。提高了指令的执行速度,但操作数只是指令的一部
分,其数值受到了限制。
还应指出:
在微型和小型计算机中,内存是按字节编址的。若前一
个字节是操作码,紧跟着的第二个字节就是立即操作数。因此,
立即数寻址又称为 邻接型寻址,或者说,操作数紧跟着操作码。
计算机组成原理 44
这条指令的执行结果是“把立即数 1536传送到目的寄存器 Ri
中”。
其汇编符号记为,MOV Ri,#1536。
例如,操作码 特征 寄存器号 立即数
Ri
MOV # Ri 1536
1536
计算机组成原理 45
(3) 直接寻址
直接寻址是指指令中的地址码就是操作数的有效地址,
按这个地址可直接在存储器中存入或取得操作数。
采用直接寻址方式时,指令字中的形式地址 D就是操作数
的有效地址 E,既 E= D。因此通常把形式地址 D又称为直接地
址。此时,由 寻址模式 给予指示,如 X1=0。 如果用 S表示操
作数,那么直接寻址的逻辑表达式为,
S=( E)=( D)
计算机组成原理 46
图中特征码 X1指明是采用直接寻址。
该指令表示, 把 1536号存储单元中存放的操作数 153400取出,
送入存器 Ri中, 。
其汇编符号记为,MOV Ri,( D) 。
直接地址也可以用公式表示, 若设有效地址为 EA,则可记为:
当 X1=0时, EA=D。 ( D就是有效地址 )
例:
153400
操作码 特征 寄存器号 直接地址码 D
153400
指令MOV X
1 Ri 1536
PC:
内存储器
1536
Ri
计算机组成原理 47
(4) 间接寻址
指令中的地址码部分给出的 既不是操作数, 又不是操作数
的地址,而是存放操作数地址的内存单元的地址,这个地址叫
做 间接地址 。其寻址方式称为 间接寻址方式,简称 间址 。
通常在间接寻址情况下,由寻址特征位给予指示,如 X2=1。
计算机组成原理 48
(a) 一次间址 MOV Ri,((D)) (b)二次间址 MOV R
i,(((D)))
例如:
内 存
MOV X2 Ri
Ri 1025
2200
1 2200
0132
3100
3100
1025
0
操作码 特征 寄存器号 地址码 D
MOV
操作码 特征 寄存器号 地址码 D 内 存
Ri
0 3200
X2 Ri 0132
0132
3200
1025
MOV
1025
计算机组成原理 49
(5) 寄存器寻址方式和寄存器间接寻址方式
① 寄存器直接寻址
如果指令的地址码部分给出的是 某通用寄存器编号 Ri,Ri
寄存器中存放着操作数,则称为寄存器直接寻址。
例如:执行 ADD Ri指令,
该指令说明 Ri是操作数的有效地址,从 Ri中取出操
作数与累加器的内容相加,其结果放在累加器中。
ADD Ri
Ri 操作数
寻址特征 寄存器号
计算机组成原理 50
② 寄存器间接寻址
寄存器间接寻址,是指令中地址字段所指的寄存器中存放
的是操作数的地址。
例如:执行 ADD @Ri 指令时,说明 Ri不是操作数的有效地址,而
是存放操作有效地址的寄存器号。
ADD @ Ri
操作数地址Ri
内 存
操作数
操作码 寻址特征 寄存器号
计算机组成原理 51
(6) 相对寻址方式
相对寻址是把程序计数器 PC的内容加上指令格式中的
形式地址 D而形成操作数的有效地址。
程序计数器的内容就是当前指令的地址。, 相对, 寻
址,就是相对于当前的指令地址而言。
此时 形式地址 D通常称为偏移量,其值可正可负,相
对于当前指令地址进行浮动。
计算机组成原理 52
PC的内容为 1000,指令的位移量(相对距离)为 35。故其
相对地址为 1035。这个地址是不固定的,随 PC的值变化而变
化,并且相对地差一个固定值。因此,无论程序装入存储器
的任何区域,只要这个差值不变,程序均能正确运行。由于
程序在内存空间里是浮动的,又称 浮动寻址 。
例如:
OP X7 35
操作码 寻址特征 位移量 D
PC
:
相对距离
=35
内存
OP X7 35
30001035
1000
计算机组成原理 53
(7) 基址寻址方式
当存储容量较大,所需地址码的长度大于字长时,指令
中的地址码部分直接给出的地址不可能直接访问存储器的所有
单元。因此,把整个存储空间分成若干段,每段的首地址存放
在一个基址寄存器中,段内的位移量由指令直接给出。
于是,存储器的实际地址就等于基址寄存器的内容加上
段内位移量。这就叫做 基址寄存器寻址方式,简称 基址寻址 。

计算机组成原理 54
(8) 变址寻址方式
变址寻址 是将指令中的基地址码和一个, 变址值, 相
加后形成操作数的有效地址。, 变址值, 存放在一个专用的
变址寄存器 Ri中或专用的内存单元中。
变址值是根据程序需要而设置的,与本条指令中的地
址长度无关,只要变址寄存器的字长足够长,可以进行内
存全容量的访问。使用起来十分灵活。
计算机组成原理 55
X3=1 EA=(Ri)+D X3=1 EA=(Ri)+D
有效地址 EA=1000+0080=1080 有效地址 EA=1000+0080=1080
操作数 =(1080)=2050 操作数 =(1080)=2050
(a) Ri为变址寄存器时的变址寻址 (b)Ri为内存变址单元时的变址寻址
内存
2050
1000
操作码 寻址特征 变址单元号
op X3 Ri 0080
1080
基地址码 D内存操作码 寻址特征 变址器号 基地址码 D
20501080变址寄存器
1000Ri
OP X3 Ri 0080
计算机组成原理 56
如果将变址和间址两种寻址方式结合起来,则得到一种
扩展型变址方式 ( 亦称复合型寻址方式)。
先变址,后间址者,称为, 前变址方式, 。
先间址,后变址者,称为, 后变址方式, 。
扩展型变址方式
在变址寻址过程中,每经过一次变址运算后,自动修
改变址寄存器的内容,这种变址寻址方式称为自动变址寻址
方式。例如,PDP-11系列机的自增型和自减型变址属于这一
类型。而 NOVA系列机则是指定自动变址单元, 增 1”或, 减 1”
来实现自动变址。
计算机组成原理 57
OP X4 Ri 0080
1000 1080
2000
内 存
2000
0300
Ri
OP X5 Ri 0080
1000
1300
0200
0800
内 存
Ri
操作码 寻址特征 变址器号 基地址码 D操作码 寻址特征 变址器号 基地址码 D
X4=1 EA=((Ri)+D) X5=1 EA=(D)+(Ri)
有效地址 EA=(1000+0080) =2000 有效地址 EA=1300+1000=2300
操作数 = (2000) = 0300 操作数 = (2300) = 0200
(a)前变址方式 (b)后变址方式
计算机组成原理 58
基址寻址面向系统,主要用于逻辑地址到物理地址的变
换,用来 解决 程序在主存储器中的再定位和扩大寻址空间等问
题。在一些大型机中,基址寄存器是由管理程序利用特权指令
来使用,用户程序无权修改它,从而确保了系统的安全性。
变址寻址则面向用户, 用于 访问字符串、向量和数组等
成批数据,没有逻辑地址到物理地址的变换功能。在一些小型
机或微型机中,基址寻址和变址寻址实际上已经合二为一了。
基址和变址的应用方向
计算机组成原理 59
(9) 堆栈寻址方式
堆栈 与堆栈寻址
? 堆栈是一组能存储和取出数据的暂时存储单元,在这一点
上,堆栈有点像存储器;
? 很多计算机把存储器的一部分用作堆栈;
? 堆栈和其它形式的存储器之间的差别是:它们对数据的存
取方法和寻址方式有所不同;
( 堆栈采用, 后进先出, 的工作方式 。 )
计算机组成原理 60
在一些计算机的 CPU中,设置有 8个或 16个寄存器作为堆
栈,由于寄存器具有移位功能,压入(进栈)时,可以从顶
部压入,依次移到下面的各个寄存器中;弹出(退栈)时,
亦先由顶部寄存器取出,下面寄存器中的内容则逐个向上移
动。因此,称为 串联堆栈 。
这种堆栈一般不要求堆栈指示器,由硬件支持,又称硬堆
栈。这种堆栈通常设在 CPU中,操作速度快。但它要受到寄
存器数目的限制。例如,某硬堆栈由 8个寄存器组成,若把多
于 8个的数据压入堆栈时,“老”的数据将从栈底压出并消失。
而且读出是破坏性的,当从栈顶取出一个数据时,它就不会
在堆栈中继续存在。
① 串联堆栈 (硬堆栈 )
计算机组成原理 61
计算机组成原理 62
② 存储器堆栈 (软堆栈 )
常用的堆栈是利用一部分主存区域,称为 存储器堆栈 。
存储器堆栈有如下优点,
? 堆栈的长度可视程序的要求任意设置;
? 堆栈的数目可由程序员任意规定;
? 可使用对存储器寻址的任何一条指令来对堆栈中的数据进
行寻址。
用存储区设置的堆栈,其中的数据不能像硬堆栈那样一个
单元向另一个单元移动。因此,采用堆栈顶部相对于数据进
行移动的方法,在 CPU中设置一个 堆栈指示器 来指示 栈顶 的
移动情况。相应地,又把存储器堆栈称为 软堆栈 。
当软堆栈建立后, 该部分存储区则不能再作他用 。
计算机组成原理 63
软堆栈按堆栈指示器中的初值进行相加或相减,可分成两种
生成方式。堆栈指示器 SP通常指向栈顶(或栈底),
? 若采用 SP的内容由初值不断向大的地址方向推进时(即
( SP) + Δ→SP ),称为自顶向下生成方式,简称,向下生
成,方式;
? 若采用 SP的内容由初值不断向小的地址方向推进时(即
( SP)- Δ→SP ),称为自底向上生成方式,简称,向上生
成,方式。
当建立存储器堆栈时,可用程序来设置。把一个主存地址送
入堆栈指示器 (SP),就可确定堆栈的顶。
软堆栈的两种生成方式
计算机组成原理 64
堆栈操作使用一种特殊的数据传送指令, 即压入指令
( PUSH) 和弹出指令 ( POP) 。
若采用, 向上生成, 的堆栈, 其操作过程如下:
? 压入指令, PUSH OPR,是把 OPR( 设长度为一个字 ) 压
入堆栈 。 其操作是:
OPR → ( SP) ; ( SP) - 1→SP 。
? 弹出指令, POP OPR,是从堆栈弹出一个数据(长度为一
个字)送 OPR,操作是:
( SP) +1 → SP ( SP) → OPR。
堆栈操作
计算机组成原理 65
计算机组成原理 66
寻址方式举例
1.PDP/ 11系列机寻址方式
(1)寄存器
PDP/ 11计算机 CPU中有 8个 程序可访问的寄存器,其编号
为 R0- R7:
? R7作为程序计数器( PC)使用,
? R6作为堆栈指示器( SP)使用,
? 其他 6个寄存器 R0- R5可作为 通用寄存器 。
计算机组成原理 67
PDP/ 11系列机指令字长为 16位 ;
(2)指令格式
计算机组成原理 68
? 指令系统中有单操作数指令和双操作数指令;
? 操作数字段即 地址部分均由 6位 二进制构成。
例如双操作数指令为:
操作码 寻址方式 寄存器号 寻址方式 寄存器号
源地址 目标地址
15 12 11 9 8 6 5 3 2 0
? 其中 3位对应寄存器编号,形式地址就存放在这些寄存器
中,以充分利用指令位数,
? 还有 3位作为寻址特征位,指示 8种寻址方式。
? 此外有 4种 指令计数器型寻址方式 是一种 隐含寻址方式,
它 们以访问 R7(程序计数器 )为标志 。
计算机组成原理 69
(3)PDP/11系列机寻址方式
寻址名称
寻址
特征

有效地址 E 汇编格式 说明



寄存器型 000 E= R Rn
寄存器 Rn的内容是操作数, 相
当于直接地址
自增型 010
E= (R);
(R)+ 2→ R (Rn)+
寄存器 Rn的内容是操作数地址,
然后递增寄存器内容
自减型 100
(R)- 2→ R;
E= (R) - (Rn)
先递减寄存器 Rn的内容,然后
作为操作数的地址
变址型 110
(PC)+ 2→ PC;
E= ((PC))+ (R) X(Rn)
寄存器 Rn的内容与本指令下一
单元所存的数相加, 作为操作
数的地址
计算机组成原理 70



寄存器
间接 001 E= (R) @ Rn或 (Rn)
寄存器 Rn的内容作为操作
数地址,相当于间接地址
自增间接 011 E= (R);(R)+ 2→ R @(Rn)+
寄存器 Rn的内容作为操作
数地址的地址,然后递增
寄存器内容
自减间接 101 (R)- 2→ R;E= ((R)) @ - (Rn)
寄存器 Rn的内容先递减,
然后作为操作数地址的地

变址间接 111 (PC)+ 2→ PC;E= (((R))+ ((PC))) @ X(Rn)
寄存器 Rn的内容与本指令
下一单元中的内容相加,
作为操作数据地址的地址
寻址名称 寻址特
征值
有效地址 E 汇编格式 说明
计算机组成原理 71






立即

01
0
(PC)+ 2→ PC;
E=( PC) # n
指令下一个单元是操作数
绝对

01
1
(PC)+ 2→ PC;
E= ((PC))
@#
A
指令下一个单元内容是操
作数的地址
相对

11
0
(PC)+ 2→ PC;
((PC))+ (PC)+ 2=
E
A
指令下一个单元内容与指
令地址加 4的数相加,其
和作为操作数地址
相对
间接

11
1
(PC)+ 2→ PC;
E= (((PC))+ (PC)
+ 2)
@ A
指令下一单元内容与指令
地址加 4的数相加,其和
作为操作数地址的地址
寻址
名称
寻址
特征

有效地址 E 汇编格式 说明
计算机组成原理 72
PDP/ 11的寻址方式特征是采用寄存器进行寻址:
? 直接型和间接型寻址方式是在通用寄存器中寻址;
? 当在寄存器 R7中寻址时,变为四种指令计数器型的寻址方式。
? 当指令的操作码用助记符表示,而地址及其寻址特征也用
符号表示时,就成为 汇编语言 。
? 这些符号称为 汇编符号 。
? 用汇编符号表示指令格式,就称为 汇编格式 。
? 各种机器的汇编语言对机器的依赖性太强,彼此间不能通用。
汇编语言:
计算机组成原理 73
2.Pentium的寻址方式
实地址模式
在实地址模式下, 逻辑地址形式为段寻址方式:
将段名所指定的段寄存器内容 ( 16位 ) 左移 4位, 低 4位补
全 0,得到 20位段基地址,再加上段内偏移,即得 20位物理地址 。
保护虚拟地址模式
在保护模式下,32位段基地址加上段内偏移得到 32位线性地
址 。 由存储管理部件将其转换成 32位的物理地址 。
无论是实地址模式还是保护模式,段基地址的获取方式已
是固定的方式。我们主要讨论 有效地址 的获取方式。
(1) Pentium的工作模式
计算机组成原理 74
E=(B)+(I)× S+ Disp

序号







⑻ 基址+比例变址+偏移量
寻址方式名称
立即
寄存器
直接
基址
基址+偏移量
比例变址+偏移量
基址+变址+偏移
相对
有效地址 E算法
E=Disp
E=(B)
E=(B)+Disp
E=(I)× S+Disp
E=(B)+(I)+Disp
指令地址 =(PC)+Disp
说明
操作数在指令中
操作数在某寄存器内,
指令给出寄存器号
Disp为偏移量
B为基址寄存器
I为变址寄存器,
S为比例因子 (1,2,4,8)
PC为程序计数器或当
前指令指针寄存器
(2) Pentium指令格式及 寻址方式
计算机组成原理 75
(1) 立即寻址,立即数可以是 8位, 16位, 32位 。
(2)寄存器寻址:
一般指令:
或使用 8位通用寄存器 (AH,AL,BH,BL,CH,CL,DH,DL);
或使用 16位通用寄存器 (AX,BX,CX,DX,SI,DI,SP,BP);
或使用 32位通用器 (EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP);
对 64位浮点数操作, 要使用一对 32位寄存器 。
少数指令
以段寄存器 (CS,DS,ES,SS,FS,GS)来实施寄存器寻址方式 。
(3) 直接寻址,也称偏移量寻址方式, 偏移量长可以是 8位, 16位, 32位 。
1或 2 0或 1 0或 1 0,1,2,4 0,1,2,4
操作码 Mod Reg或操作码 R/M 比例 S 变址 I 基址 B 位移量 立即数
2位 3位 3位 2位 3位 3位
(字节数 )
计算机组成原理 76
(4) 基址寻址,基址寄存器 B可以是上述通用寄存器中任何一个。
基址寄存器 B的内容为有效地址。
(5) 基址+偏移量寻址,基址寄存器 B是 32位通用寄存器中任何一个。
(6) 比例变址+偏移量寻址:
也称为变址寻址方式,变址寄存器 I是 32位通用寄存器中除
ESP外的任何一个,而且可将此变址寄存器内容乘以 1,2,4
或 8的比例因子 S,然后再加上偏移量得到有效地址。
(7) 基址+变址+偏移
(8) 基址+比例变址+偏移量
是 (4),(6) 两种寻址方式的组
合,此时偏移量可有可无。
(9) 相对寻址, 适用于转移控制类指令。用当前指令指针寄存器 EIP
或 IP的内容(下一 条指令地址)加上一个有符号的偏移量,形成
CS段的段内偏移。
计算机组成原理 77
例 一种二地址 RS型指令的结构如下所示:
OP — 通用寄存器 I X 偏移量 D
6位 4位 1位 2位 16位
其中 I为间接寻址标志位,X为寻址模式字段,D为偏移量字段,通过 I,
X,D的组合,可构成下表所示的寻址方式。请写出 6种寻址方式的名称。
寻址方式举例
寻址方式 I X 有效地址 E算法 说明
( 1)
( 2)
( 3)
( 4)
( 5)
( 6)
0
0
0
1
1
0
00
01
10
11
00
11
E= D
E= ( PC) ± D
E= ( R2) ± D
E= ( R3)
E= ( D)
E= ( R1) ± D
PC为程序计数器
R2为变址寄存器
R1为基址寄存器
解,( 1)直接寻址
( 6)基址寻址( 2)相对地址
( 3)变址寻址
( 4)寄存器间接寻址
( 5)间接寻址
计算机组成原理 78
例 某 16位机所使用指令格式和寻址方式如下所示。该机有两个 20位基值寄
存器,四个 16位变址寄存器,十六个 16位通用寄存器。
指令格式中的 S(源 ),D(目标 )都是通用寄存器,M是主存中的一个单元。
三种指令的操作码分别是 MOV (OP)= (A)H,MOV是传送指令,
STA (OP)= (1B)H,STA为写数指令
LDA (OP)= (3C)H。 LDA为读数指令
OP ―― 目标 源 MOV S,D
15 10 9 8 7 4 3 0
20位地址
目标―― OP
LDA M,D
15 10 9 8 7 4 3 0
OP 基址 源 变址
位移量
15 10 9 8 7 4 3 0
STA S,M
计算机组成原理 79
要求,( 1) 分析三种指令格式与寻址方式特点 。
( 2) CPU完成哪一种操作所花时间最短? 哪一种操作花时间
最长? 第二种指令的执行时间有时会等于第三种指令的
执行时间吗?
( 3) 下列情况下每个十六进制指令字分别代表什么操作? 其
中如果有编码不正确, 如何改正才能成为合法指令?
① (F0F1)H (3CD2)H ② (2856)H ③ (6FD6)H ④ (1C2)H
第一种指令是单字长二地址指令,RR型;
第二种指令是双字长二地址指令,RS型,其中 S采用基址寻
址或变址寻址,R由源寄存器决定;
第三种也是双字长二地址指令,RS型,其中 R由目标寄存器
决定,S由 20位地址(直接寻址)决定。
解, (1)
计算机组成原理 80
(2) 第一种指令所花时间最短,因为是 RR型指令,不需要访
问 存储器。
第二种指令所花时间最长,因为是 RS型指令,需要访问
存储器,同时要进行寻址方式的变换运算(基值或变址),
这也需要时间。
第三种指令 虽然也访问存储器,但节省了求有效地址运算
的时间开销。
第二种指令的执行时间不会等于第三种指令的执行时间。
计算机组成原理 81
(3) 根据已知条件:
MOV(OP)= 001010,STA(OP)= 011011,LDA(OP)= 111100,
① (F0F1)H (3CD2)H = 111100,00,1111,0001 (3CD2)H
该指令代表 LDA指令, 编码正确, 其含义是把主存
(3CD2)H 地址单位元的内容取至 15寄存器 。
目标寄存器编号LDA的操作码
20位地址
目标―― OP
LDA M,D
15 10 9 8 7 4 3 0
计算机组成原理 82
② (2856)H = 001010,00,0101,0110
代表 MOV指令, 编码正确, 含义是把 6号源寄存器
的内容传送至 5号目标寄器 。
OP ―― 目标 源 MOV S,D
15 10 9 8 7 4 3 0
源寄存器编号目标寄存器编号
根据已知条件:
MOV(OP)= 001010,STA(OP)= 011011,LDA(OP)= 111100,
计算机组成原理 83
③ (6FD6)H = 011011,11,1101,0110
该指令是单字长指令, 一定是 MOV指令, 但编码错误,
可改正为 001010,00,1101,0110 = (28D6)H
④ (1C2)H = 000000,01,1100,0010
该指令是单字长指令, 代表 MOV指令, 但编码错误, 可
改正为 001010,00,1100,0010 = (28C2)H。
OP ―― 目标 源 MOV S,D
15 10 9 8 7 4 3 0
根据已知条件, MOV(OP)= 001010,STA(OP)= 011011,LDA(OP)= 111100,
计算机组成原理 84
指令的分类
一台计算机的指令系统通常有上百条或几百条指令, 从它
们所完成的功能来看, 一个较为完善的指令系统, 应具备以下
各类指令 。
1.数据传送类指令
这类指令的功能是实现寄存器与寄存器, 寄存器与存储单
元以及存储单元与存储单元之间的数据传送 。
数据传送指令主要包括 取数指令, 存数指令, 传送指令,
成组传送指令, 字节交换指令, 清累加器指令, 堆栈操作
指令 等等 。
计算机组成原理 85
2.算术运算指令
这类指令包括 二进制定点加、减、乘、除指令,浮点加、减、乘、除指
令,求反、求补指令,算术移位指令,算术比较指令,十进制加、减运算
指令 等。这类指令主要用于定点或浮点的算术运算。大型机(如 IBM 370机、
国产银河机,CRAY-1机,CDC的 STAR- 100机等)中还设置有向量运算
指令,可直接对整个向量或矩阵进行求和、求积运算。
3.逻辑运算指令
这类指令包括 逻辑加、逻辑乘、逻辑比较、测等指令、按位加、逻辑
移位 等指令,主要用于无符号数的位操作、代码的转换、判断及运算。移
位指令用来对寄存器的内容实现左移、右移或循环移位。
计算机组成原理 86
4.程序控制指令
程序控制指令也称转移指令。执行程序时,有时机器执行到某条指令
时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果
进行转移,从而改变程序原来执行的顺序。这种转移指令称为条件转移指令。
除各种 条件转移指令外,还有无条件转移指令、转子程序指令、返回主程序
指令、中断返回指令 等。 转移指令的转移地址一般采用直接寻址和相对寻址
方式来确定。
转子指令 是转向本指令操作地址所指出的子程序入口,并将原程序中下
一条指令地址存入内存某单元(或指定的某个寄存器)中,以便为返回主
程序时提供返回地址。
计算机组成原理 87
5.输入输出指令
输入输出指令主要用来启动外围设备,检查测试外围设备的工作状态,
并实现 外部设备和 CPU之间,或外围设备与外围设备之间的信息传送。
6.字符串处理指令
字符串处理指令是一种 非数值处理指令,一般包括字符串传送、字符
串转换(把一种编码的字符串转换成另一种编码的字符串)、字符串替换
(把某一字符串用另一字符串替换)等。这类指令在文字编辑中对大量字
符串进行处理。
计算机组成原理 88
7.陷阱 (TRAP)指令
陷阱是一种意外事故中断,它的目的不是请求 CPU正常处理中断,而是
为了把发生的故障通知 CPU,并根据故障的情况转入相应的故障处理程序。
陷讲指令就是为实现这个任务而设置的。
在一般计算机中,陷阱指令是一种隐含指令(它不出现在指令系统中,
其功能是以指令的形式隐含地完成的),用户不能使用,只有当故障出现
时,才由 CPU自动产生并执行之,故又叫自中断指令。
但是,有些计算机中又设置有可供用户使用的陷阱指令,可用它来实现
调用系统程序的请求。
例如,INTEL 8086的软件中断指令,实质上是一种直接提供用户使用的
陷阱指令,它可完成调用系统子程序的过程。其汇编格式为,INT TYPE,
其中 TYPE是一个 8位常数,表示中断类型。执行时,根据中断类型可以找
到相应系统子程序的入口地址。
计算机组成原理 89
8.特权指令
特权指令是指具有特殊权限的指令。这类指令只用于操作系统或其
他系统软件,一般不直接提供给用户使用。 在多用户、多任务的计算机
系统中特权指令必不可少。它主要用于系统资源的分配和管理。
9.其他指令
除以上各类指令外,还有状态寄存器置位、复位指令、测试指令、
暂停指令,空操作指令,以及其他一些系统控制用的特殊指令。
计算机组成原理 90
精简指令系统计算机
RISC的产生和发展情况
RISC的主要特点
计算机组成原理 91
从计算机的发展过程来看,指令系统是随着计算机体系结
构的完善和性起来的。
? 早期的计算机结构简单,指令条数少,指令系统功能弱,计算机
的性能较差。
? 随着 VLSI技术的迅速发展,硬件成本不断下降,软件成本不
断上升,促进人们在指令系统中增加更多的指令和更复杂的
指令,以适应不同应用领域的需要。
? 特别是系列机问世之后,为了能做到程序兼容,新设机型或
高档机除了要继承老机器的指令系统中的全部指令外,还要
增加若干新的指令,从而导致同一系列计算机的指令系统越
来越复杂,机器结构也越来越复杂。
1.RISC产生的时代背景
RISC的产生和发展情况
计算机组成原理 92
目前,大多数计算机的指令系统多到几百条指令。 这就体
现了计算机性能越高,其指令系统越复杂的传统设计思想。这
类计算机称为“复杂指令系统计算机”,简称 CISC( Complex
Instruction Set Computer)。
例如:
VAX11/780计算机有 303条指令,18种寻址方式;
Pentium机有 191条指令,9种寻址方式 。
由于复杂指令需进行复杂的操作,从而降低了机器的执行速
度。
计算机组成原理 93
对 CISC指令系统所作的运行统计分析表明,各种指令使
用频率相差悬殊,常用的较为 简单的指令,仅占指令总数的
20%,但在程序中 使用的频率却占 80% 。下表是HP公司研究
了 IBM 370计算机的高级语言运行情况后所得到的统计数据。
指令类别
转移
逻辑操作
存数取数
存储单元送存储单元
整数运算
浮点运算
十进制运算
其它
COBOL FORTRAN PASCAL
24.2% 18.0% 18.4%
14.6% 8.1% 9.9%
40.2% 48.7% 54.0%
12.4% 2.1% 3.8%
6.4% 11.0% 7.0%
0.0% 11.9% 6.8%
1.6% 0.0% 0.0%
0.6% 0.2% 0.1%
计算机组成原理 94
根据上述分析情况,国外一些计算机公司和大学开展了
对指令系统合理性的研究,1975年 IBM公司的 John Cocke提出
了精简指令系统的想法,后来出现了各种各样的, 精简指令系
统计算机,,简称 RISC( Reduced Instruction Set
Computer)。也称为 RISC技术。
RISC技术的实质是要求指令系统简化, 尽量使用寄存器-
寄存器操作指令, 指令操作在一个周期内完成, 指令格式力求
一致, 以利于提高编译的效率 。
2.RISC的发展概况
计算机组成原理 95
? 1982年美国加州伯莱克大学研究的 RISC I机 (以后又有 RISC II),
? 采用 VLSI CPU芯片,片上晶体管数为 44000个,线宽 3?m,字长 32位,
?有 128个寄存器 ( 但程序员只能看到 32个 ) 这些寄存器均为 32位,
?它只有 31条指令, 两种寻址方式 。 其中, 只有两种存储器访问指令,
LOAD( 取数 ) 和 STORE( 存数 ) 指令 。
其功能超过 VAX- 11/780或 M68000,而速度比 VAX- 11/780几乎
快一倍 。
同时, 斯坦福大学推出 MIPS机, IBM公司推出 IBM 801
机, 显示了 RISC的生命力, 并推动了 RISC技术的不断发展 。
这些机种称第一代 RISC处理器, 具有 32位数据通路, 支
持 Cache,但软件支持较少, 性能与 CISC处理器相当 。
(1)第一代 RISC处理器
RISC I机
计算机组成原理 96
第二代 RISC处理器在第一代的基础上提高了集成度和时
钟频率, 建立了比较完善的 Cache分层存储体系 。 它们已具有
单指令流水线, 每次顺序执行多条指令, 每个周期发出一条
指令 。 例如, MIPS公司的 R3000处理器, 则采用了 25MHZ和
33MHZ的时钟频率, 芯片集成度是 11.5万晶体管, 字长 32位 。
(2)第二代 RISC处理器
计算机组成原理 97
第三代 RISC处理器则采用了巨型计算机或大型计算机的设
计技术 —— 超级流水线( Superpipelining)技术和超标量
( Superrscalar)技术。提高了指令级的并行处理能力,使
RISC处理器的整体性能得到改善。
例如,MIPS公式的 R4000处理器 采用 50MHZ和 75MHZ的外部时
钟频率(内部流水线时钟是 100MHZ和 150MHZ),芯片集成度高
达 110万晶体管,字长是 64位,并包含有 16KB的 Cache在芯片上。
它具有 R4000PC,R4000 SC,R4000 MC三种版本,分别提供给
台式系统、高性能服务器和多处理器环境下使用。
(3)第三代 RISC处理器
计算机组成原理 98
自 1983年开始出现商品化 RISC机以来,比较有名的是 RISC计
算机有:
IBM公司的 IBM RT系列;
HP公司的精密结构计算机( HPPA);
MIPS R3000;
Motorola M88000;
Intel 80960;
INMOS Transputer;
AMD Am29000;
Fairchild clipper等。
其中 Clipper兼顾了 RISC和 CISC两方面的特点,又称为 类
RISC机。
计算机组成原理 99
精简指令系统计算机不仅是要 简化指令系统,而且要通过
简化指令系统而使计算机的 硬件结构变得简单合理,以提高运
算速度,最有效的办法是减少指令的执行周期数。
RISC的主要特点
? 若设高级语言程序经编译后在机器上运行的 机器指令数为 I;
? 每条机器指令执行时所需要的 平均机器周期数是 C;
? 每个机器周期的 执行时间为 T,
计算机执行程序的时间 P可用下式计算:
P=I× C× T
1.P,C,I
计算机组成原理 100
? 由于 RISC指令比较简单,原 CISC机中比较复杂的指令可用
RISC中一段子程序代替,因此,RISC中的 I比 CISC的多 20%—
40%;
? 但是,RISC的大多数指令只用一个机器周期实现,C的值比
CISC的小得多 ;
? 又因为 RISC结构简单,完成一个操作所经过的数据通道较短,
因此,T的值大为减少。
T
<1
1
C
1.3 ~1.7
4 ~ 6
I
1.2 ~ 1.4
1
RISC
CICS
RISC/CICS 的 I,C, T统计表
其中,I,T为比值,C为实际周期数)
计算机组成原理 101
RISC继承了 CISC的成功技术,又克服了 CISC的缺点,其
发展速度很快。第三代的 RISC中虽然扩充了许多功能部件,
以至采用了巨型机或大型机的技术。然而,很难在 RISC和
CISC之间划出一条明显的分界线。通过对各种 RISC产品的分
析,可以概括出如下一些主要特点,
2.RISC主要特点
(1) 选取使用频率最高的一些简单指令和很有用但不复杂的指令 ;
(2) 指令长度固定,指令格式种类少,寻址方式种类少 ;
(3) 访问存储器指令极少, 只有取数 /存数指令 ( Load/Store),
其余指令的操作都在寄存器之间进行 。
计算机组成原理 102
(4) 大部分指令在一个机器周期内完成, 复杂指令可化为简单
指令序列, 把它当成子程序使用 ;
(5) CPU中通用寄存器很多 ;
(6) 控制器采用组合逻辑部件, 而不采用微程序控制 ;
(7) 取指令和执行指令采用流水线重叠操作, 提高了运行速度
和信息处理能力 ;
(8) 使存储器靠近 CPU,以减少传送数据的时间延迟, 并在主
存和外存之间设置中间速度存储器, 以加速主存和外存之间的
信息传送 ;
(9) 以简单有效的方式支持高级语言 。
应当指出:商品化的 RISC机通常不会是纯 RISC机, 上述这
些特点不是所有的 RISC机全都具备, 应视实际需要而定 。
计算机组成原理 103
型号 指令数 寻址方式 指令格式 通用寄存器数 主频/MH
Z
RISC-I 31 2 2 78 8
RISC-II 39 2 2 138 12
MIPS 55 3 4 16 4
SPARC 75 4 3 120-136 25-33
MIPSR300
0 91 3 3 32 25
i860 65 3 4 32 30
1.典型 RISC机指令系统的基本特征
计算机组成原理 104
RISC指令系统包含的指令大多数是寄存器 — 寄存器操作指令,
而把访问存储器的指令尽可能的限制于 LOAD/STORE指令。
现用加州伯克莱大学的 RISC II的指令系统为例,供读者分析比较。
(1) RISC II机的指令分四类:
? 寄存器 —— 寄存器的操作指令:
包括移位、逻辑运算、整数运输等共 12条指令。
? 取数 /存数指令:
存取字、半字、字节等,共 16条指令。
? 控制转移指令:
包括条件转移、调用 /返回( Call/Return)等,共 6条指令。
2,RISC指令系统举例
? 其他指令,
包括存取程序状态字 PSW和程序计数器等,共 5条指令。
计算机组成原理 105
? RISC II机的 指令字固定为 32位 ;
? 只有 短立即数 格式和 长立即数 格式两种指令格式 ;
? 指令字中每个字段都有 固定的位置 。
(2) RISC II机指令格式
3.商品化 RISC机的指令数
机 器 名 指 令 数
RISC II 39
MIPS 31
IBM801 120
MIRIS 64
PYRAMID 128
RIDGE 128
ACORN 44
INMOS 111
IBM RT 118
HPPA 140
CLIPPER 101
SPARC 89
计算机组成原理 106
? RISC机则将指令做了简化, 数量减少, 格式也不同, 与老
机器不能兼容 。 因为大多数用户的程序是用高级语言编写的,
重新在 RISC上编译一次即可运行 。
? 有的公司仍然考虑到目标码兼容的问题, 例如 HP公司开发
的目标码翻译器与浮点数转换软件等, 可使目标码程序在采
用 RISC技术的精密体系计算机中运行 。
4.指令系统的兼容问题
当前,计算机公司生产的 各种 CISC都能够实现软件兼容,
新型号或高档机包含了旧型号或抵挡机的全部指令并加以扩充。
因此,用户的目标码程序可以不加修改直接在新机器上运行。
(1) CISC的兼容性
(2) RISC的兼容性