计算机组成原理第四章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) 三地址双操作数指令
操作码 A1
A2 A3
指令功能: (A1) OP (A2) A3 下一条指令的地址由PC提供
(3) 二地址双操作数指令
操作码 A1 A2
指令功能: (A1) OP (A2) A1 下一条指令的地址由PC提供
(1) 三个容易混淆的基本概念
• 指令字长:一条指令中包含二进制代码的位数. • 存储字长:存储单元中二进制数的位数. • 机器字长:计算机能直接处理的二进制数据的位 数,通常与主存单元的位数一致.
计 第四章 指令系统
算 机 组 成 原 理
学习指令系统的目的:对于了解计算机
What How Why 的工作过程和控制方法有重要的作用。
主要学习内容:
4.0指令系统的发展与性能要求 4.1 指令格式 4.2 指令和数据的寻址方式 4.3 CISC和RISC
计 4.0 指令系统的发展与性能要求
算 机 组 成 原 理
4.2指令和数据的寻址方式 4.3 CISC和RISC
4.1 指令格式
1.指令格式
操作码 地址码
• 操作码(Operation code):指明该指令执行 什么性质的操作,不同的指令有不同的操作 码.其位数反映了机器操作种类,即机器允许 的指令条数.
• 地址码:指明操作数所在的地址(Source operand reference),结果存放的地址(Result operand reference)以及下一条指令的地址 (Next instruction reference).
主存
IR OP … D
操作数 D
……
特点:(1)在执行阶段只需一次 访问内存,就能取到操作数;
(2)不必作寻址计算,简单并易于硬件实现; (3) 主存容量 越大,所需地址码越来越多,导致指令的长度增加.
例: 某机主存容量为 16MB,若按字节编址,其地址码 为多少位?
解:16MB=224B ,所以地址码为24位.
(2)二地址指令程序 MOV X,A; (A) X MUL X,B; (X) ×(B) X ADD X,C; (X)+(C) X SUB X,D; (X)-(D) X MOV Y,E; (E) Y ADD Y,F; (F)+(Y) Y DIV X,Y; (X)/(Y) X
3.操作码:指明指令要完成的操作功能及其特性. 指令系统中的每一条指令都有一个唯一确定的操 作码,不同指令有不同的操作码.
• 形式地址(D):也称偏移量,是指令地址字段中给定的地址.
• 有效地址(E):对形式地址进行一定计算而得到的操作数 的实际地址,由寻址方式和形式地址共同确定.
2.存储器直接寻址(Memory direct addressing):指令的地 址码部分给出操作数的存储单元地址.
直接寻址的逻辑表达式为: E=D Data=(E)=(D)
单操作数指令现有L条(最多有(28-K) ×212条),所以留 有[(28-K) ×212-L]个编码作为扩展操作码标志,用于扩 展到无操作数指令;
所以,无操作数指令条数= [(28-K) ×212-L] ×212
4.2 指令和数据的寻址方式
寻址:寻找操作数的地址或下一条将要执行的指令地 址,分为指令寻址方式和操作数寻址方式。
例:设某机器的指令字长为16位,包括基本操作
码4位和三个地址字段,每个地址字段长4位,其
格式为:
15 12 11 8 7 4 3
0
OP
A1
A2
A3
采用扩展操作码的方式,设计:
(1)15条三地址指令,15条两地址指令,15条 一地址指令,16条零地址指令.
(2)15条三地址指令,14条两地址指令,31条 一地址指令,16条零地址指令.
优点:使用灵活,充分利用指令的每一位,指令平均 长度短,码点冗余少,易于扩展; 缺点:指令格式不规整,取指令时需要多次访存,从 而导致不同指令的执行时间不同,硬件控制系统 复杂.
以双操作数运算类指令(如加法指令)为例:
(1) 四地址双操作数指令
操作码 A1 A2 A3 下条指令地址(A4)
指令功能: (A1) OP (A2) A3,A4提供下一条指令的地址
扩展操作码 标志
扩展操作码 标志
扩展操作码 标志
0000 1110 1111 1111 1111 1111 1111 1111 1111 1111 1111
XXXX XXXX 0000 1 1 01 1110 1110 1110 1111 1111 1111 1111
YYYY YYYY YYYY YYYY 0000 0001 1111 0000 1110 1111 1111
(4) 一地址双操作数指令
操作码
A1
指令功能: (A1) OP (AC) AC AC为累加寄存器 下一条指令的地址由PC提供
(5) 零地址双操作数指令
操作码
指令功能:堆栈栈顶和次栈顶中的内容从堆栈 弹出后,进行某种运算,结果压入堆栈.
• 地址个数对程序长度和指令长度的影响
同一个问题,用地址数越多的指令编写的程序越短, 但指令长度越长. 例:分别用三地址、二地址、一地址指令编制计算 x=(a×b+c-d)/(e+f)的程序. 解:假设a、b、c…为操作数,A、B、C…为操作数地址. (1)三地址指令程序
• 等长指令字结构:一个指令系统中,各种指令字长 度是相等的. RISC采用等长指令字结构.
优点:指令字结构简单,长度固定,指令译码时间 短,有利于硬件控制系统的设计,执行速度快; 缺点:指令平均长度长、容易出现冗余码点,指令 不易扩展等. • 变长指令字结构:一个指令系统中,各种指令字 长度随功能而异.CISC采用变长指令字结构.
MUL A,B,X; (A) ×(B) X ADD X,C,X; (X)+(C) X SUB X,D,X; (X)-(D) X ADD E,F,Y; (E)+(F) Y DIV X,Y,X; (X)/(Y) X
(3) 一地址指令程序
LOAD E; (E) AC ADD F; (AC)+(F) AC STORE X; (AC) X LOAD A; (A) AC MUL B; (AC) ×(B) AC ADD C; (AC)+(C) AC SUB D; (AC)-(D) AC DIV X;(AC)/(X) AC STORE X; (AC) X
ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ
ZZZZ 0000 1111
15条三地 址指令 14条二地 址指令
31条一地 址指令
16条零地 址指令
□ 注意事项:
□ 短操作码不能与长操作码 的前面代码部分相同;
□ 各指令的操作码一定不能重复,而且各类指令的 格式安排应统一规整.
的指令是机器指令。
编程语言与硬件结构的关系
比较内容
高级语言 低级语言
对程序员的训练要求
1
(1)通用算法 (2)语言规则
(3)硬件知识
有 较少 不要
有 较多 要
2 对机器独立的程度
独立
不独立
3 编制程序的难易程度 易
难
4 编制程序所需时间
短
较长
5 程序执行时间
较长
短
6
编译过程中对计 算机资源的要求
多
少
4.2.1 指令的寻址方式
1.顺序寻址方式
2.跳跃寻址方式
+1 地址 内存 0 LDA 200
PC 1 ADD 201 2 INC
7 LDA 200
地址 内存
PC
3 JMP 6
4 LDA 206
5 SUB 207
6 INC
7 LDA 200
8
4.2.2 操作数寻址方式(Addressing modes)
指令(instruction): 计算机硬件能识别并直接 执行的操作命令(如加、减、传送、转移等),即 机器指令(Machine Instruction)。
指令系统(指令集:instruction sets):一台计 算机能执行的全部指令的集合。
指令系统反映了计算机具有的基本功能,是 计算机系统硬件、软件的主要分界面。
指令格式为:
设Data为操作数
OP 寻址方式MOD 形式地址D
操作数寻址的目的:CPU根据指令约定的寻址方式对 地址字段的有关信息做出解释,以找到操作数.
• 寻址方式在指令格式中的表示方法通常有两种: 由不同的操作码指明操作数的不同寻址方式(操作码
指明法); 在指令格式中增设寻址方式特征位(寻址方式位法).
若指令系统中有m种操作,即指令系统中可包 含m条指令,则操作码的位数n应满足:
m<=2n, 故 n>=㏒2m
(1) 定长操作码:所有指令的操作码长度一致,均为n位 操作码,集中位于指令字的固定字段中,最多能够表示 2n条指令.
特点:简单规整,由于定长的操作码在指令字中所占 的位数、位置固定,所以指令译码简单,有利于简化硬 件设计.
•有效性:用该指令系统所编写的程序能够高效 地运行。主要体现在程序占用的存储空间、执 行速度方面。
•规整性:指令系统的对称性、匀齐性、指令格 式和数据格式的一致性。
•兼容性:系列计算机的软件继承能力。
计 第四章 指令系统
算 机 组 成 原 理
What How Why 4.0指令系统的发展与性能要求
4.1 指令格式
4:16译码器
…
16条零地址指令
图4.1 指令译码逻辑图
ห้องสมุดไป่ตู้
例2: 某计算机指令长度为32位,有3种指令:双操作数指令、 单操作数指令、无操作数指令.现在用扩展操作码的方式 设计指令,假设每个操作数地址规定用12位表示,已知有双 操作数指令K条,单操作数指令L条,问无操作数指令有多少 条?
解: 由于双操作数指令现有K条(最多有28条),所以留 有(28-K)个编码作为扩展操作码标志,用于扩展到单操 作数指令;
算 机 组 成 原 理
What How Why 4.0指令系统的发展与性能要求
4.1 指令格式
4.2指令和数据的寻址方式 4.3 CISC和RISC
指令寄存器 ×××× ×××× ×××× ××××
译码开始 4:16译码器
4:16译码器
…
…
15条三地址指令 14条二地址指令
4:16译码器
…
31条一地址指令
(2) 变长操作码:操作码长度可变,不同指令的操作码 长度不完全相同,操作码位数不固定,分散地位于指令 字的不同位置上.
特点:可以在指令字长有限的前提下仍保持较丰 富的指令种类.但由于操作码的位数不固定且位置分散, 故增加了指令译码与分析的难度,使硬件设计复杂化.
具体做法:在指令中有一个固定长度的字段表示基本 操作码,而对于某一部分不需要某个地址码的指令,把它 们的操作码扩充到该地址字段,也称扩展操作码技术.
4.存储器间接寻址(Indirect addressing):指
令地址码部分给出操作数地址的地址.
E=(D)
Data=(E)=((D))
基本概念
What How Why • 指令:就是要计算机执行某种操作的命令。 从计算机组成的层次结构来说,计算机的 指令有微指令、机器指令和宏指令之分。
• 微指令是微程序级的命令,它属于硬件;
• 宏指令:由若干条机器指令组成的软件指 令,它属于软件;
• 机器指令:介于微指令与宏指令之间,通 常简称为指令,每一条指令可完成一个独 立的算术运算或逻辑运算操作。本章讨论
(2) 指令的长度
• 单字长指令:指令字长等于机器字长. • 双字长指令: 指令字长等于两个机器字长的指令. 例如:IBM 370的指令长度有16位(半字)、32位(单字) 及 48位(一个半字).
2.地址码结构
设计指令的地址码格式时需解决: • 一条指令中指明几个地址(与指令所涉及的操 作数个数有关); • 如何给出地址(显地址—地址信息明显地给出; 隐地址—地址信息依据某种事先约定, 用隐含的 式给出). • 地址码应选多长(与存储单元容量、编址单位大 小和寻址方式有关).
例1(P151.题2):假设某计算机指令长度为20位,具有双操作 数、单操作数、无操作数三类指令形式,每个操作数地址 规定用6位表示,问:
若操作码字段固定为8位,现设计出m条双操作数指令,n 条无操作数指令,在此情况下,这台计算机最多可以设计出 多少条单操作数指令?
解:28-m-n条.
计 第四章 指令系统
指令系统既是计算机硬件设计的主要依据, 又是计算机软件设计的基础,一台计算机指令系 统的优劣直接影响着计算机系统的性能.
指令系统随技术、应用及设计思想的发展也 有一个产生发展及完善的过程。
对指令系统的设计要求包括: •完备性:要求指令系统丰富、功能齐全、使用 方便。计算机中最基本、必不可少的指令并不 多,许多指令可用最基本的指令编程实现(主 要是复杂指令)。