《计算机系统结构》_第1页
《计算机系统结构》_第2页
《计算机系统结构》_第3页
《计算机系统结构》_第4页
《计算机系统结构》_第5页
已阅读5页,还剩127页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机系统结构

■第一章基本概念

■第二章指令系统

■第三章存储系统

■第四章输入输出系统

■第五章标量处理机

■第六章向量处理机

■第七章互连网络

■第八章并行处理机

■第九章多处理机

1

第二章指令系统

2」数据表示*本章主要内容:

2.2寻址技术*数据表示*、寻址技术*、

2.3指令格式的优化设计指令系统设计与优化

2.4指令系统的功能设计有三种类型的指令系统:

2.aVLIW指令系统CISC:复杂指令系统

RISC:精简指令系统

VLIW:超长指令字

指令系统设计:

指令的格式设计

本章介绍指令系统设计中2个最基本

的内容:数据表示,操作码优化。指令系统的功能设计

指令系统的性能评价

2

第二章指令系统

■指令系统是计算机系统结构的主要组成部分

■指令系统是软件与硬件分界面的一个主要标志

■指令系统是软件与硬件之间互相沟通的桥梁

■指令系统与软件之间的语义差距越来越大

3

第二章指令系统

-2.1数据表示

4

2.1.1数据表示与数据类型

■数据表示的定义:

■指计算机硬件能够直接识别,可以被指令系统直接调用的

那些数据类型。(由硬件实现的数据类型)

■数据结构:

■面向计算机系统软件、面向应用领域所需处理的数据类型。

■由软件实现的数据类型

■确定哪些数据类型用数据表示实现,是软件与硬件的取舍问

题。

■确定数据表示的原则:

■L缩短程序的运行时间

■2.减少CPU与主存储器之间的通信量

■3,这种数据表示的通用性和利用率

■数据表示在不断发展、扩大

■用软件和硬件相结合的方法实现新的数据表示

5

例2.2

■实现A二A+B,A和B均为200X200的矩阵,分析向量数据表示

的作用

■解:

■如果在没有向量数据表示的计算机系统上实现,一般需要6

条指令,其中有4条指令要循环4万次。

■因此,CPU与主存储器之间的通信量:

取指令2+4X40,000条,

读或写数据3X40,000个,

共要访问主存储器7X40,000次以上。

■如果有向量数据表示,只需要一条指令。

■减少访问主存(取指令)次数:4X40,000次

■缩短程序执行时间一倍以上。

6

2.1.2浮点数据表示

■浮点数的表示方式

■一个浮点数N可以用如下方式表示:

N=m♦月其中e=d

-m:尾数的值,包括尾数的码制(原码或补码)和数制(小数

或整数)

-e:阶码的值,移码(偏码、增码、译码、余码等)或补码,

整数

■rm:尾数的基值,2进制、4进制、8进制、16进制和10进制

阶码的基值,通常为2

-P:尾数长度,当1二16时,每4个二进制位表示一位尾数

-q:阶码长度,阶码部分的二进制位数,p和q均不包括符号

7

浮点数的存储方式

1位1位q位p位

em

mfef

■注:

■mf为尾数的符号位

■ef为阶码的符号位,

■e为阶码的值,

■m为尾数的值。

8

2.L2.5浮点数格式的设计

■定义浮点数表示方式的6个参数的确定原则:

■尾数:

■多数机器采用原码、小数表示。

■米用原码制表小:

■加减法比补码表示复杂,乘除法比补码简单,表示非常直

观。

■采用小数表示能简化运算,特别是乘除法运算。

■尾数的基值1选择2

■阶码:

■一般机器都采用整数、移码表示。

■采用移码表示的主要原因是:

■浮点0与机器0一致。阶码进行加减运算时,移码的加减法

运算要比补码复杂

■阶码的基值%取2

■浮点数格式设计的关键问题是:

■在表数范围和表数精度给定的情况下,如何确定最短的尾数

字长p和阶码字长q9

例2.5

■要求设计一种浮点数格式,其表数范围不小于1037,正、负数

对称,表数精度不低于10-16。

■解:。2"-1、1八37

■根据表数范围的要求:2>W

・解这个不等式:q>log(logl°37/bg2+l)=695

log2

■取阶码字长q=7,据表数精度的要求,得到:

16

1.2-(P-D<10-16-loglO-=532

2log2

■由于浮点数的字长通常为8的倍数,因此,取尾数字长p=55,

总的字长为1+1+7+55=64,浮点数格式如下:

1位1位7位55位

|rrif|ef|e|m-

10

■所设计浮点数格式的主要性能如下:

■最大尾数值:Q_)-Q-2-55)

・绝对值最小的尾数值:

m9

r/

・最大阶码:以-1=27-1=127

・最小阶码:—以二—2'=—128

・最大正数:

(jDU'="2-)/—-"?->?.=1.70x1()38

■最小正数:1—建1-27

----re——.z9=2-129=1.47x10-39

'mc

r'm2

11

■最大负数:

——=---2-27=-2-129=-1.47X10-39

r2

・最小负数:m

-(1-^).q,T_(1_2一55).227T=-(1-*)・2⑵=—1.70X1038

■表数4度:”

-17

5=工•广(P—D=工.2一(55T)=2-55=2.78X10

m

r7

'm乙

■浮点零:浮点零与机器零相同,64位全为0

■表数效率:采用隐藏位,表数效率h=100%

12

■研究浮点数表示方式的主要目的是用尽可能短的字长实现尽

可能大的表数范围和尽可能高的表数精度。

■理常尾数采用原码或补码纯小数表示,阶码采用移码整数表

■工.点数的尾数长度相等时,尾数的基为2具有最高表数精度。

■当浮点数的字长确定后,尾数基取2或4具有最大的表数范围

和最高的表数精度。

■规格化浮点数的表数精度最高。

13

2.1.3自定义数据表示

-一般处理机中的数据表示方法

■数据存储单元(寄存器、主存储器、外存储器等)只存放纯数

■通过指令中的操作码来解释:

■数据的类型(定点、浮点、字符、字符串、逻辑数、向量等)

■进位制(2进制、10进制、16进制等)

■数据字长(字、半字、双字、字节等)

■寻址方式(直接寻址、间接寻址、相对寻址、寄存器寻址

■数据的功能(地址、数值、控制字、标志等)等

-同一种操作(如加法)有很多条指令

■在高级语言和应用软件中,数据的属性由数据自己定义。

■在高级语言与机器语言之间的语义差距,要靠编译器等填补

■60年代开始,Burroughs公司在大型计算机中引入自定义数

据表示方式和带标志符的数据表示方式

14

2,L3.1采用标志符数据表示方法的主要优缺点

■采用标志符数据表示方法的主要优点

■(1)简化了指令系统。

■(2)由硬件自动实现一致性检查和数据类型的转换。

■(3)简化程序设计,缩小了人与机器之间的语义差距。

■(4)简化编译器,使高级语言与机器语言之间的语义差距大

大缩短。

■(5)支持数据库系统,一个软件不加修改就可适用于多种数

据类型。

■(6)方便软件调试,在每个数据中都有陷井位。

■采用标志符数据表示方法的主要缺点:

■(1)数据和指令的长度可能不一致。

■(2)指令的执行速度降低。程序的设计时间、编译时间和调

试时间缩短。

■(3)硬件复杂度增加。

15

2.L32数据描述符表示法

■数据描述符与标志符的区别:

标志符只作用于一个数据,而数据描述符要作用于一组数据。

■Burroughs公司生产的B-6700机中采用的数据描述符表示方法:

16

2.2寻址技术

■寻找操作数及其他信息的地址的技术称为寻址技术

■内容:编址方式、寻址方式和定位方式

■对象:寄存器、主存储器、堆栈和输入输出设备

■方法:分析各种寻址技术的优缺点,如何选择和确定寻址技

-2.2.1编址方式

-2.2.2寻址方式

■223定位方式

-重点是寻址方式的选择方法

17

2.2.1编址方式

■编址方式是指对各种存储设备进行编码的方法。

■221.1编址单位

■常用的编址单位:字编址、字节编址、位编址、块编址

■篇址单位与访问字长

一般:字节编址,字访问

部分机器:位编址,字访问

辅助存储器:块编址

■2.2.1.2零地址空间个数

■三个零地址空间:通用寄存器、主存储器和输入输出设

备均独立编址

■两个零地址空间:主存储器与输入输出设备统一编址

■一个零地址空间:所有存储设备统一编址,最低端是通

用寄存器,最高端是输入输出设备,中间为主存储器

■隐含编址方式,实际上没有零地址空间:堆栈、Cache等

18

■2.2.1.3输入输出设备的编址

■一台设备一个地址:必须通过指令中的操作码来识别该输

入输出设备上的有关寄存器;

■一台设备两个地址:一个地址是数据寄存器,一个地址是

状态/控制寄存器;

■一台设备多个地址。对编程增加困难,常用于主存和输入

输出设备统一编址的计算机系统;

■2.2.L4并行存储器的编址技术

■高位交叉编址主要目的是用来扩大存储器容量。

■低位交叉编址主要目的是提高存储器速度。

19

2.2.2寻址方式

■寻址方式:寻找操作数及数据存放单元的方法。

■22.2.1寻址方式的设计思想

■立即数寻址方式用于数据比较短、源操作数

■面向寄存器的寻址方式

■OPCR

OPCR,R

OPCR,R,R

■OPCR,M

■面向主存储器的寻址方式:

■OPCM

.OPCM,M

■OPCM,M,M

■面向堆栈的寻址方式:

■OPC

.OPCM

20

2.2,22间接寻址方式与变址寻址方式的比较

■目的相同:都是为了解决操作数地址的修改问题,都能做到不

改变程序而修改操作数地址。

■原则上,一种处理机中只需设置间址寻址方式与变址寻址方

式中的任何一种即可,有些处理机两种寻址方式都设置

■如何选取间址寻址方式与变址寻址方式?优缺点怎样?

■例2.7:一个由N个元素组成的数组,已经存放在起始地址为

AS的主存连续单元中,现要把它搬到起始地址为AD的主存连

续单元中。不必考虑可能出现的存储单元的重叠问题。为了

编程简单,采用一般的两地址指令编写程序。

21

解:用间接寻址方式编写程序如下:

start:moveasr,asi;保存源数组的起始地址

moveadr,adi;保存目标数组起始地址

movenum,ent;保存数据的个数

loop:move@asi,@adi;用间址寻址方式传送数据

incasi;源数组的地址增量

incadi;目标数组的地址增量

decent;个数减1

bgtloop;测试n个数据是否传送完

halt;停机

asr:as;源数组的起始地址

adr:ad;目标数组的起始地址

num:n;需要传送的数据个数

asi:0;当前正在传送的源数组地址

adi:0;当前正在传送的源数组地址

ent:0;剩余数据的个数

22

■用变址寻址方式编写程序如下:

start:moveas,x;源数组起址送变址寄存器

movenum,ent;保存数据个数,保证再入性

loop:move(x),ad-as(x);ad-as位地址偏移量,

;在汇编时计算

incx;增量变址寄存器

decent;个数减1

bgtloop;测试n个数据是否传送完成

halt;停机

num:;需要传送的数据个数

ent:;剩余数据的个数

23

■主要优缺点比较:

采用变址寻址方式编写的程序简单、易读。

对于程序员,两种寻址方式的主要差别是:

间址寻址方式:间接地址在主存储器中,没有偏移量

变址寻址方式:基地址在变址寄存器中,有偏移量

实现的难易程度:间址寻址方式容易

指令的执行速度:间址寻址方式慢

对数组运算的支持:变址寻址方式比较好

■自动变址:

在访问间接地址过程中,地址自动增减

■变址与间址混合时,两种方式:

前变址寻址方式:EA=((X)+A)

后变址寻址方式:EA=(X)+(A)

24

■2.2.2.3寄存器寻址

■主要优点:

■指令字长短、指令执行速度快、支持向量和矩阵运算

■主要缺点:

・不利于优化编译、现场切换困难、硬件复杂

■2224堆栈寻址方式

■王要优点:

■支持高级语言,有利于编译程序;节省存储空间

■支持程序的嵌套和递归调用,支持中断处理

■主要缺点:

■运算薪度比较低,栈顶部分设计成一个高速的寄存器堆

25

2.2.3定位方式

■程序的主存物理地址在什么时间确定?

■采用什么方式来实现?

■2.2.3.1程序需要定位的主要原因:

■程序的独立性;程序的模块化设计;数据结构在程序运行

过程中,其大小往往是变化的;有些程序本身很大,大于

分配给它的主存物理空间

■223.2直接定位方式:

■在程序装入主存储器之前,程序中的指令和数据的主存物

理就已经确定了的称为直接定位方式。

■2.2.3.3静态定位:

■在程序装入主存储器的过程中随即进行地址变换,确定指

令和数据的主存物理地址的称为静态定位方式。

■2・2.3.4动态定位:

■在程序执行过程中,当访问到相应的指令或数据时才进行

地址变换,确定指令和数据的主存物理地址的称为动态定

位方式。

26

2.3指令格式的优化设计

■指令系统的作用:

-在机器上直接运行的程序是由指令组成的。

■指令系统是计算机所有命令的集合,是软件、硬件的之间的

一个主要分界面,也是他们之间互相沟通的一座桥梁。主要

研究指令格式、数据表示和寻址方式

■硬件设计人员采用各种手段实现指令系统,而软件设计人员

则使用这些指令系统编制系统软件和应用软件,用这些软件

来填补指令系统与人们习惯的使用方式之间的语义差距。指

令系统发展越缓慢,需要用软件来填补的东西就越多。

■指令系统设计必须由软件设计人员和硬件设计人员共同来完

成。

27

2.3指令格式的优化设计

・主要目标:

■节省程序的存储空间

■指令格式尽量规整,便于译码

■研究内容:

■操作码的优化表示;地址码的优化表示

■2.3.1指令的组成

・2.3.2操作码的优化设计

-2.3.3地址码的优化设计

-2.3.4指令格式设计举例

28

2.3.1指令的组成

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

■操作码和地址码

操作码(0PC)地址码(A)

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

■地址:地址码、立即数、寄存器、变址寄存器

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

■寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、

相对寻址、寄存器寻址

■操作码主要包括两部分内容

■操作种类:力口、减、乘、除、数据传送、移位、转移、输

入输出、程序控制、处理机控制等

■操作数描述:

■数据的类型:定点数、浮点数、复数、字符、字符串、

逻辑数、向量

■进位制:2进制、10进制、16进制

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

2.3.2操作码的优化表示

■操作码的三种编码方法:

固定长度,Huffman编码、扩展编码

■改进操作码编码方式能够节省程序存储空间

■例如:Burroughs公司的B-1700机

操作码整个操作系统所用改进的

编码方式指令的操作码总位数百分比

8位定长编码301,2480

4-6-10扩展编码184,96639%

Huffman编码172,34643%

30

2.3.2.1固定长操作码

■就是所有指令使用相同的代码位数,其最小码长等于:

Z=4=「log2"]

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

■优占.频整译码简单”

■缺出;浪费i言息量(操作码的总长位数增加)

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

■解:_

2=52〃]=「喧15]=4

■如:

■IBM公司的大中型机:最左边8位为操作码

■Intel公司的Intanium处理机:14位定长操作码

■许多RISC处理机采用定长操作码

31

2.3.2.2Huffman编码法

.(1)Huffman压缩概念(最佳编码定理)

■1952年由Huffman首先提出

■最早用于电报报文编码,如e,t等使用频度高,用短编码;

q,x使用频度低,用长编码;

■基本原理---当用n个长度不等的代码分别代表n种发生概率

不等的事件时,按照短代码给高概率事件、把长代码给低

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

■使用频度高的指令,短编码

■使用频度低的指令,长编码

32

2.3.2.2Huffman编码法

■1992年由Huffman首先提出

■操作码的最短平均长度可通过下式计算:

i=l

■其中:Pi表示第i种操作码在程序中出现的概率

■固定长操作码相对于Huffman操作码的信息冗余量为:

n

_

EAelog2A

R=l-i=l

log2〃

33

Huffman编码法

■把所有指令按照操作码在程序中出现的概率,自左向右从排

列好。

・选取两个概率最小的结点合并成一个概率值是二者之和的新

结点,并把这个新结点与其它还没有合并的结点一起形成新

结点集合。

■考薪结Q纂合中选取两个概率最小的结点进行合并,如此继

续进行下去,直至全部结点合并完毕。

■最后得到的根结点的概率值为1。

■每个结点都有两个分支,分别用一位代码“0”和“1”表示。

■从根结点开始,沿尖头所指方向,到达属于该指令的概率结

点,把沿线所经过的代码组合起来得到这条指令的操作码编

码。

34

例p92

■假设一台模型计算机共有7种不同的操作码,如果采用固定长

操作码需要3位。已知各种操作码在程序中出现的概率如下表,

计算采用Huffman编码法的操作码平均长度,并计算固定长操

作码和Huffman操作码的信息冗余量。

利用Huffman树进行操作码编码的方法,又称为最小概率合并

法。

指令11131617

1415

概率0.450.300.150.050.030.010.01

35

0.450.300.150.050.030.010.01

36

.采用Huffman编码法所得到的操作码的平均长度

=0.45X1+0.30X2+0.15X3+0.05X4

+0.03X5+0,01X6+0.01X6=197(位)

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

=0.45X1.152+0.30X1.737+0.15X2.737

+0.05X4.322+0.03X5.059+0.01X6.644

+0.01X6.644=1.95®

37

指令序号概率Huffman编码法操作码长度

110.4501位

120.30102位

130.151103位

140.0511104位

150.03111105位

160.011111106位

170.0111111116位

采用3位固定长操作

码的信息冗余量为:

“】H11.97

7?=I—f=------=i=I--------x35%

「1叫7]3

38

■Huffman编码法的信息几余重仅为:

195

R=1--—^1.0%

1.97

-与3位定长操作码的冗余量35%相比要小得多

■Huffman操作码的优点:平均长度最短,信息的冗余量最小;

39

2.323扩展编码法

■Huffman操作码的主要缺点:

■操作码长度很不规整,硬件译码困难

■与地址码共同组成固定长的指令比较困难

■(1)扩展编码法:

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

■如例p92改为1-2-3-5扩展编码法,操作码最短平均长度为:

■H=0.45X1+0.30X2+0.15X3

+(0.05+0.03+0.01+0.01)X5

=2.00

1.95

■信息冗余量为:R=l-=2.5%

166

■又如例p92改为2-4等长扩展编码法,操作码最短平均长度

■H=(0.45X0.30+0.15)X2+

(0.05+0.03+0.01+0.01)X4

220195

■信息冗余量为:R=1--—=11.4%

2.2040

7条指令的操作码扩展编码法

序号概率1-2-3-5扩展编码2-4等长扩展编码

110.45000

0.301001

12

130.1511010

0.05111001100

14

0.03111011101

15

160.01111101110

170.01111111111

平均长度2.02.2

信息冗余量2.5%11.4%

41

(2)等长扩展法

■为了便于实现分级译码,一般采用等长扩展法;

■根据不同的扩展标志,对于等长扩展法还可以有多种不同

的扩展方法,衡量的标准主要看这种编码方法的操作码的

平均长度是否最短,或信息量的冗余量是否最小;

■}注码长表不:例如4-8T2法。

■这并不能说明具体编码方法,

■如下面两种编码方法都是4-8T2法。

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

42

15/15/15法

①每一种码长都有4位可编码位(前

「0000

面可以有相同的扩展标识前缀),

0001

可产生16个码点(即编码组合);15,:

②使用其中15个来表示事件,留

下1个或多个码点组合作为更长〔1110

代码的扩展标识前缀;

r11110000

③表事件的码点必须符合“非前

11110001

缀原则”。即:已经用来表示15<::

事件的码点组合不能再作为其■■

它更长代码的前导部分,否则〔11111110

接收者会混淆;

④在4位的16个码点中,用15个表「111111110000

111111110001

示最常用的15中命令,“XXXX”■■■

用1个表示扩展到下一个4位,15<■■1■,

“1111XXXX",而第二个4位的

16个码点也是如此做法,〔111111111110

“11111111XXXX”。

15/15/15编码法

8/64/512法

①每一种码长按4位分段

②每一段中至少要留下1位或多位r0000

0001

作为扩展标识,各段剩余的码

位一起编码,所产生的码点用

来对应被编码事件I0111

③每一段中的标识位指出后面还r10000000

有没有后续段。10000001

」:

④如,用头4位的“0XXX”表示最64■

常用的8中命令,接着操作码扩

展成2个4位,用“1XXX0XXX”、11110in

的64个码点表示64种指令,而

r100010000000

后面扩展成3个4位,用

100010000001

的个码点■

“1XXX1XXX0XXX”512:■

512<■■:■

表示512种命令。

<111111110111

8/64/512编码法

(3)不等长编码法

不等长操作码扩展编码法(4-6-10扩展编码)

各种不同长度操作码的指令

编码方法指令种类

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

15/3/161531634

8/31/168311655

8/30/328303270

8/16/256816256280

4/32/256432256292

45

小结

■操作码优化的主要目的:尽可能地减少各种信息冗余,即:

-空间、时间少、短,尽可能不要跨断;

-要想程序占地空间小,则应使操作码尽可能短。

46

2.3.3地址码的优化表示

■2.3.3.I,地址码个数的选择

■地址码个数通常有3个、2个、1个及。个等4种情况

■评价指令中地址码个数应该取多少的标准主要有两个:

■程序存储容量,包括操作码和地址码

■程序执行速度,以程序执行过程中访问主存的信息量代表

■通过一个典型例子来分析:

47

■例如:计算一个典型的算术表达式:

axb+c—d

JC—

e+/

■用三地址指令编写的程序如下:

MULX,A,B;X-(A)X(B)

ADDX,X,C;X-(X)+(C)

SUBX,X,D;分子的计算结果在中

ADDY,E,F;计算分母,存入Y

DIVX,X,Y;最后结果在X单元中

48

■用普通二地址指令编写的程序:

■MOVEX,A;复制临时变量到X中

■MULX,B

■ADDX,C

■SUBX,D;x中存放分子运算结果

■MOVEY,E;复制临时变量到Y中

■ADDY,F;丫中存放分母运算结果

.DIVX,Y;最后结果在X单元中

49

■用多寄存器结构的二地址指令编写程序:

■MOVERI,A;操作数a取至I」寄存器R1中

■MULRI,B

■ADDRI,C

■SUBRI,D;R1中存放分子运算结果

■MOVER2,E

■ADDR2,F;R2中存放分母运算结果

■DIVRI,R2;最后结果在RI中

■MOVEX,RI;最后结果存入X中

50

■用一地址指令编写的程序:

LOADE,先计算分母,

;取一个操作前到累加器中

ADDF;分母运算结果在累加器中

STOREX;保存分母运算结果到X中

LOADA;开始计算分子

MULB

ADDC

SUBD;累加器中是分子运算结果

DIVX;最后运算结果在累加器中

STOREX;保存最后运算结果到X中

51

■用0地址指令编写程序:ab*c+d-ef+/

■PUSHA;操作数a压入堆栈

■PUSHB;操作数b压入堆栈

■MUL;栈顶两数相乘,结果压回堆顶

■PUSHC

■ADD

■PUSHD

■SUB;栈顶是分子运算的结果

■PUSHE

■PUSHF

■ADD

■DIV;栈顶是最后运算的结果

■POPX;保存最后运算结果

52

用不同地址个数指令编写的程序

的存储容量和执行速度

地址数目指令条数访存次数程序存储量执行速度(访存信息量)

三地址5205P+15A=65B5P+15A+15D=185B

二地址7267P+14A=63B7P+14A+19D=215B

一地址9189P+9A=45B9P+9A+9D=117B

零地址124112P+7A=40B12P+7A+29D=272B

二地址8158P+7A+9R=8P+7A+9R+7D=96B

寄存器型40B

P表示操作码长度,A表示地址码长度,D表示数据长度,R表示通

用寄存器的地址码长度,B表示字节数。并取:D=2A=8P=16R=

8B

53

不同地址个数指令的特点及适用场合

程序程序程序执

地址数目适用场合

的长度存储量行速度

三地址最短最大一般向量,矩阵运算为主

二地址较短很大很低一般不宜采用

一地址较长较大较快连续运算,硬件结构简单

零地址取lx最小最低嵌套,递归,变量较多

二地址一般最小最快多累加器,数据传送较多

寄存器型

54

■关于地址码个数结论:

■对于一般商用处理机,采用多寄存器结构的二地址指令是

最理想的。

■如果氤调硬件结构简单,并且以连续运算(如求累加和等)为

主,宜采用一地址结构。

■对于以向量、矩阵运算为主的处理机,最好采用三地址结

构。部分RISC处理机也采用三地址指令。

■对于解决递归问题为主的处理机,宜采用零地址结构。编

程容易、节省程序存储量。

55

2.3.3.2.缩短地址码长度的方法

■用一个短地址码表示一个大地址空间

■用间址寻址方式缩短地址码长度

■方法:在主存储器的低端开辟一个专门存放间接地址的区

■用艮址寻址方式缩短地址码长度

■变址寻址方式中的地址偏移量比较短,

■用寄存器间接寻址方式缩短地址码长度

■例如:16个间址寄存器,用4位地址码就能表示很长的逻辑

地址空间。

56

2.3.4指令格式举例

■略

57

2.4指令系统的功能设计

■完整性是指应该具备的基本指令种类,通用计算机必须有5

类基本指令

■规整性包括对称性和均匀性

■对称性:所有寄存器同等对待,操作码的设置等都要对称,

■如:A-B与B-A

■均匀性:不同的数据类型、字长、存储设备、操作种类要

设置相同的指令

■高效率:指令的执行速度要快;指令的使用频度要高;各类

指令之间要有一定的比例

■兼容性:在同一系列机内指令系统不变(可以适当增加)

58

2.4.1基本指令系统

■指令的种类:数据传送,运算,程序控制,输入输出,处理

机控制和调试

59

1数据传送类指令

■由如下三个主要因素决定:

■数据存储设备的种类

■数据单位:字、字节、位、数据块等采用的寻址方式

■指令种类(以字为传送单位,不考虑寻址方式等):

■通用寄存器通用寄存器

■通用寄存器->主存储器

■通用寄存器堆栈

■主存储器通用寄存器

■主存储器->主存储器

■主存储器堆栈

■堆栈通用寄存器

■堆栈主存储器

60

2运算类指令

■考虑四个因数的组合:

■(1)操作种类:力口、减、乘、除、与、或、非、异或、比较、

移位、检索、转换、匹配、清除、置位等

■(2)数据表示:定点、浮点、逻辑、十进制、字符串、定点

向量等

■(3)数据长度:字、双字、半字、字节、位、数据块等

■(4)数据存储设备:通用寄存器、主存储器、堆栈等

■以加法指令为例,一般应设置如下几种:

■寄存器-寄存器型的定点单字长加法指令

■寄存器-寄存器型的定点双字长加法指令

■寄存器-寄存器型的定点半字加法指令

■寄存器-寄存器型的字节加法指令

■寄存器-寄存器型的浮点单字长加法指令

■寄存器-寄存器型的浮点双字长加法指令

■寄存器-寄存器型的单字长逻辑加法指令

-寄存器-寄存器型的定点向量加法指令

-寄存器-寄存器型的浮点向量加法指令61

以移位指令为例

■需要组合以下三个因素:

■(1)移位方向:左移(L)、右移(R)

■(2)移位种类:算术移位(A)、逻辑移位(L)、循环移位(R)

■(3)移位长度:单字长(S)、双字长(D)

■组合起来共有:3X2X2=12种,

■其中,逻辑左移与算术左移相同

■一般机器中要设置10条移位指令

62

一般机器中要设置10条移位指令

■SLAS单字长算术左移

■SRAS单字长算术右移

■SLLS(SRLS)单字长逻辑左移,单字长算术左移

■SLRS单字长循环左移

■SRRS单字长循环右移

■SLAD双字长算术左移

■SRAD双字长算术右移

■SLLD(SRLD)双字长逻辑左移,双字长算术左移

-SLRD双字长循环左移

■SRRD双字长循环右移

63

3程序控制指令

■主要包括三类:转移指令、调用和返回指令、循环控制指令

■条件转移指令

■程序调用和返回指令:CALL转入子程序

■RETURN从子程序返回,本身可以带有条件

■中断控制指令:开中断、关中断、改变屏蔽、中断返回、自

陷等

■转移京件:零(Z)、正负(N)、进位(C)、溢出(V)及它们的组合

■主要条件转移指令有:

■BEQ等于零转移BNEQ不等于零转移

■BLS小于转移BGT大于转移

■BLEQ小于等于转移,或不大于转移

■BGEQ大于等于转移,或不小于转移

■BLSU不带符号小于转移

BGTU不带符号大于转移

■BLEQU不带符号小于等于转移,或不带符号不大于转移

■BGEQU不带符号大于等于转移,或不带符号不小于转移

-BCC没有进位转移BCS有进位转移

・BVC没有溢出转移BVS有溢出转移

64

IBM370系列机的转移指令

■条件码占用状态字PWS的34、35

PWS34PWS35条件对应的屏蔽码

00=1000

01>0100

10<0010

11溢出0001

■主要转移指令有2条:

■BCM,ADR;若屏蔽码M符合,转向ADR

■BCRM,R;若屏蔽码M符合,转向(R)

65

■举例:

指令助记符M

等于转移(零转移)BE(BZ)1000

低于转移(负转移)BL(BM)0100

高于转移(正转移)BH(BP)0010

溢出转移BO0001

非等于转移(非零转移)BNE(BNZ)0111

非高于转移(非正转移)BNH(BNP)1101

非低于转移(非负转移)BNL(BNM)1011

无条件转移B1111

66

复合条件转移指令

■代替2条指令,首先进行运算,并根据运算的结果决定是否转

移不需要条件码,与高级语言一致。

■例如:

DNBRADR;R-(R)-1,如果R羊0转移

INBRADR;R-(R)+1,如果R黄。转移

JEQRI,R2,ADR;如果(R1)=(R2)转移

JADEQ,Rd,Rs,ADR;Rd-(Rd)+(Rs),

;如果(Rd)=O转移

67

循环控制指令

■用1条指令完成循环的控制

■代替3条指令的功能:运算、比较和转移。

■例如:

■JLRs,Rz,Ri,ADR

■Rs中存放循环变量,Rz中存放循环终值,Ri中存放循环的

止上

“长。

■地址个数太多时,可以把其中的1个或几个地址隐含起来。

■例如,在IBM370下列机中,Ri隐含,循环步长放在与Rz紧相

邻的下一寄存器中。

68

■隐含转移指令

■应用场合:用于特殊的IF..THEN,.结构中,THEN部分只有

一条指令

-实统方法:把IF条件取反,如果取反后的条件成立则取消下

条指令,否则执行下条指令。

■例子:IF(a<b)THENb=b+l

COMP>=,Ra,Rb;若柒3)>=(1^)则取消

INCRb

■达到的效果:

■不需要专门的转移指令,程序执行效率高。

69

■程序调用和返回指令

■本身可以不带条件,也可以带有条件

CALL转入子程序

RETURN从子程序返回

CALLCC当条件CC满足时转入子程序

RETURNCC当条件CC满足时从子程序返回

■中断控制指令:

开中断、关中断

改变屏蔽

中断返回

自陷等

70

4输入输出指令

■主要有:启动、停止、测试、控制设备,数据输入、输出操

作等采用单一的直接寻址方式,

■在多用户或多任务环境下,输入输出指令属于特权指令

■也可以不设置输入输出指令,输入输出设备与主存储器共用

同一个零地址空间

71

5处理机控制和调试指令

■处理机状态切换指令

■处理机至少有两个或两个以上状态

■硬件和软件的调试指令

■硬件调试指令:

■钥匙位置、开关状态的读取寄存器

■和主存单元的显示等

■软件调试指令:

■断点的设置、跟踪,自陷井指令等

72

指令系统的优化设计

-指令系统的优化设计有两个截然相反的方向:

-1.复杂指令系统计算机CISC

■(ComplexInstructionSetComputer)

■增强指令功能,设置功能复杂的指令

■面向目标代码、高级语言和操作系统

■用一条指令代替一串指令

-2.精简指令系统计算机RISC

■(ReducedInstructionSetComputer)

■只保留功能简单的指令

■功能较复杂的指令用子程序来实现

73

2.4.2CISC指令系统

-2.4.2.1目标程序的优化

-2A2.2对高级语言和编译程序的支持

-2.4.2.3操作系统的优化实现

74

2.4.2.1目标程序的优化

■优化目标程序的指标主要有两个:

■一是缩短程序的长度,即减少程序的空间开销,

■另一个是缩短程序的执行时间,即减少程序的时间开销。

■优化目标程序的方法是:

■对大量的目标程序及其执行情况进行统计分析,找出那些

使用频度高,执行时间长的指令或指令串。

■对于那些使用频度高的指令,用硬件加快其执行,就能缩

短整个程序的执行时间。

■对于那些使用频度高的指令串,用一条新的指令来代替

■这样,不但能缩短整个程序的执行时间,而且能缩短整个

程序的长度,从而减少程序的空间开销。

■优化目标程序的主要途径有以下几个方面

■(1)增强数据传送指令的功能

■(2)增强运算型指令的功能;

■(3)增强程序控制指令的功能。

75

■(1)增强数据传送指令的功能。

■Intel8088处理机

■MOVE、PUSH和POP等3种数据传送指令的使用频度在程

序中占40%左右,执行时间占30%以上。

■IBM大中型计算机的统计结果

-数据传送指令所占的比例还要高

■数据传送指令在整个指令系统中占有非常重要的地位

■设计好数据传送指令对提高计算机系统的性能至关重要。

■(2)增强运算型指令的功能;

■在科学计算的应用程序中,经常要计算各种各样的函数

■为此,在有些计算机系统设置有常用的函数运算指令。

■如:开平方,三角函数sin(x)、cos(x)、tg(x),对数函数

ln(x)、lg(x),指数函数等

■这样,就能用一条指令代替软件的一个子程序来完成函数

计算。

76

■(3)增强程序控制指令的功能。

-循环在一般程序占有相当大的比例,

■许多循环程序中的循环体本身往往很短,

■在一般高级语言中,循环体中只有一条语句的约占40%

■有1至3条语句的约占70%左右。

-循环控制指令在整个循环程序中占据了相当大的比例。

■可以用一条循环控制指令来实现对循环变量的运算、测试

和转移功能。

77

2A2.2对高级语言和编译程序的支持

■大多数人都已经习惯用高级语言编写程序,只有在极少数有

特殊要求的场合才用机器语言或汇编语言编写程序。

■目前在机器上实际运行的绝大多数程序,都是用高级语言编

写,并经编译程序编译后生成的目标程序。

■然而,大多数高级语言与一般计算机的机器语言的语义差距

非常大,

■通常用高级语言编写的程序经编译程序编译后生成的目标

程序,与直接用机器语言或汇编语言编写的程序相比,时

间开销和空间开销都要大一个数量级。

■因此,改进指令系统,增加对高级语言和编译程序的支持,

缩小高级语言与机器语言的差距,就能提高整个计算机系统

的性能。

■面向高级语言和编译程序增强指令系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论