計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第5講)_第1頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第5講)_第2頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第5講)_第3頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第5講)_第4頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第5講)_第5頁
已閱讀5頁,還剩105頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)

(第5講)

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)

第一章基本概念第六章向量處理機(jī)

第二章指令系統(tǒng)第七章互連網(wǎng)絡(luò)

第三章存儲(chǔ)系統(tǒng)第八章并行處理機(jī)和

第四章輸入輸出系統(tǒng)多處理機(jī)

第五章標(biāo)量處理機(jī)

第二章指令系統(tǒng)

指令系統(tǒng)是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的主要組

成部分

指令系統(tǒng)是軟件與硬件分界面的一個(gè)

王要標(biāo)志

指令系統(tǒng)是軟件與硬件之間互相溝通

的橋梁

指令系統(tǒng)與軟件之間的語義差距越來

越大

第二章指令系統(tǒng)

2.1數(shù)據(jù)表示

2.2尋址技術(shù)

2.3指令格式的優(yōu)化設(shè)計(jì)

2.4指令系統(tǒng)的功能設(shè)計(jì)

2.5RISC指令系統(tǒng)

2.1數(shù)據(jù)表示

新的研究成果,如浮點(diǎn)數(shù)基值的選擇方法

新的數(shù)據(jù)表示方法,如自定義數(shù)據(jù)表示]

2.1.1數(shù)據(jù)表示與數(shù)據(jù)類型

2.1.2浮點(diǎn)數(shù)的設(shè)計(jì)方法

2.1.3自定義數(shù)據(jù)表示

2.L1數(shù)據(jù)表示與數(shù)據(jù)類型

數(shù)據(jù)表示的定義:數(shù)據(jù)表示是指計(jì)算機(jī)

硬件能夠直接識(shí)別,可以被指令系統(tǒng)

直接調(diào)用的那些數(shù)據(jù)類型。

定點(diǎn)、邏輯、浮點(diǎn)、十進(jìn)制、字符、

字符串、堆棧和向量

數(shù)據(jù)類型:文件、圖、表、樹、陣列、[

隊(duì)列、鏈表、棧、向量、串、實(shí)數(shù)、

整數(shù)、布爾數(shù)、字符等。

確定哪些數(shù)據(jù)類型用數(shù)據(jù)表示實(shí)現(xiàn),是

軟件與硬件的取舍問題。

確定數(shù)據(jù)表示的原則:

1.縮短程序的運(yùn)行時(shí)間

2.減少CPU與主存儲(chǔ)器之間的通信量

3.這種數(shù)據(jù)表示的通用性和利用率

數(shù)據(jù)表示在不斷發(fā)展

如:矩陣、樹、圖、表及自定義數(shù)據(jù)

表示等

2.1.2浮點(diǎn)數(shù)的設(shè)計(jì)方法

1、浮點(diǎn)數(shù)的表示方式

一個(gè)浮點(diǎn)數(shù)N可以用如下方式表示:

e其中

N=m-'rme=

需要有6個(gè)參數(shù)來定義。

兩個(gè)數(shù)值:

m:尾數(shù)的值,包括尾數(shù)的碼制(原碼或補(bǔ)

碼)和數(shù)制(小數(shù)或整數(shù))

e:階碼的值,移碼(偏碼、增碼、譯碼、

余碼等)或補(bǔ)碼,整數(shù)

1,原碼、反碼、補(bǔ)碼

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

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

[x]反=010101區(qū)反二101010

[x]補(bǔ)=010101區(qū)補(bǔ)=101011

結(jié)論1:對(duì)于正數(shù)來說,[x]原=[x]反=[x]補(bǔ)

即符號(hào)位為零,后面加上x的真值。

結(jié)論2:對(duì)于負(fù)數(shù)來說,

[x]原=l+x的真值

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

[X]補(bǔ)=1+X的真值的每一位求反,最后一位加1

2.移碼

十進(jìn)制值補(bǔ)碼移碼十進(jìn)制值補(bǔ)碼移碼

+701111111-111110111

+601101110-211100110

+501011101-311010101

+401001100-411000100

+300111011-510110011

+200101010-610100010

+100011001-710010001

000001000-810000000

由[X]補(bǔ)得到[X]移的方法是變[X]補(bǔ)的符號(hào)位為其反碼。

最高一位為符號(hào)位,1代表正號(hào),。代表負(fù)號(hào)。

3.浮點(diǎn)數(shù)的規(guī)格化

同一個(gè)浮點(diǎn)數(shù)的表示不是唯一的。

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

尾數(shù)用原碼表示,最高位不等于零,稱之為規(guī)格化數(shù)。

尾數(shù)用補(bǔ)碼表示,最高位與符號(hào)位不等,稱之為規(guī)格

化數(shù)。

尾數(shù)的符號(hào)位表示整個(gè)數(shù)的正負(fù)。

階碼的符號(hào)位表示把尾數(shù)擴(kuò)大(縮?。㎞倍。

2.1.2浮點(diǎn)數(shù)的設(shè)計(jì)方法

1、浮點(diǎn)數(shù)的表示方式

一個(gè)浮點(diǎn)數(shù)N可以用如下方式表示:

e其中

N=m-'rme=

需要有6個(gè)參數(shù)來定義。

兩個(gè)數(shù)值:

m:尾數(shù)的值,包括尾數(shù)的碼制(原碼或補(bǔ)

碼)和數(shù)制(小數(shù)或整數(shù))

e:階碼的值,移碼(偏碼、增碼、譯碼、

余碼等)或補(bǔ)碼,整數(shù)

兩個(gè)基值:

rm:尾數(shù)的基值,2進(jìn)制、4進(jìn)制、8進(jìn)制、

16進(jìn)制和10進(jìn)制等

re:階碼的基值,通常為2

兩個(gè)字長:

P:尾數(shù)長度,當(dāng)%=16時(shí),每4個(gè)二進(jìn)制

位表示一位尾數(shù)

q:階碼長度,階碼部分的二進(jìn)制位數(shù)

p和q均不包括符號(hào)位

浮點(diǎn)數(shù)的存儲(chǔ)式

1位1位q位p位

em

mfef

注:mf為尾數(shù)的符號(hào)位,ef為階碼的符號(hào)位,

e為階碼的值,m為尾數(shù)的值。

2、浮點(diǎn)數(shù)的表數(shù)范圍iI

尾數(shù)為原碼、小數(shù),階碼用移碼、整數(shù)時(shí),

規(guī)格化浮點(diǎn)數(shù)N的表數(shù)范圍:

repr

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

尾數(shù)為補(bǔ)碼,而負(fù)數(shù)區(qū)間的表數(shù)范圍為:

浮點(diǎn)數(shù)在數(shù)軸上的分布情況

上溢下溢(浮點(diǎn)零)上溢

V負(fù)數(shù)區(qū)廠六正數(shù)區(qū)J-

oN

mI?n

Nmin-NmaxXNmax

例2.1:p=23,q=7,rm=re=2,尾數(shù)用原

碼、小數(shù)表示,階碼用移碼、整數(shù)表示,求規(guī)

格化浮點(diǎn)數(shù)N的表數(shù)范圍。

解:

規(guī)格化浮點(diǎn)數(shù)N的表數(shù)范圍是:

27-2327-1

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

2

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

例23尾婺用補(bǔ)碼、小數(shù)表示,階碼用移碼、

整數(shù)表示,p=6,q=6,1=16,re=2,

求規(guī)格化浮點(diǎn)數(shù)N表數(shù)范圍

解:規(guī)格化浮點(diǎn)數(shù)N在正數(shù)區(qū)間的表數(shù)范圍是:

65

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

在負(fù)數(shù)區(qū)間的表數(shù)范圍是:

/I-6、—A4

<-(京+1626

6、浮點(diǎn)數(shù)格式的設(shè)計(jì)

定義浮點(diǎn)數(shù)表示方式的6個(gè)參數(shù)的確定原則:

尾數(shù):多數(shù)機(jī)器采用原碼、小數(shù)表示。采

用原碼制表示:加減法比補(bǔ)碼表示復(fù)雜,

乘除法比補(bǔ)碼簡單,表示非常直觀。采用

小數(shù)表示能簡化運(yùn)算,特別是乘除法運(yùn)算。

階碼:一般機(jī)器都采用整數(shù)、移碼表示。

采用移碼表示的主要原因是:浮點(diǎn)0與機(jī)器

0一致。階碼進(jìn)行加減運(yùn)算時(shí),移碼的加減

法運(yùn)算要比補(bǔ)碼復(fù)雜

尾數(shù)的基值1選擇2,

階碼的基值幾取2,

浮點(diǎn)數(shù)格式設(shè)計(jì)的關(guān)鍵問題是:I

在表數(shù)范圍和表數(shù)精度給定的情況下,如

何確定最短的尾數(shù)字長p和階碼字長q

例25要求設(shè)計(jì)一種浮點(diǎn)數(shù)格式,其表數(shù)范

圍不小于1037,正、負(fù)數(shù)對(duì)稱,表數(shù)精度不

低于10-16。_________

,“一137

解:根據(jù)表數(shù)范圍的要求:22>10

37

解這個(gè)不等式:log(log10/log2+1)

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

log2

取階碼字長q=7

根據(jù)表數(shù)精度的要求,得到:

由于浮點(diǎn)數(shù)的字長通常為8的倍數(shù),因此,

取尾數(shù)字長p=55,總的字長為1+1+7+55=

64,浮點(diǎn)數(shù)格式如下:I

1位1位7位55位

em

所設(shè)計(jì)浮點(diǎn)數(shù)格式的主要性能如下:

最大尾數(shù)值:(1-^7)=(1-2-55)

11

絕對(duì)值最小的尾數(shù)值:

最大階碼:

最小階碼:

最大正數(shù):

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

(1-r

2,-1291“r1c-39

—"2=2=I.47x10

最大負(fù)數(shù):

浮點(diǎn)零:浮點(diǎn)零與機(jī)器零相同,64位全為0

表數(shù)效率:采用隱藏位,表數(shù)效率〃=100%

練習(xí)題:

2.22.32.52.62.10

2.142.15

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)

(第6講)

第二章指令系統(tǒng)

2.1數(shù)據(jù)表示

2.2尋址技術(shù)

2.3指令格式的優(yōu)化設(shè)計(jì)

2.4指令系統(tǒng)的功能設(shè)計(jì)

2.5RISC指令系統(tǒng)

2.2尋址技術(shù)

尋找操作數(shù)及其他信息的地址的技術(shù)稱為

尋址技術(shù)

內(nèi)容:編址方式、尋址方式和定位方式

對(duì)象:寄存器、主存儲(chǔ)器、堆棧

未口輸入輸出設(shè)備

方法:分析各種尋址技術(shù)的優(yōu)缺點(diǎn),

如何選擇和確定尋址技術(shù)

2.2.1編址方式222尋址方式

2.2.3定位方式

重點(diǎn)是尋址方式的選擇方法

2.2.1編址方式

編址方式是指對(duì)各種存儲(chǔ)設(shè)備進(jìn)行編碼的

方法。

主要內(nèi)容:編址單位、零地址空間個(gè)數(shù)、

并行存儲(chǔ)器的編址技術(shù)、輸入輸出設(shè)備

的編址技術(shù)

1、編址單位

常用的編址單位:字編址、字節(jié)編址、位

編址、塊編址等

編址單位與訪問字長

一般:字節(jié)編址,字訪問

部分機(jī)器:位編址,字訪問

輔助存儲(chǔ)器:塊編址

字節(jié)編址字訪問的優(yōu)缺點(diǎn)

有利于信息處理

地址信息浪費(fèi)、存儲(chǔ)器空間浪費(fèi)

讀寫邏輯稍復(fù)雜

o字節(jié)位置引起的問題

2、零地址空間個(gè)數(shù)

三個(gè)零地址空間:通用寄存器、主存儲(chǔ)器

和輸入輸出設(shè)備均獨(dú)立編址

兩個(gè)零地址空間:主存儲(chǔ)器與輸入輸出設(shè)

備統(tǒng)一編址

一個(gè)零地址空間:所有存儲(chǔ)設(shè)備統(tǒng)一編址,

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

出設(shè)備,中間為主存儲(chǔ)器

隱含編址方式,實(shí)際上沒有零地址空間:

堆棧、Cache等

3、輸入輸出設(shè)備的編址

一臺(tái)設(shè)備一個(gè)地址

一臺(tái)設(shè)備兩個(gè)地址:數(shù)據(jù)寄存器、狀態(tài)或

控制寄存器

多個(gè)需要編址的寄存器共用同一個(gè)地址的

方法:依靠地址內(nèi)部來區(qū)分,適用于被

編址的接口寄存器的長度比較短?!跋?/p>

跟法”隱含編址方式,必須按順序讀寫

寄存器。

-臺(tái)設(shè)備多個(gè)地址。對(duì)編程增加困難■

4、并行存儲(chǔ)器的編址技術(shù)■

高位交叉編址

主要目的是用來擴(kuò)大存儲(chǔ)器容量?!?/p>

低位交叉編址■

主要目的是提高存儲(chǔ)器速度。

222尋址方式

尋址方式:尋找操作數(shù)及數(shù)據(jù)存放單元的

方法。

主要內(nèi)容:設(shè)計(jì)思想和設(shè)計(jì)方法

1、尋址方式的設(shè)計(jì)思想

立即數(shù)尋址方式

用于數(shù)據(jù)比較短、源操作數(shù)

面向寄存器的尋址方式

OPCR

OPCR,R

OPCR,R,R

OPCR,M

面向主存儲(chǔ)器的尋址方式:

OPCM

OPCM,M

OPCM,M,M

面向堆棧的尋址方式:■■

OPC

OPCM

2、間接尋址方式與變址尋址方式的比較

目的相同:

都是為了解決操作數(shù)地址的修改問題

都能做到不改變程序而修改操作數(shù)地址

原則上,一種處理機(jī)中只需設(shè)置間址尋址

方式與變址尋址方式中的任何一種即可,

有些處理機(jī)兩種尋址方式都設(shè)置

如何選取間址尋址方式與變址尋址方式?

優(yōu)缺點(diǎn)怎樣?

例2.7:一個(gè)由N個(gè)元素組成的數(shù)組,已經(jīng)存

放在起始地址為AS的主存連續(xù)單元中,

現(xiàn)要把它搬到起始地址為AD的主存連續(xù)

單元中。不必考慮可能出現(xiàn)的存儲(chǔ)單元的

重疊問題。為了編程簡單,采用一般的兩

地址指令編寫程序。

解:用間接尋址方式編寫程序如下:

start:moveasr,asi保存源數(shù)組的起始地址

moveadr,adi保存目標(biāo)數(shù)組起始地址

movenum,ent保存數(shù)據(jù)的個(gè)數(shù)

loop:move@asi,@adi;用間址尋址方式傳送數(shù)據(jù)

incasi;源數(shù)組的地址增量

incadi目標(biāo)數(shù)組的地址增量

decent個(gè)教藏1

bgtloop測試n個(gè)數(shù)據(jù)是否傳送完

halt停機(jī)

asr:as源數(shù)組的起始地址

adr:ad目標(biāo)數(shù)組的起始地址

num:n需要傳送的數(shù)據(jù)個(gè)數(shù)

asi:0當(dāng)前正在傳送的源數(shù)組地址

都能做到不改變程序而修改操作數(shù)地址

原則上,一種處理機(jī)中只需設(shè)置間址尋址

方式與變址尋址方式中的任何一種即可,

有些處理機(jī)兩種尋址方式都設(shè)置

如何選取間址尋址方式與變址尋址方式?

優(yōu)缺點(diǎn)怎樣?

例2.7:一個(gè)由N個(gè)元素組成的數(shù)組,已經(jīng)存

放在起始地址為AS的主存連續(xù)單元中,

現(xiàn)要把它搬到起始地址為AD的主存連續(xù)

單元中。不必考慮可能出現(xiàn)的存儲(chǔ)單元的

重疊問題。為了編程簡單,采用一般的兩

地址指令編寫程序。

解:用間接尋址方式編寫程序如下:

start:moveasr,asi保存源數(shù)組的起始地址

moveadr,adi保存目標(biāo)數(shù)組起始地址

movenum,ent保存數(shù)據(jù)的個(gè)數(shù)

loop:move@asi,@adi;用間址尋址方式傳送數(shù)據(jù)

incasi;源數(shù)組的地址增量

incadi目標(biāo)數(shù)組的地址增量

decent個(gè)教藏1

bgtloop測試n個(gè)數(shù)據(jù)是否傳送完

halt停機(jī)

asr:as源數(shù)組的起始地址

adr:ad目標(biāo)數(shù)組的起始地址

num:n需要傳送的數(shù)據(jù)個(gè)數(shù)

asi:0當(dāng)前正在傳送的源數(shù)組地址

adi:0;當(dāng)前正在傳送的源數(shù)組地址

ent:0;剩余數(shù)據(jù)的個(gè)數(shù)

用變址尋址方式編寫程序如下:]

start:moveas,x;源數(shù)組起址送變址寄存器

movenum,ent;保存數(shù)據(jù)個(gè)數(shù),保證再入性

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

在匯編時(shí)計(jì)算

incx增量變址寄存器

decent個(gè)數(shù)減1

bgtloop測試n個(gè)數(shù)據(jù)是否傳送完成

halt停機(jī)

num:n需要傳送的數(shù)據(jù)個(gè)數(shù)

ent:0剩余數(shù)據(jù)的個(gè)數(shù)

主要優(yōu)缺點(diǎn)比較:

采用變址尋址方式編寫的程序簡單、易讀。

對(duì)于程序員,兩種尋址方式的主要差別是:

間址尋址方式:間接地址在主存儲(chǔ)器中,

沒有偏移量

變址尋址方式:基地址在變址寄存器中,

有偏移量

實(shí)現(xiàn)的難易程度:間址尋址方式容易

指令的執(zhí)行速度:間址尋址方式慢

對(duì)數(shù)組運(yùn)算的支持:變址尋址方式比較好

自動(dòng)變址:

在訪問間接地址過程中,地址自動(dòng)增減

變址與間址混合時(shí),兩種方式:

前變址尋址方式:EA=((X)+A)

后變址尋址方式:EA=(X)+(A)

3、寄存器尋址.

主要優(yōu)點(diǎn):指令字長短、指令執(zhí)行速度快、I

支持向量和矩陣運(yùn)算

主要缺點(diǎn):不利于優(yōu)化編譯、現(xiàn)場切換困難、

硬件復(fù)雜

4、堆棧尋址方式

主要優(yōu)點(diǎn):支持高級(jí)語言,有利與編譯程序;

節(jié)省存儲(chǔ)空間

支持程序的嵌套和遞歸調(diào)用,

支持中斷處理

主要缺點(diǎn):運(yùn)算速度比較低,棧頂部分設(shè)計(jì)

成一個(gè)高速的寄存器堆

2.2.3定位方式

程序的主存物理地址在什么時(shí)間確定?

采用什么方式來實(shí)現(xiàn)?I

程序需要定位的主要原因:程序的獨(dú)立性;

程序的模塊化設(shè)計(jì);數(shù)據(jù)結(jié)構(gòu)在程序運(yùn)行

過程中,其大小往往是變化的;有些程序

本身很大,大于分配給它的主存物理空間

直接定位方式:在程序裝入主存儲(chǔ)器之前,

程序中的指令和數(shù)據(jù)的主存物理就已經(jīng)

確定了的稱為直接定位方式。

靜態(tài)定位:在程序裝入主存儲(chǔ)器的過程中

隨即進(jìn)行地址變換,確定指令和數(shù)據(jù)的

主存物理地址的稱為靜態(tài)定位方式。

動(dòng)態(tài)定位:在程序執(zhí)行過程中,當(dāng)訪問到

相應(yīng)的指令或數(shù)據(jù)時(shí)才進(jìn)行地址變換,

確定指令和數(shù)據(jù)的主存物理地址的稱為

動(dòng)態(tài)定位方式。

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)

(第7講)

第二章指令系統(tǒng)

2.1數(shù)據(jù)表示

2.2尋址技術(shù)

2.3指令格式的優(yōu)化設(shè)計(jì)

2.4指令系統(tǒng)的功能設(shè)計(jì)

2.5RISC指令系統(tǒng)

2.3指令格式的優(yōu)化設(shè)計(jì)

主要目標(biāo):

節(jié)省程序的存儲(chǔ)空間

指令格式盡量規(guī)整,便于譯碼

研究內(nèi)容:

操作碼的優(yōu)化表示;地址碼的優(yōu)化表示

2.3.1指令的組成

2.3.2操作碼的優(yōu)化設(shè)計(jì)

2.3.3地址碼的優(yōu)化設(shè)計(jì)

2.3.4指令格式設(shè)計(jì)舉例

2.3.1指令的組成

一般的指令主要由兩部分組成:操作碼和地

址碼

操作碼主要包括兩部分內(nèi)容:

操作種類:力口、減、乘、除、數(shù)據(jù)傳送、

移位、轉(zhuǎn)移、輸入輸出

操作數(shù)描述:

數(shù)據(jù)的類型:定點(diǎn)數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù)、

字符、字符串、邏輯數(shù)、向量

進(jìn)位制:2進(jìn)制、10進(jìn)制、16進(jìn)制

數(shù)據(jù)字長:字、半字、雙字、字節(jié)

地址碼通常包括三部分內(nèi)容:

地址:

直接地址、間接地址、立即數(shù)、

寄存器編號(hào)、變址寄存器編號(hào)

地址的附加信息:

偏移量、塊長度、跳距

尋址方式:

直接尋址、間接尋址、立即數(shù)尋址、

變址尋址、相對(duì)尋址、寄存器尋址

2.3.2操作碼的優(yōu)化表示

操作碼的三種編碼方法:■

固定長度,Huffinan編碼、擴(kuò)展編碼

改進(jìn)操作碼編碼方式能夠節(jié)省程序存儲(chǔ)空間,

例如:Burroughs公司的B-1700機(jī)

操作碼整個(gè)操作系統(tǒng)所用改進(jìn)的

編碼方式指令由操作碼總蒞數(shù)百分比

8位定長編碼301,2480

4-6-10擴(kuò)展編碼184,96639%

Hu仔man編碼172,34643%

2、Huffman編碼法

1992年由Huffinan首先提出

操作碼的最短平均長度可通過下式計(jì)算:

i=1

其中:Pi表示第i種操作碼在程序中出現(xiàn)

的概率

固定長操作碼相對(duì)于

Huffman操作碼的-S2.log2Pi

信息冗余量為:log2n

例26假設(shè)一臺(tái)模型計(jì)算機(jī)共有7種不同的操

作碼,如果采用固定長操作碼需要3位。已

知各種操作碼在程序中出現(xiàn)的概率如下表,

計(jì)算采用Huffinan編碼法的操作碼平均長度,

并計(jì)算固定長操作碼和Huffman操作碼的信

息冗余量。

111213□ZJ151617

概率0.450.300.150.050.030.010.01

利用Huffinan樹進(jìn)行操作碼編碼的方法,又

稱為最小概率合并法。

1.把所有指令按照操作碼在程序中出現(xiàn)的概率,

自左向右從排列好。

2.選取兩個(gè)概率最小的結(jié)點(diǎn)合并成一個(gè)概率值

是二者之和的新結(jié)點(diǎn),并把這個(gè)新結(jié)點(diǎn)與其

它還沒有合并的結(jié)點(diǎn)一起形成新結(jié)點(diǎn)集合。

3.在新結(jié)點(diǎn)集合中選取兩個(gè)概率最小的結(jié)點(diǎn)進(jìn)

行合并,如此繼續(xù)進(jìn)行下去,直至全部結(jié)點(diǎn)

合并完畢。

4.最后得到的根結(jié)點(diǎn)的概率值為1。I

5.每個(gè)結(jié)點(diǎn)都有兩個(gè)分支,分別用一位代碼J

“0"和"1"表示。

6.從根結(jié)點(diǎn)開始,沿尖頭所指方向,到達(dá)屬于

該指令的概率結(jié)點(diǎn),把沿線所經(jīng)過的代碼組

合起來得到這條指令的操作碼編碼。

解:采用Huffinan編碼法所得到的操作碼的平

均長度

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

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

采用最優(yōu)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

指令序號(hào)概率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、擴(kuò)展編碼法B

Huffman操作碼的主要缺點(diǎn):

操作碼長度很不規(guī)整,硬件譯碼困難

與地址碼共同組成固定長的指令比較困難

擴(kuò)展編碼法:由固定長操作碼與Huffinan編碼

法相結(jié)合形成

例如:例2.7改為1-2-3-5擴(kuò)展編碼法,其

操作碼最短平均長度為:

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條指令的操作碼擴(kuò)展編碼法

序號(hào)|概率11-235擴(kuò)展編碼|2-4等長擴(kuò)展編碼

Ix0.45000

120.301001

130.1511010

i40.05moonoo

i0.03moinoi

J5

i6o.oiunomo

i7o.oimilIm

平均長度2022

信息冗余量25%11.4%

等長15/15/15.........擴(kuò)展編碼法

操作碼編碼說明

0000

00014位長度的操作碼

...共15種

1110

11110000

111100018位長度的操作碼

...共15種

11111110

111111110000

11111111000112位長度的操作碼

...共16種

111111111110

指令序號(hào)概率Huffman編碼法操作碼長度

110.4501位

0.30102位

130.151103

0.0511104位

L0.03111105位

160.011111106

170.0111111116

采用3位固定長操作

“35%

碼的信息冗余量為:log273

等長8/64/512……擴(kuò)展編碼法

操作碼編碼說明

0000

00014位長度的操作碼

...共8種

0111

10000000

100000018位長度的操作碼

...共64種

11110111

100010000000

10001000000112位長度的操作碼

...共512種

111111110111

不等長操作碼(4/6/10)擴(kuò)展編碼法

指令操作碼的長度指令

編碼方法

4位6位10位種類

15/3/161531634

8/31/168311655

8/30/328303270

8/16/256816256280

4/32/256432256292

2.3.4指令格式設(shè)計(jì)舉例

指令的長度:有固定長度和可變長度兩種[

操作碼長度:有固定長度和可變長度兩種]

例如:

IBM370系列機(jī),操作碼長度固定:8位

指令長度有16位、32位和48位等多種

地址個(gè)數(shù)以兩地址為主

16個(gè)通用寄存器可兼做變址寄存器和基址

寄存器使用

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)

(第8講)

第二章指令系統(tǒng)

2.1數(shù)據(jù)表示

2.2尋址技術(shù)

2.3指令格式的優(yōu)化設(shè)計(jì)

2.4指令系統(tǒng)的功能設(shè)計(jì)

2.5RISC指令系統(tǒng)

2.4指令系統(tǒng)的功能設(shè)計(jì)

完整性、規(guī)整性、高效率和兼容性■

2.3.1指令的組成

五類:數(shù)據(jù)傳送,運(yùn)算,程序控制,輸入

輸出,處理機(jī)控制和調(diào)試

1、數(shù)據(jù)傳送類指令

由如下三個(gè)主要因素決定:

數(shù)據(jù)存儲(chǔ)設(shè)備的種類

數(shù)據(jù)單位:字、字節(jié)、位、數(shù)據(jù)塊等

采用的尋址方式

指令種類(以字為傳送單位,不考慮尋址

方式等):

通用寄存器n通用寄存器

通用寄存器n主存儲(chǔ)器

通用寄存器n堆棧

主存儲(chǔ)器n通用寄存器

主存儲(chǔ)器n主存儲(chǔ)器

主存儲(chǔ)器n堆棧

堆棧n通用寄存器

堆棧n主存儲(chǔ)器

2、運(yùn)算類指令

考慮四個(gè)因數(shù)的組合:|■

(1)操作種類:力口、減、乘、除、與、

或、非、異或、比較、移位、檢索、轉(zhuǎn)

換、匹配、清除、置位等

(2)數(shù)據(jù)表示:定點(diǎn)、浮點(diǎn)、邏輯、十

進(jìn)制、字符串、定點(diǎn)向量等

(3)數(shù)據(jù)長度:字、雙字、半字、字節(jié)、

位、數(shù)據(jù)塊等

(4)、數(shù)據(jù)存藁備:通用寄存器、主存

儲(chǔ)器、堆棧等

以加法指令為例,一般應(yīng)設(shè)置如下幾種:

寄存器-寄存器型的定點(diǎn)單字長加法指令

寄存器-寄存器型的定點(diǎn)雙字長加法指令

寄存器-寄存器型的定點(diǎn)半字加法指令

寄存器-寄存器型的字節(jié)加法指令

寄存器-寄存器型的浮點(diǎn)單字長加法指令

寄存器-寄存器型的浮點(diǎn)雙字長加法指令

寄存器-寄存器型的單字長邏輯加法指令

寄存器-寄存器型的定點(diǎn)向量加法指令

寄存器-寄存器型的浮點(diǎn)向量加法指令

移位指令,要組合以下三個(gè)因素:

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

移位種類:算術(shù)移位(A)、邏輯移位(L)、

循環(huán)移位(R)

移位長度:單字長(S)、雙字長(D)

組合起來共有:3X2X2=12種,因邏輯

左移與算術(shù)左移相同,因此移位指令應(yīng)

該有10種,分別是:

SLAS單字長算術(shù)左移

SRAS單字長算術(shù)右移

SLLS(SRLS)單字長邏輯左移,

或單字長算術(shù)左移

SLRS單字長循環(huán)左移

SRRS單字長循環(huán)右移

SLAD雙字長算術(shù)左移

SRAD雙字長算術(shù)右移

SLLD(SRLD)雙字長邏輯左移,

或雙字長算術(shù)左移

SLRD雙字長循環(huán)左移

SRRD雙字長循環(huán)右移

位操作指令:置位、清位、位測試、找位等

字符串指令:比較、查找、匹配、轉(zhuǎn)換等

3、程序控制指令

主要包括三類:轉(zhuǎn)移指令、調(diào)用和返回指令、

循環(huán)控制指令

轉(zhuǎn)移條件有:零(Z)、正負(fù)(N)、進(jìn)位(C)、

溢出(V)及它們的組合

主要條件轉(zhuǎn)移指令有:

BEQ等于零轉(zhuǎn)移

BNEQ不等于零轉(zhuǎn)移

BLS小于轉(zhuǎn)移

BGT大于轉(zhuǎn)移

BLEQ小于等于轉(zhuǎn)移,或不大于轉(zhuǎn)移

BGEQ大于等于轉(zhuǎn)移,或不小于轉(zhuǎn)移

BLSU不帶符號(hào)小于轉(zhuǎn)移

BGTU不帶符號(hào)大于轉(zhuǎn)移

BLEQU不帶符號(hào)小于等于轉(zhuǎn)移,

或不帶符號(hào)不大于轉(zhuǎn)移

BGEQU不帶符號(hào)大于等于轉(zhuǎn)移,

或不帶符號(hào)不小于轉(zhuǎn)移

BCC沒有進(jìn)位轉(zhuǎn)移

BCS有進(jìn)位轉(zhuǎn)移

BVC沒有溢出轉(zhuǎn)移

BVS有溢出轉(zhuǎn)移

程序調(diào)用和返回指令:

CALL轉(zhuǎn)入子程序

RETURN從子程序返回,

本身可以帶有條件

中斷控制指令

開中斷、關(guān)中斷、改變屏蔽、

中斷返回、自陷等[

4、輸入輸出指令

主要有:

啟動(dòng)、停止、測試、控制設(shè)備,數(shù)據(jù)輸入、

輸出操作等采用單一的直接尋址方式,

在多用戶或多任務(wù)環(huán)境下,輸入輸出指令屬

于特權(quán)指令

也可以不設(shè)置輸入輸出指令,輸入輸出設(shè)備

與主存儲(chǔ)器共用同一個(gè)零地址空間

5、處理機(jī)控制和調(diào)試指令

處理機(jī)狀態(tài)切換指令

處理機(jī)至少有兩個(gè)或兩個(gè)以上狀態(tài)

硬件和軟件的調(diào)試指令■

硬件調(diào)試指令:

鑰匙位置、開關(guān)狀態(tài)的讀取寄存器

和主存單元的顯示等

軟件調(diào)試指令:

斷點(diǎn)的設(shè)置、跟蹤,自陷井指令等

2.4.2指令系統(tǒng)性能

完整性是指應(yīng)該具備的基本指令種類,通用

計(jì)算機(jī)必須有5類基本指令

規(guī)整性包括對(duì)稱性和均勻性

對(duì)稱性:所有寄存器頭等對(duì)待操作碼的設(shè)

置等都要對(duì)標(biāo),如:A—B與B—A

均勻性:不同的數(shù)據(jù)類型、字長、存儲(chǔ)設(shè)

備、操作種類要設(shè)置相同的指令

高效率:指令的執(zhí)行速度要快;指令的使用

頻度要高;各類指令之間要有一定的比例

兼容性:在同一系列機(jī)內(nèi)指令系統(tǒng)不變(可

以適當(dāng)增加)

2.4.3指令系統(tǒng)的優(yōu)化設(shè)計(jì)

指令系統(tǒng)的優(yōu)化設(shè)計(jì)有兩個(gè)截然相反的方向:

1.復(fù)雜指令系統(tǒng)計(jì)算機(jī)CISC

(ComplexInstructionSetComputer)

增強(qiáng)指令功能,設(shè)置功能復(fù)雜的指令

面向目標(biāo)代碼、高級(jí)語言和操作系統(tǒng)

用一條指令代替一串指令

2.精簡指令系統(tǒng)計(jì)算機(jī)RISC

(ReducedInstructionSetComputer)

只保留功能簡單的指令

功能較復(fù)雜的指令用子程序來實(shí)現(xiàn)■

下一節(jié)主要介紹RISC

第二章指令系統(tǒng)

2.1數(shù)據(jù)表示

2.2尋址技術(shù)

2.3指令格式的優(yōu)化設(shè)計(jì)

2.4指令系統(tǒng)的功能設(shè)計(jì)

2.5RISC指令系統(tǒng)

2.5精簡指令系統(tǒng)計(jì)算機(jī)RISC

2.5.1從CISC到RISC

70年代,指令系統(tǒng)已非常龐大,指令功能

相當(dāng)復(fù)雜(見下頁表)。

1975年,IBM公司率先組織力量開始研究指

令系統(tǒng)的合理性問題

1979年研制出世界上第一臺(tái)采用RISC思想

的計(jì)算機(jī)IBM801

1986年,IBM正式推出采用RISC體系結(jié)構(gòu)

的工作站IBMRTPC

機(jī)型IBM370/168VAX-11iAPX432

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

指令種類~~208~~~~303~~~~222~~

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

指令長度~~1648~~16?4566-321~~

制造工藝ECLMSITTLMSINMOSVLSI

指令操M(fèi)em-MemMem-Mem面向堆棧

作類型Mem-RegMem-RegMem-Mem

Reg-RegReg-Reg

Cache容量~~64K~~64K0

CISC指令系統(tǒng)存在的問題:

DavidPatterson,UCBerkeley,1979

20%^80%HMM

CISC中,大約20%的指令占據(jù)了80%的處理

機(jī)時(shí)間。8088處理機(jī)的指令種類約100種

前11種(11%)指令的使用頻度已經(jīng)

超過80%

前8種(8%)指令的運(yùn)行時(shí)間已經(jīng)超

過80%

前20種(20%)指令:使用頻度達(dá)到

91.1%,運(yùn)行時(shí)間達(dá)至U97.72%

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

只占2.28%的處理機(jī)運(yùn)行時(shí)間

2、VLSI技術(shù)的發(fā)展引起的問題

VLSI工藝要求規(guī)整性

RISC正好適應(yīng)了VLSI工藝的要求

主存與控存的速度相當(dāng)

簡單指令沒有必要用微程序?qū)崿F(xiàn),復(fù)雜指

令用微程序?qū)崿F(xiàn)與用簡單指令組成的子程

序?qū)崿F(xiàn)沒有多大區(qū)別;由于VLSI的集成

度迅速提高,使得生產(chǎn)單芯片處理機(jī)成為

可能。

3、軟硬件的功能分配問題

復(fù)雜的指令使指令的執(zhí)行周期大大加長

一般CISC處理機(jī)的指令平均執(zhí)行周期都

在4以上,有些在10以上

CISC增強(qiáng)了指令系統(tǒng)功能,簡化了軟件,但

硬件復(fù)雜了

1981年P(guān)atterson等人研制了32位RISCI微

處理器,共31種指令,3種數(shù)據(jù)類型,2種

尋址方式;研制周期10個(gè)月,比當(dāng)時(shí)最先

進(jìn)的MC68000和Z8002快3至4倍;1983年

又研制了Risen,指令種類擴(kuò)充到39種,

單一的變址尋址方式,通用寄存器138個(gè)

2.5.2RISC的定義與特點(diǎn)

卡內(nèi)基梅隆大學(xué)(CarnegieMellon)論述

RISC的特點(diǎn):

1、大多數(shù)指令在單周期內(nèi)完成■

2、LOAD/STORE結(jié)構(gòu)

3、硬布線控制邏輯

4、減少指令和尋址方式的種類

5、固定的指令格式

6、注重編譯優(yōu)化技術(shù)

90年代初,IEEE的MichaelSlater對(duì)RISC定義的

描述:

1、RISC為使流水線高效率執(zhí)行,應(yīng)具有:

簡單而統(tǒng)一格式的指令譯碼

大部分指令可以單周期執(zhí)行完成

僅Load和Store指令可以訪問存儲(chǔ)器

簡單的尋址方式

采用延遲轉(zhuǎn)移技術(shù)

采用LOAD延遲技術(shù)

2、RISC為使優(yōu)化編譯器便于生成優(yōu)化代碼,

應(yīng)具有:三地址指令格式、較多的寄存器、

對(duì)稱的指令格式

2.5.3減少CPI是RISC思想的精華

程序執(zhí)行時(shí)間的計(jì)算公式:

P=I-CPI-T

其中:

八P是執(zhí)行這個(gè)程序所使用的總的時(shí)間;

I是這個(gè)程序所需執(zhí)行的總的指令條數(shù);

CPI(CyclesPerInstruction)是每條指令執(zhí)

行的平均周期數(shù)

T是一個(gè)周期的時(shí)間長度。

RISC的速度要比CISC快3倍左右,關(guān)鍵是

RISC的CPI減小了

來刑指令條數(shù)指令平均周周期時(shí)間

大上I期數(shù)CPIT

CISCI2-1533ns?5rLs

RISc|1.3?1.41.1?1.4110ns?獲"

硬件方面:

采用硬布線控制邏輯,減少指令和尋址

方式的種類,使用固定的指令格式,采

用LOAD/STORE結(jié)構(gòu),指令執(zhí)行過程中

設(shè)置多級(jí)流水線等。

軟件方面:十分強(qiáng)調(diào)優(yōu)化編譯技術(shù)的作用

RISC設(shè)計(jì)思想也可以用于CISC中

例如:Intel公司的80x86處理機(jī)的CPI在

不斷縮小,

8088的CPI大于20

80286的CPI大約是5.5

80386的CPI進(jìn)一步減小到4左右

80486的CPI已經(jīng)接近2

Pentium處理機(jī)的CPI已經(jīng)與RISC

十分接近

目前,超標(biāo)量、理流水線處理機(jī)的CPI已經(jīng)

達(dá)到05實(shí)際上用IPC(InstructionPer

Cycle)更確切。

2.5.4RISC的關(guān)鍵技術(shù)

1、延時(shí)轉(zhuǎn)移技術(shù)

定義:為了使指令流水線不斷流,在轉(zhuǎn)移

指令之后插入一條不相關(guān)的有效的指令,

而轉(zhuǎn)移指令被延遲執(zhí)行,這種技術(shù)稱為

延遲轉(zhuǎn)移技術(shù)。

采用指令延遲轉(zhuǎn)移技術(shù)時(shí),指令序列的調(diào)

整由編譯器自動(dòng)進(jìn)行。

1:addr1,r2FE/產(chǎn)生轉(zhuǎn)移地址

2:jmpnext2FE/Z—指令作廢

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

n:next2:mover4,aFE

因轉(zhuǎn)移指令引起的流水線斷流

產(chǎn)生轉(zhuǎn)移地址

1:jmpnext2----插入指令

2:addr1,r2一下IE

3:nextl:subr3,r4

重新取指令

n:next2:mover4,aFE

采用指令延遲轉(zhuǎn)移技術(shù)的指令流水線

采用延遲轉(zhuǎn)移技術(shù)的兩個(gè)限制條件

(1)被移動(dòng)指令在移動(dòng)過程中與所經(jīng)

過的指令之間不能有數(shù)據(jù)相關(guān)

(2)被移動(dòng)指令不破壞條件碼,至少

不影響后面的指令使用條件碼I

如果找不到符合條件的指令,必須在

條件轉(zhuǎn)移指令后面插入空操作;如果指

令的執(zhí)行過程分為多個(gè)流水段,則要插

入多條指令

調(diào)整前的指令序列:

1:mover1,r2

2:cmpr3,r4;(r3)與(r4)比較

3:beqexit;如果(r3)=(r4)則轉(zhuǎn)移到next

4:addr4,巧

n:next:mover4,a

調(diào)整后的指令序列:

1:cmpr3,r4;(r3)與(r4)比較

2:beqexit;如果(r3)=(r4)則轉(zhuǎn)移到next

3:mover15r2

4:addr4,r5

n:next:mover4,a

2、指令取消技術(shù)I

采用指令延時(shí)技術(shù),在許多情況下找不到

可以用來調(diào)整的指令;分為三種情況:

(1)向后轉(zhuǎn)移(循環(huán)程序)

實(shí)現(xiàn)方法:循環(huán)體的第一條指令經(jīng)調(diào)整

后安排在兩個(gè)位置,第一個(gè)位置是在循

環(huán)體的前面,第二個(gè)位置安排在循環(huán)體

的后面。

如果轉(zhuǎn)移成功,則執(zhí)行循環(huán)體后面的指

令,然后返回到循環(huán)體開始;否則,則

取消循環(huán)體后面的指令,繼續(xù)執(zhí)行后面

的指令。例子:

調(diào)整前調(diào)整后

loop:XXXXXX

YYYloop:YYY

zzzZZZ

cmpr1,r2,loopcmpr1,r2,loop

WWWXXX

WWW

效果:能夠使指令流水線在絕大多數(shù)情

況下不斷流,由于絕大多數(shù)情況下,轉(zhuǎn)

移是成功的。

(2)向前轉(zhuǎn)移(if-then)

實(shí)現(xiàn)方法:如果轉(zhuǎn)移不成功執(zhí)行下條指

令,否則取消下條指令。例子:

RRR

SSS斤部分的程序代碼

cmpr1,r2,thru若轉(zhuǎn)移,則取消TTT

TTT若不轉(zhuǎn)移,則執(zhí)行TT1

Then部分的程序代碼

UUU;Then部分的程序代碼

thru:VW

效果:成功與不成功的概率通常各為50%

⑶隱含轉(zhuǎn)移技術(shù)

應(yīng)用場合:用于if?.then..結(jié)構(gòu),且then部分

只有一條指令

R現(xiàn)方或:把IF的條件取反,如果取反后

的條件成立則取消下條指令,否則執(zhí)行下

條指令。

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

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

下條指令

incrb

3、重疊寄存器窗口技術(shù)

(OverlappingRegisterWindow)

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

參數(shù)而訪問存儲(chǔ)器的信息量很大

美國加洲大學(xué)伯克利分校的F.Baskett提出|

實(shí)現(xiàn)方法:

設(shè)置一個(gè)數(shù)量比較大的寄存器堆,并把它

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

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

下條指令

incrb

3、重疊寄存器窗口技術(shù)

(OverlappingRegisterWindow)

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

參數(shù)而訪問存儲(chǔ)器的信息量很大

美國加洲大學(xué)伯克利分校的F.Baskett提出|

實(shí)現(xiàn)方法:

設(shè)置一個(gè)數(shù)量比較大的寄存器堆,并把它

劃分成很多個(gè)窗口。在每個(gè)過程使用的

幾個(gè)窗口中有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論