版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微機(jī)原理
與接口技術(shù)
第1章
計(jì)算機(jī)基礎(chǔ)知識(shí)1.1計(jì)算機(jī)基礎(chǔ)1.1.1計(jì)算機(jī)的發(fā)展世界上第一臺(tái)電子數(shù)字計(jì)算機(jī)ENIAC(ElectronicNumericalIntegratorandComputer,電子數(shù)值積分與計(jì)算機(jī))是由美國(guó)賓夕法尼亞大學(xué)于1946年研制成功并投入使用的。ENIAC是一個(gè)龐然大物從第一臺(tái)電子計(jì)算機(jī)問(wèn)世至今,僅僅半個(gè)世紀(jì),其發(fā)展速度是世界上任何其他學(xué)科無(wú)法比擬的。計(jì)算機(jī)已經(jīng)使人類(lèi)社會(huì)從制造業(yè)社會(huì)發(fā)展到了信息化社會(huì),改變了社會(huì)的面貌,促使人們的工作和生活方式發(fā)生了驚人的變化,成為科技發(fā)展的最有影響的商品,并且它還將繼續(xù)預(yù)示著未來(lái)世界的變化,使數(shù)千年人類(lèi)文明史中曾經(jīng)有過(guò)的各種神話般的幻想逐漸變?yōu)楝F(xiàn)實(shí)。
計(jì)算機(jī)的發(fā)展階段從第一臺(tái)計(jì)算機(jī)問(wèn)世以來(lái),計(jì)算機(jī)的生產(chǎn)技術(shù)發(fā)展異常迅速,在推動(dòng)計(jì)算機(jī)硬件發(fā)展的各種因素中,電子邏輯器件的發(fā)展是起決定作用的因素。因此,計(jì)算機(jī)的發(fā)展階段常以計(jì)算機(jī)使用的器件來(lái)劃分。第一代電子計(jì)算機(jī):電子管計(jì)算機(jī)時(shí)代。從1946年開(kāi)始,用電子管作為計(jì)算機(jī)的基本器件。其主要特點(diǎn)是:體積大、耗電多、價(jià)格高、速度慢。第二代電子計(jì)算機(jī):晶體管計(jì)算機(jī)時(shí)代。晶體管于1947年在貝爾實(shí)驗(yàn)室發(fā)明,它的小體積、低耗電以及載流子的高速運(yùn)行的特點(diǎn),使電子管望塵莫及。第三代電子計(jì)算機(jī):中、小規(guī)模集成電路計(jì)算機(jī)時(shí)代。第四代電子計(jì)算機(jī):大規(guī)模和超大規(guī)模集成電路計(jì)算機(jī)時(shí)代。
微處理器的發(fā)展歷程1.全球第一塊微處理器40044004主要用來(lái)處理算術(shù)運(yùn)算,它集成了2300多個(gè)晶體管,具有4位帶寬,工作頻率為108kHz,尋址空間只有640B。2.新一代8位微處理器8080
在1974年,推出了新一代8位微處理器——8080。8080集成了6000個(gè)晶體管,其時(shí)鐘頻率為2MHz。8080是一個(gè)劃時(shí)代的產(chǎn)品,它的誕生,使得Intel有了自己真正意義上的微處理器.
3.第一代微處理機(jī)——16位的8086CPU4.第二代微處理機(jī)——16位的80286CPU80286芯片于1982年2月1日正式發(fā)布,總線帶寬為16位,集成了13萬(wàn)多個(gè)晶體管,因此性能也有了很大的提高,主頻達(dá)到了20MHz。5.第三代微處理機(jī)——32位的80386CPU1985年10月,Intel推出它的第三代微處理機(jī)——32位的80386DX。80386DX是一塊集成進(jìn)了27.5萬(wàn)個(gè)晶體管的全32位微處理機(jī),其時(shí)鐘頻率達(dá)到33MHz,數(shù)據(jù)總線和地址總線均為32位,具有4GB的物理尋址能力。6.第四代微處理機(jī)——32位的80486CPU80486微處理機(jī)于1989年4月正式發(fā)布。這是一款在一片芯片內(nèi)集成進(jìn)了120萬(wàn)個(gè)晶體管的CPU,是Intel第一次將微處理機(jī)的晶體管數(shù)目突破100萬(wàn)只。7.第五代微處理機(jī)——32位的PentiumIntel在1993年推出了全新一代的高性能處理機(jī)Pentium。Pentium芯片內(nèi)部集成進(jìn)310萬(wàn)個(gè)晶體管,單是最初版本的66MHz的Pentium微處理機(jī)運(yùn)算性能,就比33MHz的80486DX高出3倍多,而100MHz的Pentium則比33MHz的80486DX快6~8倍。較之后輩的Pentium微處理機(jī),這種Pentium微處理機(jī)又叫經(jīng)典奔騰(ClassicPentium)。8.高能奔騰(PentiumPro)Intel于1996年推出了新x86系列CPU——PentiumPro。PentiumPro芯片內(nèi)部集成進(jìn)550萬(wàn)個(gè)晶體管,內(nèi)部時(shí)鐘頻率為133MHz。9.多能奔騰(PentiumMMX)1996年底Intel又推出了Pentium系列的改進(jìn)版本,也就是平常所說(shuō)的PentiumMMX(多能奔騰)。MMX技術(shù)是Intel最新發(fā)明的一項(xiàng)多媒體增強(qiáng)指令集技術(shù),它的英文全稱(chēng)可以翻譯成“多媒體擴(kuò)展指令集”。MMX是Intel公司在1996年為增強(qiáng)PentiumCPU在音像、10.二代奔騰PentiumⅡ1997年5月,Intel推出了與PentiumPro同一個(gè)檔次的PentiumⅡ。PentumⅡ有一系列的不同檔次的產(chǎn)品,其中第一代的產(chǎn)品就是PentiumⅡKlamath芯片。作為PentiumⅡ的第一代芯片,它運(yùn)行在66MHz總線上,主頻分233MHz、266MHz、300MHz和333MHz四種。由于它代表了Pentium系列機(jī)當(dāng)時(shí)的最高性能,所以將其稱(chēng)之為二代奔騰Pentium。11.PentiumⅢ應(yīng)該把PentiumⅢ稱(chēng)之為“多能奔騰二代處理機(jī)”(PentiumIIProcessorwithMMX2Technology)。Intel于1999年2月發(fā)布了PentiumⅢ芯片——Katmai,作為第一款專(zhuān)為提高用戶(hù)的互聯(lián)網(wǎng)計(jì)算體驗(yàn)而設(shè)計(jì)的微處理機(jī),使用戶(hù)能夠盡享豐富的音頻、視頻、動(dòng)畫(huà)和栩栩如生的三維效果。針對(duì)不同需求,PentiumⅢ推出了移動(dòng)PentiumⅢ和PentiumⅢXeon(至強(qiáng))處理機(jī)。12.Pentium4Pentium4是Intel新一代高性能32位微處理機(jī),在體系結(jié)構(gòu)上,Pentium4完全不同于它的前輩機(jī)PentiumII和PentiumⅢ。PentiumII和PentiumⅢ采用的是與PentiumPro相同的P6結(jié)構(gòu)形式,而Pentium4采用的則是NetBurst的新式處理機(jī)結(jié)構(gòu)。采用NetBurst機(jī)構(gòu)是為了加快以突發(fā)方式傳送數(shù)據(jù)速度,如流媒體、MP3播放程序和視頻壓縮程序等的傳送速度。專(zhuān)家們指出:“該設(shè)計(jì)意味著從傳統(tǒng)整數(shù)運(yùn)算性能(如標(biāo)準(zhǔn)的商業(yè)應(yīng)用程序)向媒體運(yùn)算性能變遷的重大革新”。但是NetBurst仍然是由開(kāi)發(fā)P6的原班人馬完成的。1.1.14未來(lái)的計(jì)算機(jī)發(fā)展未來(lái)的計(jì)算機(jī)將向高性能、人性化、網(wǎng)絡(luò)化三個(gè)方向發(fā)展。1.高性能2.人性化3.網(wǎng)絡(luò)化1.1.3計(jì)算機(jī)的組成與性能評(píng)測(cè)任何一個(gè)計(jì)算機(jī)系統(tǒng)都是由密切相關(guān)的硬件和軟件組成,硬件是計(jì)算機(jī)的物質(zhì)基礎(chǔ),軟件是發(fā)揮和擴(kuò)大計(jì)算機(jī)功能的程序,兩者相輔相成,缺一不可。沒(méi)有硬件,計(jì)算機(jī)便不存在,軟件無(wú)法運(yùn)行;沒(méi)有軟件,只有硬件構(gòu)成的“裸機(jī)”,用戶(hù)無(wú)法使用。
計(jì)算機(jī)硬件的組成計(jì)算機(jī)硬件主要包括:中央處理器(CPU)、主存儲(chǔ)器、輔助存儲(chǔ)器、輸入/輸出(I/O)設(shè)備以及把它們連接在一起的總線。圖1.1是這幾個(gè)組成部分的連接示意圖。CPU、主存儲(chǔ)器合起來(lái),稱(chēng)為主機(jī)。輸入/輸出設(shè)備和輔助存儲(chǔ)器,統(tǒng)稱(chēng)為外部設(shè)備,簡(jiǎn)稱(chēng)外設(shè)。
CPU主存儲(chǔ)器輔助存儲(chǔ)器接口輔助存儲(chǔ)器I/O接口I/O設(shè)備總線
計(jì)算機(jī)硬件的組成1.中央處理器(CPU)中央處理器簡(jiǎn)稱(chēng)為CPU,它是計(jì)算機(jī)的核心。CPU由運(yùn)算器、控制器和一些寄存器組成。運(yùn)算器用來(lái)對(duì)數(shù)據(jù)進(jìn)行各種算術(shù)運(yùn)算和邏輯運(yùn)算??刂破鞯墓δ苁牵嚎刂?、指揮運(yùn)算器及其他部件的工作,它是計(jì)算機(jī)的指揮中心。寄存器用來(lái)存放正在處理的數(shù)據(jù)和運(yùn)算結(jié)果。2.主存儲(chǔ)器和輔助存儲(chǔ)器存儲(chǔ)器是計(jì)算機(jī)中存放程序和數(shù)據(jù)的部件。計(jì)算機(jī)中的存儲(chǔ)器分為兩類(lèi):主存儲(chǔ)器(簡(jiǎn)稱(chēng)為主存或內(nèi)存)和輔助存儲(chǔ)器(簡(jiǎn)稱(chēng)為輔存或外存)。主存儲(chǔ)器可以和CPU直接交換信息,是計(jì)算機(jī)中的工作存儲(chǔ)器。程序和數(shù)據(jù)事先都必須存放在主存中,計(jì)算機(jī)工作時(shí),所執(zhí)行的指令和數(shù)據(jù)都從主存中取出,處理結(jié)果一般也都存放在主存中。主存的存取速度快而容量相對(duì)較小。輔助存儲(chǔ)器的存儲(chǔ)容量很大,但存取速度較慢。輔助存儲(chǔ)器中存放著計(jì)算機(jī)系統(tǒng)中幾乎所有的信息。計(jì)算機(jī)運(yùn)行時(shí),輔助存儲(chǔ)器的信息需要首先進(jìn)入主存后,才能被CPU使用。目前微機(jī)系統(tǒng)中使用的輔助存儲(chǔ)器,主要是磁表面存儲(chǔ)器(磁盤(pán)、磁帶)和光盤(pán)存儲(chǔ)器。3.輸入/輸出設(shè)備輸入/輸出設(shè)備又稱(chēng)I/O設(shè)備,是計(jì)算機(jī)與外界(包括人、另一臺(tái)計(jì)算機(jī)或其他設(shè)備)聯(lián)系和溝通的橋梁,用戶(hù)通過(guò)輸入/輸出設(shè)備與計(jì)算機(jī)系統(tǒng)進(jìn)行通信。輸入設(shè)備是指用戶(hù)能向計(jì)算機(jī)輸入信息的設(shè)備。其功能是將計(jì)算機(jī)程序、文本、圖形、圖像、聲音等各種數(shù)據(jù),轉(zhuǎn)換成計(jì)算機(jī)能處理的數(shù)據(jù)形式,并輸入到計(jì)算機(jī)中。目前常用的輸入設(shè)備有:鍵盤(pán)、鼠標(biāo)器、觸摸屏、數(shù)字化儀、掃描儀、圖像輸入裝置、聲音輸入裝置等。輸出設(shè)備是指能從計(jì)算機(jī)輸出信息的設(shè)備。其功能是將計(jì)算機(jī)的處理結(jié)果轉(zhuǎn)換成人可直接識(shí)別的文本、圖形、圖像以及聲音形式。目前常用的輸出設(shè)備有:顯示器、打印機(jī)、繪圖儀、多媒體音響設(shè)備等。4.總線總線(Bus)是連接計(jì)算機(jī)中CPU、主存、輔存、各種輸入/輸出接口部件的一組物理信號(hào)線及其相關(guān)的控制電路,它是計(jì)算機(jī)中各部件間傳送信息的公共通路。故總線又稱(chēng)為系統(tǒng)總線。系統(tǒng)總線上有三類(lèi)信號(hào):數(shù)據(jù)、地址和控制信號(hào)。負(fù)責(zé)傳輸這些信號(hào)的線路分別稱(chēng)為數(shù)據(jù)線、地址線和控制線。圖1.1中系統(tǒng)總線和輔存、I/O設(shè)備的連接是通過(guò)接口實(shí)現(xiàn)的。這是因?yàn)樗鼈兊乃俣炔荒芎椭鳈C(jī)相匹配,而且表達(dá)信息的格式也不相同。
計(jì)算機(jī)的軟件組成計(jì)算機(jī)的軟件包括:計(jì)算機(jī)運(yùn)行時(shí)所需的各種程序,以及描述程序功能、性能、設(shè)計(jì)、內(nèi)部結(jié)構(gòu)及如何操作與使用的文檔資料。軟件是計(jì)算機(jī)系統(tǒng)的靈魂,沒(méi)有配備任何軟件的“裸機(jī)”無(wú)法投入使用。沒(méi)有配備足夠的軟件,計(jì)算機(jī)的功能就不能很好地發(fā)揮,計(jì)算機(jī)的應(yīng)用范圍也將因此而大大縮小。組成計(jì)算機(jī)的軟件可分為:系統(tǒng)軟件和應(yīng)用軟件兩大類(lèi)。1.系統(tǒng)軟件系統(tǒng)軟件泛指那些為計(jì)算機(jī)配置的基礎(chǔ)性軟件,其中最重要的是操作系統(tǒng)、語(yǔ)言處理程序、數(shù)據(jù)庫(kù)管理系統(tǒng)及實(shí)用程序與工具軟件。(1)操作系統(tǒng):(2)語(yǔ)言處理程序(3)數(shù)據(jù)庫(kù)管理系統(tǒng)(4)實(shí)用程序與軟件工具2.應(yīng)用軟件應(yīng)用軟件是計(jì)算機(jī)用戶(hù)在各自的應(yīng)用領(lǐng)域中開(kāi)發(fā)和使用的程序。由于計(jì)算機(jī)的應(yīng)用極其廣泛,所以這類(lèi)軟件種類(lèi)繁多,不勝枚舉。如:科學(xué)計(jì)算類(lèi)程序、工程設(shè)計(jì)類(lèi)程序、數(shù)據(jù)處理類(lèi)程序、信息管理類(lèi)程序等等。在應(yīng)用軟件中有的通用應(yīng)用軟件非常流行,例如,文字處理軟件、電子表格軟件、繪圖軟件、網(wǎng)路通信軟件等。PC機(jī)有代表性的通用應(yīng)用軟件。分類(lèi)名稱(chēng)文字處理WPS,Word,Wordperfect,Amipro,PageMaker電子表格Excel,Lotus,…繪圖軟件Paintbrush,AutoCAD,Photoshop,CoreDraw,…網(wǎng)絡(luò)通信OutlookExpress,InternetExplorer,FTP,…簡(jiǎn)報(bào)軟件PowerPoint,ShowPartner,…統(tǒng)計(jì)軟件SPSS,SAS,BMDP,…
計(jì)算機(jī)的性能評(píng)測(cè)評(píng)測(cè)一臺(tái)計(jì)算機(jī)的性能,是一個(gè)極為復(fù)雜的工作。它與計(jì)算機(jī)的硬件、軟件及處理對(duì)象都有著密切的關(guān)系。對(duì)PC計(jì)算機(jī)的硬件性能評(píng)測(cè),通常有如下幾個(gè)主要技術(shù)指標(biāo)。1.字長(zhǎng)2.時(shí)鐘頻率3.主存儲(chǔ)器容量和速度4.硬磁盤(pán)存儲(chǔ)器性能5.系統(tǒng)總線的傳輸速率6.系統(tǒng)可靠性1.2.1二進(jìn)制
關(guān)于二進(jìn)制的知識(shí)二進(jìn)制數(shù)的基數(shù)是2,使用0~1符號(hào)八進(jìn)制數(shù)的基數(shù)是8,使用0~7八個(gè)符號(hào),運(yùn)算時(shí)逢八進(jìn)一。十六進(jìn)制數(shù)的基數(shù)是16,使用0~9、A、B、C、D、E、F十六個(gè)符號(hào),計(jì)算機(jī)之所以采用二進(jìn)制,主要是基于下面的原因。1.二進(jìn)制在技術(shù)上容易實(shí)現(xiàn)2.二進(jìn)制的運(yùn)算規(guī)則特別簡(jiǎn)單它們的基本運(yùn)算規(guī)則是:加法 減法0+0=0 0-0=00+1=1 0-1=1(向高位借1)1+0=1 1-0=11+1=0(向高位進(jìn)1)1-1=03.二進(jìn)制可以使計(jì)算機(jī)方便地進(jìn)行邏輯運(yùn)算1.2.2數(shù)值信息在計(jì)算機(jī)內(nèi)的表示計(jì)算機(jī)中的數(shù)值數(shù)據(jù)又分成整數(shù)和實(shí)數(shù)兩大類(lèi)。
整數(shù)的表示在計(jì)算機(jī)中,整數(shù)的小數(shù)點(diǎn)隱含在個(gè)位數(shù)的右面,也叫做定點(diǎn)數(shù)。計(jì)算機(jī)中的整數(shù)分為無(wú)符號(hào)整數(shù)和有符號(hào)整數(shù)。1.無(wú)符號(hào)整數(shù)2.有符號(hào)整數(shù).2.2.2實(shí)數(shù)的表示實(shí)數(shù)是既有整數(shù)又有小數(shù)的數(shù),例如:56.815,-1284.2,0.002345等都是實(shí)數(shù)。一個(gè)實(shí)數(shù)總可以表示成一個(gè)純小數(shù)和一個(gè)乘冪之積。浮點(diǎn)數(shù)的長(zhǎng)度可以是32位、64位甚至更多,位數(shù)越多,可表示的數(shù)值的范圍就越大,精度也越高。1.2.3數(shù)值數(shù)據(jù)的運(yùn)算整數(shù)的算術(shù)、邏輯運(yùn)算實(shí)數(shù)的運(yùn)算浮點(diǎn)乘除運(yùn)算1.3文字信息與
文本在計(jì)算機(jī)內(nèi)的表示計(jì)算機(jī)不僅能對(duì)數(shù)值數(shù)據(jù)進(jìn)行表示和處理(主要是各種運(yùn)算),而且對(duì)于諸如文字、圖像、圖形、聲音等信息也能進(jìn)行各種處理。但它們必須表示成二進(jìn)制數(shù)據(jù)形式,這些通稱(chēng)為非數(shù)值數(shù)據(jù)。本節(jié)介紹文字和文本信息的表示。1.3.1西文字符的編碼計(jì)算機(jī)的許多應(yīng)用,需要對(duì)字符或?qū)S梅?hào)進(jìn)行操作。但是字符不能直接進(jìn)入計(jì)算機(jī)內(nèi)部,必須將它們進(jìn)行數(shù)字化處理,由連續(xù)排列的二進(jìn)制數(shù)碼來(lái)表示。西文由拉丁字母、數(shù)字、標(biāo)點(diǎn)符號(hào)及一些特殊符號(hào)組成,它們通稱(chēng)為“字符”。所有字符的集合叫做“字符集”。字符集中的每一個(gè)字符各有一個(gè)二進(jìn)制代碼表示,它們互相區(qū)別,構(gòu)成了該字符集的代碼表。字符集有多種,每一種字符集的編碼方法也多種多樣。目前計(jì)算機(jī)中使用最廣泛的西文字符編碼是美國(guó)國(guó)家標(biāo)準(zhǔn)委員會(huì)頒布的美國(guó)信息交換標(biāo)準(zhǔn)碼(AmericanStandardCodeforInformationInterchange,簡(jiǎn)稱(chēng)ASCII碼),在這種編碼中,每個(gè)字符用7個(gè)二進(jìn)制位表示。這樣,從0000000到1111111可以給出128種編碼,可用來(lái)表示128個(gè)不同的字符,其中包括10個(gè)數(shù)字、大、小寫(xiě)字母各26個(gè)、算術(shù)運(yùn)算符、標(biāo)點(diǎn)符號(hào)等。1.3.2漢字的編碼中文的基本組成是漢字,漢字也是字符。由于漢字?jǐn)?shù)量大,字型復(fù)雜,同音字多,異體字多,同時(shí)日本、韓國(guó)、新加坡等國(guó)也都使用漢字,這就使?jié)h字的編碼要比西文字符的編碼要復(fù)雜得多。它涉及多種編碼:首先將漢字轉(zhuǎn)換成計(jì)算機(jī)能接收的0、1組成的編碼,稱(chēng)為漢字輸入碼。輸入碼進(jìn)入計(jì)算機(jī)后,必須轉(zhuǎn)換成漢字內(nèi)碼,才能進(jìn)行信息處理。為了最終顯示、打印漢字,再由內(nèi)碼轉(zhuǎn)換成漢字字形碼。此外,為了使不同的漢字處理系統(tǒng)之間能夠交換信息,還設(shè)有漢字交換碼。2.180386系統(tǒng)的核心80386微處理機(jī)是Intel于1985年推出的第一個(gè)32位微處理機(jī),也是第一個(gè)支持多任務(wù)的微處理機(jī)。80386的體系結(jié)構(gòu)為用戶(hù)提供一組32位通用寄存器。它們?cè)谑褂脮r(shí)不受任何限制,既可用來(lái)進(jìn)行數(shù)值計(jì)算,又可用它形成存儲(chǔ)器地址。80386體系結(jié)構(gòu)還給用戶(hù)提供了幾種存儲(chǔ)管理和尋址方式,以滿足不同的要求。此外,80386還提供多種尋址方式、數(shù)據(jù)類(lèi)型、指令以及某些特殊的結(jié)構(gòu),便于高級(jí)語(yǔ)言實(shí)施。下圖示出了以80386為基礎(chǔ)的高性能系統(tǒng)的核心。由圖可以看出,高性能系統(tǒng)的核心是:80386、數(shù)值協(xié)同處理器80387、外部設(shè)備控制器82380,高速緩沖存儲(chǔ)器Cache的控制器82385組成。下圖是高性能系統(tǒng)核心的構(gòu)成80387數(shù)值協(xié)處理器80386微處理機(jī)Cache存儲(chǔ)體82380DMA控制器
總線系統(tǒng)數(shù)據(jù)地址控制總線監(jiān)視數(shù)據(jù)數(shù)據(jù)地址控制總線控制82385Cache控制器80387的作用是加速浮點(diǎn)操作而高速緩沖存儲(chǔ)器Cache的控制器82385,對(duì)容量為32K字節(jié)的高速緩沖存儲(chǔ)器Cache實(shí)施控制,并帶有總線監(jiān)視(BusWatching)這一高級(jí)特征。在外部設(shè)備控制器82380內(nèi)集若干系統(tǒng)功能于一體,其中包括動(dòng)態(tài)RAM的更新、中斷與計(jì)時(shí)器和32位直接存儲(chǔ)器存取控制。80386的高性能系統(tǒng)核心配備有兩種不同的總線:一是80386的系統(tǒng)總線;二是80386的局部總線。2.280386的體系結(jié)構(gòu)
2.2.1寄存器組80386基本體系結(jié)構(gòu)包括寄存器組、CPU等。80386總共有34個(gè)寄存器,按其功能可分成以下幾類(lèi):通用寄存器(General-PurposeRegister)。段寄存器(SegmentRegister)。狀態(tài)和控制寄存器(StatusandControlRegister)。系統(tǒng)地址寄存器(SystemAddressRegister)。調(diào)試寄存器(DebugRegister)。測(cè)試寄存器(TestRegister)。
通用寄存器(General-PurposeRegister)8個(gè)通用寄存器是8086和80286寄存器的超集,它們的名字和用途分別為:EAX通常用作累加寄存器(Accumulator)EBX通常用作基址寄存器(Base)ECX通常用來(lái)記數(shù)(Count)EDX通常用來(lái)存放數(shù)據(jù)(Data)ESP通常用作堆棧指針(StackPointer)EBP通常用作基址指針(BasePointer)ESI通常用作源變址(SourceIndex)EDI通常用作目標(biāo)變址(DestinationIndex)8個(gè)通用寄存器中通常保存有32位數(shù)據(jù),但為進(jìn)行16位的操作并提供與Intel系列16位微機(jī)兼容,它們的低位部分被當(dāng)成8個(gè)16位的寄存器為了支持8位的操作還可進(jìn)一步把EAX、EBX、ECX、和EDX寄存器的低位部分(AX,BX,CX,DX)再進(jìn)一步分成8位一組的高端和低端兩個(gè)字節(jié),作為8個(gè)8位寄存器。這8個(gè)寄存器分別被命名為AH、BH、CH、DH和AL、BL、CL、DL。對(duì)8位或16位寄存器的操作只會(huì)影響到相應(yīng)的寄存器。
AXBXCXDXSIDIBPSPAHALBHBLCHCLDHDLEAXEBXECXEDXESIEDIEBIESPAXBXCXDX161503115870
段寄存器(Segmentregister)80386配備有6個(gè)16位的段寄存器,段寄存器也稱(chēng)段選擇符(Selector),它們的名字和用途如下:CS代碼段寄存器(CodeSegment)DS數(shù)據(jù)段寄存器(DataSegment)SS堆棧段寄存器(StackSegment)ES附加數(shù)據(jù)段寄存器(ExtraSegment)FS附加數(shù)據(jù)段寄存器(ExtraSegment)GS附加數(shù)據(jù)段寄存器(ExtraSegment)80386用這6個(gè)16位的段寄存器,去選擇各自的存儲(chǔ)區(qū)域。其中CS、DS和SS這3個(gè)段寄存器用來(lái)對(duì)當(dāng)前的代碼段、數(shù)據(jù)段和堆棧段進(jìn)行尋址。而剩下的那3個(gè)附加數(shù)據(jù)段寄存器則是被用來(lái)對(duì)用戶(hù)定義的數(shù)據(jù)區(qū)域?qū)ぶ贰?/p>
代碼段堆棧段數(shù)據(jù)段附加數(shù)據(jù)段附加數(shù)據(jù)段附加數(shù)據(jù)段CSSSDSESFSGS150在實(shí)方式下,在80386段寄存器內(nèi)保存著指定段的實(shí)際地址,如圖所示。16位代碼段地址16位數(shù)據(jù)段地址16位堆棧段地址16位ES段地址16位FS段地址16位GS段地址代碼數(shù)據(jù)堆棧附加ES附加FS附加GS而在保護(hù)方式下,在段寄存器內(nèi)保存著的則是16位的地址。這個(gè)16位的地址就是通常所說(shuō)的選擇符選擇符指示著描述符表中的某一項(xiàng),實(shí)際的段基地址則是被存放在描述符表中的一個(gè)描述符中,如圖所示。16位代碼段地址16位數(shù)據(jù)段地址16位堆棧段地址16位ES段地址16位FS段地址16位GS段地址代碼數(shù)據(jù)堆棧附加ES附加FS附加GS描述符表
段描述符寄存器對(duì)程序員來(lái)說(shuō),段描述符寄存器是不可見(jiàn)的,然而了解它的存在和作用卻是非常有益的。在80386的內(nèi)部,描述符寄存器與可見(jiàn)的各個(gè)段寄存器是相聯(lián)的,如圖2.6所示。每個(gè)描述符寄存器中保存著32位的基地址、段界限以及段的其他屬性。描述符寄存器(自動(dòng)裝入)段寄存器150物理基地址段界來(lái)自描述符的其他段的信息選擇符選擇符選擇符選擇符選擇符選擇符CSSSDSESFSGS
狀態(tài)和控制寄存器狀態(tài)和控制寄存器是由標(biāo)志寄存器EFLAGS、指令指針EIP和4個(gè)控制寄存器CR0~CR3)組成,如圖所示。
標(biāo)志寄存器(EFLAGS)指令指針寄存器(EIP)機(jī)器狀態(tài)寄存器(CR0)保留(CR1)頁(yè)故障地址寄存器(CR2)頁(yè)目錄基址寄存器(CR3)3101.指令指針寄存器在指令指針寄存器EIP中,存放著下一條要執(zhí)行指令的偏移量(Offset),這個(gè)偏移量是相對(duì)目前正在運(yùn)行的代碼段寄存器CS而言的。偏移量加上當(dāng)前段的地址,形成了下一條指令的地址。EIP中的低16位可以分開(kāi)來(lái)訪問(wèn),給它起名叫做指令指針I(yè)P(InstructionPointer)寄存器,用于16位尋址操作。下圖是80386指令指針寄存器EIP和標(biāo)志寄存器EFLAGS
IPFLAGSEIPEFLAGS2.標(biāo)志寄存器標(biāo)志寄存器EFLAGS存放著有關(guān)80386微處理機(jī)當(dāng)前狀態(tài)的信息,如圖所示。標(biāo)志寄存器中的第1、3、5、15位及18~31位都沒(méi)有定義。但是,當(dāng)使用SAHF指令或PUSHF指令時(shí),或當(dāng)出現(xiàn)中斷處理時(shí),除位1外,其余各位則全部是0。下圖是80386的標(biāo)志寄存器EFLAGS80386的標(biāo)志寄存器CF:進(jìn)位標(biāo)志(S)AF:輔助進(jìn)位標(biāo)志(S)PF:奇偶校驗(yàn)標(biāo)志(S)ZF:零標(biāo)志(S)SF:符號(hào)標(biāo)志(S)TF:自陷標(biāo)志(X)IF:允許中斷標(biāo)志(X)DF:方向標(biāo)志(C)OF:溢出標(biāo)志(S)IOPL:I/O特權(quán)級(jí)標(biāo)志(X)NT:嵌套任務(wù)標(biāo)志(X)RF:恢復(fù)標(biāo)志(X)VM:虛擬8086模式(X)171615140123456789101121331
……….CFPFZFAFSFTFIFDFOFNTRFVM0000IOPL1標(biāo)志寄存器中的位0(CF位)是進(jìn)位標(biāo)志位。標(biāo)志寄存器中的位2(PF位)是奇偶校驗(yàn)標(biāo)志位標(biāo)志寄存器中的位4(AF位)是輔助進(jìn)位標(biāo)志位.標(biāo)志寄存器中的位6(ZF位)是零標(biāo)志位,當(dāng)結(jié)果為零時(shí),被置成1;否則被置成0。標(biāo)志寄存器中的位7(SF位)是符號(hào)標(biāo)志位,當(dāng)結(jié)果為負(fù)時(shí)被置成1;結(jié)果為正時(shí),則被置成0。標(biāo)志寄存器中的位8(TF位)是自陷標(biāo)志位,當(dāng)將其置成1時(shí),則可以進(jìn)行單步執(zhí)行。當(dāng)指令執(zhí)行完后,就有可能生成異常事故1的自陷。標(biāo)志寄存器中的位9(IF位)是中斷標(biāo)志位,是用來(lái)表示允許或者禁止某些外部中斷。標(biāo)志寄存器中的位10(DF位)是定向標(biāo)志位。標(biāo)志寄存器中的位11(OF位)是溢出標(biāo)志位,用它表示運(yùn)算時(shí)出現(xiàn)的進(jìn)位進(jìn)入了結(jié)果的高序位,可是高序位卻沒(méi)有進(jìn)位輸出,或是高序位并沒(méi)有接受進(jìn)位輸入?yún)s產(chǎn)生了進(jìn)位輸出。標(biāo)志寄存器中的位12、位13(IOPL位)是輸入/輸出特權(quán)級(jí)位。標(biāo)志寄存器中的位14(NT位)是嵌套任務(wù)標(biāo)志位。標(biāo)志寄存器中的位16(RF位)是恢復(fù)標(biāo)志位,也是80386新增添的一位標(biāo)志位。標(biāo)志寄存器中的位17(VM位)是虛擬8086方式標(biāo)志位3.控制寄存器80386還定義了由4個(gè)32位的控制寄存器CR0~CR3組成一個(gè)寄存器組,如圖所示。PG保留機(jī)器狀態(tài)字MSWETTSEMMPPE
保留
頁(yè)故障線性地址寄存器
頁(yè)目錄基地址寄存器3143210CR0CR1CR2CR30123456789101131000000000000允許分頁(yè)處理機(jī)擴(kuò)展任務(wù)轉(zhuǎn)換模擬協(xié)處理器監(jiān)控協(xié)處理器允許保護(hù)在這4個(gè)控制寄存器中保存著全局性和任務(wù)無(wú)關(guān)的機(jī)器狀態(tài)。這些寄存器連同后面將要說(shuō)明的系統(tǒng)地址寄存器(SystemAddressRegister)一起,保存影響系統(tǒng)中所有任務(wù)的機(jī)器狀態(tài)。訪問(wèn)控制寄存器時(shí),要用存、取這一類(lèi)傳送指令,例如MOVCR0指令??刂萍拇嫫鰿R0包含6個(gè)預(yù)定義標(biāo)志,表示和控制機(jī)器的狀態(tài)。其中0~15位叫做機(jī)器狀態(tài)字MSW(MachineStatusWord),這使得80386在保護(hù)方式下能與80286兼容??刂萍拇嫫鰿R0中的位0是允許保護(hù)位PE(ProtectionEnable),用于啟動(dòng)微處理機(jī)的保護(hù)方式。如果PE被置成1,保護(hù)方式啟動(dòng);如果PE位被置成0,則微處理機(jī)在實(shí)地址方式下運(yùn)行。CR0中的位1是監(jiān)控協(xié)處理器位MP(MonitorCoprocessor)。它與TS位一起決定:當(dāng)TS=1時(shí)操作碼WAIT是否產(chǎn)生一個(gè)“協(xié)處理器不能使用”的出錯(cuò)信息。CR0的位2是模擬協(xié)處理器位EM(EmulateCoprocessor)。如果EM=1,則所有協(xié)處理器的操作碼都將產(chǎn)生“協(xié)處理器不能使用”的出錯(cuò)誤信號(hào)。如果EM=0,則所有協(xié)處理器的操作碼都能在80287或80387協(xié)處理器上執(zhí)行。CR0的位3是任務(wù)轉(zhuǎn)換位TS(TaskSwitched)。當(dāng)一個(gè)任務(wù)轉(zhuǎn)換完成之后自動(dòng)把它置成1。隨著TS被置成1,協(xié)處理器的操作碼將會(huì)引起一個(gè)協(xié)處理器不能使用的陷阱。CR0中的位4是微處理機(jī)的擴(kuò)充類(lèi)型位ET(ProcessorExtensionType),其內(nèi)保存著微處理機(jī)擴(kuò)充類(lèi)型的信息。如果ET=0,表示系統(tǒng)內(nèi)用的是80387浮點(diǎn)協(xié)處理器。這樣,設(shè)計(jì)人員可選擇使用80287和80387。CR0的位31是允許分頁(yè)位PE(PagingEnable)。它表示芯片上的分頁(yè)部件是否允許PG位和PE位配對(duì),給80386提供選擇操作環(huán)境的4種組合方式。由PG位和PE位定義的操作方式在表給予詳細(xì)說(shuō)明。
表:PG、PE位的4種組合PG位PE位方式
00實(shí)方式,8086操作
01保護(hù)方式,確切的80286的語(yǔ)義加上32位擴(kuò)充(在擴(kuò)充的80286/80386
保護(hù)方式范圍內(nèi),還定義了一個(gè)支持虛擬8086的子環(huán)境)10未被定義,如果試圖利用這一組合,則將發(fā)出一個(gè)一般保護(hù)故障11“分頁(yè)環(huán)境”允許保護(hù)方式下的所有設(shè)施都能分頁(yè)R1是未定義的控制寄存器,用作備用。CR2是頁(yè)故障線性地址寄存器,保存最后出現(xiàn)頁(yè)故障的全32位的線性地址。CR3是頁(yè)目錄基址寄存器,保存頁(yè)目錄表的物理基地址。因?yàn)?0386的頁(yè)目錄表是按頁(yè)排列的,所以低12位不起作用,即使寫(xiě)上了內(nèi)容,也不被理會(huì)。
系統(tǒng)地址寄存器80386有4個(gè)系統(tǒng)地址寄存器,如圖所示,它保存操作系統(tǒng)需要的保護(hù)信息和地址轉(zhuǎn)換表信息。選擇符選擇符TRIDTRGDTRLDTR471615032位線性基地址界限這4個(gè)專(zhuān)用的寄存器用于引用80386在保護(hù)方式下所需要的表或段。這4個(gè)系統(tǒng)地址寄存器名字和作用如下:全局描述符表寄存器GDTR(GlobalDescriptorTableRegister)是32位寄存器,用來(lái)保存全局描述符表(GDT)的32位線性基址和16位GDT的界限。中斷描述符表寄存器IDTR(InterruptDescriptorTableRegister)是32位寄存器,用來(lái)保存中斷描述符表(IDT)的32位線性地址和IDT的16位界限。局部描述符表寄存器LDTR(LocaLDescriptorTableRegister)是16位寄存器,其內(nèi)保存著16位的局部描述符表LDT段的選擇符。任務(wù)狀態(tài)寄存器TR(TaskStateRegister)是16位寄存器,其內(nèi)保存任務(wù)狀態(tài)段TSS的16位選擇符。
圖80386的調(diào)試寄存器線性斷點(diǎn)地址0線性斷點(diǎn)地址1線性斷點(diǎn)地址2線性斷點(diǎn)地址3Intel保留Intel保留斷點(diǎn)狀態(tài)斷點(diǎn)控制DR0DR1DR2DR3DR4DR5DR6DR73102.2.280386的CPU為使80386體系結(jié)構(gòu)有很高的性能指標(biāo),設(shè)計(jì)人員精心安排了微體系結(jié)構(gòu)。增強(qiáng)CPU的性能可通過(guò)下列途徑:(1)使用先進(jìn)的工藝過(guò)程和電路。(2)提高時(shí)鐘的速度。(3)增加數(shù)據(jù)寬度。(4)使用先進(jìn)的系統(tǒng)和總線結(jié)構(gòu)。(5)使用先進(jìn)的微體系結(jié)構(gòu)。80386微處理機(jī)的特點(diǎn)之一是采用流水線技術(shù),因此增大了系統(tǒng)的信息流量,在時(shí)鐘頻率為16MHz下,系統(tǒng)信息的流量每秒達(dá)3~4M指令。存儲(chǔ)器接口的信息流量每秒可達(dá)32MB,因而能高速地提供代碼。為使指令能以高速執(zhí)行,在指令流水線內(nèi)采用了指令預(yù)取技術(shù)。高速尋址流水線能非常迅速地生成有效地址、線性地址和物理地址。一些專(zhuān)門(mén)的優(yōu)化措施,像早期啟動(dòng)指令、早期乘法輸出以及早期數(shù)據(jù)周期指示等,可使性能進(jìn)一步提高。80386的8個(gè)邏輯部件分別叫做總線接口部件、預(yù)取部件、指令譯碼部件、控制部件、數(shù)據(jù)部件、保護(hù)測(cè)試部件、分段部件和分頁(yè)部件??刂撇考?、數(shù)據(jù)部件和保護(hù)測(cè)試部件共同組成80386CPU的執(zhí)行部件。80386的8個(gè)邏輯部件間邏輯關(guān)系如下圖所示。圖80386流水線結(jié)構(gòu)寄存器堆桶形移位器ALU分段分頁(yè)ALB段描述符高速緩沖存儲(chǔ)器保護(hù)測(cè)試控制預(yù)取代碼隊(duì)列隊(duì)指令譯碼列總線接口控制地址數(shù)據(jù)執(zhí)行部件
指令流水線(instructionpipeline)80386的指令流水線由三個(gè)邏輯部件構(gòu)成:一.總線接口部件;二.預(yù)取部件;三.是指令譯碼部件??偩€接口部件執(zhí)行存儲(chǔ)器周期并向預(yù)取部件傳遞指令代碼。預(yù)取部件把來(lái)自存儲(chǔ)器的指令代碼以16字節(jié)指令代碼隊(duì)列格式存放起來(lái)。指令譯碼則是從16字節(jié)的指令代碼隊(duì)列中提取代碼,形成最后指令,且以三個(gè)字為一條指令按序排好。1.總線接口部件BIU(BusinterfaceUnit)BIU是CPU和整個(gè)計(jì)算機(jī)系統(tǒng)之間的高速接口。它控制著同步多路32位的數(shù)據(jù)和地址總線。其功能是:當(dāng)取指令、取數(shù)據(jù)、分頁(yè)部件請(qǐng)求以及分段部件請(qǐng)求時(shí),能有效地滿足CPU對(duì)外部總線的傳送要求。因此,必須把總線接口部件設(shè)計(jì)成能接受多個(gè)內(nèi)部總線請(qǐng)求,并且能按優(yōu)先權(quán)加以選擇,能最大限度地利用可以利用的總線寬度,為這些請(qǐng)求服務(wù)。這些動(dòng)作與當(dāng)前進(jìn)行的任何總線交換操作都可以重疊進(jìn)行。80386總線周期只用兩個(gè)時(shí)鐘。如果使用流水線操作方式,80386總線還能夠在完成當(dāng)前總線操作以前,就開(kāi)始形成一個(gè)新總線周期的下一個(gè)地址。不論什么時(shí)候,在沒(méi)有總線傳送請(qǐng)求時(shí),即沒(méi)有操作數(shù)請(qǐng)求傳送時(shí),預(yù)取部件就利用這空閑周期,把下一條指令讀到預(yù)取部件的預(yù)取隊(duì)列中。2.預(yù)取部件(PrefetchUnit)它有一個(gè)能容納16條指令的隊(duì)列。預(yù)取部件把對(duì)齊了的指令存放在隊(duì)列中,以便于指令譯碼部件有效譯碼。它還管理一個(gè)線性地址指針和一個(gè)段預(yù)取界限。這兩項(xiàng)內(nèi)容是在開(kāi)始時(shí)從分段部件那兒獲得的,分別作為預(yù)取指令的指針和用來(lái)檢查是否違反了分段界限。預(yù)取部件采取把預(yù)取總線周期的請(qǐng)求信號(hào)通過(guò)分頁(yè)部件發(fā)送給總線接口部件的辦法,力圖使其指令隊(duì)列裝滿代碼的有效字節(jié)。每當(dāng)預(yù)取代碼隊(duì)列中有一部分已經(jīng)變空,或者發(fā)生一次控制轉(zhuǎn)移之后,預(yù)取部件就發(fā)出預(yù)取總線周期的請(qǐng)求信號(hào)。預(yù)取部件總線周期請(qǐng)求的優(yōu)先級(jí)別低于與執(zhí)行有關(guān)的取/存操作數(shù)的總線周期請(qǐng)求的級(jí)別,同時(shí)也低于頁(yè)面沒(méi)有命中時(shí)的處理過(guò)程、以及分段專(zhuān)用的總線周期請(qǐng)求的優(yōu)先級(jí)別。在零等待狀態(tài)下預(yù)取總線周期和數(shù)據(jù)總線周期互不干擾??臻e的總線周期就從存儲(chǔ)器預(yù)取指令代碼,并保持代碼隊(duì)列總是滿的。3.指令譯碼部件(InstructionDecodeUnit)指令譯碼部件的職責(zé)是對(duì)指令進(jìn)行譯碼,并且作好供執(zhí)行部件進(jìn)行處理的準(zhǔn)備工作。在預(yù)取部件中保管一個(gè)能容納16條指令的字節(jié)隊(duì)列。指令譯碼部件取來(lái)這些字并且把它們擴(kuò)展成內(nèi)部編碼。每當(dāng)指令部件本身隊(duì)列中有一部分變空,或者說(shuō)指令流水線的管道中部分變空時(shí),它就從預(yù)取部件的指令隊(duì)列中取出指令字節(jié),對(duì)它們進(jìn)行譯碼,并且作好其他準(zhǔn)備,然后把譯好的碼存到自己能容納3條已譯好碼的指令隊(duì)列中。譯過(guò)碼的指令隊(duì)列是很寬的,它們包含執(zhí)行部件能立即執(zhí)行、不需進(jìn)一步譯碼的所有指令段。預(yù)取部件/指令部件二者組合的流水操作是在兩個(gè)時(shí)鐘周期內(nèi)完成的。但是,指令部件可以按操作碼字節(jié)以一個(gè)時(shí)鐘的速度譯碼。
執(zhí)行部件(ExecutionUnit)執(zhí)行部件是由包括控制ROM(CROM)在內(nèi)的控制部件、帶有一些寄存器和算術(shù)運(yùn)算與邏輯運(yùn)算部件的數(shù)據(jù)部件,以及能對(duì)復(fù)雜的存儲(chǔ)器的保護(hù)功能進(jìn)行快速測(cè)試的測(cè)試部件組成。指令隊(duì)列內(nèi)有一個(gè)字段,這個(gè)字段是那條指令在控制ROM中微程序的開(kāi)始地址。寄存器的地址或直接來(lái)自控制ROM,或間接來(lái)自指令隊(duì)列。在兩個(gè)時(shí)鐘周期內(nèi),從寄存器內(nèi)可讀出兩個(gè)值送入算術(shù)運(yùn)算和邏輯運(yùn)算部件ALU,并把結(jié)果寫(xiě)回到寄存器上。從流水線結(jié)構(gòu)角度看,指令譯碼部件后的邏輯部件就是執(zhí)行部件。前面曾提及,執(zhí)行部件是由控制部件(ControlUnit)、數(shù)據(jù)處理部件(DataUnit)和保護(hù)測(cè)試部件(ProFectionTestUnit)組成。它的職責(zé)是執(zhí)行交給它的所有指令??刂撇考梢粋€(gè)微代碼驅(qū)動(dòng)的機(jī)構(gòu)組成。它配備有一個(gè)專(zhuān)門(mén)硬件用于譯碼和加速周期的執(zhí)行。數(shù)據(jù)處理部件也稱(chēng)數(shù)據(jù)通道,它包括所有寄存器、一個(gè)算術(shù)及邏輯運(yùn)算部件ALU、1個(gè)桶形移位器(BarrelShifter)、乘/除硬件以及專(zhuān)用控制邏輯。微機(jī)構(gòu)的執(zhí)行延遲是兩個(gè)時(shí)鐘時(shí)間。但是,通過(guò)把微指令的取指令和執(zhí)行指令重疊起來(lái),再通過(guò)使用延遲的微轉(zhuǎn)跳技術(shù),它所提供的執(zhí)行速率實(shí)際是每個(gè)周期只需一個(gè)時(shí)鐘(在16MHz時(shí)鐘頻率下為62.5ns)。為進(jìn)一步提高執(zhí)行部件對(duì)有效指令的處理速率,而采用了指令并行的或重疊的執(zhí)行方法。
地址流水線(AddrssPipeline)地址流水線由分段部件、分頁(yè)部件和與指令流水線共享的總線接口部件組成。存儲(chǔ)器地址是在微程序控制下產(chǎn)生的。首先發(fā)送兩個(gè)32位值。例如,一個(gè)來(lái)自指令隊(duì)列的立即數(shù),另一個(gè)是寄存器的值。把它們送到分段部件的加法器中,就可以形成一個(gè)有效地址。然后,經(jīng)另一個(gè)加法器在段中再定位,就形成了一個(gè)線性地址。同時(shí)還要在一個(gè)32位減法器中與段的界限進(jìn)行比較,看是否越界。最后,經(jīng)由一個(gè)請(qǐng)求式分頁(yè)轉(zhuǎn)換旁視緩沖存儲(chǔ)器TLB,把線性地址進(jìn)行了分頁(yè)轉(zhuǎn)換,即形成物理地址。以上操作可在1.5個(gè)時(shí)鐘周期時(shí)間內(nèi)完成。1.分段部件(SegmentationUnit)這個(gè)部件應(yīng)執(zhí)行部件的請(qǐng)求去計(jì)算有效地址。是它把邏輯地址轉(zhuǎn)換成線性地址。在分段情況下,用戶(hù)看到的指令地址叫做邏輯地址。48位的邏輯地址是由一個(gè)16位的段選擇符和一個(gè)32位的段偏移量構(gòu)成的。段選擇符是段描述符表的索引,也就是說(shuō),它指向的是描述符表中的一個(gè)描述符。這個(gè)段描述符內(nèi)包括有基址、界限、存取權(quán)(如僅讀、讀/寫(xiě))和規(guī)定所許可訪問(wèn)類(lèi)型的“特權(quán)”信息。為保持高速運(yùn)行,在程序的初始化階段就自動(dòng)地把當(dāng)前的段選擇符和段描述符裝進(jìn)6個(gè)段寄存器CS、DS、ES、FS、GS、和SS之內(nèi)。分段部件把48位的邏輯地址轉(zhuǎn)換成32位的線性地址。這種轉(zhuǎn)換是通過(guò)把32位段偏移量加上段寄存器中的段基地址值完成的,如圖2.14所示。圖線性地址的計(jì)算邏輯地址段寄存器偏移量150310段描述符表段描述符線性地址2.分頁(yè)部件(PagingUnit)分頁(yè)部件的職責(zé)是把由分段部件或代碼預(yù)取部件產(chǎn)生的線性地址轉(zhuǎn)換成物理地址(PhysicalAddress)。對(duì)大多數(shù)指令來(lái)說(shuō),分段部件都是從段寄存器和描述符寄存器得到轉(zhuǎn)換和保護(hù)數(shù)據(jù)的。在操作系統(tǒng)軟件的控制下,如果分頁(yè)部件是允許狀態(tài),就把分段部件產(chǎn)生的線性地址送到分頁(yè)部件轉(zhuǎn)換成物理地址,并且還要檢驗(yàn)核準(zhǔn)訪問(wèn)是否與頁(yè)屬性一致。如果分頁(yè)部件是處于不允許狀態(tài)(禁止?fàn)顟B(tài)),則不必轉(zhuǎn)換就是線性地址。頁(yè)是一個(gè)大小固定的塊,為4K個(gè)字節(jié)。由于提供了統(tǒng)一的分配和再分配部件,分頁(yè)簡(jiǎn)化了交換系統(tǒng)。于是,當(dāng)分段部件用來(lái)構(gòu)造邏輯地址空間時(shí),分頁(yè)部件用來(lái)管理物理地址。分頁(yè)是由以存儲(chǔ)器為基礎(chǔ)的兩級(jí)頁(yè)表和內(nèi)部寄存器實(shí)現(xiàn)的,如圖2.15所示。低一級(jí)的頁(yè)表是頁(yè)的映像,高一級(jí)的是個(gè)頁(yè)目錄,它又是頁(yè)表的映像。頁(yè)目錄中的一項(xiàng)(叫頁(yè)目錄項(xiàng))或頁(yè)表中的一項(xiàng)(叫頁(yè)表項(xiàng))大小都是4個(gè)字節(jié),而每一頁(yè)目錄和每一頁(yè)表大小都是4K個(gè)字節(jié)。所以每一級(jí)都有1024項(xiàng)。因此只需要一個(gè)頁(yè)目錄就能映像1024個(gè)頁(yè)表,從而映射了全部4G個(gè)字節(jié)的線性地址。圖80386兩級(jí)分頁(yè)圖解311211~9876543210
頁(yè)表地址31~12 OS00DA00URP
保留 SW頁(yè)目錄頁(yè)表偏移量地址頁(yè)表項(xiàng)頁(yè)目錄項(xiàng)310310大小為4K的頁(yè)
頁(yè)目錄頁(yè)表線性地址3.分段部件與分頁(yè)部件集于一體把分段部件與分頁(yè)部件集成于同一芯片上有以下優(yōu)點(diǎn):(1)可以把從形成有效地址到產(chǎn)生線性地址和物理地址的各個(gè)步驟都重疊起來(lái),充分利用流水線與并行執(zhí)行的優(yōu)點(diǎn)。即當(dāng)前操作還在總線上進(jìn)行的時(shí)候,下一個(gè)存儲(chǔ)器地址就已經(jīng)知道了。邏輯地址向物理地址的轉(zhuǎn)換過(guò)程在很多情況下可以與其他總線周期重疊進(jìn)行,并且能在當(dāng)前總線周期結(jié)束之前完成轉(zhuǎn)換。如果把MMU放在片外執(zhí)行以上過(guò)程,顯然是比較困難的。(2)為了實(shí)現(xiàn)MMU的轉(zhuǎn)換,無(wú)需在總線周期上增加時(shí)鐘個(gè)數(shù)。又因?yàn)榇鎯?chǔ)管理功能是在芯片內(nèi)進(jìn)行的,所以它不是外部總線的一部分。(3)分段部件和分頁(yè)部件集成于一體,使系統(tǒng)的復(fù)雜性和價(jià)格降低了,同時(shí)也簡(jiǎn)化了電路的設(shè)計(jì),提高了可靠性和速度,在芯片之外也不再需要存儲(chǔ)管理元件。圖80386較詳細(xì)的流水線結(jié)構(gòu)INTRHOLDNMIHLDA#BUSY#ERROR#RESET物理地址總線取代碼/取頁(yè)表桶形移位器加法器乘/除寄存器堆譯碼和時(shí)序控制ROM預(yù)取器/界限檢驗(yàn)器16字節(jié)指令隊(duì)列保護(hù)測(cè)試部件
地址驅(qū)動(dòng)器流水線總線寬度控制
MUX/
收發(fā)器3輸入加法器描述符寄存器界限和屬性PLA加法器頁(yè)高速緩沖器控制和屬性PLA位移總線線性地址總線請(qǐng)求判優(yōu)控制器A2~A31D0~D31控制32位有效地址總線32位有效地址總線段部件頁(yè)部件總線控制狀態(tài)標(biāo)志內(nèi)部控制總線ALU控制控制指令預(yù)譯碼指令預(yù)取32位ALU指令流32位指令譯碼器已譯碼的指令隊(duì)列專(zhuān)用ALU總線2.380387的體系結(jié)構(gòu)
由于引入了80387協(xié)處理器可進(jìn)行80位的實(shí)型數(shù)據(jù)的運(yùn)算,使處理機(jī)處理數(shù)據(jù)的速度大大加快,處理的數(shù)據(jù)流量也大大增加。在進(jìn)行浮點(diǎn)算術(shù)運(yùn)算時(shí),微處理機(jī)/協(xié)處理器系統(tǒng)比僅用微處理機(jī)進(jìn)行運(yùn)算其速度要高出50~100倍。80287和80387都使用80位內(nèi)部結(jié)構(gòu),實(shí)現(xiàn)了IEEE浮點(diǎn)格式。其中包括32位單精度實(shí)數(shù)、64位的雙精度實(shí)型數(shù)、80位的擴(kuò)展實(shí)型數(shù)、16位字整型數(shù)、32位短整型數(shù)、64位長(zhǎng)整型數(shù)18位的BCD整數(shù)等七種數(shù)據(jù)類(lèi)型的運(yùn)算。80287/80387還擴(kuò)充了80286/80386的指令系統(tǒng)。所增加的指令有三角函數(shù)、對(duì)數(shù)、指數(shù)和針對(duì)所有數(shù)據(jù)類(lèi)型的算術(shù)運(yùn)算指令。另外,80387協(xié)處理器還支持與80386數(shù)據(jù)總線的全部32位接口,支持正切、正弦和余弦三種三角函數(shù)運(yùn)算。而80287僅支持從0度~45度的正切函數(shù)運(yùn)算。圖2.17示出80386/80387系統(tǒng)結(jié)構(gòu)。由圖可以看出,80386CPU是整個(gè)系統(tǒng)的核心。系統(tǒng)內(nèi)還有82384時(shí)鐘發(fā)生器和80387(或80287)數(shù)值協(xié)同處理器,系統(tǒng)內(nèi)并無(wú)總線控制芯片。82384向80386提供時(shí)鐘、復(fù)位、準(zhǔn)備好等信號(hào)。因?yàn)?2384信號(hào)源為32MHz時(shí)鐘,所以80386和80387的時(shí)鐘頻率為16MHz。2.3.380387外部特性80386CPU把80387看成是一個(gè)從屬的協(xié)處理器。CPU向協(xié)處理器寫(xiě)操作碼和操作數(shù),并且還要執(zhí)行存儲(chǔ)器的事務(wù)處理。用80386的存儲(chǔ)管理硬件對(duì)全部存儲(chǔ)器數(shù)值操作數(shù)進(jìn)行訪問(wèn),所以80386的整個(gè)存儲(chǔ)保護(hù)機(jī)構(gòu)就被完好無(wú)損地維持下來(lái)了。并且還簡(jiǎn)化了用戶(hù)存儲(chǔ)管理方案。圖2.17示出80386與80387的接口.可以把80387的體系統(tǒng)結(jié)構(gòu)想像成是由兩個(gè)不同的部件組合而成:一個(gè)是總線控制邏輯部件(BusControlLogicUnit),可把它當(dāng)成80387的專(zhuān)用總線控制器用;另一個(gè)是80387核心(Core)部件,用它來(lái)完成各種計(jì)算,80387的邏輯框圖如圖2.18所示。圖2.1880387邏輯框圖D31~D032地址/總線控制狀態(tài)狀態(tài)字控制字標(biāo)記字?jǐn)?shù)據(jù)FIFO32位寄存器數(shù)據(jù)緩沖指令譯碼器微指令定序器總線控制邏輯指數(shù)加法器(16位)操作數(shù)B指數(shù)寄存器(16位)操作數(shù)A指數(shù)寄存器(16位)(0)(1)(2)(3)(4)(5)(6)(7)常量ROM(44*67位)FPU控制+系在一起的毫微機(jī)操作數(shù)寄存器(A和B)尾數(shù)加法器(64位)和寄存器16位左/右桶形移位器+68位寄存器尾數(shù)總線接口(數(shù)據(jù)調(diào)整和操作數(shù)檢驗(yàn))
總線控制邏輯數(shù)據(jù)接口與控制部件浮點(diǎn)運(yùn)算部件FPU內(nèi)部數(shù)據(jù)總線32161632321668微指令總線指數(shù)總線寄存器組尾數(shù)總線16(堆棧)68
(8
80位)386CLK2387CLK22.3.480387內(nèi)部結(jié)構(gòu)1.80387寄存器80387擁有8個(gè)80位的通用寄存器,如圖2.19所示。它們各自獨(dú)立地進(jìn)行尋址,另又增加了3個(gè)16位寄存器和2個(gè)48位寄存器。通用寄存器是以堆棧形式組織起來(lái)的。堆棧的棧頂用80387的狀態(tài)字寄存器的TOP字段標(biāo)明。數(shù)字指令在對(duì)這8個(gè)通用寄存器進(jìn)行尋址時(shí),就以堆棧棧頂為基礎(chǔ)。為敘述方便起見(jiàn),用ST表示堆棧棧頂,用ST(i)表示從棧頂起的第i個(gè)寄存器。狀態(tài)字寄存器、控制字寄存器和標(biāo)記字寄存器。80387的所有狀態(tài)都存放在狀態(tài)字內(nèi)??刂谱旨拇嫫饔糜诳刂铺幚?0387的選擇。標(biāo)記字表示通用寄存器堆棧中每個(gè)寄存器的內(nèi)容。圖2.1980387的寄存器組標(biāo)記字的功能優(yōu)化了80387的性能,利用它可以處理堆棧,以辨別寄存器存儲(chǔ)單元是空的還是不空。它還允許異常處理程序檢驗(yàn)堆棧存儲(chǔ)單元的內(nèi)容,而且不必對(duì)實(shí)際數(shù)據(jù)執(zhí)行復(fù)雜的譯碼操作。符號(hào)指數(shù)有效數(shù)位R0R1R2R3R4R5R6R779786463001標(biāo)志字段2.80387內(nèi)部結(jié)構(gòu)圖2.18示出80387協(xié)處理器的內(nèi)部結(jié)構(gòu)。從中可以看出80387有3個(gè)主要的功能部件,它們分別是:(1)總線控制邏輯部件。(2)數(shù)據(jù)接口與控制部件。(3)浮點(diǎn)運(yùn)算部件(FPU)??傊?,80387的核心是浮點(diǎn)運(yùn)算部件和數(shù)據(jù)接口與控制部件的組合,總線控制邏輯的通信則可獨(dú)自地與CPU共用I/O總線周期,在執(zhí)行浮點(diǎn)指令時(shí),由CPU自動(dòng)啟動(dòng)I/O總線周期。這個(gè)部件依靠CPU實(shí)現(xiàn)整個(gè)存儲(chǔ)器周期操作??偩€狀態(tài)經(jīng)過(guò)譯碼識(shí)別后方可決定是向80386傳送數(shù)據(jù),還是從80386向80387傳送數(shù)據(jù)。整個(gè)80386流水線總線周期都給予支持。2.4高速緩沖存儲(chǔ)器2.4.1高速緩沖存儲(chǔ)器Cache高速緩沖存儲(chǔ)器Cache是位于CPU和主存儲(chǔ)器間規(guī)模較小、速度很高的存儲(chǔ)器。它是32位微計(jì)算機(jī)必不可少的組成部分。Cache既可以是實(shí)際的,也可以是虛擬的;既可以是直接映像形式的,也可以是N路相聯(lián)形式的;既可以是指令和數(shù)據(jù)共用同一個(gè)Cache,也可以是指令和數(shù)據(jù)分開(kāi)的分離式Cache。Cache是速度較低的主存儲(chǔ)器和高速微處理機(jī)間的橋梁。Cache提供CPU所需的能快速進(jìn)行訪問(wèn)的指令和數(shù)據(jù)。為使Cache更加有效,要求程序有高度的暫時(shí)性和訪問(wèn)的局部性。這就是說(shuō),假設(shè)剛?cè)〕鲆粭l指令,在很短的周期時(shí)間內(nèi)便還要再取。像經(jīng)常使用的循環(huán)、頻繁使用某些變量和子程序就有高度的暫時(shí)性和訪問(wèn)局部性。若程序在取出一條指令后,馬上又到同一存儲(chǔ)單元再取這條指令,就是訪問(wèn)的局部性,若一個(gè)程序使用一系列的順序指令,而且那些變量在存儲(chǔ)器中又是相鄰的,這樣的程序就是具有訪問(wèn)局部性的程序。Cache保存主存儲(chǔ)器的部分副本。主機(jī)訪問(wèn)Cache的速度可以像主機(jī)一樣。下面解釋Cache的一些術(shù)語(yǔ)。高速緩沖存儲(chǔ)器(Cache)Cache存儲(chǔ)器是放置在主存儲(chǔ)器和CPU之間的一個(gè)速度非??於?guī)模較小的一種存儲(chǔ)器。使用Cache可以增加存儲(chǔ)器的傳輸速率和處理的效能。它的名字源于:這種存儲(chǔ)器感覺(jué)不到,但對(duì)程序設(shè)計(jì)人員來(lái)說(shuō)又是透明的。反向復(fù)制(Copy-back)這是一項(xiàng)減少訪問(wèn)主存儲(chǔ)器的技術(shù)。當(dāng)把Cache中的數(shù)據(jù)塊替換出Cache時(shí),同時(shí)也把數(shù)據(jù)塊寫(xiě)回到主存儲(chǔ)器中。直接映像的Cache這是一項(xiàng)Cache交換技術(shù)。為主存儲(chǔ)器中每一存儲(chǔ)單元,對(duì)應(yīng)分配Cache中惟一的一個(gè)存儲(chǔ)單元。FIFO替換算法即先進(jìn)先出的替換算法。當(dāng)所需的存儲(chǔ)空間較大時(shí),駐留在Cache中最深的那個(gè)數(shù)據(jù),最先從Cache傳送出來(lái)。命中率(HitRate)用百分?jǐn)?shù)表示的一種概率,是CPU訪問(wèn)Cache時(shí),它所找到的與要找的信息的百分比。訪問(wèn)的局部性(LocaltyofReference)臨時(shí)查尋數(shù)據(jù)和指令成功的可能性,或者說(shuō)這些被查找的數(shù)據(jù)和指令與程序是密切相關(guān)的。LRU替換算法這是一種比FIFO算法更有效的算法。當(dāng)需要較大的存儲(chǔ)空間時(shí),用最近經(jīng)常要用的數(shù)據(jù)替換Cache中最近最少使用的數(shù)據(jù)。實(shí)Cache(RealCache)實(shí)Cache是一種位于存儲(chǔ)管理部件MMU和主存儲(chǔ)器之間的Cache。存儲(chǔ)管理部件MMU在把地址傳到Cache之前,要把虛擬地址轉(zhuǎn)換成實(shí)際地址。虛擬Cache是駐留在CPU和存儲(chǔ)管理部件MMU間的Cache存儲(chǔ)器。要訪問(wèn)Cache的存儲(chǔ)單元是以CPU的虛擬地址為基礎(chǔ)。統(tǒng)一的Cache給CPU存儲(chǔ)數(shù)據(jù)和指令的Cache。分離的Cache數(shù)據(jù)和指令各自獨(dú)立分開(kāi)存儲(chǔ)的Cache。N路相聯(lián)的Cache這是一項(xiàng)Cache映像技術(shù)。對(duì)主存儲(chǔ)器中的每一存儲(chǔ)單元,在Cache中就有好幾個(gè)可用存儲(chǔ)單元與其對(duì)應(yīng)。交換(Swapping)即Cache存儲(chǔ)器與主存儲(chǔ)器間的數(shù)據(jù)傳送。由于Cache存儲(chǔ)器規(guī)模較小,就有可能把給定數(shù)據(jù)塊傳送回主存儲(chǔ)器。主存儲(chǔ)器要為CPU所需數(shù)據(jù)塊內(nèi)的數(shù)據(jù)騰出地方。標(biāo)記(Tag)是CPU用來(lái)與一個(gè)關(guān)鍵字進(jìn)行比較的相聯(lián)存儲(chǔ)器的那一部分。通過(guò)比較確定與主存儲(chǔ)器存儲(chǔ)單元相對(duì)應(yīng)的Cache中的哪一個(gè)字在CPU進(jìn)行訪問(wèn)時(shí)是有效的。一致性:指的是Cache中每一地址上的數(shù)據(jù)與存儲(chǔ)器中相應(yīng)的存儲(chǔ)單元中的數(shù)據(jù)是一樣的。欲使主存儲(chǔ)器與Cache間協(xié)調(diào)一致,通常有三種寫(xiě)方案可供選擇,如圖2.20所示。(1)寫(xiě)貫穿(WriteThrough):這是在所有寫(xiě)操作時(shí)修改主存儲(chǔ)器和Cache存儲(chǔ)器的一種方法。在向Cache寫(xiě)數(shù)據(jù)的同時(shí),把相同數(shù)據(jù)也寫(xiě)到主存儲(chǔ)器中去。圖2.20Cache三種寫(xiě)方案微處理機(jī)主存儲(chǔ)器Cache微處理機(jī)CacheCache主存儲(chǔ)器主存儲(chǔ)器微處理機(jī)緩沖存儲(chǔ)器寫(xiě)貫穿Cache寫(xiě)回Cache記入式寫(xiě)Cache把Cache行寫(xiě)到緩沖存儲(chǔ)器當(dāng)Cache行被刷新時(shí)將其回主存儲(chǔ)器(2)寫(xiě)回:這種寫(xiě)方案是一種用來(lái)更新Cache的寫(xiě)方法,只有當(dāng)Cache中的某一存儲(chǔ)塊被刷新時(shí),才把這一存儲(chǔ)塊寫(xiě)回到主存儲(chǔ)器中去。(3)記入式寫(xiě):這種寫(xiě)方案是把寫(xiě)到Cache中的數(shù)據(jù)復(fù)制到一個(gè)緩沖存儲(chǔ)器中去,然后再把這個(gè)副本寫(xiě)回主存儲(chǔ)器。實(shí)際上,這種方案就是帶有緩沖的寫(xiě)貫穿。2.4.2Cache控制器1.Cache控制器82385Cache控制器82385是專(zhuān)為80386設(shè)計(jì)的高性能32位外圍支持芯片。它與靜態(tài)RAM(簡(jiǎn)稱(chēng)SRAM)芯片一起構(gòu)成高速緩沖存儲(chǔ)器,保存處理機(jī)最近常要使用的指令和數(shù)據(jù)的副本。CPU幾乎可以在無(wú)等待狀態(tài)下從Cache取出數(shù)據(jù)。82385可以對(duì)整個(gè)4G字節(jié)的主存儲(chǔ)器進(jìn)行尋址。由于82385芯片上有緩沖存儲(chǔ)器的目錄索引,因此,可以支持32K字節(jié)雙總線結(jié)構(gòu)。82385的總線監(jiān)視(BusWatching)功能。Cache控制器82385不需特殊軟件,對(duì)軟件是透明的。Cache的控制過(guò)程完全由硬件實(shí)現(xiàn),可以與80386在相同主題下并駕齊驅(qū)工作。由于82385把支持外部32K字節(jié)Cache存儲(chǔ)體需要的目錄存儲(chǔ)區(qū)以及其他管理邏輯集成在同一芯片上,使得Cache子系統(tǒng)非常簡(jiǎn)單,大大減少了80386系統(tǒng)芯片的數(shù)目。82385是由局部總線接口、處理機(jī)接口、Cache目錄存儲(chǔ)器以及Cache控制邏輯等部件構(gòu)成的,如圖2.21所示。82385局部總線接口Cache目錄存儲(chǔ)器處理機(jī)接口Cache控制80386地址總線監(jiān)視總線Cache控制總線80386局部總線譯碼總線仲裁80386局部總線控制82385局部總線控制2.80386/82385系統(tǒng)圖2.22示出直接映像的Cache系統(tǒng)邏輯框圖。整個(gè)系統(tǒng)可分為3個(gè)部分:處理機(jī)部分、Cache存儲(chǔ)器及其控制部分、系統(tǒng)總線接口部分。處理機(jī)包括80386處理機(jī)與82384時(shí)鐘發(fā)生器。Cache存儲(chǔ)器及其控制部分包括82385控制器、外部動(dòng)態(tài)存儲(chǔ)器、Cache地址鎖存器。系統(tǒng)總線接口部分包括系統(tǒng)總線、數(shù)據(jù)收發(fā)器、地址鎖存器等。在80386/82385系統(tǒng)中,有80386系統(tǒng)總線和處理機(jī)局部總線,兩者不同。80386系統(tǒng)總線與80386的物理總線是等效的。82385/80386系統(tǒng)中的控制信號(hào)與總線又可分成如下5類(lèi):(1)局部地址、數(shù)據(jù)、控制總線。(2)系統(tǒng)地址、數(shù)據(jù)、控制總線。(3)82385輸出給Cache系統(tǒng)的控制信號(hào)。(4)系統(tǒng)輸入給82385的控制信號(hào)。(5)82385的監(jiān)視總線。圖2.22直接映像的Cache系統(tǒng)的組成80386系統(tǒng)總線Cache地址鎖存8K字*32位靜態(tài)RAM8038682385Cache控制器地址鎖存數(shù)據(jù)收發(fā)器82385控制Cache控制Cache地址鎖存控制控制地址數(shù)據(jù)
地址監(jiān)視總線配置局部地址譯碼系統(tǒng)控制總線系統(tǒng)地址總線系統(tǒng)數(shù)據(jù)總線數(shù)據(jù)收發(fā)控制3.直接映像Cache操作過(guò)程首先,把帶有直接映像Cache系統(tǒng)微處理機(jī)的物理地址分成三個(gè)字段,即選擇字段、標(biāo)記字段和變址字段,如圖2.23所示。選擇字段用來(lái)測(cè)定Cache中有無(wú)數(shù)據(jù),標(biāo)記字段和變址字段用來(lái)測(cè)定動(dòng)態(tài)RAM主存儲(chǔ)器中的地址,而且在靜態(tài)RAM的Cache中用變址字段作為靜態(tài)RAM地址的變址。在一個(gè)周期接一個(gè)周期運(yùn)行情況下,用標(biāo)記字段測(cè)定所需數(shù)據(jù)是否在Cache之內(nèi)。
選擇字段標(biāo)記字段變址字段3116150242332位微處理機(jī)地址圖2.24示出Cache內(nèi)數(shù)據(jù)和標(biāo)記存儲(chǔ)器的部分。一般情況下,在數(shù)據(jù)存儲(chǔ)器內(nèi)保存著被復(fù)制到Cache內(nèi)、實(shí)際是主存儲(chǔ)器內(nèi)的一些存儲(chǔ)單元的內(nèi)容,而且通過(guò)物理地址的變址字段進(jìn)行尋址。更確切地說(shuō),只有變址字段的高幾位才能用來(lái)對(duì)數(shù)據(jù)存儲(chǔ)器尋址,而兩個(gè)最低有效位是作為允許字節(jié)選擇信息的。圖2.24直接映像Cache分成數(shù)據(jù)存儲(chǔ)器和標(biāo)記存儲(chǔ)器數(shù)據(jù)Cache控制邏輯80386CPU比較器標(biāo)記存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器選擇主存儲(chǔ)器動(dòng)態(tài)RAM地址標(biāo)記變址直接映像Cache命中82385目錄支持直接映像方式。Cache的地址駐留在82385控制器內(nèi),并把它作為頁(yè)存儲(chǔ)單元查詢(xún)表的內(nèi)容。在目錄中又把主存儲(chǔ)器地址的一個(gè)32K字節(jié)的頁(yè)分成1024塊,每塊8行(由地址A2~A4控制),每行有32位(4個(gè)字節(jié)),如圖2.25所示。從圖可以看出,82385內(nèi)部的RAM有1024塊(由地址A5~A14控制)存儲(chǔ)單元。從圖2.26中可以看出,10位的Cache地址取自主存儲(chǔ)器地址。圖2.25直接映像的Cache組織形式塊1023塊1塊0行有效位內(nèi)部Cache目錄17位標(biāo)記標(biāo)記有效位頁(yè)012217-132位外部數(shù)據(jù)Cache4G字節(jié)主存儲(chǔ)器頁(yè)尺寸=32KB(8K雙字)圖2.26直接映像的82385地址分配A5A4A3A2A1A0A15A14A3117位標(biāo)記217個(gè)頁(yè)之一Cache地址(8K個(gè)雙字之一)塊地址1024個(gè)塊之一行選擇8行之一直接映像的Cache目錄是一個(gè)大小為10位,可表示1024個(gè)Cache塊的地址表。用這個(gè)表查找保存在RAM中的一個(gè)頁(yè)號(hào)標(biāo)記、行有效位和一個(gè)標(biāo)記有效位。地址表的內(nèi)容取自主存儲(chǔ)器的地址。兩個(gè)最低有效位A0、A1沒(méi)有使用,因?yàn)镃ache采用的是4字節(jié)傳送。每一個(gè)目錄地址用26位,目錄地址又被分成3個(gè)部分,如圖2.25左上部分所示。標(biāo)記字段(FlagField)用17位,標(biāo)記有效位用1位,行有效位用8位。標(biāo)記字段的代碼對(duì)應(yīng)于每一頁(yè)頁(yè)號(hào)。所以,一個(gè)標(biāo)記字段表示217個(gè)頁(yè)中的一個(gè)頁(yè)號(hào)。如假設(shè)第二頁(yè)第9行主存儲(chǔ)器的內(nèi)容已駐留在Cache中,在目錄存儲(chǔ)器中第一塊標(biāo)記字段的內(nèi)容應(yīng)是2,表示的是主存儲(chǔ)器第二頁(yè)的頁(yè)號(hào),第一塊包含有第9行。圖2.25中塊1有陰影的行即為第9行。(即將斜線二字改成陰影)。直接映像方式的重要特征是,任一頁(yè)內(nèi)的第9行都只能映像到Cache數(shù)據(jù)的第9行。也就是說(shuō),所有具有相同頁(yè)內(nèi)地址的主存儲(chǔ)器單元都映像到Cache的同一單元中。82385Cache控制器把80386地址線A2~A31分成3個(gè)字段:A15~A31是17位標(biāo)記字段,A5~A14是10位的地址字段,A2~A4是行選擇字段。此外,82385還把低端13位地址看成是Cache數(shù)據(jù)存儲(chǔ)區(qū)的地址碼,用來(lái)選擇8K個(gè)雙字中的任一個(gè),如圖2.26所示。2.5
80386系統(tǒng)的外圍
芯片組82380
以80386為基礎(chǔ)的高性能系統(tǒng)的核心是由80386CPU、80387數(shù)值協(xié)同處理器、外圍芯片組82380,以及高速緩沖存儲(chǔ)器Cache及其控制器82385構(gòu)成。82380的DMA控制器集若干系統(tǒng)功能于一體,其內(nèi)配備了包括動(dòng)態(tài)RAM的更新、中斷與計(jì)時(shí)器以及32位直接存儲(chǔ)器存取等功能部件。82380把若干種大規(guī)模集成電路LSI和超大規(guī)模集成電路VLSI元器件才有的計(jì)算機(jī)系統(tǒng)功能都組合在一個(gè)芯片內(nèi)。把那些擁有支持功能的外圍設(shè)備都構(gòu)造在芯片內(nèi)。它們是:(1)系統(tǒng)復(fù)位邏輯。(2)20級(jí)可編程的中斷控制器(一個(gè)82C54可編程區(qū)間計(jì)時(shí)器的超集)。(3)4個(gè)16位可編程區(qū)間計(jì)時(shí)器。(4)可編程的等待狀態(tài)控制。(5)DRAM的更新控制。(6)內(nèi)部總路線仲裁和控制。圖2.2782380內(nèi)部體系結(jié)構(gòu)TOUT2#TOUT3#32位8通道DMA控制器總線接口內(nèi)部總線仲裁和控制等待狀態(tài)控制DRAM刷新控制80386局部總線20級(jí)中斷控制器CPU復(fù)位計(jì)時(shí)器0計(jì)時(shí)器1計(jì)時(shí)器2計(jì)時(shí)器3數(shù)據(jù)地址控制DRQ0DRQ7EDACK0EDACK1EDACK2EOP#IRQ8IRQ0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 爐渣出售合同范例
- 礦山卡車(chē)合同范例
- 吊裝車(chē)租用合同范例
- 賓館共同經(jīng)營(yíng)合同范例
- 礦權(quán)抵押合同范例
- 大型廠區(qū)出租合同范例
- 室內(nèi)鋪磚合同范例
- 公路圍欄維修合同范例
- 代加工茶葉合同范例
- 會(huì)議邀請(qǐng)嘉賓合同范例范例
- 電子技術(shù)基礎(chǔ)練習(xí)題庫(kù)(含參考答案)
- 語(yǔ)文中考《非連續(xù)性文本閱讀》專(zhuān)題精練(含答案解析)
- 沐足行業(yè)嚴(yán)禁黃賭毒承諾書(shū)
- 【課件】第21課《小圣施威降大圣》課件2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)上冊(cè)
- 工程計(jì)價(jià)學(xué)-001-國(guó)開(kāi)機(jī)考復(fù)習(xí)資料
- 足浴店入股合同范例
- 《孟母三遷》課本劇劇本:環(huán)境對(duì)成長(zhǎng)的重要性(6篇)
- 完整風(fēng)電場(chǎng)運(yùn)維服務(wù)合同
- 《富馬酸盧帕他定口崩片關(guān)鍵質(zhì)量屬性與標(biāo)準(zhǔn)研究》
- 新生兒壞死性小腸結(jié)腸炎臨床診療指南解讀 課件
- 網(wǎng)絡(luò)數(shù)據(jù)安全管理?xiàng)l例
評(píng)論
0/150
提交評(píng)論