第3章微處理器pt課件_第1頁
第3章微處理器pt課件_第2頁
第3章微處理器pt課件_第3頁
第3章微處理器pt課件_第4頁
第3章微處理器pt課件_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1第第3 3章章 微處理器2主要內(nèi)容n微處理器的一般結(jié)構(gòu);微處理器的一般結(jié)構(gòu);n8086微處理器的組成、引腳功能;微處理器的組成、引腳功能;n8086的內(nèi)部寄存器和標志位;的內(nèi)部寄存器和標志位;n8086的存儲器組織;的存儲器組織;n實模式和保護模式的存儲器尋址;實模式和保護模式的存儲器尋址;n80x86系列微處理器的結(jié)構(gòu)特點。系列微處理器的結(jié)構(gòu)特點。33.13.1 微處理器的一般結(jié)構(gòu)運算器運算器 算術(shù)邏輯運算,由加法器和算術(shù)邏輯運算,由加法器和(alu) 一些輔助邏輯電路組成一些輔助邏輯電路組成 指令流控制指令流控制控制器控制器 時序控制,產(chǎn)生節(jié)拍定時信號時序控制,產(chǎn)生節(jié)拍定時信號 指令譯碼

2、和操作控制指令譯碼和操作控制寄存器組寄存器組 存放臨時數(shù)據(jù)、運算的中存放臨時數(shù)據(jù)、運算的中 間結(jié)果、運算特征、操作數(shù)地址間結(jié)果、運算特征、操作數(shù)地址性能:性能:8位位16位位 32位位(主流主流) 64位位(趨勢趨勢)主主要要部部件件43.2 80863.2 8086微處理器主要內(nèi)容:主要內(nèi)容:n8086外部引線及功能;外部引線及功能;n8086的內(nèi)部結(jié)構(gòu)和特點;的內(nèi)部結(jié)構(gòu)和特點;n8086的工作時序。的工作時序。58086的硬件特性n16位微處理器,位微處理器,cmos型,型,40引腳引腳dip封裝封裝n16位數(shù)據(jù)總線,位數(shù)據(jù)總線,20位地址總線位地址總線n功耗:功耗:5v,360ma(低功

3、耗型(低功耗型80c86僅需僅需10ma)n輸入特性:輸入電流輸入特性:輸入電流0.01man邏輯0:0.8vn邏輯1:2.0vn輸出特性:輸出特性:n邏輯0:0.45v,最大2.0man邏輯1:2.4v,最大-0.4man輸出引腳負載能力:n74hc、74als、74as、74f負載10個n74ls負載5個n74、74s負載1個6一、指令流水線取指令取指令指令指令譯碼譯碼取操取操作數(shù)作數(shù)執(zhí)行執(zhí)行指令指令存放存放結(jié)果結(jié)果 cpu執(zhí)行一條指令的過程類似于工廠生產(chǎn)流水線,被分 解為多個小的步驟,稱為指令流水線。原料原料調(diào)度分配調(diào)度分配生產(chǎn)線生產(chǎn)線成品成品倉庫倉庫出廠出廠數(shù)據(jù)和程序指令控制器的調(diào)度分

4、配alu等 功能部件處理后的數(shù)據(jù)存儲器輸出7指令流水線n指令流水線有兩種運作方式:指令流水線有兩種運作方式:n串行方式: 取指令取指令和和執(zhí)行指令執(zhí)行指令在不同的時刻按順序執(zhí)行。在不同的時刻按順序執(zhí)行。n并行方式: 取指令取指令和和執(zhí)行指令執(zhí)行指令可同時執(zhí)行,需要有能并行工作可同時執(zhí)行,需要有能并行工作的硬件的支持。的硬件的支持。8串行工作方式n80868086以前的以前的cpucpu采用串行工作方式采用串行工作方式取指令取指令1執(zhí)行執(zhí)行1取指令取指令2執(zhí)行執(zhí)行2cpubus忙忙 碌碌忙忙 碌碌取指令取指令3執(zhí)行執(zhí)行3忙忙 碌碌空閑空閑空閑空閑空閑空閑t1t0t2t3t4t56個周期執(zhí)行了3條

5、指令9并行工作方式n8086cpu采用并行工作方式采用并行工作方式取指令取指令1取指令取指令2取指令取指令3取指令取指令4執(zhí)行執(zhí)行1執(zhí)行執(zhí)行2執(zhí)行執(zhí)行3bus忙碌忙碌執(zhí)行執(zhí)行4cput1t0t2t3t4t5取指令取指令5執(zhí)行執(zhí)行5忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌6個周期執(zhí)行了5條指令10并行操作的前提n取指令部件和指令執(zhí)行部件要能夠并行工作;取指令部件和指令執(zhí)行部件要能夠并行工作;n各部件執(zhí)行時間基本相同,否則需再細分;各部件執(zhí)行時間基本相同,否則需再細分;n取指令部件取出的指令要能暫存在取指令部件取出的指令要能暫存在cpu內(nèi)部內(nèi)部某個地方;某個地方;n指令執(zhí)行部件在需要時總能立即獲得

6、暫存的指令執(zhí)行部件在需要時總能立即獲得暫存的指令;指令;n需要解決轉(zhuǎn)移指令問題。需要解決轉(zhuǎn)移指令問題。11*超級流水線和超標量結(jié)構(gòu)n超級流水線超級流水線n指令的執(zhí)行步驟分得更細,流水線長度更長 例如,piii為14個階段,p4為20個階段n有利于提高主頻n轉(zhuǎn)移分支時的效率?n解決:分支預(yù)測、推測執(zhí)行n超標量結(jié)構(gòu)超標量結(jié)構(gòu)n對流水線中的關(guān)鍵“崗位”設(shè)置多個相同的執(zhí)行單元多個工人完成一道工序np4:倍頻alu2, fpu2(其中一個為并行fpu)nathlon xp:alu6,并行fpu3組128086 cpu的特點n采用并行流水線工作方式:采用并行流水線工作方式: 通過設(shè)置指令預(yù)取隊列(ipq)

7、實現(xiàn)n對內(nèi)存空間實行分段管理:對內(nèi)存空間實行分段管理: 將內(nèi)存分段并設(shè)置地址段寄存器,以實現(xiàn)對1mb空間的尋址。n支持多處理器系統(tǒng):支持多處理器系統(tǒng):8087 fpu執(zhí)行部件執(zhí)行部件取指部件取指部件138086 cpu的兩種工作模式n8086可工作于兩種模式下,即:可工作于兩種模式下,即: 最小模式和最大模式。最小模式和最大模式。n最小模式不支持最小模式不支持8087。存儲器和。存儲器和i/o控制信控制信號全部由號全部由cpu產(chǎn)生。產(chǎn)生。n最大模式支持最大模式支持8087。 cpu的部分信號線被用的部分信號線被用作作8087的控制,因此需要由的控制,因此需要由8288總線控制器總線控制器來產(chǎn)生

8、這些控制信號。來產(chǎn)生這些控制信號。注:80286以后的cpu不再區(qū)分這兩種工作模式。14最小模式下的連接示意圖8086cpu控制總線控制總線數(shù)據(jù)總線數(shù)據(jù)總線地址總地址總線線地址地址鎖存器鎖存器數(shù)據(jù)總線數(shù)據(jù)總線緩沖器緩沖器ale時鐘發(fā)時鐘發(fā)生生 器器8284a地址地址/數(shù)據(jù)數(shù)據(jù)82868282vcc mn/mxdendt/r15最大模式下的連接示意圖8088cpu數(shù)據(jù)總線數(shù)據(jù)總線地址總線地址總線地址地址鎖存器鎖存器數(shù)據(jù)總線數(shù)據(jù)總線緩沖器緩沖器時鐘發(fā)時鐘發(fā)生生 器器總總 線線控制器控制器控制總線控制總線8284a8288aleclk mn/mx82828286gnd168288總線控制器n最大模式

9、下,最大模式下, 8288總線控制器產(chǎn)生某些總線控制器產(chǎn)生某些cpu不再提供的控制信號。不再提供的控制信號。n8288產(chǎn)生的信號包括:產(chǎn)生的信號包括:n獨立的i/o控制命令:iorc、iowcn獨立的存儲器控制命令:mrdc、mwtcn中斷響應(yīng)信號和總線控制信號n以上三組信號取代了最小模式的:以上三組信號取代了最小模式的:nale、wr、io/m、dt/r、den、inta178288總線控制器邏輯框圖控制邏輯命令信號產(chǎn)生器控制信號產(chǎn)生器狀態(tài)譯碼器s0s1s2clkaenceniobdt/ rdenmce/pdenalemce/pden: pic主控級連 / io設(shè)備數(shù)據(jù)輸出控制信號 iob=

10、0時,pic主控級連;否則,用于允許i/o總線收發(fā)器mrdc(memr)mwtc(memw)amwciorc (ior)iowc (iow)aiowcinta (inta)18二、8086cpu的引線及功能引腳定義的方法可大致分為:n每個引腳只傳送一種信息(如每個引腳只傳送一種信息(如rdrd)n電平的高低代表不同的含義(如電平的高低代表不同的含義(如m/iom/io)n在不同模式下有不同的名稱和定義(如在不同模式下有不同的名稱和定義(如wr/lockwr/lock)n分時復(fù)用引腳(如分時復(fù)用引腳(如adad1515adad0 0)n引腳的輸入、輸出分別傳送不同的信息(如引腳的輸入、輸出分別傳

11、送不同的信息(如rq/gtrq/gt0 0)19最小模式下的主要引線nmn/mx 工作模式控制工作模式控制n=0(接地):工作于最大模式;n=1(接vcc):工作于最小模式。20最小模式下的主要引線地址總線、數(shù)據(jù)總線:地址總線、數(shù)據(jù)總線:nad15ad0:三態(tài):三態(tài)n地址/數(shù)據(jù)復(fù)用引腳。ale=1時作為地址線a16a0,ale=0時作為數(shù)據(jù)線d16d0。n傳送地址時為輸出,傳送數(shù)據(jù)時為雙向。na19-a16/s6-s3:輸出,三態(tài):輸出,三態(tài)n地址/狀態(tài)復(fù)用引腳。ale=1時作為地址線a19a16,ale=0時作為控制信號。21最小模式下的主要引線控制信號:控制信號:nwrwr:輸出,三態(tài):輸

12、出,三態(tài)n寫選通信號,表示cpu正在寫數(shù)據(jù)到mem或i/o設(shè)備。nrdrd:輸出,三態(tài):輸出,三態(tài)n讀信號,表示cpu正在從總線上讀來自于mem或i/o設(shè)備的數(shù)據(jù)。nm/iom/io:輸出,三態(tài):輸出,三態(tài)n區(qū)分是讀寫存儲器還是讀寫i/o端口(即地址總線上的地址是存儲器地址還是i/o端口地址)。22最小模式下的主要引線nden:輸出,三態(tài):輸出,三態(tài)n數(shù)據(jù)總線允許信號。用來打開外部數(shù)據(jù)總線緩沖器。ndt/ /r:輸出,三態(tài):輸出,三態(tài)n表明cpu正在傳送還是接收數(shù)據(jù),用來作為外部數(shù)據(jù)總線緩沖器的方向控制;nale:輸出:輸出n地址鎖存允許信號,表示地址/數(shù)據(jù)總線上傳輸?shù)氖堑刂沸盘枴R陨先齻€信號

13、的用法見下頁圖以上三個信號的用法見下頁圖23數(shù)據(jù)/地址分離電路(最小模式)8282或3738086bhe/s7a19-a16 /s6-s3ad15-ad0oe8286或245oedird15 - d0dt/ ralestba19 - a0bhe地址總線數(shù)據(jù)總線dencpu總線系統(tǒng)總線24最小模式下的主要引線nreset:輸入:輸入 n復(fù)位信號,保持4個以上時鐘周期的高電平時將引起cpu進入復(fù)位過程(if清0,并從存儲單元ffff0h開始執(zhí)行指令);nbhe/s7:輸出:輸出n高8位數(shù)據(jù)總線允許。在讀/寫操作期間允許高高8 8位數(shù)據(jù)總線位數(shù)據(jù)總線d16d16d8d8有效(即讀/寫數(shù)據(jù)的高8位)。

14、 nready:輸入:輸入n準備就緒。用于與存儲器或i/o接口的同步。n=0時cpu進入等待狀態(tài)(插入1個或多個等待周期)。25ready引腳的作用總線周期總線周期t2t1t3t4時鐘周期總線周期總線周期t2t1t3twaitt4標準總標準總線周期線周期增加了等待增加了等待狀態(tài)的總線狀態(tài)的總線周期周期若在若在t3周期上升沿檢測到周期上升沿檢測到ready=0,將插入等待周期,插入的個數(shù)取決于,將插入等待周期,插入的個數(shù)取決于ready何時變?yōu)楹螘r變?yōu)?。采樣采樣26中斷請求和響應(yīng)信號nintr:輸入:輸入n可屏蔽中斷請求輸入端,cpu要檢查if狀態(tài)nnmi:輸入:輸入n非屏蔽中斷請求輸入端,

15、cpu不檢查if狀態(tài)ninta:輸出:輸出n中斷響應(yīng)信號,表示cpu已進入中斷響應(yīng)周期。n此信號常用來選通中斷向量號。27總線保持信號nhold:輸入輸入n總線保持請求。用來直接存儲器存取(dma)。當cpu以外的其他設(shè)備要求占用總線以便訪問存儲器時,通過此引腳向cpu發(fā)出請求。nhold=1時,cpu停止執(zhí)行指令,并將地址/數(shù)據(jù)總線和控制總線中的所有三態(tài)控制線置為高阻狀態(tài)。nhlda:輸出:輸出n總線保持響應(yīng)。cpu對hold信號的響應(yīng)信號。指示cpu已進入保持狀態(tài)。28其他信號ntest:輸入:輸入n測試信號。執(zhí)行wait指令時將測試此引腳的狀態(tài)。n=0時,wait指令相當于空操作(nop

16、)。n=1時,wait指令將重復(fù)測試直到它變?yōu)?。n通常此引腳與8087算術(shù)協(xié)處理器相連。nclk:輸入:輸入n時鐘引腳。為cpu提供基本的定時信號。n占空比必須為33(高1/3,低2/3)。29三、8086cpu的內(nèi)部結(jié)構(gòu)n8086內(nèi)部由兩部分組成:內(nèi)部由兩部分組成: 執(zhí)行單元(執(zhí)行單元(eu) 總線接口單元(總線接口單元(biu)結(jié)結(jié) 構(gòu)構(gòu)30執(zhí)行單元n功能:執(zhí)行指令,具體操作如下功能:執(zhí)行指令,具體操作如下 從從ipq中取指令代碼中取指令代碼 譯碼譯碼 完成指定的操作完成指定的操作 結(jié)果保存到目的操作數(shù)結(jié)果保存到目的操作數(shù) 運算特征保存在標志寄存器運算特征保存在標志寄存器flags(僅對

17、影響標志的指令)(僅對影響標志的指令)31總線接口單元功能:功能:n從內(nèi)存中取指令到指令預(yù)取隊列從內(nèi)存中取指令到指令預(yù)取隊列ipq;n負責與內(nèi)存或負責與內(nèi)存或i/o接口之間的數(shù)據(jù)傳送;接口之間的數(shù)據(jù)傳送;n在執(zhí)行轉(zhuǎn)移指令時,在執(zhí)行轉(zhuǎn)移指令時,biu將清除將清除ipq,然后,然后從轉(zhuǎn)移的目的地址處開始取指令并重新填充從轉(zhuǎn)移的目的地址處開始取指令并重新填充ipq。328086結(jié)構(gòu)特點小結(jié)n有有eu和和biu兩個獨立的、同時運行的部件兩個獨立的、同時運行的部件n二者通過二者通過ipq構(gòu)成一個兩工位流水線構(gòu)成一個兩工位流水線n指令被指令被eu和和biu按流水線方式處理:按流水線方式處理:n提高了cpu

18、的運行速度;n提高了cpu的執(zhí)行效率;n降低了對存儲器存取速度的要求。33四、8086的工作時序n工作時序分為很多小的時間片工作時序分為很多小的時間片:n時鐘周期 一個時鐘脈沖所持續(xù)的時間。時鐘周期越短,一個時鐘脈沖所持續(xù)的時間。時鐘周期越短,cpu執(zhí)行速度越快。執(zhí)行速度越快。n總線周期 通過總線對存儲器或通過總線對存儲器或i/o接口進行一次訪問所需接口進行一次訪問所需要的時間。一般包括要的時間。一般包括4個時鐘周期。個時鐘周期。在在5mhz的工作頻率時,一個標準總線周期為的工作頻率時,一個標準總線周期為0.8s。34總線周期中各時鐘周期的操作nt1周期周期ncpu向存儲器或i/o發(fā)送地址nc

19、pu向地址/數(shù)據(jù)分離器(地址鎖存器)發(fā)送ale信號nt2周期周期n給存儲器或i/o發(fā)送寫入的數(shù)據(jù)n測試ready引腳狀態(tài),以決定是否插入等待周期n發(fā)出rd或wr信號nt3周期周期n等待存儲器或i/o存取數(shù)據(jù)完成n使數(shù)據(jù)在cpu與存儲器或i/o之間傳輸nt4周期周期n寫入數(shù)據(jù) 讀讀/ /寫總線周期的信號波形見下頁圖。寫總線周期的信號波形見下頁圖。35數(shù)據(jù)寫入存儲器時的總線操作寫總線周期由ale信號將地址鎖存到地址鎖存器den=0并且dt/r=1時打開總線緩沖器,將其放到系統(tǒng)數(shù)據(jù)總線上此信號與m/io信號共同構(gòu)成存儲器寫控制信號,將數(shù)據(jù)寫入存儲器36數(shù)據(jù)從存儲器讀出的總線操作讀總線周期den=0并

20、且dt/r=0時打開總線緩沖器,將其放到cpu總線上,供cpu讀入 較完整較完整的讀總線的讀總線周期周期此信號與m/io信號共同構(gòu)成存儲器讀控制信號由ale信號將地址鎖存到地址鎖存器373.3 3.3 8086內(nèi)部寄存器組n8086寄存器組又稱為寄存器組又稱為8086的程序設(shè)計模型的程序設(shè)計模型n它是程序設(shè)計中惟一可見的cpu部件n它是系統(tǒng)程序設(shè)計員的操作對象n含含14個個16位寄存器,按功能可分為三類:位寄存器,按功能可分為三類: 通用寄存器,通用寄存器,8個個 段寄存器,段寄存器,4個個 控制寄存器,控制寄存器,2個個388086寄存器概貌spipflagsahalbhblchcldhdl

21、axbxcxdxbpsidicsdsesss通用寄存器控制寄存器段寄存器16位16位39一、通用寄存器 數(shù)據(jù)寄存器(數(shù)據(jù)寄存器(ax,bx,cx,dx) 地址指針寄存器(地址指針寄存器(sp,bp) 變址寄存器(變址寄存器(si,di)40數(shù)據(jù)寄存器n用途:存放用途:存放臨時數(shù)據(jù)臨時數(shù)據(jù)和存放和存放運算操作數(shù)運算操作數(shù)。(例)。(例)n每個均為每個均為16位,但又可分為位,但又可分為2個個8位寄存器,即:位寄存器,即:nax ah,alnbx bh,blncx ch,clndx dh,dl例如:若例如:若(ax)1234h, 則則(ah)12h, (al)34h41數(shù)據(jù)寄存器特有的習慣用法na

22、x:累加器:累加器n所有i/o指令都通過ax(al)與接口傳送信息;n中間運算結(jié)果也多放于ax(al)中;n乘除法指令的一個操作數(shù)必須在ax(al)中。nbx:基址寄存器:基址寄存器n在間接尋址間接尋址中用于存放操作數(shù)的基地址。ncx:計數(shù)寄存器:計數(shù)寄存器n用于在循環(huán)指令或串操作指令中存放計數(shù)值。ndx:數(shù)據(jù)寄存器:數(shù)據(jù)寄存器n在間接尋址間接尋址的i/o指令中存放i/o端口地址;n在32位乘除法運算時,存放高16位數(shù)。42地址指針寄存器nsp:堆棧指針寄存器:堆棧指針寄存器n其內(nèi)容為堆棧棧頂?shù)钠频刂?;n任何堆棧操作后,sp都會自動增/減量。nbp:基址指針寄存器:基址指針寄存器n在間接尋址

23、間接尋址中用于存放操作數(shù)的基地址;n常用于訪問存放在堆棧中的數(shù)據(jù)。43bx與bp在應(yīng)用上的區(qū)別n作為通用寄存器,二者均可用于存放數(shù)據(jù);作為通用寄存器,二者均可用于存放數(shù)據(jù);n作為基址寄存器,默認情況下:作為基址寄存器,默認情況下:n用bx作為指針所訪問的數(shù)據(jù)在數(shù)據(jù)段(ds段);n用bp作為指針所訪問的數(shù)據(jù)在堆棧段(ss段)。注:間接尋址時注:間接尋址時 僅僅bx、bp、si、di可用于存儲器尋址;可用于存儲器尋址; 僅僅dx可用于可用于i/o尋址。尋址。44變址寄存器nsi:源變址寄存器,用于訪問源操作數(shù):源變址寄存器,用于訪問源操作數(shù)ndi:目標變址寄存器,用于訪問目的操作數(shù):目標變址寄存器

24、,用于訪問目的操作數(shù)n常用于操作數(shù)的間接尋址間接尋址或變址尋址變址尋址。n在串操作指令中,si存放源操作數(shù)的偏移地址,而di存放目標操作數(shù)的偏移地址。45二、段寄存器用于存放邏輯段的段基地址(簡稱段地址)用于存放邏輯段的段基地址(簡稱段地址)ncs:代碼段寄存器。代碼段存放指令代碼:代碼段寄存器。代碼段存放指令代碼nds:數(shù)據(jù)段寄存器:數(shù)據(jù)段寄存器 nes:附加段寄存器:附加段寄存器nss:堆棧段寄存器:指示堆棧區(qū)域的位置:堆棧段寄存器:指示堆棧區(qū)域的位置這兩個段存放操作數(shù)這兩個段存放操作數(shù)堆棧段ss數(shù)據(jù)段ds/es代碼段cs46三、控制寄存器nip:指令指針寄存器:指令指針寄存器n其內(nèi)容為下

25、一條要執(zhí)行的指令的偏移地址。nflags:標志寄存器:標志寄存器n存放指令執(zhí)行結(jié)果的特征:n有些指令(如算術(shù)指令)要改變flags的內(nèi)容(影響flags);n有些指令對flags無影響。n6個狀態(tài)標志位(cf,sf,af,pf,of,zf)n3個控制標志位(if,tf,df)p71例例oditszapc1502467891011flags473.4 80863.4 8086的存儲器組織n8086可訪問可訪問1mb的存儲空間(的存儲空間(為什么?為什么?)n哪個寄存器能夠放得下20位的地址?n用分段分段的方法解決。n段是存儲器中的一塊區(qū)域段是存儲器中的一塊區(qū)域n段起始于存儲器內(nèi)16字節(jié)整倍數(shù)的邊

26、界處。n段首地址的最低4位一定為0n用用段段和和偏移偏移的組合訪問存儲單元的組合訪問存儲單元n每個段最大為64kb,最小為16b(為什么?)n所有存儲單元的地址都由段地址加偏移地址組成n段地址被裝入段寄存器中以供尋址使用n偏移地址用于在64kb存儲器段內(nèi)選擇任一單元48段和偏移n設(shè)段起始地址設(shè)段起始地址=60000hn段地址段地址n偏移地址偏移地址n0ffffh6a000h12h60000h6 0 0 0段寄存器偏移地址a000h 0 0 0 0段地址段地址(16位位)段起始地址段起始地址 49物理地址和邏輯地址n物理地址物理地址: 存儲單元的硬件地址存儲單元的硬件地址物理地址=段地址16 (

27、或段地址左移4位)+偏移地址n邏輯地址邏輯地址: 段和偏移形式的地址段和偏移形式的地址n邏輯地址用于匯編語言程序設(shè)計n以下地址都是邏輯地址的例子:n2500h:0100hn段地址a000hn偏移地址0001h50例1:n已知已知cs=1055h,ds=250ah es=2ef0h,ss=8ff0h 數(shù)據(jù)段中某操作數(shù)偏移地址數(shù)據(jù)段中某操作數(shù)偏移地址=0204hn各段首地址=?n畫出各段在內(nèi)存中的分布n該操作數(shù)的物理地址=?n這個例子說明:這個例子說明:n段與段可以不連續(xù)n段之間可以重疊10550h250a0h2ef00h8ff00hds段段es段段ss段段 cs段段51默認段和偏移寄存器n808

28、6規(guī)定了訪問存儲器段的規(guī)則:規(guī)定了訪問存儲器段的規(guī)則:n此規(guī)則定義了段地址寄存器和偏移地址寄存器的組合方式,其默認規(guī)則如下表:段地址段地址默認偏移地址默認偏移地址用于訪問用于訪問csip指令指令sssp、bp堆棧中的數(shù)據(jù)堆棧中的數(shù)據(jù)dsbx、di、si、8位或位或16位數(shù)位數(shù)數(shù)據(jù)段中的數(shù)據(jù)數(shù)據(jù)段中的數(shù)據(jù)es串指令的串指令的di目標串操作數(shù)目標串操作數(shù)52例2:n設(shè)當前執(zhí)行的程序中某條指令的物理地址為設(shè)當前執(zhí)行的程序中某條指令的物理地址為5a1f6h,則程序所在的段的段地址,則程序所在的段的段地址=?當前?當前cs的內(nèi)容為多少?的內(nèi)容為多少?n解:(有多個解,求出任意一個即可) 5a1f6h=5

29、a10h10h+00f6h 所以,段地址=5a10h,cs的內(nèi)容為5a10h 想一想,還有哪些解?想一想,還有哪些解?思考題:設(shè)當前數(shù)據(jù)段位于存儲器的思考題:設(shè)當前數(shù)據(jù)段位于存儲器的a8000h到到b7fffh的地址空間,的地址空間, 問問ds的內(nèi)容應(yīng)是什么才能訪問該數(shù)據(jù)段的所有存儲單元?的內(nèi)容應(yīng)是什么才能訪問該數(shù)據(jù)段的所有存儲單元?53堆棧及堆棧段的使用n堆棧:內(nèi)存中一個特殊區(qū)域,用于存放需要保護的數(shù)據(jù)。堆棧:內(nèi)存中一個特殊區(qū)域,用于存放需要保護的數(shù)據(jù)。n堆棧按后進先出后進先出方式工作n堆棧通過ss(段地址)和sp(偏移地址)來訪問堆棧指針n堆棧的數(shù)據(jù)壓入方向是從高地址到低地址從高地址到低地

30、址,彈出方向則相反 (堆棧指針的變化舉例) n常用于常用于n響應(yīng)中斷n子程序調(diào)用n參數(shù)傳遞54例3:n若已知(若已知(ss)=1000h (sp)=2000hn則堆棧段的段起始地址= ?n棧頂?shù)刂??n若該段最后一個單元地址為若該段最后一個單元地址為10100hn則棧底單元的偏移地址=?段起始棧底棧頂堆棧段 553.5 80x863.5 80x86微處理器了解:了解:n80x86存儲器尋址方式存儲器尋址方式n80386cpu的特點及存儲管理的特點及存儲管理n*pentium 微處理器微處理器56一、80x86的存儲器尋址方式n實地址模式實地址模式n用段地址和偏移地址的組合尋址內(nèi)存的第一個1mb

31、空間n段地址在段寄存器(cs、ds、es、ss)中n保護虛地址模式保護虛地址模式n80286、80386、80486、pentiumpentium4 n尋址空間(每個段的大?。簄80286:224(8mb)n80386以上:232(4gb)n虛擬地址空間64tb(8k+8k個描述符)n段地址在內(nèi)存的描述符中,描述符由段寄存器的內(nèi)容來選擇(為什么這樣做?)57保護模式的存儲器尋址1mb實模式實模式存儲器存儲器 擴展擴展存儲器存儲器由段寄存器由段寄存器提供段信息提供段信息由描述符提由描述符提供段信息供段信息 fffffh00000h100000h兩種方式中的偏移兩種方式中的偏移地址的用法相同地址

32、的用法相同58保護虛地址模式n描述符(描述符(descriptor)n用于描述存儲器段的位置、大小、訪問權(quán)限n所有的描述符統(tǒng)一放在內(nèi)存中的描述符表中n全局描述符表gdt(系統(tǒng)中只有一個)n中斷描述符表idt(系統(tǒng)中只有一個)n包含了指向256個中斷處理程序入口地址的描述符n局部描述符表ldt(每個任務(wù)一個)ngdt和idt的基地址由gdtr和idtr給出nldt的基地址由ldtr(16位選擇子)間接給出n選擇子(選擇子(selector,選擇符),選擇符)n指定描述符在描述符表中的位置(偏移量)59如何訪問描述符段寄存器內(nèi)容段寄存器內(nèi)容(選擇子)(選擇子)全局描述符表全局描述符表局部描述符表局

33、部描述符表描述符表描述符表gdtr15 0gdt描述符線性地址空間偏移當前訪問的段存儲器60描述符的格式(80386以上)訪問權(quán)限訪問權(quán)限段界限段界限 (l19-l16)g( 粒度粒度) g=1,界限要乘以,界限要乘以4kb,即段的大小為,即段的大小為4kb4gb; g=0,段的大小為,段的大小為01mb。d(16/32) d=1,寄存器和偏移地址均為,寄存器和偏移地址均為32位;位;d=0時均為時均為16位。位。av(段有效段有效) av=1,段有效;,段有效;av=0,段無效。,段無效。訪問權(quán)限訪問權(quán)限:在保護方式下控制存儲的訪問。如:能否讀寫、優(yōu)先:在保護方式下控制存儲的訪問。如:能否讀

34、寫、優(yōu)先 級別、段如何擴展等。級別、段如何擴展等。 15 8 7 6 5 4 3 0段基址段基址 (b31b24)dg0av02461357段基址段基址 (b23b16)段基址段基址 (b15b0)段界限段界限 (l15l0)61例:0008hds描述符表描述符表 ff00000010000092段界限段界限段基地址段基地址00100000h001000ffh數(shù)據(jù)段數(shù)據(jù)段描述符描述符存儲器存儲器粒度粒度=0gdtr00000000hffffffffh62選擇子的格式n選擇子:加載到段寄存器中的內(nèi)容選擇子:加載到段寄存器中的內(nèi)容選擇子(selector):13位tirpl15 3 2 1 0從8

35、192個全局描述符或8192個局部描述符中選擇一個描述符=0 使用gdtr作為描述符表的段基址,即訪問gdt=1 使用ldtr作為描述符表的段基址,即訪問ldt請求者優(yōu)先級別00 最高,11最低63訪問局部描述符表ldtn將選擇子裝入將選擇子裝入ldtr(用(用lldt指令):指令):n(以下操作由cpu自動完成)n根據(jù)ldtr中的選擇子到gdt中選擇一個ldt的描述符(即ldt的描述符在gdt中):n這個描述符給出了ldt的基地址和段界限;n它被自動復(fù)制到ldtr的高速緩沖區(qū)中。n可以看出,可以看出,ldtr是是gdt中的某個中的某個ldt描述符描述符的偏移地址,見下頁圖示。的偏移地址,見下

36、頁圖示。n以后就可以用以后就可以用ldtr高速緩沖區(qū)中的基地址來高速緩沖區(qū)中的基地址來訪問局部描述符表了。訪問局部描述符表了。64訪問局部描述符表ldt選擇子選擇子gdtr15 0gdtldt描述符ldtr基地址基地址界限界限權(quán)限權(quán)限lldt偏移量15 0ldt段寄存器段寄存器偏移量65二、80386cpu主要特性:主要特性:n全全32位結(jié)構(gòu)位結(jié)構(gòu)(alu、bus、reg),可處理,可處理8/16/32位數(shù)據(jù)位數(shù)據(jù)n物理尋址空間物理尋址空間232字節(jié)(字節(jié)(4gb)n外部數(shù)據(jù)總線傳輸率為外部數(shù)據(jù)總線傳輸率為33mb/sn片內(nèi)集成片內(nèi)集成mmu,支持段式或頁式虛擬存儲管理和特權(quán)保護,支持段式或頁

37、式虛擬存儲管理和特權(quán)保護n虛存空間64tb,1mb或4gb/段,16384段/任務(wù)n4級特權(quán)層:一般os為0、1、2級,用戶程序為3級n實地址方式、虛擬實地址方式、虛擬8086方式和保護方式方式和保護方式n硬件支持多任務(wù),一條指令可完成任務(wù)轉(zhuǎn)換,轉(zhuǎn)換時間硬件支持多任務(wù),一條指令可完成任務(wù)轉(zhuǎn)換,轉(zhuǎn)換時間17usn更先進的流水線結(jié)構(gòu):更先進的流水線結(jié)構(gòu):16字節(jié)指令隊列字節(jié)指令隊列n時鐘速度:時鐘速度:1633mhz661. 內(nèi)部結(jié)構(gòu)分三個部分:分三個部分:n總線接口單元(總線接口單元(biu)n與存儲器和接口間的數(shù)據(jù)傳送n中央處理單元(中央處理單元(cpu)n指令預(yù)取部件、指令譯碼部件、執(zhí)行部件

38、n指令譯碼和執(zhí)行n存儲器管理單元(存儲器管理單元(mmu)n段管理部件、頁管理部件n地址轉(zhuǎn)換、虛存管理內(nèi)部內(nèi)部結(jié)構(gòu)結(jié)構(gòu)672. 主要引線功能nd0d31 :雙向,:雙向,32位數(shù)據(jù)總線位數(shù)據(jù)總線 ;na2a31 :輸出,:輸出,30位地址總線;位地址總線;nbe0be3 :字節(jié)選通輸出,與:字節(jié)選通輸出,與30位地址線結(jié)合可位地址線結(jié)合可 相當于相當于32位地址;位地址;nw/r:輸出,寫:輸出,寫/讀控制信號;讀控制信號;nd/c:輸出,數(shù)據(jù)傳送周期:輸出,數(shù)據(jù)傳送周期/控制周期;控制周期;nbs16:輸入,有效則總線寬度為:輸入,有效則總線寬度為16位;位;nads:輸出,地址信號有效;:

39、輸出,地址信號有效;nna:輸入,下一地址請求信號;:輸入,下一地址請求信號;n其他信號與其他信號與8086基本一致基本一致683. 內(nèi)部寄存器組n共共34個內(nèi)部寄存器個內(nèi)部寄存器8個通用寄存器(個通用寄存器(32/16/8位)位)6個段寄存器(個段寄存器(16位)位)指令指針(指令指針(32/16位)位)標志寄存器(標志寄存器(32/16位)位)4個系統(tǒng)地址寄存器(個系統(tǒng)地址寄存器(32+20位位/16位)位)控制寄存器控制寄存器調(diào)試和測試寄存器調(diào)試和測試寄存器69通用寄存器組(32/16/8位)neaxnebxnecxnedxnesinedinebpnesp低低16位可分為兩個位可分為兩個

40、8位寄存器位寄存器低低16位可作為獨立的寄存器位可作為獨立的寄存器注:注:32位尋址時,這位尋址時,這8個個32位寄位寄存器全部可用于提供偏移地址。存器全部可用于提供偏移地址。70段寄存器(16位)ncsndsnesnssnfsngs每個每個16位位段寄存器對應(yīng)一個段寄存器對應(yīng)一個64位位的高速緩沖段描述符的高速緩沖段描述符一旦選擇子裝入段寄存器,一旦選擇子裝入段寄存器,相應(yīng)的段描述符立刻被自動相應(yīng)的段描述符立刻被自動裝入高速緩沖段描述符中裝入高速緩沖段描述符中新增的新增的2個段寄存器個段寄存器71指令指針及標志寄存器(32位)n指令指針指令指針eipn標志寄存器標志寄存器eflags(增加了(增加了4個標志位)個標志位) iopl指定指定i/0操作處于哪個特權(quán)級;操作處于哪個特權(quán)級; nt當前任務(wù)是否嵌套于另一任務(wù);當前任務(wù)是否嵌套于另一任務(wù); rf調(diào)試結(jié)束,下一條指令后恢復(fù)程序的執(zhí)行;調(diào)試結(jié)束,下一條指令后恢復(fù)程序的執(zhí)行; vm是否工作于虛擬是否工作于虛擬8086方式方式eflags72系統(tǒng)地址段寄存器(程序不可見)ngdtr 48位全局描述符表寄存器位全局描述符表寄存器n指示全局描述符表的基地址基地址(32位位)和表的界限

溫馨提示

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

評論

0/150

提交評論