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

下載本文檔

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

文檔簡(jiǎn)介

有一指令流水線如下所示

入T1I2I3I4出

50ns50ns100ns200ns

(1)求連續(xù)輸入10條指令,該流水線的實(shí)際吞吐率和效率;

(2)該流水線的“瓶頸”在哪一段請(qǐng)采取兩種不同的措施消除此“瓶

頸”。對(duì)于你所給出的兩種新的流水線,連續(xù)輸入10條指令時(shí),其實(shí)

際吞吐率和效率各是多少

解:(1)

Tpipcline=^Ati+(n-l)Atmax

i=l

=(50+50+100+200)+9x200

=2200(ns)

TP=%M『%20(Z)

yAt.

,140()S

E=TP且一=TP—=—^45.45%

m411

(2)瓶頸在3、4段。

變成八級(jí)流水線(細(xì)分)

in

Tpipeline=):Ati+(0-1)Atinax

i=l

=50x8+9x50

=85()(ns)

TP=%pi=%5(2)

m

VAti

—40010

E=TP—=TP—=—?58.82%

m817

重復(fù)設(shè)置部件

E=40()X%50X8=%-58-82%

有一

組成,其

段時(shí),總

次,然后才能流到第4段。如果每段經(jīng)過一次所需要的時(shí)間都是加,問:

(1)當(dāng)在流水線的輸入端連續(xù)地每時(shí)間輸入任務(wù)時(shí),該流水線會(huì)發(fā)生

什么情況

(2)此流水線的最大吞吐率為多少如果每24輸入一個(gè)任務(wù),連續(xù)處理

10個(gè)任務(wù)時(shí)的實(shí)際吞吐率和效率是多少

(3)當(dāng)每段時(shí)間不變時(shí),如何提高該流水線的吞吐率仍連續(xù)處理10個(gè)任

務(wù)時(shí),其吞吐率提高多少

解:(1)會(huì)發(fā)生流水線阻塞情況。

第1個(gè)

S1S2S3S3S4

任務(wù)

第2個(gè)

S1S2sta11S3S3S4

任務(wù)

第3個(gè)S1staIIS2staIIS3S3S4

任務(wù)

第4個(gè)

S1staIIS2staIIS3S3S4

任務(wù)

(2)

TP

max2A/

^pipeline=23加

TP=%i=%3加

AE=TP-5M=5%2工54.35%

(3)重復(fù)設(shè)置部件

14A/

^=1.61

18A/

該流水線的效率可由陰影區(qū)的面積和5個(gè)段總時(shí)空區(qū)的面積的比值求得:

八EQ

=0.322

5x18

動(dòng)態(tài)多功能流水線由6個(gè)功能段組成,如下圖:

加法

乘法

其中,SKS4、S5、S6組成乘法流水線,SbS2、S3、S6組成加法流水線,

各個(gè)功能段時(shí)間均為50ns,假設(shè)該流水線的輸出結(jié)果可以直接返回輸入端,而

且設(shè)置有足夠的緩沖寄存器,若以最快的方式用該流水計(jì)算:之xyz.

i=l

(1)畫出時(shí)空?qǐng)D;

(2)計(jì)算實(shí)際的吞吐率、加速比和效率。

解:機(jī)器一共要做10次乘法,4次加法。

22At

TP=22A7

加速比=藥=2.55

效率=黑"=4Z42%

//入O

在MIPS流水線上運(yùn)行如下代碼序列:

LOOP:LWR1,0(R2)

DADDIUR1,R1,#1

SWR1,0(R2)

DADDIUR2,R2,#4

DSUBR4,R3,R2

BNEZR4,LOOP

其中:R3的初值是R2+396。假設(shè):在整個(gè)代碼序列的運(yùn)行過程中,所有

的存儲(chǔ)器訪問都是命中的,并且在一個(gè)時(shí)鐘周期中對(duì)同一個(gè)寄存器的讀操作和寫

操作可以通過寄存器文件“定向”。問:

(D在沒有任何其它定向(或旁路)硬件的支持下,請(qǐng)畫出該指令序列

執(zhí)行的流水線時(shí)空?qǐng)D。假設(shè)采用排空流水線的策略處理分支指令,且

所有的存儲(chǔ)器訪問都命中Cache,那么執(zhí)行上述循環(huán)需要多少個(gè)時(shí)鐘周

(2)假設(shè)該流水線有正常的定向路徑,請(qǐng)畫出該指令序列執(zhí)行的流水線

時(shí)空?qǐng)D。假設(shè)采用預(yù)測(cè)分支失敗的策略處理分支指令,且所有的存儲(chǔ)

器訪問都命中Cache,那么執(zhí)行上述循環(huán)需要多少個(gè)時(shí)鐘周期

(3)假設(shè)該流水線有正常的定向路徑和一個(gè)單周期延遲分支,請(qǐng)對(duì)該循

環(huán)中的指令進(jìn)行調(diào)度,你可以重新組織指令的順序,也可以修改指令

的操作數(shù),但是注意不能增加指令的條數(shù)。請(qǐng)畫出該指令序列執(zhí)行的

流水線時(shí)空?qǐng)D,并計(jì)算執(zhí)行上述循環(huán)所需要的時(shí)鐘周期數(shù)。

解:

寄存器讀寫可以定向,無其他旁路硬件支持。排空流水線。

指令12345678910111213141516171819202122

LWIFIDEXMWB

DADDIUIFSSIDEXMWB

SWIFSIDEXMWB

DADDIUIFIDEXMWB

DSUBIFSSIDEXMWB

BNEZIFSSIDEXMWB

LWIFSSIFIDEXMWB

第i次迭代(i=0..98)開始周期:1+(iX17)

總的時(shí)鐘周期數(shù):(98X17)+18=1684

有正常定向路徑,預(yù)測(cè)分支失敗。

指令12345678910111131415

LWIFIDEXMWB

DADDIUIFIDSEXMWB

SWIFSIDEXMWB

DADDIUIFIDEXMWB

DSUBIFIDEXMWB

BNEZIFIDEXMWB

LWIFmissmissIFIDEXMWB

第i次迭代(i=O..98)開始周期:1+(iX1O)

總的時(shí)鐘周期數(shù):(98X10)+11=991

有正常定向路徑。單周期延遲分支。

LOOP:LWR1,0(R2)

DADDIUR2,R2,#4

DADDIUR1,R1,#1

DSUBR4,R3,R2

BNEZR4,LOOP

SWR1,-4(R2)

第i次迭代(i=0.,98)開始周期:1+(iX6)

總的時(shí)鐘周期數(shù):(98X6)+10=598

指令I(lǐng)I234567891011

LWIFIDEXMWB

DADDIUIFIDEXMWB

DADDIUIFIDEXMWB

DSUBIFIDEXMWB

BNEZIFIDEXMWB

SWIFIDEXMWB

LWIFIDEXMWB

假設(shè)各種分支指令數(shù)占所有指令數(shù)的百分比如下:

條件分支20%(其中的60席是分支成功的)

跳轉(zhuǎn)和調(diào)用5%

現(xiàn)有一條段數(shù)為4的流水線,無條件分支在第二個(gè)時(shí)鐘周期結(jié)束時(shí)就被解析

出來,而條件分支要到第三個(gè)時(shí)鐘周期結(jié)束時(shí)才能夠被解析出來。第一個(gè)流水段

是完全獨(dú)立于指令類型的,即所有類型的指令都必須經(jīng)過第一個(gè)流水段的處理。

請(qǐng)問在沒有任何控制相關(guān)的情況下,該流水線相對(duì)于存在上述控制相關(guān)情況下的

加速比是多少

解:沒有控制相關(guān)時(shí)流水線的平均CPI=1

存在控制相關(guān)時(shí):由于無條件分支在第二個(gè)時(shí)鐘周期結(jié)束時(shí)就被解析出來,

而條件分支

要到第3個(gè)時(shí)鐘周期結(jié)束時(shí)才能被解析出來。所以:

(1)若使用排空流水線的策略,則對(duì)于條件分支,有兩個(gè)額外的stall.

對(duì)無條件分支,有一個(gè)額外的stall:

CPI=1+20%*2+5%*1=

加速比S=CP1/1=

(2)若使用預(yù)測(cè)分支成功策略,則對(duì)于不成功的條件分支,有兩個(gè)額外的

stalI,對(duì)無條件分支和成功的條件分支,有一個(gè)額外的stalI1:

CPI=1+20%*(60%*1+40%*2)+5%*1=

加速比S=CPI/1=

(3)若使用預(yù)測(cè)分支失敗策略,則對(duì)于成功的條件分支,有兩個(gè)額外的

stall;對(duì)無條件分支,有一個(gè)額外的stall;對(duì)不成功的條件分支,其目標(biāo)地

址已經(jīng)由PC值給出,不必等待,所以無延遲:

CPI=1+20%*(60%*2+40%*0)+5%*1=

加速比SRPI/1=

假設(shè)對(duì)指令Cache的訪問占全部訪問的75%;而對(duì)數(shù)據(jù)Cache的訪問占全

部訪問的25%。Cache的命中時(shí)間為1個(gè)時(shí)鐘周期,失效開銷為50個(gè)時(shí)鐘周期,

在混合Cache中一次load或store操作訪問Cache的命中時(shí)間都要增加一個(gè)時(shí)

鐘周期,32KB的指令Cache的失效率為%,32KB的數(shù)據(jù)Cache的失效率為需64KB

的混合Cache的失效率為機(jī)又假設(shè)采用寫直達(dá)策略,且有一個(gè)寫緩沖器,并且

忽略寫緩沖器引起的等待。試問指令Cache和數(shù)據(jù)Cache容量均為32KB的分離

Cache和容量為64KB的混合Cache相比,哪種Cache的失效率更低兩種情況下

平均訪存時(shí)間各是多少

解:(1)根據(jù)題意,約75%的訪存為取指令。

因此,分離Cache的總體失效率為:(75%X%)+(25%X%)=%;

容量為128KB的混合Cache的失效率略低一些,只有%。

(2)平均訪存時(shí)間公式可以分為指令訪問和數(shù)據(jù)訪問兩部分:

平均訪存時(shí)間=指令所占的百分比X(讀命中時(shí)間+讀失效率X失效開銷)

+數(shù)據(jù)所占的百分比X(數(shù)據(jù)命中時(shí)間+數(shù)據(jù)失效率X失效開

銷)

所以,兩種結(jié)構(gòu)的平均訪存時(shí)間分別為:

分離Cache的平均訪存時(shí)間=75%X(1+%X50)+25%X(1+%X50)

=(75%X)+(25%X)=

混合Cache的平均訪存時(shí)間=75%X(1+%X50)+25%X(1+1+%X50)

=(75%X)+(25%X)=

因此,盡管分離Cache的實(shí)際失效率比混合Cache的高,但其平均訪存時(shí)間

反而較低。分離Cache提供了兩個(gè)端口,消除了結(jié)構(gòu)相關(guān)。

給定以下的假設(shè),試計(jì)算直接映象Cache和兩路組相聯(lián)Cache的平均訪問

時(shí)間以及CPU的性能。由計(jì)算結(jié)果能得出什么結(jié)論

(1)理想Cache情況下的CPI為,時(shí)鐘周期為2ns,平均每條指令訪存次;

(2)兩者Cache容量均為64KB,塊大小都是32字節(jié);

(3)組相聯(lián)Cache中的多路選擇器使CPU的時(shí)鐘周期增加了10%;

(4)這兩種Cache的失效開銷都是80ns;

(5)命中時(shí)間為1個(gè)時(shí)鐘周期;

(6)64KB直接映象Cache的失效率為%,64KB兩路組相聯(lián)Cache的失效

率為%。

解:平均訪問時(shí)間=命中時(shí)間+失效率X失效開銷

平均訪問時(shí)間一路二+%*80=

平均訪問時(shí)間2路二*(1+10%)+%*80=

兩路組相聯(lián)的平均訪問時(shí)間比較低

CPUtimc=(CPU執(zhí)行+存儲(chǔ)等待周期)*時(shí)鐘周期

CPUtim=IC(CPI執(zhí)行+總失效次數(shù)/指令總數(shù)*失效開銷)*時(shí)鐘周期

=IC((CPI執(zhí)行*時(shí)鐘周期)+(每條指令的訪存次數(shù)*失效率*失效開銷*時(shí)鐘

周期))

CPUtime1F-IC*2+**80)=

CPUtimt2.?=IC*2+**80)=

CPU

相對(duì)性能比:蟲""二=

JCP'Uulime-1way

直接映象cache的訪問速度比兩路組相聯(lián)cache要快倍,而兩路組相聯(lián)

Cache的平均性能比直接映象cache要高倍。因此這里選擇兩路組相聯(lián)。

假設(shè)一臺(tái)計(jì)算機(jī)具有以下特性:

(1)95%的訪存在Cache中命中;

(2)塊大小為兩個(gè)字,且失效時(shí)整個(gè)塊被調(diào)入;

(3)CPU發(fā)出訪存請(qǐng)求的速率為IO。字/s;

(4)25%的訪存為寫訪問;

(5)存儲(chǔ)器的最大流量為IO,字/s(包括讀和寫);

(6)主存每次只能讀或?qū)懸粋€(gè)字;

(7)在任何時(shí)候,Cache中有30%的塊被修改過;

(8)寫失效時(shí),Cache采用按寫分配法。

現(xiàn)欲給該計(jì)算機(jī)增添一臺(tái)外設(shè),為此首先想知道主存的頻帶已用了多少。試

對(duì)于以下兩種情況計(jì)算主存頻帶的平均使用比例。

(1)寫直達(dá)Cache;

(2)寫回法Cache。

解:采用按寫分配

(1)寫直達(dá)cache訪問命中,有兩種情況:

讀命中,不訪問主存;

寫命中,更新cache和主存,訪問主存一次。

訪問失效,有兩種情況:

讀失效,將主存中的塊調(diào)入cache中,訪問主存兩次;

寫失效,將要寫的塊調(diào)入cache,訪問主存兩次,再將修改的數(shù)

據(jù)寫入cache和主存,訪問主存一次,共三次。上述分析如下表所示。

訪問命中訪問類頻率訪存次

型數(shù)

Y讀95%*75%=%0

Y弓95%*25%=%1

N讀5%*75%=%2

N弓5%*25%=%3

一次訪存請(qǐng)求最后真正的平均訪存次數(shù)=%*0))+%*2)+%*3)=

已用帶寬二X1(//IO9=%

(2)寫回法cache訪問命中,有兩種情況:

讀命中,不訪問主存;

寫命中,不訪問主存。采用寫回法,只有當(dāng)修改的cache塊被換

出時(shí),才寫入主存;

訪問失效,有一個(gè)塊將被換出,這也有兩種情況:

如果被替換的塊沒有修改過,將主存中的塊調(diào)入cache塊中,訪問主存

兩次;

如果被替換的塊修改過,則首先將修改的塊寫入主存,需要訪問主存兩

次;然后將主存中的塊調(diào)入cache塊中,需要訪問主存兩次,共四次訪問主

存。

訪問命中塊為臟頻率訪存次

數(shù)

YN95%*70%=%0

YY95%*30%=%0

NN5%*70%=%2

NY5%*30%=%4

所以:

一次訪存請(qǐng)求最后真正的平均訪存次數(shù)=%*0+%*0+%*2+$*4二

已用帶寬=X10%。9=13%

在偽相聯(lián)中,假?zèng)]在直接映象位置沒有發(fā)現(xiàn)匹配,而在另一個(gè)位置才找到

數(shù)據(jù)(偽命中)時(shí),不對(duì)這兩個(gè)位置的數(shù)據(jù)進(jìn)行交換。這時(shí)只需要1個(gè)額外的周

期。假設(shè)失效開銷為50個(gè)時(shí)鐘周期,2KB直接映象Cache的失效率為斬2路組

相聯(lián)的失效率為%;128KB直接映象Cache的失效率為樂2路組相聯(lián)的失效率為%。

(1)推導(dǎo)出平均訪存時(shí)間的公式。

(2)利用(1)中得到的公式,對(duì)于2KBCache和128KBCache,計(jì)算偽相

聯(lián)的平均訪存時(shí)間。

解:

不管作了何種改進(jìn),失效開銷相同。不管是否交換內(nèi)容,在同一“偽相聯(lián)”

組中的兩塊都是用同一個(gè)索引得到的,因此失效率相同,即:失效率偽相聯(lián)=失效

率2路。

偽相聯(lián)cache的命中時(shí)間等于直接映象cache的命中時(shí)間加上偽相聯(lián)查找過

程中的命中時(shí)間*該命中所需的額外開銷。

命中時(shí)間偽相聯(lián)=命中時(shí)間1路+偽命中率偽相聯(lián)X1

交換或不交換內(nèi)容,偽相聯(lián)的命中率都是由于在第一次失效時(shí),將地址取反,

再在第二次查找?guī)淼摹?/p>

因此偽命中率偽相聯(lián)=命中率2路一命中率1路=(1一失效率2路)-(1一失效

率幅)

=失效率悟一失效率2路。交換內(nèi)容需要增加偽相聯(lián)的額

外開銷。

平均訪存時(shí)間偽相聯(lián)=命中時(shí)間1躇+(失敗率I絡(luò)一失敗率2路)X1

+失效率2路X失效開銷?

將題設(shè)中的數(shù)據(jù)帶入計(jì)算,得到:

平均訪存時(shí)間2Kb=1+*50)=

平均訪存時(shí)間128Kb=1+*50)二

顯然是128KB的偽相聯(lián)Cache要快一些。

假設(shè)采用理想存儲(chǔ)器系統(tǒng)時(shí)的基本CPI是,主存延遲是40個(gè)時(shí)鐘周期;傳

輸速率為4字節(jié)/時(shí)鐘周期,且Cache中50%的塊是修改過的。每個(gè)塊中有32字

節(jié),20%的指令是數(shù)據(jù)傳送指令。并假設(shè)沒有寫緩存,在TLB失效的情況下需要

20時(shí)鐘周期,TLB不會(huì)降低Cache命中率。CPU產(chǎn)生指令地址或Cache失效時(shí)產(chǎn)

生的地址有%沒有在TLB中找到。

(1)在理想TLB情況下,計(jì)算均采用寫回法16KB直接映象統(tǒng)一Cache、16KB

兩路組相聯(lián)統(tǒng)一Cache和32KB直接映象統(tǒng)一Cache機(jī)器的實(shí)際CPI;

(2)在實(shí)際TLB情況下,用(1)的結(jié)果,計(jì)算均采用寫回法16KB直接映象統(tǒng)

—Cachex16KB兩路組相聯(lián)統(tǒng)一Cache和32KB直接映象統(tǒng)一Cache機(jī)器

的實(shí)際CPI;

其中假設(shè)16KB直接映象統(tǒng)一Cache、16KB兩路組相聯(lián)統(tǒng)一Cache和32KB

直接映象統(tǒng)一Cache的失效率分別為%、%和%;25%的訪存為寫訪問。

解:CPI二CPI執(zhí)行+存儲(chǔ)停頓周期數(shù)/指令數(shù)

存儲(chǔ)停頓由下列原因引起:

從主存中取指令

load和store指令訪問數(shù)據(jù)

由TLB引起

存儲(chǔ)停頓周期數(shù)—取指令停頓?數(shù)據(jù)訪訶停頓+TLB停頓

指令數(shù)指令數(shù)指令數(shù)

停頓周期數(shù)—存儲(chǔ)訪問

x失效率x失效開銷

存儲(chǔ)停頓周期數(shù)=(R指令P指令,(,數(shù)據(jù)區(qū)牧據(jù)「數(shù)據(jù))+TLB停頓

指令數(shù)指令數(shù)

(1)對(duì)于理想TLB,TLB失效開銷為0。而對(duì)于統(tǒng)一Cache,R指令二R蟠

P指令二主存延遲一傳輸一個(gè)塊需要使用的時(shí)間=40+32/4=48(拍)

若為讀失效,P^=生存延遲+傳輸一個(gè)塊需要使用的時(shí)間=40+32/4=

48(拍)

若為寫失效,且塊是干凈的,

P數(shù)據(jù)=主存延遲+傳輸一個(gè)塊需要使用的時(shí)間=40+32/4=48

(拍)

若為寫失效,且塊是臟的,

P數(shù)據(jù)=主存延遲+傳輸兩個(gè)塊需要使用的時(shí)間=40+64/4=56

(拍)

CPI=+[RP+(RP*20%)+0]

指令訪存全是讀,而數(shù)據(jù)傳輸指令Load或Store指令,

千斂抿*P數(shù)據(jù)=讀百分比*(f致抿*P數(shù)或)+寫百分比*(f數(shù)據(jù)*P干凈數(shù)據(jù)*其對(duì)應(yīng)的

百分比

+千數(shù)提

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論