【考研408計算機組成原理】微程序設計重要考點指令流水線考研真題+考點分析

????????????????????????????????????????????????????????????????????????????蘇澤?

“棄工從研”的路上很孤獨,于是我記下了些許筆記相伴,希望能夠幫助到大家


目錄

微指令的形成方式

微指令的地址形成方式

對應考題

題目:微指令的地址形成方式 - 斷定方式

解題思路:

答題:

分析考點:

微程序控制單元設計

靜態微程序設計和動態微程序設計(小知識點 )

靜態

動態

指令流水線

在設計指令流水線時,需要考慮以下幾個方面:

易錯點

考題

示例問題


微指令的形成方式

微指令的地址形成方式

  1. 斷定方式

    • 微指令格式中包含下地址字段。
    • 后繼微指令的地址由該字段直接指定。
  2. 根據操作碼形成

    • 機器指令加載到指令寄存器后,微指令地址由操作碼決定。
    • 通過微地址形成部件來生成微指令地址。
  3. 增量計數器法

    • 微指令地址寄存器(CMAR)的當前值加1。
    • 公式表示為:(𝐶𝑀𝐴𝑅)+1→𝐶𝑀𝐴𝑅(CMAR)+1→CMAR。
  4. 分支轉移

    • 轉移方式:根據特定的判別條件進行轉移。
    • 轉移地址:指明轉移成功后的微指令地址。
  5. 操作控制字段

    • 包含轉移方式和轉移地址。
  6. 通過測試網絡

    • 微指令地址的形成可能依賴于測試網絡的結果。
  7. 硬件產生微程序入口地址

    • 第一條微指令地址由專門的硬件產生。
    • 取指周期和中斷周期的微程序首地址由硬件記錄。

對應考題

題目:微指令的地址形成方式 - 斷定方式

題目描述: 某計算機采用微程序控制器,共有32條指令。公共的取指令微程序包含2條微指令,各指令對應的微程序平均由4條微指令組成。采用斷定法(下地址字段法)確定下條微指令地址。求:

  1. 微指令中下地址字段可以沒有的位數至少是多少位?
  2. 總共需要存儲多少條微指令?
  3. 標注出130個不同的位置至少需要多少個二進制位?

解題思路:

  1. 理解題目要求:

    • 確定微指令的下地址字段位數。
    • 計算總共需要存儲的微指令數量。
    • 計算標注130個不同位置所需的二進制位數。
  2. 計算微指令數量:

    • 取指令微程序固定為2條微指令。
    • 每條指令對應的微程序平均有4條微指令,共有32條指令。
  3. 計算下地址字段位數:

    • 使用斷定法,需要足夠位數的下地址字段來唯一標識每一條微指令。
  4. 計算二進制位數:

    • 需要的位數能夠表示從1到130的所有微指令地址。

答題:

  1. 計算微指令數量:

    • 取指令微程序:2條
    • 每條指令對應的微程序:32條指令 × 4條微指令/指令 = 128條
    • 總共:2 + 128 = 130條微指令
  2. 計算下地址字段位數:

    • 由于需要唯一標識130條微指令,使用二進制表示需要的位數為??log?2(130)??log2?(130)?。
    • 計算得?27=12827=128,28=25628=256,因此至少需要8位。
  3. 計算二進制位數:

    • 130個不同位置至少需要的二進制位數為??log?2(130)??log2?(130)?。
    • 由于?27=12827=128?不足以表示130,所以需要?28=25628=256,即8位。

分析考點:

  • 考點1:?微程序控制器的工作原理和微指令的地址形成方式。
  • 考點2:?斷定法的理解和應用。
  • 考點3:?二進制數的位數計算,以及如何確定能夠表示特定數量的唯一值所需的位數。

微程序控制單元設計

與硬布線控制單元設計做對比

絕大多數都一樣,但唯一的區別在最后:把形成的微命令 交給 微地址形成部件 最后形成微命令+微地址的形式組成微指令

而硬布線是直接把這樣的微命令做成電路去實現

也正是因為這個特性 他的每一個微命令段(由若干微命令形成的微命令段)多一個節拍 用于把下一次的微命令存到CMAR 作用是為了讓機器知道 “下一步”執行誰

這也是他跟硬布線控制器最大的區別?

靜態微程序設計和動態微程序設計(小知識點 )

靜態

微程序無需改變,采用 ROM

動態

通過 改變微指令 微程序 改變機器指令
有利于仿真,采用 EPROM

指令流水線

是CPU中的一種技術,它允許多個指令在不同的階段同時進行處理,從而提高執行效率。指令流水線的基本步驟包括:

  • 取指周期:根據程序計數器(PC)中的內容從指定地址讀出指令代碼并放在指令寄存器(IR)中。
  • 譯碼周期:對指令進行譯碼,確定需要的操作和操作數。
  • 執行周期:根據指令的操作碼和操作數執行相應的操作。
  • 訪存周期:如果需要,訪問內存以獲取或存儲數據。
  • 寫回周期:將執行結果寫回寄存器或內存。

流水線技術可以并行處理多個指令,但也可能遇到一些問題,如數據沖突、控制沖突等,需要采取相應的策略來解決。

指令流水線的本質

就是把一個動作拆解成無數個細小的動作 (由不同的部件完成不同的動作)? 然而流水線就體現在 異步? 通俗點講就是你是切菜的 你不用上一個菜做完 你就一直切菜 你的任務不需要等到別人執行完成你才能夠開始? 這就叫異步? 流水線的本質 就是希望將各種部件最大異步化? 僅此而已

在設計指令流水線時,需要考慮以下幾個方面:

  • 指令的順序:指令順序不能改變,以確保程序的正確性。
  • 指令的并行性:編譯器可以通過分析指令之間的依賴關系,將能夠并行執行的指令合并成一條超長指令字,以提高執行效率

指令流水線是一種在CPU中用于提高指令執行效率的技術,它將指令的執行過程分解成多個子過程,這些子過程可以并行執行。然而,在指令流水線的設計和實現中存在一些易錯點,這些易錯點在考題中也經常被考察。以下是一些指令流水線中的易錯點和相關問題:

易錯點

  1. 資源沖突(結構相關):當多條指令同時爭用同一資源時會發生結構相關,導致流水線中斷或效率降低。

  2. 數據相關(數據冒險):某些指令依賴于前一條指令的結果,如果前一條指令的結果尚未計算完成,后一條指令就無法執行。

  3. 控制相關(控制冒險):轉移指令和程序計數器的改變可能導致流水線中斷。

  4. 流水線的啟動和排空:流水線在開始時需要一定的時間來填滿各個階段,稱為啟動時間;在最后一條指令執行完畢后,流水線需要一段時間來清空,稱為排空時間。

  5. 超標量流水線的指令亂序發射:超標量流水線允許在一個時鐘周期內發射多條指令,但需要處理指令亂序執行帶來的問題。

  6. 異常和中斷的處理:流水線需要能夠處理異常和中斷,這可能會影響流水線的效率。

考題

  1. 計算流水線的性能指標:如吞吐率、加速比、效率等。

    • 吞吐率:單位時間內完成的指令數量。
    • 加速比:引入流水線后與未引入流水線的執行時間之比。
    • 效率:流水線中各功能的利用率。
  2. 分析流水線中的相關類型:確定指令流水線中可能發生的數據相關、控制相關和結構相關。

  3. 設計超標量流水線:設計一個超標量流水線,并分析其CPI(每條指令的時鐘周期數)。

  4. 處理異常和中斷:設計流水線的異常和中斷機制,確保流水線在遇到異常情況時能夠正確處理。

  5. 流水線的優化:提出方法來減少流水線的啟動時間和排空時間,提高流水線的效率。

  6. 指令流水線的實現:給出指令流水線的具體實現方式,包括數據通路的設計、控制信號的生成等。

示例問題

假設有一個五段式指令流水線,包括取指、譯碼、執行、訪存和寫回五個階段。請計算以下情況:

  • 吞吐率:如果有8條指令需要執行,每個時鐘周期完成一個階段,那么吞吐率是多少?
  • 加速比:如果沒有流水線,執行這8條指令需要多少時鐘周期?引入流水線后,加速比是多少?
  • 效率:如果流水線的設備利用率是80%,那么流水線的效率是多少?

可以嘗試自己根據理解做一下哦? 下一期把做題筆記發出來

答案:


另外,利用了工作之余的一點點時間,整理了一套考研408的知識圖譜,

我根據這一套知識圖譜打造了這樣一個408知識圖譜問答系統

里面的每一個回答都是根據考研408的考點回復的

目前暫時只接入了微信,如果大家對這個問答系統感興趣的話可以在我的主頁里找到我的微信號

找我拉進測試群免費體驗哦


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38372.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38372.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38372.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

每日疑問,多線程場景,下面的代碼是否可以保證只執行一次

看著這個代碼的目的是只注冊一次sighandler,但是這個判定是否可以保證一次?但是根據代碼看,其實不會有關鍵區的讀寫,所以即使有同步問題,也不會產生什么特別的影響。所以代碼沒有問題,但是這是一個坑。 in…

Spring Boot中的分頁與排序實現

Spring Boot中的分頁與排序實現 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿!在開發Web應用時,分頁和排序是常見的功能需求,特別是在處…

計算機體系結構和指令系統

1.計算機體系結構 - 五大部件 - 馮 諾依曼 計算機的特點 1.計算機有五大部件組成 2.指令和數據以同等地位存儲于存儲器,可按照地址訪問 3.指令和數據用二進制表示 4.指令由操作碼和地址碼組成 5。存儲程序 6.以計算器為中心(輸入、輸出設備與存儲器…

2024年【湖北省安全員-C證】新版試題及湖北省安全員-C證試題及解析

題庫來源:安全生產模擬考試一點通公眾號小程序 湖北省安全員-C證新版試題參考答案及湖北省安全員-C證考試試題解析是安全生產模擬考試一點通題庫老師及湖北省安全員-C證操作證已考過的學員匯總,相對有效幫助湖北省安全員-C證試題及解析學員順利通過考試…

WIN10系統自帶錄屏軟件怎么用?

WIN10系統自帶錄屏軟件怎么用? WIN10系統錄屏軟件怎么用? 第一步:WING 快捷打開系統自帶錄屏軟件,如下: 第二步:點擊錄屏軟件區域“開始錄制”按鈕進入屏幕錄制狀態,如下: 第三步…

基于SpringBoot的財務管理系統

根據您提供的論文內容和模板要求,以下是定制化的文章輸出: 你好呀,我是計算機學姐碼農小野!如果有相關需求,可以私信聯系我。 開發語言: Java 數據庫: MySQL 技術: SpringBoot…

某度,網盤免費加速,復活!

哈嘍,各位小伙伴們好,我是給大家帶來各類黑科技與前沿資訊的小武。 有小伙伴反饋之前如下夸克網盤腳本的加速方法失效,小武今天測試,依舊正常使用! 百度/迅雷/夸克,網盤免費加速,已破&#xf…

pytest測試框架pytest-cov插件生成代碼覆蓋率

Pytest提供了豐富的插件來擴展其功能,本章介紹下pytest-cov插件,用于生成測試覆蓋率報告,幫助開發者了解哪些部分的代碼被測試覆蓋,哪些部分還需要進一步的測試。 pytest-cov 支持多種報告格式,包括純文本、HTML、XML …

node中使用mysql

在nodeJs中mysq的基礎用法 mysql基礎 增刪改查 const mysql require(mysql)const connection mysql.createConnection({host: localhost, // 數據庫的IP地址port: 3306, // 端口號user: root, // 登錄數據庫的賬號password: 123456, // 登錄數據庫的密碼database: test, // 指…

JavaScript高級程序設計(第四版)--學習記錄之迭代器與生成器(下)

生成器 生成器是 ECMAScript 6 新增的一個極為靈活的結構,擁有在一個函數塊內暫停和恢復代碼執行的能力。 生成器基礎 生成器的形式是一個函數,函數名稱前面加一個星號表示它是一個生成器。 //生成器函數聲明 function* generatorFn(){} //生成器函數表…

網站頁面源碼,前端頁面的最基本組成形式,網頁到底是什么? 網站開發教程...

演示網站:gofly.v1kf.com -----------【視頻原文案】:現在給大家介紹一下網站上的頁面到底是什么。對于我們很多的普通用戶來說,他可能不知道一個網站一個頁面到底是什么東西。我們來從最基本的開始:如果想新建一個頁面&#xff0…

vue3+ts+vite項目中使用spreadjs,通過script標簽引入spreadjs可以提高打包速度

https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/quickstart/quickstart-js 右鍵另存這個官方的示例頁面可以下載全部js文件 https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html spread.html: <!DOCTYPE html> <html lang"zh">…

共識機制深度解析:PoW、PoS、DPoS和PBFT

區塊鏈的世界里&#xff0c;有一個非常重要的概念叫做“共識機制”。它就像是區塊鏈的心臟&#xff0c;保證大家在這條鏈上的信息是可靠的、不可篡改的。今天&#xff0c;我們就來通俗易懂地聊聊區塊鏈里的四大共識機制&#xff1a;工作量證明&#xff08;PoW&#xff09;、權益…

數據產品經理知識庫構建

概述 數據產品經理是企業中負責管理和推動數據產品的專業人員。他們利用數據來輔助決策&#xff0c;優化產品&#xff0c;提升用戶體驗。用STAR法則&#xff08;Situation, Task, Action, Result&#xff09;來介紹數據產品經理的角色&#xff0c;應該學習的數據產品&#…

Rust-11-錯誤處理

Rust 將錯誤分為兩大類&#xff1a;可恢復的&#xff08;recoverable&#xff09;和 不可恢復的&#xff08;unrecoverable&#xff09;錯誤。對于一個可恢復的錯誤&#xff0c;比如文件未找到的錯誤&#xff0c;我們很可能只想向用戶報告問題并重試操作。不可恢復的錯誤總是 b…

Labview_網絡流

網絡流的介紹 網絡流是一種易于配置、緊密集成的動態通信方法&#xff0c;用于將數據從一個應用程序傳輸到另一個應用程序&#xff0c;其吞吐量和延遲特性可與 TCP 相媲美。但是&#xff0c;與 TCP 不同的是&#xff0c;網絡流直接支持任意數據類型的傳輸&#xff0c;而無需先…

Java虛擬機調優技巧及性能監控

Java虛擬機調優技巧及性能監控 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 引言 Java虛擬機&#xff08;JVM&#xff09;作為Java程序的核心執行環境&…

忙忙碌碌的混沌之中差點撲了個空而錯過年中這條線

文章目錄 前言初見端倪混沌初始力不從心心力交瘁拾遺補缺總結 前言 突然意識到過完這個周末已經7月份了&#xff0c;他預示著我的2024年已經過半了&#xff0c;過年回家仿佛還是昨天的事情&#xff0c;怎么轉眼間已經到了年中了。心里還是不愿承認這件事&#xff0c;翻開自己2…

cpu,緩存,輔存,主存之間的關系及特點

關系圖 示意圖&#xff1a; ------------------- | CPU | | ------------- | | | 寄存器 | | | ------------- | | | L1緩存 | | | ------------- | | | L2緩存 | | | ------------- | | | L3緩存 | | | ------------- | ----…

每日一題——Python實現PAT乙級1073 多選題常見計分法(舉一反三+思想解讀+逐步優化)9千字好文

一個認為一切根源都是“自己不夠強”的INTJ 個人主頁&#xff1a;用哲學編程-CSDN博客專欄&#xff1a;每日一題——舉一反三Python編程學習Python內置函數 Python-3.12.0文檔解讀 目錄 初次嘗試 再次嘗試 有何不同 版本一&#xff08;原始版本&#xff09;&#xff1a;…