1 / 89

第四章

第四章. 中央處理單元的運算系統. 本章概要. 暫存器的設計 暫存器的資料傳送 算術邏輯運算單元 實數運算處裡 運算電路的整合. 中央處裡單元的基本架構. 暫存器群 算術邏輯運算單元 控制單元. 中央處理單元 (CPU) 的基本架構. 在電腦中,中央處理單元 (CPU) 是整體運作的 主動元件 ,它控制著輸出入裝置與記憶體的資料傳送,並直接對記憶體做資料或指令的讀取或寫入。. 中央處理單元內部共分成三個部份. 第一部份是暫存器群 (Registers). 通常暫存器分成三類

iliana-neal
Download Presentation

第四章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第四章 中央處理單元的運算系統

  2. 本章概要 暫存器的設計 暫存器的資料傳送 算術邏輯運算單元 實數運算處裡 運算電路的整合

  3. 中央處裡單元的基本架構 暫存器群 算術邏輯運算單元 控制單元

  4. 中央處理單元(CPU)的基本架構 • 在電腦中,中央處理單元(CPU)是整體運作的主動元件,它控制著輸出入裝置與記憶體的資料傳送,並直接對記憶體做資料或指令的讀取或寫入。

  5. 中央處理單元內部共分成三個部份

  6. 第一部份是暫存器群(Registers) • 通常暫存器分成三類 一是提供放置需要計算的資料,或存入算出結果的資料暫存器(Data Register)。在現行CPU的一次多個指令讀取與執行功能下,是需要多個資料暫存器,同時負責資料的取用與存放;這種多個(大量)資料暫存器的電腦設計,稱為通用暫存器型式的電腦。

  7. 第二是標示記憶體位址的位址暫存器(Address Registers),其為標示所要存取的資料,在記憶體的位址之相關暫存器,如直接讀取記憶體資料所需的位址暫存器(Address Register, AR)、讀取指令在記憶體的位址,所需的程式計數器(Program Counter, PC)、使用堆疊資料的堆疊基底(Stack Base, SB)與堆疊指標(Stack Pointer, SP)。

  8. 以及在記憶體過大,需要二個暫存器來組合位址的分段暫存器(Segment Register)與差值暫存器(Offset Register)等,都是屬於記憶體位址的表示暫存器。

  9. 第三是控制暫存器(Control Register),對於指令的執行或資料的存取所需要的控制;如專門讀取指令,載入控制單元做解碼的指令暫存器(Instruction Register,IR)、表示目前計算結果或系統狀況的狀態暫存器(Status Register);也有些控制單元以微程式(Micro Program)設計,即有控制字暫存器(Control Word Register),直接操作計算與暫存器的執行。

  10. 第二部份是算術邏輯運算單元(Arithmetic and Logic operation Unit, ALU) • 主要是提供指令所要求的各式運算功能,包括加減乘除四則運算的算術電路,以及NOT、AND、OR、XOR等等邏輯運算的電路,二進制位元的左移位或右移位運算的移位電路,還有處理條件式大於、等於、小於的比較器電路。

  11. 第三部份是控制單元(Control Unit, CU) • 提供整個硬體電路的時序控制脈波(Timing Control Clock),並解碼指令,以同步控制執行每一個指令的相關動作;譬如暫存器的資料載入或清除、算術邏輯運算單元要做何種運算?CPU對記憶體的讀寫資料控制,以及輸出入裝置對記憶體的大量資料傳輸等等程序動作。

  12. 暫存器的設計 正反器 變數的設定時間 有資料輸入的控制 有非同步控制的暫存器 暫存器的圖示 暫存器檔案

  13. 暫存器的設計 • 一般的暫存器是由D正反器所設計組合而成,若為十六位元暫存器則由十六個D正反器組成,三十二位元暫存器則由三十二個D正反器組成。 • 每個正反器共接同一個控制脈波,在前緣觸發時D正反器接受資料,脈波若不是在前緣時,D正反器就不會動作。

  14. D正反器的前緣觸發問題 • 如果資料的儲存,單純由D正反器設計,以其控制脈波的前緣觸發,做資料的輸入控制;那每一筆新的資料輸入,就固定在每一個控制脈波的前緣,資料一組一組的隨控制脈波前緣輸入。

  15. 這種隨控制脈波前緣輸入資料的暫存器設計,在實際執行上,就必須配合指令的資料輸入,而隨時改變前緣時間,並不能以固定的頻率做控制脈波。這種隨控制脈波前緣輸入資料的暫存器設計,在實際執行上,就必須配合指令的資料輸入,而隨時改變前緣時間,並不能以固定的頻率做控制脈波。

  16. 有資料輸入控制的暫存器 • 在平時暫存器未使用時,資料輸入控制為0,輸出值回授為輸入值,使暫存器內之值維持不變;若要有新的值輸入時,資料輸入控制設成1。 • 系統的控制脈波,仍同步掌握著暫存器輸出入的動作,即是在資料要輸入暫存器時,必須資料輸入控制為1,且在控制脈波的前緣。 • 這種暫存器的資料輸入,就以資料輸入控制接腳為主,而將系統控制脈波分離。

  17. 暫存器的各種表現方式

  18. 暫存器檔案(Register File) • 這種設計方式的記憶體位址,即代表暫存器編號,暫存器的讀寫,變成記憶體的存取;而每一個位址與暫存器編號的對應,可採用固定對映式,即記憶體位址就是固定為某一暫存器。 • 另一種即隨機編排式,即隨程式的資料讀入與寫出的順序,臨時編排不同的記憶體位址。

  19. 暫存器的資料傳送 多工器的選擇控制 三態閘的選擇控制 暫存器的計算 暫存器的資料搬移

  20. 暫存器的資料傳送 • 在CPU內部有許多暫存器,而這些暫存器必須依指令的需要,傳送或儲存資料,有的是暫存器之間互傳資料, 有的是暫存器對運算單元做資料計算, 也有的是暫存器對記憶體做資料存取。 而暫存器的資料輸入時,必須設定資料輸入控制接腳(DI)為1,才能將新資料寫入;若要讀取暫存器的資料,可隨時從輸出端讀取。

  21. 這種暫存器互相傳送的動作,是程式設計中常用的,在不同的環境下,使用的指令有:這種暫存器互相傳送的動作,是程式設計中常用的,在不同的環境下,使用的指令有: 高階語言 組合語言 CPU的微運算 指令說明 X=Y(Basic語言) LD R3,R1 R3R1 將R1值放入R3 LET X=Y X=Y;(C語言) MOV R9,R3 R9R3 將R3值放入R9

  22. 暫存器要讀取或寫入記憶體內的指令或資料 • 暫存器有一項主要的運用,是讀取記憶體內的指令或資料,另外也將CPU的計算結果存入記憶體中;所以暫存器與記憶體的互連,就是要應用在資料對記憶體的存取,這是配合記憶體指令之使用,所要設計的,而相關的記憶體指令,就是記憶體資料的讀出與寫入:

  23. 暫存器資料傳送的整合電路 • 將暫存器的互傳資料,與對記憶體的資料存取,及與運算單元的計算,組成一個暫存器資料傳送的整合電路,而這個電路即可執行相關的暫存器指令。

  24. 算術邏輯運算單元 算術運算電路 邏輯運算電路 移位電路 比較電路 狀態旗號 數值的擴展

  25. 算術邏輯運算單元 • 在中央處理單元中,專門負責資料計算的,為算術邏輯運算單元,這個硬體部份也是在配合程式的指令要求;一般計算的指令,大致分成四類:

  26. 一、算術指令(包括加、減、乘、除等運算) 二、邏輯指令(包括反相、及、或等運算) 三、移位指令(包括一般移位、帶進位移位、循環等運算) 四、條件指令(包括大於、等於、小於等運算) 而這些指令的執行,就必須有相關運算的電路。

  27. 加法運算電路(Addition Operation Circuit)

  28. 改良式的全加器(省略一個及閘) • 在信號經過邏輯閘時,會有時間延遲,即輸入信號至邏輯閘,到邏輯閘反應其輸出,中間所要花費的過程時間,此稱為傳遞延遲時間。 • 每個邏輯閘的延遲時間都不相同,而延遲時間當然是愈小愈好。計算是需要時間的,假設每個邏輯閘所要延遲的時間是1t。

  29. 減法運算電路(Subtraction Operation Circuit) • 在電腦中,一般是減法是用補數的加法運算方式執行的;譬如8-3=5,用補數加法運算時為8+7=15(7是10-3=7,即3的10補數),15將進位的10刪去,5即是答案。 • 在二進制中1000-0011=0101,實際上是1000+(1100+1)=0101(1100是0011的補數,再將1100+1=1101,故1101是0011的2的補數,而相加的結果有進位,予以刪除)。

  30. 減法電路的設計 • 一般A-B,稱A為被減數,而B為減數;在減法運算時,將減數轉成補數做加法運算即A+(-B),以A加上-B計算,而-B就是B值2的補數(補數B再加1),這是將B採用補數的技巧設計。

  31. 乘法運算電路(Multiplication Operation Circuit) • 八位元的資料相乘,其結果是十六位元,在電路設計時結果暫存器,是乘數或被乘數暫存器的兩倍大小。 • 乘法電路有三種不同的設計,第一是用累加電路,第二是乘法電路,第三是演算法電路。

  32. 乘法器電路 • 乘法電路是直接設計兩數相乘的邏輯電路,在兩數相乘時,乘數的位元逐一與被乘數相乘,這是及閘運算,然後做相加的計算,可以看出乘法電路是及閘與加法器的組合。

  33. 乘法器電路的問題 • 乘法器的設計可使乘法計算迅速,但固定電路的設計方式,會造成不同資料大小的相乘,不能適用的問題;譬如四位元乘法器,若是執行八位元、十六位元或三十二位元相乘,在設計上就沒有彈性。可能的做法是設計一個大型乘法器(譬如是六十四位元乘法器),以配合較少位元的相乘動作。

  34. 除法運算電路(Division Operation Circuit) • 除法運算的說明,一般採用較大的被除數值,除以普通的除數值;例如11010100/1010,因為假使被除數值與除數值相近,或被除數值較小時,相除結果將會形成帶小數的實數,於此謹討論整數運算電路。

  35. 用累減電路做除法運算的設計 • 累減電路,利用減法將被除數不斷的減去除數,直到被除數所剩的值小於除數時,即是餘數,而相減的次數為商值。

  36. 除法利用演算法的方式執行 • 如果除法利用演算法的方式執行,就如同手算一般;將被除數與除數放入暫存器中,然後依除數的位數,對被除數做相減動作,如果被除數大於除數值則相減,商值為1;若被除數小於除數則不減,商值為0;每計算完一位,即向右移位,直到整個被除數已相減而小於除數為止,所剩即是餘數。

  37. 除數值在執行計萛時,左邊位元有0的時候,必須調整後才能計算。除數值在執行計萛時,左邊位元有0的時候,必須調整後才能計算。 • 第一種是調整除數,其要求是除數的第一個位元必須是1,例如1011010(被除數)/00101(除數),在計算時必須為1011010/101,除數之前的00要消去,否則計算時會佔位數,而造成錯誤運算。

  38. 第二種是調整被除數,其要求是依除數的左邊第一個1位元出現前,有幾個0,就在被除數前加幾個0,例如1011010(被除數)/00101(除數),在計算時必須為001011010/00101,被除數前面要加上00才能計算。第二種是調整被除數,其要求是依除數的左邊第一個1位元出現前,有幾個0,就在被除數前加幾個0,例如1011010(被除數)/00101(除數),在計算時必須為001011010/00101,被除數前面要加上00才能計算。

  39. 組合式算術運算電路 • 算術電路是由加、減、乘、除四則運算組成的,在ALU設計時可以將這四個電路組合在一起,在執行時選擇所需要的運算電路結果。而這種設計的控制單元,選擇不同的算術指令執行,而一次只能選一種運算結果,卻四種電路都在動作。

  40. 分離式算術電路 • 分離式的運算電路,每一種計算可以分開執行,所以不同的運算,可以同時執行。

  41. 邏輯運算電路 • 邏輯運算主要是針對二進制的位元運算,一般用於二進制的編碼、解碼及碼的轉換,控制信號的設定,資料的比較、檢查與傳輸的狀態顯示,邏輯電路(布林代數式)的分析與設計,數值的條件改變等等技巧應用。

More Related