日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

计算机组成原理(谭志虎)第7章课后题部分答案及解析+第7到9章重要知识点解析

發(fā)布時(shí)間:2024/1/18 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机组成原理(谭志虎)第7章课后题部分答案及解析+第7到9章重要知识点解析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、第七章課后題答案:

?

?

二、第七到九章重要知識(shí)點(diǎn)解析:

1、1GHz相當(dāng)于10億個(gè)時(shí)鐘周期,1億是10^8,所以1GHz=10^9個(gè)時(shí)鐘周期。1MHz是10^6個(gè)時(shí)鐘周期。

2、1ms毫秒=10^-3s秒。1us微秒=10^-6s秒,1ns納秒=10^-9s秒,1ps皮秒=10^-12s秒。

3、4級(jí)流水線相當(dāng)于4個(gè)功能段:取指、譯碼、執(zhí)行、寫回。課本上MIPS32是5級(jí)流水線,包括:取指、譯碼、執(zhí)行、訪存、寫回。

7.2(1)(2013)某 CPU 主頻為 1.03 GHz,采用 4 級(jí)指令流水線,每個(gè)流水段的執(zhí)行需要 1 個(gè)時(shí)鐘周期。假定 CPU 執(zhí)行了 100 條指令,在其執(zhí)行過程中,沒有發(fā)生任何流水線阻塞,此時(shí)流水線的吞吐率為(C)
A. 0.25×109條指令/秒 B. 0.97×109條指令/秒
C. 1.0×109條指令/秒 D. 1.03 ×109條指令/秒

解析:采用 4 級(jí)流水執(zhí)行 100 條指令,在執(zhí)行過程中共用 (4-1)?+100?=103 個(gè)時(shí)鐘周期((k-1)+n),為什么k-1呢?想象第100條指令進(jìn)入第1階段,此時(shí)是第100個(gè)周期;第101周期,第100條指令進(jìn)入第2階段;第102周期,進(jìn)入第3階段;103階段進(jìn)入第4階段。4級(jí)指令4個(gè)階段,所以程序此時(shí)才走完所以階段。CPU 主頻是1.03 GHz,即每秒1.03x10^9個(gè)時(shí)鐘周期,那么流水時(shí)間為103/1.03x10^-9=10^-7秒,流水線吞吐率=指令數(shù)/流水時(shí)間=100/10^-7=1.0x10^9條指令/秒。

4、先寫后讀沖突RAW:一個(gè)指令在讀取某個(gè)寄存器或內(nèi)存位置的值之前,該位置的值被另一個(gè)指令更新了,從而導(dǎo)致前面指令讀取的數(shù)據(jù)不是最新的數(shù)據(jù)。特征:指令I(lǐng)2的源操作數(shù)是指令I(lǐng)1的目的操作數(shù)。

7.2(4)(2016)已知無轉(zhuǎn)發(fā)機(jī)制的五段基本流水線(取指、譯碼/讀寄存器、運(yùn)算、訪存、寫回寄存器)中,下列指令序列存在數(shù)據(jù)冒險(xiǎn)的指令對(duì)是(B)
I1: add R1,R2,R3; (R2)+(R3)->R1
I2: add R5,R2,R4; (R2)+(R4)->R5
I3: add R4,R5,R3; (R3)+(R5)->R4
I4: add R5,R2,R6; (R2)+(R6)->R5
A、I1和I2 B、I2和I3 C、I2和I4 D、I3和I4

解析:因?yàn)镽5是指令I(lǐng)2的目的操作數(shù),R5又是指令I(lǐng)3的源操作數(shù),讀取的R5是修改后的值,會(huì)導(dǎo)致先寫后讀RAW錯(cuò)誤,發(fā)生沖突。

5、數(shù)據(jù)旁路(轉(zhuǎn)發(fā)):不等待指令寫回,直接將前面指令的執(zhí)行結(jié)果轉(zhuǎn)發(fā)給需要使用它的指令的讀取端口,避免沖突的發(fā)生,不會(huì)引起指令流水線阻塞。

數(shù)據(jù)相關(guān):當(dāng)前指令需要使用前面指令的執(zhí)行結(jié)果,但前面指令的執(zhí)行結(jié)果還沒有被寫回到寄存器中,需要等待前面指令執(zhí)行完成,流水線會(huì)阻塞。

條件轉(zhuǎn)移:需要等待跳轉(zhuǎn)目標(biāo)地址確定后才能繼續(xù)執(zhí)行下一條指令,要等待當(dāng)前指令的計(jì)算結(jié)果完成,可能會(huì)導(dǎo)致流水線的阻塞。

資源沖突:個(gè)指令需要訪問同一資源,從而需要等待資源訪問完成,造成流水線阻塞。

7.2(6).下列不會(huì)引起指令流水阻塞的是(A)
A.數(shù)據(jù)旁路
B.數(shù)據(jù)相關(guān)
C.條件轉(zhuǎn)移
D.資源沖突

6、指令格式規(guī)整且長(zhǎng)度一致:有利于節(jié)省指令的執(zhí)行時(shí)間(因?yàn)槿绻L(zhǎng)度不一致,會(huì)導(dǎo)致某些指令過長(zhǎng),延長(zhǎng)流水線的時(shí)鐘周期,影響效率)

指令和數(shù)據(jù)按邊界對(duì)齊存放:可以提高指令的訪問效率,保證相鄰的指令或數(shù)據(jù)被存儲(chǔ)在同一個(gè)緩存塊中(因?yàn)楝F(xiàn)代計(jì)算機(jī)的存儲(chǔ)器管理單元通常會(huì)將存儲(chǔ)器地址按照一定的規(guī)則進(jìn)行劃分,每個(gè)劃分稱為一個(gè)頁(yè)面(Page),頁(yè)面的大小通常為2的冪次方(例如,4KB、8KB、16KB等)。當(dāng)指令或數(shù)據(jù)被加載到處理器的緩存中時(shí),通常會(huì)加載整個(gè)頁(yè)面,而不是單獨(dú)的一個(gè)指令或數(shù)據(jù)。如果相鄰的指令或數(shù)據(jù)存儲(chǔ)在同一個(gè)頁(yè)面中,它們就會(huì)被同時(shí)加載到緩存中)從而提高了緩存的命中率。

7、指令流水線數(shù)據(jù)通路不包含生成控制信號(hào)的控制部件:指令流水線系統(tǒng)中,每個(gè)階段的執(zhí)行需要依賴于一些控制信號(hào)。生成控制信號(hào)的控制部件需要在不同的階段生成不同的控制信號(hào)。為了實(shí)現(xiàn)這個(gè)目標(biāo),指令流水線系統(tǒng)中的控制器通常被集成到每個(gè)階段的功能部件中,由這些功能部件自行生成相應(yīng)的控制信號(hào)。因此,指令流水線系統(tǒng)不需要像單周期處理器那樣單獨(dú)包含生成控制信號(hào)的控制部件。

——————————————以下是第8章————————————————————

1、在系統(tǒng)總線的數(shù)據(jù)線上,不可能傳輸?shù)氖?#xff1a;C

A、指令? B、操作數(shù)? C、握手(應(yīng)答)信號(hào)? D、中斷類型號(hào)

解析:總線包括片內(nèi)總線、系統(tǒng)總線、通信總線。系統(tǒng)總線的“數(shù)據(jù)線”包括數(shù)據(jù)總線(選項(xiàng)B)、地址總線、控制總線(選項(xiàng)AD)。應(yīng)答信號(hào)在通信總線傳輸。

2、采用異步通信方式傳送ASCII時(shí),若數(shù)據(jù)位為8位,校驗(yàn)位為1位,停止位為1位,當(dāng)波特率為4800bit/s時(shí),字符傳送的速率是多少?每個(gè)數(shù)據(jù)位的時(shí)間長(zhǎng)度是多少?數(shù)據(jù)位的傳送速率是多少?

解析:字符傳送速率:4800/10=480字符/s。每個(gè)數(shù)據(jù)位的時(shí)間長(zhǎng)度:注意到當(dāng)位數(shù)為10位時(shí),每秒相當(dāng)于傳送4800個(gè)字符,現(xiàn)在分析的是數(shù)據(jù)位(8個(gè)),因此是4800 x 8/10 = 3840字符/s,所以用1s/3840就是每個(gè)數(shù)據(jù)位的時(shí)間長(zhǎng)度,為0.26ms(毫秒)。數(shù)據(jù)位傳送速率:480 x 8? =3840bit/s。?

1、數(shù)據(jù)傳輸速率 = 數(shù)據(jù)位寬 / 時(shí)間

3、某64位同步總線支持突發(fā)傳輸模式,每個(gè)時(shí)鐘周期可以傳送一個(gè)地址或數(shù)據(jù),總線周期周期由1個(gè)時(shí)鐘周期的地址階段、若干個(gè)數(shù)據(jù)階段組成。若存儲(chǔ)器每存取一個(gè)數(shù)據(jù)需要兩個(gè)時(shí)鐘周期,突發(fā)長(zhǎng)度小于等于4。請(qǐng)計(jì)算在下列兩種情況下,總線和存儲(chǔ)器能提供的數(shù)據(jù)傳輸速率各是多少。

(1)每個(gè)總線事務(wù)傳輸32位數(shù)據(jù)? (2)每個(gè)總線事務(wù)包含4個(gè)是數(shù)據(jù)期

解析:假設(shè)1個(gè)時(shí)鐘周期用1T表示,時(shí)鐘頻率用f表示:(1)因?yàn)槭峭话l(fā)傳輸模式,所以總線傳輸32位數(shù)據(jù)需要2個(gè)時(shí)鐘周期(1個(gè)地址1個(gè)數(shù)據(jù)),32bit/2T=16f bit/s。存儲(chǔ)器需要3個(gè)時(shí)鐘周期(1個(gè)地址2個(gè)數(shù)據(jù)),32bit/3T=10.67f bit/s。

(2)包含4個(gè)數(shù)據(jù)期,意思就是在突發(fā)傳輸模式下,傳輸了4組數(shù)據(jù),每組是64位的,總線傳輸是5個(gè)時(shí)鐘周期(1個(gè)地址4個(gè)數(shù)據(jù)),所以是64 x 4 /5T = 51.2f bit/s (這里之所以要乘4是因?yàn)閭鬏斄?組數(shù)據(jù))。存儲(chǔ)器需要9個(gè)時(shí)鐘周期(1個(gè)地址8個(gè)數(shù)據(jù)) 64 x 4 / 9T = 28.4bit / s。

——————————————以下是第9章————————————————————

假設(shè)例9.1的計(jì)算機(jī)系統(tǒng)采用中斷驅(qū)動(dòng)方式進(jìn)行輸入輸出,CPU的時(shí)鐘頻率為200MHz,硬盤以512字節(jié)大小的扇區(qū)為單位傳輸數(shù)據(jù),啟動(dòng)階段發(fā)送命令和參數(shù)需要90個(gè)時(shí)鐘周期,每次中斷服務(wù)的開銷為400個(gè)時(shí)鐘周期(包括中斷響應(yīng)、中斷處理,不包括數(shù)據(jù)傳輸),實(shí)際傳輸階段需要1555個(gè)時(shí)鐘周期,CPU訪問磁盤的速率為20MB/s。

(1)求中斷驅(qū)動(dòng)I/0方式中CPU的占用率

(2)如果硬盤速率提高到60MB/s,會(huì)發(fā)生什么情況?

解析:(1)CPU訪問磁盤的速率(20MB/s)除以磁盤的扇區(qū)大小(512B),可以獲得CPU每秒訪問磁盤的次數(shù),相當(dāng)于39062.5次。而每一次訪問,都需要啟動(dòng)開銷,中斷服務(wù)開銷,傳輸數(shù)據(jù)開銷,三個(gè)開銷加起來(90+400+1555)為2045個(gè)時(shí)鐘周期(T)。2045T x 39062.5就是磁盤I/O中斷的開銷。因?yàn)镃PU的時(shí)鐘頻率為200MHz,所以倒數(shù)就是CPU一秒的時(shí)鐘周期數(shù)。占用率為2045T x 39062.5 / 200 x 10^6=0.3994約等于39.94%

(2)如果硬盤速率提高到60MB/s,訪問次數(shù):60x10^6/512=117187.5次,117187.5 x 2045T /200 x 10^6 = 1.1982相當(dāng)于119.82%,CPU占用率超過100%,會(huì)產(chǎn)生數(shù)據(jù)丟失。

1、接口命令寄存器:用于向接口設(shè)備發(fā)送指令,控制數(shù)據(jù)的傳輸和處理。在接口芯片中實(shí)現(xiàn)。

2、串行工作:是指數(shù)據(jù)傳輸過程中,數(shù)據(jù)位按照順序一個(gè)一個(gè)地傳輸,而不是一次性傳輸所有的數(shù)據(jù)位。

3、接口狀態(tài)寄存器:通常是在接口芯片中。

4、數(shù)據(jù)線傳送的內(nèi)容:數(shù)據(jù)緩存寄存器和命令/狀態(tài)寄存器(包括:中斷請(qǐng)求、錯(cuò)誤碼、控制位、狀態(tài)、命令)。

5、地址線傳輸?shù)膬?nèi)容:與CPU交換數(shù)據(jù)的端口地址。

6、狀態(tài)端口:用于傳輸外設(shè)的狀態(tài)信息(忙碌,錯(cuò)誤,準(zhǔn)備就緒)。

7、控制端口:可控制外設(shè)的行為(啟動(dòng)、停止、重置)。

8、I/O端口:用于實(shí)現(xiàn)CPU與外設(shè)間的數(shù)據(jù)交換和通信,是I/O接口中CPU可訪問的寄存器,是I/O接口中用于緩沖信息的寄存器。首先要明確I/O端口是一種特殊的寄存器,用于存儲(chǔ)外設(shè)的狀態(tài)信息、控制信息、數(shù)據(jù)等。注意I/O端口可以存儲(chǔ)數(shù)據(jù),I/O指令實(shí)現(xiàn)的數(shù)據(jù)傳輸發(fā)生在通用寄存器和I/O端口之間。

9、中斷響應(yīng)階段:關(guān)中斷,保存斷點(diǎn)(中斷的點(diǎn)),中斷識(shí)別(修改PC轉(zhuǎn)到中斷服務(wù)程序)。

10、中斷服務(wù)程序:保護(hù)現(xiàn)場(chǎng),中斷服務(wù),恢復(fù)現(xiàn)場(chǎng),開中斷,中斷返回(修改PC)。先保護(hù)現(xiàn)場(chǎng),然后中斷事件處理,然后恢復(fù)現(xiàn)場(chǎng),然后開中斷,然后中斷返回。

11、嵌套中斷優(yōu)先級(jí)順序的題目,有一個(gè)技巧是:把前面已經(jīng)中斷過的屏蔽字置0。我的理解是:既然前面已經(jīng)執(zhí)行過了,后面就不會(huì)再繼續(xù)中斷執(zhí)行了,所以索性設(shè)置為0(允許中斷),也不會(huì)有影響。

解釋一下圖為什么這么畫,因?yàn)閮?yōu)先級(jí)L0最高,所以會(huì)先進(jìn)入L0執(zhí)行。此時(shí)L1和L3都是允許中斷,L1比L3優(yōu)先級(jí)高,所以進(jìn)入L1執(zhí)行。因?yàn)長(zhǎng)1為全1,所以L1執(zhí)行完。此刻跳轉(zhuǎn)回L0執(zhí)行,L3允許中斷,進(jìn)入L3執(zhí)行,因?yàn)長(zhǎng)1已執(zhí)行過,所以置0也無大礙,其它都是1,所以L3執(zhí)行完。返回L0執(zhí)行完。最后進(jìn)入還未執(zhí)行的L2,因?yàn)長(zhǎng)0,L1,L3均已執(zhí)行完,所以全置0,L2執(zhí)行完后程序結(jié)束。

12、某計(jì)算機(jī)的CPU主頻為500MHz,與之連接的外部設(shè)備的最大數(shù)據(jù)傳輸速率為20KB/s,外部設(shè)備接口中有一個(gè)16位的數(shù)據(jù)緩沖器,響應(yīng)的中斷服務(wù)程序的執(zhí)行時(shí)間為500個(gè)時(shí)鐘周期,通過分析該設(shè)備是否可采用中斷I/O方式。若該設(shè)備的最大數(shù)據(jù)傳輸速率為2MB/s,則該設(shè)備是否可采用中斷I/O方式?

解析:因?yàn)椴捎玫氖侵袛喾?wù)程序,搜易當(dāng)外部設(shè)備向CPU傳輸數(shù)據(jù)時(shí)會(huì)臨時(shí)中斷CPU,所以這道題主要考慮的是數(shù)據(jù)傳輸對(duì)CPU中斷的影響,如果占CPU時(shí)間過長(zhǎng),則不能采用中斷I/O的方式。

解題:16位是2B,20KB/s / 2B 相當(dāng)于一秒要傳輸10000次數(shù)據(jù),每次中斷時(shí)間500個(gè)時(shí)鐘周期,所以是5 x 10^6,又因?yàn)镃PU主頻是500MHz,相當(dāng)于是5 x 10^8個(gè)時(shí)鐘周期,二者相除相當(dāng)于1/100,所以傳輸速度為2KB/s所導(dǎo)致的中斷占CPU時(shí)間的1%,所以是可以采用中斷I/O方式的。而當(dāng)傳輸速度為2MB/s時(shí)一秒要傳輸1M次,相當(dāng)于10^6 x 500 = 5 x 10^8個(gè)時(shí)鐘周期,CPU的時(shí)間全部被占滿,因此不可以采用中斷I/O的方式。

13、CPI是指執(zhí)行每條指令所需要的平均時(shí)鐘周期數(shù)

p371頁(yè) 9.8? ?假定計(jì)算機(jī)主頻為500MHz,CPI為4,現(xiàn)有設(shè)備A和B,它們的傳輸速率分別為2MB/s和40MB/s,對(duì)應(yīng)I/O接口中各有一個(gè)32位數(shù)據(jù)緩存寄存器。

(1)若設(shè)備A采用定時(shí)查詢I/O方式,每次輸入輸出都至少執(zhí)行10條指令。設(shè)備A最多間隔多重時(shí)間查詢一次才能不丟失數(shù)據(jù)?CPU用于設(shè)備A輸入輸出的時(shí)間占CPU總時(shí)間的百分比至少是多少?

解析:32位是4B,CPI為4又每次輸入輸出執(zhí)行10條指令,所以需要40個(gè)時(shí)鐘周期,用2MB/4B=500000次,1/0.5x10^6 = 2us(1秒除50萬(wàn)次,得到1次多長(zhǎng)時(shí)間),所以2us要請(qǐng)求一次,用5x10^5x4x10=2x10^7(請(qǐng)求的次數(shù)乘每次花費(fèi)的時(shí)鐘周期得到時(shí)鐘周期數(shù)),再用2x10^7/5x10^8=4%(除以主頻表示的每秒CPU的時(shí)鐘周期數(shù)得到占比)。

(2)在中斷I/O方式下,若每次中斷響應(yīng)和中斷處理的總時(shí)鐘周期數(shù)至少為400,則設(shè)備B能否采用中斷I/O方式?為什么

解析:40MB/s / 4B=10^7次查詢,每次查詢時(shí)鐘周期數(shù)4x10^2,查詢數(shù)x每次查詢時(shí)鐘周期數(shù)=4x10^9遠(yuǎn)遠(yuǎn)大于CPU每秒的時(shí)鐘周期數(shù)5x10^8所以不能采用中斷I/O方式。

(3)若設(shè)備采用DMA方式每次DMA傳送的數(shù)據(jù)庫(kù)大小為1000B,CPU用于DMA預(yù)處理和后處理的總時(shí)鐘周期數(shù)為500,則CPU用于設(shè)備B輸入輸出的時(shí)間占CPU總時(shí)間的百分比最多是多少?

解析:采用DMA傳輸,需要傳輸40MB/1000B= 4x10^4次,每次時(shí)鐘周期500,4x10^4x5x10^2=2x10^7,用2x10^7除CPU一秒內(nèi)的時(shí)鐘周期數(shù)5x10^8=4%。

——————————————以下是第1章————————————————————

CPI是指執(zhí)行每條指令所需要的平均時(shí)鐘周期數(shù)

——————————————以下是第6章————————————————————

?第六章課后題的第21題:

我的理解就是,編碼表示法中的互斥組,每類微指令的控制信號(hào),只能從每個(gè)互斥組中取出一個(gè)控制信號(hào)。而從直接表示法中的控制信號(hào)中可以取不止一個(gè)控制信號(hào)。

比如:讓a直接表示。看微指令ul3和ul4,先讓db為一組,ei為一組。帶入ul1檢驗(yàn),將c納入db組,互斥組為bcd,將多出的g直接表示。帶入ul5檢驗(yàn),將f納入ei組,成為互斥組efi。帶入ul2檢驗(yàn),a直接表示,d為bcd互斥組成員,f為efi互斥組成員,剩下h和j用直接法表示。

得到互斥組bcd和互斥組efi和直接表示的四元素aghj。

因?yàn)槊總€(gè)譯碼器的輸出狀態(tài)中需要預(yù)留一個(gè)狀態(tài),所以2位的譯碼器只能表示3個(gè)操作控制信號(hào)。

此時(shí)操作控制字段的長(zhǎng)度是8位。

總結(jié)

以上是生活随笔為你收集整理的计算机组成原理(谭志虎)第7章课后题部分答案及解析+第7到9章重要知识点解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。