§3 指令系统的设计和优化 指令系统是从程序设计者看到的机器的主要属性,是软、硬件的主要界面 指令系统是计算机系统结构的主要组成部分

Slides:



Advertisements
Similar presentations
指令系统 吴非 本章主要内容 指令系统 指令格式 寻址方式 典型指令系统 MIPS指令系统 RISC 与 CISC -2-
Advertisements

信息技术:硬件、软件、网络、数据库 计算机技术、多媒体技术、压缩技术...
2017年3月5日 单片机原理与应用 背景知识调查.
实验四 利用中规模芯片设计时序电路(二).
第三章 计算机核心部件及其 工作原理.
第5章 指令系统 5.1 指令系统的发展 5.2 指令格式与数据表示 5.3寻址方式(编址方式) 5.4 指令类型与指令系统的兼容性
小学生游戏.
1.1 计算机系统简介 1.2 计算机的基本组成 1.3 计算机硬件的主要技术指标 1.4 本书结构.
计算机系统结构 南京航空航天大学 计算机科学与技术学院 主讲:刘佳
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
计算机基础知识 丁家营镇九年制学校 徐中先.
第三章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:
Hadoop I/O By ShiChaojie.
逆向工程-汇编语言
第四章 典型CPU及指令系统举例.
第2章 汇编语言与汇编程序 ——8086/8088指令系统 mov ax,12h call display Jmp 1234h.
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
总 复 习.
§2 寻址方式 寻址方式:是指令按什么方式寻找(访问)到所需的操作数或信息的。 寻找操作数及其地址的技术称为寻址技术 编址方式 寻址方式分析
存储系统.
SOA – Experiment 3: Web Services Composition Challenge
第3章 8086/8088指令系统 mov ax,12h call display Jmp 1234h.
走进编程 程序的顺序结构(二).
7.1 机器指令 7.2 操作数类型和操作类型 7.3 寻址方式 7.4 指令格式举例 7.5 RISC 技术.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
computer organization principle
逆向工程-汇编语言
数据挖掘工具性能比较.
CPU结构和功能.
《编译原理与技术》 期末复习 计算机科学与技术学院 郑启龙 李 诚 25/12/2018.
第二章 80x86计算机组织 x86微处理器 2.2 基于微处理器的计算机系统构成 2.3 中央处理机 2.4 存储器
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
SOA – Experiment 2: Query Classification Web Service
第2章 计算机指令集结构 授课教师:车喜龙
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
微机系统的组成.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
实验七 安全FTP服务器实验 2019/4/28.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
信号量(Semaphore).
第4章 Excel电子表格制作软件 4.4 函数(一).
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
本节内容 内存复制指令 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
College of Computer Science & Technology
微机原理与接口技术 ——8086微处理器 西安邮电大学 计算机学院 范琳.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
本节内容 通用寄存器 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
基于列存储的RDF数据管理 朱敏
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
异分母分数加、减法.
数据表示 第 2 讲.
上节复习(11.14) 1、方式2、方式0的特点? 2、定时/计数器的编程要点? 3、实验5方案优化问题.
24 or 1024? PWN Jawbone Up24 手环.
第4章 指 令 系 统 4.1 指令系统的发展与性能要求 4.2 指令格式 4.3 指令和数据的寻址方式 4.4 典型指令
微机原理与接口技术 西安邮电大学计算机学院 董 梁.
第十七讲 密码执行(1).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
第三章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:
学习目标 1、什么是列类型 2、列类型之数值类型.
9.3多项式乘多项式.
Presentation transcript:

§3 指令系统的设计和优化 指令系统是从程序设计者看到的机器的主要属性,是软、硬件的主要界面 指令系统是计算机系统结构的主要组成部分 §3 指令系统的设计和优化 指令系统是从程序设计者看到的机器的主要属性,是软、硬件的主要界面 指令系统是计算机系统结构的主要组成部分 指令系统是软件与硬件分界面的一个主要标志 指令系统是软件与硬件之间互相沟通的桥梁 指令系统与软件之间的语义差距越来越大 指令系统的设计主要包括指令的功能(操作类型、具体操作内容)和指令格式的设计.

内容 指令系统设计的基本原则 指令操作码的优化 指令字格式的优化

指令设计的步骤 根据应用,初拟出指令的分类和具体的指令; 试编出用该指令系统设计的各种高级语言的编译程序; 对各种算法白那些大量测试程序进行模拟测试,看指令系统的操作码和寻址方式效能是否都比较高; 将程序中高频出现的指令串复合改成一条强攻能新指令,即改用硬件方式实现;而将频度很低的指令的操作改成基本的指令组成的指令串来完成,即用软件方式实现;

指令类型 非特权型:主要供应应用程序员使用,也可供系统程序员使用,包括算术逻辑运算、数据传送、浮点运算、字符串、十进制运算、控制转移及系统控制等; 特权型:系统程序员使用,用户无权使用,有启动I/O(多用户环境下)、停机等待、存储管理保护、控制系统状态、诊断等;

指令系统的设计 设计的原则:如何支持编译系统能高效、简易地将源程序翻译成目标代码。 规整性 对称性 独立性和全能性 正交性 可组合性 可扩充性

系统设计人员希望 指令码密度适中 兼容性 适应性 高密度指令:强功能符合指令 优点:减少程序长度、访存次数、Cache、虚存访问调度次数、程序运行时间; 缺点:指令系统复杂,硬件实现困难; 兼容性 适应性

指令系统的设计包含的内容 指令的格式 指令的类型 操作功能 操作数的访问方式---寻址方式

指令的组成 一般的指令主要由两部分组成:操作码和地址码 操作码主要包括两部分内容: 地址码通常包括三部分内容: 操作种类:加、减、乘、除、数据传送、移位、转移、输入输出 操作数描述 数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量 进位制:2进制、10进制、16进制 数据字长:字、半字、双字、字节 地址码通常包括三部分内容: 地址:直接地址、间接地址、立即数、寄存器编号、变址寄存器编号 地址的附加信息:偏移量、块长度、跳距 寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址

指令设计要考虑的问题 操作数的存储形式 存储器 CPU内什么地方 每条指令中显式说明的操作数个数 操作数的位置 操作类型 操作数的类型和长短

指令的分类

指令格式的优化 指令=操作码+地址码 指令格式的优化:如何用最短的位数来表示 指令的操作信息和地址信息,使程序中指 令的平均字长最短。 主要目标: 节省程序的存储空间 指令格式尽量规整,便于译码

操作码的优化表示 操作码的三种编码方法: 固定长度: 规整性好,解码简单,空间大。 Huffman编码:空间小,规整性不好,解码复杂。 固定长度: 规整性好,解码简单,空间大。 IBM公司的大中型机:最左边8位为操作码 Intel公司的Intanium处理机:14位定长操作码 许多RISC处理机采用定长操作码 Huffman编码:空间小,规整性不好,解码复杂。 扩展编码: 折衷方案。 固定长度 4 Huffman编码 2.12 扩展编码 3.12 信息源熵 2.09

改进操作码编码方式能够节省程序存储空间 例如:Burroughs公司的B-1700机 操作码 编码方式 整个操作系统所用 指令的操作码总位数 改进的 百分比 8位定长编码 4-6-10扩展编码 Huffman编码 301,248 184,966 172,346 39% 43%

哈夫曼(Huffman)压缩 当各种事件发生的概率不均等时,采用优化技术对发生概率最高的事件用最短的位数(时间)来表示(处理),而对出现概率较低的允许用较长的位数(时间)来表示(处理),以达到平均位数减少的目的。 用于代码压缩、程序压缩、空间压缩和时间压缩

操作码的优化表示 信息源熵:信息源包含的平均信息量。 信息冗余量:

举例 七条指令,频度如下 I1 I2 I3 I4 I5 I6 I7 0.4 0.3 0.15 0.05 0.04 0.03 0.03 信息源熵H=2.17 信息冗余量=0.28=28%

1.00 0.60 0.30 0.15 0.06 0.03 0.04 0.05 0.40 0.09 1 (11111) (11110) (11101) (11100) (110) (10) (0) I7 I6 I1 I2 I3 I4 I5

扩展编码 Huffman操作码的主要缺点: 扩展编码法:由固定长操作码与Huffman编码法相结合形成 操作码长度很不规整,硬件译码困难 与地址码共同组成固定长的指令比较困难 扩展编码法:由固定长操作码与Huffman编码法相结合形成 减少平均长度 方便译码

上例:Huffman用四种长度 0,10,110,11100,11101,11110,11111 I1、I2、I3用两位:00、01、10 I4、I5、I6、I7用四位: 1100、1101、1110、1111 平均码长=2.30 信息冗余量=0.0565=5.65%

Huffman编码方法 写出每个事件出现频度 找出两个时间出现频度最低的数字,相加形成新的频度

说明 目的:平均码长减少。 Huffma代码不唯一 0,1对换 合并次序

举例1 假设一台模型计算机共有7种不同的操作码,如果采用固定长操作码需要3位。已知各种操作码在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量。 利用Huffman树进行操作码编码的方法,又称为最小概率合并法。 指令 I1 概率 0.45 I2 0.30 I3 0.15 I4 0.05 I5 0.03 I6 0.01 I7

把所有指令按照操作码在程序中出现的概率,自左向右从排列好。 选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成新结点集合。 在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。 最后得到的根结点的概率值为1。 每个结点都有两个分支,分别用一位代码“0” 和“1”表示。

从根结点开始,沿尖头所指方向,到达属于该指令的概率结点,把沿线所经过的代码组合起来得到这条指令的操作码编码。 解:采用Huffman编码法所得到的操作码的平均长度 =0.45×1+0.30×2+0.15×3+0.05×4 +0.03×5+0.01×6+0.01×6=1.97(位) 熵H=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(位)

0.45 0.30 0.15 0.05 0.03 0.01 1.00 0.55 0.25 0.10 0.02 1

指令序号 概率 Huffman编码法 操作码长度 I1 0.45 1位 I2 0.30 10 2位 I3 0.15 110 3位 I4 0.05 1110 4位 I5 0.03 11110 5位 I6 0.01 111110 6位 I7 1111111 采用3位固定长操作 码的信息冗余量为:

例如:把上例改为1-2-3-5扩展编码法,其操作码最短平均长度为:. H. =. 45×1+0. 30×2+0. 15×3+. (0

7条指令的操作码扩展编码法 序号 概率 1-2-3-5扩展编码 I1 0.45 I2 0.30 10 I3 0.15 110 I4 0.05 I2 0.30 10 I3 0.15 110 I4 0.05 11100 I5 0.03 11101 I6 0.01 11110 I7 11111 2-4等长扩展编码 00 01 1100 1101 1110 1111 平均长度 2.0 2.2 信息冗余量 2.5% 11.4% 7条指令的操作码扩展编码法

举例2:二~十进制代码压缩 2位二~十进制代码可表示0~99 a b c d e f g h 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1

写出概率表 ae=00, g=0.8*0.8=0.64 ae=01, g=0.2*0.8=0.16 ae=10, g=0.8*0.2=0.16 ae=11, g=0.2*0.2=0.04

画出Huffman代码树,写出代码表 ae状态 概率 Huffman代码 0 0 0.64 1 0 0.16 1 1 0 1 1 0 0 0 0 0.64 1 0 0.16 1 1 0 1 1 0 0 1 1 0.04 1 0 1

写出压缩代码表 ae=00 0 b c d f g h ae=10 b=c=0 1 1 x d f g h ae=01 f=g=0 1 0 0 d b c h ae=11 b=c=f=g=0 1 0 1 d x x h

操作码等长扩展编码法

指令字格式的优化 为了不降低访存取指令的速度,按整数边界存储。 操作数地址的位数 从寻址范围看:越大越好 用各种方法,压缩操作码的位数 通过采用多种不同的寻址方式、地址制、地址形式和地址码长度以及多种指令字长,将它们与可变长操作码的优化表示相结合,可构成冗余度尽可能少的指令字。

等长地址码发挥不出操作码优化表示的作用 limax 地址码 空白浪费 limin li

在定长指令字内实现多种地址制 地址码 操作码

寻址方式中必须支持使用频率较高的寻址方式,相关参数必须满足90%以上的使用频率。 基础:初步设计的指令集。 目标:减少指令长度,提高指令性能。 优化原则: 采用高概率优先思想,对高频率指令,缩短指令长度,提高效率,对低频率指令,主要满足功能要求; 地址码长度富裕时,采用不同的寻址方式或不同的地址制,增加功能; 地址码长度紧张时,采用特定的寻址方式或增加指令字长,满足功能。 寻址方式中必须支持使用频率较高的寻址方式,相关参数必须满足90%以上的使用频率。

地址码的优化表示 地址码个数的选择 地址码个数通常有3个、2个、1个及0个等4种情况 评价指令中地址码个数应该取多少的标准主要有两个:􀂾 程序存储容量,包括操作码和地址码􀂾 程序执行速度,以程序执行过程中访问主存的信息量代表

举例:计算一个典型的算术表达式 用三地址指令编写的程序如下 MUL X, A, B ;X←(A)×(B) ADD X, X, C ;X←(X)+(C) SUB X, X, D ;分子的计算结果在中 ADD Y, E, F ;计算分母,存入 YDIV X, X, Y ;最后结果在X单元中

用普通二地址指令编写的程序 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单元中

用多寄存器结构的二地址指令编写程序 MOVE R1, A ;操作数a取到寄存器R1中 MUL R1, B ADD R1, C SUB R1, D ;R1中存放分子运算结果 MOVE R2, E ADD R2, F ;R2中存放分母运算结果 DIV R1, R2 ;最后结果在R1中 MOVE X, R1 ;最后结果存入X中

用一地址指令编写的程序 LOAD E ;先计算分母, ;取一个操作数到累加器中 ADD F ;分母运算结果在累加器中 STORE X ;保存分母运算结果到X中 LOAD A ;开始计算分子 MUL B ADD C SUB D ;累加器中是分子运算结果 DIV X ;最后运算结果在累加器中 STORE X ;保存最后运算结果到X中

用0地址指令编写程序:ab*c+d-ef+/ PUSH A ;操作数a压入堆栈 PUSH B ;操作数b压入堆栈 MUL ;栈顶两数相乘,结果压回堆顶 PUSH C ADD PUSH D SUB ;栈顶是分子运算的结果 PUSH E PUSH F DIV ;栈顶是最后运算的结果 POP X ;保存最后运算结果

关于地址码个数结论 对于一般商用处理机,采用多寄存器结构的二地址指令是最理想的。􀂾 如果强调硬件结构简单,并且以连续运算(如求累加和等)为主,宜采用一地址结构。􀂾 对于以向量、矩阵运算为主的处理机,最好采用三地址结构。RISC处理机采用三地址指令􀂾 对于解决递归问题为主的处理机,宜采用零地址结构。编程容易、节省程序存储量。

缩短地址码长度的方法 用一个短地址码表示一个大地址空间 用间址寻址方式缩短地址码长度方法: 用变址寻址方式缩短地址码长度 在主存储器的低端开辟一个专门存放间接地址的区域 用变址寻址方式缩短地址码长度 变址寻址方式中的地址偏移量比较短, 用寄存器间接寻址方式缩短地址码长度 例如:16个间址寄存器,用4位地址码就能表示很长的逻辑地址空间。