计算机体系结构课件 李学干
码制转换问题,如ASCII码与BCD码之间的转换。 在IBM 370计算机中就设置有专门的码制转换指令, 用一条指令就能完成一个字串的码制转换。
面向目标程序的优化方法
例:“翻译”指令用于码制变换,如EBCDIC码 ASCII 码
被变换符(源符)块 变换表 (B1)+D1 G L
YY
(B2)+D2
取决于所设计的系统中 指令的使用频度的分布。
使平均码长∑pili最短
指令字格式的优化
为了不降低访存取指令的速度,就要维持指令字 按整数边界存储。 可寻址224的 存储空间。 操作数地址的位数 从寻址范围看,越大越好 用各种方法,压缩操作数部分的位数。
指令中访存地址码部分
基寄存器址
4位
位移量(D)
12位
指令系统的设计和优化
指令系统是从程序设计者看到的机器的主要属性, 是软、硬件的主要界面 -指令系统是计算机系统结构的主要组成部分; -指令系统是软件与硬件分界面的一个主要标志; -指令系统是软件与硬件之间互相沟通的桥梁。
指令系统的基本特性
完备性指的是一个指令系统可以满足对给定的算 法编制出程序来加以实现的特性; 有效性指的是一个指令系统能用相当少的指令编 出实现某种算法的程序的特性; 简明性指的是一个指令系统既能简化处理机结构 的设计,又能简化编程的特性。
指令的使用频度
指令的静态使用频度指的是对多种典型程序源代 码中所用的指令和指令串进行统计所得出的百分 比。 指令的动态使用频度指的是对多种典型程序在运 行过程中所执行的指令和指令串进行统计所得出 的百分比。
着眼于减少目标程序所 占用的存储空间
着眼于减少目标 程序的执行时间
例:对IBM 360的19个典型程序进行统计:
面向目标程序优化实现的改进
优化的目的
提高目标程序的实现效率
衡量效率的主要标准
程序的实现速度和长度
优化的基本思想
对使用频率高的指令,
增强其功能并缩短字长; 对使用频率高的指令串, 增设新指令来替代它; 对使用频率低的指令, 取消或合并,但要考虑到 指令系统的兼容性问题 。
指令字格式的优化
定长地址码带来的问题
li:操作码优化表示的长度
定长地址码发挥不出操作码优化表示的作用
指令字格式的优化
通过采用多种不同的寻址方式,地址制、地址形式和 地址码长度以及多种指令长度,将它们与可变长操作 码的优化表示结合起来,可构成冗余度尽可能少的指 令字。
指令字格式的优化
指令 OPR+OPD
寻址方式在指令中的指明方式
操作码占用位
DJS200中:操作码中2位表示
地址码设置寻址方式字段 VAX-11的4位寻址方式字段; 寻址灵活、操作码短,需专门的寻址方式 位字段。
V:两种表示寻址方式的方法
2.2.2 程序在主存中的定位
逻辑地址与主存物理地址
逻辑地址:程序员编写程序时使用的地址。
物理地址:程序在主存中的实际地址。 逻辑地址空间和物理地址空间是不一致的。
面向高级语言的优化实现改进
优化的目的
尽可能缩短高级语言和机器语言间的语义差距
衡量效率的主要标准
程序的编译时间和长度
优化的基本思想
对高频指令增设与之语义差距小的新指令; 面向编译,优化代码生成; 设法改进指令系统,使其与各种语言间的语义差距都同
等缩小; 让机器具有分别面向各种高级语言的多种指令系统、多 种系统结构; 发展高级语言计算机。
寻址方式的种类
变址寻址
ADD R3,(R1+R2)
寄存器间接寻址 ADD R1,@(R3) 自增自减寻址 ADD R1, (R2)+
R3R3+M[R1+R2]
R1 R1+M[M[R3]] R1 R1+M[R2] R2 R2+d
V:当前指令集结构中所使用的一些操作数寻址方式 V:寻址方式使用情况统计结果
操作码的Hufmann编码
操作码的Hufmann编码
操作码的Hufmann编码
操作码的Hufmann 编码
例(续)
操作码的Hufmann编码
扩展操作码宜于等长扩展 便于分级译码
如48 12码,步长为4。
操作码的Hufmann编码
15/15/15码
操作码的Hufmann编码
15/15/15码 8/64/512码
第二章 数据表示与指令系统
2.2 寻址方式
寻址方式
寻址方式 指令按什么方式寻找(或访问)到所需的操作 数或信息。 寻址方式分析 目的:以最短的位描述给定的寻址方式。 逻辑地址与主存物理地址
2.2.1 寻址方式分析
寻址方式分析
存放数据或信息的部件通常有通用寄存器、主存、 堆栈以及像控制寄存器、设备寄存器及某些专门 寄存器等。 V: CPU中用来存储操作数的存储单元 面向寄存器的寻址方式 速度快,增加硬件 面向主存的寻址方式 容量大,速度稍慢,减少寄存器占用 面向堆栈的寻址方式 实现子程序、递归,减轻编译负担
寻址方式分析
编址方式(寄存器组、主存、I/O) 1)统一编址 所有从“0”开始 优点:可简化指令系统。 缺点:使地址形成复杂化。 2)分类编址 各自从“0”开始 优点:指令较短、地址形成简单、编址空间较大。 缺点:区分每类部件的标志。 3)隐含编址 事先约定好 优点:速度比较快,不必进行地址计算。
操作码的Hufmann编码
Hufmann树的构造
选取两个概率最小的节点合并成一个概率值是两者 之和的新节点,并把这个新节点与其他还没有合并 的节点一起形成新节点集合。 在新节点集合中选取两个概率最小的节点进行合并, 如此继续,直至全部节点合并完毕。 最后得到的根节点的概率值等于1。 每个节点都有两个分支,分别用0和1表示。 从根节点开始,沿箭头所指方向,到达属于该指令 的概率节点,把沿线经过的代码组合起来,就得到 这条指令的操作码编码。
ST L LA ST L REG, SAVE REG, VARIABLE REG, N, (REG) REG, VARIABLE REG, SAVE ; ; ; ; ; (REG)SAVE REG(VARIABLE) REG (REG)+N REG VARIABLE REG (SAVE)
逻辑地址与主存物理地址
IBM370
主存宽度64位
V:访问不同操作数大小的频率
64位 主存宽度64位
保证访存速度 造成浪费
速度和价格的权衡
字节地址为:… 半字地址为:… 0 单字地址为:… 00 双字地址为:… 000
2.3 指令系统的设计和优化
V:高级语言计算机指令系统
大多数采用分类编址的方法 缺点:设计不规范。
寻址方式的种类
寄存器寻址
ADD R4,R3
立即寻址 ADD R4,#3
R4R4+R3
R4 R4+3 R1 R1+M[2000] R4 R4+M[R1]
直接寻址
ADD R1, (2000) 间接寻址 ADD R4, (R1) 相对寻址(偏移寻址)
ADD R4,100(R1) R4 R4+M[100+R1]
地址码长度可以有很宽的变化范围,是可以和可 变长操作码配合 ——长操作码配短地址码
采用多种地址制式:三、二、一、0地址 最常用的指令操作码最短,其地址段个数多,功 能增强
指令系统的优化设计
目前,指令系统的优化设计有两个截然相反的方向。 1、增强指令的功能 强化指令功能,把一些原来由软件实现的、常用的功 能改用硬件的指令系统来实现复杂指令系统计算机 (complex instruction set computer,CISC)。
面向操作系统的优化实现改进
优化的目的
尽可能缩短操作系统和系统结构间的语义差距
衡量效率的主要标准
操作系统的时间和存储空间
优化的基本思想
根据高频指令(串)改进; 增设专用于操作系统的新指令; 将高频、影响大的“机构型”软件子程序硬化或固化; 发展让操作系统由专门的处理机来执行的功能分布处理
V:不同立即值大小的使用分布情况
操作码的优化表示
研究操作码的优化表示,是 为了缩短指令字的长度,减少程序的总位数 及增加指令字所能表示的操作信息和地址信息。
H ':操作码的实际平均长度
操作码的Hufmann编码
假设一台模型计算机共有7种不同的操作码, 已知各种操作码在程序中出现的概率如下表, 计算采用Huffman编码法的操作码平均长度, 并计算固定长操作码和Huffman操作码的信息 冗余量。
XX
…
XX
①
…
YY
…
翻译
0 8
②
…
B2
32 36
L
B1
16 20
D1
D2
47
(B1)+D1+G ((B2)+D2+((B1)+D1+G)) G=0, 1, ..., L-1
面向目标程序的优化方法
3.增强程序控制指令的功能
在CISC计算机中一般均设置了多种程序控制指令。
例如,VAX-11/280有29种转移指令。
2、尽量简化指令功能 尽量简化指令功能,只保留那些功能简单,能在一个 节拍内执行完成的指令,较复杂的功能用一段子程序 来实现 计算机系统称为精简指令系统 (reduced instruction set computer,RISC)。
CISC指令系统的发展
面向目标程序优化实现的改进 面向高级语言优化实现的改进 面向操作系统优化实现的改进