微機(jī)接口CPU系統(tǒng)結(jié)構(gòu)s_第1頁(yè)
微機(jī)接口CPU系統(tǒng)結(jié)構(gòu)s_第2頁(yè)
微機(jī)接口CPU系統(tǒng)結(jié)構(gòu)s_第3頁(yè)
微機(jī)接口CPU系統(tǒng)結(jié)構(gòu)s_第4頁(yè)
微機(jī)接口CPU系統(tǒng)結(jié)構(gòu)s_第5頁(yè)
已閱讀5頁(yè),還剩120頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第二章 16位和32位微處理器1主要內(nèi)容Pentium的三種工作方式 8086 16位微處理器基本結(jié)構(gòu)特點(diǎn) 8086CPU內(nèi)部結(jié)構(gòu) 8086CPU的引腳及功能 8086存儲(chǔ)器組織 8086系統(tǒng)配置(最小模式的系統(tǒng)配置) 8086CPU的時(shí)序與操作 Intel結(jié)構(gòu)(IA)處理器進(jìn)化 Pentium 微處理器 32 位微處理器Pentium的先進(jìn)技術(shù)21978年,80 x86第一代16位微處理器。第一次將流水線思想引進(jìn)微處理器:指令級(jí)流水。存儲(chǔ)器分段管理機(jī)制引入處理器,擴(kuò)大尋址能力。只有整數(shù)運(yùn)算指令??膳涮讌f(xié)處理器8087、I/O處理器8089,具備較強(qiáng)大計(jì)算能力和I/O處理能力。推出8088,8

2、位外部數(shù)據(jù)總線,兼容豐富的8位配套器件, 8088內(nèi)部與8086結(jié)構(gòu)基本相同。3INTEL 8086 CPU芯片描述:是16位的微處理器用HMOS工藝制造,外型為雙列直插,有40個(gè)引腳時(shí)鐘頻率3種:8086(5MHz)、8086-2(8 MHz)、8086-1( 10MHz)有16根數(shù)據(jù)線和20根地址線,直接尋址的存儲(chǔ)空間為1M字節(jié),可訪問(wèn)64K個(gè)8位的I/O接口有一套完整的、功能很強(qiáng)的指令系統(tǒng)既可用來(lái)構(gòu)成單處理器系統(tǒng),也可與8087協(xié)處理器及8089 I/O處理器構(gòu)成多處理器系統(tǒng)8086 16位微處理器基本結(jié)構(gòu)的特點(diǎn)4基本結(jié)構(gòu)的特點(diǎn):引腳功能復(fù)用(雙重功能):由于引腳數(shù)限制,部分引腳設(shè)計(jì)為功

3、能復(fù)用。如: 2431引腳單總線、累加器結(jié)構(gòu):由于芯片面積限制,內(nèi)部采用單總線、累加器為基礎(chǔ)的結(jié)構(gòu)。可控三態(tài)電路:微處理器外部同時(shí)連接多個(gè)部件,為避免總線沖突和信號(hào)串?dāng)_,采用可控三態(tài)電路與總線相連,不工作器件所連的三態(tài)電路處于高阻狀態(tài)。 (引腳三態(tài)能力: 0態(tài), 1態(tài), 高阻態(tài))4. 總線分時(shí)復(fù)用:由于引腳數(shù)限制,地址總線和數(shù)據(jù)總線使用了相同的引腳。如: AD0 AD158086 16位微處理器基本結(jié)構(gòu)的特點(diǎn)52.1 8086 CPU結(jié)構(gòu) 8086/8088CPU由兩個(gè)獨(dú)立的總線接口單元 BIU和指令執(zhí)行單元EU組成,BIU和EU的操作時(shí)并行的。 8086是16位微處理器.采用雙列直插式,40

4、個(gè)引腳。其中16根數(shù)據(jù)線,20根地址線,直接尋址空間1MB,有較強(qiáng)的指令系統(tǒng),可對(duì)多種數(shù)據(jù)類(lèi)型進(jìn)行處理。 8088 是準(zhǔn)16位微處理器總線接口部件BIU:完成取指令,讀操作數(shù),送結(jié)果,所有與外部的操作由其完成。 指令執(zhí)行部件EU:從BIU的指令隊(duì)列中取出指令,并且執(zhí)行指令。6 8086微處理器結(jié)構(gòu)EU和BIU的組成和各功能單元的作用 EU:負(fù)責(zé)執(zhí)行指令BIU:負(fù)責(zé)交換數(shù)據(jù)16位8位地址加法器72.1.1 8086 CPU的內(nèi)部結(jié)構(gòu)總線接口部件BIU功能:負(fù)責(zé)CPU與存儲(chǔ)器、I/O端口之間的數(shù)據(jù)傳送。具體講,BIU要從內(nèi)存取指令送到指令隊(duì)列;CPU執(zhí)行指令時(shí),BIU要配合EU從指定的內(nèi)存單元或外

5、設(shè)端口中取數(shù)據(jù),將數(shù)據(jù)傳送給EU,或把EU的操作結(jié)果傳送到指定的內(nèi)存單元或外設(shè)端口。20位物理地址形成取指令指令排隊(duì)讀/寫(xiě)操作數(shù)總線控制8段寄存器CS、DS、SS、ES指令指針寄存器IP,下一條指令的偏移地址20位物理地址加法器,形成20位物理地址6字節(jié)的指令隊(duì)列,預(yù)放6字節(jié)的指令代碼總線控制邏輯,發(fā)出總線控制信號(hào)組成:2.1.1 8086 CPU的內(nèi)部結(jié)構(gòu)總線接口部件BIU9首先由CS中的16位段基值,在最低位后面補(bǔ)4個(gè)0,加上IP中的16位偏移地址,在加法器內(nèi)形成20位物理地址,直接送A-BUS,通過(guò)總線控制邏輯發(fā)存儲(chǔ)器讀信號(hào),按給定的地址從存儲(chǔ)器中取指令,送到指令隊(duì)列中等待執(zhí)行.指令隊(duì)列

6、可存儲(chǔ)6字節(jié)指令代碼,先進(jìn)先出由EU取指令執(zhí)行BIU的工作過(guò)程2.1.1 8086 CPU的內(nèi)部結(jié)構(gòu)總線接口部件BIU當(dāng)8086指令隊(duì)列有2個(gè)/2個(gè)以上字節(jié)空余時(shí),BIU便會(huì)自動(dòng)執(zhí)行取指操作,填滿指令隊(duì)列,且自動(dòng)調(diào)整指令隊(duì)列輸入端指針。10指令執(zhí)行部件EU功能:負(fù)責(zé)指令譯碼和指令執(zhí)行。組成:4個(gè)通用寄存器AX、BX、CX、DX4個(gè)專用寄存器BP、SP、SI、DI標(biāo)志寄存器(程序狀態(tài)字)PSW算術(shù)邏輯運(yùn)算單元ALUEU控制電路,取指令控制和時(shí)序控制2.1.1 8086 CPU的內(nèi)部結(jié)構(gòu)11EU工作過(guò)程從指令隊(duì)列中取指令,進(jìn)行譯碼若需要操作數(shù),送操作數(shù)的16位偏移地址給BIU,形成20位物理地址。

7、申請(qǐng)?jiān)L問(wèn)存儲(chǔ)器或I/O端口。向EU內(nèi)部各部件發(fā)出控制命令,完成相映操作。12EU和BIU的操作關(guān)系和指令流水 1)EU和BIU的操作原則EU執(zhí)行轉(zhuǎn)移、調(diào)用和返回指令時(shí),若下一條指令不在指令隊(duì)列中,則隊(duì)列被自動(dòng)清除,BIU根據(jù)本條指令執(zhí)行情況重新取指和填充指令隊(duì)列。 BIU指令隊(duì)列有2個(gè)或2個(gè)以上字節(jié)為空時(shí),BIU自動(dòng)啟動(dòng)總線周期,取指填充指令隊(duì)列。直至隊(duì)列滿,且EU對(duì)BIU又沒(méi)有總線訪問(wèn)請(qǐng)求時(shí), BIU進(jìn)入空閑狀態(tài)。 EU每執(zhí)行完一條指令,從指令隊(duì)列首取指。系統(tǒng)初始化后,指令隊(duì)列為空,EU等待BIU從內(nèi)存取指,填充指令隊(duì)列。EU取得指令,譯碼并執(zhí)行指令。若指令需要存/取操作數(shù),需訪問(wèn)存儲(chǔ)器或I

8、/O,EU向BIU發(fā)出訪問(wèn)總線請(qǐng)求。當(dāng)BIU接到EU的總線請(qǐng)求,若正忙(正在執(zhí)行取指總線周期),則必須等待BIU執(zhí)行完當(dāng)前的總線周期,方能響應(yīng)EU請(qǐng)求;若BIU空閑,則立即執(zhí)行EU申請(qǐng)總線的請(qǐng)求。13 2)指令流水(EU+BIU帶來(lái)的好處)142.1.2內(nèi)部寄存器結(jié)構(gòu)15 進(jìn) 位 標(biāo) 志奇偶校驗(yàn)輔助進(jìn)位全零標(biāo)志符號(hào)標(biāo)志單步標(biāo)志中斷標(biāo)志方向標(biāo)志溢出標(biāo)志DF=0 地址指針自動(dòng)增量DF=1 地址指針自動(dòng)減量IF=1 允許中斷IF=0 關(guān)閉中斷 狀態(tài)標(biāo)志寄存器PSWPF=1 偶數(shù)個(gè)1PF=0 奇數(shù)個(gè)18086使用9位標(biāo)志位。分為狀態(tài)標(biāo)志和控制標(biāo)志2類(lèi)161.狀態(tài)標(biāo)志 進(jìn)位標(biāo)志(CF):當(dāng)執(zhí)行算術(shù)指令時(shí)

9、,其結(jié)果的最高位有進(jìn)位或借位則將CF置1,否則將CF復(fù)位。奇偶標(biāo)志(PF):當(dāng)指令執(zhí)行的結(jié)果是偶校驗(yàn)的,也就是結(jié)果中有偶數(shù)個(gè)位是邏輯1的,則將PF置1,是奇校驗(yàn)的,則將PF 復(fù)位。輔助進(jìn)位標(biāo)志(AF):在8位二進(jìn)制數(shù)內(nèi)其中有低位半字節(jié)向高位半字節(jié)進(jìn)位,或高位半字節(jié)借位給低位半字節(jié),則將AF置1,否則AF復(fù)位。零標(biāo)志(ZF):如果算術(shù)或邏輯運(yùn)算結(jié)果為零,則將ZF置1,否則ZF復(fù)位。符號(hào)標(biāo)志(SF):將結(jié)果的最高位復(fù)制到SF。也就是,如果是負(fù)數(shù),則將SF置1,是正數(shù)復(fù)位。溢出標(biāo)志(OF):帶符號(hào)的結(jié)果超出表示范圍,則將OF置1,如果不超出范圍,則OF復(fù)位。 172.控制標(biāo)志 陷阱標(biāo)志(TF):假如

10、TF置1,8086進(jìn)入單步方式。它執(zhí)行一條指令后就跳到一個(gè)專用服務(wù)程序上去,以檢查指令執(zhí)行情況,這種操作方式對(duì)于調(diào)試程序非常有用。中斷允許標(biāo)志(IF):如果IF標(biāo)志被置1,在INT輸入時(shí),8086接受可屏蔽的中斷請(qǐng)求。當(dāng)IF標(biāo)志復(fù)位時(shí),中斷請(qǐng)求被忽略,可屏蔽中斷接口被禁止。方向標(biāo)志(DF):DF的邏輯值決定串操作的方向。當(dāng)DF置1時(shí),串指令自動(dòng)按減地址執(zhí)行。當(dāng)DF復(fù)位時(shí),串指令按增加地址執(zhí)行。 188086/8088 CPU 可以工作在兩種工作模式:最大模式和最小模式,引腳24-31的8條引腳在兩種模式中的功能不同。()中用于最大模式。2.2 8086 CPU的引腳及其功能19引腳基本構(gòu)成:共

11、40條引腳.(20條地址線,16條數(shù)據(jù)線,電源線、控制線等),采用雙列直插式封裝。 2.2 8086 CPU的引腳及其功能8086/8088的引腿信號(hào) 8088的引腿信號(hào)A15SS0IO/MA14A13A12A11A10 A9 A820見(jiàn)P14 圖2-3 8086CPU的引腳信號(hào)1、 AD15AD0: 16條地址/數(shù)據(jù)總線。 雙向、三態(tài)、復(fù)用 功能:分時(shí)用作存儲(chǔ)器或輸入輸出設(shè)備的地址和數(shù)據(jù)線。 總線周期的T1狀態(tài):AD15AD0輸出地址,T2T3狀態(tài)用來(lái)傳送數(shù)據(jù)。2、 A19/S6 A16/S3:地址/狀態(tài)線。三態(tài)、輸出 功能:T1狀態(tài):訪問(wèn)存儲(chǔ)器時(shí), A19A16 輸出訪問(wèn)地址的高4位。使A

12、19A0構(gòu)成20位實(shí)際地址;訪問(wèn)I/O設(shè)備時(shí), A19A16 輸出全部的低電平。由A15A0構(gòu)成訪問(wèn)外設(shè)端口的16位地址。 T2T4 狀態(tài):S3-S6輸出CPU的狀態(tài)信息。2.2 8086 CPU的引腳及其功能2.2.1 8086/8088 CPU在最小模式中引腳定義21S6=0:指示8086/8088當(dāng)前與總線相連。S5=1:當(dāng)前允許可屏蔽中斷請(qǐng)求;S5=0:當(dāng)前禁止可屏蔽中斷請(qǐng)求。S4 S3 CPU當(dāng)前正在使用的段寄存器 0 0 ES 0 1 SS 1 0 CS,或不需要使用段寄存器(I/O,INT) 1 1 DS 2.2.1 8086/8088 CPU在最小模式中引腳定義223、BHE/

13、S7(總線高位使能/狀態(tài)線)三態(tài)、輸出功能:T1狀態(tài):BHE低電平有效,指出數(shù)據(jù)總線上D15-D8高8位數(shù)據(jù)有效。AD0地址線指出數(shù)據(jù)總線上低8位數(shù)據(jù)有效。即BHE作為高8位數(shù)據(jù)的選通信號(hào) T2T4:輸出S7狀態(tài)。 S7未定義4、 MN/MX(最小/最大工作模式選擇信號(hào)) 輸入 工作在最大模式,CPU的S2S0提供給總線控制器8288,由8288產(chǎn)生總線控制信號(hào),以支持構(gòu)成多處理器系統(tǒng)。2.2.1 8086/8088 CPU在最小模式中引腳定義235、RD-讀選通信號(hào)線。三態(tài)、輸出功能:為0表示允許CPU存儲(chǔ)器或I/O端口的讀操作。T2,T3,TW一直有效,用M/IO信號(hào)區(qū)分存儲(chǔ)器還是IO端口

14、6、WR-寫(xiě)選通信號(hào)線。三態(tài)、輸出功能:為0表示允許CPU存儲(chǔ)器或I/O端口的寫(xiě)操作。 T2,T3,TW一直有效, M/IO信號(hào)區(qū)分存儲(chǔ)器還是IO端口7、 M/IO(存儲(chǔ)器/IO控制信號(hào))。三態(tài)、輸出功能:用來(lái)表示CPU正在訪問(wèn)的是存儲(chǔ)器還是I/O設(shè)備。8、ALE(地址鎖存允許信號(hào))。 輸出、高電平有效功能:T1狀態(tài)有效時(shí),表示數(shù)據(jù)/地址總線上傳送的是地址信息,可用它作為將地址信息鎖存到地址鎖存器8282/8283中2.2.1 8086/8088 CPU在最小模式中引腳定義249、DEN-數(shù)據(jù)允許信號(hào)。 三態(tài)、輸出功能:用作數(shù)據(jù)收發(fā)器(8286/8287)的使能信號(hào)(輸出允許),最小模式下,通

15、常使用8286/8287來(lái)增加數(shù)據(jù)的驅(qū)動(dòng)能力,使用DEN進(jìn)行選通。10、DT/R-數(shù)據(jù)發(fā)送/接收控制信號(hào)。三態(tài)、輸出 功能:用來(lái)控制數(shù)據(jù)收發(fā)器8286/8287的數(shù)據(jù)傳送方向。為1時(shí)表示CPU進(jìn)行寫(xiě)操作,為0時(shí)表示CPU進(jìn)行讀操作。DMA方式為高阻狀態(tài) 2.2.1 8086/8088 CPU在最小模式中引腳定義8086 CPU的存儲(chǔ)器讀周期時(shí)序中,DEN信號(hào)的作用?數(shù)據(jù)允許2511、READY-準(zhǔn)備就緒信號(hào) 輸入、高電平有效功能:該信號(hào)存儲(chǔ)器或I/O設(shè)備發(fā)來(lái)的響應(yīng)信號(hào),為有效時(shí),表示存儲(chǔ)器或I/O設(shè)備與CPU的數(shù)據(jù)傳送已準(zhǔn)備好。CPU在T3狀態(tài)檢測(cè)此信號(hào)線,若引腳輸入低電平,CPU在T3狀態(tài)后

16、插入 TW 狀態(tài),延長(zhǎng)總線周期,直到READY輸入高電平。12、RESET(系統(tǒng)復(fù)位信號(hào)) 輸入、高電平有效功能:RESET有效時(shí)停止CPU現(xiàn)行操作,進(jìn)行復(fù)位:初始化所有寄存器;CS=0FFFFH;IP=0 2.2.1 8086/8088 CPU在最小模式中引腳定義2613、INTR(可屏蔽中斷請(qǐng)求信號(hào))輸入 電平觸發(fā) 高電平功能:當(dāng)外設(shè)接口向CPU發(fā)出中斷請(qǐng)求時(shí),輸入INTA為高電平。CPU在每條指令最后一個(gè)時(shí)鐘周期測(cè)試該引腳,若INTR=H且IF=1,CPU響應(yīng)中斷請(qǐng)求14、INTA(中斷響應(yīng)信號(hào)) 輸出 低電平有效 功能:CPU響應(yīng)外部可屏蔽中斷請(qǐng)求INTR后,發(fā)給外設(shè)的回答信號(hào),CPU

17、發(fā)出兩個(gè)INTA負(fù)脈沖,第一個(gè)通知外設(shè)以響應(yīng)中斷請(qǐng)求,第二個(gè)負(fù)脈沖后,外設(shè)接口向數(shù)據(jù)總線上放中斷類(lèi)型號(hào)15、NMI-(非屏蔽中斷請(qǐng)求信號(hào)) 輸入 正跳變有效 注意:非屏蔽中斷不受IF的影響,不能用軟件屏蔽。當(dāng)該引腳出現(xiàn)正跳變,就能使CPU當(dāng)前指令結(jié)束時(shí)響應(yīng)中斷,轉(zhuǎn)入中斷服務(wù)程序入口地址的類(lèi)型碼已確定N=2 。2.2.1 8086/8088 CPU在最小模式中引腳定義2716、TEST(測(cè)試信號(hào)) 輸入 低電平有效 CPU執(zhí)行WAIT指令期間,每隔5個(gè)時(shí)鐘周期對(duì)TEST進(jìn)行 測(cè)試,有效則結(jié)束等待,CPU繼續(xù)執(zhí)行被暫停的指令2.2.1 8086/8088 CPU在最小模式中引腳定義17、HOLD(

18、總線請(qǐng)求信號(hào)) 輸入 高電平有效 18、HLDA(總線保持響應(yīng)信號(hào)) 輸出 高電平有效 功能:在最小模式下,當(dāng)其它控制器要使用總線時(shí),從 HOLD輸入請(qǐng)求信號(hào),CPU收到該信號(hào),如果同意,就 經(jīng)過(guò)HLDA引腳輸出有效信號(hào),并使總線處于高阻狀態(tài),讓出總線使用權(quán)。申請(qǐng)使用總線的設(shè)備,就可以使用總線了,在使用完總線后,撤消HOLD(使其為低電平)信號(hào), 在HOLD信號(hào)消失后,CPU終止HLDA信號(hào)(使其為低電平),同時(shí)收回總線使用權(quán)。2819、CLK(時(shí)鐘信號(hào))。 輸入 功能:由8284時(shí)鐘發(fā)生器產(chǎn)生20 Vcc(電源線+5V);GND(地線)輸入 2.2.1 8086/8088 CPU在最小模式中

19、引腳定義292、 LOCK(總線封鎖信號(hào)) 輸出 三態(tài) 低電平有效 功能:表示CPU封鎖其它處理器使用總線。例在多個(gè)處理器共用一個(gè)存儲(chǔ)器時(shí),防止同時(shí)訪問(wèn)。2.2.2 8086/8088 CPU在最大模式中引腳定義3、RQ/GT0、RQ/GT1總線請(qǐng)求輸入/請(qǐng)求允許輸出 雙向 功能:當(dāng)其它主控制器向CPU請(qǐng)求使用總線時(shí),使用該引腳。舉例: 某主控制器向CPU的RQ/GT引腳發(fā)一個(gè)T的負(fù)脈沖(請(qǐng)求脈沖) , 表示請(qǐng)求使用局部總線。 CPU滿足一定條件,在后面一個(gè)時(shí)間由本引腳輸出一個(gè)T的負(fù)脈沖(允許脈沖) ,表示接受請(qǐng)求,同時(shí)使總線處于高阻狀態(tài)。 當(dāng)提出使用總線的控制器使用完畢,再向RQ/GT發(fā)一個(gè)

20、T的負(fù)脈沖(釋放脈沖) ,表示請(qǐng)求結(jié)束,CPU在下一個(gè)T可再使用總線,即收回總線使用權(quán)。30QS1 QS0 隊(duì)列狀態(tài) 0 0 隊(duì)列無(wú)操作 0 1 從隊(duì)列取指令的第一字節(jié) 1 0 隊(duì)列空 1 1 從隊(duì)列取指令的后續(xù)字節(jié)4、QS1,QS0(指令隊(duì)列狀態(tài)信號(hào)) 輸出 高電平有效功能:指示CPU中指令隊(duì)列當(dāng)前的狀態(tài),以便外部處理器對(duì)主CPU內(nèi)部指令隊(duì)列的工作進(jìn)行跟蹤.2.2.2 8086/8088 CPU在最大模式中引腳定義31 8088CPU的內(nèi)部數(shù)據(jù)總線寬度為16位,外部總線寬度為8位,8088稱準(zhǔn)16位微處理器。 8086與8088 CPU的不同之處 8088指令隊(duì)列長(zhǎng)度 對(duì)16位數(shù)的存儲(chǔ)器讀/

21、寫(xiě)要兩個(gè)讀寫(xiě)周期 分時(shí)復(fù)用地址/數(shù)據(jù)總線為AD7-AD0,而AD15-AD8成為僅傳遞地址信息A15-A8 8088用IO/M信號(hào)代替M/IO信號(hào) BHE信號(hào)改為SS0,組合DT/R、IO/M決定總線周期操作。2.2.3 8086與8088 CPU的不同之處321、S0S2(總線周期的狀態(tài)信號(hào))。 輸出 三態(tài) 功能:在最大模式下由CPU傳送給總線控制器8288,8288譯碼后產(chǎn)生相應(yīng)的控制信號(hào)代替CPU輸出S2 S1 S0 作用2.2.2 8086/8088 CPU在最大模式中引腳定義0 0 0 發(fā)中斷響應(yīng)信號(hào)0 0 1 讀I/O端口0 1 0 寫(xiě)I/O端口0 1 1 暫停 1 0 0 取指令

22、1 0 1 讀存儲(chǔ)器1 1 0 寫(xiě)存儲(chǔ)器1 1 1 無(wú)源狀態(tài)332.3.1 存儲(chǔ)器地址的分段1、存儲(chǔ)器地址的分段 8086系統(tǒng)有20根地址線,存儲(chǔ)器尋址空間2201MB ,但系統(tǒng)中寄存器是16位,如何通過(guò)寄存器進(jìn)行尋址1MB的空間?邏輯段300000HFFFFFH邏輯段4邏輯段2邏輯段11MB2.3 8086存儲(chǔ)器的組織采用分段的方法(1)將1MB存儲(chǔ)器分成若干邏輯段,每段最大64KB。 (2)段與段之間可以是連續(xù)的,也可以是分開(kāi)的或重疊的。段寄存器的16位值左移4位,得到的20位值加上16位的偏移量。34左移4位 BIU 中20位物理地址的產(chǎn)生由基址指針(BP)寄存器、基址(BX)寄存器、源

23、變址(SI)寄存器、目標(biāo)變址(DI)寄存器和指令指針(IP)提供由8086的段寄存器之一提供,它們是CS、DS、SS、ES。 352. 邏輯地址和物理地址 邏輯地址:由段地址和偏移量地址構(gòu)成的存儲(chǔ)器的地址,段基址和偏移量都是16位的。程序設(shè)計(jì)時(shí)采用邏輯地址物理地址:存儲(chǔ)器的1MB地址空間的絕對(duì)地址,由16位的偏移量值和16位的段基址值合并而成的,物理地址是20位。 轉(zhuǎn)變:物理地址=段基址16偏移地址2.3.1 存儲(chǔ)器地址的分段363、合成物理地址 段寄存器內(nèi)的數(shù)據(jù)值左移4位,空出的低位補(bǔ)上0,然后偏移量數(shù)值和移位后的段基址數(shù)值中低16位相加,其結(jié)果是20位物理地址。 例1:段基址數(shù)值為1234

24、H,偏移量數(shù)值為0022H,求物理地址。 1.段基址數(shù)值的二進(jìn)制為: 123416 = 0001 0010 0011 010022.左移4位空出的低位補(bǔ)零后:0001 0010 0011 0100 00002 = 12340163.偏移量二進(jìn)制為:002216 = 0000 0000 0010 001024.將移位后的段地址和偏移量相加:12340 H+ 0022 H 物理地址: 12362 H每次存儲(chǔ)器訪問(wèn)之始,8086內(nèi)部自動(dòng)完成地址計(jì)算。37例2:假定段寄存器內(nèi)容是002AH,構(gòu)成物理地址是002C3H的偏移量是多少? 解:將段寄存器內(nèi)容左移4位,低位補(bǔ)零得: 002A0H 從物理地址減

25、去上值得: 002C3H-002A0H = 0023H 38D7D0奇地址存儲(chǔ)體512K*8SEL A18A0D7D0偶地址存儲(chǔ)體512K*8SEL A18A0D7D0D15D8A19A1A0BHE 在物理連接上,8086 CPU把1MB存儲(chǔ)空間分兩個(gè)512KB的存儲(chǔ)體:偶地址存儲(chǔ)體和奇地址存儲(chǔ)體2.3.2 8086存儲(chǔ)器的分體結(jié)構(gòu)39 地址線A19A1 同時(shí)連到兩個(gè)存儲(chǔ)體上當(dāng) A0 =0時(shí)選偶數(shù)地址存儲(chǔ)體,當(dāng) BHE=0時(shí)選中奇數(shù)地址存儲(chǔ)體。BHE A0 所用數(shù)據(jù)引腳 操作 0 0 AD15AD0 同時(shí)傳送高、低兩個(gè)字節(jié) 0 1 AD15AD8 從奇地址單元讀/寫(xiě)一個(gè)字節(jié) 1 0 AD7AD

26、0 從偶地址單元讀/寫(xiě)一個(gè)字節(jié) 1 1 不傳送 2.3.2 8086存儲(chǔ)器的分體結(jié)構(gòu)40練習(xí):已知段地址和偏移地址分別為2015H和0028H,此存儲(chǔ)單元物理地址?若CSA000H,求當(dāng)前代碼段的物理地址范圍?若數(shù)據(jù)段位于52000H到61FFFH范圍,問(wèn)DS?20178HA0000HAFFFFHDS5200H41 8086存儲(chǔ)器的分體結(jié)構(gòu)D7D0奇地址存儲(chǔ)體512K*8SEL A18A0D7D0偶地址存儲(chǔ)體512K*8SEL A18A0D7D0D15D8A19A1A0BHE42數(shù)據(jù)總線D0 D71M*8位 存儲(chǔ)體D0 D7A19 A0A19 A0地址總線00000H00001HFFFFFH

27、8088系統(tǒng)存儲(chǔ)器的物理結(jié)構(gòu):43 在8086CPU系統(tǒng)中,把1MB存儲(chǔ)空間分兩個(gè)512KB的存儲(chǔ)體(Bank):偶地址存儲(chǔ)體和奇地址存儲(chǔ)體。偶地址存儲(chǔ)體的數(shù)據(jù)線與CPU數(shù)據(jù)總線低8位(D7D0) 相連,奇地址存儲(chǔ)體的數(shù)據(jù)線與CPU數(shù)據(jù)總線高8位(D15D8)相連。用地址A0和信號(hào)BHE區(qū)分兩個(gè)存儲(chǔ)體。 由于8086CPU有16位數(shù)據(jù)總線,它與存儲(chǔ)器之間,一次傳送既可以同時(shí)傳送兩個(gè)字節(jié)數(shù)據(jù),也可以單獨(dú)傳送一個(gè)字節(jié)數(shù)據(jù)。 對(duì)于8088CPU,只有8位數(shù)據(jù)總線,它與存儲(chǔ)器之間,一次傳送只能傳送一個(gè)字節(jié)數(shù)據(jù)。 1MB存儲(chǔ)空間看成一個(gè)存儲(chǔ)體,無(wú)需A0和 BHE 。44例1.(00100H)=1234H

28、34H12H00104H00103H例2.(00103H)=5678H78H56H00101H00100H8086CPU從偶地址開(kāi)始讀/寫(xiě)一個(gè)字,只需訪問(wèn)一次存儲(chǔ)器.8086CPU從奇地址開(kāi)始讀/寫(xiě)一個(gè)字,需占2個(gè)總線周期,第一次取奇地址上數(shù)據(jù),偶地址8位被忽略,第二次取偶地址上數(shù)據(jù),奇地址8位被忽略.為了加快程序運(yùn)行速度,編程時(shí)注意從M的偶地址開(kāi)始存放數(shù)據(jù).45 堆棧是存儲(chǔ)器中開(kāi)辟的一個(gè)區(qū)域,是一段連續(xù)的內(nèi)存空間,用來(lái)暫時(shí)存儲(chǔ)一些數(shù)據(jù)或地址信息.它可在1MB空間內(nèi)任意浮動(dòng),其容量64KB堆棧空間的位置和大小由堆棧段寄存器SS和堆棧指針寄存器 SP確定。 SS 指向堆棧段的起始地址, SP保存

29、的是當(dāng)前堆棧棧頂?shù)钠屏俊6褩5墓ぷ鞣绞剑骸昂筮M(jìn)先出 ”;堆棧的地址增長(zhǎng)方式是由高向低增長(zhǎng),棧底設(shè)在存儲(chǔ)器的高地址區(qū) 2.3.2 堆棧46棧頂:從SS和SP的內(nèi)容可得到一個(gè)物理地址(SS:SP),該地址是棧中最后壓入的數(shù)據(jù)的地址,稱棧頂。8086SPSSSS:FFFEHSS:SPSS:0002H堆棧段存儲(chǔ)器棧底棧頂棧末端存儲(chǔ)器的堆棧段 棧底:微型計(jì)算機(jī)啟動(dòng)時(shí),SP的初始值為FFFEH,它與SS內(nèi)數(shù)值合成棧的最高地址字的位置(SS:FFFEH),即棧底。 2.3.2 堆棧47當(dāng)執(zhí)行PUSH指令時(shí): CPU先自動(dòng)修改指針 SP-2 SP, 然后, 將低字節(jié) (SP),高字節(jié) (SP+1).當(dāng)執(zhí)行P

30、OP指令時(shí): CPU先將棧頂?shù)膬?nèi)容彈出即低字節(jié) (SP),高字節(jié) (SP+1), 然后修改指針 SP+2 SP. 設(shè)堆棧指針SP的初值為2300H,AX=50ABH,BX=1234H。執(zhí)行PUSHAX后SP=?,再執(zhí)行 PUSH BX及 POP AX之后,SP=? AX=? BX=? SP=22FEH ,AX=BX=1234H480011332255 例:假如當(dāng)前SS=C000H,SP=1000H,指出當(dāng)前棧頂在存儲(chǔ)器中的位置,AX=3322H,BX=1100H,CX=6655H,執(zhí)行PUSH AX,PUSH BX,POP CX。此時(shí)堆棧中內(nèi)容的變化?C0FFCHC1000HC0FFFHC0F

31、FEHC0FFDHC0000H22330066 AXBXCX 112.3.2 堆棧492.4 8086系統(tǒng)配置 8086/8088 CPU 可以工作在兩種工作模式:最大模式和最小模式,引腳24-31的8條引腳在兩種模式中的功能不同。50最小工作模式特點(diǎn):用于單機(jī)系統(tǒng),系統(tǒng)中只有8086一個(gè)處理器,往往用在組成基于8086 CPU的最小系統(tǒng)。系統(tǒng)中所需要的控制信號(hào)直接由8086 CPU提供MN/MX 接+5V最大工作模式特點(diǎn): 用于多處理機(jī)系統(tǒng),系統(tǒng)中包含一個(gè)以上的多個(gè)處理器,比如包含協(xié)處理器8087或I/O處理器8089 系統(tǒng)控制信號(hào)不是由8086直接產(chǎn)生,而是通過(guò)與8086配套的總線控制器由

32、總線控制器8288提供 MN/MX 接地設(shè)置:MN/MX=2)如何設(shè)定工作方式1 (接+5v)最小模式 0 (接“地”)最大模式 1)兩種工作方式的主要特點(diǎn)51最小模式的典型配置 數(shù)據(jù)收發(fā)器8286作為雙向數(shù)據(jù)驅(qū)動(dòng)。2.4 .1 最小模式系統(tǒng)時(shí)鐘發(fā)生器8284產(chǎn)生滿足8086 CLK要求的占空比1/3的時(shí)鐘信號(hào),還對(duì)復(fù)位信號(hào)RESET和準(zhǔn)備好信號(hào)READY進(jìn)行同步。8282對(duì)8086的地址信號(hào)進(jìn)行鎖存。包括AD19AD0和高位數(shù)據(jù)線使能信號(hào)BHE,共21位。52STB地址鎖存器8282/8283 是三態(tài)緩沖的8位數(shù)據(jù)鎖存器,8282的輸入輸出是同相的,8283的輸入輸出是反相的。用于地址和數(shù)據(jù)

33、分時(shí)復(fù)用1234567891020191817161514131211DI0DI1DI2DI3DI4DI5DI6DI7OEGNDVCCDO0DO1DO2DO3DO4DO5DO6DO7STB8282QDOEDI0DO0STB有效時(shí):跟隨 即 輸出DO7DO0等于輸入DI7DI0。STB無(wú)效時(shí):鎖存即 輸出DO7DO0不變53AD0AD1AD2AD3AD4AD5AD6AD7AD8AD9AD15AD16AD17AD18AD19BHE8086DI0DI1DI2DI3DI4DI5DI6DI7OEDO0DO1DO2DO3DO4DO5DO6DO7STB8282DI0DI1DO0DO1DI7DO7OESTBO

34、ESTB數(shù)據(jù)數(shù)據(jù)地址828282828282鎖存器和8086的連接OEALE54 8286雙向數(shù)據(jù)總線收發(fā)器特點(diǎn): 8位并行、 三態(tài)、雙向、輸入輸出同相 作用:緩沖及增加數(shù)據(jù)驅(qū)動(dòng)能力 8086CPU驅(qū)動(dòng)數(shù)據(jù)的負(fù)載能力有限,當(dāng)數(shù)據(jù)總線上連接的設(shè)備(M,I/O )較多時(shí),為了使系統(tǒng)能穩(wěn)定工作,應(yīng)提高數(shù)據(jù)總線電流驅(qū)動(dòng)能力和承受電容負(fù)載的能力.所以一般利用雙向數(shù)據(jù)總線收發(fā)器8286/ 8287(反相) / 74LS245來(lái)增加驅(qū)動(dòng)能力. 55A0A1A2A3A4A5A6A7OEB0B1B2B3B4B5B6B7 8286GND1234567891020191817161514131211VCC(5V)T

35、OE0011T1010 傳送方向Ai-Bi(CPU到外部)Bi-Ai(外部到CPU )高阻狀態(tài)高阻狀態(tài)OE:輸出允許信號(hào) =0 時(shí)允許數(shù)據(jù)通過(guò)8286 =1 禁止傳送,輸出呈高阻T:控制數(shù)據(jù)傳送方向 8286雙向數(shù)據(jù)總線收發(fā)器56AD0AD1AD2AD3AD4AD5AD6AD7A0A1A2A3A4A5A6A7OEB0B1B2B3B4B5B6B7 TDENDT/R數(shù)據(jù)總線808682868286收發(fā)器和8086的連接A0A7OEB0B7T57 在80868088CPU內(nèi)部沒(méi)有時(shí)鐘信號(hào)發(fā)生器,當(dāng)組成微機(jī)系統(tǒng)時(shí),所需的時(shí)鐘信號(hào)需由外部時(shí)鐘發(fā)生器電路提供。8086 CPU 的內(nèi)部和外部時(shí)鐘信號(hào),是由外

36、部時(shí)鐘發(fā)生器8284產(chǎn)生。時(shí)鐘發(fā)生器8284ACSYNCPCLKAEN1RDY1REDAYRDY2AEN2CLKGNDVCCX1X2TANKEFIF/COSCRESRESET8284123456789181716151413121110*黃色為輸入信號(hào) 綠色為輸出信號(hào)/3SYNC/2SYNCDCKQCKDQXTALOSCILLAIORRESX1X2TANKF/CEFICSYNCRDY1AEN1AEN2RDY2READYPCLKOSCCLKRESET58時(shí)鐘發(fā)生器8284A1、8284引腳定義 AEN1、AEN2:地址允許信號(hào),用來(lái)控制相應(yīng)的總線準(zhǔn)備好信號(hào)RDY1、RDY2。 RDY1、RDY2

37、 :總線準(zhǔn)備好信號(hào),由系統(tǒng)數(shù)據(jù)總線上的某個(gè)設(shè)備輸入。 READY :準(zhǔn)備好信號(hào),輸出X1、X2、 :晶振連接端,輸入F/C :頻率/晶振選擇端,輸入EFI :外加頻率輸入端,輸入的頻率是CLK輸出的3倍CLK :時(shí)鐘信號(hào),輸出PCLK :供外設(shè)用的時(shí)鐘,輸出OSC :振蕩器輸出RES :復(fù)位輸入信號(hào)RESET :復(fù)位輸出信號(hào)59EFIF/CRDY1RES1RDY2RES2RESETREADYCLKX1 X28086/80882、8284A和8086/8088的連接RESETREADYCLK8284ARES+5V時(shí)鐘發(fā)生器8284A603、8284時(shí)鐘信號(hào)發(fā)生器的功能 時(shí)鐘信號(hào)發(fā)生器:F/C接低

38、電平,X1,X2端接晶振,晶振工作頻率為14.318MHz,并產(chǎn)生3組時(shí)鐘信號(hào)。 OSC:晶振輸出。它的頻率與晶振頻相同,可供外圍電路使用。 CLK:處理器時(shí)鐘信號(hào)。它由晶體振蕩器產(chǎn)生的14.318MHz脈沖,經(jīng)內(nèi)部三分頻電路分頻后輸出頻率為4.77MHz,占空比為33的時(shí)鐘信號(hào)CLK,供CPU或直接與CPU總線相連的設(shè)備所用的時(shí)鐘。 PCLK:為外設(shè)提供的TTL電平時(shí)鐘,將CLK時(shí)鐘在芯片內(nèi)經(jīng)二分頻后得到頻率為2.385MHz,占空比為50的PCIK信號(hào),可作為外圍電路的時(shí)鐘。時(shí)鐘發(fā)生器8284A61OSC、CLK、PCLK的時(shí)序關(guān)系圖oscCLKPCLK14.318MHz4.77MHz2.

39、385MHz時(shí)鐘發(fā)生器8284ACLK= OSCPLK= CLK62復(fù)位生成電路 RES端接“電源好”信號(hào),輸入8284后,經(jīng)整形并由時(shí)鐘的下降沿同步后,輸出RESET信號(hào)作為80868088的復(fù)位信號(hào)RESET ,使系統(tǒng)上電自動(dòng)復(fù)位。就緒控制電路 外界的就緒信號(hào)RDY輸入8284后,經(jīng)時(shí)鐘的下降沿同步后輸出READY信號(hào)作為80868088的就緒信號(hào)READY 時(shí)鐘發(fā)生器8284A63最小模式的系統(tǒng)組成64最大模式的典型配置 2.4 .2 最大模式系統(tǒng) 與最小模式系統(tǒng)相比,最大模式的系統(tǒng)控制信號(hào)是通過(guò)8288總線控制器產(chǎn)生的。 包括:地址鎖存、數(shù)據(jù)使能、數(shù)據(jù)傳輸方向控制信號(hào),存儲(chǔ)器和I/O讀

40、寫(xiě)信號(hào),以及中斷應(yīng)答信號(hào)等。 總線控制器8288解決主處理器和協(xié)處理器之間的總線共享協(xié)調(diào)問(wèn)題。思考:8286的OE信號(hào)?65 總線控制器8288用來(lái)產(chǎn)生具有適當(dāng)定時(shí)的總線命令信號(hào)和總線控制信號(hào)。 8288的引腳及內(nèi)部結(jié)構(gòu)框圖IOBCLKS1DT/RALEAENMRDCAMWCMWTCVCC(+5V)S0S2MCE/PDENDENCENINTAIORCAIOWC IOWC8288GND1234567891020191817161514131211狀態(tài)譯碼器控制電路控制信號(hào)發(fā)生器命令信號(hào)發(fā)生器S0S1S2CLKAENCENIOBMRDCMWTCAMWCIORCIOWCAIOWCINTADT/RDE

41、NMCE/PDENALE總線控制器828866 8086CPU的操作是在時(shí)鐘脈沖CLK的統(tǒng)一控制下進(jìn)行的.指令周期:執(zhí)行一條指令所需的時(shí)間。一個(gè)指令周期由幾個(gè)總線周期組成。時(shí)鐘周期或者狀態(tài)周期: 時(shí)鐘頻率的倒數(shù),也稱T狀態(tài),是CPU的基本計(jì)時(shí)單位。例:8086的時(shí)鐘頻率為5MHz,時(shí)鐘周期或T狀態(tài)為 ns 總線操作與總線周期 CPU按照一定的時(shí)序關(guān)系,通過(guò)BIU對(duì)外部的存儲(chǔ)器或I/O接口完成一次訪問(wèn),稱為CPU執(zhí)行了一次總線操作。執(zhí)行一次數(shù)據(jù)傳送的總線操作所需的時(shí)間稱為一個(gè)總線周期。 一個(gè)總線周期由幾個(gè)T狀態(tài)組成。8088/8086CPU中,每個(gè)總線周期至少包括 4 個(gè)時(shí)鐘周期,一般情況下,在

42、總線周期的T1狀態(tài)傳送地址、T2T4狀態(tài)傳送數(shù)據(jù). 2.5 8086的操作和時(shí)序20067Tw等待周期說(shuō)明:如果存儲(chǔ)器或I/O在典型總線周期內(nèi)來(lái)不及準(zhǔn)備好接受/發(fā)送數(shù)據(jù),則在T3狀態(tài)啟動(dòng)之前,存儲(chǔ)器或I/O必須通過(guò)“READY”信號(hào)線向CPU 發(fā)“數(shù)據(jù)未準(zhǔn)備好”信號(hào),CPU采樣到該信號(hào)以后,會(huì)在T3之后插入一個(gè)或者多個(gè)附加的時(shí)鐘周期Tw,即等待狀態(tài)。在等待狀態(tài),總線上的信號(hào)狀態(tài)和T3狀態(tài)保持一致??偩€周期總線周期總線周期T1 T2 T3 T4 T1 T2 T3 TW T4 Ti Ti T1 T2 T3 TW TW T48086總線周期序列當(dāng)CPU和內(nèi)存或外設(shè)之間無(wú)數(shù)據(jù)傳送時(shí)進(jìn)入空閑周期。是CP

43、U的BIU不執(zhí)行任何一個(gè)總線周期而EU仍在工作。即BIU對(duì)EU的等待??臻e周期68T1:CPU向地址總線送地址,指出被訪問(wèn)的外設(shè)或存儲(chǔ)器地址。T2:從總線上撤消地址,使總線低16位置成高阻,為傳輸數(shù)據(jù)作準(zhǔn)備。高4位A19A16傳送本周期狀態(tài)信息。T3:最高4位仍為狀態(tài)信息,總線低16位上出現(xiàn)讀/寫(xiě)數(shù)據(jù)。Tw:慢速外設(shè)或存儲(chǔ)器,不能及時(shí)提供數(shù)據(jù)時(shí),CPU等待。T4:總線周期結(jié)束。Ti:空閑狀態(tài)。 * 高4位,CPU仍驅(qū)動(dòng)前一總線周期的狀態(tài)。 * 如果前一總線周期為寫(xiě)周期,CPU在總線低16位繼續(xù)驅(qū)動(dòng)數(shù)據(jù)信息。 * 如果如果前一總線周期為讀周期,總線低16位為高阻。69 8086CPU復(fù)位之后重新

44、啟動(dòng)時(shí),程序從內(nèi)存的 ? 處開(kāi)始執(zhí)行指令。2.5.1系統(tǒng)的復(fù)位和啟動(dòng)1、復(fù)位的條件: 復(fù)位引腳RESET: 4個(gè)時(shí)鐘周期的高電平,初次加電復(fù)位, 不小于50s的高電平。2、復(fù)位后的狀態(tài): CS置FFFFH,其它寄存器清0,指令指針(IP)0000H, 指令隊(duì)列 空。 禁止中斷 由復(fù)位到啟動(dòng)RESET由高變低經(jīng)過(guò)7個(gè)時(shí)鐘,系統(tǒng)重新啟動(dòng)。(FFFF0H) 70CLKM/IOAD15AD0BHE/S7ALERDDT/RDENREADY地址輸出狀態(tài)輸出地址輸出數(shù)據(jù)輸入T1T2T3T4總線周期2.5.2 最小模式總線操作時(shí)序圖A19/S6A16/S31、讀總線周期8086最小模式總線寫(xiě)時(shí)序圖71CLKM

45、/IOA19/S6A16/S3AD15AD0BHE/S7ALEWRDT/RDEN地址輸出狀態(tài)輸出地址輸出數(shù)據(jù)輸出T1T2T3T4總線周期8086最小模式總線寫(xiě)時(shí)序圖2.5.2 最小模式總線操作時(shí)序圖2、寫(xiě)總線周期722.5.2 最小模式總線操作時(shí)序圖3、總線空操作 當(dāng)CPU不執(zhí)行總線周期時(shí)(指令隊(duì)列6字節(jié)以裝滿,EU未申請(qǐng)?jiān)L問(wèn)存儲(chǔ)器),BIU不和總線打交道,進(jìn)入總線空閑周期。 空閑周期中,雖然CPU對(duì)總線進(jìn)行空操作,但CPU內(nèi)部操作仍然進(jìn)行。4、總線保持信號(hào) 系統(tǒng)中,CPU以外的其他主模塊要求獲得控制總線的使用權(quán)時(shí),向CPU發(fā)出總線請(qǐng)求信號(hào)HOLD。 在每個(gè)時(shí)鐘上升沿,CPU檢測(cè)HOLD信號(hào),

46、有效,在總線周期T4或空閑狀態(tài)Ti后發(fā)出HLDA并讓出總線,直到HOLD無(wú)效,CPU收回總線控制權(quán)73CLKHOLDHLDAT4或Ti總線請(qǐng)求與允許時(shí)序圖中斷類(lèi)型CLKALEINTAAD7AD0T1T2T3T4T1T2T3T4TiTiTi空閑中斷響應(yīng)時(shí)序2.5.2 最小模式總線操作時(shí)序圖74CLKA19/S6A16/S3AD15AD0ALEA19A16,BHES7S3A15A0D15D0T1T2T3T4總線周期S2S0S2S0MRDC/IORCDT/RDEN無(wú)源狀態(tài)8086最大模式總線讀時(shí)序圖2.5.3 最大模式總線操作時(shí)序圖75CLKA19/S6A16/S2AD15AD0ALEA19A16,

47、BHES7S3A15A0D15D0T1T2T3T4總線周期DT/R“1”S2S0S2S0AMWC/AIOWCMWTC/IOWCDEN無(wú)源狀態(tài)8086最大模式總線寫(xiě)時(shí)序圖2.5.3 最大模式總線操作時(shí)序圖76CLKRQ/GTT4或Ti請(qǐng)求允許放棄請(qǐng)求最大模式中的總線請(qǐng)求與允許772.6 Intel結(jié)構(gòu)(IA)處理器進(jìn)化(自學(xué)) 性能的提高過(guò)程及采用的相關(guān)技術(shù) 來(lái)分析和學(xué)習(xí): IA處理器的技術(shù)發(fā)展動(dòng)因、思路和技術(shù)?從現(xiàn)象: CPU發(fā)展遵循摩爾定律:每隔18-24個(gè)月,性能與集成度增加一倍,價(jià)格降低一半。 Intel公司從78年推出的8086到2000年推出的Pentium 42006年Intel

48、Core 2 2007年Intel 四核心服務(wù)器用處理器 ,性能和速度都有了極大的增長(zhǎng)。782.6.1、預(yù)取指令隊(duì)列作用:本質(zhì)上實(shí)現(xiàn)指令級(jí)的并行,提高CPU效率;數(shù)量變化可緩解指令執(zhí)行速度增長(zhǎng)快而指令讀取速度增長(zhǎng)慢的矛盾;處理器隊(duì)列長(zhǎng)度(byte)80888086802868038680486Pentium4661632264(2 queues)IA處理器預(yù)取指令隊(duì)列79問(wèn)題根本:CPU速度快而存儲(chǔ)器速度慢設(shè)想一:用高速度存儲(chǔ)器?靜態(tài)存儲(chǔ)器SRAM比動(dòng)態(tài)存儲(chǔ)器DRAM快,但完全替代有以下問(wèn)題芯片物理面積大;功耗大,發(fā)熱量高;價(jià)格也相對(duì)較高;設(shè)想二:借鑒中、小型機(jī)的存儲(chǔ)管理技術(shù)?半導(dǎo)體技術(shù)發(fā)展推

49、動(dòng)了很多技術(shù)的微型化。802.6.2、Cache技術(shù)及進(jìn)化技術(shù)要求?需要存儲(chǔ)管理機(jī)制,使小容量的Cache與大容量主存儲(chǔ)器形成地址映射;根據(jù)一定的算法將CPU最常用或最近要用到的指令或數(shù)據(jù)從內(nèi)存裝入Cache,保證較高的Cache命中率。何物? 是中、小型機(jī)普遍采用的一種高速緩存技術(shù)。Cache是置于CPU與主存之間容量較小、速度較快的SRAM。把CPU對(duì)主存(DRAM)的訪問(wèn)轉(zhuǎn)變成對(duì)Cache的訪問(wèn)。812.6.2、Cache技術(shù)及進(jìn)化Cache技術(shù)如何使用?(即進(jìn)化過(guò)程)1)外部Cache 初現(xiàn)80386系統(tǒng)中,特點(diǎn):CPU內(nèi)集成MMU,支持連接外部Cache;2025Mhz,CPU可以實(shí)

50、現(xiàn)零等待的存儲(chǔ)器訪問(wèn);82進(jìn)一步考慮:若主頻再高呢?外部總線成為制約CPU訪問(wèn)時(shí)間的因素。 832)內(nèi)部統(tǒng)一Cache結(jié)構(gòu) 初現(xiàn)80486系統(tǒng)中,特點(diǎn):Cache設(shè)計(jì)在CPU芯片中,訪問(wèn)速度快;代碼與數(shù)據(jù)統(tǒng)一存放在同一個(gè)Cache中; 2.6.2、Cache技術(shù)及進(jìn)化84進(jìn)一步考慮:Cache的爭(zhēng)用問(wèn)題(老“總線爭(zhēng)奪”問(wèn)題的新表現(xiàn))853)代碼與數(shù)據(jù)分離的Cache結(jié)構(gòu)初現(xiàn)Pentium CPU,特點(diǎn):獨(dú)立的8KB代碼Cache和8KB數(shù)據(jù)Cache,解決同時(shí)取指和取數(shù)而產(chǎn)生的Cache爭(zhēng)用問(wèn)題。2.6.2、Cache技術(shù)及進(jìn)化86進(jìn)一步考慮:Cache爭(zhēng)用解決了,但是,如果發(fā)生Cache不命

51、中,則需要訪問(wèn)主存。 (還能想辦法提高速度嗎?)874)兩級(jí)Cache初現(xiàn)80486,特點(diǎn):采用了二級(jí)Cache技術(shù),在內(nèi)部Cache不命中時(shí),訪問(wèn)CPU外部的第二級(jí)Cache。而不必直接訪問(wèn)DRAM,最大限度地減小了外部(CPU外部)慢速存儲(chǔ)器對(duì)處理器性能的影響。當(dāng)然,管理機(jī)制更復(fù)雜。2.6.2、Cache技術(shù)及進(jìn)化成功結(jié)果:指令預(yù)取速度提高很快!88還可以進(jìn)一步考慮:2級(jí)Cache片內(nèi)化!Cache最佳容量配置! 891)多級(jí)流水線8086的2級(jí)流水。80486的5級(jí)流水(取指、譯碼級(jí)1、譯碼級(jí)2、執(zhí)行和寫(xiě)回)。80486達(dá)到每個(gè)時(shí)鐘周期可以執(zhí)行一條指令。 Pentium 4的流水線就長(zhǎng)達(dá)

52、20級(jí)。2.6.3、流水線技術(shù)及進(jìn)化流水線實(shí)現(xiàn)了指令的并行。-流水級(jí)數(shù)設(shè)多少合適呢?90進(jìn)一步考慮:現(xiàn)狀:Cache技術(shù)導(dǎo)致指令執(zhí)行速度跟不上指令的預(yù)取速度。如何解決指令執(zhí)行速度問(wèn)題?912)超標(biāo)量流水線技術(shù)即流水線的并行執(zhí)行。Pentium在80486五級(jí)流水的基礎(chǔ)上,設(shè)計(jì)了可以并行執(zhí)行的兩條流水線U和V。特點(diǎn):Pentium的超標(biāo)量流水每個(gè)時(shí)鐘周期基本上可以執(zhí)行兩條指令,約是80486的兩倍。2.6.3、流水線技術(shù)92Pentium指令流水線的運(yùn)行93進(jìn)一步考慮:似乎還有點(diǎn)小問(wèn)題:遇上分支轉(zhuǎn)移時(shí),流水線和指令隊(duì)列中的指令都要被刷新,需要重新取指并填充指令隊(duì)列。能否節(jié)省刷新時(shí)間?943)指令

53、分支預(yù)測(cè)技術(shù)針對(duì):分支指令發(fā)生轉(zhuǎn)移時(shí)需要刷新指令隊(duì)列所帶來(lái)的時(shí)間損失問(wèn)題。Pentium對(duì)策:采用了分支預(yù)測(cè)技術(shù),對(duì)于預(yù)測(cè)正確的轉(zhuǎn)移指令,則可不必花費(fèi)由刷新隊(duì)列造成的時(shí)間開(kāi)銷(xiāo)。 2.6.3、流水線技術(shù)952.6.4指令流水線的組成總線接口部件、指令預(yù)取部件、指令譯碼部件 執(zhí)行部件 96 Intel結(jié)構(gòu)(IA)處理器進(jìn)化 性能的提高過(guò)程及采用的相關(guān)技術(shù) 小結(jié):取指令和預(yù)取指令隊(duì)列(提出指令并行)Cache技術(shù)(存儲(chǔ)器速度的瓶頸問(wèn)題) 超標(biāo)量流水線技術(shù)(指令執(zhí)行速度)指令分支預(yù)測(cè) (減小分支損失)IA處理器的寄存器組織(簡(jiǎn)單復(fù)雜變化)MMU和虛擬存儲(chǔ) (存儲(chǔ)器容量問(wèn)題)97MMU和虛擬存儲(chǔ)機(jī)制擴(kuò)大

54、存儲(chǔ)空間286:MMU,16MB物理、1GB虛擬16K個(gè)段描述符描述16K個(gè)存儲(chǔ)段,每段64KB實(shí)模式僅用1MB物理空間,保護(hù)用全部16MB386:MMU增加分頁(yè)選擇,線形物理地址轉(zhuǎn)換,4GB物理、64TB虛擬控制寄存器CR0:PE位,實(shí)保護(hù)模式轉(zhuǎn)換Pentium:64GB物理空間98 2.7.1 Pentium的原理結(jié)構(gòu) 總線接口部件 U流水線和V流水線 數(shù)據(jù)Cache 指令Cache 指令預(yù)取部件 指令譯碼器 控制ROM 分支目標(biāo)緩沖器BTB 控制部件 浮點(diǎn)處理部件FPU 分段部件和分頁(yè)部件寄存器組2.7 Pentium 微處理器992.7.1 Pentium的主要部件和原理結(jié)構(gòu) Pent

55、ium的寄存器和相關(guān)機(jī)制100 總線接口部件完成如下總線功能 地址驅(qū)動(dòng)和傳輸。 數(shù)據(jù)驅(qū)動(dòng)。 數(shù)據(jù)總線寬度控制。 數(shù)據(jù)緩沖。 總線操作的控制功能 奇/偶校驗(yàn)告示功能 Cache操作控制101 IA處理器的寄存器組織1)基本結(jié)構(gòu)寄存器通用REGAXDX EAXEBXSP、BP、SI、DI ESP、EBP、ESI、EDI 段REGCS、SS、DS、ES、FS、GS指令指針REG IP EIP標(biāo)志REGFlags EFlags*2)系統(tǒng)級(jí)寄存器控制REGCR0CR3*,CR4系統(tǒng)地址REGGDTR 存放全局描述符表的基地址和限長(zhǎng)IDTR 存放全局描述符表的基地址和限長(zhǎng)LDTR 選擇符(LDT基址、限長(zhǎng)

56、、屬性)TR選擇符(任務(wù)基址、限長(zhǎng)、屬性)3)調(diào)試與測(cè)試寄存器調(diào)試REGDR0DR7測(cè)試REGTR6TR7,TR3TR5102 IA處理器的 寄存器組織103 2.8 32 位微處理器Pentium的先進(jìn)技術(shù)1. 先進(jìn)的體系結(jié)構(gòu)增強(qiáng)了信息傳輸準(zhǔn)確性檢測(cè)能力和機(jī)器異常事件的處理能力。采用分段分頁(yè)兩極存儲(chǔ)管理機(jī)制,使存儲(chǔ)管理可靠快速。常用指令采用硬件來(lái)實(shí)現(xiàn),使其執(zhí)行速度大大提高。內(nèi)部集成FPU,使得浮點(diǎn)運(yùn)算速度大大加快。兩條指令流水線并行執(zhí)行指令,CPU速度得到充分發(fā)揮。獨(dú)立的片內(nèi)代碼Cache 和數(shù)據(jù)Cache。內(nèi)部總線32位,外部數(shù)據(jù)總線64位,加快了數(shù)據(jù)傳輸率。104 2.8 32 位微處理

57、器Pentium的先進(jìn)技術(shù)2CISC和RISC相結(jié)合的技術(shù)CISC(復(fù)雜指令集計(jì)算機(jī)技術(shù))和RISC(簡(jiǎn)化指令集計(jì)算機(jī)技術(shù))Intel在Pentium之前的CPU均屬于CISC體系,從Pentium開(kāi)始,將CISC和RISC結(jié)合,大多數(shù)指令是簡(jiǎn)化指令,但仍保留了一部分復(fù)雜指令,對(duì)這部分指令采用硬件來(lái)實(shí)現(xiàn)。所以取兩者之長(zhǎng),實(shí)現(xiàn)更高的性能。105 2.8 32 位微處理器Pentium的先進(jìn)技術(shù)3. 超標(biāo)量流水線技術(shù) 所謂超標(biāo)量,就是一個(gè)處理器中有多條指令流水線。在超標(biāo)量機(jī)制中,每條流水線都配置了多個(gè)流水線部件。Pentium中采用U和V兩條流水線,超標(biāo)量流水線機(jī)制使Pentium能夠?qū)?yīng)1個(gè)時(shí)鐘

58、周期執(zhí)行兩條整數(shù)運(yùn)算指令。 采用超標(biāo)量流水線機(jī)制是有前提條件的,一是要求所有的指令基本上都是簡(jiǎn)化指令,二是V 流水線總是能夠接受U流水線的下一條指令,可見(jiàn),超標(biāo)量流水線技術(shù)是和RISC技術(shù)密不可分的。106Pentium指令流水線的運(yùn)行107 2.8 32 位微處理器Pentium的先進(jìn)技術(shù)4. 先進(jìn)的分支預(yù)測(cè)技術(shù) 1)概述 分支預(yù)測(cè)邏輯,可以對(duì)將要執(zhí)行的分支指令進(jìn)行動(dòng)態(tài)的轉(zhuǎn)移預(yù)測(cè)。分支預(yù)測(cè)邏輯是以該分支指令的歷史執(zhí)行情況為預(yù)測(cè)依據(jù)的。 支持分支預(yù)測(cè)機(jī)制的關(guān)鍵部件是分支目標(biāo)緩沖器BTB(Branch Target Buffer)。它含有一個(gè)1KB 容量的Cache,其中可以容納256條轉(zhuǎn)移指令

59、的目標(biāo)地址和歷史狀態(tài)(2 bits ),它記錄了已執(zhí)行過(guò)的分支指令的信息。分支預(yù)測(cè)邏輯根據(jù)BTB中的記錄,按照一定轉(zhuǎn)移預(yù)測(cè)策略對(duì)當(dāng)前的分支指令進(jìn)行轉(zhuǎn)移預(yù)測(cè)。108歷史記錄表示轉(zhuǎn)移發(fā)生頻度00Strongly not taken01Weakly not taken10Weakly taken11Strongly taken 轉(zhuǎn)移頻度表 歷史記錄為11表示轉(zhuǎn)移強(qiáng)烈發(fā)生、10表示轉(zhuǎn)移較弱發(fā)生,歷史記錄為01表示轉(zhuǎn)移基本不發(fā)生、00表示轉(zhuǎn)移強(qiáng)烈不發(fā)生。 若歷史記錄項(xiàng)為10或11則指示正向預(yù)測(cè),預(yù)測(cè)該指令將發(fā)生轉(zhuǎn)移,并指示預(yù)取器從在BTB中記錄的指令轉(zhuǎn)移目標(biāo)地址開(kāi)始取指令,切換到另一條指令隊(duì)列順序存放指令。 若歷史記錄項(xiàng)為01或00則指示負(fù)向預(yù)測(cè),分支預(yù)測(cè)邏輯預(yù)測(cè)該分支指令不發(fā)生轉(zhuǎn)移。109動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)策略 2)分支指令執(zhí)行后BTB對(duì)記錄的操作 根據(jù)轉(zhuǎn)移發(fā)生情況對(duì)歷史位的修改 110 動(dòng)態(tài)轉(zhuǎn)移

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論