版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章计算机属性的优选技术
软件与硬件功能的分配是计算机体系结构设计的关键,是确定
计算机硬件属性的基础,而计算机硬件属性包括数据表示、寻址技
术、指令系统、总线与机器级的I/O结构(含中断机构)、信息保
护等方面的内容。为避免与计算机组成原理等其它课程重复,本章
从软硬件功能分配出发,着重讨论计算机硬件属性的优化或选择技
术。
第一节数据表示
第二节寻址技术与存储保护
第三节指令格式的优化设计
第四节指令系统的功能设计
第五节输入输出系统与总线
第一节数据表示
一、数据表示的基本概念
二、引入数据表示的基本原则
三、自定义数据表示
四、向量与堆栈数据表示
五、浮点数的尾数基值
一、数据表示的基本概念
1.数据类型
具有一组值的集合,并定义了作用于该集合的操作集。数据类型可分为
基本类型和结构(复合)类型。基本类型是指不可再分的单个数据元素的数
据类型,一般包括二进制位、二进制位串、整数、十进制数、浮点数、字符、
布尔数等;结构类型是由一组相互有关的数据元素复合而成的数据类型,如
数组、字符串、向量、堆栈、队列、记录等。
2.数据表示与数据结构
数据类型的表示有两种方式,一种是用计算机的硬件直接表示,另一种
是通过软件间接表示,即通过软件映像变换成计算机的硬件能直接表示的数
据类型的集合。
数据表蒜指由计算机硬件能直接识别、指令系统能引用的数据类型。
数据结构是指面向系统软件与实际应用所需要处理的复合的数据类型,数
据结构是数据类型中复杂的、硬件表示难以或无法实现的,主要有文件、链
表、表、树和图等除了数据表示之外的所有数据类型。
3.数据表示对运算器结构的影响
早期的机器只有定点数据表示,浮点数则是用两个定点数来分别
表示其阶码和尾数。
随着数据处理的需要,增加了浮点数据表示、运算指令和相应
的运算硬件,能直接对浮点数进行运算和处理。
变址操作为向量和阵列数据类型的实现提供了直接支持。
可变长字符串数据表小的引入有力地支持了串数据类型的实现。
计算机的运算类指令和运算器结构主要是由计算机的数据表示来
确定的。
3.高级数据表示及其种类
确定哪些数据类型用数据表示实现,哪些数据类型用数据结构
实现,实质是软硬件的取舍问题。
在确定数据表示时应考虑怎样为数据类型的实现提供支持,有
时引入一些高级数据表示,比在指令系统中增设技巧性新指令的意
义要大。
高级。数据表示是指需要多个数据字或一个数据字要分为两个字段
以上才能实现的数据表不。目前,高级数据表示主要有浮点数据表
示、堆栈数据表示、向量数据表示和自定义数据表示
二、引入数据表示的基本原则
1.提高系统效率原则
能否提高系统的效率是引入高级数据表示的一个标准。效率能
否提高取决于是否减少了实现时间和存储空间。实现时间是否减少
主要取决于主存和处理机之间传送的信息量是否减少,传送的信息
量越少,实现时间就越少。存储空间的减少,则反映在编译程序的
缩短(编译工作减轻)以及目标程序指令条数的减少等方面。
2.通用性强与利用率高的原则
能否提高系统的通用性和利用率是引入高级数据表示的又一个
标准。
三、自定义数据的表示
为解决指令系统识别数据类型,简化指令系统,减轻编译的负
担,在20世纪60年代初,美国Burroughs公司在B5000大型计算机上
引入自定义数据表示。自定义(Self-defining)数据表示包括标
志符数据表示和描述符数据表示两类。
]标志符数据表示
标志若薪据表票是指将数据类型与数据本身直接联系在一起,
用标志符来表示数据类型。标志符应由编译程序建立,对高级语言
程序透明,以减轻应用程序员的负担。
标志域数城域
类型1其它数值
1
1
主要优点
①、简化了指令系统和程序设计
②减轻了编译软件的负担
③便于硬件实现数据的一致性校验和自动完成数据类型的转换
④支持数据库系统实现与数据类型无关的要求
⑤支持软件调试和应用软件开发
主要缺点
①增加了程序所占的主存空间。数据字因增设标志符而加长,
从而增加了程序所占的主存空间
②降低了指令的执行速度
③增加了硬件的复杂度
综上所述,标志符数据表示有明显的优点,加上硬件和存储器价格
持续下降,使这种能缩小高级语言和机器语言语义差距的标
志符数据表示得到广泛的使用。
2.描述符数据表示
描述符和标志符的主要差别是标志符只作用于一个数据,与数
据合存于同一存储单元,描述单个数据的类型特性;而描述符是与
数据分开存放的,独立占据一个存储单元,用于描述所要访问的一
组数据的属性(含该组数据的访问地址、长度及其特征或信息等。
描述符数据表示的优缺点与标志符数据表示基本一样,描述符
数据表示的机器比标志符数据表示可能要复杂。
101各种标志位K度地址000数据
(a)描述符(b)数据
图4.4B6700机中的描述符数据表示格式
描述符数据表示的访问方法特别地可将描述符按树形
连接起来描述多维数组
四、向量与堆栈数据表示
1.向量数组数据表示
在引入向量数组数据表示的基础上,一般会设置相应的硬件以
支持向量、数组等数据结构的快速运算,从而组成向量处理机。
在具有向量、数组数据表示的向量处理机上,硬件上设置有丰
富的的向量或阵列运算指令,配置有以流水或阵列方式处理的高速
运算器,只需用一条向量加法指令:
C(l:lOOO)=A(1:1000)+B(1:1000)
优点:
@便于实现将向量元素成块预取到中央处理器
②利用硬件判断下标是否越界,并让越界判断和元素运算并行
③可设有对阵列中的每一个元素又是一个子阵列的列的相关型交叉
阵列进行操作的处理硬件,还可设有对大量元素是零的稀疏向量
、数组进行压缩存储、还原、运算等指令和硬件,从而不但可节
省大量的存储空间,也由于不必处理零元素而节省了很多时间。
2.堆栈数据表示
具有堆栈数据表示的机器称为堆栈型机器,它在堆栈操作方面比通用
寄存器型机器有明显优势。
在硬件上,堆栈型机器对堆栈数据表示的支持体现在具有高速寄存器组
成的硬件堆栈,并附加控制电路让它与主存中的堆栈区在逻辑上组成一个整
体,使堆栈的访问速度是寄存器的速度,而堆栈的容量是主存的容量。通用
寄存型机器的堆栈置于内存中,访问速度低。
在软件上,堆栈型机器有很丰富的堆栈操作类指令且功能很强,直接可
对堆栈中的数据进行各种运算和处理。相对来说,通用寄存器型用于堆栈操
作的指令很少,且功能单一。
堆栈型机器对编译和子程序调用远优于通用寄存器型机器。
堆栈型机器是面向堆栈寻址的,采用所谓的零地址寻址。通用寄存型机
器面向寄存器寻址而不用访存,速度比面向堆栈快得多,对向量、矩阵运算
有明显优势。而堆栈型机器一般是对栈顶运算,难以直接访问到不在栈顶的
向量或矩阵的任一元素,远不如面向寄存器寻址。
五、浮点数的尾数基值
1.浮点数数据表示的格式
浮点数据表示的格式包括两个部分:阶码和尾数,其一般形式
为:
e
N=mXrm
m:尾数的数值,一般采用定点小数的原码或补码表示;
e:阶码的数值,一般采用定点整数的补码或移码表示;
rm:尾数的基值,一般为二、八、十或十六;
re:阶码的基值,一般为二进制数;
P:尾数的长度(不含符号位);
q:阶码的长度(不含符号位)。
可表示的零,
;可表示负实数,可表示正实数,
负下溢区正下溢区,
负上溢区,区中的离散值,需展牌-叶溢区.
---------------,KKX。兴•实数轴•
01?
图4.7浮点数可表示实数域中的值•
由图4.7可见,浮点数阶码的位数q主要影响两个可表示区的大
小,即可表示数的范围;而尾数的位数p主要影响在可表示区中能
表示值的精度。
当阶值位数q一定时,尾数采用什么进制也会影响浮点数的可
表示范围、精度及数在数轴上分布的离散程度。机器中阶码都采用
二进制,以避免运算中因对阶造成的精度和有效数值的过多损失。
那么,尾数应采用什么进制呢?
2.浮点数尾数基值对浮点数特性的影响
在机器中,一个%进制的数需用riog2rmJ个机器位来表示。
尾数的机器位数是p时,相当于%进制的尾数有个数位p'个数位,其
位权由小数点向右依次为%"、……、rm-P1,且其中:
p'=p/r10g2rmJ
分析尾数基数%取不同值的影响,显然应是在机器位数、阶值
位数q、尾数位数p相同的情况下,认识不同的%对数据表示的特性
参数的影响,如表4-1所示。为简化分析,一是只比较非负阶、正
尾数,且都是规格化的数,对于负阶和负尾数也是一定适用的;二
是以%是2的整数幕来讨论,对%不是2的整数幕时也是符合的。
条件:非负阶、正尾阶值:二进制q位若q=2,p=4
数、规格化尾数:。进制p'位
当r:2(即p,=4)当rj16(即p'=1)
可表示最小尾数值IXrJ(即%,)1/21/16
可表示用大尾数值1-1Xr「’(即l-r「’)15/1615/16
特例:1-2中
最大阶值2^-13:3
可表示最小值0°XrmT(即r/)1/21/16
可表示最大值7.53840
r-厂2)
特例:产”x(l—2-")
可.表示的尾数个数rj'X(7-l)/r”815
特例:2Px(yD/r.
可表示阶的个数2q44
可表示数的个数2'XrE(r“-l)/r„,3260
特例:2/2"(4-1)/%
具体分析如下:
(1)可表示数的范围。由表4-1知,随%增大,可表示的最小值小」将减
小。可表示最大值为厂厂T>x(「2-。),其中(12P)部分为常数,随%增大,因增
大而使得可表示的最大值增大。因此,随小的增大,可表示数的范围增大。
(2)可表示数的个数。由表4-1可知,可表示数的个数为2q+p(i-%」),其
中2q+p为常数,所以随小的增大,将因(1-%」)增大而使可表示数的个数增多
°(3)数在数轴上的分布。%越大,在与7=2的浮点数相重叠的范围内,
数的密度分布越稀。
(4)可表示数的精度。%越大,数在数轴上的分布变稀,数的表示精度
自然下降。
(5)运算中的精度损失。%越大,尾数右移的机会越小,精度的损失就
越小。
(6)运算速度。入大时,由于对阶或尾数溢出需右移和规格化需左移的
次数减少,运算速度可以提高。
3.浮点数格式的设计
浮点数格式的设计是要在浮点数表数范围和表数精度给定的情况下,确
定浮点数表数的位数和尾数字长p二阶码字长
根据大多数计算机的实际情况,假定浮点数的尾数用原码、小数表示,
阶码用移码、整数表示,尾数基值3=2,阶码基值又=2,BPp=p^;根据实际
应用要求给出表数范围不小于4(N为能表示的最大的正数),表数精度不
低于3,并且要求尾数和阶码都正、负对称。
由表数范围的要求,则有:
22£,-1>AA=>2">I。-z+1
log(logN/log2+1)
q(4-4)
log2
根据表数精度的要求,则有:
—X2-(77-])<3[=>2-/?<3
2
解不等式得到尾数字长:
(4-5)
由(4-4)和(4-5)两个不等式计算出浮点数的尾数字长p和阶
码字长q,再加上一个尾数符号位和一个阶码符号位就构成了一种
浮点数格式。
六、原子类型操作数的大小
原子类型操作数的大小(size)是指操作数的位数或字节数。一
般来说,原子类型操作数的大小主要有:字节(8位)、半字(16
位)、字(32位)、双字(64位)。
表4-2不同操作数大小的访问频度
操作数大小访问频度
整型平均浮点平均
字节7%()
半字19%0
单字74%31%
双字069%
例4.1IBM370系统计算机的短浮点数使用的阶码基值%=2,阶
值位数6位,尾数基值r「16,尾数位数p—6,即按照使用的二进
制位数来说,等价于p=24。计算在非负阶、正尾数、规格化情况
下的最小尾数值、最大尾数值、最大阶值、可表示的最小值和最
大值、可表示数的个数及可表示数的精度。
解:最小尾数值:%"=16/=2」
最大尾数值:=1-16-6=1-23
最大阶值:2q-1=26-1=63
114
可表示数的最小值:2°Xrm=16-=2-
z
可表示数的最大值:蜡—X(l-rm-P)=1663(1-16-24)=2252
(1-16-24)
30
可表示数的个数:2^^(rm-l)"m=26X166(16-1)/16=2
(1-2-4)
可表示数的精度:/xr-=16-(6/)/2=2-21
例4.2设计一种浮点数格式,其表数范围要求在1。37至1Q37之间,正负
数对称,表数精度不低于10",且浮点数的尾数用原码、小数表示,阶码用
移码、整数表示,尾数基值〜和阶码基值一都为2。
解依题意,取表数范围N=1037,表数精度3=10-16。
由式(4-4)得:.>1°超。=6.95,上取
整,得到阶码字长q=7。1082
由式(4-5)得:,>一:::;"=53.2,上取整,得
到尾数字长p=54。
从而加上一个尾数符号位和一个阶码符号位,浮点数的
总字长为:p+q+2=54+7+2=63。
实际浮点数总字长应为8的倍数,故取浮点数总字长为
64位。让p增加一位,即p=55。如图4-8所示是设计出来的
浮点数格式。
位序63628760
尾符S阶符F~
长度1p=551q=7
第二节寻址技术与存储保护
一、编址方式
二、寻址方式
三、程序装入与定位
一、编制方式
1.编址单位
目前常用的编址单位有字编址、字节编址和位编址等三种,其
中寄存器、堆栈和输入输出设备的编址单位对机器的影响与编址单
位对应性强,容易作出选择。主存储器对于不同的编址单位对机
器的影响则会产生极端现象,因此主要讨论主存储器编址单位。
字编址方式每个编址单位与功能部件的访问单位相一致;其主
要缺点是对非数值数据没有支持。
字节编址适合于非数值数据的处理,其编址单位也与部分功能
部件(如外部设备)的信息单位相一致。
当字节编址时,一个多字节的数据字有2种存储方式。
一是小端存储(LittleEndian)
字地址NB3BB()
字地址N+3N+2N+lN+0
二是大端存储(BigEndian)
字地址NB
B32B.Bo
字地址N+0N+lN+2N+3
2.线性编址方式
存储数据信息的功能部件有寄存器、主存储器、堆栈和输入输
出设备,其中堆栈不需要编址。线性编址方式是依据零地址空间的
个数来分,对寄存器、主存储器和输入输出设备等三种存储部件来
说,则零地址空间的个数有零个、一个、二个和三个:
(1)三个零地址空间即是对寄存器、主存储器和输入输出设备等三种存
储部件分别进行地址定位。
(2)二个零地址空间即是寄存器单独地址定位,主存储器和输入输出
设备则统一进行地址定位,一般在高端地址中给出一部分作为输入输出设备
的地址。
(3)一个零地址空间即是寄存器、主存储器和输入输出设备等三种存
储部件统一进行地址定位,一般在高端地址中给出一部分作为输入输出设备
的地址,在低端地址中给出一部分作为寄存器的地址。
(4)零个零地址空间即是隐含地址定位,它进一步把一个零地址空间的
优缺点推到极端。
3.I/O设备的非线性编址
计算机系统中的I/O设备多种多样,接口上需要编址的寄存器数
目相差很大,因此I/O设备的编址必须根据对具体设备操作的要求
来决定,一般有三种编址方法:
(1)一台设备一个地址
(2)一台设备两个地址
(3)一台设备多个I/O地址
二、寻址方式
寻址包括指令寻址和操作数寻址。操作数寻址过程复杂、形式
多样。根据操作数存放的位置可有下列几种类型。
1.立即数寻址
指直接在指令的地址码部分给出操作数。该寻址方式的优点是
不需要存储单元,指令执行速度快。但只能用于源操作数寻址,数
据长度不能太长,程序的通用性差。
2.通用寄存器寻址
通用寄存器寻址是指操作数置放在通用寄存器中。
优点:1)指令字长短;2)指令执行速度快;3)支持向量数组
运算。
缺点:1)不利于优化编译;2)现场切换困难;3)硬件复杂。
3.主存储器寻址
主存储器的寻址方式包括直接寻址、间接寻址和变址寻址等
三种类型。
1)直接寻址是指在指令中直接给出操作数在主存中的有效地
址;
2)间接寻址是指指令中给出的是操作数在主存中地址的地
址;
3)变址寻址是指用一称为变址寄存器的内容与一个地址偏
移量做算术加来得到有效地址。
4.堆栈寻址
堆栈寻址方式的地址是隐含的,在指令中不必给出操作数的地
址,所需要的操作数在堆栈栈顶弹出。
特点:1)算术表达式可很容易转化为逆波兰式,直接形成由堆
栈指令组成的程序,从而支持高级语言,简化了编译程序。2)含
有堆栈寻址的指令中地址码很短,相应的程序存储容量小。3)堆
5.I/O设备寻址
相对主存储器来说,I/O设备端口寻址种类单一,一般是直接寻
址和间接寻址,速度也较慢。在主存储器和I/O设备端口统一编址
的情况下,其寻址似乎与主存储器寻址一样,但执行过程比较复杂
,速度可能更慢。因此,在需要批量、高速传送I/O数据时,必须
采用中断、DMA或通道等方式。
三、程序装入与定位
程序员编写程序时使用的地址成为逻辑地址(LA),程序的逻
辑地址相对本程序一般从0开始。程序在主存储器中的实际地址称
为物理地址(PA),它是从0开始的一维线性空间。在计算机中的
往往要运行多道程序,如何把程序和相关数据从外存装入主存储器
,就涉及需要进行程序的逻辑地址空间到存储程序的物理地址空间
的映像和变换,这个过程称为程序的定位。程序需要定位的主要原
因有以下几个方面。
(1)程序的独立性要求;
(2)程序的模块化设计;
(3)有些程序本身很大,难以一次性加载,需要在程序运行中
分段替换装入,这同样要求动态决定程序和数据的主存储器物理地
也
程序定位的方式
根据程序中指令和数据的主存储器物理地址的确定时间,有三
种定位方式:
1)直接定位:直接定位方式是程序员编程时就已经确定好程
序的地址空间,即利用物理地址编程。一般适用于单任务方式,因
为一个程序运行时,计算机的全部资源即被它独占。
2)静态定位:目的程序装入主存储器时,通过调配运行系统
配备的装入程序,把目的程序的逻辑地址用软的方法逐一修改成物
理地址。在程序执行时,物理地址不能再改变。这种定位技术称为
静态定位方式。
优点:一是可由软件完成;二是可对多个程序段组成的程序进
行静态链接,实现起来简单。
缺点:一是在程序执行期间不能动态调整,不利于程序再装;
二是多个用户或进程不能分享主存储器中的某个公共代码,如果几
个用户要使用同一个程序,必须在各自的主存储器空间中存放一个
程序副本,这不利于多道程序的运行环境;三是若程序所需存储容
量超过了分配给它的主存储器空间,则程序员必须采用覆盖结构;
四是不利于重叠、流水线技术的应用。
(a)第一次静态定位(b)第二次静态定位
3)动态定位:动态定位方式采用基址寻址方法,即设置基址寄
存器和地址加法器,将主存储器的起始地址存入该程序的基址寄存
器中,指令的地址字段不做修改,程序在执行过程中不断将逻辑地
址加上基址寄存器中的基址来形成物理地址。
优点:一是提高了主存空间的利用利率;二是多个程序可以共
享主存中的同一个程序段;三是支持虚拟存储器。
缺点:1)需要由硬件支持;2)实现存储管理的软件算法比较
复杂。
第三节指令格式的优化设计
一、指令系统设计的基础
二、指令系统的结构分类
三、指令字的编码格式
四、指令格式中的地址码
五、指令格式中的操作码编码
六、指令系统中的控制指令
一、指令系统设计的基础
指令系统是软、硬件之间的主要界面,在很大程度上,指令系
统决定了计算机系统具有的基本功能。指令系统的设计包括指令的
功能设计和指令格式设计。为指令系统设计一套有效的指令格式,
不仅能够让机器语言程序设计者使用起来很方便,硬件实现起来比
较容易,而且能够节省大量的程序存储空间。而指令格式有很多类
型,就需要进行折中和优化组合。
1.指令系统设计的基本要求
(1)完备性。完备性指用汇编语言编写各种程序时,指令系统
直接提供的指令足够使用,而不必用软件来实现。
(2)高效性。高效性是指利用该指令系统所编写的程序能够高
效率的运行,其主要表现在程序占据存储空间小、执行速度快、指
令的使用频度高。
(3)规整性。规整性包括指令系统的对称性、匀齐性、指令格
式和数据格式的一致性。对称性是指所有与指令系统有关的存储单
元的使用、操作码的设置等都是对称的,可同等对待,所有的指令
都可使用各种寻址方式。匀齐性是指一种操作性质的指令可以支持
各种不同的数据类型、操作数大小和存储单元。指令格式和数据格
式的一致性是指指令长度和数据长度有一定的关系,以方便处理和
存取。
(4)兼容性。系列机各机种之间具有相同的基本结构和共同的
基本指令系统,因而指令系统是兼容的,即各机种上基本软件可以
通用。但由于不同机种推出的时间不同,在结构和性能上有差异,
做到所有软件都完全兼容是不可能的,只能做到“向上兼容”,即
在低档机上开发运行的软件可以在高档机上运行,也就是指令系统
的指令可以增加,但不能删除或更改指令功能和格式。
(5)正交性。正交性是指指令中各个不同含义的字段,如操作
类型、数据类型、寻址方式等,在编码时应互不相关、相互独立。
2.指令格式优化设计的目的
指令是由操作码和地址码两部分组成。操作码指示指令的功能
(即操作性质或操作类型)和所用操作数的数据类型(对于操作数
不带类型标志的操作数而言)。地址码指示操作数存放的位置,体
现操作数的来源和表示,包括操作数地址、寻址方式及地址的附加
信息,如偏移量、块长度、跳距等。
指令格式的设计就是要确定操作码字段和地址码字段(含寻址
方式)的大小、组合形式、编码方法和表示方式。而指令格式设计
的主要目的有两个,一是使指令字的平均长度短,用较少的位数来
表示指令的操作信息和地址信息,以便节省程序的存储空间,二是
使指令格式尽量规整,以减少硬件译码的复杂程度,提高指令的执
行速度。
指令格式优化设计的基本思想为:指令格式的优化设计可以从
操作码、地址码、寻址方式、地址结构等几个方面着手,尽量接近
指令格式优化设计的两个主要目标。具体说来是:
(1)采用合适的操作码编码方法;
(2)采用0、1、2、3等多种地址结构,增强单条指令的功能
,缩短整个程序的长度,并加快程序的执行速度;
(3)在同种地址结构时再采用多种地址形式;
(4)米用多种寻址方式。
二、指令系统的结构分类
I.按操作数在CPU中的存储方法分类
计算机指令系统的结构分类主要由5个因素来决定,即:
①操作数在CPU中的存储方法;
②操作数在指令中显式表示的个数;
③操作数的寻址方式;
④指令系统提供的操作类型;
⑤操作数的类型和大小。
其中操作数在CPU中的存储方法,即用来存储操作数的存储单
元的类型,是各种指令系统的结构之间最主要的区别。
在CPU中用来存储操作数的存储单元主要有堆栈、累加器和一
组寄存器等,从而也就有堆栈型、累加器型和寄存器型等三种类型
的指令。
表4-5三种类型指令对操作数的存取方式及其优缺点
运算指令显
目的存操作数的访问
类型式的操作数优点缺点
储单元方法
个数
一种表示计算的
不能随机访问堆栈,
堆栈型0堆栈PUSH/POP简单模型,指令
短小难以生成有效代码
加
累
器
LOAD/STORE累减少机器内部状累加器是惟一的,
型1累加器
加器态,指令短小通信开销大
寄存器操作数均要命名且
寄存器LOAD/STORE寄代码生成的最一
2/3或存储显式表示,指令较
型存器或存储器般模型
器长
2.通用寄存器指令系统的结构分类
通用寄存器型指令系统结构的主要优点:
1)能够使编译器有效地使用寄存器。在表达式求值方面,
寄存器型指令系统结构比堆栈型指令集结构和累加器型指令系统结
构具有更大的灵活性;
2)寄存器可以用来存放变量。
通用寄存器指令系统结构是现代指令集结构类型的主流,而且
可能延续使用相当长的时间。
CPU到底需要设置多少个寄存器呢?
通用寄存器型指令系统结构细分:
1)寄存器-寄存器型(R〜R:Register〜Register)
2)寄存器-存储器型(R〜M:Register—Memory)
3)存储器--存储器型(M~M:Memory〜Memory)。
三、指令字的编码格式
指令字的长度主要取决于操作码的长度、操作数地址的长度和
操作数地址的个数,由于不同的指令,操作码的长度、操作数地址
的长度和操作数地址的个数都有可能不一样,所以指令字的长度一
般不是固定的,通常是字节的整数倍。
舞祚海地址晒::操作根■速痂:由地址F法::地址口骅:
空白;::毓城照空白蚯址何2::地址段3;:
操作码空白;三地卅滴空白空白;区址檄:
图4-15指令字长度固定时等长地址码的编码格式图4-15指令字长度固定时等长操作码的编码格式
1.操作码长度固定的编码格式
在操作码长度固定的情况下,即使操作数地址的个数不变,通
过设置不同的地址字段,可以形成不同特点三的种指令系统的编码
格式,如图4-17所示:
变长编码格式操作地址描述符地址码字段1......地址描述符地址码字段
码1nn
操作地址码1地址码2地址码
定长编码格式码3
混合编码格式操作地址描述符地址描述符2地址码字段
码1
操作地址描述地址码字操作地址描述符地址码字段1地址码字段2
码符段码
第一种是变长编码格式
当指令系统包含多种寻址方式和操作类型时,该编码方式
可有效减少指令系统指令字的平均长度,降低目标代码的长度,但
会使各条指令字的长度和执行时间大不一样。多数CISC计算机的
指令系统采用这种编码格式。
第二种是定长编码格式
定长编码格式是将操作类型和寻址方式组合编码在操作码
中,一般可使所有指令的长度是固定统一的。当寻址方式和操作类
型非常少时,可以有效降低译码的复杂度,提高译码的性能。一般
RISC计算机的指令集结构均采用这种的编码格式。
第三种是混合编码格式
混合编码格式的目的是通过提供一定类型的指令字长,期
望能够兼顾降低目标代码长度和降低译码复杂度两个目标,也是指
令系统通常采用的一种编码格式。
2.操作码的扩展
在指令字长度固定的情况下,为缩短指令字的平均长度,操作
码和地址码长度都不固定。通常在指令中用一个固定长度的字段来
表示基本操作码,而对于一部分不需要某个地址码的指令,则把操
作码的长度扩充到该地址字段。以指令字长度为16位为例,将这16
位分成4段,1个4位的基本操作码字段和3个4位的地址字段,其一
般格式如图4-18所示。
操作码地址码A地址码B地址码C
1512118743
0
假设某机器指令系统中有15条三地址指令、15条二地址指令、
15条一地址指令和16条零地址指令,共61条。若指令字、操作码和
地址码长度固定,则操作码要6位,指令字长度为18位。若采用操
作码的扩展技术,指令字长度为16位,减少了2位。该机器指令系
统的指令可进行如下编码:
①15条三地址的操作码用4位基本操作码字段(12〜15位)编码,即
0000〜1110表示指令,剩下的一个编码“1111”用于把地址码A扩展为操作
码。
。②15条二地址的操作码用高4位的“1111”扩展编码和4位地址码A(8〜
11位)编码,即11110000〜11111110表示指令,剩下的一个编码“11111111”
用于把地址码B扩展为操作码。
③15条一地址的操作码用高8位的“11111111”歹展编码和4位地址码B
(4〜7位)编码,即11111110000〜11111111110表示指令,剩卜的一个编码
“111111111111”用于把地址码C扩展为操作码。
④16条一地址的操作码用高12位的“111111111111”扩展编码和4位地址
码C(0〜3位)编码,即1111111111110000〜1111111111111111表示指令。
四、指令格式中的地址码
1.地址码的个数
地址码在指令中所占的长度最长,而地址码编码的长度主要与
指令中地址码的个数、操作数存放的存储设备(通用寄存器、主存
储器和堆栈等)、存储设备的寻址空间大小、编址方式和寻址方式
等有关,其中地址码的个数是关键。
指令中的地址码的个数通常有3个、2个、1个和没有地址码4种,
因此按地址码的个数来分,指令格式的类型就有三地址指令、二地
址指令、一地址指令和零地址指令4种。
二地址的指令
指令中有一个源操作数地址和一个目标地址,运算所需的两个
基本操作数分别来自源地址和目标地址,运算结果覆盖目标地址指
定的源操作数。适用于通用寄存器的使用和只需一个源操作数的
指令。
一地址的指令
指令中只有一个源地址,运算所需的两个操作数,一个隐含在
累加器(通用寄存器)中,另一个由源地址指定,运算结果隐含存
入累加器。采用一地址指令的计算机系统必须有且只有一个累加器,
其硬件结构简单,特别适合连续运算,如求累加和、算术表达式计
算等。
三地址的指令
指令中有两个源操作数地址和一个目标地址,运算结果按目标
地址存入。该指令在运算后,不会破坏源操作数,其硬件结构复杂,
适合于向量和矩阵运算的指令。
零地址指令即堆栈型指令
运算所需操作数隐含从堆栈顶部弹出,运算结果隐含压入堆栈
顶部,因此不需要地址码。访问堆栈的信息量很大,从而造成程序
执行速度降低。为了克服这一缺点,可以把堆栈顶部改为一个高速
寄存器堆,以提高栈顶压入和弹出的速度。
地址个数操作码长度程序存储量程序执行速度适用场合
三地址短很大一般向量和矩阵运算
二地址一般较大较慢一般不用
二地址R型一般很小很快多累加器、数据传输多
-地址较长较小较快连续运算、硬件结构简单
零地址很长很小很慢嵌套、递归、变量多
2.寻址方式表示的编码方法
CPU在执行指令的时候,首先对指令进行译码,然后根据译码
结果确定指令所表示的操作和指令所指定的寻址方式,定位指令执
行所需要的操作数。
而寻址方式的表示通常两种编码方法。一种是将寻址方式编码
于操作码中,由操作码在描述指令操作的同时,也描述了相应操作
数的寻址方式,如图4-19(b)所示;另一种是为每个操作数设置
•个地址描述符,由该地址描述符表示相应操作数的寻址方式,如
图4-19(a)所示。
操作码地址描述符地址码字段......操作码地址码字段.....
(a)(b)
3.地址码长度的缩短
在一般计算机系统中,逻辑地址空间的大小是确定的。缩短地
址码长度就是要用一个比较短的地址码表示一个比较大的逻辑地
址空间,同时要求有比较灵活有效的寻址方式。而缩短地址长度
的方法很多,现仅就通过寻址方式来缩短地址码长度的方法进行
分析。
1)间址寻址方式在主存的低地址端专门安排一个区域用于间址寻址。
由于表示主存低地址端存储单元的地址码长度可以很短,使得采用间址寻
址方式的指令地址码很短。
2)变址寻址方式:由于程序的局部性,在变址寻址方式中使用的地址
偏移量可以比较短,通常可以把比较长的基地址(如32位)放在变址寄存
器中,在指令的地址码中只需给出比较短的地址偏移量。因此,采用变址
寻址方式的地址码长度通常有10多位或20位左右就可以。
3)寄存器间接寻址方式:用寄存器间接寻址比用主存单元间址寻址不
仅因减少访存次数而节省寻址空间,而且指令中地址码长度还可以更短。
因为寄存器的数量比较少,表示一个寄存器的地址只需要很少几位。
五、指令格式中的操作码编码
1.操作码编码的基本思想
操作码编码的主要目标是:采用优化的编码方法缩短指令式中
操作码的长度以减少程序总位数,并能增加指令字所能表示的操作
信息和地址信息。
Huffman编码压缩方法
基本思想是:对使用频度最高的对象,用最短位数的编码表示;对使用
频度较低的对象,允许用较长位的编码表示。操作码编码的优化程度可用信
息源尴和信息冗余量来衡量。根据Huffman编码压缩的方法原理,所有操作
码的平均长度最短(即信息源嫡)为:
n
〃=,P,xlog22
Z=1
其中:Pi为操作码i在程序中出现的概率,n为操作码的个数。
信息冗余量为:
n
7?=(L-/7)/Z=l-(^p,.xlog2p,.)/Z
/=1
其中:L为操作码编码的平均长度。
例如,假设一台模型计算机有II〜17共7条指令,它们在程序中使
用的概率如表4-8所示。该模型计算机指令的信息源燧为:
指令使用概率指令使用概率
T10.45150.03
120.30160.01
130.15170.01
140.05
n
xl
H二一2A°g2A=1959
Z=1
实际上,操作码的平均长度不可能达到最短的平均长度(信息源病),因为
每个操作码的位数必须是正整数。因此,操作码编码的方法通常有三种,即
固定长度编码法、Huffman编码法和扩展编码法。
2.固定长度编码法
固定长度编码法是指令操作码长度采用固定长度的编码方式,
如果需要编码的操作码有n个,那么定长操作码的位数至少需要
riog2nj位。该编码方式非常规整,使硬件译码很简单,但信息
冗余量比较大。
例如,用一个字节表示定长操作码,可表示28=256个操作码,
如果指令系统只设计了150条指令,那么8位定长操作码表示的冗余
编码为106个。
3.Huffman编码法
Huffman编码法(又称为最小概率合并法)是利用Huffinan算法,
通过构造Huffman树对操作码进行编码,该编码称为Huffinan编码。
Huffinan编码法的具体步骤为:
(1)将要编码的指令按概率值大小从左向右排列(概率相等的指令可任
意排列),每条指令的操作码是一个结点。
(2)选取两个概率最小的结点合并成一个概率值是两者概率之和的
新结点,并把这个新结点插入到其他尚未合并的结点中重新排列。
(3)继续过程2,直到全部结点合并完毕得到一个根结点(根结点的
概率值为1),构成了一棵Huffman树。
(4)若某个概率值结点是由两个概率值结点相加而成,则在三个结
点连接的路径上给定代码0和1。
(5)继续过程4,直到全部结点连接的路径上均给定代码0和1。
(6)从根结点开始,沿箭头所指方向到指令结点所经过的路径代码
序列,则是该指令的Huffinan编码。
4.扩展编码法
采用Huffinan编码方法能够使操作码的平均长度短、信息冗余量
小,但形成的编码很不规整。例如表4-10中7条指令就形成6种不同
长度的操作码,既不利于硬件的译码,也不利于软件的编译。另外,
长度各异的操作码也很难与地址码配合以形成有规则长度的指令编
码。
。在许多处理机中,操作码编码采用固定长度编码法与Huffman
编码法相结合的一种折中的编码方法,称为扩展编码法。
扩展编码法包含有等长扩展编码法和不等及扩展编码法两种。
等长扩展编码法是指出现概率较低的操作码用较长的编码表示
时,每次扩展的编码位数相等。
不等长扩展编码法是指每次扩展的编码位数不相等,例如1-2-3-
5扩展法的前2次扩展都加长1位,第3次扩展加长2位。
对表4-8模型计算机指令的操作码采用1-2-3-5扩展编码法和2-4扩展编码
法,可得出如表4-11所示的两种编码结果。
一
指
指令出现概率Huffman编操作码现1-2-3-5扩操作码扩展操作
令2-4
率
码长度黑展编码长度编码码长
度
110.4501位一
110.401位002位
位
120.301025
位
130.151103120.3102位012位
140.0511104位0
150.03111105位130.11103位102位
5
160.011111106位
140.0111005位11004位
170.011111116位5
150.0111015位11014位
3
160.0111105位11104位
1
170.0111115位11114位
1
无论采用哪一种扩展编码方法,衡量的标准是操作码平均长度
是否最短,或信息冗余量是否最小。由于操作码平均长度取决于各
指令的出现概率,因此可根据指令出现的概率分布来选择采用何种
扩展编码法。
另外,需要考虑操作码编码的最长位数和需要编码的操作码
个数。
从信息冗余量最小来看,Huffinan编码方法是最好的;从编
码规整性来看,固定长度编码方法是最好的。等长扩展编码的信息
冗余量较小,规整性也较好,便于实现硬件译码,便于与地址码配
合形成规则的指令格式。
六、指令系统中的控制指令
1.条件分支指令中条件表示的方法
指令系统中能够改变控制流的控制指令有3种:条件分支、无条
件跳转和过程调用/返回,它们的使用频度如表4-12所示,其中百
分比是指它们占控制指令总数的比例。
指令类型使用频度
整型平均浮点平均
调用/返回19%8%
无条件跳转6%10%
条件分支75%82%
1.条件分支指令中条件表示的方法
分支条件的表示是影响该指令执行速度的主要因素。目前分支
条件的表示方法有3种,各种表示方法的优缺点如表4-13所示。
名称条件表示的方法优点缺点
条件码(CC)检测由ALU操作设置•些可自由设置分条件码是增设的状态,会限制指
特殊的位(CC)支条件令执行顺序。
条件寄存器比较结果放入任何一个寄简单占用一个寄存器
存器,检测该寄存器
比较与分支比较操作是分支指令的一用一条指令实比较受到一定限制,流水方式时
部分现因操作多而无法在一拍内完成
2.控制指令中目标地址的表示方法
在控制指令中,需要给出转移目标地址,且一般情况下,除过
程返回指令外,转移目标地址都会显式给出的(在编译时;过程返
回指令的转移目标地址还不知道)。指定转移目标地址最常用的方
法是PC相对寻址,即在指令中提供一个偏移量,该偏移量与程序
计数器(PC)值相加而得出转移目标地址。PC相对寻址有许多优
点,一是转移目标地址通常是离当前很近,用相对于当前PC值的
偏移量来确定目标地址,可以减少表示该目标地址所需要的位数;
二是使代码被装入到主存储器任意位置执行,即“位置无关”,可
减少程序链接的工作量,即使是动态链接的程序也是有效的。
采用PC相对寻址方式来确定转移目标地址时,需要知道偏移量
大小的分布情况,以便确定偏移量字段的长度。有模拟结果表明,
采用4〜8位偏移量字段就能表示大多数控制指令的转移目标地址。
例4.3设某计算机为定长指令字结构,指令字长为12位,每个
地址码占3位,提出一种该计算机指令系统的设计方案,使其包含:
4条三地址指令、8条二地址指令和180条一地址指令。
解由题意可知,当指令系统的基本操作码的位数为:12-3X3
=3位,即三地址指令的操作码位数为3位。3位操作码共有23=8种
编码。现使“000〜011”为四条三地址数指令的编码,“100〜111”
四个编码把一个地址码(三位)扩展为操作码。
用4个扩展编码中的“100”把一个地址码(三位)扩展为
操作码,共有23=8种编码“100000〜100111”为八条二地址数指
令的编码,其余3个扩展编码把一个地址码(三位)扩展为操作码,
共有3X23=24种编码。
用24种编码把一个地址码(三位)扩展为操作码,共有
24X23=182种编码,用其中的180个编码为180条一地址数指令的
编码。
例4.4对表4-8给出的模型机的指令操作码分别进行等长扩展编
码和不等长扩展编码,并分别计算编码的信息冗余量。
解模型机有7个操作码需要编码。
(1)采用2-4等长扩展编码
对出现概率较高的II〜13分别用00、01和10表示,保留一个码点标
志11用于扩展编码,扩展2位得至!J4位长的4个编码1100、1101、1110和1111,
正好表示14〜17的4个操作码。这和设-4等长扩展编码如表4-14第4列所示。采
用2-4等长扩展编码可以保留用于扩展编码的不同的码点标志和不同的码点
标志个数而形成不相同的2-4等长扩展编码。例如,可以用00和01表示II和12
的操作码,保留两个码点标志10和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《合作方案推介》课件
- 口腔科正畸护理
- 2024年山东省第三届中小学生海洋知识竞赛题库及答案(初中组第201-300题)
- 安全小活动总结报告
- 大学生IT专业职业规划
- 2型糖尿病胰岛素治疗
- 苏教版语文六下教学课件教学
- 《公司创业》课件
- 第三单元双基能力提升训练-六年级下册语文练测乐园(含答案)
- 《江东区国家税务局》课件
- 水电站设备检修管理导则
- 无人机导航与通信技术PPT完整全套教学课件
- 公共行政学网上学习行为300字
- 第四代篦冷机液压系统的故障与维护获奖科研报告
- 二次函数线段的最值课件
- 呼吸消化科科室现状调研总结与三年发展规划汇报
- 与复旦大学合作协议书
- 第五单元(知识清单)【 新教材精讲精研精思 】 七年级语文上册 (部编版)
- 缓冲托辊说明书
- 煤矿机电运输安全培训课件
- 2023年人教版新目标八年级英语下册全册教案
评论
0/150
提交评论