计算机系统结构全套课件-第2章-计算机指令集结构
合集下载
《计算机系统结构(第2版)》清华课件第2章
1 27 27 1 N (1 2 23) 2 2 2
即:
2
129
N (1 2
23
)2
127
1位
1位
7位
23 位
mf
ef
e
m
注:mf 为尾数的符号位,ef 为阶码的符号位,e 为阶码的值,m 为尾数的值。
• 规格化最大正数: 0111 1111 1111 1111 1111 1111 1111 1111 • 规格化最小正数: 0000 0000 0100 0000 0000 0000 0000 0000 • 规格化最大负数: 1000 0000 0100 0000 0000 0000 0000 0000 • 规格化最小负数: 1111 1111 1111 1111 1111 1111 1111 1111
1 ( p 1) 当rm=2时,有: (2, p) 2 2 p 2
5. 浮点数的表数效率
• 浮点数是一种冗余数制(Redundat Number System) • 浮点数的表数效率定义为:
可表示的规格化浮点数个数 2(rm 1) rm p 1 2 req 1 全部浮点数个数 2 rm p 2 req
2.1.3
浮点数格式设计
1. 浮点数格式设计的主要问题
在表示浮点数的6个参数中,只有尾数基值rm、尾数长 度p和阶码长度q与表数范围、表数精度和表数效率 有关
N rm
re 1
q
(r
m,
p)
rm
1 2
( p 1)
rm 1 (rm) rm
在字长确定的情况下,如何选择尾数基值rm, 使表数范围最大、表数精度和表数效率最高
计算机系统结构课件第2章
2.1
数据表示:
数据表示
研究计算机硬件能够直接辨认与处理的数据类型 所谓“硬件能够直接辨认与处理”,指的是对该数据类型的各 种运算操作都有相应的实现硬件电路。 通常数据表示涉及的数据类型有整数、实数、逻辑数、浮点数、 字符串等。
数据结构:
研究应用领域中的各种复杂数据类型。 如:队列、链表、图、树、文件等, 研究它们的存储、处理、运算方法,并给出相应的算法。
2.1.1.1 浮点数的组成 浮点数的组成与“科学记数法”非常相似,但各部分均为有限位 数: e m
N m r
其中:
N 浮点数 m 尾数的值,纯小数,符合规格化原则(最高位的绝对值不为0)
e r 阶码的值,整数,常用移码表示 基值,常见的有2进制、8进制、16进制、10进制等
浮点数的机内格式
计算机系统结构主要研究数据表示,主要为浮点数的表示
2.1.1
浮点数据表示
浮点数据就是高级语言课程中所说的“实型数”。 定点数据表示的缺点: 编程困难 表示数的范围小 数据存储单元的利用率低(大量的前置0,造成浪费)
浮点数表示方式要研究的核心内容:
数据长度与表数范围、表数精度和表数效率之间的关系。
2( rm 1) rmp1 2 req 1 2 rmp 2 req
化简,并忽略机器 0 :
rm 1 rm
21 50 % 信息利用率很低。 现考察尾基=2时的情况: ( 2) 2 16 1 ( 16 ) 94 % 而尾基=16时, 16
1. 加减法
(1)同号尾数相加、异号尾数相减,不必设置警戒位; 原因:结果的绝对值<2,不需要左规格化。 (2)同号尾数相减、异号尾数相加, 若阶差为0,不必设置警戒位; 若阶差为1,只需设置1位警戒位; 若阶差 >1,只需设置1位警戒位用于左规。
计算机系统结构chap2-0929
Department of Computing and Information Technology
寻址方式 寄存器寻址
指令实例 Add R4 ]+Regs[R3]
立即值寻址
偏移寻址 寄存器间接寻址 索引寻址 直接寻址或绝对寻 址 存储器间接寻址
Add R4 , #3
自增寻址
Add R1 , (R2)+
Add R1, -(R2) Add R1 , 100(R2)[R3]
Regs[R1]←Regs[R1]+Mem[Regs[R2]] Regs[R2]←Regs[R2]+d
Regs[R2]←Regs[R2]-d Regs[R1]←Regs[R1]+Mem[Regs[R2]] Regs[R1]←Regs[R1] + Mem[100 + Regs[R2] + Regs[R3]*d]
Department of Computing and Information Technology
2.1 指令集结构的分类
2.1.2 通用寄存器型指令集结构的分类 早期的计算机中采用堆栈指令集结构和累加器 指令集结构比较多,但现代CPU,通用寄存器型指 令集结构已成为指令集结构的主流,原因: 1. 通用寄存器型指令集结构的主要优点 (1) 使编译器有效地使用寄存器;
(2) 在表达式求值方面,比其它类型指令集结构 具有更大的灵活性;
Department of Computing and Information Technology
2.1 指令集结构的分类
(3) 寄存器可以用来存放变量。
◆ 减少存储器的通信量,加快程序的执行速度。
(因为寄存器比存储器快)
◆ 可以用更少的地址位来寻址寄存器,从而可
第2章_计算机组织结构-PPT教材
§2 8086微计算机组织结构
2.1.1 Intel 8086CPU内部结构 P14
段寄存器 控制寄存器
通用寄存器
返回本章首页
§2 8086微计算机组织结构
2.1.2 8086寄存器组
CPU
P15
80 86 寄 存 器 分 组
§2 8086微计算机组织结构
寄存器组
1 通用数据寄存器
P15
数据寄存器共有4个寄存器AX、BX、CX、DX,每个
2 寄存器寻址
P27
寄存器寻址方式的操作数在指令指明的寄存器中。
汇编格式:R 其中R表示寄存器名。
功能:操作数直接存放在寄存器R中。
图形表示: R 指令→操作数
内存中 的代码
ADD AX,BX AX+=BX; //c语言
R操作数
§2 8086微计算机组织结构
【例2.4】
下列程序执行后,(AX)=?,(BX)=?
返回本节
§2 8086微计算机组织结构
2.2.3 物理地址的形成
P19
8086,80286的字长是16位。
80386到PII机的字长为32位。
8086,8088的地址线是20位的,这样最大可寻址 空间应为220=1MB,其物理地址范围从00000H~ FFFFFH。
80286的地址总线宽度为24位 80386,80486,Pentium的地址总线宽度为32位
§2 8086微计算机组织结构
4.指令指针
P17
8086CPU中的指令指针IP,它总是保存下 一次将要从主存中取出指令的偏移地址,偏移地 址的值为该指令到所在段段首址的字节距离。在 目标程序运行时,IP的内容由微处理器硬件自动 设置,程序不能直接访问IP,但一些指令却可改 变IP的值,如转移指令、子程序调用指令等。
计算机体系结构第2版课件第2章 第2讲
寻址技术
寻址实际上是从形式地址到实际地址的转换。 形式地址由指令描述,实际地址也称为有效 地址。
有效地址指明的是存储器单元的地址或寄存 器地址。
必须加速有效地址生成。
常用的一些操作数寻址方式
寄存器寻址
指令实例:Add R4 , R3 含义:Regs[R4]←Regs[R4]+Regs[R3]
八十年代发展起来的精简指令集计算机(RISC), 其目的是尽可能地降低指令集结构的复杂性,以达 到简化实现,提高性能的目的。
CISC指令集功能设计
面向目标程序增强指令功能
提高运算型指令功能; 提高传送指令功能; 增加程序控制指令功言和编译系统支持的指令功能; 高级语言计算机指令系统。
常用的一些操作数寻址方式
自减寻址
指令实例:Add R1, -(R2) 含义:
Regs[R2]←Regs[R2]-d Regs[R1]←Regs[R1]+Mem[Regs[R2]]
缩放寻址
指令实例:Add R1 , 100(R2)[R3] 含义:
Regs[R1]←Regs[R1]+Mem[100+ Regs[R2]+Regs[R3]*d]
操作数的类型和大小
整数(定点):二进制补码表示;其大小可以是字 节(8位)、半字(16位)或单字(32位)。
浮点:可以分为单精度浮点(单字大小)和双精度 浮点(双字大小)。当前普遍采用的是IEEE 754 浮点操作数表示标准。
字符和字符串:8位ASCII码表示。
操作数的类型和大小
十进制:通常采用 “压缩十进制”或“二进制编 码十进制”表示。压缩十进制数据表示用4位编码 数字0~9,然后将两个十进制数字压缩在一个字 节中存储。如果将十进制数字直接用字符串来表示, 就叫做“非压缩十进制”表示法。
第2章计算机系统结构PPT课件
(2)I/O中断
中央处理器按程序规定的顺序执行指令,当中央处理器执 行到一条“启动外设(启动I/O)”指令时,就按指令中给定的 参数启动指定的设备,并把设备的控制权交给输入输出控制系 统。由输入/输出控制系统控制外围设备与主存储器之间的信息 传送,外围设备独立工作,不再需要中央处理器的干预,于是 中央处理器可以继续执行其他程序。(中央处理器和外设便可 以并行工作)
2.2.1 计算机系统的硬件环境之并行工作
1、CPU与外设并行工作的I/O中断(P17) 在现代通用计算机系统中,输入/输出控制系统负责完成外围设备与
主存储器之间的信息传送。 (1)CPU与外设并行工作
各种外设连接到相应的设备控制器上,通过通道把设备控制器连接 到公共的系统总线上,这种结构允许CPU与外设并行工作。
这些寄存器都是处理器的工作寄存器,当处理器执行程序时, 每次从主存储器中读出一条指令,并把它存入“指令寄存器”中, 然后分析指令,根据指令中指定的地址,从主存储器读出操作数, 存入“通用寄存器”,根据指令中的操作码,对操作数进行运算, 并将所得的结果或暂存在通用寄存器中或存储到主存储器中,利用 控制寄存器来保证各程序交替占用处理器时能正确执行,保证系统 安全。
但由于外围设备是由中央处理器根据程序的要求而启动的, 故当外围设备工作结束后,应反馈该设备的工作情况,形成一 个“输入/输出操作结束的事件”,由中断完成,硬件识别该事 件后就急触发一个I/O中断,并暂停当前占用中央处理器的程序 的执行,让操作系统的处理程序来处理这个“输入/输出操作结 束”事件,操作系统进行分析后就可以知道该外围设备的工作 情况,从而确定启动该外围设备的程序的工作状态。
▪ 如果没有找到,就从主存中读取,同时把这个数据复制到高速 缓存中
计算机系统结构课件第2章
2.Huffman编码法 Huffman编码法是1952年由Huffman提出的一种可变字长编码 (VLC)。采用Huffman编码法表示操作码,必须先知道各种指令在 程序中出现的概率,这可通过对典型程序统计得到。根据 Huffman编码法的原理,操作码的最短长度可通过下式计算:
H pi log 2 pi
(3)主存寻址 主存寻址是所有计算机中都普遍采用的一类寻址方式,其寻 址种类也最为复杂。主存寻址的指令格式主要有: OPC M OPC M, M OPC M, M, M (4)堆栈寻址 堆栈寻址方式的地址是隐含的,在指令中不必给出操作数的 地址。因此,指令的长度很短,一般的形式有: OPC OPC M
i 1
n
Pi表示第i种操作码在程序中出现的概率,一共有n种操作码。 如果采用固定长操作码,n种操作码共需要个 log 2 n 二进制 位,因此固定长度操作码的信息冗余量为:
R 1
pi log 2 pi
i 1
n
log 2 n
3.扩展编码法 Huffman编码法能使操作码的平均长度最短,信息的冗余量 最小。然而,这种编码方法所形成得操作码很不规整。这不利于 硬件的译码,也不利于软件的编译,也很难与地址码配合,形成 有规则长度的指令编码。 在许多处理机中,采用了一种新的折中的方法,称为扩展编 码法。这种方法是由固定长操作码与Huffman编码法相结合形成 的。对于上节中有7条指令的模型机例子,如果采用扩展编码法编 排操作码,可有多种方法。
3.自定义数据表示 为了减少高级语言与机器语言之间的差别,采用了自定义数 据表示,就是由数据本身来表明数据类型,这样可以使每种指令 的种类大为减少,称为通用化指令。自定义数据表示有带标志符 数据表示和数据描述符表示。 (1)带标志符数据表示就是对每一个数据都附加一个标志符, 由这个标志符来表示这个数据的类型。这种表示法的优点是:简 化指令系统;易于对编程查错;自动类型转换;简单化编译;方 便程序调试。缺点是增加存储空间又使指令执行速度变慢。 (2)数据描述符表示,主要用来描述复杂和多维结构的数据 类型,如向量、记录等。它与带标志符数据表示不同之处是: ①标志符与每个数据相连,两者合存在一个存储单元中;而 描述符则和数据分开存放; ②要访问数据集中的元素时,先访问描述符,这至少增加一 级寻址; ③描述符看成是程序一部分,而不是数据的一部分。标志符 则可看作是数据的一部分。
计算机系统结构 第 2 章 指令集结构
2014-3-8 9
2.1 指令系统结构的分类
• • • • • • 1. 指令系统分类的准则 ⑴ 在CPU中操作数的存放方法。 ⑵ 在每条指令中,显式指明的操作数个数。 ⑶ 操作数的寻址方式。 ⑷ 指令系统所提供的操作类型。 ⑸ 操作数的类型与大小。
2014-3-8
10
2.指令系统结构的分类
• • • • 按在CPU中操作数的存放方法可分为: ⑴ 堆栈型 ⑵ 累加器型 ⑶ 通用寄存器型
2014-3-8
21
4. 编址单位
• ⑴ 字编址:以访问一次设备所获得的信息量 为单位进行编址。 • ⑵ 字节编址:以字节为单位进行编址。 • ⑶ 位编址:按二进制位编址。
2014-3-8
22
按字节编址时需解决的问题
• ① 多字节数据的存放顺序 • 小端排序:将一个字中的低位字节存放在低地址 单元中。 • 大端排序:将一个字中的高位字节存放在低地址 单元中。 • 小端排序符合从右向左进位的硬件习惯;大端排 序符合程序员从左向右的编程习惯。
• 5. 按地址寻址方式(略,P47)
• 寻址方式的使用频度:
• R寻址->直接->变址->单字位移->自增->R间址->自减 • 高 -------------------------- 低
2014-3-8
26
2.2.2 按内容访问方式
• • • • • 1. 按内容访问方式 按照要访问的数据的内容访问内存。 2. 联想存储器(相联存储器、按内容访问存储器) 满足按内容访问方式的存储器。 联想存储器的主要特点:以并行方式在存储器中 查找所需信息的内容。 • 3. 按内容访问的方法 • 通过硬件将要访问的内容与存储单元的内容进行 比较,若相同,则进行访问。
2.1 指令系统结构的分类
• • • • • • 1. 指令系统分类的准则 ⑴ 在CPU中操作数的存放方法。 ⑵ 在每条指令中,显式指明的操作数个数。 ⑶ 操作数的寻址方式。 ⑷ 指令系统所提供的操作类型。 ⑸ 操作数的类型与大小。
2014-3-8
10
2.指令系统结构的分类
• • • • 按在CPU中操作数的存放方法可分为: ⑴ 堆栈型 ⑵ 累加器型 ⑶ 通用寄存器型
2014-3-8
21
4. 编址单位
• ⑴ 字编址:以访问一次设备所获得的信息量 为单位进行编址。 • ⑵ 字节编址:以字节为单位进行编址。 • ⑶ 位编址:按二进制位编址。
2014-3-8
22
按字节编址时需解决的问题
• ① 多字节数据的存放顺序 • 小端排序:将一个字中的低位字节存放在低地址 单元中。 • 大端排序:将一个字中的高位字节存放在低地址 单元中。 • 小端排序符合从右向左进位的硬件习惯;大端排 序符合程序员从左向右的编程习惯。
• 5. 按地址寻址方式(略,P47)
• 寻址方式的使用频度:
• R寻址->直接->变址->单字位移->自增->R间址->自减 • 高 -------------------------- 低
2014-3-8
26
2.2.2 按内容访问方式
• • • • • 1. 按内容访问方式 按照要访问的数据的内容访问内存。 2. 联想存储器(相联存储器、按内容访问存储器) 满足按内容访问方式的存储器。 联想存储器的主要特点:以并行方式在存储器中 查找所需信息的内容。 • 3. 按内容访问的方法 • 通过硬件将要访问的内容与存储单元的内容进行 比较,若相同,则进行访问。
计算机体系结构第2版课件第2章 第3讲
MIPS的浮点操作有:加、减、乘、除。
MIPS中的常用指令
条件分支
整型比较
或
compress eqntott
espresso
与
gcc
li
0.00% 5.00% 10.00% 15.00% 20.00% 25.00% 30.00%
指令使用频率的整型平均
MIPS中的常用指令
浮点寄存器移动 浮点减
doduc hydro2d su2cor
寄存器型跳转并链接 Regs[R31]←PC+4; PC← Regs[R2];
“等于0”分支
if (Regs[R4]==0) PC ← name+ PC+4;-215≤name ≤215
“不等于0”分支
if (Regs[R4]!=0) PC ← name+ PC+4;-215≤name ≤215
6 操作码
符号“##”用来表示两个域的串联操作, 它可以出现在数据传送操作的任何一边。
MIPS指令集结构:操作类型
域的下标用来表明从该域中选择某一位。域 中位的标记是从最高位开始标记,并且起始 标记为0。下标可以是一个单独的数字,如 Regs[R4]0表示选择寄存器R4中内容的 符号位;下标也可以是一个范围,如 Regs[R3]24..31表示选择寄存器R3中内容 的最低一个字节。
MIPS指令集结构:操作类型
上标表示复制一个域,如024可以得到一个 24位全为0的一个域。
变量Mem用来表示存储器中的一个数组, 存储器按照字节寻址,它可以传送任何数目 的字节。
MIPS指令集结构:操作类型
Regs[R10]16..31 16 (Mem[Regs[R8]]0)8 ## Mem[Regs[R8]]
MIPS中的常用指令
条件分支
整型比较
或
compress eqntott
espresso
与
gcc
li
0.00% 5.00% 10.00% 15.00% 20.00% 25.00% 30.00%
指令使用频率的整型平均
MIPS中的常用指令
浮点寄存器移动 浮点减
doduc hydro2d su2cor
寄存器型跳转并链接 Regs[R31]←PC+4; PC← Regs[R2];
“等于0”分支
if (Regs[R4]==0) PC ← name+ PC+4;-215≤name ≤215
“不等于0”分支
if (Regs[R4]!=0) PC ← name+ PC+4;-215≤name ≤215
6 操作码
符号“##”用来表示两个域的串联操作, 它可以出现在数据传送操作的任何一边。
MIPS指令集结构:操作类型
域的下标用来表明从该域中选择某一位。域 中位的标记是从最高位开始标记,并且起始 标记为0。下标可以是一个单独的数字,如 Regs[R4]0表示选择寄存器R4中内容的 符号位;下标也可以是一个范围,如 Regs[R3]24..31表示选择寄存器R3中内容 的最低一个字节。
MIPS指令集结构:操作类型
上标表示复制一个域,如024可以得到一个 24位全为0的一个域。
变量Mem用来表示存储器中的一个数组, 存储器按照字节寻址,它可以传送任何数目 的字节。
MIPS指令集结构:操作类型
Regs[R10]16..31 16 (Mem[Regs[R8]]0)8 ## Mem[Regs[R8]]
《指令集结构》课件
指令的格式与编码方式
指令的格式决定了指令的组成方式和字段含义,而编码方式决定了指令如何在计算机中存储和传 输。
直接编码 间接编码 立即数编码
指令的操作码和操作数直接编码在指令中。 指令的操作数通过地址或寄存器间接引用。 指令中直接包含了操作数的值。
指令的执行过程和流水线结构
1
取指令(IF)
从内存中获取指令。
R IS C (精简指令集计算机)
精简的RISC架构采用更简单的指令集,执行效 率高,但需要更多指令来完成复杂的操作。
指令ห้องสมุดไป่ตู้的设计原则与考虑因素
1 简洁性
指令集应尽量简洁明了,易于编码和解码。
2 效率
指令的执行效率和资源利用率是设计指令集时需要考虑的重要因素。
3 兼容性
新的指令集应与现有的指令集兼容,以便支持现有软件。
指令集的分类与特点
C IS C (复杂指令集计算机)
特点:指令多样、复杂,执行一条指令可能需要多个时钟周期。
R IS C (精简指令集计算机)
特点:指令简单、精简,执行一条指令只需要一个时钟周期。
常见的指令集架构:C IS C 与R IS C
C IS C (复杂指令集计算机)
传统的CISC架构包含大量复杂的指令,可以完 成复杂的操作,但执行效率较低。
《指令集结构》PPT课件
本课件将介绍指令集结构的定义与概述,不同指令集的分类与特点,常见的 CISC和RISC架构,指令集的设计原则与考虑因素,指令的格式与编码方式,指 令的执行过程和流水线结构,以及指令集结构的发展趋势。
指令集结构的定义与概述
指令集结构是计算机体系结构的核心之一,它定义了计算机能够执行的指令 以及这些指令的格式和编码方式。
计算机体系结构第2版课件第2章 第1讲
和累加器。 操作数地址隐含表示或显式表示。
指令集与计算机的性能
TCPU CPI IC TCLK
源程序
指令集
指令译码
指令编码
优化编译器
目标代码
CPI和数据通路 复杂度
2. 指令集结构的分类
一般来说,可以从如下五个因素考虑对计算 机指令集结构进行分类,即:
在CPU中操作数的存储方法; 指令中显式表示的操作数个数; 操作数的寻址方式; 指令集所提供的操作类型; 操作数的类型和大小。
两种主要的指令特性能够将通用寄存器型指 令集结构(GPR)进一步细分。
ALU指令到底有两个或是三个操作数? 在ALU指令中,有多少个操作数可以用存储器
来寻址,也即有多少个存储器操作数?
通用寄存器型指令集结构的分类
ALU指令中 存储器操作 数的个数
0
ALU指令中 操作数的最多
个数
3
结构 类型
RR
机器实例
MIPS, SPARC, Alpha, PowerPC, ARM
1
2
RM
IBM 360/370, Intel 80x86, Motorola 6800
3
RM
IBM 360/370
2
2
MM
VAX
3
3
MM
VAX
通用寄存器型指令集结构的分类
可以将当前大多数通用寄存器型指令集结构 进一步细分为三种类型:
缺点:
由于有一个操作数的内容将被破坏,所以指令中的两个操 作数不对称。在一条指令中同时对寄存器操作数和存储器 操作数进行编码,有可能限制指令所能够表示的寄存器个 数。指令的执行时钟周期因操作数的来源(寄存器或存储 器)的不同而差别比较大。
指令集与计算机的性能
TCPU CPI IC TCLK
源程序
指令集
指令译码
指令编码
优化编译器
目标代码
CPI和数据通路 复杂度
2. 指令集结构的分类
一般来说,可以从如下五个因素考虑对计算 机指令集结构进行分类,即:
在CPU中操作数的存储方法; 指令中显式表示的操作数个数; 操作数的寻址方式; 指令集所提供的操作类型; 操作数的类型和大小。
两种主要的指令特性能够将通用寄存器型指 令集结构(GPR)进一步细分。
ALU指令到底有两个或是三个操作数? 在ALU指令中,有多少个操作数可以用存储器
来寻址,也即有多少个存储器操作数?
通用寄存器型指令集结构的分类
ALU指令中 存储器操作 数的个数
0
ALU指令中 操作数的最多
个数
3
结构 类型
RR
机器实例
MIPS, SPARC, Alpha, PowerPC, ARM
1
2
RM
IBM 360/370, Intel 80x86, Motorola 6800
3
RM
IBM 360/370
2
2
MM
VAX
3
3
MM
VAX
通用寄存器型指令集结构的分类
可以将当前大多数通用寄存器型指令集结构 进一步细分为三种类型:
缺点:
由于有一个操作数的内容将被破坏,所以指令中的两个操 作数不对称。在一条指令中同时对寄存器操作数和存储器 操作数进行编码,有可能限制指令所能够表示的寄存器个 数。指令的执行时钟周期因操作数的来源(寄存器或存储 器)的不同而差别比较大。
计算机系统结构(第3版)教学课件第2章 计算机指令集结构
主要是因为在存储器中所保存的数据并不是十分 集中,需要使用不同的偏移量才能对其进行访问。
➢ 较小的偏移量和较大的偏移量均占有相当大 的比例
▲
19/75
2.2 寻址方式
5. 立即数寻址方式 ➢ 立即数寻址方式的使用频度
指令类型
使用频度
整型平均
浮点平均
load指令
23%
22%
ALU指令
25%
19%
所有指令
3. 将指令集结构分为三种类型
▲
3/75
2.1 指令集结构的分类
➢ 堆栈结构 ➢ 累加器结构 ➢ 通用寄存器结构
根据操作数的来源不同,又可进一步分为: 寄存器-存储器结构(RM结构)
(操作数可以来自存储器 ) 寄存器-寄存器结构(RR结构)
(所有操作数都是来自通用寄存器组) 也称为load-store结构,这个名称强调:只有
Add R3 , (R1 + R2) Add R1 , (1001)
Add R1 , @(R3)
Regs[R3]←Regs[R3]+Mem[Regs[R1]+Regs[R2]] Regs[R1]←Regs[R1]+Mem[1001] Regs[R1]←Regs[R1]+Mem[Mem[Regs[R3]]]
6. 通用寄存器结构 ➢ 现代指令集结构的主流 ➢ 在灵活性和提高性能方面有明显的优势
跟其他的CPU内部存储单元一样,寄存器的访问 速度比存储器快。
对编译器而言,能更加容易、有效地分配和使用 寄存器。
寄存器可以用来存放变量。 (1)减少对存储器的访问,加快程序的执行速度; (因为寄存器比存储器快)
在load-store结构的机器(Alpha)上运行SPEC CPU2000基准程序
➢ 较小的偏移量和较大的偏移量均占有相当大 的比例
▲
19/75
2.2 寻址方式
5. 立即数寻址方式 ➢ 立即数寻址方式的使用频度
指令类型
使用频度
整型平均
浮点平均
load指令
23%
22%
ALU指令
25%
19%
所有指令
3. 将指令集结构分为三种类型
▲
3/75
2.1 指令集结构的分类
➢ 堆栈结构 ➢ 累加器结构 ➢ 通用寄存器结构
根据操作数的来源不同,又可进一步分为: 寄存器-存储器结构(RM结构)
(操作数可以来自存储器 ) 寄存器-寄存器结构(RR结构)
(所有操作数都是来自通用寄存器组) 也称为load-store结构,这个名称强调:只有
Add R3 , (R1 + R2) Add R1 , (1001)
Add R1 , @(R3)
Regs[R3]←Regs[R3]+Mem[Regs[R1]+Regs[R2]] Regs[R1]←Regs[R1]+Mem[1001] Regs[R1]←Regs[R1]+Mem[Mem[Regs[R3]]]
6. 通用寄存器结构 ➢ 现代指令集结构的主流 ➢ 在灵活性和提高性能方面有明显的优势
跟其他的CPU内部存储单元一样,寄存器的访问 速度比存储器快。
对编译器而言,能更加容易、有效地分配和使用 寄存器。
寄存器可以用来存放变量。 (1)减少对存储器的访问,加快程序的执行速度; (因为寄存器比存储器快)
在load-store结构的机器(Alpha)上运行SPEC CPU2000基准程序
计算机系统结构-2
SPECfp92² â ¿ Á ³ Í Æ ¼ á ½ û ¸
8
9
10 11 12 13 14 15
x轴的标记是对偏移量大小进行log2(· )运算 所得,也就是偏移量字段的位数。
20
第二章
计算机指令集结构设计
◆ 程序所使用的偏移量大小分布十分广泛;
◆ 较小的偏移量和较大的偏移量均占有相当大的比例;
55% 43% 39% 32% 40%
24% 16% 1% 6% 1% 0% 6% 3% 11% 17%
Ö ²
Ö ²
Ö ²
Ö ²
Ñ °
Ñ °
Ñ °
Ñ °
² Å
½ Ó
½ Ó
¼ ´
¼ ä
Ë õ
¼ ä
Á ¢
Æ ÷
´ ¢
´ æ
立即值寻址方式和偏移寻址方式的使用频率十分高。
¼ Ä
´ æ
Æ ÷
Æ «
Ò Æ
Ñ °
Add C, A, B
第二章
计算机指令集结构设计
• 三种类型的优缺点比较
优点 缺点 R-R 简单, 定长指令编码。 简 指令数多,一些编码位浪 (0,3) 单代码生成模式。 指令执 费。 行的时钟周期数相近。 R-M 数据不必先取再访问。 指 操作数不对等, 一个操作数 (1,2) 令格式易于编码, 代码密 会被破坏。一条指令中的 度较高。 Reg 数受限。 指令执行时钟 周期数不同。 M-M 代码密度最高。 不必浪费 指令长度变化大, 指令执行 (3,3) Reg 存放临时变量 所需时钟周期数变化大, 存 储器成为系统性能瓶颈。
强化指令功能,实现软件功能向硬件功能转移。 增强指令功能,设臵一些功能复杂的指令,把一些原 来由软件实现的、常用的功能改用硬件的指令系统来实 现,这种计算机称为复杂指令集计算机
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指令字长多种多样。每条指令的 存储器-存 是一种最紧密的编 储器型 码方式,无需“浪费”执行时钟周期数也大不一样,对存 储器的频繁访问将导致存储器访问 (3,3) 寄存器保存变量。 瓶颈问题。
第二章 计算机指令集结构设计
2.2
寻址技术
1. 在通用寄存器指令集结构中,一般是利用寻址方 式指明指令中的操作数是一个常数、一个寄存器 操作数,抑或是一个存储器操作数。 2. 当前指令集结构中所使用的一些操作数寻址方式。
根据五个因素对计算机指令集结构进行分类:
(1) 在CPU中操作数的存储方法
(2) 指令中显式表示的操作数个数 (3) 操作数的寻址方式
(4) 指令集所提供的操作类型
(5) 操作数的类型和大小
4/81
2.1 指令集结构的分类
CPU中操作数的存储方法,是各种指令集结构
之间最主要的区别所在。
1. CPU中用来存储操作数的存储单元主要有: 堆栈
堆栈 累加器
一组寄存器
2/3
寄存器或存 Load/Store寄存 储器 器或存储器
6/81
2.1 指令集结构的分类
4. 根据CPU内部存储单元类型进行分类,可以分为
堆栈型指令集结构 累加器型指令集结构
通用寄存器型指令集结构
例 C=A+B表达式在这三种类型指令集结构上的
实现方法。假设A、B、C均是保存在存储器单元中,
计算机系统结构 全套精品课件
2/81
第二章 计算机指令集结构设计
2.1 2.2 2.3 2.4 2.5
指令集结构的分类 寻址技术 指令集结构的功能设计 操作数的类型、表示和大小 指令集格式的设计
2.6 DLX指令集结构
3/81
第二章 计算机指令集结构设计
2.1 指令集结构的分类
2.1.1 指令集结构分类
16/81
寻址方式 寄存器寻址
指令实例 Add R4 , R3
含
义
Regs[R4]←Regs[R4]+Regs[R3]
立即值寻址
偏移寻址 寄存器间接寻址 索引寻址 直接寻址或绝对寻 址 存储器间接寻址
Add R4 , #3
且A和B的值在运算过程中一直被保持。
7/81
C=A+B表达式在这三种类型指令集结构上的实现方法
寄存器
堆栈
累加器
(寄存器-存储器)
寄存器 (寄存器-寄存器)
PUSH A
LOAD A
LOAD R1,A
LOAD R1,A
PUSH B
ADD B
ADD R1,B
LOAD R2,B
ADD
Store C
Store C,R1
3. 两种主要的指令特性能够将通用寄存器指令集结构
(GPR)进一步细分 (1) ALU指令到底有两个或是三个操作数?
◆ 有三个操作数的指令:两个源操作数
一个结果操作数
11/81
2.1 指令集结构的分类
◆ 有两个操作数的指令:一个操作数既作为源操
作数,也作为目的操作数。 (2) 在ALU指令中,有多少个操作数可以用存储器来寻 址,也即有多少个存储器操作数? 一般来说,ALU指令有0~3个存储器操作数。
指令中的操作数类型不同。在一 可以直接对存储器操 条指令中同时对一个寄存器操作数 寄存器-存 作数进行访问,容易 和存储器操作数进行编码,将限制 对指令进行编码,且 指令所能够表示的寄存器个数。由 储器型 其目标代码较小。 (1,2) 于指令的操作数可以存储在不同类 型的存储器单元,所以每条指令的 执行时钟周期数也不尽相同。
累加器 一组寄存器
2. 指令中的操作数可以显式给出,也可以隐式地给出。
3. CPU对操作数的不同存取方式
5/81
CPU对操作数的不同存取方式
CPU提供的
暂存器
每条ALU指令显式表示的
操作数个数 0 1
运算结果的
目的地 堆栈 累加器
访问显式操作数的
过程 Push/Pop Load/Store 累加器
(4) 常见的三种通用寄存器型指令集结构的优缺点 注:表中(m,n)的含义是, 指令的n个操作 数中有m个存储器操作数。
14/81
指令集结构 类型
优 点
缺 点
简单,指令字长固 寄存器-寄 定,是一种简单的代 和指令中含有对存储器操作数访问 存器型 码生成模型,各种指 的结构相比,指令条数多,因而其 (0,3) 令的执行时钟周期数 目标代码较大。 相近。
Add R3,R1,R2
POP C
Store C,R3
8/81
三种类型指令集结构的优缺点
指令集结 构类型 优 点 缺 点
堆栈型
堆栈不能被随机访问,从而很难生 简单模型;指令短小。成有效代码。同时,由于堆栈是瓶颈, 所以很难被高效地实现。 是一种表示计算的 减小了机器的内部 由于累加器是唯一的暂存器,这种
12/81
ALU指令中,存储器操作数个数和操作数个数的 所有可能组合,以及相应的机器实例 ALU指令中存储器 操作数个数 0 ALU指令中操作数的 最大个数 机器实例
2
3 2
IBM RT-PC
SPARC,MIPS PDP-10 , IBM 360 , Motorola 68000
1
3
2 3 3
IBM360的部分指令
累加器型
状态;指令短小。
机器的存储器通信开销最大。
所有操作数均需命名,且显式表示, 因而指令比较长。
是代码生成最一般 寄存器型 的模型。
9/81
2.1 指令集结构的分类
2.1.2 通用寄存器型指令集结构的分类
1. 通用寄存器型指令集结构的主要优点
使编译器有效地使用寄存器。 (1) 在表达式求值方面,比其它类型指令集结构 具有更大的灵活性; (2) 寄存器可以用来存放变量。
◆ 减少存储器的通信量,加快程序的执行速度。
(因为寄存器比存储器快)
◆ 可以用更少的地址位来寻址寄存器,从而可
以有效改进程序的目标代码大小。
10/81
2.1 指令集结构的分类
2. CPU需要设置多少个寄存器呢? 主要由编译器使用寄存器的情况来决定。
为表达式求值保留一些寄存器 为传递参数保留一些寄存器 用剩下的寄存器来保存变量
PDP-11, 部分IBM360 指令
2
3
VAX
13/81
2.1 指令集结构的分类
(3)
通用寄存器指令集结构进一步细分为三种类型: 寄存器 --- 寄存器型(R-R:register-register) 寄存器 --- 存储器型(R-M:register-memory)
存储器 --- 存储器型(M-M:memory-memory)