計算機體系結構第四章練習題參考解答

2021-03-14 04:04:33 字數 3716 閱讀 3811

5: 0.05 6:0.08 7:0.13 8:0.03 9:0.01

(1)若對數字0~9和空格採用二進位制編碼,試設計編碼平均長度最短的編碼。

(2)若傳送106個文字元號,且每個文字元號後均自動跟乙個空格,按最短的編碼,共需傳送多少個二進位制位?若傳送波特率為9600bps,共需傳送多少時間?

(3)若對數字0~9和空格採用4位定長碼編碼,重新計算問題(2)。

解:(1)∵操作碼編碼的平均長度最短為huffman編碼,生成的huffman樹,如圖所示,相應的huffman編碼如表所示。l=×li = 3.23(位)。

(2)根據題意,每個字元的二進位製碼的平均長度為:3.23×(4+1)=16.

15(位)。若要傳輸106個字元,則要傳輸二進位制位數為:106×16.

15 =1.615×107(位)

若波特率為56kb/s,則傳輸時間為:1.615×107/(56×103)=288(s)。

(3)當採用四位定長編碼時,則需要傳輸二進位制位數為:106×4(4+1)=2×107(位),傳輸時間為:2×107/(56×103)=357(s)。

101 010

1 01 01 0

370516 4 2

984.60 一台模型機共有7條指令,各指令的使用頻度分別為:35%,25%,20%,10%,5%,3%,2%,有8個通用資料暫存器,2個變址暫存器。

(1)要求操作碼的平均長度最短,請設計操作碼的編碼,並計算操作碼編碼的平均長度。

(2)設計8位字長的暫存器—暫存器型指令3條,16位字長的暫存器一儲存器型變址定址方式指令4條,變址範圍不小於正、負127。請設計指令格式,並給出指令各字段的長度和操作碼的編碼。

解:(1)∵操作碼編碼的平均長度最短為huffman編碼,生成的huffman樹如圖所示,相應的huffman編碼如表所示。l=×li = 2.35(位)

(2)由於通用暫存器有8個,則指令中通用暫存器字段應為3位;操作碼欄位2位可有4個碼點,用三個碼點表示三條指令,另乙個碼點則作為擴充套件標誌。所以3條8位長的暫存器—暫存器型指令格式如下:

由於變址暫存器有2個,則指令中變址暫存器字段應為1位;變址範圍-127~+127,則指令中相對位移字段應為8位;操作碼欄位前2位可有4個碼點,用三個碼點表示三條指令,另乙個碼點則作為擴充套件標誌。擴充套件2位正好可表示四條指令,操作碼欄位則為4位。所以4條16位長的暫存器—儲存器型指令格式如下:

特別地,當採用3/4擴充套件編碼時,使用頻度高的用短碼表示,使用頻度低的用長碼表示,其相應的編碼如表所示。

4.65 某模型機9條指令使用頻度為:

add(加) 30% sub(減) 24% jom(按負轉移)6% sto(存) 7%

jmp**移)7% shr(右移)2% cil(迴圈左移)3% cla(清除)20%

stp(停機)1%

要求有兩種指令字長,都按雙運算元指令格式編排,採用擴充套件操作碼,並限制只能有兩種操作碼碼長。設該機有若干通用暫存器,主存為16位寬,按位元組編址,採用按整數邊界儲存,任何指令都在乙個主存週期中取得,短指令為暫存器--暫存器型,長指令為暫存器--主存型,主存位址應能變址定址。

(1)僅根據使用頻度,不考慮其它要求,設計出全huffman操作碼,計算其平均碼長;

(2)考慮題目全部要求,設計優化實用的操作碼形式,並計算其操作碼的平均碼長;

(3)該機允許使用多少可編址的通用暫存器?

(4)畫出該機兩種指令字格式,標出各字段之位數;

(5)指出訪存運算元位址定址的最大相對位移量為多少個位元組?

解:(1)根據給出的使用頻度,在構造huffman樹的過程中,有兩個結點可供合併,因此可生成不同的huffman樹,其中給出一棵如圖所示,相應的huffman編碼如表所示。

∴ huffman編碼的平均長度為:l=×li

l=0.3×2+0.24×2+0.2×2+0.07×4+0.07×4+0.06×4+0.03×5+0.02×6+0.01×6=2.61(位)

addcla sub

j0mjmp sto

cilstpshr

(2)任何指令都在乙個主存週期中取得,那麼短指令字長為8位,長指令字長為16位。又指令都是二位址指令,所以短指令暫存器--暫存器型的格式為:

長指令為暫存器--主存型的格式為:

由題意可知:指令操作碼採用擴充套件編碼,且只能有兩種碼長。從指令使用頻度來看,add、sub和cla三條指令的使用頻度與其它指令的使用頻度相差較大,所以用兩位操作碼的三個碼點來表示三條指令,乙個碼點作為擴充套件碼點,且擴充套件三位來表示六條指令,即採用2--4擴充套件編碼構成3/6編碼,2--4擴充套件編碼如表所示。

∴ 2--4擴充套件編碼(3/6)的平均長度為:l=×li=2.78

(3)(4)由短指令暫存器--暫存器型的格式可知,暫存器號字段長度為3位,暫存器個數為8個。則各字段長度如圖格式所標識。

而對於長指令暫存器--主存型,一般變址暫存器是某通用暫存器,則變址暫存器號的字段長度為3位,則各字段長度如圖格式所標識。

(5)由於相對位移字段長度為5位,因此訪存位址定址的最大相對位移量為25=32位元組。

4.79 下面是一段資料塊搬家程式。在risc處理機中,為了提高指令流水線的執行效率,通常要採用指令取消技術。

start:move as,r1把源陣列的起始位址送入變址暫存器r1

move num,r2把傳送的資料個數送入r2

loop: move (r1),ad-as(r1) ;ad-as為位址偏移量,在彙編過程中計算

inc r1增量變址暫存器

dec r2剩餘資料個數減1

bgt loop測試n個資料是否傳送完成

halt停機

num: n需要傳送的資料總數

(1)如果一條指令的執行過程分解為「取指令」和「分析」兩個階段,並採用兩級流水線。為了採用指令取消技術,請修改上面的程式。

(2)如果n=100,採用指令取消技術後,在程式執行過程中,能夠節省多少個指令週期?

(3)如果把一條指令的執行過程分解為「取指令」、「分析」(包括解碼和取運算元等)和「執行」(包括運算和寫回結果等)三個階段,並採用**流水線。仍然要採用指令取消技術,請修改上面的程式。

解:(1)start:move as,r1

move num,r2

move (r1),ad-as(r1)

loop:inc r1

dec r2

bgt loop

move (r1),ad-as(r1)

halt

num:n

(2)解決轉移指令引起的流水線斷流可插入一條無效的空操作指令(nop)。空操作指令也要占用乙個機器週期,又不執行任何實際的操作。當n=100時,則要浪費100個機器週期(50個指令週期)。

採用指令取消技術後,僅在轉移不成功時取消指令,浪費1個機器週期(0.5個指令週期)。因此可節省49.

5個指令週期。

(3)start:move as,r1

move num,r2

move (r1),ad-as(r1)

inc r1

loop:dec r2

bgt loop

move (r1),ad-as(r1)

inc r1

halt

num:n

計算機體系結構

平行計算 之我見指導老師 陳麗萍 學院 資訊科學與工程學院 班級 計科0908班 姓名 原海南 學號 0909083125 完成日期 2012年5月21日 目錄1.平行計算簡介 1.1什麼是平行計算 1.2為什麼需要平行計算 1.3平行計算的歷史 1.4平行計算的現狀 2.平行計算與網際網路 2.1...

計算機體系結構習題答案

第1章計算機系統結構的基本概念 1.1 解釋下列術語 層次機構 按照計算機語言從低階到高階的次序,把計算機系統按功能劃分成多級層次結構,每一層以一種不同的語言為特徵。這些層次依次為 微程式機器級,傳統機器語言機器級,組合語言機器級,高階語言機器級,應用語言機器級等。虛擬機器 用軟體實現的機器。翻譯 ...

計算機體系結構第三章練習題參考解答

第三章3.26 設16個處理器編號分別為0,1,15,要用單級互連網路,當互連函式分別為 1 cube3 cube1 5 butterfly butterfly 8 9 13 時,第13號處理器分別與哪乙個處理器相連?解 1 因為cube3 cube1 x3x2x1x0 cube3 x3x2x1x0...