指令集结构的功能设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6/19
◆ 直接执行型高级语言机器 高级语言就作为机器语言,直接由硬件或
固件对高级语言源程序的语句逐条进行解释以 执行它。 3. 面向操作系统的优化实现改进指令系统
操作系统的实现在很大程度上取决于体系结 构的支持。 (1) 主要表现在对以下方面的支持
7/19
中断处理 进程管理 存储管理和保护 系统工作状态的建立与切换 (2) 设置指令 支持系统工作状态和访问方式转移的指令 支持进程转移的指令 支持进程同步和互斥的指令
100% 80% 60% 40% 20% 0%
Õû ÐÍ Æ½ ¾ù ¸¡ µã ƽ ¾ù
13% 11% µ÷Óà /· µ »Ø
6% 4% Ìø × ª
81% 87% Ìõ ¼þ · Ö Ö§
改变控制流的大部分指令是条件分支指令。
15/19
2. 常用的三种表示分支条件的技术及其优缺点
表示分 支条件 的技术
3/19
2.3.1 CISC指令集结构的功能设计
CISC结构追求的目标: 强化指令功能,减少程序的指令条数,以达到
提高性能的目的。 增强指令功能主要是从如下几个方面着手: 1. 面向目标程序增强指令功能
提高运算型指令功能 提高传送指令功能 增加程序控制指令功能
4/19
2.面向高级语言和编译程序改进指令系统 (1) 增加对高级语言和编译系统支持的指令功能 ◆ 对源程序中各种高级语言语句进行使用频 度的统计与分析,对于使用频度高的语句, 可以设置专门的指令或采取措施增加相应 令的功能,以提高其编译速度和执行速度。 ◆ 从面向编译程序,尤其是从优化代码生成 的角度进行考虑,增加指令集结构的规整 性来改进指令系统。
8/19
2.3.2 RISC指令集功能的设计
1. CISC结构存在的缺点 (1) 在CISC结构的指令系统中,各种指令的使用频 率相差悬殊。 (2) CISC结构指令系统的复杂性带来了计算机体系 结构的复杂性,这不仅增加了研制时间和成 本,而且还容易造成设计错误。 (3) CISC结构指令系统的复杂性给VLSI设计增加了 很大负担,不利于单片集成。
更加有效,克服CISC结构的缺点,使机器速度更 快,程序运行时间缩短,从而提高计算机系统的 性能。 (3) 设计原则
选取使用频率最高的指令,并补充一些最有 用的指令;
每条指令的功能应尽可能简单,并在一个机 器周期内完成;
所有指令长度均相同;
12/19
只有Load和Store操作指令才访问存储器; 其它指令操作均在寄存器之间进行; 以简单有效的方式支持高级语言。
比较操作是分支指令的一部 分,通常这种比较是受一定 限制的。
一条指令完成 了两条指令的 功能。
占用了一个寄存器。 分支指令的操作增多。
16/19
3. 分支目标地址的表示 PC-相对寻址:在指令中提供一个和程序计数 器(PC)的值相加的偏移量。 (1) 有效地缩短指令中表示目标地址的字段的 长度; (2) 使得代码在执行时与它被载入的位置无关。 关键问题是: 转移目标离当前控制指令的偏移量有多大?
测试分支条件的方法
优点
缺点
条件码 (CC)
在 程 序 的 控 制 下 , 由 ALU 操 作设置特殊的位。
可以自由设置 分支条件。
CC 是 额 外 状 态 , 条 件 码 限 制了指令顺序,因为必须从 一条指令将分支条件信息传 送到分支指令。
条件寄 根据比较结果测试条件寄存 存器 器。
简单
比较且 分支
2.3 指令集结构的功能设计
1/19
1. 指令集中操作的分类
操作类型
实例
算 术 和 逻 整数的算术和逻辑操作:加、减、与、或等。 辑运算
数据传输 Load/Store
控制 系统 浮点 十进制
分支、跳转、过程调用和返回、自陷等。 操作系统调用、虚拟存储器管理等。 浮点操作:加、乘等。 十进制加、十进制乘、十进制到字符的转换。
18/19
过程 P1 保存状态
调用 返回
恢复状态wenku.baidu.com
过程 P2
过程 P1 R1
调用
执行
返回 R1
过程 P2 R1
保存状态 调用 返回
恢复状态 R1
过程 P3 R1
保存状态
执行
恢复状态 R1
(a) 调用者保存
(b) 被调用者保存 图 2.6 过程调用中寄存器内容的两种保存策略
19/19
字符串
字符串移动、字符串比较、字符串搜索等。
图形
象素操作、压缩/解压操作等。
2/19
2. 一种指令集结构中的指令到底要支持哪些类型的 操作? (指令集结构功能设计问题) 两种截然不同的方向: ◆ 复杂指令集计算机(CISC) 强化指令功能,实现软件功能向硬件功能转移。 ◆ 精简指令集计算机(RISC) 尽可能地降低指令集结构的复杂性,以达到 简化实现,提高性能的目的。 当今指令集结构功能设计的一个主要趋势。
2.3.3 控制指令
(1) 跳转: 当控制指令为无条件改变控制流时, 称之为“跳转”。
(2) 分支:当控制指令是有条件改变控制流时, 称之为“分支”。
13/19
(3) 控制流程的各种改变情况 条件分支 跳转 过程调用 过程返回
14/19
1. 控制指令的使用频率 (一台Load/Store型指令集结构的机器: SPECint92、Specfp92基准程序)
9/19
(4) CISC结构的指令系统中,许多复杂指令需要很 复杂的操作,因而运行速度慢。
(5) 在CISC结构的指令系统中,由于各条指令的功 能不均衡性,不利于采用先进的计算机体系结 构技术(如流水技术)来提高系统的性能。
2. RISC计算机 (1) 指令系统只包含那些使用频率很高的指令 和一些必要指令。 Intel 80X86最常用的十条指令
10/19
Intel 80X86最常用的十条指令
执行频率排 序
1 2
80X86指令
Load 条件分支
指令执行频率(%执行指令总数) 22% 20%
3
比较
16%
4
Store
12%
5
加
8%
6
与
6%
7
减
5%
8
寄存器-寄存器间
4%
数据移动
9
调用
1%
10
返回
1%
合计
96%
11/19
(2) 目的 使得计算机体系结构更加简单、更加合理和
5/19
规整性:没有或尽可能减少例外的情况和特殊的 应用,以及所有运算都能对称、均匀地 在存储器单元或寄存器单元之间进行。
(2) 高级语言计算机指令系统 ◆ 面向高级语言(HL)的机器 缩小机器语言和高级语言的语义差距。 ◆ 间接执行型高级语言机器 高级语言和机器语言是一一对应的,用汇 编的方法(可以用软件实现,也可以用硬件实 现)把高级语言源程序翻译成机器语言程序。
17/19
4. 过程调用和返回的状态保存 两种方法来保存寄存器的内容: (1) “调用者保存”方法 在一个调用者调用别的过程时,必须保存调用 者所要保存的寄存器,以备调用结束返回后,能够 再次访问调用者。 (2) “被调用者保存”方法 被调用的过程必须保存它要用的寄存器,保证 不会破坏过程调用者的程序执行环境,并在过程调 用结束返回时,恢复这些寄存器的内容。
◆ 直接执行型高级语言机器 高级语言就作为机器语言,直接由硬件或
固件对高级语言源程序的语句逐条进行解释以 执行它。 3. 面向操作系统的优化实现改进指令系统
操作系统的实现在很大程度上取决于体系结 构的支持。 (1) 主要表现在对以下方面的支持
7/19
中断处理 进程管理 存储管理和保护 系统工作状态的建立与切换 (2) 设置指令 支持系统工作状态和访问方式转移的指令 支持进程转移的指令 支持进程同步和互斥的指令
100% 80% 60% 40% 20% 0%
Õû ÐÍ Æ½ ¾ù ¸¡ µã ƽ ¾ù
13% 11% µ÷Óà /· µ »Ø
6% 4% Ìø × ª
81% 87% Ìõ ¼þ · Ö Ö§
改变控制流的大部分指令是条件分支指令。
15/19
2. 常用的三种表示分支条件的技术及其优缺点
表示分 支条件 的技术
3/19
2.3.1 CISC指令集结构的功能设计
CISC结构追求的目标: 强化指令功能,减少程序的指令条数,以达到
提高性能的目的。 增强指令功能主要是从如下几个方面着手: 1. 面向目标程序增强指令功能
提高运算型指令功能 提高传送指令功能 增加程序控制指令功能
4/19
2.面向高级语言和编译程序改进指令系统 (1) 增加对高级语言和编译系统支持的指令功能 ◆ 对源程序中各种高级语言语句进行使用频 度的统计与分析,对于使用频度高的语句, 可以设置专门的指令或采取措施增加相应 令的功能,以提高其编译速度和执行速度。 ◆ 从面向编译程序,尤其是从优化代码生成 的角度进行考虑,增加指令集结构的规整 性来改进指令系统。
8/19
2.3.2 RISC指令集功能的设计
1. CISC结构存在的缺点 (1) 在CISC结构的指令系统中,各种指令的使用频 率相差悬殊。 (2) CISC结构指令系统的复杂性带来了计算机体系 结构的复杂性,这不仅增加了研制时间和成 本,而且还容易造成设计错误。 (3) CISC结构指令系统的复杂性给VLSI设计增加了 很大负担,不利于单片集成。
更加有效,克服CISC结构的缺点,使机器速度更 快,程序运行时间缩短,从而提高计算机系统的 性能。 (3) 设计原则
选取使用频率最高的指令,并补充一些最有 用的指令;
每条指令的功能应尽可能简单,并在一个机 器周期内完成;
所有指令长度均相同;
12/19
只有Load和Store操作指令才访问存储器; 其它指令操作均在寄存器之间进行; 以简单有效的方式支持高级语言。
比较操作是分支指令的一部 分,通常这种比较是受一定 限制的。
一条指令完成 了两条指令的 功能。
占用了一个寄存器。 分支指令的操作增多。
16/19
3. 分支目标地址的表示 PC-相对寻址:在指令中提供一个和程序计数 器(PC)的值相加的偏移量。 (1) 有效地缩短指令中表示目标地址的字段的 长度; (2) 使得代码在执行时与它被载入的位置无关。 关键问题是: 转移目标离当前控制指令的偏移量有多大?
测试分支条件的方法
优点
缺点
条件码 (CC)
在 程 序 的 控 制 下 , 由 ALU 操 作设置特殊的位。
可以自由设置 分支条件。
CC 是 额 外 状 态 , 条 件 码 限 制了指令顺序,因为必须从 一条指令将分支条件信息传 送到分支指令。
条件寄 根据比较结果测试条件寄存 存器 器。
简单
比较且 分支
2.3 指令集结构的功能设计
1/19
1. 指令集中操作的分类
操作类型
实例
算 术 和 逻 整数的算术和逻辑操作:加、减、与、或等。 辑运算
数据传输 Load/Store
控制 系统 浮点 十进制
分支、跳转、过程调用和返回、自陷等。 操作系统调用、虚拟存储器管理等。 浮点操作:加、乘等。 十进制加、十进制乘、十进制到字符的转换。
18/19
过程 P1 保存状态
调用 返回
恢复状态wenku.baidu.com
过程 P2
过程 P1 R1
调用
执行
返回 R1
过程 P2 R1
保存状态 调用 返回
恢复状态 R1
过程 P3 R1
保存状态
执行
恢复状态 R1
(a) 调用者保存
(b) 被调用者保存 图 2.6 过程调用中寄存器内容的两种保存策略
19/19
字符串
字符串移动、字符串比较、字符串搜索等。
图形
象素操作、压缩/解压操作等。
2/19
2. 一种指令集结构中的指令到底要支持哪些类型的 操作? (指令集结构功能设计问题) 两种截然不同的方向: ◆ 复杂指令集计算机(CISC) 强化指令功能,实现软件功能向硬件功能转移。 ◆ 精简指令集计算机(RISC) 尽可能地降低指令集结构的复杂性,以达到 简化实现,提高性能的目的。 当今指令集结构功能设计的一个主要趋势。
2.3.3 控制指令
(1) 跳转: 当控制指令为无条件改变控制流时, 称之为“跳转”。
(2) 分支:当控制指令是有条件改变控制流时, 称之为“分支”。
13/19
(3) 控制流程的各种改变情况 条件分支 跳转 过程调用 过程返回
14/19
1. 控制指令的使用频率 (一台Load/Store型指令集结构的机器: SPECint92、Specfp92基准程序)
9/19
(4) CISC结构的指令系统中,许多复杂指令需要很 复杂的操作,因而运行速度慢。
(5) 在CISC结构的指令系统中,由于各条指令的功 能不均衡性,不利于采用先进的计算机体系结 构技术(如流水技术)来提高系统的性能。
2. RISC计算机 (1) 指令系统只包含那些使用频率很高的指令 和一些必要指令。 Intel 80X86最常用的十条指令
10/19
Intel 80X86最常用的十条指令
执行频率排 序
1 2
80X86指令
Load 条件分支
指令执行频率(%执行指令总数) 22% 20%
3
比较
16%
4
Store
12%
5
加
8%
6
与
6%
7
减
5%
8
寄存器-寄存器间
4%
数据移动
9
调用
1%
10
返回
1%
合计
96%
11/19
(2) 目的 使得计算机体系结构更加简单、更加合理和
5/19
规整性:没有或尽可能减少例外的情况和特殊的 应用,以及所有运算都能对称、均匀地 在存储器单元或寄存器单元之间进行。
(2) 高级语言计算机指令系统 ◆ 面向高级语言(HL)的机器 缩小机器语言和高级语言的语义差距。 ◆ 间接执行型高级语言机器 高级语言和机器语言是一一对应的,用汇 编的方法(可以用软件实现,也可以用硬件实 现)把高级语言源程序翻译成机器语言程序。
17/19
4. 过程调用和返回的状态保存 两种方法来保存寄存器的内容: (1) “调用者保存”方法 在一个调用者调用别的过程时,必须保存调用 者所要保存的寄存器,以备调用结束返回后,能够 再次访问调用者。 (2) “被调用者保存”方法 被调用的过程必须保存它要用的寄存器,保证 不会破坏过程调用者的程序执行环境,并在过程调 用结束返回时,恢复这些寄存器的内容。