datapath)和控制單元_第1頁
已閱讀1頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、,第四章,MARIE: 簡易型電腦,2,第四章 教學目的,學習現(xiàn)今電腦的一些基本組成元件.能夠說明這些基本元件對程式執(zhí)行的影響.了解本書所提供的簡易型架構, 以及此架構跟真正電腦的差別.知道程式如何起運作.,3,4.1 簡介,第一章介紹了電腦系統(tǒng)的基本概念.在第二章中, 我們討論了不同的電腦系統(tǒng)是如何儲存和處理資料的.第三章描述了數(shù)位電路的基本元件.有了這些基礎以後, 現(xiàn)在我們知道了電腦的元件是如何運行, 以及它們是如何配

2、合來讓電腦系統(tǒng)為我們所用.,4,4.1 簡介,電腦的CPU會擷取, 解碼, 執(zhí)行程式指令.CPU的二個主要部份為資料路徑(datapath)和 控制單元(control unit)datapath 是由算術邏輯單元(arithmetic-logic unit)和儲存單元(storage units (registers))所組成, 它們之間是由資料匯流排所連接, 同時也連接主記憶體. CPU中的元件透過控制單元的信號來產(chǎn)生對應的

3、動作.,5,4.1 簡介,暫存器內的資料可供CPU存取.暫存器可以用D 型正反器來製作.32-bit的暫存器需要 32 個D型正反器.算術邏輯單元負責執(zhí)行 (ALU) 控制單元指定的邏輯和算術運算.控制單元根據(jù)程式計數(shù)暫存器和狀態(tài)暫存器來決定要發(fā)出怎麼樣的控制信號.,6,4.1 簡介,CPU會藉由資料匯流排來和其它系統(tǒng)共享資料.匯流排是一組導線, 每一導線同一時間可以傳輸一個bit.通常電腦系統(tǒng)的匯流排有二種: 點對點 (p

4、oint-to-point) 以及多點 (multipoint).,這是一個 point-to-point 匯流排組態(tài):,7,匯流排是由資料線, 控制線, 以及位址線.控制線會在資料線從某裝置傳送資料到另一裝置時, 控制資料流的方向, 並且控制何時那個裝置能存取匯流排.位址線會決定資料的來源或目的位置.,4.1 簡介,下張投影片會介紹匯流排組態(tài)的模型.,8,4.1 簡介,9,下面是一個多點匯流排.因為多點匯流排是資源共享的方式,

5、所以要透過協(xié)定來控制存取的權力, 這是建置在硬體內的.,4.1 簡介,10,4.1 簡介,自測分散式 (Distributed using self-detection): 裝置間自己決定誰可以拿到匯流排使用權.碰撞偵測分散式(Distributed using collision-detection): 任何裝置都可提出使用需求. 如果資料發(fā)生碰撞, 就重新再試一次.,菊鏈(Daisy chain): 使用權是從高優(yōu)先權傳到低優(yōu)先

6、權的裝置.集中平行式(Centralized parallel): 每個裝置直接連接到仲裁電路.,在主-從式組態(tài)中, 會有超過一個的匯流排主控者, 這時需要一個仲裁來決定那個裝置可以使用匯流排.匯流排仲裁有四種主要的分類:,11,4.1 簡介,每一部電腦至少都有一個用來維持其元件之間同步的時脈.每次資料搬移或計算都要固定的時脈週期數(shù).時脈頻率是以megahertz或gigahertz計算, 它決定了所有運算的速度快慢.時脈週期

7、時間是時脈頻率的倒數(shù).800 MHz 的時脈其時脈週期為 1.25 ns.,12,4.1 簡介,時脈速度和CPU的效能不能混為一談.一個程式執(zhí)行所需的CPU time 為:我們可以看到, 當我們減少程式的指令個數(shù), 每個指令的週期數(shù)目, 或是時脈週期的長度, 都可以增進CPU的產(chǎn)能.,我們會在後面的章節(jié)回過頭來探討這個問題.,13,4.1 簡介,電腦會透過輸出入(I/O)子系統(tǒng)和外界溝通.I/O 裝置會經(jīng)由不同的介面和CPU

8、連接.I/O 可以是記憶體映射(memory-mapped)– 就是說可以將I/O裝置視為主記憶體一樣.或是可以將 I/O 視為指令導向方式(instruction-based), 那 CPU 就會有特殊的I/O 指令集.,我們會在第七章學習I/O的細節(jié).,14,4.1 簡介,電腦的記憶體是由一個線性的可定址儲存空間所組成, 有點類似暫存器.記憶體可以是byte-addressable, 或 word-addressable, 一

9、個 word 通常由二或多個 bytes所組成.記憶體是由RAM晶片所構成, 通常會說成length ? width.如果某記憶體的word大小是 16 bits, 那一個 4M ? 16 的RAM晶片就有 4 百萬個16-bit 大小的記憶體空間.,15,4.1 簡介,電腦要如何存取某特定的記憶體空間呢?我們可看出 4M 可以表示成 2 2 ? 2 20 = 2 22 個字組.記憶體的位置可以從0 編號到2 22 -1.因此

10、, 這個系統(tǒng)的記憶體匯流排至少要22條 address位址線.位址線以二進制從0 “數(shù)到” 222 - 1. 每條線不是 “on” 就是 “off”, 這樣就可以指出所要的記憶體元素.,16,4.1 簡介,實體記憶體通常會使用超過一個RAM晶片.當記憶體位址是以bank交錯在不同晶片上的方式來組織時, 存取會比較有效率在low-order交錯方式中, 位址的low order bits 是用來選擇那個bank.因此, 在high

11、-order交錯方式中, 位址的high order bits 就是用來指出是那個bank.,下一張投影片會介紹這二種方法.,17,4.1 簡介,Low-Order 交錯,High-Order 交錯,18,4.1 簡介,當有一個高優(yōu)先權的事件發(fā)生時, 一般程式的執(zhí)行會被停止. CPU會透過中斷來轉移到某個事件.中斷可以是I/O請求, 算術錯誤 (像是除0), 或是執(zhí)行到一個未定義的指令.每個中斷都有相對應的處理程序, 它會告訴CPU

12、該如何處理所發(fā)生的中斷. 不可遮罩中斷有高優(yōu)先權, 不可被忽略.,19,4.2 MARIE,我們現(xiàn)在要用一個簡易型的電腦將之前討論的一些觀念作個整理.這部電腦名為 the Machine Architecture that is Really Intuitive and Easy, MARIE的用途只是用來介紹電腦系統(tǒng)的基本概念.雖然這個系統(tǒng)很簡單, 但是它有助於更深入的去了解一些更複雜的系統(tǒng)架構.,20,4.2 MARIE,MA

13、RIE 架構有下列特性:二進制, 2補數(shù)的資料表示.內儲程式, 指令和資料字組長度固定.4K words的word-addressable 主記憶體.16-bit 資料字組.16-bit 指令, 4 位元的 opcode 和 12 位元的位址16-bit 算術邏輯單元 (ALU).七個暫存器, 作為控制和資料的搬移.,21,4.2 MARIE,MARIE的七個暫存器:累加器, AC, 為一16-bit暫存器, 存有狀態(tài)

14、運算子 (就是, “l(fā)ess than”小於) 或是有二個運算元指令中的一個運算元.記憶體位址暫存器, MAR, 為一12-bit 暫存器, 存有指令或是運算元的記憶體位址. 記憶體緩衝暫存器, MBR, 為一16-bit暫存器 存著從記憶體或是要放到記憶體的資料.,22,4.2 MARIE,MARIE的七個暫存器:程式計數(shù)器, PC, 為一12-bit暫存器, 內有下一個要執(zhí)行指令的位址.指令暫存器, IR, 馬上要執(zhí)行的指

15、令.輸入暫存器, InREG, 一個 8-bit 暫存器, 內有從輸入裝置讀入的資料.輸出暫存器, OutREG, 一個 8-bit 暫存器, 裡面是準備要送到輸出裝置的資料.,23,4.2 MARIE,MARIE 架構的方塊圖.,24,4.2 MARIE,暫存器是連接著的, 而且是經(jīng)由通同的資料匯流排和主記憶體相連.匯流排上的每個裝置都有唯一的識別號碼, 當裝置要進行某種動作時, 就會去設定控制線以取得匯流排的使用權.累加器和

16、記憶體緩衝暫存器之間, 還有ALU和累加器和記憶體緩衝暫存器之間都有獨立的連接.這樣一來, 資料在這些裝置間搬移時就不需要用到主資料匯流排.,25,4.2 MARIE,MARIE 的資料路徑方塊圖.,26,4.2 MARIE,電腦的指令集架構 instruction set architecture (ISA) 苗述了指令的格式和機器所能執(zhí)行的最基本動作.ISA 是電腦軟體和硬體之間的介面.某些 ISA 含有好幾百種不同的只令.

17、MARIE的ISA 只有13個指令.,27,4.2 MARIE,右邊為MARIE的指令 :基本的 MARIE 指令有:,28,4.2 MARIE,這是LOAD 指令在IR的位元樣式:我們可以看到opcode為1, 而且要載入資料的位址為 3.,29,4.2 MARIE,這是SKIPCOND 指令在IR的位元樣式:我們可以看到 opcode為 8, 而 bits 11 and 10 是 10, 這表示如果AC內

18、的值大於0的話, 那下一個指令就會跳過不做.,這個指令的十六進制表示為何?,30,4.2 MARIE,其實每個指令都是有一連串的小指令所構成, 這些小指令稱為微指令(microoperations).指令所執(zhí)行的微指令可以用暫存器轉移語言register transfer language (RTL)來表示.在 MARIE的 RTL, 我們用M[X] 來表示資料存在記憶體X的位置, 而 ? 表示將位元組資料搬到暫存器或是記憶體位置.

19、,31,4.2 MARIE,LOAD指令的RTL為:同樣地, ADD指令的RTL 為:,MAR ? XMBR ? M[MAR]AC ? AC + MBR,MAR ? XMBR ? M[MAR], AC ? MBR,32,4.2 MARIE,回想一下, SKIPCOND會根據(jù)AC的執(zhí)來決定要不要跳過下一個指令.這個指令的 RTL 是最複雜的:,If IR[11 - 10] = 00 thenIf AC 0 then

20、PC ? PC + 1,33,4.3 指令的處理,擷取-解碼-執(zhí)行 週期(fetch-decode-execute cycle)是電腦執(zhí)行程式所進行的步驟.我們一開始要從記憶體fetch一個instruction, 然後放到IR.一放到IR, 這個指令馬上就會被decoded, 看下一步需要做什麼.如果是要存取某個記憶體(運算元)的值, 就會被取出放到MBR.都各就各位後, 指令就會被執(zhí)行.,下一張投影片會介紹這個流程.,34,

21、4.3 指令的處理,35,給定下列的MARIE 程式. 我們列出位址100 - 106 (hex)的助憶碼和二元樣式 :,4.4 一個簡單的程式範例,36,我們檢示一下當程式執(zhí)行時電腦內部發(fā)生了什麼事.這是一個 LOAD 104指令:,4.4 一個簡單的程式範例,37,第二個指令為 ADD 105:,4.4 一個簡單的程式範例,38,4.5 組譯器的探討,助憶碼, 就像LOAD 104, 對人來說很容易寫也很容易了解.但電腦是不可

22、能了解這樣的指令.組譯器(Assemblers) 將人類容易了解指令表示方式翻譯成電腦了解的機器語言.我們要注意組譯器和編譯器的差別: 在組合語言來說, 助譯指令和機器碼之間有一對一的關係. 對編譯器來說則不一定.,39,4.5 組譯器的探討,組譯器會讀取助憶原始碼二次, 進而產(chǎn)生目的程式檔 (object program file).在第一次讀取時, 組譯器會盡可能將程式組譯出來, 同時也產(chǎn)生一個符號表(symbol table

23、), 它記載著程式中所有符號的記憶體參照位址.在第二次讀取時, 就會利用符號表的值來完成所有的指令組譯.,40,4.5 組譯器的探討,試想我們的範例程式 (上面). 注意到我們包含了HEX 和 DEC 來標明常數(shù)的基底為何.讀第一次時, 我們建出符號表, 及部份的指令.,41,4.5 組譯器的探討,第二次讀完後, 就組譯完成了.,42,4.6 擴充我們的指令集,到目前為止, 我們所討論的 MARIE指令都是直接定址模式 ( di

24、rect addressing mode).這表示運算元的位址都是直接寫在指令中的. 有時候間接定址法(indirect addressing) 會比較有用,間接定址法意思就是說運算元位址的位址.如果你用過程式中的指標, 那你對間接位址就已經(jīng)很熟悉了.,43,4.6 擴充我們的指令集,為了幫助你了解在機器層級發(fā)生了什麼事, 我們在MARIE 指令集中加入間接定址模式. ADDI 指令就是放了指向運算元位址的位址. 下面的RTL告

25、訴我們在暫存器層級的意義:,MAR ? XMBR ? M[MAR]MAR ? MBR MBR ? M[MAR]AC ? AC + MBR,44,4.6 擴充我們的指令集,另一個有用的程式寫作工具就是subroutines. jump-and-store指令, JNS, 提供了某種程度的 subroutine 功能. JNS指令的細節(jié)就如下 RTL:,MBR ? PCMAR ? XM[MAR] ? MBRMBR ? X

26、AC ? 1 AC ? AC + MBRAC ? PC,JNS 能夠遞迴嗎?,45,4.6 擴充我們的指令集,最後一個有用的指令是 CLEAR.它只是將累加器清為.這是 CLEAR的 RTL:下一張投影片中, 我們用一個例子來包含這些新介紹的指令.,AC ? 0,46,4.6 擴充我們的指令集,100 |LOAD Addr101 |STORE Next102 |LOAD Num103 |SUBT One

27、 104 |STORE Ctr105 |CLEAR 106 |Loop LOAD Sum 107 |ADDI Next108 |STORE Sum 109 |LOAD Next 10A |ADD One10B |STORE Next 10C |LOAD Ctr 10D |SUBT One,10E |STORE Ctr 10F |SK

28、IPCOND 000110 |JUMP Loop111 |HALT112 |Addr HEX 118113 |Next HEX 0114 |Num DEC 5115 |Sum DEC 0116 |Ctr HEX 0117 |One DEC 1118 |DEC 10119 |DEC 1511A |DEC 2 11B |DEC 2511C |DEC 30,,

29、47,4.7 解碼的探討,電腦的控制單元讓內部的運作保持同步, 確保資料流在正確的時間到達正確的元件.控制單元有二種實作方式: 硬體接線式(hardwired) 和微程式(microprogrammed) 控制. 以微程式控制來說, 在微控制器中會有一個唯讀記憶體, 裡面有一個小型的程式.硬體接線式則是用數(shù)位邏輯元件來組成這個程式.,48,4.7 解碼的探討,以硬體接線式來說, 我們的簡易型系統(tǒng)需要一個 4-to-14解碼器來解.

30、右邊的方塊圖就是硬體接線控制單元的一般組態(tài).,49,4.7 解碼的探討,在微程式控制中, 控制是存在ROM, PROM或EPROM裡面.,50,4.8 實際的架構,MARIE 擁有很多現(xiàn)今架構的特睜, 但是它離實際的電腦還有一段距離.後面的投影片我們要看二個實際的機器架構. 我們會介紹 Intel架構, 它是 CISC 的機器. 另一個是MIPS, 它是一個 RISC.CISC 是 complex instruction s

31、et computer的簡寫.RISC 代表 reduced instruction set computer.,我們會在第九章深入比較 “RISC” 和 “CISC”.,51,4.8 實際的架構,最經(jīng)典的 Intel架構, 8086, 創(chuàng)於 1979年. 為 CISC 架構.IBM以此為CPU在1981年發(fā)表了著名的. 8086 有16-bit的 data 字組, 並支援 20-bit 記憶體位址.沒多久, 出現(xiàn)了簡單的廉

32、價版8-bit 8088. 它像 8086一樣也用20-bit 記憶體位址.,8086所能定址的最大記憶體空間為何?,52,4.8 實際的架構,8086 有四個 16-bit 通用暫存器, 這四個暫存器可以以半個字組的方式存取.它也有一個旗標暫存器, 一個指令暫存器, 和一個透過基底指標和堆疊指標二個暫存器存取值的堆疊. 8086 內沒有浮點運算處理.在1980年, Intel 發(fā)表了 8087 數(shù)值協(xié)同處理器, 因為價格的關係

33、, 沒有多少人使用.,53,4.8 實際的架構,1985, Intel 發(fā)表 32-bit的 80386.一樣沒有內建浮點運算單元.80486發(fā)表於1989, 是在 80386加上 that had built-in浮點運算和 cache記憶體.80386和80486 能和 8086 和 8088相容.用較小字組系統(tǒng)寫的軟體就用32-bit暫存器的低位元部份.,54,4.8 實際的架構,目前來說, Intel最先進的 32-bi

34、t 微處理器就是Pentium 4.其速度有 3.06 GHz. 這個時脈速度比8086快了超過 350 倍以上.提昇速度的方法包括了多層次cache和指令管線化.Intel, 和許多其它CISC微處理器, 都使用了很多RISC 架構的觀念.,55,4.8 實際的架構,MIPS 家族的CPUs 曾是這類CPU中最成功的.第一個MIPS CPU 在1986 發(fā)表.它的字組大小為 32-bit, 可定址的記憶體空間為4GB.過了

35、幾年, MIPS 處理器被用在通用型電腦和遊戲機中MIPS 架構現(xiàn)在有 32- 和 64-bit 版本.,56,4.8 實際的架構,MIPS 第一個 RISC微處理器之一.最原始的 MIPS 架構有 55 個不同的指令, 8086 則超過了100個.MIPS 設計的初衷就是效能: 它是 load/store 架構, 表示只有 load 和 store指令可以存取記憶體.MIPS架構中大量的暫存器, 減少了匯流排的傳輸量.,這樣的

36、設計是如何影響效能的?,57,電腦系統(tǒng)的主要元件為 控制單元, 暫存器, 記憶體, ALU, 和資料路徑.內部的時脈讓電腦內部所有事能保持同步.控制單元可以是微程式或是.硬體接線式的效能比較好, 而微程式可適性比較好, 容易改變.,結論,58,電腦透過不斷的fetch-decode-execute週期來執(zhí)行程式.電腦只能執(zhí)行機器語言模式的程式.組譯器將助譯碼翻譯成機器語言.Intel架構是CISC; MIPS 則是RISC

溫馨提示

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

評論

0/150

提交評論