处理办法器指令集.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 指令遲滯 假設 以下兩個連續指令分別執行加法和減法 運算元和結果置放於暫存器A、B、C和D 指令K: C ← add A B 指令K+1: D ← subtract E C * 管線遲滯現象 使用泡泡代表延遲,泡泡的出現將影響管線階段的傳輸與進行。 * 管線遲滯的其它原因 存取外部儲存裝置 加入協同處理器 分支到新位置 呼叫副程式 * 程式高速運作 少用分支指令 最好也不要在鄰接的指令後面,立刻存取結果暫存器,以避開延遲。 * 指令重排順序 * 管線重點 雖然在任何時間上,管線硬體會自動地幫助程式盡可能高速執行,然而程式設計師最好能在撰寫程式時,就開始注意並且謹慎地運用管線技術,否則指令管線硬體可能無法全速執行。 * No-OP指令 大部分的處理器會提供no-op指令 no-op (不動作)指令不會影響 資料數值 計算結果 電腦狀態 no-op指令通常什麼都不做,只是浪費時間而已。 程式設計師可以插入no-op指令,來標示這裡發生指令遲滯現象。 * 前遞轉送 英文稱為forwarding技術 (forward字面意義為轉送) 讓ALU預先存取上一個指令的結果,解決連續算術指令的傳輸問題。 使用硬體來進行偵測,避免遲滯。 範例: 指令K: C ← add A B 指令K+1: D ← subtract E C * 運算型態 * 程式計數器 就是所謂的”指令指標” 專用暫存器 使用擷取?執行週期 自動擷取下一個指令位址 * 程式計數器演算法 指定程式計數器一個初始值,重複執行下列工作{ 擷取:從程式計數器給予的位址,抓取程式的下一個指令 由剛剛擷取的指令得知下個指令位址,並送至內部位址暫存器A 執行:執行指令運算動作 複製位址暫存器A內容給程式計數器 } * 分支指令和擷取執行 絕對分支指令 最典型的就是jump指令 尾隨的運算元就是位址,會載入到內部位址暫存器A 。 相對分支指令 最典型的就是br指令 運算元是一個有號數值,會加到內部位址暫存器A 。 * 副程式呼叫指令 jsr指令 類似分支指令 jsr指令會先把目前的呼叫位址,完整地儲存到位址暫存器A。 ret指令 副程式的結束指令 把位址暫存器A內容複製給程式計數器,程式才能返回原先呼叫位置。 * 傳遞引數 有多種傳遞引數的方式 比如: 使用記憶體來傳遞引數 使用通用暫存器來傳遞引數 使用專用暫存器來傳遞引數 * 暫存器視窗 最佳化引數傳輸方式 在任何時間點,處理器只能看到一小部分的暫存器,稱為視窗。 每執行一個副程式,硬體會自動加入一個對應的視窗,等到副程式結束後,才會收回該視窗。 視窗之間可以出現重疊現象 重疊暫存器正是呼叫程式置放引數的地方 呼叫程式可以看見的重疊暫存器,副程式也可以看見。 * 暫存器視窗圖 * MIPS指令集範例 MIPS處理器廣泛地應用在嵌入式系統 MIPS指令集是RISC處理器中最經典的範例 * MIPS指令集 * MIPS指令集(Cont.) * MIPS指令集(Cont.) * 最小化指令集 最基本的指令集必須精簡,以保證高速運作。 不需要太多指令,只要具有最必要的基本指令即可。 * 正交原則 正交原則指出:每一個指令都只執行唯一的任務,再也沒有其它指令具備相同或類似的功能,來完成這個任務,也就是說,正交原則可以避免出現多個重複功能的指令,強化精簡觀念。 * 條件碼 內部的硬體機制 ALU會主動地設定條件碼 分支指令可以根據多個條件位元進行測試,並且根據這些測試的結果,來決定是否要作分支動作。 * 條件碼範例 * 第 5 章 處理器指令集 * 到底處理器應該提供哪些指令? 理論上,處理器只要具備某些基本的運算功能(指令),就有足夠的能力去計算任何一個函數。 指令太多帶來的是便利性,而非功能性。 指令太多可能衍生效率問題。 電腦結構師必須考慮: 晶片大小 消耗功率 散熱問題 * 指令集重點 建置處理器的運算集合是一種妥協,一種介於硬體成本、程式便利、和工程層面(比如:功率消耗)之間的妥協。 * 表示法 所有的硬體運算 就是所有指令的集合,稱為指令集。 指令集定義所有指令的字義和運作規格。 硬體運算表示法 意指所使用的指令語法,稱為指令格式。 先把程式轉換成可執行的指令格式,然後再交給處理器。 * 指令的組成部分 執行運算的操作碼 擷取數值的運算元 置放結果的位置 * 典型指令格式 由一序列的二進制位元所組成 通常 指令開頭是操作碼欄位 接著跟隨著運算元欄位 * 典型指令格式圖 * 指令長度 固定長度指令 所有的指令長度都相同 硬體比較簡單 硬體比較快速 可變長度指令 具有各種不同長度的指令 比較吸引程式設計師 記憶體使用較有效率 * 固定長度指令的重點 對程式設計師而言

文档评论(0)

blingjingya + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档