第 5 章 處理器指令集.

Slides:



Advertisements
Similar presentations
1 生物計算期末作業 暨南大學資訊工程系 2003/05/13. 2 compare f1 f2  只比較兩個檔案 f1 與 f2 ,比完後將結果輸出。 compare directory  以兩兩比對的方式,比對一個目錄下所有檔案的相 似程度。  將相似度很高的檔案做成報表輸出,報表中至少要.
Advertisements

6-1 指標簡介 6-2 指標與陣列 6-3 動態配置記憶體 6-4 本章綜合練習
Chapter 10 馬可夫鏈 緒言 如果讀者仔細觀察日常生活中所發生的 諸多事件,必然會發現有些事件的未來 發展或演變與該事件現階段的狀況全然 無關,這種事件稱為獨立試行過程 (process of independent trials) ;而另一些 事件則會受到該事件現階段的狀況影響。
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
: A-Sequence 星級 : ★★☆☆☆ 題組: Online-judge.uva.es PROBLEM SET Volume CIX 題號: Problem D : A-Sequence 解題者:薛祖淵 解題日期: 2006 年 2 月 21 日 題意:一開始先輸入一個.
3Com Switch 4500 切VLAN教學.
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章.
1 第一章 Word 的基本觀念 內容概要: Word 的特色 啟動與離開 Word 的方法 滑鼠游標與外型的介紹 基本操作 Word 視窗法則 使用 Word 遭遇問題時, 應如何利用軟體特 性而獲得輔助解說.
亂數產生器安全性評估 之統計測試 SEC HW7 姓名:翁玉芬 學號:
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
Chapter 2 聯立線性方程式與矩陣 緒言 線性方程式組 (systems of linear equations) 出現 在多數線性模式 (linear model) 中。根據以往解 題的經驗,讀者們也許已發現方程式的解僅與 該方程式的係數有關,求解的過程也僅與係數 的運算有關,只要係數間的相關位置不改變,
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
第 8 章 組合語言和程式範例.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
第 3 章 資料和程式表示法.
Department of Air-conditioning and Refrigeration Engineering/ National Taipei University of Technology 模糊控制設計使用 MATLAB 李達生.
Monte Carlo Simulation Part.2 Metropolis Algorithm Dept. Phys. Tunghai Univ. Numerical Methods C. T. Shih.
2009fallStat_samplec.i.1 Chap10 Sampling distribution (review) 樣本必須是隨機樣本 (random sample) ,才能代表母體 Sample mean 是一隨機變數,隨著每一次抽出來的 樣本值不同,它的值也不同,但會有規律性 為了要知道估計的精確性,必需要知道樣本平均數.
© The McGraw-Hill Companies, Inc., 2008 第 6 章 製造流程的選擇與設計.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
微帶線濾波器 國立聯合大學 電機工程學系 主講人 : 徐振剛 何奕叡. 目 錄  設計程序理論說明  1. 微波諧振電路  2. 傳輸線特性  3.Chebyshev filter & Butterworth filter  4. 傳輸線殘段設計濾波器和步階阻抗式低通濾波器  設計模型.
24-6 設定開始與結束場景中的 程式 最後我們要替這個遊戲收個尾, 幫它把開始 的等待畫面跟結束畫面處理一下。
: The largest Clique ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11324: The largest Clique 解題者:李重儀 解題日期: 2008 年 11 月 24 日 題意: 簡單來說,給你一個 directed.
最新計算機概論 第 5 章 系統程式. 5-1 系統程式的類型 作業系統 (OS) : 介於電腦硬體與 應用軟體之間的 程式,除了提供 執行應用軟體的 環境,還負責分 配系統資源。
Chapter 20 塑模動態觀點:狀態圖 Statechart Diagram. 學習目標  說明狀態圖的目的  定義狀態圖的基本記號  展示狀態圖的建構  定義活動、內部事件及遞延事件的狀態 圖記號.
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
Department of Air-conditioning and Refrigeration Engineering/ National Taipei University of Technology MATLAB 操作與 系統動態模擬 SIMULINK 李達生.
第三章 自動再裝載運用篇 使用時機:裝載計劃完成時,尚有剩餘空 間的情形,維持已固定計劃而繼續做裝載 最佳化。以支持次日裝載計劃而提前調整 作業模式。 裝載物品設定和裝載容器設定如前兩章介 紹,於此不再重複此動作,直接從裝載計 劃設定開始,直接從系統內定的物品和容 器選取所需.
Chapter 2 Getting Started Insertion Sort: 能有效率地排序小數字的演算法 範例 :
CH 15- 元件可靠度之驗證  驗證方法  指數模式之可靠度驗證  韋式模式之可靠度驗證  對數常態模式之可靠度驗證  失效數為零時之可靠度估算  各種失效模式之應用.
: Ahoy, Pirates! ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11402: Ahoy, Pirates! 解題者:李重儀 解題日期: 2008 年 8 月 26 日 題意:有一個海盜島有 N 個海盜,他們的編號 (id)
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
1 Advanced Topics. 2 Processor 基本運作方式 Instruction fetch Decode Execution Write Back.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
資料結構實習-一 參數傳遞.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
觀測量的權 權的觀念與計算.
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/25 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH 2.4~CH 2.6 &
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
Image Interpolation Use SSE 指導教授 : 楊士萱 學 生 : 楊宗峰 日 期 :
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Chapter 10 m-way 搜尋樹與B-Tree
Probability Distribution 機率分配 汪群超 12/12. 目的:產生具均等分配的數值 (Data) ,並以 『直方圖』的功能計算出數值在不同範圍內出現 的頻率,及繪製數值的分配圖,以反應出該 機率分配的特性。
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
INTRODUCTION TO MATLAB SHAWNNTOU. What Is MATLAB? MATLAB® is a high-performance language for technical computing. MATLAB® is a high-performance language.
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/30 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH7.1~CH /12/26.
: Wine trading in Gergovia ★★☆☆☆ 題組: Contest Volumes with Online Judge 題號: 11054: Wine trading in Gergovia 解題者:劉洙愷 解題日期: 2008 年 2 月 29 日 題意:在 Gergovia.
函式 Function 東海大學物理系‧資訊教育 施奇廷. 函式簡介 當程式越來越大、越複雜時,程式的維護、 除錯會變得更困難,此時必須引入函式來 簡化程式或將程式分段,將程式重複的部 分改寫為函式,將程式「模組化」 這種作法有下列優點:節省程式發展的時 間、邏輯容易瞭解、程式容易除錯、可分 工合作完成程式.
指導教授 : 林啟芳 教授 組員 : 邱秉良 林育賢. 何謂 GPS  GPS 即全球定位系統,是一個中距離圓 型軌道衛星導航系統。它可以為地球表面 絕大部分地區( 98% )提供準確的定位、 測速和高精度的時間標準。
Visual C++重點複習.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
Microsoft Excel.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim.
著作權所有 © 旗標出版股份有限公司 第 14 章 製作信封、標籤. 本章提要 製作單一信封 製作單一郵寄標籤.
幼兒行為觀察與記錄 第八章 事件取樣法.
CH 14-可靠度工程之數學基礎 探討重點 失效時間之機率分配 指數模式之可靠度工程.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
1 第 18 章 管線技術 2 管線觀念 最佳化效能的技術之一 管線:經過一序列台階程序的資訊結構 管線並沒有侷限在硬體結構: – 管線觀念是一種基本觀念 – 適用於各種不同的層面 – 視野寬廣.
Presentation transcript:

第 5 章 處理器指令集

到底處理器應該提供哪些指令? 理論上,處理器只要具備某些基本的運算功能(指令),就有足夠的能力去計算任何一個函數。 電腦結構師必須考慮: 指令太多帶來的是便利性,而非功能性。 指令太多可能衍生效率問題。 電腦結構師必須考慮: 晶片大小 消耗功率 散熱問題

指令集重點 建置處理器的運算集合是一種妥協,一種介於硬體成本、程式便利、和工程層面(比如:功率消耗)之間的妥協。

表示法 所有的硬體運算 硬體運算表示法 就是所有指令的集合,稱為指令集。 指令集定義所有指令的字義和運作規格。 意指所使用的指令語法,稱為指令格式。 先把程式轉換成可執行的指令格式,然後再交給處理器。

指令的組成部分 執行運算的操作碼 擷取數值的運算元 置放結果的位置

典型指令格式 由一序列的二進制位元所組成 通常 指令開頭是操作碼欄位 接著跟隨著運算元欄位

典型指令格式圖

指令長度 固定長度指令 可變長度指令 所有的指令長度都相同 硬體比較簡單 硬體比較快速 具有各種不同長度的指令 比較吸引程式設計師 記憶體使用較有效率

固定長度指令的重點 對程式設計師而言,使用固定長度指令的理由似乎不夠充分,然而,固定長度指令集確實讓處理器硬體比較精簡,也比較快!

通用暫存器 高速設備 處理器的一部份 暫時的儲存裝置 數量不大(<100)編號由0到N-1 長度剛好可以容納整數

浮點暫存器 容納浮點數 通用暫存器和浮點暫存器的編號都是從0開始,當指令發出暫存器編號時,很容易搞混淆。 比如:指定暫存器3和6作整數運算,處理器會擷取通用暫存器;然而,如果指定暫存器3和6是作浮點運算,則必須擷取浮點暫存器。

暫存器規劃 Z = X + Y 動作: 把X載入暫存器3 把Y載入暫存器6 把暫存器3和6的數值相加 把結果放到暫存器7

專業術語 暫存器配置 暫存器溢出 把數值放在暫存器,改善執行效能。 選擇暫存器置放數值的程序,稱為暫存器配置。 暫存器數量不夠時,會發生暫存器溢出。 為了讓新數值使用暫存器,只好把原暫存器內的舊數值,先移到記憶體。

雙精準度 兩倍原運算元的位元數 通常把暫存器視為連續的硬體 比如:使用連續的暫存器儲存雙精準度整數 一半的整數放在暫存器4 一半的整數放在暫存器5

暫存器庫 系統可以有多個暫存器庫 暫存器庫就是暫存器的集合 把某些運算元放在某個暫存器庫,利於平行處理。 硬體細節可能會影響到暫存器配置 最佳化執行效能

典型的暫存器庫策略 將暫存器分割成兩個暫存器庫 ALU可以從這兩個不同的暫存器庫,同時取出加法所需要的兩個運算元。

暫存器庫圖

程式設計師受到的影響 運算元必須放在暫存器庫 無法保證每一個指令的運算元,都來自於不同的暫存器庫。 R ← X + Y S ← Z – X T ← Y + Z

暫存器衝突 暫存器衝突:無法把運算元配置到不同的暫存器庫。 通常由編譯器或組譯器通知。 程式設計師最好重新指定暫存器、或插入指令複製數值,才能有效地控制衝突的發生。

典型指令集 CISC(複雜指令集,Complex Instruction Set Compute ) RISC(精簡指令集,Reduced Instruction Set Computer )

CISC指令集 指令較多,往往有數百個指令。 某些複雜的計算指令可能需要一段時間執行,比如: 圖形指令在記憶體的運算動作 sine、cosine、…等計算函數 著名的英特爾Pentium,就是CISC處理器的代表。

RISC指令集 指令較少,剛好滿足數學函數計算的最低要求(比如:32個指令)。 通常一個時脈週期執行一個指令。 比如:MIPS指令集。

指令集結論 如果處理器的指令集有眾多(比如:數百個指令)且複雜(通常執行也相當耗時)的指令,則分類為CISC處理器;反之,如果指令集只有少數的指令,而且每個指令都只需要1個時脈週期的執行時間,則分類為RISC處理器。

管線執行 一種硬體最佳化技術 可以讓處理器更快速地完成一個指令 典型常見於RISC處理器

典型的指令週期 擷取下一個指令 檢視操作碼:決定需要幾個運算元 擷取每一個運算元 執行操作碼指定的運算 儲存結果到指定的位置

最佳化指令週期 RISC處理器被設計成平行的硬體單元,每個硬體單元執行一個階段,多個階段的硬體單元排列成多階管線。 管線會把結果,從目前的硬體單元 傳送到 下一個硬體單元。

五階管線執行圖

管線速度 所有階段的硬體都可以平行且獨立地運作 所有階段的硬體同時往右傳送指令 效果:N階管線可以同時執行N個指令

管線工作圖

RISC處理器和管線 雖然RISC處理器不能在單一時脈週期下,就執行完擷取−執行週期的所有階段,但是藉由平行硬體的指令管線提供幾乎相等的效能表現,一旦管線滿載,每一個時脈週期剛好會有一個指令完成。

管線技術 指令管線透通於程式設計師。 雖然如此,但是不瞭解管線技術很可能妨礙到程式設計的效能表現。 比如:如果管線項目不合,則管線硬體可能會發生指令遲滯。

指令遲滯 假設 指令K: C ← add A B 指令K+1: D ← subtract E C 以下兩個連續指令分別執行加法和減法 運算元和結果置放於暫存器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指令通常什麼都不做,只是浪費時間而已。 程式設計師可以插入no-op指令,來標示這裡發生指令遲滯現象。

前遞轉送 英文稱為forwarding技術 (forward字面意義為轉送) 讓ALU預先存取上一個指令的結果,解決連續算術指令的傳輸問題。 使用硬體來進行偵測,避免遲滯。 範例: 指令K: C ← add A B 指令K+1: D ← subtract E C

運算型態

程式計數器 就是所謂的”指令指標” 專用暫存器 使用擷取−執行週期 自動擷取下一個指令位址

程式計數器演算法 指定程式計數器一個初始值,重複執行下列工作{ 擷取:從程式計數器給予的位址,抓取程式的下一個指令 由剛剛擷取的指令得知下個指令位址,並送至內部位址暫存器A 執行:執行指令運算動作 複製位址暫存器A內容給程式計數器 }

分支指令和擷取執行 絕對分支指令 相對分支指令 最典型的就是jump指令 尾隨的運算元就是位址,會載入到內部位址暫存器A 。 最典型的就是br指令 運算元是一個有號數值,會加到內部位址暫存器A 。

副程式呼叫指令 jsr指令 ret指令 類似分支指令 jsr指令會先把目前的呼叫位址,完整地儲存到位址暫存器A。 副程式的結束指令

傳遞引數 有多種傳遞引數的方式 比如: 使用記憶體來傳遞引數 使用通用暫存器來傳遞引數 使用專用暫存器來傳遞引數

暫存器視窗 最佳化引數傳輸方式 在任何時間點,處理器只能看到一小部分的暫存器,稱為視窗。 每執行一個副程式,硬體會自動加入一個對應的視窗,等到副程式結束後,才會收回該視窗。 視窗之間可以出現重疊現象 重疊暫存器正是呼叫程式置放引數的地方 呼叫程式可以看見的重疊暫存器,副程式也可以看見。

暫存器視窗圖

MIPS指令集範例 MIPS處理器廣泛地應用在嵌入式系統 MIPS指令集是RISC處理器中最經典的範例

MIPS指令集

MIPS指令集(Cont.)

MIPS指令集(Cont.)

最小化指令集 最基本的指令集必須精簡,以保證高速運作。 不需要太多指令,只要具有最必要的基本指令即可。

正交原則 正交原則指出:每一個指令都只執行唯一的任務,再也沒有其它指令具備相同或類似的功能,來完成這個任務,也就是說,正交原則可以避免出現多個重複功能的指令,強化精簡觀念。

條件碼 內部的硬體機制 ALU會主動地設定條件碼 分支指令可以根據多個條件位元進行測試,並且根據這些測試的結果,來決定是否要作分支動作。

條件碼範例