《計算機硬件基礎-4-中央處理器(對應教材第3章).ppt》由會員分享,可在線閱讀,更多相關《計算機硬件基礎-4-中央處理器(對應教材第3章).ppt(44頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、1,4 中央處理器,2,主要內容,微處理器的一般結構 8086微處理器的組成、引腳功能 8086的內部寄存器和標志位 8086的存儲器組織,3,4.1 微處理器的一般結構,運算器 算術邏輯運算,由加法器和 (ALU) 一些輔助邏輯電路組成 指令流控制 控制器 時序控制,產(chǎn)生節(jié)拍定時信號 指令譯碼和操作控制 寄存器組 存放臨時數(shù)據(jù)、運算的中 間結果、運算特征、操作數(shù)地址,,,,,性能:8位16位 32位 64位,主要部件,4,4.2 8086微處理器,主要內容: 8086外部引線及功能; 8086的內部結構和特點; 8086的工作時序。,5,,6,
2、8086的硬件特性,16位微處理器,CMOS型,40引腳DIP封裝 16位數(shù)據(jù)總線,20位地址總線 功耗:5V,360mA(低功耗型80C86僅需10mA) 輸入特性:輸入電流0.01mA 邏輯0:0.8V 邏輯1:2.0V 輸出特性: 邏輯0:0.45V,最大2.0mA 邏輯1:2.4V,最大-0.4mA 輸出引腳負載能力: 74HC、74ALS、74AS、74F負載10個 74LS負載5個 74、74S負載1個,7,,一、指令流水線,,,取指令,,指令譯碼,,取操作數(shù),,執(zhí)行指令,,存放結果,,,,,CPU執(zhí)行一條指令的過程類似于工廠生產(chǎn)流水線,被分 解為多個小的步驟,稱為指令流水線。,
3、原料,調度分配,生產(chǎn)線,成品,倉庫,出廠,,,,,,數(shù)據(jù)和程序指令,控制器的調度分配,ALU等 功能部件,處理后的數(shù)據(jù),存儲器,輸出,,,8,指令流水線,指令流水線有兩種運作方式: 串行方式: 取指令和執(zhí)行指令在不同的時刻按順序執(zhí)行。 并行方式: 取指令和執(zhí)行指令可同時執(zhí)行,需要有能并行工作的硬件的支持。,9,串行工作方式,8086以前的CPU采用串行工作方式,,,,取指令1,執(zhí)行1,取指令2,,執(zhí)行2,,,CPU,BUS,忙 碌,忙 碌,,取指令3,,執(zhí)行3,,忙 碌,,,,空閑,空閑,空閑,,,,,,,,t1,t0,t2,t3,t4,t5,6個周期執(zhí)行了3條指令,10,并行工作方式
4、,8086CPU采用并行工作方式,,,,,取指令1,取指令2,,,取指令3,取指令4,執(zhí)行1,執(zhí)行2,,執(zhí)行3,BUS,,執(zhí)行4,CPU,,,,,,,,t1,t0,t2,t3,t4,t5,,取指令5,,執(zhí)行5,6個周期執(zhí)行了5條指令,11,并行操作的前提,取指令部件和指令執(zhí)行部件要能夠并行工作; 各部件執(zhí)行時間基本相同,否則需再細分; 取指令部件取出的指令要能暫存在CPU內部某個地方; 指令執(zhí)行部件在需要時總能立即獲得暫存的指令; 需要解決轉移指令問題。,12,8086 CPU的特點,采用并行流水線工作方式: 通過設置指令預取隊列(IPQ)實現(xiàn) 對內存空間實行分段管理: 將內存分段并設置地址
5、段寄存器,以實現(xiàn)對1MB空間的尋址。 支持多處理器系統(tǒng):8087 FPU (Floating Point Unit),執(zhí)行部件,,,取指部件,,,,,,,13,二、8086CPU的引線及功能,引腳定義的方法可大致分為: 每個引腳只傳送一種信息(如RD) 電平的高低代表不同的含義(如M/IO) 在不同模式下有不同的名稱和定義(如WR/LOCK) 分時復用引腳(如AD15AD0) 引腳的輸入、輸出分別傳送不同的信息(如RQ/GT0),,,,,,,14,主要引線,地址總線、數(shù)據(jù)總線: AD15AD0:三態(tài) (高、低、高阻) 地址/數(shù)據(jù)復用引腳。ALE=1時作為地址線A16A0,ALE=0時作為數(shù)據(jù)線
6、D16D0。 傳送地址時為輸出,傳送數(shù)據(jù)時為雙向。 A19-A16/S6-S3:輸出,三態(tài) 地址/狀態(tài)復用引腳。ALE=1時作為地址線A19A16,ALE=0時作為控制信號。,15,主要引線,控制信號: WR:輸出,三態(tài) 寫選通信號,表示CPU正在寫數(shù)據(jù)到MEM或I/O設備。 RD:輸出,三態(tài) 讀信號,表示CPU正在從總線上讀來自于MEM或I/O設備的數(shù)據(jù)。 M/IO:輸出,三態(tài) 區(qū)分是讀寫存儲器還是讀寫I/O端口(即地址總線上的地址是存儲器地址還是I/O端口地址)。,,,,16,主要引線,DEN:輸出,三態(tài) 數(shù)據(jù)總線允許信號。用來打開外部數(shù)據(jù)總線緩沖器。 DT/R:輸出,三態(tài) 表明CPU正在
7、傳送還是接收數(shù)據(jù),用來作為外部數(shù)據(jù)總線緩沖器的方向控制; ALE:輸出 地址鎖存允許信號,表示地址/數(shù)據(jù)總線上傳輸?shù)氖堑刂沸盘枴?,以上三個信號的用法見下頁圖,17,主要引線,RESET:輸入 復位信號,保持4個以上時鐘周期的高電平時將引起CPU進入復位過程(中斷允許標志位(IF)清0,并從存儲單元FFFF0H開始執(zhí)行指令); BHE/S7:輸出 高8位數(shù)據(jù)總線允許。在讀/寫操作期間允許高8位數(shù)據(jù)總線D16D8有效(即讀/寫數(shù)據(jù)的高8位)。 READY:輸入 準備就緒。用于與存儲器或I/O接口的同步。 =0時CPU進入等待狀態(tài)(插入1個或多個等待周期)。,,18,三、8086 CPU的內部結構
8、,8086內部由兩部分組成: 執(zhí)行單元(EU) 總線接口單元(BIU),,19,執(zhí)行單元,功能:執(zhí)行指令,具體操作如下 從IPQ中取指令代碼 譯碼 完成指定的操作 結果保存到目的操作數(shù) 運算特征保存在標志寄存器FLAGS(僅對影響標志的指令),,,,,20,總線接口單元,功能: 從內存中取指令到指令預取隊列IPQ; 負責與內存或I/O接口之間的數(shù)據(jù)傳送; 在執(zhí)行轉移指令時,BIU將清除IPQ,然后從轉移的目的地址處開始取指令并重新填充IPQ。,21,8086結構特點小結,有EU和BIU兩個獨立的、同時運行的部件 二者通過IPQ構成一個兩工位流水線 指令被EU和BIU
9、按流水線方式處理: 提高了CPU的運行速度; 提高了CPU的執(zhí)行效率; 降低了對存儲器存取速度的要求。,22,四、8086的工作時序,工作時序分為很多小的時間片: 時鐘周期 一個時鐘脈沖所持續(xù)的時間。時鐘周期越短,CPU執(zhí)行速度越快。 總線周期 通過總線對存儲器或I/O接口進行一次訪問所需要的時間。一般包括4個時鐘周期。,23,總線周期中各時鐘周期的操作,T1周期 CPU向存儲器或I/O發(fā)送地址 CPU向地址/數(shù)據(jù)分離器(地址鎖存器)發(fā)送ALE信號 T2周期 給存儲器或I/O發(fā)送寫入的數(shù)據(jù) 測試READY引腳狀態(tài),以決定是否插入等待周期 發(fā)出RD或WR信號 T3周期 等待存儲器或I/O存取
10、數(shù)據(jù)完成 使數(shù)據(jù)在CPU與存儲器或I/O之間傳輸 T4周期 寫入數(shù)據(jù),讀/寫總線周期的信號波形見下頁圖。,24,數(shù)據(jù)寫入存儲器時的總線操作寫總線周期,,,由ALE信號將地址鎖存到地址鎖存器,,DEN=0并且DT/R=1時打開總線緩沖器,將其放到系統(tǒng)數(shù)據(jù)總線上,,,,此信號與M/IO信號共同構成存儲器寫控制信號,將數(shù)據(jù)寫入存儲器,,25,數(shù)據(jù)從存儲器讀出的總線操作讀總線周期,,,DEN=0并且DT/R=0時打開總線緩沖器,將其放到CPU總線上,供CPU讀入,,,,,較完整的讀總線周期,,此信號與M/IO信號共同構成存儲器讀控制信號,,由ALE信號將地址鎖存到地址鎖存器,26,4.3 8086內部
11、寄存器組,8086寄存器組又稱為8086的程序設計模型 它是程序設計中惟一可見的CPU部件 它是系統(tǒng)程序設計員的操作對象 含14個16位寄存器,按功能可分為三類: 通用寄存器,8個 段寄存器,4個 控制寄存器,2個,,27,8086寄存器概貌,,,,,SP,IP,FLAGS,,AH,AL,BH,BL,CH,CL,DH,DL,AX BX CX DX,BP,SI,DI,CS,DS,ES,SS,通用寄存器,控制寄存器,段寄存器,28,一、通用寄存器,數(shù)據(jù)寄存器(AX,BX,CX,DX) 地址指針寄存器(SP,BP) 變址寄存器(SI,DI),,29,數(shù)據(jù)寄存器,用途:存放臨時數(shù)
12、據(jù)和存放運算操作數(shù)。(例) 每個均為16位,但又可分為2個8位寄存器,即: AX AH,AL BX BH,BL CX CH,CL DX DH,DL,,,,,例如:若(AX)1234H, 則(AH)12H, (AL)34H,30,數(shù)據(jù)寄存器特有的習慣用法,AX:累加器 所有I/O指令都通過AX(AL)與接口傳送信息; 中間運算結果也多放于AX(AL)中; 乘除法指令的一個操作數(shù)必須在AX(AL)中。 BX:基址寄存器 在間接尋址中用于存放操作數(shù)的基地址。 CX:計數(shù)寄存器 用于在循環(huán)指令或串操作指令中存放計數(shù)值。 DX:數(shù)據(jù)寄存器 在間接尋址的I/O指令中存放I/O端口地址; 在
13、32位乘除法運算時,存放高16位數(shù)。,31,地址指針寄存器,SP:堆棧指針寄存器 其內容為堆棧棧頂?shù)钠频刂罚?任何堆棧操作后,SP都會自動增/減量。 BP:基址指針寄存器 在間接尋址中用于存放操作數(shù)的基地址; 常用于訪問存放在堆棧中的數(shù)據(jù)。,32,BX與BP在應用上的區(qū)別,作為通用寄存器,二者均可用于存放數(shù)據(jù); 作為基址寄存器,默認情況下: 用BX作為指針所訪問的數(shù)據(jù)在數(shù)據(jù)段(DS段); 用BP作為指針所訪問的數(shù)據(jù)在堆棧段(SS段)。,注:間接尋址時 僅BX、BP、SI、DI可用于存儲器尋址; 僅DX可用于I/O尋址。,33,變址寄存器,SI:源變址寄存器,用于訪問源操作數(shù) DI:目
14、標變址寄存器,用于訪問目的操作數(shù) 常用于操作數(shù)的間接尋址或變址尋址。 在串操作指令中,SI存放源操作數(shù)的偏移地址,而DI存放目標操作數(shù)的偏移地址。,34,二、段寄存器,用于存放邏輯段的段基地址(簡稱段地址) CS:代碼段寄存器。代碼段存放指令代碼 DS:數(shù)據(jù)段寄存器 ES:附加段寄存器 SS:堆棧段寄存器:指示堆棧區(qū)域的位置,,這兩個段存放操作數(shù),,堆棧段,SS,,,數(shù)據(jù)段,DS/ES,,,代碼段,CS,,,,,35,三、控制寄存器,IP:指令指針寄存器 其內容為下一條要執(zhí)行的指令的偏移地址。 FLAGS:標志寄存器 存放指令執(zhí)行結果的特征: 有些指令(如算術指令)要改變FLAGS的內容(影
15、響FLAGS); 有些指令對FLAGS無影響。 6個狀態(tài)標志位(CF,SF,AF,PF,OF,ZF) 3個控制標志位(IF,TF,DF),P71例,,,,,O,D,I,T,S,Z,,A,,P,,C,15,0,2,4,6,7,8,9,10,11,FLAGS,36,4.4 8086的存儲器組織,8086可訪問1MB的存儲空間(為什么?) 哪個寄存器能夠放得下20位的地址? 用分段的方法解決。 段是存儲器中的一塊區(qū)域 段起始于存儲器內16字節(jié)整倍數(shù)的邊界處。 段首地址的最低4位一定為0 用段和偏移的組合訪問存儲單元 每個段最大為64KB,最小為16B(為什么?) 所有存儲單元的地址都由段地址加偏移地
16、址組成 段地址被裝入段寄存器中以供尋址使用 偏移地址用于在64KB存儲器段內選擇任一單元,37,,段和偏移,設段起始地址=60000H 段地址 偏移地址 0FFFFH,,,,,,,,6A000H,12H,60000H,6 0 0 0,,段寄存器,,,偏移地址A000H,, ,,38,物理地址和邏輯地址,物理地址: 存儲單元的硬件地址 物理地址=段地址16 (或段地址左移4位)+偏移地址 邏輯地址: 段和偏移形式的地址 邏輯地址用于匯編語言程序設計 以下地址都是邏輯地址的例子: 2500H:0100H 段地址A000H 偏移地址0001H,39,例1:,已知CS=1055H,DS=250AH
17、 ES=2EF0H,SS=8FF0H 數(shù)據(jù)段中某操作數(shù)偏移地址=0204H 各段首地址=? 畫出各段在內存中的分布 該操作數(shù)的物理地址=? 這個例子說明: 段與段可以不連續(xù) 段之間可以重疊,,,,10550H,250A0H,2EF00H,8FF00H,,,,,,,,DS段,ES段,,,,,,,,,,,SS段,CS段,,40,默認段和偏移寄存器,8086規(guī)定了訪問存儲器段的規(guī)則: 此規(guī)則定義了段地址寄存器和偏移地址寄存器的組合方式,其默認規(guī)則如下表:,41,例2:,設當前執(zhí)行的程序中某條指令的物理地址為5A1F6H,則程序所在的段的段地址=?當前CS的內容為多少? 解:(有多個解,求出任意
18、一個即可) 5A1F6H=5A10H10H+00F6H 所以,段地址=5A10H,CS的內容為5A10H 想一想,還有哪些解?,思考題:設當前數(shù)據(jù)段位于存儲器的A8000H到B7FFFH的地址空間, 問DS的內容應是什么才能訪問該數(shù)據(jù)段的所有存儲單元?,42,堆棧及堆棧段的使用,堆棧:內存中一個特殊區(qū)域,用于存放需要保護的數(shù)據(jù)。 堆棧按后進先出方式工作 堆棧通過SS(段地址)和SP(偏移地址)來訪問堆棧指針 堆棧的數(shù)據(jù)壓入方向是從高地址到低地址,彈出方向則相反 (堆棧指針的變化舉例) 常用于 響應中斷 子程序調用 參數(shù)傳遞,43,,例3:,若已知(SS)=1000H (SP)=2000H 則堆棧段的段起始地址= ? 棧頂?shù)刂?? 若該段最后一個單元地址為10100H 則棧底單元的偏移地址=?,,,,,,,,段起始,,,,,,棧底,棧頂,,堆 棧 段,,,,,, ,44,作業(yè):,教材:3.1-3.11,謝謝大家!,