当前位置:文档之家› 计算机体系结构-第2章 指令系统

计算机体系结构-第2章 指令系统



×2+
i1 (0.15+0.13+0.12+0.09+0.08+0.07+0.03+0.01)×4
2.1.1 操作码的优化表示 操作码的表示方法通常有三种,等长操作码,
Huffman编码法和扩展编码法,下面分别介绍。
第2章 指令系统
1. 等长操作码 对于采用等长操作码的指令系统,若指令系统中共 有N种不同功能的指令,则指令系统中的所有指令的操 作码长度固定为┌log2N┐位。等长操作码的操作码长度 规整,有利于简化硬件设计,减少指令译码时间。如 IBM370指令系统,指令操作码的长度固定为8位。
第2章 指令系统
要采用Huffman编码法表示操作码,必须先知道各种 指令在程序中出现的概率,这通常可以通过对已有典 型程序进行统计得到。
现设有一台模型机,共有10种不同功能的指令,各指令的 使用频度如表2.1所示。若用等长的操作码表示需用4位。 按信息论的观点,当各种指令的出现是相互独立的时候 (当然实际情况并不都是如此),操作码的信息源熵(信 息源所包含的平均信息量)H为-∑pi log pi,由于操作码信 息是用二进制表示,则H=-∑pi log2pi。其中pi表示第i种操 作码在程序中出现的概率。
第2章 指令系统
为减少信息冗余量,可改用Huffman编码。Huffman 编码的一般过程为:
(1)利用Huffman算法,构造Huffman树; (2)Huffman树的所有左分支用一位代码的“1”表示, 右分支用一位代码的“0”表示,反过来表示也可以; (3)从根结点开始,沿线到达各频度指令所经过的代 码序列即为该频度指令的Huffman编码。 值 得 说 明 的 是 , 构 造 的 Huffman 树 以 及 各 指 令 的 Huffman编码均不是唯一的,但采用Huffman编码的操 作码的平均长度是唯一的。
指令使用频度pi 0.17 0.15 0.15 0.13 0.12 0.09 0.08 0.07 0.03 0.01
Huffman编码 10 000 001 010 110 0110 0111 1110 11110 11111
操作码长度li 2 3 3 3 3 4 4 4 5 5
3-4扩展码编码 000 001 010 011 100 101 1100 1101 1110 1111
10
pi•li=0.17×2+(0.15+0.15+0.13+0.12)×3+
(i01 .09+0.08+0.07)×4
+(0.03+0.01)×5
=3.15位
第2章 指令系统
表2.2 操作码的Huffman编码法和3-4扩展码编码法
指令序号
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10
第2章 指令系统
扩展操作码编码是介于等长操作码编码和Huffman编 码之间的一种编码方式,使操作码的长度只限于有限 的几种码长(如这里只有两种码长)。为便于实现和 分级译码,一般采用等长扩展。在表2.2中,若采用2-4 等长扩展操作码编码,其操作码的平均码长为:
10
pi•li=

0.17+0.15
.06+0.09×3.47 +0.08×3.64+0.07×3.84+0.03×5.06+0.01×6.64 =3.10位
这说明表示这10条指令,操作码平均只需3.1位。采 用4位等长操作码表示的信息冗余量为:
第2章 指令系统
操作码的实际平均长度-H 4 - 3.10
操作码的实际平均长度
= 4
=22.5%
操作码长度li 3 3 3 3 3 3 4 4 4 4
第2章 指令系统
3. 扩展操作码 Huffman编码法是最优化的编码方法,但这种编码方 法形成的操作码很不规整,10种指令就有4种不同的操 作码长度,既不便于译码,也不实用。所以,在此基 础上再结合采用等长操作码的编码方法,可以得到如 表2.2右部的所谓扩展操作码编码。
第2章 指令系统
表2.1 某模型机指令使用频度举例
指令序号 I1 I2 I3 I4 I5
指令使用频度pi 0.17 0.15 0.15 0.13 0.12
指令序号 I6 I7 I8 I9 I10
指令使用频度pi 0.09 0.08 0.07 0.03 0.01
第2章 指令系统
按表2.1的数据,得 H=0.17×2.56+0.15×2.74+0.15×2.74+0.13×2.94+0.12×3
• 指令系统设计必须由软件设计人员和硬件设 计人员共同来完成.
第2章 指令系统
2.1 指令格式的优化
指令由操作码和地址码两部分组成。指令格式的优 化指的是如何用最短的位数来表示指令的操作信息和地 址信息,使程序中指令的平均字长最短。因此指令格式 的优化包括操作码的优化和地址码的优化两部分。
第2章 指令系统
第2章 指令系统
2. Huffman编码 Huffman编码法是1952年由Huffman首先提出的一种 编码方法,开始主要用于电报报文的编码。如26个英 文字母中,e、t等的使用频率最高,用短码表示;q、x 等的使用频率很低,用长码表示。这样,可以缩短整 个报文的长度,减少报文的传送时间。Huffman编码不 仅可用于代码压缩,也可用于程序压缩、存贮空间压 缩和时间压缩等。
第2章 指令系统
1.00 1
0 0.40
1
0.23
1 0
0.11 0
1
0 0.04
1
0
0.01
0.03
0.07
0.12
0.17
0.60
1
0
0.30 1
0.17
0
1
0
0.08
0.09
0.13
0.30
1
0
0.15
0.15
图2.1 利用Huffman树进行操作码编码
第2章 指令系统
对于表2.1构造的Huffman树如图2.1所示。根据 Huffman树设计的Huffman编码如表2.2所示。Huffman 编码的平均码长为:
第2章 指令系统
第2章 指令系统
2.1 指令格式的优化 2.2 CISC 2.3 RISC 2.4 后RISC
第2章 指令系统
• 指令系统是软件与硬件之间的一个主要分界 面,也是他们之间互相沟通的一座桥梁。 硬件设计人员采用各种手段实现指令系统, 而软件设计人员则使用这些指令系统编制系 统软件和应用软件,用这些软件来填补指令 系统与人们习惯的使用方式之间的语义差距。
相关主题