微处理机原理与应用.ppt
微處理機原理與應用Microprocessor,第二章微處理機的組成要素林學儀 老師(David Lin)國立勤益技術學院電子工程系九十五學年度第一學期,2023/10/13,Page-2,第二章 微處理機的組成要素,2.1微處理機模型2.2算術邏輯單元2.3微處理機的暫存器2.4控制單元2.5內部匯流排,2023/10/13,Page-3,2.1 微處理機模型,典型的共匯流排計算機系統 微處理機方塊圖 資料轉移與運算,2023/10/13,Page-4,典型的共用匯流排計算機系統,至少包含四部分連結到此共用的匯流排(1)中央處理單元(CPU)(2)唯讀記憶體(ROM)(3)隨機存取記憶(RAM)(4)輸入/輸出介面(I/O Interface),2023/10/13,Page-5,典型8位元微處理機模型,(a)微處理機方塊圖,2023/10/13,Page-6,典型8位元微處理機模型(續),(b)微處理機程式模型,2023/10/13,Page-7,資料轉移與運算,微處理機主要的功能是資料轉移資料(含指令)大都存在記憶體而非微處理機與記憶體間的資料移轉最常使用(需最多時間)做資料運算與輸入/輸出間的轉移,或將資料傳送到微處理機。算術與邏輯運算,遮罩或清除某些位元微處理機從狀態值的測試獲得判斷能力常用的狀態判斷有正負非零奇同位偶同位溢位與相等,2023/10/13,Page-8,2.2 算術邏輯單元,功能描述 微處理機內處理資料的主要單元 組成實例 依指定的算術與邏輯運算來決定 算術電路設計 邏輯電路設計 算術邏輯單元設計,2023/10/13,Page-9,微處理機的算術邏輯單元(ALU),2023/10/13,Page-10,ALU的功能描述,兩個輸入都有暫時暫存器做為緩衝一般都是從累積器取得資料,輸出則將資料送到任何與匯流排相連接裝置上,通常是將資料傳送到累積器 分成算術運算與邏輯運算兩大類算術運算包含最基本的加法與減法運算現今的微處理機則大多已包含比較、判斷、AND、OR、NOT、移位與循環等基本的邏輯運算也可分成算術邏輯移位與比較等四類,2023/10/13,Page-11,ALU組成實例,ALU是能執行多種運算的組合邏輯函數其設計是依指定的算術與邏輯運算來決定ALU有許多選擇線來選擇運算種類選擇線在ALU內解碼,k個選擇變數可指定2k個不同的運算,2023/10/13,Page-12,四位元的ALU方塊圖,選擇變數S2、S1、S0指定八種算術運算(配合進位輸Cin)與四種邏輯運算模式選擇輸入S2決定算術或邏輯運算功能選擇輸入S1 與S0指定要執行的算術或邏輯運算,2023/10/13,Page-13,ALU的設計,先完成1位元的算術邏輯單元設計,再將n個1位元的算術邏輯單元串接起來設計步驟1.先以加法器設計算術電路而不必管邏輯部分2.假定到各級的進位輸入等於0,由步驟1的算術電路表列出已知的邏輯運算3.修正算術電路以得到尚未獲得的邏輯運算,使整個算術邏輯單元能執行算術與邏輯運算。,2023/10/13,Page-14,算術電路設計,以加法器為基本元件,附加控制加法器資料輸入的控制電路就可完成不同算術運算的電路設計 設計能完成一組指定函數的算術電路,2023/10/13,Page-15,2.3 微處理機的暫存器,2023/10/13,Page-16,微處理機的暫存器(續),暫存器主要的目的是儲存暫時性的資料除了有些是為了某些特殊功能而存放資料外,其餘都可做為一般用途使用 不是所有的暫存器都可由程式設計者控制程式模型中的暫存器,2023/10/13,Page-17,2.3.1 累積器,2023/10/13,Page-18,累積器(續),微處理機中儲存資料與資料運算時,主要使用的暫存器大部份的算術與邏輯運算都會同時使用算術邏輯單元與累積器若運算需使用兩組資料時,其中一組會存於在累積器,而另外一組資料則存放於其他的暫存器或記憶體中 算術邏輯單元通常將運算完的資料存放於累積器中,因此會覆蓋先前的資料,2023/10/13,Page-19,累積器(續),有資料轉移的功能,可將資料在計算機系統中轉移 資料轉移順序是先將來源資料移轉至累積器中,然後再由累積器轉移資料至目的地 輸入輸出埠與記憶體間記憶體與記憶體間轉移在累積器上直接處理資料 清除累積器 設定所有位元值為1,累積器的資料左移右移取補數或其他運算,2023/10/13,Page-20,累積器(續),由下圖得知累積器如何經由資料匯流傳送資料與如何由內部匯流排接收資料,並且在累積器傳送資料時有暫時暫存器做為緩衝暫存器。,2023/10/13,Page-21,2.3.2 程式計數器(PC),2023/10/13,Page-22,程式計數器(續),追蹤已執行的指令,並指出下個執行的指令的位址由一連串指令所構成的程式存於記憶體,而且必須以正確的順序來執行程式指令 一般程式計數器的長度都比資料字組要長程式計數器與內部匯流排相連接可以接收邏輯裝置傳送至內部匯流排的資料通常從記憶體獲得資料,只有幾個特殊指令,2023/10/13,Page-23,程式計數器(續),PC在程式開始執行前會先載入一個值,此值代表第一個能被執行指令的位置PC會將內含值傳送到記憶位址暫存器(MAR)第一個程式指令的位址由16位元位址匯流排送到記憶體電路中記憶體將此位址的內含值經由資料匯流排傳送到指令暫存器,此指令暫存器內容即為指令,2023/10/13,Page-24,程式計數器(續),微處理機從記憶體提取指令後,PC值加一PC在指令執行前已經加一,並且指向下個指令PC在執行目前指令時會指向下個指令指令執行並不一定是依序執行先前的指令 有些指令值載入PC中,並在執行這些指令時,使得下個指令會從新的位址開始而不是依序的位址 PC存入副程式的起始位址後,PC值由副程式的起始位址開始增加,直到執行返回指令為止,2023/10/13,Page-25,2.3.3 狀態暫存器,2023/10/13,Page-26,狀態暫存器(續),儲存程式執行的結果,又稱旗標暫存器ALU執行某些暫存器的運算時,可以設定或清除狀態暫存器中的某些位元值,並由這些位元值寫出可分支的程式程式經由PC載入新的起始值而從新位址開始執行並能使用條件分支法,使分支只發生在結果與條件相符的狀態時,2023/10/13,Page-27,一般微處理機的狀態暫存器,2023/10/13,Page-28,一般微處理機的狀態暫存器(續),進位借位旗標(C)運算結果是否產生進位或借位 零旗標(Z)運算結果使暫存器值為0,則設定零旗標位元 負符號旗標(S)暫存器的最高有效位元為1,則設定此位元。中間進位旗標(I)較低的4個位元相加進位到5位元時設定此位元,亦稱為半進位,此位可元用來將BCD值轉換成二進位值。,2023/10/13,Page-29,一般微處理機的狀態暫存器(續),中斷旗標(IF)用來控制系統之中斷要求,若設定為1則中斷致能溢位旗標(O)若運算結果超過資料可表示的範圍時(2補數算術運算),則溢位旗標設定為1通常只有在“正數正數”,“正數負數”,“負數負數”與“負數正數”時才會發生。同位旗標(P)若運算結果有奇數個1時,則此位元設定為1。,2023/10/13,Page-30,實例 ALU運算的結果,將11101110與01100100兩數相加,結果可得進位輸出與正數01010010 狀態暫存器的進位旗標C=1,符號旗標S=0,零旗標Z=0,中間進位旗標I=1與溢位旗標O=0,2023/10/13,Page-31,2.3.4 堆疊指標,2023/10/13,Page-32,堆疊(Stack),程式執行時常常須保存返回位址,一般是將返回位址置於稱為堆疊的特殊記憶體中 堆疊的操作後進先出(LIFO)運算壓入的方式將資料放入堆疊,以相反的順序將資料彈出堆疊,最後放入的資料最先離開堆疊以堆疊指標取得目前堆疊最上層的位址堆疊指標與PC相同,都須有足夠的位元來對記憶體位置做定址,2023/10/13,Page-33,堆疊指標,堆疊指標使用後會自動遞減使堆疊指標自動指向下個可用位置,以建立向下成長的堆疊通常是以2個位元組來做運算(減少2個記憶體位置)堆疊指標的起始值由程式設計者事先設定若未將堆疊指標初值化,則推疊指標會開始在任何位置,會導致重要的資料或程式被覆蓋而造成程式錯誤使用堆疊來存放中間運算的結果由於疊操作是後進先出(LIFO)的裝置,因此當堆疊指標錯誤時會遺失堆疊資料,因此是由特殊暫存器來完成此項工作而不是一般暫存器,2023/10/13,Page-34,2.3.5 一般用途暫存器,2023/10/13,Page-35,一般用途暫存器(續),可能只用來儲存資料,也有可能做累積器般使用算術邏輯單元能將資料儲存於暫存器內本章使用B,C,D與E等四個一般用途暫存器暫存器的運算會影響狀態暫存器,因此可做為遞增或遞減計數器暫存器BC與DE可做為特殊用途的16位元暫存器,稱之為“暫存器對”(Register Pairs),2023/10/13,Page-36,2.3.6 記憶位址暫存器(MAR),2023/10/13,Page-37,記憶位址暫存器(續),儲存的二進位值是記憶體的位址微處理機對記憶體定址時,MAR會指向該位址記憶位址暫存器將位址資料送至位址匯流排,並以此輸出選擇記憶體位址或輸入/輸出埠MAR和其它邏輯一起使用以完成記憶體的定址工作此項邏輯會因不同的微處理機與不同的定址方式而有所差異,2023/10/13,Page-38,記憶位址暫存器(續),記憶位址暫存器大都只在提取週期使用指令在提取週期時載入指令暫存器,此時MAR與PC值相同,但PC在指令解碼後遞增,而MAR並未遞增。有些指令的執行並不須使用記憶體位址,例如清除累積器的指令執行週期則與指令種類有關,此時若指令需要定址記憶體,則會再度使用MARMAR與PC大都有相同長度,可以定址記憶體中的任意位置,2023/10/13,Page-39,2.3.7 指令暫存器(IR),2023/10/13,Page-40,指令暫存器(續),IR唯一的工作是儲存目前在執行的指令IR與微處理機的內部資料匯流排相連接,但只接收資料而無法送出資料至此資料匯流排上IR輸出經由指令解碼器以驅動控制邏輯指令解碼器於指令執行時將IR的內容解碼,然後通知微處理機所要執行的動作。指令由記憶體位置上提取後,便將其置於內部資料匯流排上,然後載入至指令暫存器,此時程式計數器會指向下個記憶體中的指令。,2023/10/13,Page-41,2.3.8 暫時暫存器,2023/10/13,Page-42,暫時暫存器(續),使用暫時暫存器來儲存暫時的資料由於ALU無儲存資料的能力,任何於輸入端的資料都會立刻在輸出端出現ALU由內部匯流排接收資料,將處理後的資料結果置於累積器中,因此若無暫時暫存器,則ALU無法完成工作。暫時暫存器不會出現在程武模型 程式設計者無法使用ALU中的暫時暫存器,2023/10/13,Page-43,2.4 控制單元,2023/10/13,Page-44,控制單元導論,控制單元含指令暫存器,指令解碼器與控制邏輯微處理機控制單元除了從記憶體中讀取程式指令並解碼外,還能在適當的時間操作控制訊號,完成指令暫存器的轉移操作資料處理單元內部的微運算都由控制單元啓動資料處理單元是由一些暫存器與相關邏輯函數組成控制邏輯能產生一連串微運算訊號的序向電路,使微處理機能以正確的時序協同工作,2023/10/13,Page-45,微處理機的簡化模型,2023/10/13,Page-46,微處理機方塊圖,由控制單元與資料處理單元的整合完成微處理機,控制單元,資料處理單元,2023/10/13,Page-47,2.4.1 以微程式法設計控制邏輯,微程式控制的方塊圖,2023/10/13,Page-48,暫存器轉移邏輯,暫存器的表示方法,2023/10/13,Page-49,暫存器轉移邏輯(續),暫存器轉移邏輯的基本符號,2023/10/13,Page-50,暫存器轉移邏輯(續),算術微運算,2023/10/13,Page-51,暫存器轉移邏輯(續),邏輯與移位微運算,2023/10/13,Page-52,微程式控制,控制電路以產生訊號的順序啓動資料處理單元微運算在特定時間內,控制電路的狀態起動特定的一組微運算然後依狀態與其他輸入情況進入次態,以起動其他的微運算,2023/10/13,Page-53,微程式控制(續),起動微運算的控制變數存於記憶體因控制順序通常不變,控制記憶體常使用ROM每次讀出控制記憶體中的微指令,可以起動系統中的微運算順序控制記憶體儲存的控制變數字稱為微指令每個微指令指定系統中對應的微運算微指令包含起動微運算的控制位元與決定下一位址的位元執行微運算後,控制單元須決定下個位址,2023/10/13,Page-54,2.5 內部匯流排,2023/10/13,Page-55,內部匯流排(續),微處理機的內部資料都是由內部匯流排傳送出來匯流排是由控制邏輯所送出的訊號來控制,但控制訊號並不成為匯流排的部分大多數的邏輯裝置都是使用雙向的方式與內部匯流排通訊,即裝置能從匯流排接收或送出資料與外部記憶體或輸入/輸出裝置互相傳送資料時,可將內部資料匯流排與外部資料匯流排相連結只有在控制邏輯送出致能訊號至與內部匯流排相連結的裝置時,才能將資料傳送至匯流排,2023/10/13,Page-56,內部匯流排(續),每個邏輯裝置都會與內部匯流排相連結,只有在控制邏輯送出致能訊號至裝置時,才能將資料傳送至匯流排下面我們將以B暫存器值(11001010)加到累積器(值原為11001110)內為實例,說明其工作順序,2023/10/13,Page-57,內部匯流排實例,1.累積器與B暫存器開始時並沒有與任何裝置相連結,此時指令暫存器中為ADD指令,2023/10/13,Page-58,內部匯流排實例,2.將A資料置於內部資料匯流排,此時ALU中的一個暫時資料暫存器連結至匯流排,並將匯流排資料載入暫存器,2023/10/13,Page-59,內部匯流排實例,3.將B值置於內部資料匯流排,此時另一個ALU的暫時暫存器會從匯流排將B資料載入,2023/10/13,Page-60,內部匯流排實例,4.ALU將11001110與11001010相加,並將結果10011000由內部匯流排輸出至A運算結果會設定狀態暫存器中的符號旗標S、進位旗標C、中間進位旗標 I 與同位旗標 P,2023/10/13,Page-61,內部匯流排實例,5.運算完成並將結果存於累積器,狀態暫存器存有新值,此時滙流排、暫時暫存器與指令暫存器都可提供其它運算使用 資料匯流排是轉移資料字組而不是位元,就16位元微處理機而言,內部資料匯流排是轉移2個位元組資料(16位元)在32位元或64位元微處理機,則一次可轉移4或8個位元組資料,