




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章16位和32位微處理器本章內容:8086/8088CPU的內部結構和寄存器結構8086/8088CPU的引腳信號和功能8086/8088系統的工作模式與典型時序8086/8088的存儲器組織32位微處理器2.18086/8088CPU的內部結構和寄存器結構本節內容:簡介8086/8088CPU的內部結構8086/8088CPU的寄存器結構時鐘周期、總線周期的概念8086/8088CPU的引腳信號和功能8086/8088系統的工作模式8086/8088的操作時序8086/8088的存儲器組織2.1.0簡介8086:16位微處理器采用單一的+5V電源和40條引腳的雙列直插式封裝;時鐘頻率為5MHz~10MHz,最快的指令執行時間為0.4μs。8086有16根數據線和20根地址線,可以處理8位或16位數據,可尋址220即1MB的存儲單元和64KB的I/O端口。8088:準16位微處理器設計的主要目的是為了與Intel原有的8位外圍接口芯片直接兼容。8088的內部寄存器、運算器以及內部數據總線都是按16位設計的,但外部數據總線只有8條,因此執行相同的程序,8088要比8086有較多的外部存取操作而執行得較慢。2.1.18086/8088CPU的內部結構
8086微處理器內部結構框圖1.總線接口部件BIU功能負責CPU與內存或I/O端口傳送指令或數據。BIU從內存取指令送到指令隊列緩沖器。當EU執行指令時,BIU要配合EU從指定的內存單元或I/O端口中讀取數據,或者把EU的操作結果送到指定的內存單元或I/O端口去。組成:段寄存器、指令指針寄存器、地址加法器、指令預取隊列及總線控制邏輯。1)段寄存器所有寄存器都是16位的,因此,能夠提供的最大地址空間只能為64KB。為了尋址1MB,將存儲器的空間分成若干段,每段最大為64KB。段寄存器:用來存放段的起始地址(16位)的寄存器,設有四個段寄存器:CS
代碼段寄存器(CodeSegmentregister)DS
數據段寄存器(DataSegmentregister)SS
堆棧段寄存器(StackSegmentregister)ES
附加數據段寄存器(ExtraSegmentregister)
2)地址加法器由于8086內部寄存器都是16位的,需要一個附加結構-地址加法器來根據提供的16位信息產生20位地址。3)指令預取隊列(指令隊列緩沖器)8086:指令預取隊列為6字節8088:指令預取隊列為4字節指令預取隊列采用“先進先出”原則。要執行的指令預先由BIU從內存取出放在隊列中,然后EU再從隊列中取出指令并執行。一般情況下,EU每執行完一條指令,就可以立即從指令隊列中取指令執行,從而提高了CPU的效率。
4)總線控制邏輯
8086分配20條引腳線傳送20位地址、16位數據和4位狀態信息,這就必須要分時傳送。總線控制邏輯的功能,就是以邏輯控制方法實現上述信息的分時傳送。
2.執行部件EU
功能負責指令的譯碼、執行和數據運算。負責向總線接口部件BIU提供偏移地址。對通用寄存器和標志寄存器進行管理。組成:算術邏輯單元(ALU)、1個標志寄存器、8個通用寄存器、1個數據暫存寄存器和EU控制電路。
1)算術邏輯部件ALU用于進行8位和16位的算術和邏輯運算,也可以按照指令的尋址方式計算出尋址單元的16位偏移量。2)標志寄存器FR16位,用來反映CPU運算的狀態特征或存放控制標志。3)通用寄存器組4個16位數據寄存器AX、BX、CX、DX4個16位指針與變址寄存器:
堆棧指針寄存器SP(StackPointer)
基址指針寄存器BP(BasePointer)
源變址寄存器SI(SourceIndex)
目的變址寄存器DI(DestinationIndex)
4)數據暫存寄存器協助ALU完成運算,暫存參加運算的數據。5)EU控制電路它是控制、定時與狀態邏輯電路,接收從BIU中指令隊列取來的指令,經過指令譯碼形成各種定時控制信號,對EU的各個部件實現特定的定時操作。EU中所有的寄存器和數據通道(除指令隊列總線為8位外)都是16位的寬度,可實現數據的快速傳送。3.BIU和EU的流水線管理
(1)每當8086的指令隊列中有2個空字節或8088的指令隊列有1個空字節,BIU就會自動把后面的指令從存儲器取到指令隊列中,從而提高了CPU執行指令的速度。(2)每當EU準備執行一條指令時,它會從指令隊列前部取出指令,進行譯碼,然后去執行。在執行指令時,如果必須訪問存儲器或I/O端口,EU就會請求BIU去完成訪問外部的操作,如果此時BIU正好處于空閑狀態,那么會立即響應EU的請求。若EU向BIU發出請求訪問時,BIU正在將某條指令取到指令隊列中,此時BIU首先完成取指令操作,然后再去響應EU發出的訪問外界的請求。3.BIU和EU的流水線管理(續)(3)當指令隊列已滿,且EU對BIU又沒有總線訪問請求時,BIU進入空閑狀態。(4)在執行轉移指令、調用指令和返回指令時,如果要執行的指令不在指令隊列中,則指令隊列中原有內容被自動清除,BIU會重新取指令,把將要轉入的程序段的指令裝入到指令隊列中。2.1.28086/8088CPU的寄存器結構圖2.28086/8088的寄存器結構1.通用寄存器
分為:數據寄存器地址寄存器1)數據寄存器EU中有4個16位的數據寄存器AX、BX、CX、DX每個數據寄存器又可分為高字節H和低字節L寄存器,即AH、BH、CH、DH和AL、BL、CL、DL兩組。16位數據寄存器主要用于存放數據,也可存放地址,而8位寄存器只能用于存放數據,它們均可以用寄存器名來獨立尋址、獨立使用。2)地址指針寄存器和變址寄存器都是16位,一般用來存放偏移地址。指針寄存器SP和BP用來存取位于當前堆棧段中的數據,但SP和BP使用上有區別。堆棧指針寄存器SP給出棧頂的偏移地址。基址指針寄存器BP用來存放位于堆棧段中的一個數據區基址的偏移地址。源變址寄存器SI和目的變址寄存器DI用來存放當前數據段的偏移地址。寄存器的隱含使用2.指令指針寄存器16位,存放著BIU要取的下一條指令的偏移地址。指令執行時,每取一次指令IP就自動加1,這樣保證能按順序取出并執行指令。指令代碼存放在存儲器的代碼段,CPU利用CS和IP取得要執行的指令.修改IP中的內容,就可以改變指令的執行流向。3.標志寄存器(16位)16位標志寄存器FR用于反映指令執行結果或控制指令執行的形式。只用了其中的9位,分為:狀態標志位和控制標志位。1)狀態標志位(6位)用來反映算術或邏輯運算后結果的狀態,以記錄CPU的狀態特征。進位標志CF(CarryFlag)加法時,最高位(字節操作時的D7位,字操作時的D15位)是否有進位產生。減法時,最高位(字節操作時的D7位,字操作時的D15位)是否有借位產生。奇偶標志PF(ParityFlag)若運算結果低8位中“1”的個數為偶數,則PF=1;否則PF=0。一般用來檢測數據傳輸中是否發生錯誤。輔助進位標志AF(AuxiliarycarrryFlag)加法時,第3位向第4位有進位。減法時,第3位向第4位有借位。該標志位通常用于對BCD算術運算結果進行調整。零標志ZF(ZeroFlag)若運算結果為0,則ZF=1;否則ZF=0。符號標志SF(SignFlag)它和運算結果的最高位相同。溢出標志OF(OverflowFlag)若運算過程中發生了“溢出”,則OF=1,否則OF=0。
2)控制標志位(3位)用來控制CPU的操作,由程序設置或清除。中斷允許標志IF(InterruptEnableFlag)如果IF置“1”,則CPU可以接受可屏蔽中斷請求;反之,則CPU不能接受可屏蔽中斷請求。STI使IF置“1”,即開放中斷。
CLI使IF清“0”,即關閉中斷。方向標志DF(DirectionFlag)控制字符串操作指令的步進方向。
DF=1時,地址自動遞減;DF=0時,地址自動遞增。STD使DF=1。CLD使DF=0。跟蹤(陷阱)標志TF(TrapFlag)為調試程序的方便而設置的。TF=1,則處于單步工作方式;TF=0,將正常執行程序。例如,在系統調試軟件DEBUG中的T命令,就是用該標志位來進行程序的單步跟蹤的。4.段寄存器介紹如下內容:存儲器分段的概念邏輯地址和物理地址堆棧段寄存器的使用1)存儲器分段的概念8086/8088有20位地址線,能夠尋址1MB的內存空間;CPU內部存放地址信息的IP、SP、SI、DI或BX等寄存器卻只有16位,只能尋址64KB存儲空間。所謂分段技術就是把1MB的存儲空間分成若干邏輯段,每個邏輯段最大具有64KB的存儲空間。段內地址是連續的,段與段之間是相互獨立的。邏輯段可以在整個存儲空間浮動,即段的排列可以連續、分開、部分重疊或完全重疊,非常靈活。邏輯分段的示意2)邏輯地址和物理地址段首址:段的第一個單元的地址(20位),最低4位是全0(即段首址是16的整數倍)。段基址:段首址的高16位。段基址存放在段寄存器中。偏移地址:段內存儲單元距離段首地址的偏移量(以字節數計算,16位),也稱有效地址EA。偏移地址存放在IP、BP、SI、DI或BX中,或者是通過計算得到。邏輯地址:通常用段基址:偏移地址的形式來描述,在程序中使用。物理地址的形成物理地址:指CPU和存儲器進行數據交換時實際尋址所使用的地址,是用20位二進制數或5位十六進制數表示的地址。任何一個單元的20位物理地址都是由它的邏輯地址變換得到的:物理地址=段基址×16+偏移地址
例題設(CS)=4232H,(IP)=0066H,試計算物理地址。注意一個存儲單元的物理地址是唯一的,而邏輯地址是可以不唯一的。例如,物理地址是12345H,它的邏輯地址可以是1233H:0015H也可以是1234H:0005H。3)堆棧堆棧是以“先進后出”或“后進先出”原則管理的存儲區域。堆棧段也采用段定義語句在存儲器中定義,最大為64KB。可在1MB的存儲空間內浮動。堆棧段所在存儲區中的位置由堆棧段寄存器SS和堆棧指針SP來指示。SS給出堆棧段的段基址SP存放棧頂地址,指出從棧頂到段首址的偏移量。棧頂與棧底之間單元中的內容是堆棧段中的有效數據。堆棧操作有入棧(PUSH)和出棧(POP)兩種。4)段寄存器的使用四個段寄存器分別指明四個現行可尋址的邏輯段:(1)代碼段(CodeSegment):用來存放當前正在運行的程序。系統在取指令時將尋址代碼段,其段基址和偏移地址分別由段寄存器CS和指令指針IP給出。(2)數據段(DataSegment):存放當前運行程序所用的數據。用戶在尋址該段內的數據時,可以缺省段的說明,其偏移地址可通過多種尋址方式形成。(3)堆棧段(StackSegment):堆棧為保護、調度數據提供了重要的手段。系統在執行棧操作指令時將尋址堆棧段,段基址和偏移地址分別由段寄存器SS和堆棧指針SP提供。(4)附加數據段(ExtraSegment):該段是一個輔助的數據區,也用于數據的保存。用戶在訪問段內的數據時,其偏移地址同樣可以通過多種尋址方式來形成,但在偏移地址前要加上段的說明(即段跨越前綴ES)。段寄存器的使用情況只要修改段寄存器的內容,就可以將相應的存放區設置在內存存儲空間的任何位置上。這些區域可以相互獨立,也可以部分或完全重疊。段寄存器使用時的一些基本約定2.28086/8088CPU的引腳信號和功能本小節內容:8086最小模式下引腳的功能定義8086最大模式下引腳的功能定義8088的引腳特性8086/8088CPU的引腳信號8086/8088的引腳信號(括號中為最大模式時引腳名)
2.2.1
8086最小模式下引腳的功能定義
最小/最大模式設定,輸入。=1時:工作方式設置為最小模式,在此方式下,系統全部控制信號由8086本身提供;
=0時:工作方式設置為最大模式。AD15~AD0地址/數據復用引腳。在總線周期的T1狀態用來輸出要訪問的存儲器或I/O端口地址,在T2~T4狀態,作為數據傳輸線。傳送地址時為三態輸出,傳送數據時可雙向三態輸入/輸出。在8088中,只有AD7~AD08條地址/數據線,AD15~AD8只用來輸出地址。A19/S6~A16/S3地址/狀態復用引腳,三態,分時輸出。在T1狀態:輸出高4位地址。訪問存儲器時:A19~A16與AD15~AD0組成20位地址;訪問I/O端口時:不使用這4條引線。在T2~T4狀態:輸出狀態信息。S6=0,表示當前8086/8088與總線相連(即S6始終保持低電平)。S5
用來指示狀態寄存器中的中斷允許標志IF的狀態(S5為1允許中斷,S5為0禁止中斷)。S4和S3的組合高8位數據總線允許/狀態復用引腳,三態,輸出。在T1狀態:輸出,若=0,表示高8位數據線D15~D8上的數據有效。在T2~T4狀態:輸出S7(無意義)。ALE地址鎖存允許信號,輸出,正脈沖。提供給地址鎖存器8282的控制信號。在任何一個總線周期的T1狀態,ALE輸出有效電平,以表示當前總線上輸出的是地址信息,要求進行地址鎖存。RESET復位信號,輸入,高電平有效。至少維持4個時鐘周期的高電平,接通電源時間不能小于50μs。READY“準備好”信號,輸入,高電平有效由所尋址的存儲器或I/O端口發來的響應信號,表明存儲器或I/O端口的狀態。CPU在T3采樣READY,若READY=0,則在T3后插入一個或多個TW,直至READY=1,進入T4,完成數據傳送,從而結束當前總線周期。讀信號,三態、輸出。=0時,表示將要執行一個對存儲器或I/O端口的讀操作。寫信號,三態、輸出。=0時,表示將要執行一個對存儲器或I/O端口的寫操作。存儲器/外設控制信號,輸出
=1:訪問存儲器
=0:訪問I/O端口一般被用于存儲芯片或I/O接口芯片的片選()譯碼電路中。NMI非屏蔽中斷請求信號,輸入,上升沿有效。此請求不受IF的影響。只要此信號一出現,CPU就在現行指令結束后響應中斷。INTR可屏蔽中斷請求信號,輸入,高電平有效。當INTR=1時,表示外設提出了中斷請求,8086/8088在每個指令周期的最后一個T狀態去采樣此信號。若IF=1,則CPU響應中斷,轉去執行中斷服務程序。中斷響應信號,輸出,低電平有效。用于對外設的中斷請求作出響應。連續周期中的兩個負脈沖。第1個脈沖是通知外設接口,它的中斷請求已獲允許;外設接口收到第2個負脈沖后,往數據總線上放中斷類型碼。HOLD、HLDAHOLD:總線保持請求信號,輸入,高電平有效HLDA:總線保持響應信號,輸出,高電平有效HOLD信號是系統中的其它總線主控部件向CPU發出的請求占用總線的控制信號。當CPU從HOLD線上收到一個高電平請求信號時,如果CPU允許讓出總線,就在當前總線周期完成時,于T4狀態從HLDA線上發出一個應答信號,對HOLD請求作出響應。同時,CPU使地址/數據總線和控制總線處于浮空狀態,從而讓出了總線。當請求部件完成對總線占用后,CPU就立即使HLDA變低,同時恢復對總線的控制。數據收發控制信號,輸出,三態。用來控制數據總線驅動器8286的數據傳送方向。
=1:發送數據
=0:接收數據數據允許信號,輸出,低電平有效,三態。提供給數據總線收發器8286,表示CPU準備發送或接收一個數據。它常作為數據總線驅動器的三態控制信號。等待測試信號,輸入,低電平有效。用于多處理器系統中且只有在執行WAIT指令時才使用。當CPU執行WAIT指令時,每隔5個時鐘周期對該引腳進行一次測試:若=1時,CPU將停止取下條指令而進入等待狀態,重復執行WAIT指令,直至該信號為0,CPU才繼續往下執行被暫停的指令。等待期間允許外部中斷。WAIT指令可使CPU與外部硬件同步,相當于外部硬件的同步信號。
CLK系統時鐘,輸入通常與8284A時鐘發生器的時鐘輸出端CLK相連。該時鐘信號的低/高之比常采用2:1。8086CPU的標準時鐘頻率為5MHz。VCC、GND電源線VCC接入的電壓為+5V±10%。兩條地線GND均應接地。2.2.28086最大模式下引腳的功能定義當
為低電平時,8086CPU工作在最大模式。在最大模式下,許多總線控制信號不是由8086直接產生,而是通過總線控制器8288產生的。因此,8086在最小模式下提供的總線控制信號的引腳(24~31腳)就需重新定義,改作支持最大模式之用。總線周期狀態信號,輸出,三態。8288總線控制器依據這三個狀態信號產生訪問存儲器和I/O端口的控制命令。QS1、QS0指令隊列狀態信號,輸出。這兩個信號組合起來提供了本總線周期的前一個時鐘周期中指令隊列的狀態,以便于外部器件(如8087協處理器)對8086/8088內部指令隊列的動作進行跟蹤。總線請求信號輸入/總線請求允許信號輸出,雙向,低電平有效,三態。供協處理器發出使用總線的請求信號和接收CPU對總線請求的回答信號。后者比前者的優先級高。總線封鎖信號,輸出,低電平有效,三態。當
為低電平時,表示CPU獨占總線使用權。信號由指令前綴LOCK產生,而在LOCK后面的一條指令執行完后,便撤銷了
信號。此信號是為避免多個處理器使用共有資源時產生沖突而設置的。2.2.38088的引腳特性8088和8086之間引腳上的不同主要表現在:(1)由于8088CPU外部一次只傳送8位數據,因此其引腳A15~A8僅用于輸出地址信號,而8086則將此8條線變為雙向分時復用的AD15~AD8。(2)8086CPU上的信號在8088上變為(HIGH)信號。這是一條狀態輸出線,它與和信號一起,決定了8088CPU在最小模式下現行總線周期的狀態。HIGH在最大模式時始終為高電平輸出。(3)8088的存儲器/外設控制引腳是。2.38086/8088系統的工作模式與典型時序包括:8086/8088系統的工作模式指令周期與總線周期8086/8088系統的典型時序2.3.18086/8088系統的工作模式本節內容:最小模式組成最大模式組成1.最小模式組成
當=1時,8086CPU工作在最小模式之下,即單處理器系統方式。此時,構成的微型機中只包括一個8086或8088CPU,且系統總線的所有控制信號都由CPU直接給出,系統中的總線控制邏輯電路被減到最少,適合于較小規模的應用。8086最小模式下的典型配置
8086最小模式下的典型配置
1)時鐘發生器8284A8086/8088CPU所需的時鐘信號由外部的時鐘發生器提供。8284A是Intel公司專為8086設計的時鐘信號發生器,能產生8086所需的5MHz系統時鐘信號,即系統主頻。8284A除提供恒定的時鐘信號外,還對外界輸入的準備就緒信號RDY和復位信號進行同步操作。8284A與8086的連接圖8284A與8086的連接2)地址鎖存器8282由于8086/8088的部分地址線和數據線采用分時復用的技術,在一個總線周期內總線首先傳送地址,然后傳送數據。在每個總線周期的T1狀態利用地址鎖存允許信號ALE的后沿,將地址信息鎖存到地址鎖存器內,經鎖存后的地址信號可以在整個總線周期保持不變,從而為外部提供穩定的地址信息。Intel8282是具有三態緩沖的單向8位鎖存器。使用時,將8282的選通信號輸入端STB與ALE相連。當ALE有效時,8086的地址信號被鎖存并以同相方式傳至輸出端,供存儲器芯片和I/O接口芯片使用。8086除了20位地址外,也要鎖存,所以需要3片8282作為鎖存器。8282鎖存器與8086的連接8282鎖存器與8086的連接3)數據收發器8286當系統中所連接的存儲器及I/O設備較多時,為了使系統能穩定工作,可以采用發送器和接收器來增加驅動能力。發送器和接收器簡稱為收發器,也常稱為總線驅動器。Intel8286是8位雙向三態緩沖器。8286的數據線有兩組,A7~A0、B7~B0,引腳T用來控制數據傳輸的方向,當T=1時,方向為A→B;當T=0時,方向為B→A。是輸出允許信號,當它為0時,允許數據傳送。8086的數據總線是16位,如果要選用8286做總線驅動器,則需要2片。如果是較小規模的最小模式系統,不需要總線驅動器,那么就用CPU的、、組合起來決定系統中數據傳輸的方式。8286收發器和8088的連接8286收發器和8088的連接2.最大模式組成
當=0時,8086CPU工作在最大模式。在最大模式下,構成的微型計算機中除了有8086CPU之外,還可以接另外的CPU,如8087、8089等,以構成多處理器系統。在最大模式系統中,系統的許多控制信號不再由8086直接發出,而是由總線控制器8288對8086發出的控制信號進行變換和組合,從而得到各種系統控制信號。1)8086最大模式典型配置
圖2.138086最大模式典型配置2)8288總線控制器主要引腳信號8288的原理框圖2.3.2指令周期與總線周期本小節內容:時鐘周期指令周期與總線周期1.時鐘周期時鐘周期是CPU的基本時間計量單位,是CPU工作的最小時間單位,也稱節拍脈沖或T周期,由主頻決定。對于8086來講,若其主頻為5MHz,則一個時鐘周期為200ns。2.總線周期與指令周期指令周期每條指令的執行由取指令、分析指令和執行指令等操作完成,執行一條指令所需要的時間稱為一個指令周期。簡單指令執行時間就比較短,而復雜指令執行的時間就比較長,因此,不同指令的指令周期是不相同的。一個指令周期由一個或幾個總線周期組成,一個總線周期又由若干個時鐘周期組成。2.指令周期與總線周期(續)總線周期8086CPU通過總線對存儲器或I/O端口進行一次信息的輸入或輸出過程,稱為總線操作,執行該操作所需要的時間,稱為總線周期。在8086中,一個最基本的總線周期由4個時鐘周期組成,每個時鐘周期稱為T狀態,因此基本總線周期用T1、T2、T3、T4表示。典型的8086總線周期序列典型的8086總線周期序列2.3.38086/8088的系統的典型時序本小節內容:系統的復位和啟動操作總線讀/寫操作1.系統的復位和啟動操作RESET引腳至少維持4個時鐘周期的高電平信號時,8086/8088復位。如果是初次加電引起的復位,則要求維持不小于50μs的高電平。8086/8088復位后將從內存的FFFF0H處開始執行指令。因此,一般在該處放一條無條件轉移指令,轉移到系統程序的入口處。這樣系統一旦被啟動,便自動進入系統程序。8086的復位時序8086的復位時序2.總線讀/寫操作可以分為:總線讀操作(CPU從存儲器或I/O端口讀取數據)總線寫操作(CPU將數據寫入存儲器或I/O端口)(1)最小模式下總線讀周期8086/8088CPU最小模式下總線讀周期時序(2)最小模式下總線寫周期8086/8088CPU最小模式下總線寫周期時序(3)最大模式下的總線讀操作最大模式下總線讀周期時序(4)最大模式下的總線寫操作最大模式下總線寫周期時序3.中斷響應操作
當8086/8088CPU收到外界從INTR引腳上送來的中斷請求信號,并且滿足IF=1時,CPU在執行完當前指令后,便執行一個中斷響應時序。8086/8088中斷響應時序2.48086/8088的存儲器組織本小節內容:小端存放和大端存放8086存儲器組織8088存儲器組織2.4.1小端存放和大端存放對于一個多字節數據,可采用從高字節到低字節或相反的順序存放在主存中。由于存儲器按字節編址,當數據的低字節存儲在低地址中,而高字節存放在高地址中,這種數據存放方式稱為小端存放;反之,當數據的高字節存儲在低地址,而低字節存放在高地址中,這種數據存放方式稱為大端存放。數據存放方式2.4.2
8086存儲器組織8086存儲器的組織1.奇區和偶區8086的1MB存儲空間實際上分為兩個512KB的存儲體(又稱存儲庫),分別叫奇存儲體(奇區)和偶存儲體(偶區)。偶存儲體與數據總線D7~D0相連,該存儲體中每個地址均為偶數地址;奇存儲體與數據總線D15~D8相連,該存儲體中每個地址均為奇數地址。
、A0代碼表示的奇偶區的選擇2.
8086系統中信息的存放存儲器的物理組織分成了偶區和奇區,但是,在邏輯結構上,存儲單元是按地址順序排列的,每個字節信息只占一個單元,有唯一物理地址。相鄰的兩個字節被稱為一個“字”。字節信息(8位)在存儲器中按順序排列存放。字信息(16位)需占用兩個連續地址的單元,將每一個字的低字節存放在低地址中,高字節存放在高地址中,并以低地址作為該字的地址。雙字信息(32位,一般作為地址指針),需占用四個連續地址單元,其低位字是被尋址地址的偏移量;高位字是被尋址地址的段基址。
指令和數據在存儲器中的存放偶字節、奇字節、偶字和奇字偶字節:字節信息存放單元的地址是偶地址奇字節:字節信息存放單元的地址是奇地址偶字(規則字):字信息的低位字節從偶數地址開始存放奇字(非規則字):字信息的低位字節從奇數地址開始存放對偶字節、奇字節、偶字的存取可在一個總線周期內完成。而奇字的存取需兩個總線周期:首先作奇字節讀/寫,然后作偶字節讀/寫。各種字節和字的讀操作示例2.4.3
8088存儲器組織由于每次傳送的是8位數據,不存在奇偶存儲體的概念。存儲器的20位地址線A19~A0和8根數據線分別和8088CPU的對應地址線與數據線相連。8088CPU每訪問一次存儲器只讀/寫一個字節信息,而讀/寫一個字需要兩次訪問存儲器才能完成。故在8088系統中,程序運行速度比在8086系統中要慢些。2.532位微處理器1985年10月,Intel公司推出了32位微處理器80386,它與8086、80286相兼容,它是為多用戶、多任務操作系統設計的一種高集成度的芯片。該芯片采用32位數據總線、32位地址總線,直接尋址能力達4GB。本節內容:32位微處理器8038632位微處理器Pentium多核處理器2.5.132位微處理器80386本節內容:80386的特點80386的內部結構80386的寄存器結構80386的工作方式1.80386的特點提供32位的指令。提供32位外部總線接口,最大數據傳輸速率為32Mbps。具有片內集成的存儲器管理部件MMU,可支持虛擬存儲和特權保護。具有實地址方式、保護方式和虛擬8086方式。直接尋址能力達4GB。通過配用數值協處理器可支持高速數值處理。在目標碼一級與8086、80286芯片完全兼容。2.80386內部結構80386的功能部件指令預取部件IPU指令預取部件IPU將存儲器中的指令按順序取到長度為16B的指令預取隊列中,以便在CPU執行當前指令時,指令譯碼部件IDU對下一條指令進行譯碼。一旦指令隊列向指令譯碼部件輸送一條指令,指令隊列便會空出部分字節,指令預取部件就會向總線接口部件發總線請求,如總線接口部件此時處于空閑狀態,則會響應此請求,從存儲器取指令填充指令預取隊列。指令譯碼部件IDU指令譯碼部件IDU中除了指令譯碼器外,還有譯碼指令隊列,此隊列能容納3條譯好碼的指令。只要譯碼指令隊列有剩余空間,譯碼部件就會從指令預取隊列取下一條指令進行譯碼。執行部件EU執行部件EU包括運算器ALU、1個64位的多位移位器加法器和8個32位的通用寄存器,它們共同執行各種數據處理和運算。執行部件中還包括ALU控制部分和保護測試部分,前者實現有效地址的計算、乘除法的加速等功能,后者檢驗指令執行中是否符合涉及的存儲器分段規則。存儲器管理部件包括分段部件SU和分頁部件PU。分段部件SU管理面向程序員的邏輯地址空間,并且將邏輯地址轉換為線性地址;分頁部件PU管理物理地址空間,將分段部件或者指令譯碼部件產生的線性地址轉換為物理地址。總線接口部件BIU總線接口部件BIU是80386和外界之間的高速接口。在80386內部,指令預取部件從存儲器取指令時,或者執行部件在指令執行過程中訪問存儲器和外設以讀寫數據時,都會發出總線請求,BIU會根據優先級對這些請求進行仲裁,從而有條不紊地服務于多個請求,并產生相應的總線操作所需的信號,包括地址信號、讀寫控制信號等。BIU也能實現80386和協處理器之間的協調控制。3.80386的寄存器結構
有7類32個寄存器,它們是:通用寄存器段寄存器指令指針和標志寄存器控制寄存器系統地址寄存器調試寄存器測試寄存器1)通用寄存器80386有8個32位通用寄存器,它們都是8086中16位通用寄存器的擴展,故命名為EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。仍然支持8位和16位操作,用法和8086系統相同,用來存放數據或地址。2)段寄存器80386有6個16位段寄存器:代碼段寄存器CS、堆棧段寄存器SS、數據段寄存器DS、和三個附加段寄存器ES、FS、GS。在實方式下,段寄存器的用法和8086相同,只是增加了兩個附加段寄存器FS、GS。在保護方式下,段寄存器稱為段選擇符,它與描述符配合實現段尋址。3)指令指針和標志寄存器指令指針寄存器EIP(32位)用來存放下一條要執行的指令的地址偏移量,尋址范圍為4GB。為了和8086相兼容,EIP的低16位可作為獨立指針IP來使用。32位的標志寄存器EFR是在8086標志寄存器基礎上擴展而來。除保留8086CPU的6個狀態標志CF、PF、AF、ZF、SF、、OF及三個控制標志TF、IF、DF外,又增加了四個標志IOPL、NT、RF、VM。80386的標志寄存器80386的標志寄存器4)控制寄存器80386內部有3個32位的控制寄存器CR0、CR2、CR3(CR1未定義),用來保存機器的各種全局性狀態,這些狀態影響系統所有任務的運行,它們主要是供操作系統使用的。5)系統地址寄存器80386有4個系統地址寄存器,用來保護操作系統需要的保護信息和地址轉換表信息、定義目前正在執行任務的環境、地址空間和中斷向量空間。分別是:GDTR 全局描述符表寄存器IDTR 中斷描述符表寄存器TR 任務狀態寄存器LDTR 局部描述符表寄存器6)調試寄存器80386有8個調試寄存器DR0~DR7用于設置斷點和進行調試。7)測試寄存器80386有8個測試寄存器。其中TR0~TR5為Intel保留,TR6和TR7用于存儲器測試。TR6
是測試命令寄存器,TR7是測試數據寄存器,保存測試結果的狀態。4.80386的工作方式
有三種工作方式:實地址方式(realaddressmode):系統啟動后,80386自動進入實地址方式。此方式下,采用類似于8086的體系結構。保護方式(protectedvirtualaddressmode):是指在執行多任務操作時,對不同任務使用的虛擬存儲器空間進行完全的隔離,保護每個任務順利執行。虛擬8086方式(virtual8086mode):是指一個多任務的環境,即模擬多個8086的工作方式。保護方式是80386最常用的方式,通常開機或復位后,先進入實地址方式完成初始化,便立即轉到保護方式。只有在保護方式下,80386才能充分發揮其強大的功能和本性。而虛擬8086方式是80386中很重要的設計特點,它可以使大量的8086軟件有效地與80386保護方式下的軟件并發運行。
2.5.232位微處理器Pentium
本節內容:Pentium的特點Pentium的內部結構Pentium的寄存器結構Pentium系列微處理器的發展多核處理器1.Pentium的特點Pentium是Intel公司于1993年3月推出的第五代系列微處理器,它與8086、80286、80386及80486相兼容。Pentium采用了多項先進技術:CISC技術和RISC技術超標量流水線技術重新設計的浮點部件獨立的指令Cache和數據Cache分支預測技術采用64位外部數據總線1)CISC技術和RISC技術復雜指令集計算機技術CISC(complexinstructionsetcomputer)和簡化指令集計算機技術RISC(reducedinstructionsetcomputer)是基于不同理論和構思的兩種不同的CPU設計技術,CISC技術的產生和應用均早于RISC。Intel公司在Pentium之前的CPU均屬于CISC體系,從Pentium開始,將CISC和RISC相結合。Pentium的大多數指令是簡化指令,但仍然保留了一部分復雜指令,而這部分指令采用硬件來實現,因而Pentium吸取了兩者之長,實現了更高的性能。2)超標量流水線技術所謂超標量,是指一個處理器中有多條指令流水線。Pentium由“U”和“V”兩條指令流水線構成超標量流水線結構,其中,每條流水線都有獨立的ALU地址生成邏輯和Cache接口。在每個時鐘周期內可執行兩條整數指令,每條流水線分為指令預取、指令譯碼、地址生成、指令執行和回寫5個步驟。當一條指令完成預取步驟時,流水線就可以開始對另一條指令進行操作,極大地提高了指令的執行速度。3)重新設計的浮點部件Pentium內部重新設計了一個增強型浮點運算器FPU(floatprocessorunit)。在FPU中,采用快速硬件來實現浮點加、乘、除運算,使其浮點運算速度比前一代CPU至少提高3倍以上。同時,用電路進行固化,用硬件來實現ADD、MUL、INC、DEC、PUSH、POP、JMP、CALL及LOAD等常用指令,使這些常用指令的執行速度大為提高。4)獨立的指令Cache和數據CachePentium片內設置了兩個獨立的Cache,一個是指令Cache,另一個是數據Cache。Cache技術通過一種映像機制,使CPU在運行程序時,將原先需要訪問主存儲器的操作大部分轉換為訪問高速Cache的操作,有效減少了CPU訪問相對速度較低的主存儲器的次數,因此,提高了速度。指令和數據分別使用不同的Cache,使Pentium中數據和指令的存取減少了沖突,提高了性能。5)分支預測技術Pentium提供了一個小Cache,稱為分支目標緩沖器BTB(branchtargetbuffer),來動態地預測程序的分支操作。當某條指令造成程序分支時,BTB記下該條指令和分支目標的地址,并用這些信息預測該條指令再次產生分支時的路徑,預先從該處預取,保證流水線的指令預取步驟不會空置。這一機構的設置,可以減少在循環操作時對循環條件的判斷所占用的CPU的時間。6)采用64位外部數據總線Pentium內部總線和通用寄存器是32位,所以仍屬32位微處理器。但其和內存儲器相連的外部數據總線是64位,這使得在一個總線周期中,數據傳輸量提高了一倍。2.Pentium的內部結構Pentium的內部結構2.Pentium的內部結構(續)總線部件實現CPU與系統總線的連接,其中包括64位數據線、32位地址線和眾多控制信號線。Pentium采用“U”和“V”兩條指令流水線,兩者獨立運行。這兩條流水線中均有獨立的ALU,“U”流水線可執行所有的整數運算指令,“V”流水線只能執行簡單的整數運算指令和數據交換指令。Pentium片內設置了兩個8KB的相互獨立的Cache,減少了指令預取和數據操作之間可能發生的沖突,并可提高命中率。兩個Cache分別配置了專用的轉換檢測緩沖器TLB(translationlook-asidebuffer),用來將線性地址轉換為Cache的物理地址。Pentium的數據Cache有兩個端口,分別用于兩條流水線,以便能在相同的時間段中分別和兩個獨立工作的流水線進行數據交換。2.Pentium的內部結構(續)指令預取部件每次取兩條指令,如果是簡單指令,并且后一條指令不依賴于前一條指令的執行結果,那么,指令預取部件便將兩條指令分別送到“U”流水線和“V”流水線獨立執行。指令Cache、指令預取部件將原始指令送到指令譯碼器,分支目標緩沖器BTB則在遇到分支轉移指令時用來預測轉移是否發生。浮點處理部件FPU主要用于浮點運算,內含專用的加法器、乘法器、除法器。控制ROM中,含有Pentium的微代碼;而控制部件直接控制流水線。3.Pentium的寄存器結構Pentium的寄存器分為如下幾類:基本寄存器組:包括通用寄存器、指令寄存器、標志寄存器、段寄存器;系統寄存器組:包括地址寄存器、調試寄存器、控制寄存器、模式寄存器;浮點寄存器組:包括數據寄存器、標記字寄存器、狀態寄存器、控制字寄存器、指令指針寄存器和數據指針寄存器。其中,系統寄存器組只供系統程序訪問,而其它兩組寄存器則供系統程序和應用程序共同訪問。1)基本寄存器組和80386相比,Pentium中的基本寄存器,除了標志寄存器外,其余寄存器不變。Pentium對標志寄存器作了擴充,擴充的標志位所對應的含義如圖所示。Pentium的標志寄存器2)系統寄存器組地址寄存器、調試寄存器同80386,控制寄存器和803
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文具銷售合同協議
- 購物材料協議合同
- 作廢合同協議范本下載
- 食堂合同轉讓協議
- vi制作合同協議
- 合同和聘用協議
- 長期搬運合同協議
- 單方解除合同協議書
- 小學綠化養護合同協議書
- 付完首付怎么寫合同協議
- 2024年中國男式印花T-恤衫市場調查研究報告
- 2025年中考道德與法治專題復習-專題三 堅定文化自信 弘揚中國精神
- 《光明乳業公司企業應收賬款管理現狀及優化建議(10000字論文)》
- 剪映專業版教學課件
- 邀請招標文件模板
- 加工模具保密協議(2024版)
- 金融投資項目立項管理制度
- 大學生職業規劃學習通超星期末考試答案章節答案2024年
- 四大名著文學常識單選題100道及答案解析
- 四川省達州市2024年中考化學真題(含答案)
- 投資并購法律實務(第二版)
評論
0/150
提交評論