計算機體系結(jié)構(gòu)習題(含答案)_第1頁
計算機體系結(jié)構(gòu)習題(含答案)_第2頁
計算機體系結(jié)構(gòu)習題(含答案)_第3頁
計算機體系結(jié)構(gòu)習題(含答案)_第4頁
計算機體系結(jié)構(gòu)習題(含答案)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第第 2 章章 課后習題課后習題 1 尾數(shù)用補碼 小數(shù)表示 階碼用移碼 整數(shù)表示 尾數(shù)字長 p 6 不包括符號位 階碼字長 q 6 不包括符號位 為數(shù)基值 rm 16 階碼基值 re 2 對于規(guī)格化浮點數(shù) 用十進制表達式寫出 如下數(shù)據(jù) 對于前 11 項 還要寫出 16 進值編碼 1 最大尾數(shù) 8 最小正數(shù) 2 最小正尾數(shù) 9 最大負數(shù) 3 最小尾數(shù) 10 最小負數(shù) 4 最大負尾數(shù) 11 浮點零 5 最大階碼 12 表數(shù)精度 6 最小階碼 13 表數(shù)效率 7 最大正數(shù) 14 能表示的規(guī)格化浮點數(shù)個數(shù) 2 一臺計算機系統(tǒng)要求浮點數(shù)的精度不低于 10 7 2 表數(shù)范圍正數(shù)不小于 1038 且正 負數(shù)對稱 尾 數(shù)用原碼 純小數(shù)表示 階碼用移碼 整數(shù)表示 1 設(shè)計這種浮點數(shù)的格式 2 計算 1 所設(shè)計浮點數(shù)格式實際上能夠表示的最大正數(shù) 最大負數(shù) 表數(shù)精度和表數(shù)效率 3 某處理機要求浮點數(shù)在正數(shù)區(qū)的積累誤差不大于 2 p 1 其中 p 是浮點數(shù)的尾數(shù)長度 1 選擇合適的舍入方法 2 確定警戒位位數(shù) 3 計算在正數(shù)區(qū)的誤差范圍 4 假設(shè)有 A 和 B 兩種不同類型的處理機 A 處理機中的數(shù)據(jù)不帶標志符 其指令字長和數(shù)據(jù)字長 均為 32 位 B 處理機的數(shù)據(jù)帶有標志符 每個數(shù)據(jù)的字長增加至 36 位 其中有 4 位是標志符 它 的指令數(shù)由最多 256 條減少到不到 64 條 如果每執(zhí)行一條指令平均要訪問兩個操作數(shù) 每個存放在 存儲器中的操作數(shù)平均要被訪問 8 次 對于一個由 1000 條指令組成的程序 分別計算這個程序在 A 處理機和 B 處理機中所占用的存儲空間大小 包括指令和數(shù)據(jù) 從中得到什么啟發(fā) 5 一臺模型機共有 7 條指令 各指令的使用頻率分別為 35 25 20 10 5 3 和 2 有 8 個通用數(shù)據(jù)寄存器 2 個變址寄存器 1 要求操作碼的平均長度最短 請設(shè)計操作碼的編碼 并計算所設(shè)計操作碼的平均長度 2 設(shè)計 8 字長的寄存器 寄存器型指令 3 條 16 位字長的寄存器 存儲器型變址尋址方式指令 4 條 變址范圍不小于 127 請設(shè)計指令格式 并給出各字段的長度和操作碼的編碼 6 某處理機的指令字長為 16 位 有雙地址指令 單地址指令和零地址指令 3 類 并假設(shè)每個地址 字段的長度均為 6 位 1 如果雙地址指令有 15 條 單地址指令和零地址指令的條數(shù)基本相同 問單地址指令和零地址指 令各有多少條 并且為這 3 類指令分配操作碼 2 如果要求 3 類指令的比例大致為 1 9 9 問雙地址指令 單地址指令和零地址指令各有多少條 并且為這 3 類指令分配操作碼 7 別用變址尋址方式和間接尋址方式編寫一個程序 求 C A B 其中 A 與 B 都是由 n 個元素組 成的一維數(shù)組 比較兩個程序 并回答下列問題 1 從程序的復雜程度看 哪一種尋址方式更好 2 從硬件實現(xiàn)的代價看 哪一種尋址方式比較容易實現(xiàn) 3 從對向量運算的支持看 哪一種尋址方式更好 8 假設(shè) X 處理機的數(shù)據(jù)不帶標志符 其指令字長和數(shù)據(jù)字長均為 32 位 Y 處理機的數(shù)據(jù)帶有標志 符 每個數(shù)據(jù)的字長增加至 35 位 其中有 3 位是標志符 其指令字長由 32 位減少至 30 位 并假設(shè) 一條指令平均訪問兩個操作數(shù) 每個操作數(shù)平均被訪問 R 次 現(xiàn)有一個程序 它的指令條數(shù)為 I 分 別計算在這兩種不同類型的處理機中程序所占用的存儲空間 并加以比較 9 一種浮點數(shù)表示方式的精度不低于 10 19 能表示的最大正數(shù)不小于 104000 而且正負數(shù)對稱 尾 數(shù)用原碼 小數(shù)表示 階碼用移碼 整數(shù)表示 尾數(shù)和階碼的基值都是 2 1 設(shè)計這種浮點數(shù)的格式 給出各字段的名稱和長度 2 計算 1 所設(shè)計的浮點數(shù)格式能夠表示的最大正數(shù) 最大負數(shù)和表示數(shù)的精度 3 如果在運算器中沒有設(shè)置硬件警戒位 則這種浮點數(shù)可能采用了哪一種舍入方法 給出這種舍入 方法的舍入規(guī)則 在正數(shù)區(qū)的誤差范圍和積累誤差 10 有研究人員指出 如果在采用通用寄存器結(jié)構(gòu)的計算機里加入寄存器 存儲器尋址方式可能提高 計算機效率 做法是用 ADD R2 0 Rb 代替指令序列 LOAD R1 0 Rb ADD R2 R2 R1 假定使用新的指令能使時鐘周期增加 10 并且假定只對時鐘產(chǎn)生影響 而不影響 CPI 那么 1 采用新的指令 要達到與原來同樣的性能需要去掉的 load 操作所占的百分比 假定 load 指令占 總指令的 22 8 2 舉出一種多指令序列 該序列不能使用上述的寄存器 存儲器尋址方式 即使得 load R1 后面緊接 著執(zhí)行對 R1 的操作 該操作可以是任意某一操作碼 但這一指令序列不能被一條指令 假定存在 這條指令 代替 11 試比較下面 4 種不同類型的指令結(jié)構(gòu)的存儲效率 1 累加型 所有的操作都在單個寄存器和單個內(nèi)存地址之間進行 2 存儲器 存儲器型 每個指令的 3 個操作數(shù)都在內(nèi)存中進行 3 堆棧型 所有的操作都在棧頂進行 只有 push 和 pop 操作會訪問內(nèi)存 其它的指令執(zhí)行時都會 刪除棧中的操作數(shù) 然后寫入執(zhí)行結(jié)果 4 通用寄存器型 所有的操作都在寄存器中進行 這些寄存器 寄存器指令中的每個指令都包含 3 個操作數(shù) 通用寄存器一共有 16 個 寄存器標志符占 4 位長 為比較存儲效率 我們對以上 4 種指令集作了如下約定 操作碼占一個字節(jié) 8 位 內(nèi)存地址占 2 個字節(jié) 16 位 操作數(shù)占 4 字節(jié) 32 位 所有指令的長度都以整數(shù)個字節(jié)計算 另外 還假定訪問內(nèi)存不使用其它的優(yōu)化措施 變量 A B C 和 D 的初值都已經(jīng)放在內(nèi)存中 針對以上 4 種不同的指令系統(tǒng) 回答下列問題 1 分別用匯編指令寫出下面 3 個賦值語句 A B C B A C D A B 2 分別計算所執(zhí)行指令的字節(jié)數(shù)和轉(zhuǎn)移內(nèi)存數(shù)據(jù)的字節(jié)數(shù) 并指出如果根據(jù)代碼的大小來計算的話 哪種結(jié)構(gòu)的效率是最高的 如果按需要的總內(nèi)存帶寬 代碼 數(shù)據(jù) 來計算 又是哪種結(jié)構(gòu)的效率最 高 12 考慮為 DLX 結(jié)構(gòu)的計算機增加一個新的尋址模式 即使得地址模式增加兩個寄存器和一個 11 位長的帶符號的偏移量來得到有效地址 這樣 編譯器就會用新的尋址模式來代替 ADD R1 R1 R2 LW Rd 0 R1 或是 Store 指令 如果已知在 DLX 結(jié)構(gòu)的計算機上對測得一些程序的 load 和 store 指令分別平均占 26 和 9 在此 基礎(chǔ)上 計算 1 假定 10 的 load 和 store 指令可以用新的尋址模式代替 那么采用新的尋址模式后的指令計數(shù)與 采用前之比為多少 2 如果新的尋址模式使得時鐘周期增長 5 那么采用了新的尋址模式的機器和未采用新的尋址模 式的機器相比 哪種機器會更快一些 快多少 1 解答 解答 在尾數(shù)采用補碼 小數(shù)表示且 p 6 階碼采用移碼 整數(shù)表示且 q 6 尾數(shù)基 rm為 16 階碼基 re為 2 的 情況下 1 最大尾數(shù)為 1 rm p 1 16 6 0 FFFFFF 2 最小正尾數(shù)為 1 rm 1 16 0 100000 3 最小尾數(shù)為 1 1 000000 4 最大負尾數(shù)為 rm 1 rm p 16 1 16 6 1 EFFFFF 5 最大階碼為 req 1 26 1 63 7F 包括符號位共 7 個 1 6 最小階碼為 req 26 64 00 包括符號位共 7 個 0 7 最大正數(shù)為 1 16 6 1663 7FFFFFFF 8 最小正數(shù)為 16 65 00100000 9 最大負數(shù)為 16 1 16 6 16 64 80EFFFFF 10 最小負數(shù)為 1663 FF000000 11 浮點零為 00000000 12 表數(shù)精度為 16 5 2 2 21 13 表數(shù)效率為 15 16 93 75 14 能表示的規(guī)格化浮點數(shù)個數(shù)為 2 15 165 27 1 2 解答 解答 1 取尾數(shù)和階碼的基都為 2 即 rm 2 且 re 2 根據(jù)表示數(shù)精度的要求 于是可以取 p 24 根據(jù)表示數(shù)范圍的要求 即 因此可以取 q 7 數(shù)據(jù)格式可以表示如下 尾數(shù)采用隱藏位 1 位1 位7 位23 位 符號階符階碼尾數(shù) 2 能夠表示的最大正數(shù) 1 2 24 2127 能夠表示的最大負數(shù) 2 129 表示數(shù)的精度 2 24 表數(shù)效率 100 3 解答 解答 1 舍入方法 下舍上入法 查表法 2 警戒位位數(shù) 2 位 3 正數(shù)區(qū)的誤差范圍 2 p 1 1 2 g 1 2 p 1 4 解答 解答 我們可以計算出數(shù)據(jù)的大致數(shù)量 1000 條指令訪問的數(shù)據(jù)總數(shù)為 1000 2 2000 個 每個數(shù)據(jù)平均訪問 8 次 所以 不同的數(shù)據(jù)個數(shù)為 2000 8 250 個 對于 A 處理機 所用的存儲空間的大小為 Mem size Meminstruction Memdata 1000 32 250 32 40000bit 對于 B 處理機 指令字長由 32 位變?yōu)榱?30 位 條數(shù)由 256 減少到 64 這樣 所用的存儲空間的大小 為 Mem size Meminstruction Memdata 1000 32 250 36 39000bit 由此我們可以看出 由于數(shù)據(jù)的平均訪問次數(shù)要大于指令 所以 通過改進數(shù)據(jù)的格式來減少指令的長 度 可以減少總的存儲空間大小 5 解答 解答 1 要使得到的操作碼長度最短 應采用 Huffman 編碼 構(gòu)造 Huffman 樹如下 由此可以得到 7 條指令的編碼分別如下 這樣 采用 Huffman 編碼法得到的操作碼的平均長度為 H 2 0 35 0 25 0 20 3 0 10 4 0 05 5 0 03 0 02 1 6 0 3 0 2 0 25 2 35 2 設(shè)計 8 位字長的寄存器 寄存器型變址尋址方式指令如下 因為只有 8 個通用寄存器 所以寄存器地址需 3 位 操作碼只有兩位 設(shè)計格式如下 2 位2 位3 位 操作碼 OP源寄存器 R1目的寄存器 R2 3 條指令的操作碼分別為 00 01 10 設(shè)計 16 位字長的寄存器 存儲器型變址尋址方式指令如下 4 位3 位1 位8 位 操作碼 OP通用寄存器變址寄存器偏移地址 4 條指令的操作碼分別為 1100 1101 1110 1111 6 解答 1 首先 可以根據(jù)指令地址的數(shù)量來決定各種指令在指令空間上的分布 如果按照從小到大的順序分配操作碼 并且按照指令數(shù)值從小到大的順序 分別為雙地址指令 單地址指 令和零地址指令 其次可以根據(jù)指令的條數(shù)來大致的估計操作碼的長度 雙指令 15 條 需要 4 位指令來區(qū)分 剩下的 12 位指令平均分給單地址和零地址指令 每種指令可以用 6 位指令來區(qū)分 這樣 各指令的條數(shù)為 雙地址指令 15 條 地址碼 0000 1110 單地址指令 26 1 63 條 地址碼 1111 000000 1111 111110 零地址指令 64 條 地址碼 1111 111111 000000 1111 111111 111111 2 與上面的分析相同 可以得出答案 雙地址指令 14 條 地址碼 0000 1101 單地址指令 26 2 2 126 條 1110 000000 1110 111110 1111 000000 1111 111110 零地址指令 128 條 1110 111111 000000 1110 111111 111111 1111 7 解答 解答 1 變址尋址方式 2 間接尋址方式 3 變址尋址方式 8 解答 解答 X 處理機程序占用的存儲空間總和為 Y 處理機程序占用的存儲空間總和為 Y 處理機與 X 處理機的程序占用存儲空間的比值 當 R 3 時 有 即對于同樣的程序 在 Y 處理機中所占用的存儲空間比在 X 處理機中所占用 的存儲空間要小 在實際應用中經(jīng)常是 R 10 所以帶標志符的處理機所占用的存儲空間通常要小 9 解答 解答 1 根據(jù)表示數(shù)精度的要求 根據(jù)表示數(shù)范圍的要求 取 p 64 q 14 1 位1 位14 位64 位 符號階符階碼尾數(shù) 2 能夠表示的最大正數(shù) 1 2 64 216383 能夠表示的最大負數(shù) 2 16385 表示數(shù)的精度 2 64 3 采用的舍入方法為恒置法 舍入規(guī)則 在規(guī)格化之后 尾數(shù)的最低位置為 1 在正數(shù)區(qū)的誤差范圍 2 64 1 2 g 2 64 在正數(shù)區(qū)的積累誤差 2 64 10 解答 解答 1 計算 CPU 時間為 對原來的指令 對修改后的指令序列 在等式 2 中 CPI new CPI old R 為新的指令設(shè)計方案中比原來的方案中減少 的指令數(shù) 要使去掉一些 load 操作 使得修改指令后的性能和原來的性能相同 必須滿足 又已知 load 指令占總指令的 22 8 即要達到原來的性能 39 5 的 load 指令必須去掉 2 給出下面的兩條指令 ld r1 0 r1 add r1 r1 r1 在上面的指令中 我們將題目中的寄存器 r2 和 rb 用寄存器 r1 來代替 如果假定 r1 的值為 47 指令執(zhí)行 前內(nèi)存中地址為 47 的位置存放了整數(shù) 4 那么上面指令序列執(zhí)行后 r1 存放的值將變?yōu)?8 然而 如果我們使用了寄存器 存儲器模式后 上面的指令序列成為 add r1 0 r1 假設(shè)寄存器和內(nèi)存初值相同的話 指令執(zhí)行結(jié)束后 寄存器的值將變?yōu)?51 r1 MEM 0 r1 即 47 4 所 以 在這種情況下 不能做指令替換 11 解答 解答 一臺采用累加型指令集結(jié)構(gòu)計算機實現(xiàn)的程序段如下 在上面的代碼中 loada storea 和 adda 每個都是 24 位長 操作碼 8 位 操作數(shù)地址 16 位 negatea 指令只需 8 位 所以整個代碼一共需要 22 個字節(jié) 對存取數(shù)據(jù)操作來說 每條指令訪問操作數(shù)的值需要 訪問 4 字節(jié)數(shù)據(jù) 所以 整個程序需要在內(nèi)存和 CPU 之間轉(zhuǎn)移 28 字節(jié)的數(shù)據(jù) 一臺采用存儲器 存儲器型指令集結(jié)構(gòu)計算機實現(xiàn)的程序段如下 在上面的代碼中 每個指令為 56 位長 操作碼 8 位 3 個操作數(shù) 48 位 這樣程序需要 21 個字節(jié) 對存取數(shù)據(jù)操作來說 每條指令執(zhí)行 3 個各訪問 4 字節(jié)數(shù)據(jù)的操作 這樣 整個程序在內(nèi)存和 CPU 之間 共轉(zhuǎn)移 36 字節(jié)的數(shù)據(jù) 一臺采

溫馨提示

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

評論

0/150

提交評論