微型計算機原理及應(yīng)用 第3版 課件 第2章 16位和32位微處理器_第1頁
微型計算機原理及應(yīng)用 第3版 課件 第2章 16位和32位微處理器_第2頁
微型計算機原理及應(yīng)用 第3版 課件 第2章 16位和32位微處理器_第3頁
微型計算機原理及應(yīng)用 第3版 課件 第2章 16位和32位微處理器_第4頁
微型計算機原理及應(yīng)用 第3版 課件 第2章 16位和32位微處理器_第5頁
已閱讀5頁,還剩147頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章16位和32位微處理器本章內(nèi)容:8086/8088CPU的內(nèi)部結(jié)構(gòu)和寄存器結(jié)構(gòu)8086/8088CPU的引腳信號和功能8086/8088系統(tǒng)的工作模式與典型時序8086/8088的存儲器組織32位微處理器2.18086/8088CPU的內(nèi)部結(jié)構(gòu)和寄存器結(jié)構(gòu)本節(jié)內(nèi)容:簡介8086/8088CPU的內(nèi)部結(jié)構(gòu)8086/8088CPU的寄存器結(jié)構(gòu)時鐘周期、總線周期的概念8086/8088CPU的引腳信號和功能8086/8088系統(tǒng)的工作模式8086/8088的操作時序8086/8088的存儲器組織2.1.0簡介8086:16位微處理器采用單一的+5V電源和40條引腳的雙列直插式封裝;時鐘頻率為5MHz~10MHz,最快的指令執(zhí)行時間為0.4μs。8086有16根數(shù)據(jù)線和20根地址線,可以處理8位或16位數(shù)據(jù),可尋址220即1MB的存儲單元和64KB的I/O端口。8088:準(zhǔn)16位微處理器設(shè)計的主要目的是為了與Intel原有的8位外圍接口芯片直接兼容。8088的內(nèi)部寄存器、運算器以及內(nèi)部數(shù)據(jù)總線都是按16位設(shè)計的,但外部數(shù)據(jù)總線只有8條,因此執(zhí)行相同的程序,8088要比8086有較多的外部存取操作而執(zhí)行得較慢。2.1.18086/8088CPU的內(nèi)部結(jié)構(gòu)

8086微處理器內(nèi)部結(jié)構(gòu)框圖1.總線接口部件BIU功能負(fù)責(zé)CPU與內(nèi)存或I/O端口傳送指令或數(shù)據(jù)。BIU從內(nèi)存取指令送到指令隊列緩沖器。當(dāng)EU執(zhí)行指令時,BIU要配合EU從指定的內(nèi)存單元或I/O端口中讀取數(shù)據(jù),或者把EU的操作結(jié)果送到指定的內(nèi)存單元或I/O端口去。組成:段寄存器、指令指針寄存器、地址加法器、指令預(yù)取隊列及總線控制邏輯。1)段寄存器所有寄存器都是16位的,因此,能夠提供的最大地址空間只能為64KB。為了尋址1MB,將存儲器的空間分成若干段,每段最大為64KB。段寄存器:用來存放段的起始地址(16位)的寄存器,設(shè)有四個段寄存器:CS

代碼段寄存器(CodeSegmentregister)DS

數(shù)據(jù)段寄存器(DataSegmentregister)SS

堆棧段寄存器(StackSegmentregister)ES

附加數(shù)據(jù)段寄存器(ExtraSegmentregister)

2)地址加法器由于8086內(nèi)部寄存器都是16位的,需要一個附加結(jié)構(gòu)-地址加法器來根據(jù)提供的16位信息產(chǎn)生20位地址。3)指令預(yù)取隊列(指令隊列緩沖器)8086:指令預(yù)取隊列為6字節(jié)8088:指令預(yù)取隊列為4字節(jié)指令預(yù)取隊列采用“先進先出”原則。要執(zhí)行的指令預(yù)先由BIU從內(nèi)存取出放在隊列中,然后EU再從隊列中取出指令并執(zhí)行。一般情況下,EU每執(zhí)行完一條指令,就可以立即從指令隊列中取指令執(zhí)行,從而提高了CPU的效率。

4)總線控制邏輯

8086分配20條引腳線傳送20位地址、16位數(shù)據(jù)和4位狀態(tài)信息,這就必須要分時傳送??偩€控制邏輯的功能,就是以邏輯控制方法實現(xiàn)上述信息的分時傳送。

2.執(zhí)行部件EU

功能負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)運算。負(fù)責(zé)向總線接口部件BIU提供偏移地址。對通用寄存器和標(biāo)志寄存器進行管理。組成:算術(shù)邏輯單元(ALU)、1個標(biāo)志寄存器、8個通用寄存器、1個數(shù)據(jù)暫存寄存器和EU控制電路。

1)算術(shù)邏輯部件ALU用于進行8位和16位的算術(shù)和邏輯運算,也可以按照指令的尋址方式計算出尋址單元的16位偏移量。2)標(biāo)志寄存器FR16位,用來反映CPU運算的狀態(tài)特征或存放控制標(biāo)志。3)通用寄存器組4個16位數(shù)據(jù)寄存器AX、BX、CX、DX4個16位指針與變址寄存器:

堆棧指針寄存器SP(StackPointer)

基址指針寄存器BP(BasePointer)

源變址寄存器SI(SourceIndex)

目的變址寄存器DI(DestinationIndex)

4)數(shù)據(jù)暫存寄存器協(xié)助ALU完成運算,暫存參加運算的數(shù)據(jù)。5)EU控制電路它是控制、定時與狀態(tài)邏輯電路,接收從BIU中指令隊列取來的指令,經(jīng)過指令譯碼形成各種定時控制信號,對EU的各個部件實現(xiàn)特定的定時操作。EU中所有的寄存器和數(shù)據(jù)通道(除指令隊列總線為8位外)都是16位的寬度,可實現(xiàn)數(shù)據(jù)的快速傳送。3.BIU和EU的流水線管理

(1)每當(dāng)8086的指令隊列中有2個空字節(jié)或8088的指令隊列有1個空字節(jié),BIU就會自動把后面的指令從存儲器取到指令隊列中,從而提高了CPU執(zhí)行指令的速度。(2)每當(dāng)EU準(zhǔn)備執(zhí)行一條指令時,它會從指令隊列前部取出指令,進行譯碼,然后去執(zhí)行。在執(zhí)行指令時,如果必須訪問存儲器或I/O端口,EU就會請求BIU去完成訪問外部的操作,如果此時BIU正好處于空閑狀態(tài),那么會立即響應(yīng)EU的請求。若EU向BIU發(fā)出請求訪問時,BIU正在將某條指令取到指令隊列中,此時BIU首先完成取指令操作,然后再去響應(yīng)EU發(fā)出的訪問外界的請求。3.BIU和EU的流水線管理(續(xù))(3)當(dāng)指令隊列已滿,且EU對BIU又沒有總線訪問請求時,BIU進入空閑狀態(tài)。(4)在執(zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時,如果要執(zhí)行的指令不在指令隊列中,則指令隊列中原有內(nèi)容被自動清除,BIU會重新取指令,把將要轉(zhuǎn)入的程序段的指令裝入到指令隊列中。2.1.28086/8088CPU的寄存器結(jié)構(gòu)圖2.28086/8088的寄存器結(jié)構(gòu)1.通用寄存器

分為:數(shù)據(jù)寄存器地址寄存器1)數(shù)據(jù)寄存器EU中有4個16位的數(shù)據(jù)寄存器AX、BX、CX、DX每個數(shù)據(jù)寄存器又可分為高字節(jié)H和低字節(jié)L寄存器,即AH、BH、CH、DH和AL、BL、CL、DL兩組。16位數(shù)據(jù)寄存器主要用于存放數(shù)據(jù),也可存放地址,而8位寄存器只能用于存放數(shù)據(jù),它們均可以用寄存器名來獨立尋址、獨立使用。2)地址指針寄存器和變址寄存器都是16位,一般用來存放偏移地址。指針寄存器SP和BP用來存取位于當(dāng)前堆棧段中的數(shù)據(jù),但SP和BP使用上有區(qū)別。堆棧指針寄存器SP給出棧頂?shù)钠频刂??;分羔樇拇嫫鰾P用來存放位于堆棧段中的一個數(shù)據(jù)區(qū)基址的偏移地址。源變址寄存器SI和目的變址寄存器DI用來存放當(dāng)前數(shù)據(jù)段的偏移地址。寄存器的隱含使用2.指令指針寄存器16位,存放著BIU要取的下一條指令的偏移地址。指令執(zhí)行時,每取一次指令I(lǐng)P就自動加1,這樣保證能按順序取出并執(zhí)行指令。指令代碼存放在存儲器的代碼段,CPU利用CS和IP取得要執(zhí)行的指令.修改IP中的內(nèi)容,就可以改變指令的執(zhí)行流向。3.標(biāo)志寄存器(16位)16位標(biāo)志寄存器FR用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行的形式。只用了其中的9位,分為:狀態(tài)標(biāo)志位和控制標(biāo)志位。1)狀態(tài)標(biāo)志位(6位)用來反映算術(shù)或邏輯運算后結(jié)果的狀態(tài),以記錄CPU的狀態(tài)特征。進位標(biāo)志CF(CarryFlag)加法時,最高位(字節(jié)操作時的D7位,字操作時的D15位)是否有進位產(chǎn)生。減法時,最高位(字節(jié)操作時的D7位,字操作時的D15位)是否有借位產(chǎn)生。奇偶標(biāo)志PF(ParityFlag)若運算結(jié)果低8位中“1”的個數(shù)為偶數(shù),則PF=1;否則PF=0。一般用來檢測數(shù)據(jù)傳輸中是否發(fā)生錯誤。輔助進位標(biāo)志AF(AuxiliarycarrryFlag)加法時,第3位向第4位有進位。減法時,第3位向第4位有借位。該標(biāo)志位通常用于對BCD算術(shù)運算結(jié)果進行調(diào)整。零標(biāo)志ZF(ZeroFlag)若運算結(jié)果為0,則ZF=1;否則ZF=0。符號標(biāo)志SF(SignFlag)它和運算結(jié)果的最高位相同。溢出標(biāo)志OF(OverflowFlag)若運算過程中發(fā)生了“溢出”,則OF=1,否則OF=0。

2)控制標(biāo)志位(3位)用來控制CPU的操作,由程序設(shè)置或清除。中斷允許標(biāo)志IF(InterruptEnableFlag)如果IF置“1”,則CPU可以接受可屏蔽中斷請求;反之,則CPU不能接受可屏蔽中斷請求。STI使IF置“1”,即開放中斷。

CLI使IF清“0”,即關(guān)閉中斷。方向標(biāo)志DF(DirectionFlag)控制字符串操作指令的步進方向。

DF=1時,地址自動遞減;DF=0時,地址自動遞增。STD使DF=1。CLD使DF=0。跟蹤(陷阱)標(biāo)志TF(TrapFlag)為調(diào)試程序的方便而設(shè)置的。TF=1,則處于單步工作方式;TF=0,將正常執(zhí)行程序。例如,在系統(tǒng)調(diào)試軟件DEBUG中的T命令,就是用該標(biāo)志位來進行程序的單步跟蹤的。4.段寄存器介紹如下內(nèi)容:存儲器分段的概念邏輯地址和物理地址堆棧段寄存器的使用1)存儲器分段的概念8086/8088有20位地址線,能夠?qū)ぶ?MB的內(nèi)存空間;CPU內(nèi)部存放地址信息的IP、SP、SI、DI或BX等寄存器卻只有16位,只能尋址64KB存儲空間。所謂分段技術(shù)就是把1MB的存儲空間分成若干邏輯段,每個邏輯段最大具有64KB的存儲空間。段內(nèi)地址是連續(xù)的,段與段之間是相互獨立的。邏輯段可以在整個存儲空間浮動,即段的排列可以連續(xù)、分開、部分重疊或完全重疊,非常靈活。邏輯分段的示意2)邏輯地址和物理地址段首址:段的第一個單元的地址(20位),最低4位是全0(即段首址是16的整數(shù)倍)。段基址:段首址的高16位。段基址存放在段寄存器中。偏移地址:段內(nèi)存儲單元距離段首地址的偏移量(以字節(jié)數(shù)計算,16位),也稱有效地址EA。偏移地址存放在IP、BP、SI、DI或BX中,或者是通過計算得到。邏輯地址:通常用段基址:偏移地址的形式來描述,在程序中使用。物理地址的形成物理地址:指CPU和存儲器進行數(shù)據(jù)交換時實際尋址所使用的地址,是用20位二進制數(shù)或5位十六進制數(shù)表示的地址。任何一個單元的20位物理地址都是由它的邏輯地址變換得到的:物理地址=段基址×16+偏移地址

例題設(shè)(CS)=4232H,(IP)=0066H,試計算物理地址。注意一個存儲單元的物理地址是唯一的,而邏輯地址是可以不唯一的。例如,物理地址是12345H,它的邏輯地址可以是1233H:0015H也可以是1234H:0005H。3)堆棧堆棧是以“先進后出”或“后進先出”原則管理的存儲區(qū)域。堆棧段也采用段定義語句在存儲器中定義,最大為64KB。可在1MB的存儲空間內(nèi)浮動。堆棧段所在存儲區(qū)中的位置由堆棧段寄存器SS和堆棧指針SP來指示。SS給出堆棧段的段基址SP存放棧頂?shù)刂罚赋鰪臈m數(shù)蕉问字返钠屏?。棧頂與棧底之間單元中的內(nèi)容是堆棧段中的有效數(shù)據(jù)。堆棧操作有入棧(PUSH)和出棧(POP)兩種。4)段寄存器的使用四個段寄存器分別指明四個現(xiàn)行可尋址的邏輯段:(1)代碼段(CodeSegment):用來存放當(dāng)前正在運行的程序。系統(tǒng)在取指令時將尋址代碼段,其段基址和偏移地址分別由段寄存器CS和指令指針I(yè)P給出。(2)數(shù)據(jù)段(DataSegment):存放當(dāng)前運行程序所用的數(shù)據(jù)。用戶在尋址該段內(nèi)的數(shù)據(jù)時,可以缺省段的說明,其偏移地址可通過多種尋址方式形成。(3)堆棧段(StackSegment):堆棧為保護、調(diào)度數(shù)據(jù)提供了重要的手段。系統(tǒng)在執(zhí)行棧操作指令時將尋址堆棧段,段基址和偏移地址分別由段寄存器SS和堆棧指針SP提供。(4)附加數(shù)據(jù)段(ExtraSegment):該段是一個輔助的數(shù)據(jù)區(qū),也用于數(shù)據(jù)的保存。用戶在訪問段內(nèi)的數(shù)據(jù)時,其偏移地址同樣可以通過多種尋址方式來形成,但在偏移地址前要加上段的說明(即段跨越前綴ES)。段寄存器的使用情況只要修改段寄存器的內(nèi)容,就可以將相應(yīng)的存放區(qū)設(shè)置在內(nèi)存存儲空間的任何位置上。這些區(qū)域可以相互獨立,也可以部分或完全重疊。段寄存器使用時的一些基本約定2.28086/8088CPU的引腳信號和功能本小節(jié)內(nèi)容:8086最小模式下引腳的功能定義8086最大模式下引腳的功能定義8088的引腳特性8086/8088CPU的引腳信號8086/8088的引腳信號(括號中為最大模式時引腳名)

2.2.1

8086最小模式下引腳的功能定義

最小/最大模式設(shè)定,輸入。=1時:工作方式設(shè)置為最小模式,在此方式下,系統(tǒng)全部控制信號由8086本身提供;

=0時:工作方式設(shè)置為最大模式。AD15~AD0地址/數(shù)據(jù)復(fù)用引腳。在總線周期的T1狀態(tài)用來輸出要訪問的存儲器或I/O端口地址,在T2~T4狀態(tài),作為數(shù)據(jù)傳輸線。傳送地址時為三態(tài)輸出,傳送數(shù)據(jù)時可雙向三態(tài)輸入/輸出。在8088中,只有AD7~AD08條地址/數(shù)據(jù)線,AD15~AD8只用來輸出地址。A19/S6~A16/S3地址/狀態(tài)復(fù)用引腳,三態(tài),分時輸出。在T1狀態(tài):輸出高4位地址。訪問存儲器時:A19~A16與AD15~AD0組成20位地址;訪問I/O端口時:不使用這4條引線。在T2~T4狀態(tài):輸出狀態(tài)信息。S6=0,表示當(dāng)前8086/8088與總線相連(即S6始終保持低電平)。S5

用來指示狀態(tài)寄存器中的中斷允許標(biāo)志IF的狀態(tài)(S5為1允許中斷,S5為0禁止中斷)。S4和S3的組合高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用引腳,三態(tài),輸出。在T1狀態(tài):輸出,若=0,表示高8位數(shù)據(jù)線D15~D8上的數(shù)據(jù)有效。在T2~T4狀態(tài):輸出S7(無意義)。ALE地址鎖存允許信號,輸出,正脈沖。提供給地址鎖存器8282的控制信號。在任何一個總線周期的T1狀態(tài),ALE輸出有效電平,以表示當(dāng)前總線上輸出的是地址信息,要求進行地址鎖存。RESET復(fù)位信號,輸入,高電平有效。至少維持4個時鐘周期的高電平,接通電源時間不能小于50μs。READY“準(zhǔn)備好”信號,輸入,高電平有效由所尋址的存儲器或I/O端口發(fā)來的響應(yīng)信號,表明存儲器或I/O端口的狀態(tài)。CPU在T3采樣READY,若READY=0,則在T3后插入一個或多個TW,直至READY=1,進入T4,完成數(shù)據(jù)傳送,從而結(jié)束當(dāng)前總線周期。讀信號,三態(tài)、輸出。=0時,表示將要執(zhí)行一個對存儲器或I/O端口的讀操作。寫信號,三態(tài)、輸出。=0時,表示將要執(zhí)行一個對存儲器或I/O端口的寫操作。存儲器/外設(shè)控制信號,輸出

=1:訪問存儲器

=0:訪問I/O端口一般被用于存儲芯片或I/O接口芯片的片選()譯碼電路中。NMI非屏蔽中斷請求信號,輸入,上升沿有效。此請求不受IF的影響。只要此信號一出現(xiàn),CPU就在現(xiàn)行指令結(jié)束后響應(yīng)中斷。INTR可屏蔽中斷請求信號,輸入,高電平有效。當(dāng)INTR=1時,表示外設(shè)提出了中斷請求,8086/8088在每個指令周期的最后一個T狀態(tài)去采樣此信號。若IF=1,則CPU響應(yīng)中斷,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。中斷響應(yīng)信號,輸出,低電平有效。用于對外設(shè)的中斷請求作出響應(yīng)。連續(xù)周期中的兩個負(fù)脈沖。第1個脈沖是通知外設(shè)接口,它的中斷請求已獲允許;外設(shè)接口收到第2個負(fù)脈沖后,往數(shù)據(jù)總線上放中斷類型碼。HOLD、HLDAHOLD:總線保持請求信號,輸入,高電平有效HLDA:總線保持響應(yīng)信號,輸出,高電平有效HOLD信號是系統(tǒng)中的其它總線主控部件向CPU發(fā)出的請求占用總線的控制信號。當(dāng)CPU從HOLD線上收到一個高電平請求信號時,如果CPU允許讓出總線,就在當(dāng)前總線周期完成時,于T4狀態(tài)從HLDA線上發(fā)出一個應(yīng)答信號,對HOLD請求作出響應(yīng)。同時,CPU使地址/數(shù)據(jù)總線和控制總線處于浮空狀態(tài),從而讓出了總線。當(dāng)請求部件完成對總線占用后,CPU就立即使HLDA變低,同時恢復(fù)對總線的控制。數(shù)據(jù)收發(fā)控制信號,輸出,三態(tài)。用來控制數(shù)據(jù)總線驅(qū)動器8286的數(shù)據(jù)傳送方向。

=1:發(fā)送數(shù)據(jù)

=0:接收數(shù)據(jù)數(shù)據(jù)允許信號,輸出,低電平有效,三態(tài)。提供給數(shù)據(jù)總線收發(fā)器8286,表示CPU準(zhǔn)備發(fā)送或接收一個數(shù)據(jù)。它常作為數(shù)據(jù)總線驅(qū)動器的三態(tài)控制信號。等待測試信號,輸入,低電平有效。用于多處理器系統(tǒng)中且只有在執(zhí)行WAIT指令時才使用。當(dāng)CPU執(zhí)行WAIT指令時,每隔5個時鐘周期對該引腳進行一次測試:若=1時,CPU將停止取下條指令而進入等待狀態(tài),重復(fù)執(zhí)行WAIT指令,直至該信號為0,CPU才繼續(xù)往下執(zhí)行被暫停的指令。等待期間允許外部中斷。WAIT指令可使CPU與外部硬件同步,相當(dāng)于外部硬件的同步信號。

CLK系統(tǒng)時鐘,輸入通常與8284A時鐘發(fā)生器的時鐘輸出端CLK相連。該時鐘信號的低/高之比常采用2:1。8086CPU的標(biāo)準(zhǔn)時鐘頻率為5MHz。VCC、GND電源線VCC接入的電壓為+5V±10%。兩條地線GND均應(yīng)接地。2.2.28086最大模式下引腳的功能定義當(dāng)

為低電平時,8086CPU工作在最大模式。在最大模式下,許多總線控制信號不是由8086直接產(chǎn)生,而是通過總線控制器8288產(chǎn)生的。因此,8086在最小模式下提供的總線控制信號的引腳(24~31腳)就需重新定義,改作支持最大模式之用??偩€周期狀態(tài)信號,輸出,三態(tài)。8288總線控制器依據(jù)這三個狀態(tài)信號產(chǎn)生訪問存儲器和I/O端口的控制命令。QS1、QS0指令隊列狀態(tài)信號,輸出。這兩個信號組合起來提供了本總線周期的前一個時鐘周期中指令隊列的狀態(tài),以便于外部器件(如8087協(xié)處理器)對8086/8088內(nèi)部指令隊列的動作進行跟蹤??偩€請求信號輸入/總線請求允許信號輸出,雙向,低電平有效,三態(tài)。供協(xié)處理器發(fā)出使用總線的請求信號和接收CPU對總線請求的回答信號。后者比前者的優(yōu)先級高??偩€封鎖信號,輸出,低電平有效,三態(tài)。當(dāng)

為低電平時,表示CPU獨占總線使用權(quán)。信號由指令前綴LOCK產(chǎn)生,而在LOCK后面的一條指令執(zhí)行完后,便撤銷了

信號。此信號是為避免多個處理器使用共有資源時產(chǎn)生沖突而設(shè)置的。2.2.38088的引腳特性8088和8086之間引腳上的不同主要表現(xiàn)在:(1)由于8088CPU外部一次只傳送8位數(shù)據(jù),因此其引腳A15~A8僅用于輸出地址信號,而8086則將此8條線變?yōu)殡p向分時復(fù)用的AD15~AD8。(2)8086CPU上的信號在8088上變?yōu)?HIGH)信號。這是一條狀態(tài)輸出線,它與和信號一起,決定了8088CPU在最小模式下現(xiàn)行總線周期的狀態(tài)。HIGH在最大模式時始終為高電平輸出。(3)8088的存儲器/外設(shè)控制引腳是。2.38086/8088系統(tǒng)的工作模式與典型時序包括:8086/8088系統(tǒng)的工作模式指令周期與總線周期8086/8088系統(tǒng)的典型時序2.3.18086/8088系統(tǒng)的工作模式本節(jié)內(nèi)容:最小模式組成最大模式組成1.最小模式組成

當(dāng)=1時,8086CPU工作在最小模式之下,即單處理器系統(tǒng)方式。此時,構(gòu)成的微型機中只包括一個8086或8088CPU,且系統(tǒng)總線的所有控制信號都由CPU直接給出,系統(tǒng)中的總線控制邏輯電路被減到最少,適合于較小規(guī)模的應(yīng)用。8086最小模式下的典型配置

8086最小模式下的典型配置

1)時鐘發(fā)生器8284A8086/8088CPU所需的時鐘信號由外部的時鐘發(fā)生器提供。8284A是Intel公司專為8086設(shè)計的時鐘信號發(fā)生器,能產(chǎn)生8086所需的5MHz系統(tǒng)時鐘信號,即系統(tǒng)主頻。8284A除提供恒定的時鐘信號外,還對外界輸入的準(zhǔn)備就緒信號RDY和復(fù)位信號進行同步操作。8284A與8086的連接圖8284A與8086的連接2)地址鎖存器8282由于8086/8088的部分地址線和數(shù)據(jù)線采用分時復(fù)用的技術(shù),在一個總線周期內(nèi)總線首先傳送地址,然后傳送數(shù)據(jù)。在每個總線周期的T1狀態(tài)利用地址鎖存允許信號ALE的后沿,將地址信息鎖存到地址鎖存器內(nèi),經(jīng)鎖存后的地址信號可以在整個總線周期保持不變,從而為外部提供穩(wěn)定的地址信息。Intel8282是具有三態(tài)緩沖的單向8位鎖存器。使用時,將8282的選通信號輸入端STB與ALE相連。當(dāng)ALE有效時,8086的地址信號被鎖存并以同相方式傳至輸出端,供存儲器芯片和I/O接口芯片使用。8086除了20位地址外,也要鎖存,所以需要3片8282作為鎖存器。8282鎖存器與8086的連接8282鎖存器與8086的連接3)數(shù)據(jù)收發(fā)器8286當(dāng)系統(tǒng)中所連接的存儲器及I/O設(shè)備較多時,為了使系統(tǒng)能穩(wěn)定工作,可以采用發(fā)送器和接收器來增加驅(qū)動能力。發(fā)送器和接收器簡稱為收發(fā)器,也常稱為總線驅(qū)動器。Intel8286是8位雙向三態(tài)緩沖器。8286的數(shù)據(jù)線有兩組,A7~A0、B7~B0,引腳T用來控制數(shù)據(jù)傳輸?shù)姆较颍?dāng)T=1時,方向為A→B;當(dāng)T=0時,方向為B→A。是輸出允許信號,當(dāng)它為0時,允許數(shù)據(jù)傳送。8086的數(shù)據(jù)總線是16位,如果要選用8286做總線驅(qū)動器,則需要2片。如果是較小規(guī)模的最小模式系統(tǒng),不需要總線驅(qū)動器,那么就用CPU的、、組合起來決定系統(tǒng)中數(shù)據(jù)傳輸?shù)姆绞健?286收發(fā)器和8088的連接8286收發(fā)器和8088的連接2.最大模式組成

當(dāng)=0時,8086CPU工作在最大模式。在最大模式下,構(gòu)成的微型計算機中除了有8086CPU之外,還可以接另外的CPU,如8087、8089等,以構(gòu)成多處理器系統(tǒng)。在最大模式系統(tǒng)中,系統(tǒng)的許多控制信號不再由8086直接發(fā)出,而是由總線控制器8288對8086發(fā)出的控制信號進行變換和組合,從而得到各種系統(tǒng)控制信號。1)8086最大模式典型配置

圖2.138086最大模式典型配置2)8288總線控制器主要引腳信號8288的原理框圖2.3.2指令周期與總線周期本小節(jié)內(nèi)容:時鐘周期指令周期與總線周期1.時鐘周期時鐘周期是CPU的基本時間計量單位,是CPU工作的最小時間單位,也稱節(jié)拍脈沖或T周期,由主頻決定。對于8086來講,若其主頻為5MHz,則一個時鐘周期為200ns。2.總線周期與指令周期指令周期每條指令的執(zhí)行由取指令、分析指令和執(zhí)行指令等操作完成,執(zhí)行一條指令所需要的時間稱為一個指令周期。簡單指令執(zhí)行時間就比較短,而復(fù)雜指令執(zhí)行的時間就比較長,因此,不同指令的指令周期是不相同的。一個指令周期由一個或幾個總線周期組成,一個總線周期又由若干個時鐘周期組成。2.指令周期與總線周期(續(xù))總線周期8086CPU通過總線對存儲器或I/O端口進行一次信息的輸入或輸出過程,稱為總線操作,執(zhí)行該操作所需要的時間,稱為總線周期。在8086中,一個最基本的總線周期由4個時鐘周期組成,每個時鐘周期稱為T狀態(tài),因此基本總線周期用T1、T2、T3、T4表示。典型的8086總線周期序列典型的8086總線周期序列2.3.38086/8088的系統(tǒng)的典型時序本小節(jié)內(nèi)容:系統(tǒng)的復(fù)位和啟動操作總線讀/寫操作1.系統(tǒng)的復(fù)位和啟動操作RESET引腳至少維持4個時鐘周期的高電平信號時,8086/8088復(fù)位。如果是初次加電引起的復(fù)位,則要求維持不小于50μs的高電平。8086/8088復(fù)位后將從內(nèi)存的FFFF0H處開始執(zhí)行指令。因此,一般在該處放一條無條件轉(zhuǎn)移指令,轉(zhuǎn)移到系統(tǒng)程序的入口處。這樣系統(tǒng)一旦被啟動,便自動進入系統(tǒng)程序。8086的復(fù)位時序8086的復(fù)位時序2.總線讀/寫操作可以分為:總線讀操作(CPU從存儲器或I/O端口讀取數(shù)據(jù))總線寫操作(CPU將數(shù)據(jù)寫入存儲器或I/O端口)(1)最小模式下總線讀周期8086/8088CPU最小模式下總線讀周期時序(2)最小模式下總線寫周期8086/8088CPU最小模式下總線寫周期時序(3)最大模式下的總線讀操作最大模式下總線讀周期時序(4)最大模式下的總線寫操作最大模式下總線寫周期時序3.中斷響應(yīng)操作

當(dāng)8086/8088CPU收到外界從INTR引腳上送來的中斷請求信號,并且滿足IF=1時,CPU在執(zhí)行完當(dāng)前指令后,便執(zhí)行一個中斷響應(yīng)時序。8086/8088中斷響應(yīng)時序2.48086/8088的存儲器組織本小節(jié)內(nèi)容:小端存放和大端存放8086存儲器組織8088存儲器組織2.4.1小端存放和大端存放對于一個多字節(jié)數(shù)據(jù),可采用從高字節(jié)到低字節(jié)或相反的順序存放在主存中。由于存儲器按字節(jié)編址,當(dāng)數(shù)據(jù)的低字節(jié)存儲在低地址中,而高字節(jié)存放在高地址中,這種數(shù)據(jù)存放方式稱為小端存放;反之,當(dāng)數(shù)據(jù)的高字節(jié)存儲在低地址,而低字節(jié)存放在高地址中,這種數(shù)據(jù)存放方式稱為大端存放。數(shù)據(jù)存放方式2.4.2

8086存儲器組織8086存儲器的組織1.奇區(qū)和偶區(qū)8086的1MB存儲空間實際上分為兩個512KB的存儲體(又稱存儲庫),分別叫奇存儲體(奇區(qū))和偶存儲體(偶區(qū))。偶存儲體與數(shù)據(jù)總線D7~D0相連,該存儲體中每個地址均為偶數(shù)地址;奇存儲體與數(shù)據(jù)總線D15~D8相連,該存儲體中每個地址均為奇數(shù)地址。

、A0代碼表示的奇偶區(qū)的選擇2.

8086系統(tǒng)中信息的存放存儲器的物理組織分成了偶區(qū)和奇區(qū),但是,在邏輯結(jié)構(gòu)上,存儲單元是按地址順序排列的,每個字節(jié)信息只占一個單元,有唯一物理地址。相鄰的兩個字節(jié)被稱為一個“字”。字節(jié)信息(8位)在存儲器中按順序排列存放。字信息(16位)需占用兩個連續(xù)地址的單元,將每一個字的低字節(jié)存放在低地址中,高字節(jié)存放在高地址中,并以低地址作為該字的地址。雙字信息(32位,一般作為地址指針),需占用四個連續(xù)地址單元,其低位字是被尋址地址的偏移量;高位字是被尋址地址的段基址。

指令和數(shù)據(jù)在存儲器中的存放偶字節(jié)、奇字節(jié)、偶字和奇字偶字節(jié):字節(jié)信息存放單元的地址是偶地址奇字節(jié):字節(jié)信息存放單元的地址是奇地址偶字(規(guī)則字):字信息的低位字節(jié)從偶數(shù)地址開始存放奇字(非規(guī)則字):字信息的低位字節(jié)從奇數(shù)地址開始存放對偶字節(jié)、奇字節(jié)、偶字的存取可在一個總線周期內(nèi)完成。而奇字的存取需兩個總線周期:首先作奇字節(jié)讀/寫,然后作偶字節(jié)讀/寫。各種字節(jié)和字的讀操作示例2.4.3

8088存儲器組織由于每次傳送的是8位數(shù)據(jù),不存在奇偶存儲體的概念。存儲器的20位地址線A19~A0和8根數(shù)據(jù)線分別和8088CPU的對應(yīng)地址線與數(shù)據(jù)線相連。8088CPU每訪問一次存儲器只讀/寫一個字節(jié)信息,而讀/寫一個字需要兩次訪問存儲器才能完成。故在8088系統(tǒng)中,程序運行速度比在8086系統(tǒng)中要慢些。2.532位微處理器1985年10月,Intel公司推出了32位微處理器80386,它與8086、80286相兼容,它是為多用戶、多任務(wù)操作系統(tǒng)設(shè)計的一種高集成度的芯片。該芯片采用32位數(shù)據(jù)總線、32位地址總線,直接尋址能力達4GB。本節(jié)內(nèi)容:32位微處理器8038632位微處理器Pentium多核處理器2.5.132位微處理器80386本節(jié)內(nèi)容:80386的特點80386的內(nèi)部結(jié)構(gòu)80386的寄存器結(jié)構(gòu)80386的工作方式1.80386的特點提供32位的指令。提供32位外部總線接口,最大數(shù)據(jù)傳輸速率為32Mbps。具有片內(nèi)集成的存儲器管理部件MMU,可支持虛擬存儲和特權(quán)保護。具有實地址方式、保護方式和虛擬8086方式。直接尋址能力達4GB。通過配用數(shù)值協(xié)處理器可支持高速數(shù)值處理。在目標(biāo)碼一級與8086、80286芯片完全兼容。2.80386內(nèi)部結(jié)構(gòu)80386的功能部件指令預(yù)取部件IPU指令預(yù)取部件IPU將存儲器中的指令按順序取到長度為16B的指令預(yù)取隊列中,以便在CPU執(zhí)行當(dāng)前指令時,指令譯碼部件IDU對下一條指令進行譯碼。一旦指令隊列向指令譯碼部件輸送一條指令,指令隊列便會空出部分字節(jié),指令預(yù)取部件就會向總線接口部件發(fā)總線請求,如總線接口部件此時處于空閑狀態(tài),則會響應(yīng)此請求,從存儲器取指令填充指令預(yù)取隊列。指令譯碼部件IDU指令譯碼部件IDU中除了指令譯碼器外,還有譯碼指令隊列,此隊列能容納3條譯好碼的指令。只要譯碼指令隊列有剩余空間,譯碼部件就會從指令預(yù)取隊列取下一條指令進行譯碼。執(zhí)行部件EU執(zhí)行部件EU包括運算器ALU、1個64位的多位移位器加法器和8個32位的通用寄存器,它們共同執(zhí)行各種數(shù)據(jù)處理和運算。執(zhí)行部件中還包括ALU控制部分和保護測試部分,前者實現(xiàn)有效地址的計算、乘除法的加速等功能,后者檢驗指令執(zhí)行中是否符合涉及的存儲器分段規(guī)則。存儲器管理部件包括分段部件SU和分頁部件PU。分段部件SU管理面向程序員的邏輯地址空間,并且將邏輯地址轉(zhuǎn)換為線性地址;分頁部件PU管理物理地址空間,將分段部件或者指令譯碼部件產(chǎn)生的線性地址轉(zhuǎn)換為物理地址??偩€接口部件BIU總線接口部件BIU是80386和外界之間的高速接口。在80386內(nèi)部,指令預(yù)取部件從存儲器取指令時,或者執(zhí)行部件在指令執(zhí)行過程中訪問存儲器和外設(shè)以讀寫數(shù)據(jù)時,都會發(fā)出總線請求,BIU會根據(jù)優(yōu)先級對這些請求進行仲裁,從而有條不紊地服務(wù)于多個請求,并產(chǎn)生相應(yīng)的總線操作所需的信號,包括地址信號、讀寫控制信號等。BIU也能實現(xiàn)80386和協(xié)處理器之間的協(xié)調(diào)控制。3.80386的寄存器結(jié)構(gòu)

有7類32個寄存器,它們是:通用寄存器段寄存器指令指針和標(biāo)志寄存器控制寄存器系統(tǒng)地址寄存器調(diào)試寄存器測試寄存器1)通用寄存器80386有8個32位通用寄存器,它們都是8086中16位通用寄存器的擴展,故命名為EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。仍然支持8位和16位操作,用法和8086系統(tǒng)相同,用來存放數(shù)據(jù)或地址。2)段寄存器80386有6個16位段寄存器:代碼段寄存器CS、堆棧段寄存器SS、數(shù)據(jù)段寄存器DS、和三個附加段寄存器ES、FS、GS。在實方式下,段寄存器的用法和8086相同,只是增加了兩個附加段寄存器FS、GS。在保護方式下,段寄存器稱為段選擇符,它與描述符配合實現(xiàn)段尋址。3)指令指針和標(biāo)志寄存器指令指針寄存器EIP(32位)用來存放下一條要執(zhí)行的指令的地址偏移量,尋址范圍為4GB。為了和8086相兼容,EIP的低16位可作為獨立指針I(yè)P來使用。32位的標(biāo)志寄存器EFR是在8086標(biāo)志寄存器基礎(chǔ)上擴展而來。除保留8086CPU的6個狀態(tài)標(biāo)志CF、PF、AF、ZF、SF、、OF及三個控制標(biāo)志TF、IF、DF外,又增加了四個標(biāo)志IOPL、NT、RF、VM。80386的標(biāo)志寄存器80386的標(biāo)志寄存器4)控制寄存器80386內(nèi)部有3個32位的控制寄存器CR0、CR2、CR3(CR1未定義),用來保存機器的各種全局性狀態(tài),這些狀態(tài)影響系統(tǒng)所有任務(wù)的運行,它們主要是供操作系統(tǒng)使用的。5)系統(tǒng)地址寄存器80386有4個系統(tǒng)地址寄存器,用來保護操作系統(tǒng)需要的保護信息和地址轉(zhuǎn)換表信息、定義目前正在執(zhí)行任務(wù)的環(huán)境、地址空間和中斷向量空間。分別是:GDTR 全局描述符表寄存器IDTR 中斷描述符表寄存器TR 任務(wù)狀態(tài)寄存器LDTR 局部描述符表寄存器6)調(diào)試寄存器80386有8個調(diào)試寄存器DR0~DR7用于設(shè)置斷點和進行調(diào)試。7)測試寄存器80386有8個測試寄存器。其中TR0~TR5為Intel保留,TR6和TR7用于存儲器測試。TR6

是測試命令寄存器,TR7是測試數(shù)據(jù)寄存器,保存測試結(jié)果的狀態(tài)。4.80386的工作方式

有三種工作方式:實地址方式(realaddressmode):系統(tǒng)啟動后,80386自動進入實地址方式。此方式下,采用類似于8086的體系結(jié)構(gòu)。保護方式(protectedvirtualaddressmode):是指在執(zhí)行多任務(wù)操作時,對不同任務(wù)使用的虛擬存儲器空間進行完全的隔離,保護每個任務(wù)順利執(zhí)行。虛擬8086方式(virtual8086mode):是指一個多任務(wù)的環(huán)境,即模擬多個8086的工作方式。保護方式是80386最常用的方式,通常開機或復(fù)位后,先進入實地址方式完成初始化,便立即轉(zhuǎn)到保護方式。只有在保護方式下,80386才能充分發(fā)揮其強大的功能和本性。而虛擬8086方式是80386中很重要的設(shè)計特點,它可以使大量的8086軟件有效地與80386保護方式下的軟件并發(fā)運行。

2.5.232位微處理器Pentium

本節(jié)內(nèi)容:Pentium的特點Pentium的內(nèi)部結(jié)構(gòu)Pentium的寄存器結(jié)構(gòu)Pentium系列微處理器的發(fā)展多核處理器1.Pentium的特點Pentium是Intel公司于1993年3月推出的第五代系列微處理器,它與8086、80286、80386及80486相兼容。Pentium采用了多項先進技術(shù):CISC技術(shù)和RISC技術(shù)超標(biāo)量流水線技術(shù)重新設(shè)計的浮點部件獨立的指令Cache和數(shù)據(jù)Cache分支預(yù)測技術(shù)采用64位外部數(shù)據(jù)總線1)CISC技術(shù)和RISC技術(shù)復(fù)雜指令集計算機技術(shù)CISC(complexinstructionsetcomputer)和簡化指令集計算機技術(shù)RISC(reducedinstructionsetcomputer)是基于不同理論和構(gòu)思的兩種不同的CPU設(shè)計技術(shù),CISC技術(shù)的產(chǎn)生和應(yīng)用均早于RISC。Intel公司在Pentium之前的CPU均屬于CISC體系,從Pentium開始,將CISC和RISC相結(jié)合。Pentium的大多數(shù)指令是簡化指令,但仍然保留了一部分復(fù)雜指令,而這部分指令采用硬件來實現(xiàn),因而Pentium吸取了兩者之長,實現(xiàn)了更高的性能。2)超標(biāo)量流水線技術(shù)所謂超標(biāo)量,是指一個處理器中有多條指令流水線。Pentium由“U”和“V”兩條指令流水線構(gòu)成超標(biāo)量流水線結(jié)構(gòu),其中,每條流水線都有獨立的ALU地址生成邏輯和Cache接口。在每個時鐘周期內(nèi)可執(zhí)行兩條整數(shù)指令,每條流水線分為指令預(yù)取、指令譯碼、地址生成、指令執(zhí)行和回寫5個步驟。當(dāng)一條指令完成預(yù)取步驟時,流水線就可以開始對另一條指令進行操作,極大地提高了指令的執(zhí)行速度。3)重新設(shè)計的浮點部件Pentium內(nèi)部重新設(shè)計了一個增強型浮點運算器FPU(floatprocessorunit)。在FPU中,采用快速硬件來實現(xiàn)浮點加、乘、除運算,使其浮點運算速度比前一代CPU至少提高3倍以上。同時,用電路進行固化,用硬件來實現(xiàn)ADD、MUL、INC、DEC、PUSH、POP、JMP、CALL及LOAD等常用指令,使這些常用指令的執(zhí)行速度大為提高。4)獨立的指令Cache和數(shù)據(jù)CachePentium片內(nèi)設(shè)置了兩個獨立的Cache,一個是指令Cache,另一個是數(shù)據(jù)Cache。Cache技術(shù)通過一種映像機制,使CPU在運行程序時,將原先需要訪問主存儲器的操作大部分轉(zhuǎn)換為訪問高速Cache的操作,有效減少了CPU訪問相對速度較低的主存儲器的次數(shù),因此,提高了速度。指令和數(shù)據(jù)分別使用不同的Cache,使Pentium中數(shù)據(jù)和指令的存取減少了沖突,提高了性能。5)分支預(yù)測技術(shù)Pentium提供了一個小Cache,稱為分支目標(biāo)緩沖器BTB(branchtargetbuffer),來動態(tài)地預(yù)測程序的分支操作。當(dāng)某條指令造成程序分支時,BTB記下該條指令和分支目標(biāo)的地址,并用這些信息預(yù)測該條指令再次產(chǎn)生分支時的路徑,預(yù)先從該處預(yù)取,保證流水線的指令預(yù)取步驟不會空置。這一機構(gòu)的設(shè)置,可以減少在循環(huán)操作時對循環(huán)條件的判斷所占用的CPU的時間。6)采用64位外部數(shù)據(jù)總線Pentium內(nèi)部總線和通用寄存器是32位,所以仍屬32位微處理器。但其和內(nèi)存儲器相連的外部數(shù)據(jù)總線是64位,這使得在一個總線周期中,數(shù)據(jù)傳輸量提高了一倍。2.Pentium的內(nèi)部結(jié)構(gòu)Pentium的內(nèi)部結(jié)構(gòu)2.Pentium的內(nèi)部結(jié)構(gòu)(續(xù))總線部件實現(xiàn)CPU與系統(tǒng)總線的連接,其中包括64位數(shù)據(jù)線、32位地址線和眾多控制信號線。Pentium采用“U”和“V”兩條指令流水線,兩者獨立運行。這兩條流水線中均有獨立的ALU,“U”流水線可執(zhí)行所有的整數(shù)運算指令,“V”流水線只能執(zhí)行簡單的整數(shù)運算指令和數(shù)據(jù)交換指令。Pentium片內(nèi)設(shè)置了兩個8KB的相互獨立的Cache,減少了指令預(yù)取和數(shù)據(jù)操作之間可能發(fā)生的沖突,并可提高命中率。兩個Cache分別配置了專用的轉(zhuǎn)換檢測緩沖器TLB(translationlook-asidebuffer),用來將線性地址轉(zhuǎn)換為Cache的物理地址。Pentium的數(shù)據(jù)Cache有兩個端口,分別用于兩條流水線,以便能在相同的時間段中分別和兩個獨立工作的流水線進行數(shù)據(jù)交換。2.Pentium的內(nèi)部結(jié)構(gòu)(續(xù))指令預(yù)取部件每次取兩條指令,如果是簡單指令,并且后一條指令不依賴于前一條指令的執(zhí)行結(jié)果,那么,指令預(yù)取部件便將兩條指令分別送到“U”流水線和“V”流水線獨立執(zhí)行。指令Cache、指令預(yù)取部件將原始指令送到指令譯碼器,分支目標(biāo)緩沖器BTB則在遇到分支轉(zhuǎn)移指令時用來預(yù)測轉(zhuǎn)移是否發(fā)生。浮點處理部件FPU主要用于浮點運算,內(nèi)含專用的加法器、乘法器、除法器。控制ROM中,含有Pentium的微代碼;而控制部件直接控制流水線。3.Pentium的寄存器結(jié)構(gòu)Pentium的寄存器分為如下幾類:基本寄存器組:包括通用寄存器、指令寄存器、標(biāo)志寄存器、段寄存器;系統(tǒng)寄存器組:包括地址寄存器、調(diào)試寄存器、控制寄存器、模式寄存器;浮點寄存器組:包括數(shù)據(jù)寄存器、標(biāo)記字寄存器、狀態(tài)寄存器、控制字寄存器、指令指針寄存器和數(shù)據(jù)指針寄存器。其中,系統(tǒng)寄存器組只供系統(tǒng)程序訪問,而其它兩組寄存器則供系統(tǒng)程序和應(yīng)用程序共同訪問。1)基本寄存器組和80386相比,Pentium中的基本寄存器,除了標(biāo)志寄存器外,其余寄存器不變。Pentium對標(biāo)志寄存器作了擴充,擴充的標(biāo)志位所對應(yīng)的含義如圖所示。Pentium的標(biāo)志寄存器2)系統(tǒng)寄存器組地址寄存器、調(diào)試寄存器同80386,控制寄存器和803

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論