指令系统设计和优化共48页文档

合集下载

2 指令系统的设计PPT课件

2 指令系统的设计PPT课件

偏移寻址
采Ad用d R多4 , 1种00(寻R1)址方Re式gs[R可4]←以Re显gs[R著4]+地M减em[1少00+程Reg序s[R的1]]
寄存器间接寻址指令A条dd数R4,, (R但1) 可能R增egs加[R4计]←R算egs机[R4的]+M实em现[Re复gs[R杂1]]度以
索引寻址
及指A令dd的R3C,P(IR。1 +
2
2
部分IBM360 指令
3
3
3
VAX
2. 两种主要的指令特性能够将通用寄存器指令 系统结构GPR)进一步细分(续)
(3) 通用寄存器指令集结构进一步细分为三种类型: 寄存器 --- 寄存器型(R-R:register-register) 寄存器 --- 存储器型(R-M:register-memory) 存储器 --- 存储器型(M-M:memory-memory)
Store C,R3
2.1.2 通用寄存器型指令系统结构的分类
1. 通用寄存器型指令系统结构的主要优点
(1)寄存器的访问速度比存储器快。 (2)编译器能更容易、有效地分配和使用寄存器。在表达 式求值方面,比其它类型指令集结构具有更大的灵活性。 (3)寄存器可以用来存放变量,带来许多好处。
◆ 减少存储器的通信量,加快程序的执行速度。 ◆ 可以用更少的地址位来寻址寄存器,从而可以
(4) 常见的三种通用寄存器型指令集结构的优缺点 注:表中(m,n)的含义是,指令的n个操作数中 有m个存储器操作数。
指令集结构 类型
优点
缺点
寄存器-寄 存器型 (0,3)
简单,指令字长固定, 是一种简单的代码生 和指令中含有对存储器操作数访问 成模型,各种指令的 的结构相比,指令条数多,因而其 执行时钟周期数相近。目标代码较大。

5_6_指令系统设计

5_6_指令系统设计
0 31 o c r (b) 一种数据存储方式
34
0 e t u
2、零地址空间个数
需要编址的设备主要有通用寄存器、主存储器和输 入输出设备。 三个零地址空间:通用寄存器、主存储器和输入 输出设备均独立编址 两个零地址空间:主存储器与输入输出设备统一 编址 一个零地址空间:所有存储设备统一编址 最低端是通用寄存器,最高端是输入输出设备, 中间为主存储器 隐含编址方式:实际上没有零地址空间 堆栈、Cache等
地址数 目 三地址 二地址 指令长度 短 一般 程序存储 量 最大 很大 程序执行 速度 一般 很低 适用场合 向量,矩阵运算为主 一般不宜采用
一地址 零地址
二地址R 型
较长 最长
一般
较大 最小
最小
较快 最低
最快
连续运算,硬件结构简 单 嵌套,递归,变量较多
多累加器,数据传送较 多
15
地址码个数结论:
8
通过一个典型例子来分析: 例如:计算算术表达式: 用三地址指令编写的程序如下: MUL ADD X, A, B X, X, C ;X单元暂时用来存放中间运算结果
abc d x e f
SUB
ADD
X, X, D
Y, E, F
;X单元中存放的是分子运算的结果
;计算分母
DIV
X, X, Y
8位、16位、32位整数以及
32位和64位IEEE 754 浮点数
20
操作类型及地址码个数 数据类型和大小 指令格式及编码 寻址技术 指令格式的优化设计 RISC指令系统
21
指令格式
累加器型
Load Add Store A B C
[例] C=A+B
堆栈型

指令系统的设计

指令系统的设计

设计指令/微指令系统
班级:计科0901
姓名:钱六四
学号:2009310200109
一、实验目的:
1.建立计算机的整机概念。

2.掌握机器指令与微指令的关系。

3.了解微程序的设计和特点。

二、实验原理:
CP226 计算机组成原理实验仪,可以由用户自己设计指令/微指令系统,令流水实验”这样用户可以在现有的指令系统上进行扩充,加上一些较常用的指令,也可重新设计一套完全不同的指令/微指令系统。

三、实验内容:
参照cp226指令系统,在该实验箱上设计自己的指令/微指令系统。

四、实验步骤:
五、实验分析:
1.每个程序开始要执行的第一条微指令应是取指操作,因为程序复位后,PC 和 uPC 的值都为 0,所以微程序的 0 地址处就是程序执行的第一条取指的微指令。

2.可以根据指令所要实现的功能分析出指令的微指令值。

实验设计了LDW A指令,将A 寄存器内容打入到W寄存器要求直通D有效所以x2x1x0=100 ,且要将A直接输出所以s2s1s0=111,在此同时,还可以进行取址操作EMRD,PCOE,IREN有效,综上该微指令值为CBFF8F;同理可分析出SUBW A微指令值为CBFE91。

五、实验总结
本实验主要是对指令系统进行相关的操作,指令系统的功能,指令的执行方式,指令的寻址方式。

本次设计了一个小的指令集,并就其相关的功能进行了详细的分析,然后在 cp226上执行以验证其功能。

最优计算机指令控制设计

最优计算机指令控制设计

最优计算机指令控制设计摘要计算机已经成为现代社会发展不可取代的有利助手,而计算机控制更是遍及各领域。

因而对计算机指令控制部件并达到最优的研究具有深远的意义。

本文主要针对计算机指令控制计算机部件的问题,对题中指令进行分析求解,寻找控制所有部件的最少指令以及所有在给定指令长度下,以最少的总长度得到控制所有部件集合,并分别建立了相应的整数线性规划模型。

对于模型的求解,本文是通过利用matlab软件计算求解的。

以此同时,分析所设计算法的复杂性,主要是从算法的时间复杂性和空间复杂性两方面。

关键词:计算机指令最优控制线性规划时间复杂性一、问题重述在计算机控制过程中,一条计算机指令往往可以控制几个计算机部件,反过来,一个部件一般由几条指令控制。

一个基本问题是,在指令集合里寻找最少的指令,使得所有的部件得到控制;另一个问题是,当给定每条指令的长度时,在指令集合里,寻找最长度最少的若干指令,使得他们可以控制全部部件。

1.建立解决上述两个问题的数学模型;2.设计模型的求解算法,用下表中所列数据给出求解结果;3.分析所设计算法的复杂性和计算所得到结果。

二、问题分析由于一条计算机指令往往可以控制几个计算机部件,反过来,一个部件一般有几条指令控制,这两个都是线性规划问题且约束条件相同,只是目标函数不同。

针对第一个问题,建立使得所有的部件得到控制的指令集合里的最少的指令模型。

利用整数线性规划模型,找出所求优化问题的目标函数和约束条件,并确保一个部件至少有1条指令控制,同时利用软件计算得出所有部件得到控制的最少指令的集合。

针对第一个问题,仍然建立整数线性规划模型,依然要保证一个部件至少有1条指令控制,再用软件计算得出所有部件得到控制的指令的总长度的最小长度。

通过对模型1和模型2求解,matlab软件进行求解。

以此同时,通过时间复杂度和空间复杂度两方面对该问题的利用的算法进行复杂度分析,并分析上述模型的计算结果。

三、模型假设1) 假设每个指令都正常控制相应的部件。

3 指令系统的设计和优化

3 指令系统的设计和优化


地址码通常包括三部分内容:

指令设计要考虑的问题

操作数的存储形式

存储器 CPU内什么地方


每条指令中显式说明的操作数个数 操作数的位置 操作类型 操作数的类型和长短
指令的分类
指令格式的优化

指令=操作码+地址码
指令格式的优化:如何用最短的位数来表示 指令的操作信息和地址信息,使程序中指 令的平均字长最短。

用普通二地址指令编写的程序





MOVE X, A ;复制临时变量到X中 MUL X, B ADD X, C SUB X, D ;X中存放分子运算结果 MOVE Y, E ;复制临时变量到Y中 ADD Y, F ;Y中存放分母运算结果 DIV X, Y ;最后结果在X单元中
0.45
0.30
0.15
0.00.55 1
0.25 1
0.01 0.01 0 1 0.02 0 1 0.05 1 0.10 1
指令序号 概率 I1 0.45 I2 0.30 I3 0.15 I4 0.05 I5 0.03 I6 0.01 I7 0.01
Huffman编码法 0 10 110 1110 11110 111110 1111111
等长地址码发挥不出操作码优化表示的作用
li limin
空白浪费 空白浪费 limax
地址码 地址码 地址码
在定长指令字内实现多种地址制
操作码 操作码 地址码 地址码 地址码 地址码 地址码
操作码
地址码

基础:初步设计的指令集。 目标:减少指令长度,提高指令性能。 优化原则:

第二章 指令优化【精选】

第二章 指令优化【精选】

指令格式优化
指令由操作码和地址码两部分组成,上述 各种寻址方式主要反映在指令的地址码部 分。随着指令类型不同,对地址码的长度 要求变化很大,例如操作数据在内部通用 寄存器内比之在存储器内,其地址码长度 要短得多。为缩小程序代码所占的存储容 量,各类指令的长度可以不一致,例如在 同一个计算机中可以有1字节、2字节、3字 节、4字节等多种长度的指令。
指令优化
指令系统是计算机所有指令的集合,程 序员用各种语言编写的程序都要翻译成 (编译或解释)以指令形式表示的机器 语言后才能运行,所以它反映了计算机 的基本功能,是硬件设计人员和程序员 都能见到的机器的主要属性,早期计算 机的指令系统很简单,一些比较复杂的 操作由子程序实现,因此计算机的处理 速度比较慢。
计算机系统结构 -指令系统优化
指令结构分类
寻址方式分类
寻址方式的使用频度
指令操作分类
控制流指令的使用频度
指令编码格式
数据结构与数据表示 -1
计算机常用的各种数据结构有串、堆栈、 队列、向量、阵列、矩阵、链表、图等。 实现这些数据结构的各种算法,几乎都 立足于计算机系统结构只提供按地址访 问的一维线形存储器以及最基本、最简 单的数据表示。
数据结构与数据表示 -8
衡量某种数据表示的确是否合适的另一个标准,是 看这个数据表示的通用性如何,利用率如何。对于 基本的数据表示,其通用性和利用率当然不构成如 何问题,而对于如上述阵列机的数据表示(指阵列 数据表示),则其通用性、利用率就不理想了。而 且,阵列数据表示还有能表达多大阵列的问题;阵 列过大,硬件投资增加,机器性能价格比下降,利 用率可能不高;阵列过小,阵列运算要拆成多块, 分批进入阵列运算部件,使编译困难。所以,机器 的数据表示的选择应该综合平衡上述的各种因素后 才确定。

计算机系统结构指令系统的设计和优化PPT课件


10000001 …
64种
志
11110111
位 的 扩 展
100010000000 12位长 100010000001 512种 …
法
111111110111
2021/5/26
22
第22页/共127页
• 如何选择扩展编码方案,应考虑: • 指令中各种指令出现的概率分布; • 哪种编码法平均码长最短。
规整性是指相似的操作要有相同的规定,所
有3.通“用独寄一存器”都性被或同“等全地能对待”,性尽可能避免出
现4.例指外令情格况和式特应殊具用有法正。交性
例如,对字的操作同对字节的操作相同,操
作5.后可生组成合的条性件码要一样;每个通用寄存器的
用法要相同。
2021/5/26
4
第4页/共127页
2.3.1 指令系统设计的基本原 则
操作码
R
R
操作码
访存地址 S
R
操作码 直接操作数
R
R
同种地址制下的多种地址形式和长度
2021/5/26
请阅读 IBM S/370 指令的主要格式(P 68)。
28
第28页/共127页
2.4 指令系统的发展和改进
2.4.1 CISC 和 RISC 2.4.2 按增强指令功能的方向发展和改
进指令系统 2.4.3 按简化指令功能的方向发展和改
如何求得最佳的二元前缀编码呢?
2021/5/26
12
第12页/共127页
• 求最佳前缀编码
当已知要传输(存储)符号的出现频 率时,可以用这些频率作为权,以 Huffman算法来构造一个最优 2 元树 T, 这样由这个最优 2 元树 T 产生的前缀编

第5章 指令系统的设计


主机调用输入机:启劢:主机
控制字(启劢位为1)
状态字/传送指令
测试:主机
叏数:主机
数据/传送指令
177550
177552
输入输出指令
5.4.1 指令类型
(3)通过I/O处理机迚行I/O操作
CPU执行简单I/O指令 两极I/O指令 (启劢、停止、查询、清除) I/O处理机执行I/O操作指令 (输入、输出……)
5.4.2 操作数类型
地址:可被认为是一个无符号的整数。 数值:由亍机器可表示数值的幅值是有限的丏在浮点数情冴 下数值精度是有限的,所以程序员必须理解舍入,上溢,下 溢的意义。计算机中普遍使用3种类型的数值数据:整数戒 定点数,浮点数和十迚制数。 字符: 普遍采用ASCII码,是很重要的一种字符编码。 逻辑数据:将一个n位单元看成是由n个1位项组成,每项有值 0戒1,此时数据被认为是逻辑数据。这种位排列方法有两个 优点。首先,有时我们希望存储一个布尔戒二迚制数据项阵 列,阵列中的每项只能叏值1(真)戒0(假)。第二,可以 对数据项的具体位迚行操作。
5.1指令系统的作用和性能要求
指令集应考虑的因素
(1)操作指令表:应提供多少和什么样的操作,
操作的复杂程度;
(2)数据类型:所支持的数据类型; (3)指令格式:指令的(位)长度、地址数目、 各个字段的大小等; (4)寄存器:能被指令访问的CPU寄存器数目
以及它们的用途;
(5)寻址方式:指定操作数地址的产生方式。
地址结构
指令中提供地址的方式
5.3 机器指令的格式
显示地址方式:指令中明显指明地址(直接戒间接给 出) 隐式地址方式:地址隐含约定,丌出现在指令中。使 用该方式可以减少指令中的地址数,简化地址结构

第2章 指令系统的设计


▲
14/90
主流RISC芯片
▪ PowerPC微处理器 ,20世纪90年代,IBM、Apple和Motorola共同开发了 PowerPC,这款RISC架构的芯片的主要特点是可伸缩性好、方便灵活;
▪ MIPS处理器,MIPS处理器是八十年代中期RISC CPU设计的一大热点 , 1999年以前世界上用得最多的处理器 ;
▪ 20%时间赢得80%的快乐
▲
10/90
复杂指令系统的二八原则
1979年,美国加洲伯克利分校 David Patterson 提出:20%与80%规律 在复杂指令系统中,大约20%的指令占据了80%的处理机执行时间。
例如:8088处理机的指令种类大约100种 前11种(11%)指令的使用频度已经超过80% 前8种(8%)指令的运行时间已经超过80% 前20种(20%)指令:使用频度达到91.1%
▲
22/90
RISC的威力
1. 在1995年,一个名叫NexGen的公司(后被AMD收购)认识到X86指令 集是提高CPU性能的一个很大的障碍,因为X86指令的长度和格式都各 不相同,会造成解码困难。于是他们开发出了NX586(AMD在NX586的 基础上开发出了K6核心),NX586在相同时钟频率下的运行速度比 Pentium快,秘密就在于它把那些长度不定的X86指令集翻译成了短小 且长度固定的类RISC指令;
97.7122/90
RISC指令集
▪ RISC指令集对于80%的指令采取加速策略
- 使用硬件线路实现指令操作,提高速度,降低成本 - RISC还加强了并行处理能力,非常适合于采用处理器
的流水线、超流水线和超标量技术,从而实现指令级 并行操作,提高处理器的性能
• RISC指令集利用多条简单指令实现原有复杂指令的功能

第二章 指令优化


指令系统中有4个:
CS: SS: DS: ES: ;代码段超越,使用代码段的数据 ;堆栈段超越,使用堆栈段的数据 ;数据段超越,使用数据段的数据 ;附加段超越,使用附加段的数据
段超越的示例
没有段超越的指令实例:
总结
MOV AX,[2000H] ;AX←DS:[2000H]
;从默认的DS数据段取出数据 采用段超越前缀的指令实例: MOV AX,ES:[2000H] ;AX←ES:[2000H] ;从指定的ES附加段取出数据
3. 段寄存器
8086有4个16位段寄存器
CS(代码段)指明代码段的起始地址
SS(堆栈段)指明堆栈段的起始地址
DS(数据段)指明数据段的起始地址 ES(附加段)指明附加段的起始地址 每个段寄存器用来确定一个逻辑段的起始地 址,每种逻辑段均有各自的用途
如何分配各个逻辑段
程序的指令序列必须安排在代码段
元地址、双字单元地址等等

排在模4地址(xx00B)等,被称为“地址对齐
(Align)”

对于不对齐地址的数据,处理器访问时,需要 应该将数据的地址对齐,以取得较高的存取速
额外的访问存储器时间

度
2. 存储器的分段管理

8086CPU有20条地址线
–最大可寻址空间为220=1MB
–物理地址范围从00000H~FFFFFH
束时,便产生一个编号为1的内部中断 这种内部中断称为单步中断 所以TF也称为单步标志 利用单步中断可对程序进行逐条指令的调试 这种逐条指令调试程序的方法就是单步调试
存储器组织与段寄存器

寄存器是微处理器内部暂存数据的存储单 元,以名称表示

存储器则是微处理器外部存放程序及其数
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档