2.3.1 指令的组成

一般的指令主要由两部分组成:

操作码 通常包括两部分内容:

操作种类,加、减、乘、除、数据传送、移位、转移、输入输出操作码( OPC) 地址码( A)

2.3 指令格式的优化( P90)

主要目标,节省程序的存储空间,指令格式尽量规整

研究内容,操作码优化表示,地址码优化表示操作数描述

数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量

进位制,2进制,10进制,16进制

数据字长:字、半字、双字、字节

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

地址,还包括间接地址、立即数、寄存器编号、变址寄存器

地址的附加信息,偏移量、块长度、跳距

寻址方式,直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址,寄存器寻址

2.3.2 操作码优化目前常用编码方法有 3种,定长编码,Huffman编码,扩展编码 。

编码方法性能指标( P91-P93)

信息量,根据信息论的基本知识,在 n种可能发生的事件集合中,报告第 i种事件发生的消息中包含的信息量为

ia

i

ai PPI lo g)

1(lo g

其中 Pi是第 i种事件发生的先验概率,a是编码基值。信息量的单位是表示位数(最少所需位数)。

这个定义式表明事件的发生概率越低,关于它的消息中的信息量越大。

熵 ( entropy) ── 平均信息量,一个消息源对 n种事件发布的消息的信息量平均值,记为

n

i

iai

n

i

ii PPIPH

11

)(l o g)(

平均码长,各事件编码长度的数学期望。

n

i

ii lPL

1

)(

信息冗余量,它表明消息编码中,无用成分,所占的百分比。

%100 L HLR

从减少存储与传输量的角度看,编码方法的平均码长越短越好 。 但是平均码长不可能无限制缩短,它的下限就是熵 ( 即 R=0

时 ) 。 如果短于熵就一定会丢失有用信息 ( 即混淆不同指令 ),

这是不允许的 。

2.3.2.1 定长编码 就是所有指令使用相同代码位数,其最小码长等于

nL o glL i 2

式中 是平均码长,是第 i种指令的码长,n是指令总数。

例 2.2 已知 n = 15,求定长编码的最小平均码长。

解:

L

il

4152 L o gL

主要优点:规整,译码简单

主要缺点:浪费信息量(操作码的总长位数增加)

2.3.2.2 Huffman压缩编码( P91)

(1)Huffman压缩概念 ( 最佳编码定理 ),当用 n个长度不等的代码分别代表 n种发生概率不等的事件时,按照短代码给高概率事件,

长代码给低概率事件的原则分配,可使平均码长达到最低 。

(2)Huffman编码方法 (最小概率合并法 )

频度合并,将全部 n个事件 ( 在此即为 n条指令 ) 频度值排序,选取其中最小 2个频度合并,然后将剩下 n-1个频度再次排序,再合并最小 2个频度,如此重复,直至剩下 1个频度为止 。 记录所有合并关系,形成二叉树 ─Huffman树,所有原始频度值当树叶,最后剩下总频度 1为树根;

码元分配,从树根开始,对每个中间结点 2分支边各赋予一位代码

,0”和,1”。 读出从根结点到树叶路径上依次出现的代码位,其排列即为此事件 ( 即指令 ) 完整编码 。 由于频度高事件较晚被合并,其编码位数也就较少,符合 Huffman压缩原则 。

上面所说 频度值 就是各事件实际出现次数百分比,它是理论出现概率 近似值 。

指令序号 出现的概率

I1 0.45

I2 0.30

I3 0.15

I4 0.05

I5 0.03

I6 0.01

I7 0.01

0.01 0.01

0.02 0.03

0.05 0.05

0.10 0.15

0.25 0.30

0.55 0.45

1.00

1

0

0

0

0

0

0

1

1

1

1

1

模型机的操作码 Huffman编码法指令序号 出现的概率 Huffman编码法 操作码长度

I1 0.45 0 1位

I2 0.30 1 0 2位

I3 0.15 1 1 0 3位

I4 0.05 1 1 1 0 4位

I5 0.03 1 1 1 1 0 5位

I6 0.01 1 1 1 1 1 0 6位

I7 0.01 1 1 1 1 1 1 6位采用 Huffman编码法所得到的操作码的平均长度为:

= 0.45× 1+ 0.30× 2+ 0.15× 3+ 0.05× 4

+ 0.03× 5+ 0.01× 6+ 0.01× 6

= 1.97(位)

采用最优 Huffman编码法,操作码的平均长度为:

= 0.45× 1.152+ 0.30× 1.737+

0.15× 2.737+ 0.05× 4.322+ 0.03× 5.059+

0.01× 6.644+ 0.01× 6.644 = 1.95

H p li i

i

1

7

H p pi i

i

2

1

7

l o g

采用 3位固定长操作码的信息冗余量为:

Huffman编码法的信息冗余量仅为:

与采用 3位固定长操作码的信息冗余量 35%相比要小得多。

R

H1

7

1 1 973 35%

2l o g

.

R1 1 95

1 97

1 0%.

.

.

nn

i iaii ii

PP?IP

11

)(log)(

例 已知频度序列为 0.1,0.1,0.15,0.15,0.2,

0.3,求 Huffman编码的熵、平均码长以及信息冗余量。

解,熵 H=

= – 2× 0.1× log20.1+2× 0.15× log20.15+0.2× log20.2+0.3× log20.3)

≈2.47

要求信息冗余量,先求 Huffman编码的平均长度

0 1

0

0

0

0

1

1

1

1

I1 I2 I3 I4 I5 I6

0.1 0.1 0.15 0.15 0.2 0.3

Huffman 000 001 110 111 01 10

n?

i

ii lP

1

)(则平均码长 L =

= 3*0.1 + 3 *0.1 + 3 * 0.15 + 3*0.15 + 2 *0.2 +2*0.3

= 2.5

信息冗余量 %100 LHLR

= ( 2.5 – 2.47 )/2.5? 1.2%

Huffman操作码的主要缺点:

操作码长度很不规整,硬件译码困难与地址码共同组成固定长的指令比较困难

扩展编码法,由固定长操作码与 Huffman编码法相结合形成

2.3.2.3 扩展编码方法

7条指令的操作码扩展编码法指令序号 出现的概率 1-2-3-5扩展编码 2-4等长扩展编码

I1 0.45 0 0 0

I2 0.30 1 0 0 1

I3 0.15 1 1 0 1 0

I4 0.05 1 1 1 0 0 1 1 0 0

I5 0.03 1 1 1 0 1 1 1 0 1

I6 0.01 1 1 1 1 0 1 1 1 0

I7 0.01 1 1 1 1 1 1 1 1 1

平均长度 2.0 2.2

信息冗余量 2.5% 11.4%

例如,例 2.7改为 1-2-3-5扩展编码法,其操作码平均长度为:

H= 0.45× 1+ 0.30× 2+ 0.15× 3+ (0.05+ 0.03

+ 0.01+ 0.01)× 5

= 2.00

信息冗余量为:

例如,例 2.7改为 2-4等长扩展编码法,其操作码平均长度为:

H=( 0.45+ 0.30+ 0.15) × 2+( 0.05+ 0.03+

0.01+ 0.01) × 4

= 2.20

信息冗余量为:

R1 1 952 00 2 5%..,

R1 1 952 20 11 4%..,

2.3.2.3 扩展编码方法( 等长扩展法,P93)

用码长表示:例如 4-8-12法 。这并不能说明具体编码方法,例如下面两种编码方法都是 4-8-12法。

用码点数表示:例如 15/15/15法,8/64/512法

15/15/15法,每一种码长都有 4位可编码位(前头可以有相同的扩展标识前缀),可产生 16个码点(即编码组合),但是至多只能使用其中 15个来表示事件,留下 1个或多个码点组合作为更长代码的扩展标识前缀。已经用来表示事件的码点组合不能再作为其它更长代码的前导部分,否则接收者会混淆。

这就是“非前缀原则”。

8/64/512法,每一种码长按 4位分段,每一段中至少要留下 1

位或多位作为扩展标识。各段剩下的可编码位一起编码,所产生的码点用来对应被编码事件。每一段中的标识位指出后面还有没有后续段。

操作码 等长扩展编码法操作码编码 说 明 操作码编码 说 明

0000

0001

……

1110

4位长度的操作码共 15种

0000

0001

……

0111

4位长度的操作码共 8种

1111 0000

1111 0001

……

1111 1110

8位长度的操作码共 15种

1000 0000

1000 0001

……

1111 0111

8位长度的操作码共 64种

1111 1111 0000

1111 1111 0001

……

1111 1111 1110

12位长度的操作码共 15种

1000 1000 0000

1000 1000 0001

……

1111 1111 0111

12位长度的操作码共 512种等长 15/15/15…… 扩展法 等长 8/64/512…… 扩展法保留一个码点标志 保留一个标志位不等长操作码扩展编码法( 4-6-10扩展编码法)

编码方法 各种不同长度操作码的指令 指令种类

4位操作码 6位操作码 10位操作码

15/3/16 15 3 16 34

8/31/16 8 31 16 55

8/30/32 8 30 32 70

8/16/256 8 16 256 280

4/32/256 4 32 256 292

本章主要内容有 数据表示 和 操作码优化 两个部分。具体细节如下:

(1) 浮点数的 表数范围 (在数轴上的 4个端点),表数精度?、

表数效率?;

(2) Huffman编码方法;

(3) 等长扩展编码方法( 15/15/15法,8/64/512法 );

(4) 编码方法性能指标( 熵 H,平均码长 L,信息冗余量 R)。

习题,P124,题 3(忽略 P124倒 1行 ~ P125第 8行文字),题

13。

本章小结自学部分:

寻址技术

编址方式

寻址方式

定位方式

指令系统功能设计

CISC

RISC

华科计算机层次结构图,xchap-2-2_华中科技大学计算机学院:2007本科计算机系统结构(刘芳)_ppt_大学课件预览_高等教育资讯网...相关推荐

  1. 计算机控制系统刘恩沧课后题答案,第八章2 提高计算机控制系统可靠性的技术措施_内蒙古农业大学:计算机控制技术_ppt_大学课件预览_高等教育资讯网...

    第八章 提高计算机控制系统可靠性的技术措施 第八章 提高计算机控制系统可靠 性的技术措施 8.1 软件故障诊断措施 8.2 软件可靠性措施 8.3 内部干扰 8.4 采用隔离变压器 8.5 接地设计 ...

  2. 管理运筹学软件计算机解咋看,第3章 线性规划问题的计算机求解_中国地质大学(武汉):管理运筹学(郭海湘)_ppt_大学课件预览_高等教育资讯网...

    管 理 运 筹 学 1 第三章 线性规划问题的计算机求解 § 1,管理运筹学"软件的操作方法 § 2,管理运筹学"软件的输出信息分析管 理 运 筹 学 2 第三章 线性规划问题的计 ...

  3. 计算机过程控制系统实例ppt,chap7 前馈控制系统_武汉理工大学:调节仪表与过程控制系统_ppt_大学课件预览_高等教育资讯网...

    第七章 前馈及复合控制系统其他反馈控制的缺点: 无法将干扰克服在被控制量偏离设计值之前. 被控对象总是存在一定的纯滞后和容量滞后,故限制了控制作用的充分发挥. § 7-1 基本概念 1.问题的提出 2 ...

  4. 湖北经济学院的计算机是否强,graphics-ch11-真实感图形绘制_湖北经济学院:计算机图形学_ppt_大学课件预览_高等教育资讯网...

    第十一章 真实感图形技术 1,简单光照明模型 2,多边形绘制方法 3,透明 4,整体观照明模型 5,光线跟踪算法 第十章 真实感图形绘制 光照模型 (Illumination Model):计算某 一 ...

  5. 大学计算机基础模拟系统2014ppt第三,第一章_河海大学:大学计算机信息技术_ppt_大学课件预览_高等教育资讯网...

    大学计算机信息技术 蔡正林 2004.9.21 本课程教学说明 ? 本课程教学目的 ? 广度优先原则,面广量大 ? 学会听课,记笔记,记问题 (上课时间地点 ) ? 学会实践上机,记问题 (关于上机指 ...

  6. 计算机在航空航天的应用ppt,数字图像处理技术的应用_北京航空航天大学:数字图像处理技术的应用_ppt_大学课件预览_高等教育资讯网...

    数字图像处理技术的应用 北京航空航天大学宇航学院 图象处理中心 第一节 数字图像处理应用 概述 1.1 图像的重要性: 人类离不开图像, 计算机图像技术渗透到 各个科技领域, 百闻不如一见 . 画面比 ...

  7. 大学计算机英语PPT,MULTIP~1.PPT_计算机英语(ppt资料)_ppt_大学课件预览_高等教育资讯网...

    Copyright ? 1997 Altera Corporation 3/3/2011 P.1 Multiple Clock System Design Danny Mok Altera HK FA ...

  8. 计算机英语课程 ppt,Unit 3_计算机专业英语_doc_大学课件预览_高等教育资讯网

    Unit 3 Text 1 1.Match each of the words or phrases with their Chinese meaning. disk 磁盘 modem 调制解调器 d ...

  9. primary计算机英语,模拟试题1_计算机专业英语_doc_大学课件预览_高等教育资讯网...

    计算机英语试题一.词汇(选择一个最合适的词汇,将对应的英文字母填入空格内.每题1分,共10分) 1.____ refers to the parts of the computer that you ...

最新文章

  1. linux运维如何月薪过万?(收藏自用)
  2. 大连理工本科生顶会连刷SOTA被爆作弊!AAAI 2022接收后又面临撤稿,一作仍未发声...
  3. while/do while
  4. 【leetcode】974. Subarray Sums Divisible by K
  5. ADA4530静电计放大器
  6. 【DG】Oracle 19c使用dbca来搭建物理DG
  7. 关于Unable to execute dex: Java heap space 解决办法
  8. 达内php吾爱_2018年达内c++全套视频课程(不加密)
  9. C++中重载与重写函数区别及虚函数(转载)
  10. python nameko用于生产_用 Python、 RabbitMQ 和 Nameko 实现微服务
  11. 父子组建传值_浅谈Vue父子组件和非父子组件传值问题
  12. Java中的全局变量与局部变量
  13. 636. 132 模式
  14. Excel VBA入门教程
  15. java如何开发安卓软件_Java 程序员如何快速入门 Android 开发?
  16. 软件工程导论作业2.4
  17. 【机器学习】图解机器学习神器:Scikit-Learn
  18. uniapp开发小程序如何修改picker选中样式及选中字体样式
  19. 『Android开源控件』Banner广告图片轮播控件
  20. 低功耗蓝牙ATT/GATT/Profile/Service/Characteristic解读

热门文章

  1. 阻塞性系统调用失败,errno(ENTIR)4 [Interrupted system call]系统调用被信号中断
  2. 黑客与画家 --值得一看的好书
  3. 十一、Actix-web 拦截器中间件
  4. python-docx删除段落(含回车符)v202111221750
  5. JavaScript回顾
  6. es修改IK分词器源码 mysql热词动态更新(报错解决x3)
  7. 苹果电脑Catalina中的iPhone备份文件怎样删除?
  8. linux拷贝文件大小不一样,关于拷贝或远程拷贝文件后大小不一致的问题分析
  9. eclipse+tomcat搭建服务器遇到的坑:运行整个项目不能连接数据库,单独的测试类却能够连接数据库
  10. 【Swift】 WKWebView https 加载不受信任的站点