当前位置:文档之家› 计算机系统结构第三章

计算机系统结构第三章


存储器-存 储器型 (3,3)
最紧密的编码方式, 指令字长多样。每条指令的执行 时钟周期数不同,对存储器的频繁 访问
第三章 指令系统
数据的表示 指令系统结构分类 寻址方式 指令系统优化
3.3 寻址方式
•操作数寻址方式:确定本条指令的操作数地址 的方法 •主要寻址方式
隐含寻址、立即寻址、直接寻址、间接寻址 寄存器寻址、寄存器间接寻址 偏移寻址(相对寻址、基址寻址、变址寻址) 堆栈寻址
第三章 指令系统
数据的表示 指令系统结构分类 寻址方式 指令系统优化
3.4 指令系统的优化
指令操作码的优化 指令地址码的优化 指令系统分析
一、操作码
具体说明操作的性质及功能,其长度反映指令条数 操作码的长度固定:信息的冗余大,程序总长增加 操作码的长度可变:如哈夫曼技术、扩展操作码技术, 可以缩短操作码的平均码长
指令和数据在存储器中的存储

设某指令系统共有7条指令,使用频率如下所示
指令 I7 I6 I5 I4 I3 I2 I1 使用频率 0.40 0.30 0.15 0.05 0.04 0.03 0.03
固定长度的操作码的码长为3
哈夫曼技术
构造哈夫曼树,所有指令的使用频率形成叶子节 点。将它们由小到大排序。选择两个最小的频率, 合并成一个频率,形成一个新节点。再按该频率 大小插到余下未参与结合的频率值中。如此继续 进行,直到全部频率结合完毕形成根节点为止 从根节点开始,对每个节点向下延伸,分成两支, 分别用代码“0”和“1”表示 每条指令的哈夫曼编码: 根节点到该指令频率所 经过的代码序列
操作码
地址码
1、隐含寻址: 操作数地址不显式给出,指令中隐含操作数地址。
OP
A1 AC
(AC) OP (A1) AC为累加寄存器
MUL B
2. 立即寻址
指令直接给出操作数
立即数(指令中数不能改变)
用来提供常数、设置初值等。
mov a, #1
3. 直接寻址
指令直接给出操作数地址。不需经过地址变换
指 令 的 n 个 操 作 数 中 有 m 个 存 储 器 操 作 数
指令系统类 型 寄存器-寄 存器型 (0,3)
优 点


简单,指令字长固 定,各种指令的执行 指令条数多,目标代码较大。 时钟周期数相近。
每条指令的执行时钟周期数也不尽 可直接对存储器操作 相同。 寄存器-存 数访问,目标代码较 小。 储器型 (1,2)
堆栈 累加器
一、根据CPU内部存储单元类型分类 堆栈型指令系统 累加器型指令系统 通用寄存器型指令系统

表达式C=A+B在这三种类型指令系统结构上的 实现方法。设A、B、C均是保存在存储器单元中。
C=A+B表达式在三种类型指令系统结构上的实现方法
堆栈 累加器 寄存器 (寄存器-存储器) LOAD R1,A 寄存器 (寄存器-寄存器)
哈夫曼编码 0 10 110 11100 11101 11110 11111
哈夫曼编码的平i i
= 2.2
扩展操作码技术
操作码只有有限的几种码长 仍然采用哈夫曼编码的思想,高频率的指 令操作码用短码表示,低频率的指令操作 码用长码表示。 本例中采用2-4扩展编码,即只有2和4两种 码长
第三章 指令系统
数据的表示 指令系统结构分类 寻址方式 指令系统优化
3.1 数据表示
数据结构与数据表示 浮点数尾数基值的选择 浮点数的下溢处理
1、数据结构与数据表示
数据结构:各种数据元素或信息单元之间 的结构关系 数据表示:机器硬件可以直接识别和引用 的数据类型 两者关系:数据结构通过软件映像将信息 变换成数据表示来实现。
D =((A))
6. 寄存器间接寻址
R=02 格式 操作码OP 寄存器号R 0040
M
... ... ... ...
D =((R))
0040
D ... ...
优点: 修改寄存器内容比修改主存单元内容快。 同一指令可指向不同存储单元,以实现程序的循环、 共享,并提供转移地址。

一个由N个元素组成的数据,已经存放在主 存的连续存储单元中,现要把它搬到主存 的另一段连续的存储单元中,源数组的起 始地址为AS,目标数组的起始地址是AD。
计算机中的数据表示有定点数和浮点数 两种 定点数:小数点固定在某个位置上
定点小数的机器数格式为
X0 X1 X2 符号位 约定小数点位置 …… Xn-1 Xn
定点整数的机器数格式为
X0 X1 X2 符号位 …… Xn-1 Xn 约定小数 点位置
浮点数的表示方法
小数点位置可以浮动 通常表示为 X=M•rmE 其中M是尾数,E是阶码,rm是尾数的基值 这与十进制数的科学计数法类似。 例如:-3500 = -3.5 ×103 浮点数的机器数格式为
PUSH A
LOAD A
LOAD R1,A
PUSH B
ADD B
ADD R1,B
LOAD R2,B
ADD
Store C
Store C,R1
Add R3,R1,R2
POP C
Store C,R3
三类指令系统比较
指令系统 类型 优 点 缺 点
堆栈型
指令短小
堆栈不能被随机访问,很难生成有效 代码
累加器型
code
ends end
start
3.2 指令系统结构分类
根据以下因素对指令系统结构进行分类 在CPU中操作数的存储方法 指令中显式表示的操作数个数 操作数的寻址方式 指令系统所提供的操作类型 操作数的类型和大小
CPU对操作数的不同存取方式
CPU提供的 暂存器 每条ALU指令显式表示的 操作数个数 0 1 运算结果的 目的地 堆栈 累加器 访问显式操作数的 过程 Push/Pop Load/Store 累加器 一组寄存器 2/3 寄存器或存 Load/Store寄存器 储器 或存储器
用间接寻址方式编写的程序
1 START: 2 3 4 LOOP: 5 6 7 8 9 10ASR: 11ADR: 12NUM: 13ASI: 14ADI: 15CNT: MOVE MOVE MOVE MOVE INC INC DEC BGT HALT AS AD N 0 0 0 ASR, ASI ADR, ADI NUM, CNT @ASI, @ADI ASI ADI CNT LOOP
汇编后的目 标文件只有 208字节
main
mov mov mov add mov lea mov int add mov mov int mov int mov int ret endp
a,1 b,2 al,a al,b c,al dx,string ah,09 21h c,30h dl,c ah,2 21h dl,0ah 21h dl,0dh 21h
±D
S =((PC)±D)
有效地址相对PC上下浮 动,给编程带来方便。
9. 堆栈寻址 格式 操作码OP 堆栈指针SP
M
S =((SP))
SP 0070
栈顶
S
SP既可出现在指令中,也可隐含约定。
... ... ... ... ... ...
某指令系统结构上,一些指令使用立即值寻址方式的频率。
比较指令和ALU指令使用立即值寻址方式十分频繁。
E0 E1 E2
……
EP M0 M1 M2
……
Mm
2、浮点数尾数基值的选择
浮点数据表示中的尾数基值用rm表示。 尾数机器位数用m表示, rm进制的尾数位数用m’表 示,其位权由小数点向右依次为rm-1, rm-2 ,…, rm-m’ 。
m m'= ⎡log 2 rm ⎤
例,rm =2时,m’为m; rm =16时,m’为m/4。
指令
I1 I2 I3 I4 I5 I6 I7
频率 0.40 0.30 0.15 0.05 0.04 0.03 0.03
第三章 指令系统
数据的表示 指令系统结构分类 寻址方式 指令系统优化
3.2 指令系统结构分类
指令:能要求计算机进行基本操作的命令 指令系统( Instruction Set ):一台计算机 上所有指令的集合
指令的格式
操作码
做什么
地址码
对谁操作
高级语言的语句和用法与指令系统无关 低级语言和指令系统密切相关
(b)基址寻址 指令给出一个寄存器号和一个地址量,寄存 器内容与地址量之和为有效地址。
格式 操作码 OP Rb D
位移量 (形式地址)
基址寄存器号
S =((Rb)+ D)
基准地址 相对于基址的位移
(c)相对寻址 指令给出位移量,PC内容与位移量之和为有 效地址。
或隐含指定 位移量
格式 操作码 OP PC
操作码OP
有效地址A
操作数 D =(A)
add a,b
4. 寄存器寻址
格式 操作码OP D = ( R)
寄存器号R
R所占位数少; 访问寄存器比访问 主存单元快
add R1,R2
5.间接寻址 指令给出操作数地址的地址
M
A=0030 格式 操作码OP 间接地址A 0060
0060 D ... ... ... ...
1.00
哈夫曼树
0.60 1 0.30 1 0.15 1 0.06 1 0 1 0.04 0 0.09 0
1 0
0
0 0.05 0.15 0.30 0.40
0.03
0.03
I1
I2
I3
I4
I5
I6
I7
指令
I7 I6 I5 I4 I3 I2 I1
频率 0.40 0.30 0.15 0.05 0.04 0.03 0.03
相关主题