计算机系统结构(第5讲)_第1页
计算机系统结构(第5讲)_第2页
计算机系统结构(第5讲)_第3页
计算机系统结构(第5讲)_第4页
计算机系统结构(第5讲)_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

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

文档简介

计算机系统结构

(第5讲)

计算机系统结构

第一章基本概念第六章向量处理机

第二章指令系统第七章互连网络

第三章存储系统第八章并行处理机和

第四章输入输出系统多处理机

第五章标量处理机

第二章指令系统

指令系统是计算机系统结构的主要组

成部分

指令系统是软件与硬件分界面的一个

王要标志

指令系统是软件与硬件之间互相沟通

的桥梁

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

越大

第二章指令系统

2.1数据表示

2.2寻址技术

2.3指令格式的优化设计

2.4指令系统的功能设计

2.5RISC指令系统

2.1数据表示

新的研究成果,如浮点数基值的选择方法

新的数据表示方法,如自定义数据表示]

2.1.1数据表示与数据类型

2.1.2浮点数的设计方法

2.1.3自定义数据表示

2.L1数据表示与数据类型

数据表示的定义:数据表示是指计算机

硬件能够直接识别,可以被指令系统

直接调用的那些数据类型。

定点、逻辑、浮点、十进制、字符、

字符串、堆栈和向量

数据类型:文件、图、表、树、阵列、[

队列、链表、栈、向量、串、实数、

整数、布尔数、字符等。

确定哪些数据类型用数据表示实现,是

软件与硬件的取舍问题。

确定数据表示的原则:

1.缩短程序的运行时间

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

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

数据表示在不断发展

如:矩阵、树、图、表及自定义数据

表示等

2.1.2浮点数的设计方法

1、浮点数的表示方式

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

e其中

N=m-'rme=

需要有6个参数来定义。

两个数值:

m:尾数的值,包括尾数的码制(原码或补

码)和数制(小数或整数)

e:阶码的值,移码(偏码、增码、译码、

余码等)或补码,整数

1,原码、反码、补码

(1)x=+10101(2)x=-10101

[x]原=010101[x]原=110101

[x]反=010101区反二101010

[x]补=010101区补=101011

结论1:对于正数来说,[x]原=[x]反=[x]补

即符号位为零,后面加上x的真值。

结论2:对于负数来说,

[x]原=l+x的真值

[X]反=1+X的真值的每一位求反

[X]补=1+X的真值的每一位求反,最后一位加1

2.移码

十进制值补码移码十进制值补码移码

+701111111-111110111

+601101110-211100110

+501011101-311010101

+401001100-411000100

+300111011-510110011

+200101010-610100010

+100011001-710010001

000001000-810000000

由[X]补得到[X]移的方法是变[X]补的符号位为其反码。

最高一位为符号位,1代表正号,。代表负号。

3.浮点数的规格化

同一个浮点数的表示不是唯一的。

0.5可表示为0.05*10150*10-2

尾数用原码表示,最高位不等于零,称之为规格化数。

尾数用补码表示,最高位与符号位不等,称之为规格

化数。

尾数的符号位表示整个数的正负。

阶码的符号位表示把尾数扩大(缩小)N倍。

2.1.2浮点数的设计方法

1、浮点数的表示方式

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

e其中

N=m-'rme=

需要有6个参数来定义。

两个数值:

m:尾数的值,包括尾数的码制(原码或补

码)和数制(小数或整数)

e:阶码的值,移码(偏码、增码、译码、

余码等)或补码,整数

两个基值:

rm:尾数的基值,2进制、4进制、8进制、

16进制和10进制等

re:阶码的基值,通常为2

两个字长:

P:尾数长度,当%=16时,每4个二进制

位表示一位尾数

q:阶码长度,阶码部分的二进制位数

p和q均不包括符号位

浮点数的存储式

1位1位q位p位

em

mfef

注:mf为尾数的符号位,ef为阶码的符号位,

e为阶码的值,m为尾数的值。

2、浮点数的表数范围iI

尾数为原码、小数,阶码用移码、整数时,

规格化浮点数N的表数范围:

repr

rm~-rm~<N<'-rm~yrm

尾数为补码,而负数区间的表数范围为:

浮点数在数轴上的分布情况

上溢下溢(浮点零)上溢

V负数区厂六正数区J-

oN

mI•n

Nmin-NmaxXNmax

例2.1:p=23,q=7,rm=re=2,尾数用原

码、小数表示,阶码用移码、整数表示,求规

格化浮点数N的表数范围。

解:

规格化浮点数N的表数范围是:

27-2327-1

-2-<<(1-2).2

2

即:「2“&N&(1-2-23)-2127

例23尾婺用补码、小数表示,阶码用移码、

整数表示,p=6,q=6,1=16,re=2,

求规格化浮点数N表数范围

解:规格化浮点数N在正数区间的表数范围是:

65

16-<N<(1-16一6)7663

在负数区间的表数范围是:

/I-6、—A4

<-(京+1626

6、浮点数格式的设计

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

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

用原码制表示:加减法比补码表示复杂,

乘除法比补码简单,表示非常直观。采用

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

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

采用移码表示的主要原因是:浮点0与机器

0一致。阶码进行加减运算时,移码的加减

法运算要比补码复杂

尾数的基值1选择2,

阶码的基值几取2,

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

在表数范围和表数精度给定的情况下,如

何确定最短的尾数字长p和阶码字长q

例25要求设计一种浮点数格式,其表数范

围不小于1037,正、负数对称,表数精度不

低于10-16。_________

,“一137

解:根据表数范围的要求:22>10

37

解这个不等式:log(log10/log2+1)

q>-------------------------------------=6.95

log2

取阶码字长q=7

根据表数精度的要求,得到:

由于浮点数的字长通常为8的倍数,因此,

取尾数字长p=55,总的字长为1+1+7+55=

64,浮点数格式如下:I

1位1位7位55位

em

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

最大尾数值:(1-^7)=(1-2-55)

11

绝对值最小的尾数值:

最大阶码:

最小阶码:

最大正数:

=(1_2-55)-22-1=(1-2-55),2,27=1.70x1038

(1-r

2,-1291“r1c-39

—"2=2=I.47x10

最大负数:

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

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

练习题:

2.22.32.52.62.10

2.142.15

计算机系统结构

(第6讲)

第二章指令系统

2.1数据表示

2.2寻址技术

2.3指令格式的优化设计

2.4指令系统的功能设计

2.5RISC指令系统

2.2寻址技术

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

寻址技术

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

对象:寄存器、主存储器、堆栈

未口输入输出设备

方法:分析各种寻址技术的优缺点,

如何选择和确定寻址技术

2.2.1编址方式222寻址方式

2.2.3定位方式

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

2.2.1编址方式

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

方法。

主要内容:编址单位、零地址空间个数、

并行存储器的编址技术、输入输出设备

的编址技术

1、编址单位

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

编址、块编址等

编址单位与访问字长

一般:字节编址,字访问

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

辅助存储器:块编址

字节编址字访问的优缺点

有利于信息处理

地址信息浪费、存储器空间浪费

读写逻辑稍复杂

o字节位置引起的问题

2、零地址空间个数

三个零地址空间:通用寄存器、主存储器

和输入输出设备均独立编址

两个零地址空间:主存储器与输入输出设

备统一编址

一个零地址空间:所有存储设备统一编址,

最低端是通用寄存器,最高端是输入输

出设备,中间为主存储器

隐含编址方式,实际上没有零地址空间:

堆栈、Cache等

3、输入输出设备的编址

一台设备一个地址

一台设备两个地址:数据寄存器、状态或

控制寄存器

多个需要编址的寄存器共用同一个地址的

方法:依靠地址内部来区分,适用于被

编址的接口寄存器的长度比较短。“下

跟法”隐含编址方式,必须按顺序读写

寄存器。

-台设备多个地址。对编程增加困难■

4、并行存储器的编址技术■

高位交叉编址

主要目的是用来扩大存储器容量。■

低位交叉编址■

主要目的是提高存储器速度。

222寻址方式

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

方法。

主要内容:设计思想和设计方法

1、寻址方式的设计思想

立即数寻址方式

用于数据比较短、源操作数

面向寄存器的寻址方式

OPCR

OPCR,R

OPCR,R,R

OPCR,M

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

OPCM

OPCM,M

OPCM,M,M

面向堆栈的寻址方式:■■

OPC

OPCM

2、间接寻址方式与变址寻址方式的比较

目的相同:

都是为了解决操作数地址的修改问题

都能做到不改变程序而修改操作数地址

原则上,一种处理机中只需设置间址寻址

方式与变址寻址方式中的任何一种即可,

有些处理机两种寻址方式都设置

如何选取间址寻址方式与变址寻址方式?

优缺点怎样?

例2.7:一个由N个元素组成的数组,已经存

放在起始地址为AS的主存连续单元中,

现要把它搬到起始地址为AD的主存连续

单元中。不必考虑可能出现的存储单元的

重叠问题。为了编程简单,采用一般的两

地址指令编写程序。

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

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当前正在传送的源数组地址

都能做到不改变程序而修改操作数地址

原则上,一种处理机中只需设置间址寻址

方式与变址寻址方式中的任何一种即可,

有些处理机两种寻址方式都设置

如何选取间址寻址方式与变址寻址方式?

优缺点怎样?

例2.7:一个由N个元素组成的数组,已经存

放在起始地址为AS的主存连续单元中,

现要把它搬到起始地址为AD的主存连续

单元中。不必考虑可能出现的存储单元的

重叠问题。为了编程简单,采用一般的两

地址指令编写程序。

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

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;剩余数据的个数

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

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

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

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

在汇编时计算

incx增量变址寄存器

decent个数减1

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

halt停机

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

ent:0剩余数据的个数

主要优缺点比较:

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

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

间址寻址方式:间接地址在主存储器中,

没有偏移量

变址寻址方式:基地址在变址寄存器中,

有偏移量

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

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

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

自动变址:

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

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

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

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

3、寄存器寻址.

主要优点:指令字长短、指令执行速度快、I

支持向量和矩阵运算

主要缺点:不利于优化编译、现场切换困难、

硬件复杂

4、堆栈寻址方式

主要优点:支持高级语言,有利与编译程序;

节省存储空间

支持程序的嵌套和递归调用,

支持中断处理

主要缺点:运算速度比较低,栈顶部分设计

成一个高速的寄存器堆

2.2.3定位方式

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

采用什么方式来实现?I

程序需要定位的主要原因:程序的独立性;

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

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

本身很大,大于分配给它的主存物理空间

直接定位方式:在程序装入主存储器之前,

程序中的指令和数据的主存物理就已经

确定了的称为直接定位方式。

静态定位:在程序装入主存储器的过程中

随即进行地址变换,确定指令和数据的

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

动态定位:在程序执行过程中,当访问到

相应的指令或数据时才进行地址变换,

确定指令和数据的主存物理地址的称为

动态定位方式。

计算机系统结构

(第7讲)

第二章指令系统

2.1数据表示

2.2寻址技术

2.3指令格式的优化设计

2.4指令系统的功能设计

2.5RISC指令系统

2.3指令格式的优化设计

主要目标:

节省程序的存储空间

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

研究内容:

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

2.3.1指令的组成

2.3.2操作码的优化设计

2.3.3地址码的优化设计

2.3.4指令格式设计举例

2.3.1指令的组成

一般的指令主要由两部分组成:操作码和地

址码

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

操作种类:力口、减、乘、除、数据传送、

移位、转移、输入输出

操作数描述:

数据的类型:定点数、浮点数、复数、

字符、字符串、逻辑数、向量

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

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

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

地址:

直接地址、间接地址、立即数、

寄存器编号、变址寄存器编号

地址的附加信息:

偏移量、块长度、跳距

寻址方式:

直接寻址、间接寻址、立即数寻址、

变址寻址、相对寻址、寄存器寻址

2.3.2操作码的优化表示

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

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

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

例如:Burroughs公司的B-1700机

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

编码方式指令由操作码总莅数百分比

8位定长编码301,2480

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

Hu仔man编码172,34643%

2、Huffman编码法

1992年由Huffinan首先提出

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

i=1

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

的概率

固定长操作码相对于

Huffman操作码的-S2.log2Pi

信息冗余量为:log2n

例26假设一台模型计算机共有7种不同的操

作码,如果采用固定长操作码需要3位。已

知各种操作码在程序中出现的概率如下表,

计算采用Huffinan编码法的操作码平均长度,

并计算固定长操作码和Huffman操作码的信

息冗余量。

111213□ZJ151617

概率0.450.300.150.050.030.010.01

利用Huffinan树进行操作码编码的方法,又

称为最小概率合并法。

1.把所有指令按照操作码在程序中出现的概率,

自左向右从排列好。

2.选取两个概率最小的结点合并成一个概率值

是二者之和的新结点,并把这个新结点与其

它还没有合并的结点一起形成新结点集合。

3.在新结点集合中选取两个概率最小的结点进

行合并,如此继续进行下去,直至全部结点

合并完毕。

4.最后得到的根结点的概率值为1。I

5.每个结点都有两个分支,分别用一位代码J

“0"和"1"表示。

6.从根结点开始,沿尖头所指方向,到达属于

该指令的概率结点,把沿线所经过的代码组

合起来得到这条指令的操作码编码。

解:采用Huffinan编码法所得到的操作码的平

均长度

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

+0.03X5+0.01X6+0.01X6=1.97(位)

采用最优Huffinan编码法,操作码的最短平均

长度

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

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

+0.01X6.644=1.95(位)

0.450.300.150.050.030.010.01

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

110.4501位

0.30102位

130.151103

0.0511104位

L0.03111105位

160.011111106

170.0111111116

采用3位固定长操作

“35%

码的信息冗余量为:log273

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

1.95

R=1-------«1.0%

1.97

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

3、扩展编码法B

Huffman操作码的主要缺点:

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

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

扩展编码法:由固定长操作码与Huffinan编码

法相结合形成

例如:例2.7改为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=1--------=2.5%

2.00

又例如:例2.7改/p骊码法,

其操作码最短平均长度为:

H=(0.45x0.30+0.15)x2+

(0.05+0.03+0.01+0.01)x4

=2.20

信息冗余量为:

1.95

R=1--------=11.4%

2.20

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

序号|概率11-235扩展编码|2-4等长扩展编码

Ix0.45000

120.301001

130.1511010

i40.05moonoo

i0.03moinoi

J5

i6o.oiunomo

i7o.oimilIm

平均长度2022

信息冗余量25%11.4%

等长15/15/15.........扩展编码法

操作码编码说明

0000

00014位长度的操作码

...共15种

1110

11110000

111100018位长度的操作码

...共15种

11111110

111111110000

11111111000112位长度的操作码

...共16种

111111111110

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

110.4501位

0.30102位

130.151103

0.0511104位

L0.03111105位

160.011111106

170.0111111116

采用3位固定长操作

“35%

码的信息冗余量为:log273

等长8/64/512……扩展编码法

操作码编码说明

0000

00014位长度的操作码

...共8种

0111

10000000

100000018位长度的操作码

...共64种

11110111

100010000000

10001000000112位长度的操作码

...共512种

111111110111

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

指令操作码的长度指令

编码方法

4位6位10位种类

15/3/161531634

8/31/168311655

8/30/328303270

8/16/256816256280

4/32/256432256292

2.3.4指令格式设计举例

指令的长度:有固定长度和可变长度两种[

操作码长度:有固定长度和可变长度两种]

例如:

IBM370系列机,操作码长度固定:8位

指令长度有16位、32位和48位等多种

地址个数以两地址为主

16个通用寄存器可兼做变址寄存器和基址

寄存器使用

计算机系统结构

(第8讲)

第二章指令系统

2.1数据表示

2.2寻址技术

2.3指令格式的优化设计

2.4指令系统的功能设计

2.5RISC指令系统

2.4指令系统的功能设计

完整性、规整性、高效率和兼容性■

2.3.1指令的组成

五类:数据传送,运算,程序控制,输入

输出,处理机控制和调试

1、数据传送类指令

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

数据存储设备的种类

数据单位:字、字节、位、数据块等

采用的寻址方式

指令种类(以字为传送单位,不考虑寻址

方式等):

通用寄存器n通用寄存器

通用寄存器n主存储器

通用寄存器n堆栈

主存储器n通用寄存器

主存储器n主存储器

主存储器n堆栈

堆栈n通用寄存器

堆栈n主存储器

2、运算类指令

考虑四个因数的组合:|■

(1)操作种类:力口、减、乘、除、与、

或、非、异或、比较、移位、检索、转

换、匹配、清除、置位等

(2)数据表示:定点、浮点、逻辑、十

进制、字符串、定点向量等

(3)数据长度:字、双字、半字、字节、

位、数据块等

(4)、数据存藁备:通用寄存器、主存

储器、堆栈等

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

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

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

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

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

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

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

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

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

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

移位指令,要组合以下三个因素:

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

移位种类:算术移位(A)、逻辑移位(L)、

循环移位(R)

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

组合起来共有:3X2X2=12种,因逻辑

左移与算术左移相同,因此移位指令应

该有10种,分别是:

SLAS单字长算术左移

SRAS单字长算术右移

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

或单字长算术左移

SLRS单字长循环左移

SRRS单字长循环右移

SLAD双字长算术左移

SRAD双字长算术右移

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

或双字长算术左移

SLRD双字长循环左移

SRRD双字长循环右移

位操作指令:置位、清位、位测试、找位等

字符串指令:比较、查找、匹配、转换等

3、程序控制指令

主要包括三类:转移指令、调用和返回指令、

循环控制指令

转移条件有:零(Z)、正负(N)、进位(C)、

溢出(V)及它们的组合

主要条件转移指令有:

BEQ等于零转移

BNEQ不等于零转移

BLS小于转移

BGT大于转移

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

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

BLSU不带符号小于转移

BGTU不带符号大于转移

BLEQU不带符号小于等于转移,

或不带符号不大于转移

BGEQU不带符号大于等于转移,

或不带符号不小于转移

BCC没有进位转移

BCS有进位转移

BVC没有溢出转移

BVS有溢出转移

程序调用和返回指令:

CALL转入子程序

RETURN从子程序返回,

本身可以带有条件

中断控制指令

开中断、关中断、改变屏蔽、

中断返回、自陷等[

4、输入输出指令

主要有:

启动、停止、测试、控制设备,数据输入、

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

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

于特权指令

也可以不设置输入输出指令,输入输出设备

与主存储器共用同一个零地址空间

5、处理机控制和调试指令

处理机状态切换指令

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

硬件和软件的调试指令■

硬件调试指令:

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

和主存单元的显示等

软件调试指令:

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

2.4.2指令系统性能

完整性是指应该具备的基本指令种类,通用

计算机必须有5类基本指令

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

对称性:所有寄存器头等对待操作码的设

置等都要对标,如:A—B与B—A

均匀性:不同的数据类型、字长、存储设

备、操作种类要设置相同的指令

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

频度要高;各类指令之间要有一定的比例

兼容性:在同一系列机内指令系统不变(可

以适当增加)

2.4.3指令系统的优化设计

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

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

(ComplexInstructionSetComputer)

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

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

用一条指令代替一串指令

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

(ReducedInstructionSetComputer)

只保留功能简单的指令

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

下一节主要介绍RISC

第二章指令系统

2.1数据表示

2.2寻址技术

2.3指令格式的优化设计

2.4指令系统的功能设计

2.5RISC指令系统

2.5精简指令系统计算机RISC

2.5.1从CISC到RISC

70年代,指令系统已非常庞大,指令功能

相当复杂(见下页表)。

1975年,IBM公司率先组织力量开始研究指

令系统的合理性问题

1979年研制出世界上第一台采用RISC思想

的计算机IBM801

1986年,IBM正式推出采用RISC体系结构

的工作站IBMRTPC

机型IBM370/168VAX-11iAPX432

(年代)(1973)(1978)(1982)

指令种类~~208~~~~303~~~~222~~

微程序容量420K~~480K~~64K~~

指令长度~~1648~~16・4566-321~~

制造工艺ECLMSITTLMSINMOSVLSI

指令操Mem-MemMem-Mem面向堆栈

作类型Mem-RegMem-RegMem-Mem

Reg-RegReg-Reg

Cache容量~~64K~~64K0

CISC指令系统存在的问题:

DavidPatterson,UCBerkeley,1979

20%^80%HMM

CISC中,大约20%的指令占据了80%的处理

机时间。8088处理机的指令种类约100种

前11种(11%)指令的使用频度已经

超过80%

前8种(8%)指令的运行时间已经超

过80%

前20种(20%)指令:使用频度达到

91.1%,运行时间达至U97.72%

其余80%指令:使用频度只有8.9%,

只占2.28%的处理机运行时间

2、VLSI技术的发展引起的问题

VLSI工艺要求规整性

RISC正好适应了VLSI工艺的要求

主存与控存的速度相当

简单指令没有必要用微程序实现,复杂指

令用微程序实现与用简单指令组成的子程

序实现没有多大区别;由于VLSI的集成

度迅速提高,使得生产单芯片处理机成为

可能。

3、软硬件的功能分配问题

复杂的指令使指令的执行周期大大加长

一般CISC处理机的指令平均执行周期都

在4以上,有些在10以上

CISC增强了指令系统功能,简化了软件,但

硬件复杂了

1981年Patterson等人研制了32位RISCI微

处理器,共31种指令,3种数据类型,2种

寻址方式;研制周期10个月,比当时最先

进的MC68000和Z8002快3至4倍;1983年

又研制了Risen,指令种类扩充到39种,

单一的变址寻址方式,通用寄存器138个

2.5.2RISC的定义与特点

卡内基梅隆大学(CarnegieMellon)论述

RISC的特点:

1、大多数指令在单周期内完成■

2、LOAD/STORE结构

3、硬布线控制逻辑

4、减少指令和寻址方式的种类

5、固定的指令格式

6、注重编译优化技术

90年代初,IEEE的MichaelSlater对RISC定义的

描述:

1、RISC为使流水线高效率执行,应具有:

简单而统一格式的指令译码

大部分指令可以单周期执行完成

仅Load和Store指令可以访问存储器

简单的寻址方式

采用延迟转移技术

采用LOAD延迟技术

2、RISC为使优化编译器便于生成优化代码,

应具有:三地址指令格式、较多的寄存器、

对称的指令格式

2.5.3减少CPI是RISC思想的精华

程序执行时间的计算公式:

P=I-CPI-T

其中:

八P是执行这个程序所使用的总的时间;

I是这个程序所需执行的总的指令条数;

CPI(CyclesPerInstruction)是每条指令执

行的平均周期数

T是一个周期的时间长度。

RISC的速度要比CISC快3倍左右,关键是

RISC的CPI减小了

来刑指令条数指令平均周周期时间

大上I期数CPIT

CISCI2-1533ns〜5rLs

RISc|1.3〜1.41.1〜1.4110ns〜获"

硬件方面:

采用硬布线控制逻辑,减少指令和寻址

方式的种类,使用固定的指令格式,采

用LOAD/STORE结构,指令执行过程中

设置多级流水线等。

软件方面:十分强调优化编译技术的作用

RISC设计思想也可以用于CISC中

例如:Intel公司的80x86处理机的CPI在

不断缩小,

8088的CPI大于20

80286的CPI大约是5.5

80386的CPI进一步减小到4左右

80486的CPI已经接近2

Pentium处理机的CPI已经与RISC

十分接近

目前,超标量、理流水线处理机的CPI已经

达到05实际上用IPC(InstructionPer

Cycle)更确切。

2.5.4RISC的关键技术

1、延时转移技术

定义:为了使指令流水线不断流,在转移

指令之后插入一条不相关的有效的指令,

而转移指令被延迟执行,这种技术称为

延迟转移技术。

采用指令延迟转移技术时,指令序列的调

整由编译器自动进行。

1:addr1,r2FE/产生转移地址

2:jmpnext2FE/Z—指令作废

3:nextl:subr3,r4FEr重新取指令

n:next2:mover4,aFE

因转移指令引起的流水线断流

产生转移地址

1:jmpnext2----插入指令

2:addr1,r2一下IE

3:nextl:subr3,r4

重新取指令

n:next2:mover4,aFE

采用指令延迟转移技术的指令流水线

采用延迟转移技术的两个限制条件

(1)被移动指令在移动过程中与所经

过的指令之间不能有数据相关

(2)被移动指令不破坏条件码,至少

不影响后面的指令使用条件码I

如果找不到符合条件的指令,必须在

条件转移指令后面插入空操作;如果指

令的执行过程分为多个流水段,则要插

入多条指令

调整前的指令序列:

1:mover1,r2

2:cmpr3,r4;(r3)与(r4)比较

3:beqexit;如果(r3)=(r4)则转移到next

4:addr4,巧

n:next:mover4,a

调整后的指令序列:

1:cmpr3,r4;(r3)与(r4)比较

2:beqexit;如果(r3)=(r4)则转移到next

3:mover15r2

4:addr4,r5

n:next:mover4,a

2、指令取消技术I

采用指令延时技术,在许多情况下找不到

可以用来调整的指令;分为三种情况:

(1)向后转移(循环程序)

实现方法:循环体的第一条指令经调整

后安排在两个位置,第一个位置是在循

环体的前面,第二个位置安排在循环体

的后面。

如果转移成功,则执行循环体后面的指

令,然后返回到循环体开始;否则,则

取消循环体后面的指令,继续执行后面

的指令。例子:

调整前调整后

loop:XXXXXX

YYYloop:YYY

zzzZZZ

cmpr1,r2,loopcmpr1,r2,loop

WWWXXX

WWW

效果:能够使指令流水线在绝大多数情

况下不断流,由于绝大多数情况下,转

移是成功的。

(2)向前转移(if-then)

实现方法:如果转移不成功执行下条指

令,否则取消下条指令。例子:

RRR

SSS斤部分的程序代码

cmpr1,r2,thru若转移,则取消TTT

TTT若不转移,则执行TT1

Then部分的程序代码

UUU;Then部分的程序代码

thru:VW

效果:成功与不成功的概率通常各为50%

⑶隐含转移技术

应用场合:用于if・.then..结构,且then部分

只有一条指令

R现方或:把IF的条件取反,如果取反后

的条件成立则取消下条指令,否则执行下

条指令。

例子:if(a<b)thenb=b+1

cmp>=,ra,rb;若—由)则取消

下条指令

incrb

3、重叠寄存器窗口技术

(OverlappingRegisterWindow)

原因:RISC中,子程序比CISC中多因传送

参数而访问存储器的信息量很大

美国加洲大学伯克利分校的F.Baskett提出|

实现方法:

设置一个数量比较大的寄存器堆,并把它

例子:if(a<b)thenb=b+1

cmp>=,ra,rb;若—由)则取消

下条指令

incrb

3、重叠寄存器窗口技术

(OverlappingRegisterWindow)

原因:RISC中,子程序比CISC中多因传送

参数而访问存储器的信息量很大

美国加洲大学伯克利分校的F.Baskett提出|

实现方法:

设置一个数量比较大的寄存器堆,并把它

划分成很多个窗口。在每个过程使用的

几个窗口中有

温馨提示

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

评论

0/150

提交评论