2011年微機(jī)原理與接口技術(shù)-重發(fā)第8章_第1頁(yè)
2011年微機(jī)原理與接口技術(shù)-重發(fā)第8章_第2頁(yè)
2011年微機(jī)原理與接口技術(shù)-重發(fā)第8章_第3頁(yè)
2011年微機(jī)原理與接口技術(shù)-重發(fā)第8章_第4頁(yè)
2011年微機(jī)原理與接口技術(shù)-重發(fā)第8章_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余107頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

第8章現(xiàn)代微型計(jì)算機(jī)8.180x86系列微處理器8.2微型計(jì)算機(jī)體系結(jié)構(gòu)8.3存儲(chǔ)管理技術(shù)8.4多任務(wù)管理與I/O管理8.5現(xiàn)代微型計(jì)算機(jī)中斷系統(tǒng)8.180x86系列微處理器1.8088微處理器Intel公司在推出8086之后,推出了介于16位與8位之間的準(zhǔn)16位微處理器8088。8088與8086之間的區(qū)別主要在于8088對(duì)外只有8根數(shù)據(jù)線引腳,訪問(wèn)16位的操作數(shù)需要二個(gè)總線周期。8088的這一特點(diǎn)使它能夠十分方便地與8位接口芯片相連接。1980年,IBM公司使用8088成功地開(kāi)發(fā)了16位微型計(jì)算機(jī)——IBM-PC。8.1.116位80X86微處理器Intel公司把大型計(jì)算機(jī)的技術(shù)融合到微處理器中,首先研制的80186在技術(shù)上并不十分成熟,沒(méi)有獲得廣泛的應(yīng)用。1982年Intel推出了增強(qiáng)型16微處理器80286,集成度達(dá)13萬(wàn)管/片,時(shí)鐘頻率提高到5MHz~25MHz,它的16條數(shù)據(jù)線和24條地址線相互獨(dú)立,不再分時(shí)使用,可以尋址16M的地址空間。80286CPU增加了運(yùn)行多任務(wù)所需要的任務(wù)切換、存儲(chǔ)管理和多種保護(hù)功能。2.80186和80286微處理器80286CPU基本工作方式:實(shí)地址方式:

和8086一樣,使用20根地址線尋址1M的內(nèi)存空間,DOS應(yīng)用程序占用全部系統(tǒng)資源。保護(hù)方式:

80286CPU具有虛擬內(nèi)存管理和多任務(wù)處理功能,通過(guò)硬件控制可以在多任務(wù)之間進(jìn)行快速切換。80286CPU的內(nèi)部組成:總線接口部件BIU:

地址單元AU、指令單元IU、總線單元BU。執(zhí)行部件EU:IBM公司以80286為CPU生產(chǎn)了著名的IBM-PC/AT微型計(jì)算機(jī),它的許多技術(shù)被沿用至今。圖8-1Intel80286CPU結(jié)構(gòu)1.80386微處理器1985年,Intel公司推出了第四代微處理器,32位的微處理器80386。片內(nèi)集成27.5萬(wàn)個(gè)晶體管,時(shí)鐘頻率為16MHz~33MHz。具有32位數(shù)據(jù)線和32位地址線,32位通用寄存器。80386內(nèi)部由中央處理器CPU、存儲(chǔ)器管理部件MMU、總線接口部件BIU組成。80386有3種工作模式:

實(shí)地址模式、虛地址保護(hù)模式和虛擬8086模式。8.1.232位80X86微處理器圖8-2Intel80386CPU結(jié)構(gòu)2.80486微處理器1989年,Intel公司推出了集成120萬(wàn)個(gè)晶體管的32位微處理器80486。80486中集成了:一個(gè)80386體系結(jié)構(gòu)的主處理器;一個(gè)與80387兼容的數(shù)字協(xié)處理器;一個(gè)8KB的高速緩沖存儲(chǔ)器(Cache)。80486首次采用了時(shí)鐘倍頻技術(shù)(在80486DX中使用),使內(nèi)部部件可以以輸入時(shí)鐘的倍頻運(yùn)行。80486還支持外部的二級(jí)Cache,支持多處理器系統(tǒng)。1.Pentium微處理器1993年,Intel公司推出了新一代的32位微處理器Pentium(奔騰,以P5代稱),內(nèi)部集成了320萬(wàn)個(gè)晶體管,具有64條數(shù)據(jù)線和32條地址線。Pentium共有3個(gè)執(zhí)行部件:兩個(gè)整數(shù)執(zhí)行部件U、V和一個(gè)浮點(diǎn)執(zhí)行部件。每個(gè)整數(shù)部件由五級(jí)流水線組成:浮點(diǎn)流水線由8級(jí)組成:通過(guò)上述流水線,微處理器可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)執(zhí)行兩條整數(shù)指令,或者一條浮點(diǎn)指令,這種結(jié)構(gòu)被稱為“超標(biāo)量結(jié)構(gòu)”。8.1.3Pentium系列微處理器Pentium處理器內(nèi)部16KB的一級(jí)Cache分為獨(dú)立的8KB指令Cache和8KB數(shù)據(jù)Cache,使取指令和取數(shù)據(jù)可以同時(shí)進(jìn)行。Pentium采用了分支預(yù)測(cè)技術(shù)(也稱為轉(zhuǎn)移預(yù)測(cè)技術(shù)),處理器效率得到提高。除了實(shí)地址模式、虛地址保護(hù)模式和虛擬8086模式以外,又增加了一個(gè)系統(tǒng)管理模式。1996年,Intel公司推出了改進(jìn)型32位微處理器PentiumMMX(多能奔騰),它增加了57條MMX(多媒體擴(kuò)展指令集)指令,采用了SIMD(單指令流多數(shù)據(jù)流)技術(shù),提高了對(duì)多媒體數(shù)據(jù)的處理能力。同一時(shí)期推出的第五代微處理器還有IBM,Apple和Motorola三家聯(lián)盟的PowerPC(這是一款RISC微處理器)以及AMD公司的K5和Cyrix公司的M1。2.第六代微處理器1996年Intel公司推出第六代微處理器PentiumPro(高能奔騰)。片內(nèi)集成了550萬(wàn)個(gè)晶體管具有64位數(shù)據(jù)線和36位地址線,物理地址空間64GB(236),虛擬存儲(chǔ)空間64TB。1997年5月Intel公司發(fā)布了PentiumII(奔騰2代),采用P6核心結(jié)構(gòu),屬于32位微處理器。PentiumII集成750萬(wàn)個(gè)晶體管;加強(qiáng)了MMX技術(shù),能同時(shí)處理兩條MMX指令;L1Cache增加到32KB,并配備了512KB的L2Cache,在CPU一半的頻率下工作;PentiumII采用了雙獨(dú)立總線結(jié)構(gòu),前端總線FSB負(fù)責(zé)主存儲(chǔ)器的訪問(wèn),后端總線與L2Cache連接;采用動(dòng)態(tài)執(zhí)行和寄存器重命名等RISC技術(shù)來(lái)執(zhí)行x86指令。動(dòng)態(tài)執(zhí)行技術(shù)主要包括:多路分支預(yù)測(cè):對(duì)程序的流向進(jìn)行分析,以便程序的幾個(gè)分支可以同時(shí)在處理器內(nèi)部執(zhí)行。數(shù)據(jù)流分析:對(duì)譯碼后的指令進(jìn)行數(shù)據(jù)相關(guān)性和資源可用性分析,判斷該指令能否與其他指令同時(shí)執(zhí)行。推測(cè)執(zhí)行:將多個(gè)程序流向的指令序列優(yōu)化后送往處理器的執(zhí)行部件執(zhí)行,充分發(fā)揮各部件的效能。多個(gè)分支的運(yùn)行結(jié)果作為“預(yù)測(cè)結(jié)果”保留,將最終確定為“預(yù)測(cè)正確”的分支預(yù)測(cè)結(jié)果作為最終結(jié)果加以保存。為了減少不同分支指令爭(zhēng)用同一個(gè)寄存器的情況,PentiumII增設(shè)了40個(gè)可以“重新命名”的“內(nèi)部寄存器”,在指令流運(yùn)行結(jié)束后寫回“通用寄存器”,從而解決了多分支運(yùn)行時(shí)爭(zhēng)用寄存器的問(wèn)題。1999年2月,Intel公司推出PentiumIII微處理器。集成了950萬(wàn)到2800萬(wàn)個(gè)晶體管;它的前端總線頻率(FSB)提高到133MHz;256KB的L2Cache集成到芯片內(nèi),和CPU以相同的頻率工作;與運(yùn)算部件的數(shù)據(jù)通路從64位擴(kuò)展到256位;增加了新的70條SSE指令,使得多媒體信息的處理能力得到進(jìn)一步提高;PentiumIII微處理器內(nèi)置了一個(gè)引起爭(zhēng)議的產(chǎn)品序列號(hào)(PSN),能惟一標(biāo)識(shí)一個(gè)微處理器;為了適應(yīng)不同需求,Intel公司還推出了面向低檔微機(jī)的Celeron(賽揚(yáng)型)、面向服務(wù)器和工作站的Xeron(至強(qiáng)型)和面向可移動(dòng)領(lǐng)域的移動(dòng)型PentiumII、PentiumIII。類似的微處理器有AMD公司的Athon(K7)。圖8-3

PentiumIII微處理器內(nèi)部結(jié)構(gòu)3.現(xiàn)代微處理器2000年底,Intel公司推出了它的第一個(gè)非P6核心結(jié)構(gòu)全新32位微處理器Pentium4,2001年推出它的改進(jìn)型。Pentium4采用了稱為“NetBurst”的新型微體系結(jié)構(gòu),采用超級(jí)管道技術(shù),使用長(zhǎng)達(dá)20級(jí)的分支預(yù)測(cè)/恢復(fù)管道;Pentium4增加了由144條新指令組成的SSE2,這些新指令提供128位SIMD整數(shù)算法操作和128位SIMD雙精度浮點(diǎn)操作;2002年推出的主頻超過(guò)3.06GHz的新型P4處理器首次采用了“超線程技術(shù)”。它把一個(gè)物理的處理器劃分成二個(gè)邏輯處理器,使它們同時(shí)執(zhí)行兩個(gè)線程。“超線程技術(shù)”挖掘了處理器的內(nèi)部潛力,進(jìn)一步提高了處理能力;最新P4處理器的系統(tǒng)總線頻率達(dá)到了533MHz,使系統(tǒng)的數(shù)據(jù)傳輸帶寬達(dá)到64Bit×533MHz=4.3GB/S。除了Pentium4以外,Intel公司、AMD公司以及其他一些公司積極研制和開(kāi)發(fā)新一代的64位微處理器。2001年5月29日,Intel公司正式推出了64位微處理器Itanium(安騰),數(shù)據(jù)通道寬度128位。Itanium處理器采用了全新的設(shè)計(jì),特點(diǎn)主要有:具有顯式并行功能,它讓編譯器分析程序的并行性,產(chǎn)生多條代碼流并行執(zhí)行;具有“斷定”執(zhí)行功能,可讓程序的多個(gè)分支同時(shí)執(zhí)行,最后“斷定”真正需要的是哪個(gè)分支,保存該分支的結(jié)果;具有數(shù)據(jù)預(yù)裝的功能,在程序分支進(jìn)入流水線之前就將分支所需要的數(shù)據(jù)由內(nèi)存提前取至處理器;采用三級(jí)高速緩存;該處理器目前主要用于服務(wù)器。8.1.432位微處理器的寄存器80X86微處理器由16位升級(jí)為32位后,它的寄存器也對(duì)應(yīng)升級(jí)為32位。為了新的工作方式和存儲(chǔ)管理的需要,增加了一些用于控制的寄存器。1.數(shù)據(jù)寄存器

16位80X86處理器原有的4個(gè)通用數(shù)據(jù)寄存器擴(kuò)展為32位,命名為EAX、EBX、ECX和EDX。仍然可以使用原有的16位和8位寄存器,如AX、BX、CX、DX、AH、AL、BH、BL......。2.地址寄存器原有的4個(gè)主要用于內(nèi)存尋址的通用寄存器同樣擴(kuò)展為32位,命名為ESI、EDI、EBP、ESP。在實(shí)地址模式下仍然可以使用原有的16位寄存器SI、DI、BP和SP。指令指針寄存器擴(kuò)展為32位,更名為EIP,實(shí)地址下仍然可以使用它的低16位IP。在原有的4個(gè)段寄存器基礎(chǔ)上,增加了2個(gè)新的段寄存器FS和GS。段寄存器長(zhǎng)度仍為16位,但是,它存放的不再是16位二進(jìn)制表示的“段基址”,而是13位代表這個(gè)段的一個(gè)編號(hào),稱為“段選擇子”。段的其他信息(起始地址、段的長(zhǎng)度、段的屬性...)組成64Bits的“段描述符”,存放在二張稱為“段描述符表”的表格中。一張表格存放的是當(dāng)前任務(wù)所使用的段的信息,稱為“局部段描述符表(LocalDescriptorTable,LDT)”。另一張表格存放了系統(tǒng)所使用的段的信息,稱為“全局段描述符表(GlobalDescriptorTable,GDT)”。13位二進(jìn)制的“段選擇子”就是這個(gè)段的“段描述符”在表中的順序號(hào)。16位段寄存器的另一位稱為“表指示器(TableIndicator,TI)”,用來(lái)在二張表中間進(jìn)行選擇。16位段寄存器的最低二位表示申請(qǐng)使用段的“特權(quán)級(jí)(RPL)”,取值0~3。每個(gè)段寄存器還有一個(gè)配套的64bits“段描述符寄存器”。向段寄存器裝入一個(gè)新的“段選擇子”的同時(shí),處理器會(huì)同時(shí)把它的描述符裝入對(duì)應(yīng)的“段描述符寄存器”。這些寄存器不能由指令來(lái)存取,對(duì)程序員是不可見(jiàn)的。32位微處理器增加了4個(gè)系統(tǒng)地址寄存器:存放“全局段描述符表”首地址的GDTR;存放“中斷描述符表”首地址的IDTR;存放“局部段描述符表”選擇子的LDTR;存放“任務(wù)段”選擇子的“任務(wù)寄存器”TR。

3.控制寄存器標(biāo)志寄存器也擴(kuò)展為32位,更名為EFLAGS。除了原有的狀態(tài)、控制標(biāo)志,增加了2位表示IO操作特權(quán)級(jí)別的IOPL,表示進(jìn)入虛擬8086方式的VM標(biāo)志等。32位微處理器增加了5個(gè)32位的控制寄存器,命名為CR0~CR4。CR0寄存器的PE=1表示目前系統(tǒng)運(yùn)行在“保護(hù)模式”,PG=1表示允許進(jìn)行分頁(yè)操作。CR3寄存器存放“頁(yè)目錄表”的基地址。此外,還有8個(gè)用于調(diào)試的寄存器DR0~DR7,2個(gè)用于測(cè)試的寄存器TR6~TR7。實(shí)地址方式32位微處理器剛加電或者復(fù)位時(shí),就進(jìn)入實(shí)地址方式。實(shí)地址方式使用16位80X86的尋址方式、存儲(chǔ)器管理和中斷管理。實(shí)地址方式下使用20位地址尋址1MB空間,中斷向量表安置在00000H開(kāi)始的1KB內(nèi)。可以使用32位寄存器(需要在指令前加上寄存器擴(kuò)展前綴),使用特權(quán)級(jí)0,可以執(zhí)行大多數(shù)指令。實(shí)地址方式用于在開(kāi)機(jī)后為進(jìn)入保護(hù)模式做準(zhǔn)備,也可以把32位處理器用作一片高速16位處理器使用。8.1.532位微處理器的工作方式保護(hù)方式保護(hù)方式是32位微處理器的基本工作方式。保護(hù)方式下微處理器支持多任務(wù)運(yùn)行環(huán)境,對(duì)任務(wù)進(jìn)行隔離和保護(hù),進(jìn)行虛擬存儲(chǔ)管理。保護(hù)方式能夠充分發(fā)揮32位處理器的優(yōu)良性能。3.虛擬8086方式虛擬8086方式是保護(hù)模式下某個(gè)任務(wù)的工作方式,允許在保護(hù)模式下運(yùn)行多個(gè)8086程序。虛擬8086方式使用8086的尋址方式,每個(gè)任務(wù)使用1MB的內(nèi)存空間。虛擬8086方式的任務(wù)以最低特權(quán)級(jí)運(yùn)行,所以不能使用特權(quán)指令。系統(tǒng)管理方式系統(tǒng)管理模式(SystemManagementMode,SMM)主要用于電源管理SMM可以使處理器和外圍設(shè)備部件進(jìn)入“休眠”狀態(tài),有鍵盤按下或鼠標(biāo)移動(dòng)時(shí)“喚醒”系統(tǒng),使之繼續(xù)工作。利用SMM可以實(shí)現(xiàn)軟件關(guān)機(jī)。8.2微型計(jì)算機(jī)體系結(jié)構(gòu)IBM-PC,PC/XT微型計(jì)算機(jī)結(jié)構(gòu)IBM公司以8088為CPU構(gòu)建了的第一代的PC機(jī)——IBM-PC,該計(jì)算機(jī)以盒式錄音機(jī)作為外存儲(chǔ)設(shè)備,使用不夠方便。隨后,IBM公司推出了它的增強(qiáng)型—IBM-PC/XT,它采用10~20MB的硬盤驅(qū)動(dòng)器作為輔助存儲(chǔ)設(shè)備,在一段時(shí)間內(nèi)獲得了廣泛的認(rèn)同。PC/XT機(jī)采用以CPU為中心的簡(jiǎn)單結(jié)構(gòu),通過(guò)若干緩沖和鎖存電路把8088CPU的信號(hào)連接到它的“系統(tǒng)板”上,構(gòu)成了62線的“XT總線”。8.2.180X86微型計(jì)算機(jī)結(jié)構(gòu)XT總線包括8位數(shù)據(jù)線,20根地址線,使用與CPU相同的4.77MHz的時(shí)鐘信號(hào)。由于8088CPU傳輸一次數(shù)據(jù)需要4個(gè)以上的時(shí)鐘周期,所以XT總線的數(shù)據(jù)傳輸率約為1.2MB/S。它的“系統(tǒng)板”上除了8088CPU及其外圍電路,還集成了ROM、RAM、定時(shí)/計(jì)數(shù)器、中斷控制器、DMA控制器、鍵盤、揚(yáng)聲器接口以及8個(gè)62引腳的“XT總線”擴(kuò)展插槽。它的顯示器接口,打印機(jī)接口,串行通信接口都是以“接口卡”的形式通過(guò)62腳插槽與系統(tǒng)相連接的。主板上最多提供256K的DRAM存儲(chǔ)器,更多的存儲(chǔ)器需要做成“接口卡”與系統(tǒng)相連。圖8-5IBM-PC/XT微型計(jì)算機(jī)結(jié)構(gòu)PC/AT微型計(jì)算機(jī)結(jié)構(gòu)為了適應(yīng)新的CPU的推出,IBM公司推出了新一代的微型計(jì)算機(jī)——IBMPC/AT;PC/AT對(duì)8位的“XT總線”進(jìn)行了擴(kuò)充,構(gòu)成16位的“AT總線”;隨后,Intel和其他公司聯(lián)合,推出了與AT總線兼容的,公開(kāi)的總線標(biāo)準(zhǔn)——ISA(IndustryStandardArchitecture,工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu))。ISA總線使用24位地址、16位數(shù)據(jù)、15級(jí)硬件中斷和7個(gè)DMA通道,使用6~8MHz時(shí)鐘信號(hào),最高數(shù)據(jù)傳輸率為8MB/S。ISA總線與XT總線兼容,ISA插槽做成二段:第一段提供XT信號(hào),可以繼續(xù)使用XT總線的接口卡;第二段提供ISA所增加的信號(hào),同時(shí)插入二個(gè)插槽就得到完整的ISA信號(hào)。隨著CPU主頻的不斷提高,要求內(nèi)存儲(chǔ)器的速度也要相應(yīng)提高。在這樣的情況下,出現(xiàn)了“分級(jí)”總線的微型計(jì)算機(jī)結(jié)構(gòu):把CPU與內(nèi)存儲(chǔ)器直接相連,稱為“CPU局部總線”;經(jīng)過(guò)外圍芯片(組)產(chǎn)生“系統(tǒng)總線”,與相對(duì)低速的其他I/O設(shè)備相連接。L2Cache和DRAM及其控制器通過(guò)“CPU局部總線”與80486直接相連。在AT機(jī)型中還使用了獨(dú)立的實(shí)時(shí)時(shí)鐘/日歷芯片,關(guān)機(jī)時(shí)用后備電池供電,可以連續(xù)計(jì)時(shí)。圖8-6IBM-PC/AT微型計(jì)算機(jī)結(jié)構(gòu)自從1987年Intel公司生產(chǎn)出8086CPU之后,每隔3-4年,微處理器就要“升級(jí)換代”一次。微處理器的快速更新帶來(lái)了系統(tǒng)結(jié)構(gòu)的“不穩(wěn)定性”,給系統(tǒng)其他電路的研制、生產(chǎn)帶來(lái)了巨大的壓力。為了獲得一個(gè)穩(wěn)定、高性能的系統(tǒng)結(jié)構(gòu),Intel于1991年底提出,1993年聯(lián)合其他公司推出了PCI總線規(guī)范。它獨(dú)立于CPU,完全兼容當(dāng)時(shí)已有的ISA/EISA/微通道總線,具有高達(dá)133MB/S的數(shù)據(jù)傳輸速率,能夠滿足高性能圖形接口和其他高速外設(shè)的需要。隨著同年高性能微處理器Pentium的推出,Pentium+PCI成為新一代微型機(jī)計(jì)算機(jī)的的代名詞。8.2.2Pentium系列微型計(jì)算機(jī)結(jié)構(gòu)

1.“南北橋”結(jié)構(gòu)“南北橋”結(jié)構(gòu)支持多級(jí)總線的系統(tǒng)組成。系統(tǒng)由處理器總線(HostBus),局部總線(PCI)和系統(tǒng)總線(ISA)三級(jí)組成(圖8-7)。處理器總線連接高速緩存(Cache)和主存儲(chǔ)器;PCI總線連接顯示適配器、網(wǎng)絡(luò)適配器、硬盤驅(qū)動(dòng)器等高速設(shè)備;ISA總線連接傳統(tǒng)的并行口、串行口、軟盤驅(qū)動(dòng)器、鍵盤、鼠標(biāo)等相對(duì)低速的外部設(shè)備。各“級(jí)”之間信號(hào)的速度緩沖、電平轉(zhuǎn)換、控制協(xié)議轉(zhuǎn)換由稱為“橋”的電路實(shí)現(xiàn)。根據(jù)“橋”二端電路的不同,有“CPU/PCI橋”(HostBridge),“PCI/ISA橋”,“PCI/PCI橋”等?!癈PU/PCI橋”處于上部,按照地圖的習(xí)慣,被稱為“北橋”。該芯片除了“CPU/PCI橋”電路之外,同時(shí)集成了AGP總線接口、主存儲(chǔ)器控制器、PCI仲裁器。“PCI/ISA橋”位于圖的下方,被稱為“南橋”,它同時(shí)還集成了IDE輔助存儲(chǔ)器接口,二個(gè)8259中斷控制器,二個(gè)DMA控制器,8253/8254定時(shí)/計(jì)數(shù)器和實(shí)時(shí)時(shí)鐘,還增添了通用串行總線(USB)接口,“I/OAPIC”等。傳統(tǒng)的較低速的接口集成在稱為“SuperI/O”的電路中。許多公司研制和生產(chǎn)了組成“南-北橋”的芯片組,它們各自具有不同的性能和技術(shù)特征。Intel公司生產(chǎn)的典型的“南-北橋”的芯片組有440BX和440TX等。從PentiumII開(kāi)始的CPU還提供專用的引腳,通過(guò)南橋芯片的“I/OAPIC”接口連接多于一個(gè)的CPU,構(gòu)成多CPU的系統(tǒng)。圖8-7“南北橋”結(jié)構(gòu)的PentiumII微型計(jì)算機(jī)2.“兩個(gè)中心”結(jié)構(gòu)“南-北橋”結(jié)構(gòu)存在一個(gè)明顯的“數(shù)據(jù)傳輸瓶頸”:南橋芯片連接的高速外設(shè)都要通過(guò)PCI總線與處理器相連接。這增加了PCI總線數(shù)據(jù)交換的擁擠程度。Intel公司為此又推出了稱為“中心結(jié)構(gòu)”的新的結(jié)構(gòu)體系?!按鎯?chǔ)控制中心”(MemoryControlHub,MCH)芯片的主要任務(wù)是建立處理器與系統(tǒng)其他設(shè)備的高速連接。它與處理器連接,通過(guò)存儲(chǔ)器總線連接主存儲(chǔ)器,通過(guò)“中心高速接口”與稱為“I/O控制中心(I/OControlHub,ICH)”的芯片連接,它還集成了高速AGP總線接口,電源管理部件和存儲(chǔ)管理部件。有的MCH芯片還同時(shí)集成了AGP圖形接口,可以直接連接顯示設(shè)備,稱為“圖形存儲(chǔ)控制中心(GMCH)”?!癐/O控制中心”芯片(ICH)負(fù)責(zé)建立I/O設(shè)備與系統(tǒng)的連接。在它的內(nèi)部集成了:2個(gè)IDE輔助存儲(chǔ)器接口(PrimaryIDE,SecondaryIDE);2個(gè)或4個(gè)USB接口;內(nèi)置了PCI總線仲裁器和PCI總線接口;內(nèi)置了AC'97控制器,提供音頻編碼和調(diào)制解調(diào)器編碼接口;通過(guò)LPCI/F和SuperI/O芯片相連。該芯片內(nèi)置相關(guān)接口,連接軟盤驅(qū)動(dòng)器、鍵盤、鼠標(biāo)等相對(duì)低速的外部設(shè)備,同時(shí)提供傳統(tǒng)的并行、串行接口;稱為“固件中心”(FWH)的芯片主要用來(lái)存儲(chǔ)系統(tǒng)和顯示的BIOS,它也連接到ICH芯片上。Intel公司生產(chǎn)的典型的“中心結(jié)構(gòu)”的芯片組有810,815,820,850,860和845等系列。PC'99規(guī)范中取消了ISA總線,需要使用時(shí)可通過(guò)“PCI/ISA橋”芯片引出。“中心結(jié)構(gòu)”進(jìn)一步完善了多級(jí)總線結(jié)構(gòu),是目前普遍使用的微計(jì)算機(jī)系統(tǒng)結(jié)構(gòu).圖8-8“兩個(gè)中心”結(jié)構(gòu)的Pentium微型計(jì)算機(jī)系統(tǒng)芯片組的作用:連接構(gòu)成系統(tǒng)的各個(gè)部件(處理器,主存儲(chǔ)器,接口,外設(shè))提供各種基本信號(hào),連接局部/系統(tǒng)總線,集成了時(shí)鐘、定時(shí)/計(jì)數(shù)器、中斷控制器、DMA控制器以及并行接口、串行接口等電路。系統(tǒng)芯片組在系統(tǒng)的構(gòu)成上起著重要的作用,它使系統(tǒng)結(jié)構(gòu)簡(jiǎn)潔而同時(shí)又保持了強(qiáng)大的功能。Intel845芯片組功能強(qiáng)大,適用面廣,是廣泛使用的主流芯片組。8.2.3Intel845芯片組1.Intel845MCH芯片組主要特征:支持mPGA478封裝的P4或Celeron處理器,支持400MHz/533MHz的處理器總線;支持64位存儲(chǔ)器訪問(wèn),尋址空間達(dá)4GB;支持SDRAM,DDRSDRAM,RamBusRAM等不同類型的存儲(chǔ)器;提供1X/2X/4XAGP圖形總線,某些型號(hào)集成了AGP圖形接口;845芯片組分類:82845EMCH支持DDRSDRAM存儲(chǔ)器82845MCH和82845GMCH同時(shí)支持SDR和DDR二種不同類型的存儲(chǔ)器;82845GMCH內(nèi)部集成了AGP圖形接口,可以直接連接顯示設(shè)備;82845MCH可以連接第二代ICH芯片(ICH2)82845EMCH和82845GMCH支持連接第四代ICH芯片(ICH4),支持USB2.0規(guī)范。82845GMCH芯片組:采用760引腳的FC-BGA封裝處理器系統(tǒng)總線接口:連接mPGA478封裝的P4或Celeron處理器;系統(tǒng)存儲(chǔ)器接口:有二組系統(tǒng)存儲(chǔ)器接口,分別用于連接SDR(單數(shù)據(jù)速率)和DDR(雙倍數(shù)據(jù)速率)的SDRAM(同步動(dòng)態(tài)存儲(chǔ)器);AGP接口:提供AGP總線的接口,供外接AGP顯示接口;模擬顯示輸出:內(nèi)置AGP圖形接口,可以直接連接顯示設(shè)備;DVO設(shè)備接口:用于連接DVO(DynamicVedioOutput,動(dòng)態(tài)視頻輸出)設(shè)備;電源管理中心接口:連接ICH4芯片;時(shí)鐘,復(fù)位和測(cè)試:提供時(shí)鐘、復(fù)位和其他輔助信號(hào)圖8-9a圖8-9b圖8-9c865芯片組近期,Intel公司又推出了865芯片組:支持800MHz/533MHz/400MHz系統(tǒng)總線支持Pentium4的超線程技術(shù)提供AGP8X接口千兆位每秒的以太網(wǎng)接口8路USB2.0端口雙路獨(dú)立的串行ATA150接口可連接雙通道DDR400內(nèi)存2.ICH4芯片82801DB

大多數(shù)Intel845芯片組使用第4代高性能的I/O控制芯片82801DB(ICH4)。它的主要特征:提供符合2.2規(guī)范的PCI總線(支持33MHz),提供多至6路PCI請(qǐng)求/允許信號(hào)(每個(gè)PCI插槽需要一組請(qǐng)求/允許信號(hào));增強(qiáng)的DMA控制器、中斷控制器和定時(shí)器;集成IDE控制器,支持UltraATA/100/66/33工作方式;集成3路USB控制器,提供6個(gè)USB端口,支持USB2.0規(guī)范;集成LAN控制器;通過(guò)LPC(LowPinCount)接口連接SuperI/O芯片;支持最多6通道AC'972.3規(guī)范的音頻和語(yǔ)音編碼;提供電源管理邏輯;提供固件中心(FWH)接口,支持FlashBIOS;支持SMB總線(SystemManagementBus),兼容大多數(shù)I2C設(shè)備。82801DB(ICH4)芯片采用760引腳的FC-BGA封裝。它的引腳信號(hào)由以下幾組組成:PCI總線接口:最多連接6個(gè)PCI插槽;IDE接口:提供兩組增強(qiáng)的IDE接口,連接兩組輔助存儲(chǔ)設(shè)備;處理器接口:連接處理器,提供NMI,INTR,SMI#(系統(tǒng)管理中斷)等信號(hào);中心接口:用于連接MCH芯片;LPC接口:連接SuperI/O芯片,連接傳統(tǒng)的鍵盤、鼠標(biāo)、并口、串口等設(shè)備;其他接口:USB控制器接口,電源管理接口,LAN接口,F(xiàn)WM(固件)中心接口等。圖8-10a圖8-10b圖8-10c8.3存儲(chǔ)管理技術(shù)對(duì)于半導(dǎo)體存儲(chǔ)器器件而言,低價(jià)格、大容量、高速度是一組永恒的矛盾;用單一工藝制造的半導(dǎo)體存儲(chǔ)器難以同時(shí)滿足上述三方面的要求。解決這個(gè)問(wèn)題的有效方法就是發(fā)揮不同存儲(chǔ)器件各自的長(zhǎng)處,采用多層次的存儲(chǔ)系統(tǒng)。8.3.1高速緩存技術(shù)1.多級(jí)存儲(chǔ)體系多級(jí)存儲(chǔ)體系就是把幾種不同容量、速度的存儲(chǔ)器合理地組織在一起,使它們能較好地同時(shí)滿足大容量、高速度、低價(jià)格的要求。以增加技術(shù)復(fù)雜程度為代價(jià)。 存儲(chǔ)系統(tǒng)層次結(jié)構(gòu)如下圖,該系統(tǒng)由高速緩存(Chache)、主存、輔存三類存儲(chǔ)器組成。 三類存儲(chǔ)器構(gòu)成了二個(gè)層次的存儲(chǔ)系統(tǒng)。(1)“高速緩存—主存”層次高速緩存(Chache)存儲(chǔ)器:由小容量的高速靜態(tài)存儲(chǔ)器構(gòu)成速度很快,可以與處理器相匹配容量小(約32KB),不會(huì)顯著提高系統(tǒng)成本一般將Cache集成在CPU的內(nèi)部Cache存儲(chǔ)處理器當(dāng)前使用的指令和數(shù)據(jù)和處理器之間以“字”為單位進(jìn)行讀寫主存儲(chǔ)器:由大容量的動(dòng)態(tài)存儲(chǔ)器組成單位成本低于Cache速度相對(duì)較慢Cache與主存之間以“頁(yè)”為單位進(jìn)行讀寫這一層次主要解決存儲(chǔ)系統(tǒng)的“速度”問(wèn)題。(2)“主存—輔存”層次輔助存儲(chǔ)器:由大容量的磁表面存儲(chǔ)器或光存儲(chǔ)器構(gòu)成具有很低的“位存儲(chǔ)價(jià)格”輔助存儲(chǔ)器上儲(chǔ)存著大量的程序和數(shù)據(jù),處理器僅把目前使用的程序和數(shù)據(jù)裝入主存輔存和主存之間以“塊”為單位進(jìn)行讀寫交換這一層次主要解決存儲(chǔ)系統(tǒng)的“容量”和“成本”問(wèn)題以上二個(gè)層次的組合,本質(zhì)上來(lái)說(shuō),是充分利用Cache的高速度,輔助存儲(chǔ)器的大容量和低成本,使存儲(chǔ)系統(tǒng)較好地解決“容量—速度—價(jià)格”之間的矛盾。2.映射方式設(shè)置高速緩沖存儲(chǔ)器之后,處理器需要的指令和數(shù)據(jù)首先在Cache中尋找:如果找到,則從Cache中快速讀取,這種情況稱為“命中”如果未能在Cache中找到,則稱為“失靶”,這時(shí)需要:從主存中讀取指令或數(shù)據(jù)所在“頁(yè)”存入Cache同時(shí)將該指令或數(shù)據(jù)送入處理器為了確定所要的指令/數(shù)據(jù)是否在Cache中,Cache中不但要存儲(chǔ)指令/數(shù)據(jù)的信息,同時(shí)還要儲(chǔ)存該指令/數(shù)據(jù)在主存的地址信息。這項(xiàng)信息紀(jì)錄在“相聯(lián)存儲(chǔ)映像表”中??s短“主存地址信息”的長(zhǎng)度,可以減少“相聯(lián)存儲(chǔ)映像表”的容量,同時(shí)可以簡(jiǎn)化查找和匹配過(guò)程。為此,對(duì)主存“頁(yè)”進(jìn)入Cache的位置作了種種限制,主存的“頁(yè)”需要由某個(gè)“映像函數(shù)”確定它在Cache中的位置。(1)直接映像法假設(shè):Cache:容量16KB,混合存儲(chǔ)指令和數(shù)據(jù)信息16個(gè)“字”(每個(gè)字為32bit=4Byte)為一“頁(yè)”,

共256“頁(yè)”每個(gè)字節(jié)用8位“頁(yè)地址”加上6位“頁(yè)內(nèi)位置”表示主存:使用32位主存地址,尋址4GB的主存空間每個(gè)字節(jié)用18位“組號(hào)”,8位“頁(yè)地址”,6位“頁(yè)內(nèi)地址”表示直接映像法:

主存中的一頁(yè)只能進(jìn)入與它頁(yè)號(hào)相同的Cache頁(yè)中。圖8-12Cache為“空”時(shí),處理器訪問(wèn)物理地址12345678H的主存單元,該地址可以劃分為:

組號(hào)=048D1H,頁(yè)地址=59H,頁(yè)內(nèi)地址=38H

該內(nèi)存頁(yè)被讀出,存入Cache中59H頁(yè)。“相聯(lián)存儲(chǔ)映像表”中該頁(yè)的“標(biāo)記(Tag)”被置為“048D1H”。隨后,處理器訪問(wèn)地址為12345644H的主存單元,它的地址劃分為:

組號(hào)=048D1H,頁(yè)地址=59H,頁(yè)內(nèi)地址=04H 查找“相聯(lián)表”中頁(yè)面為59H的標(biāo)記項(xiàng),“命中”。Cache第59H頁(yè)面中頁(yè)內(nèi)地址為04H的“字”被讀出,送往處理器。處理器訪問(wèn)地址12341678H的主存單元,地址劃分為:組號(hào)=048D0H,頁(yè)地址=59H,頁(yè)內(nèi)地址=38H。再次查找表中頁(yè)面59H的標(biāo)記項(xiàng),發(fā)出“失靶”信息。主存中編號(hào)為048D0H的1頁(yè)被讀出,存入Cache第59H頁(yè)面中,對(duì)應(yīng)的“標(biāo)記”修改為“048D0H”。一個(gè)新的主存頁(yè)面進(jìn)入Cache,原來(lái)的頁(yè)面被覆蓋。直接映像法特點(diǎn):直接映像法采用簡(jiǎn)單的映射關(guān)系,查找方便。每個(gè)主存頁(yè)面只與Cache中惟一的一個(gè)頁(yè)相映射,增加了頁(yè)面沖突的可能性,會(huì)增加不合理的頁(yè)面更換,Cache的頁(yè)面不能充分利用。(2)全相聯(lián)映像法

全相聯(lián)映像法:主存一頁(yè)可以進(jìn)入Cache任何一頁(yè)。例:32位主存地址,16KBCache,劃分同上。

由于沒(méi)有頁(yè)號(hào)的限制,主存地址僅劃分為二部分:

26位頁(yè)地址,6位頁(yè)內(nèi)地址。

處理器發(fā)出主存物理地址之后,Cache管理邏輯需要把主存的“頁(yè)號(hào)”與所有的“標(biāo)記”逐一進(jìn)行比較,以確定是否“命中”。全相聯(lián)映像法特點(diǎn):“頁(yè)面沖突”的可能降到最?。徊楸?,比較次數(shù)多,電路復(fù)雜; 只適用于小容量的Cache圖8-13(3)組相聯(lián)映像法組相聯(lián)映像法:Cache劃分成大小相等的“組”,每個(gè)組由若干“頁(yè)”組成允許主存的一個(gè)頁(yè)與同一組內(nèi)的多個(gè)頁(yè)面進(jìn)行映射例:32位主存地址,16KBCache,Cache每“組”由二個(gè)頁(yè)面組成,共128個(gè)組。

Cache內(nèi)字節(jié)地址由7位“組號(hào)”,1位“頁(yè)號(hào)”,6位“頁(yè)內(nèi)地址”組成。 主存地址由19位“區(qū)號(hào)”,7位“頁(yè)號(hào)”和6位“頁(yè)內(nèi)地址”組成。 每個(gè)“區(qū)”包含128個(gè)“頁(yè)”,等于Cache“組”的數(shù)量。主存每個(gè)區(qū)的0#頁(yè)面可以和Cache內(nèi)0組二個(gè)頁(yè)面中的任一個(gè)相映射,1#頁(yè)面可以和Cache內(nèi)1組二個(gè)頁(yè)面中的任一個(gè)相映射......

訪問(wèn)主存時(shí),需要將主存“區(qū)地址”部分與一個(gè)組內(nèi)二個(gè)頁(yè)面的“標(biāo)記”同時(shí)進(jìn)行比較,以確定是否“命中”。組相聯(lián)映像法特點(diǎn):減少了頁(yè)面沖突的可能性比較次數(shù)等于Cache內(nèi)每組的頁(yè)面數(shù)目前的微處理器多采用這種方法圖8-143.替換算法一個(gè)新的主存頁(yè)面寫入Cache,Cache中原有的頁(yè)面就被覆蓋或者說(shuō)被替換。使用“全相聯(lián)映像法”和“組相聯(lián)映像法”時(shí),主存頁(yè)的進(jìn)入位置有一個(gè)以上的選擇,管理邏輯需要決定覆蓋或者替換哪一個(gè)Cache頁(yè)。確定被替換頁(yè)面的算法主要取決于實(shí)現(xiàn)的難易和命中率的高低。常用的方法有以下二種。(1)先進(jìn)先出法(FIFO)

選擇最早進(jìn)入的頁(yè)為被替換的頁(yè) 這種方法實(shí)現(xiàn)簡(jiǎn)單,但不夠合理,最早進(jìn)入的頁(yè)仍然可能是現(xiàn)在頻繁使用的頁(yè)。(2)“近期最少使用”算法(LRU)

這種算法比較合理,實(shí)現(xiàn)起來(lái)稍微復(fù)雜一些。4.Cache和主存一致性問(wèn)題使用高速緩存后,一項(xiàng)數(shù)據(jù)可能同時(shí)儲(chǔ)存在二個(gè)位置上處理器把數(shù)據(jù)寫入Cache,尚未寫入主存時(shí),就產(chǎn)生了Cache—主存內(nèi)容的不一致性解決這個(gè)問(wèn)題可以采用二種方法。(1)寫回法(WriteBack)

處理器執(zhí)行寫操作時(shí),信息只寫入Cache,該頁(yè)被替換時(shí),才將它寫回主存。(2)寫直達(dá)法(WriteThrough)

信息在寫入Cache的同時(shí)也寫回主存。比較:

使用寫回法時(shí),一個(gè)主存頁(yè)面調(diào)入Cache后最多回寫一次(內(nèi)容未修改則不需要寫回),節(jié)省了回寫時(shí)間,但是一致性保持不如寫直達(dá)法。5.突發(fā)總線周期(BrustBusCycle)主存和Cache之間以“頁(yè)”為單位進(jìn)行信息交換,每次傳送都是對(duì)連續(xù)的若干字節(jié)進(jìn)行新型主存器件都支持突發(fā)總線傳輸方式突發(fā)總線傳輸:向主存儲(chǔ)器發(fā)送起始地址之后,連續(xù)傳送多個(gè)字的數(shù)據(jù)。例:Pentium的Cache每頁(yè)64字節(jié),與主存之間可以同時(shí)傳輸64Bits也就是8字節(jié)信息。主存頁(yè)調(diào)入Cache時(shí),向主存發(fā)出該頁(yè)的起始地址,同時(shí)發(fā)出“突發(fā)總線請(qǐng)求”信號(hào)。主存收到上述信號(hào),適當(dāng)延時(shí),在連續(xù)的多個(gè)周期內(nèi)每次發(fā)送8字節(jié)(64Bits)信息,最終把一頁(yè)內(nèi)容寫入Cache?,F(xiàn)代微型計(jì)算機(jī)對(duì)內(nèi)存數(shù)量要求的增加:采用多任務(wù)的操作系統(tǒng),提高CPU利用率和性能多媒體技術(shù)的廣泛使用,系統(tǒng)程序和應(yīng)用程序使用的內(nèi)存數(shù)量越來(lái)越大。由于成本的原因,主存容量配置難以滿足上述要求。內(nèi)存管理的“碎片”問(wèn)題:任務(wù)運(yùn)行時(shí)申請(qǐng)使用內(nèi)存;任務(wù)撤銷時(shí)釋放內(nèi)存。運(yùn)行一段時(shí)間之后,主存空間將出現(xiàn)許多“碎片”。清理這些“碎片”需要移動(dòng)正在使用的“內(nèi)存片”,這會(huì)帶來(lái)許多復(fù)雜的問(wèn)題。8.3.2虛擬存儲(chǔ)技術(shù)虛擬存儲(chǔ)技術(shù):將主存儲(chǔ)器和輔助存儲(chǔ)器的一部分統(tǒng)一編址,看作一個(gè)完整的“虛擬存儲(chǔ)空間”。從80386開(kāi)始的微處理器都內(nèi)置了“存儲(chǔ)管理部件(MMU)”,完成“虛存”和“實(shí)存”之間的調(diào)度。使用虛擬存儲(chǔ)技術(shù)的好處:擴(kuò)大了程序可用的存儲(chǔ)空間;有效地解決了任務(wù)之間,用戶任務(wù)與操作系統(tǒng)之間存儲(chǔ)空間的隔離和保護(hù);有效解決“碎片”問(wèn)題。虛擬存儲(chǔ)管理使用的地址空間:

邏輯地址:程序中使用的存儲(chǔ)空間

線性地址:邏輯空間向物理空間轉(zhuǎn)換中,線性排列的空間

物理地址:實(shí)際的內(nèi)存儲(chǔ)器空間1.段存儲(chǔ)管理段存儲(chǔ)管理完成邏輯地址向線性地址的轉(zhuǎn)換。程序員使用的地址空間里,每個(gè)存儲(chǔ)單元可以表示為“段名:段內(nèi)偏移地址”。這樣的地址稱為“邏輯地址”。8086CPU不支持虛擬存儲(chǔ)管理,段寄存器直接記錄了該段的起始地址信息。將段起始地址與偏移地址相加,就得到了該存儲(chǔ)單元的物理地址。32位微處理器中,“段”的信息被紀(jì)錄在“段描述符”中,包含32Bit段起始地址,20Bit段界限值(段長(zhǎng)度),4Bit段類型,2Bit段描述符優(yōu)先級(jí),以及其他信息共64Bit。操作系統(tǒng)所使用段的“段描述符”順序存放,組成“全局段描述符表(GlobalDescriptorTable,GDT)”。GDT表的首地址紀(jì)錄在的“全局段描述符表寄存器(GDTR)”中。每個(gè)用戶所使用段的“段描述符”組成“局部段描述符表(LocalDescriptorTable,LDT)”。LDT本身構(gòu)成一個(gè)段,

這個(gè)段的“段選擇子”放在寄存器(LDTR)中。使用“段選擇子”和二張“段描述符表”可以把“邏輯地址”轉(zhuǎn)換成“線性地址”(圖8-15)。GDT和LDT二張表格存儲(chǔ)在主存儲(chǔ)器中。在保護(hù)狀態(tài)下,每條指令的執(zhí)行都伴隨著邏輯地址向線性地址的轉(zhuǎn)換過(guò)程。為了提高指令執(zhí)行速度,在32位處理器內(nèi)部除了在段寄存器中存有“段選擇子”之外,還增設(shè)了與段寄存器對(duì)應(yīng)的“段描述符寄存器”。在裝載段選擇子的同時(shí),主存中對(duì)應(yīng)的64Bit段描述符信息同時(shí)進(jìn)入該寄存器。從理論上來(lái)說(shuō),16位段選擇子可以選擇二張表中共213×2=214個(gè)不同的段。每個(gè)段最大可達(dá)232字節(jié)。因此,通過(guò)段存儲(chǔ)管理最多可管理232×214=246=64TB的虛擬地址空間。圖8-152.頁(yè)存儲(chǔ)管理線性地址空間是一個(gè)虛擬的地址空間,物理地址空間是實(shí)際的存儲(chǔ)空間,它們都劃分成若干大小相等的“頁(yè)”。頁(yè)存儲(chǔ)管理部件負(fù)責(zé)完成線性地址向物理地址的轉(zhuǎn)換。線性地址空間一般遠(yuǎn)大于實(shí)際的物理地址空間,頁(yè)存儲(chǔ)管理部件需要決定“虛存”的哪些頁(yè)調(diào)入“實(shí)存”,其余的則保存在輔助存儲(chǔ)器中。以80386為例,頁(yè)面固定為4KB,每個(gè)線性地址頁(yè)面的信息紀(jì)錄在一個(gè)32Bits的“頁(yè)表項(xiàng)”中,包括32位物理地址的高20位(低12位與線性地址的低12位相同),目前是否在“實(shí)存”中,以及該頁(yè)的使用情況等相關(guān)信息。每1024個(gè)頁(yè)面組成一個(gè)“頁(yè)組”,它們對(duì)應(yīng)的頁(yè)表項(xiàng)構(gòu)成一張“頁(yè)表”,4KB大小的“頁(yè)表”本身構(gòu)成了一個(gè)特殊的“頁(yè)”。系統(tǒng)用一張“頁(yè)組表”紀(jì)錄所有頁(yè)組的信息?!绊?yè)組表”由1024個(gè)“頁(yè)組目錄項(xiàng)”組成,32Bits的“頁(yè)組目錄項(xiàng)”具有與“頁(yè)表項(xiàng)”類似的格式,只不過(guò)它記錄的是1024個(gè)特殊的“頁(yè)”—“頁(yè)組表”的相關(guān)信息。于是,32位線性地址可以劃分為:10位頁(yè)組目錄項(xiàng)索引——紀(jì)錄該線性地址單元所在的頁(yè)組;10位頁(yè)表項(xiàng)索引——紀(jì)錄該線性地址單元在該頁(yè)組的哪一個(gè)頁(yè)中;12位頁(yè)內(nèi)偏移地址——紀(jì)錄該線性地址單元在該頁(yè)內(nèi)的相對(duì)位置。圖8-16線性地址向物理地址的轉(zhuǎn)換通過(guò)查二次表實(shí)現(xiàn)(圖8-16):用高10位查“頁(yè)組目錄項(xiàng)表”,得到該頁(yè)組的“頁(yè)組表”的首地址;用次10位在剛得到的“頁(yè)組表”中查到該頁(yè)的起始物理地址;頁(yè)的起始物理地址加上低12位的“頁(yè)內(nèi)偏移地址”,得到完整的32位物理地址?!绊?yè)組目錄項(xiàng)表”的首地址存放在處理器的“CR3”寄存器中。由于頁(yè)表和頁(yè)組目錄項(xiàng)表每一項(xiàng)占用4個(gè)字節(jié),所以二個(gè)10位的索引值都要乘以4與表的基地址相加,找到該目錄項(xiàng)。系統(tǒng)中應(yīng)有一張頁(yè)組目錄項(xiàng)表,最多1024張頁(yè)表,這些表存放在主存儲(chǔ)器中。實(shí)際使用時(shí),把目前經(jīng)常使用的表項(xiàng)轉(zhuǎn)儲(chǔ)在處理器內(nèi)部稱為“轉(zhuǎn)換檢測(cè)緩沖器(TLB)”的小型的高速緩存中,以提高查表速度。在PentiumII開(kāi)始的第六代微處理器中,可以使用“頁(yè)目錄指針表(PDPT)”。如果仍然以4KB為一頁(yè),32位線性地址被劃分為4部分:2位PDPT項(xiàng)號(hào),用來(lái)查PDPT表,得到頁(yè)目錄表的首地址;9位頁(yè)目錄項(xiàng)號(hào),用來(lái)查頁(yè)目錄表;9位頁(yè)面號(hào),用來(lái)查頁(yè)表,獲得24位的“頁(yè)基地址”;12位頁(yè)內(nèi)偏移地址,與20位“頁(yè)基地址”組合,得到32位物理地址??梢钥闯?,它的基本方法與上面所述是一樣的。3.80X86微機(jī)的虛擬存儲(chǔ)管理32位X86微處理器用CR0寄存器的PE位控制它的工作方式。PE=0,處理器工作在實(shí)地址方式下,處理器仍然使用16位80X86處理器的地址生成方式,用20位地址訪問(wèn)1M字節(jié)的地址空間。PE=1,處理器工作在保護(hù)方式下,自動(dòng)啟用段存儲(chǔ)管理機(jī)制。如果CR0寄存器的PG位為1,同時(shí)啟動(dòng)頁(yè)存儲(chǔ)管理機(jī)制,實(shí)現(xiàn)段/頁(yè)二級(jí)虛擬存儲(chǔ)管理。如果PG=0,則禁止使用頁(yè)存儲(chǔ)管理機(jī)制,由段存儲(chǔ)管理產(chǎn)生的“線性地址”就是訪問(wèn)存儲(chǔ)器要求的“物理地址”。8.4多任務(wù)管理與I/O管理虛擬存儲(chǔ)管理提供了運(yùn)行多任務(wù)所必需的存儲(chǔ)空間隔離和保護(hù)機(jī)制?,F(xiàn)代32位微處理器的內(nèi)部還集成了其他面向多任務(wù)運(yùn)行所需要的管理邏輯。8.4.1多任務(wù)管理 1.保護(hù)機(jī)制

保護(hù)模式下,處理器實(shí)施對(duì)任務(wù)和資源的保護(hù)機(jī)制。

有4個(gè)(0-3)不同的“特權(quán)級(jí)”,用二位二進(jìn)制表示。0級(jí)最高,可以訪問(wèn)系統(tǒng)的一切資源,供操作系統(tǒng)內(nèi)核使用。有些特殊的指令只能在0級(jí)執(zhí)行,稱為“特權(quán)指令”。1級(jí)次之,大多數(shù)的操作系統(tǒng)任務(wù)運(yùn)行在這一層。3級(jí)最低,供一般用戶程序使用,它不能使用具有0~2級(jí)特權(quán)的資源。特權(quán)級(jí)出現(xiàn)在以下三個(gè)地方:(1)段描述符

每個(gè)段描述符內(nèi)包括2bit的描述符特權(quán)級(jí)DPL,表示這個(gè)段(資源)的級(jí)別。(2)選擇子

每個(gè)段選擇子最低2位是它的請(qǐng)求特權(quán)級(jí)RPL。(3)當(dāng)前執(zhí)行程序

每個(gè)當(dāng)前執(zhí)行程序有一個(gè)當(dāng)前特權(quán)級(jí)CPL,存放在段寄存器CS和SS的最低2位。CPL表示該任務(wù)所擁有的特權(quán)級(jí)。訪問(wèn)一個(gè)段時(shí),要求CPL和RPL同時(shí)具有高于或等于DPL的特權(quán)級(jí),否則將出現(xiàn)保護(hù)異常。為了使得一般用戶程序能夠得到具有較高特權(quán)級(jí)的操作系統(tǒng)的服務(wù),處理器特別提供了一種稱為“調(diào)用門”的機(jī)制?!罢{(diào)用門”設(shè)在較低的的特權(quán)級(jí)上,通過(guò)它可以得到較高特權(quán)級(jí)的操作系統(tǒng)的服務(wù)。類似的還有任務(wù)門、中斷門和自陷門。2.任務(wù)結(jié)構(gòu)

一個(gè)任務(wù)由兩部分組成:一個(gè)任務(wù)的執(zhí)行空間;一個(gè)任務(wù)狀態(tài)段TSS(TaskStatusSegment)任務(wù)執(zhí)行空間由該任務(wù)的代碼段、堆棧段和若干個(gè)數(shù)據(jù)段組成。任務(wù)狀態(tài)段TSS是存儲(chǔ)器內(nèi)一個(gè)特殊的“段”,它儲(chǔ)存了該任務(wù)的運(yùn)行狀態(tài)(包括各寄存器內(nèi)容),使用的存儲(chǔ)空間,允許使用的I/O端口等信息,如圖8-17所示。當(dāng)前任務(wù)的TSS段的選擇子裝載在處理器的任務(wù)寄存器TR中。圖8-173.任務(wù)的轉(zhuǎn)換和連接作為一個(gè)“段”,任務(wù)狀態(tài)段也有它的段描述符,存放在“全局描述符表(GDT)”中。該描述符的“類型”字段包含一個(gè)“忙”標(biāo)志位B,B=1表示該任務(wù)正在執(zhí)行。處理器內(nèi)16位的任務(wù)寄存器TR存放了當(dāng)前正在執(zhí)行任務(wù)的TSS的選擇子。TR還包括一個(gè)不可見(jiàn)的64位描述符寄存器,那里存放了TSS段描述符,它是GDT中對(duì)應(yīng)描述符的拷貝,它使尋找該段的操作更加快速和簡(jiǎn)便。指令LTR和STR用于裝載和保存任務(wù)寄存器TR的16位可見(jiàn)部分,其中LTR是一條特權(quán)指令,只能由0級(jí)特權(quán)的程序執(zhí)行。用JMP或CALL指令啟動(dòng)一個(gè)新的任務(wù):指令目標(biāo)地址“段選擇子:偏移地址”中,“段選擇子”指向GDT中新任務(wù)的TSS段處理器執(zhí)行這條JMP或CALL指令時(shí),會(huì)進(jìn)行一系列的正確性檢查檢查無(wú)誤后,將當(dāng)前任務(wù)的所有通用寄存器、所有段寄存器中的選擇子、EFLAGS、EIP存入該任務(wù)自身的TSS將新任務(wù)的選擇子、描述符裝入TR寄存器(可見(jiàn)的和不可見(jiàn)的)將對(duì)應(yīng)TSS段中所保存的通用寄存器、段寄存器(段選擇子)、EFLAGS、EIP副本裝入處理器對(duì)應(yīng)的寄存器中在CS:EIP的控制下,一個(gè)新的任務(wù)開(kāi)始執(zhí)行。除了上述JMP和CALL指令,IRET指令、INT-n指令、中斷和異常也會(huì)導(dǎo)致任務(wù)的轉(zhuǎn)換。32位處理器的任務(wù)轉(zhuǎn)移比起16位處理器的程序轉(zhuǎn)移要復(fù)雜得多,它對(duì)任務(wù)的保護(hù)功能也強(qiáng)得多。由于這一系列的過(guò)程由處理器硬件完成,所以仍然能夠?qū)崿F(xiàn)快速的任務(wù)轉(zhuǎn)換。用CALL指令調(diào)用一個(gè)新任務(wù)時(shí),處理器還將當(dāng)前任務(wù)的TSS的選擇子復(fù)制到新任務(wù)TSS中的“先前連接域”中,并將EFLAGS寄存器的NT(NestingTask,嵌套任務(wù))位置1。新任務(wù)執(zhí)行返回指令時(shí),從TSS中找到保存的原TSS選擇子并返回。用JMP、CALL指令調(diào)用同一個(gè)任務(wù)中其他程序段指令目標(biāo)地址中,“段選擇子”是目標(biāo)段的選擇子進(jìn)行權(quán)限檢查之后,該“段選擇子”及其描述符被存入CS寄存器,“偏移地址”進(jìn)入EIP,于是,目標(biāo)程序被執(zhí)行。對(duì)于CALL指令,原來(lái)程序的返回信息“CS:EIP”被壓入堆棧,在返回時(shí)恢復(fù)到CS和EIP中,以便順序執(zhí)行后續(xù)的指令。在同一個(gè)任務(wù)中CALL和JMP指令的執(zhí)行和16位微處理器中十分相似。8.4.2I/O管理

在多任務(wù)的運(yùn)行環(huán)境中,如果多個(gè)任務(wù)都要對(duì)同一個(gè)I/O端口進(jìn)行訪問(wèn),勢(shì)必造成混亂,為此,必須對(duì)I/O操作進(jìn)行必要的管理。有二項(xiàng)措施來(lái)避免混亂的發(fā)生:處理器標(biāo)志寄存器EFLAGS中IOPL(2bits)規(guī)定了執(zhí)行I/O操作所需要的特權(quán)級(jí);任務(wù)狀態(tài)段TSS中有一個(gè)最多64Kbits組成的“I/O允許位圖(IOM)”,它的每一位對(duì)應(yīng)一個(gè)對(duì)應(yīng)位置的I/O端口,為0表示該端口允許這個(gè)用戶進(jìn)行I/O操作。對(duì)于運(yùn)行在虛擬8086方式的任務(wù),用IOM來(lái)控制對(duì)I/O端口進(jìn)行訪問(wèn),對(duì)位圖對(duì)應(yīng)位為1的端口進(jìn)行訪問(wèn)將產(chǎn)生保護(hù)異常。在保護(hù)方式下,處理器首先檢查當(dāng)前任務(wù)的CPL,如果CPL的特權(quán)級(jí)高于或等于EFLAGS中由IOPL規(guī)定的特權(quán)級(jí),I/O操作不會(huì)受限制,否則將進(jìn)一步檢查IOM,對(duì)IOM為1的端口進(jìn)行操作將產(chǎn)生保護(hù)異常。常用的一種辦法是:在IOM中封鎖對(duì)端口的訪問(wèn),當(dāng)前任務(wù)一旦執(zhí)行I/O指令,立即產(chǎn)生保護(hù)異常,進(jìn)入由操作系統(tǒng)設(shè)置的“異常處理程序”,在操作系統(tǒng)的控制下進(jìn)行間接的“I/O操作”。8.5現(xiàn)代微型計(jì)算機(jī)中斷系統(tǒng)1.中斷描述符表(IDT)保護(hù)方式下用“中斷描述符表(IDT)”來(lái)指出各中斷處理程序的入口地址。每一個(gè)中斷類型對(duì)應(yīng)一個(gè)64Bits的“中斷門”描述符,包括16位的“段選擇子”,32位的偏移地址,它的類型代碼以及特權(quán)級(jí)等信息。8.5.1保護(hù)方式下的中斷管理如果是由某種“異常”引起的中斷,例如處理器內(nèi)部的除法溢出,處理器外部的頁(yè)面故障(訪問(wèn)存儲(chǔ)器需要的頁(yè)面不在物理存儲(chǔ)器中),則對(duì)應(yīng)一個(gè)“陷阱門”。它和“中斷門”描述符形式上的區(qū)別僅僅是類型代碼不同。一個(gè)中斷類型還可以對(duì)應(yīng)于一個(gè)“任務(wù)門”。64Bits的任務(wù)門包含了一個(gè)任務(wù)狀態(tài)段的選擇子(16位),但不含有偏移地址的信息。三種“門”的格式如圖8-18。圖中,P是存在位,=1表示該段已經(jīng)在物理內(nèi)存中,DPL是“描述符特權(quán)級(jí)”。與DOS方式下的中斷向量表(IVT)不同,IDT可以放在內(nèi)存的任何位置,它的首地址(線性地址)存放在IDTR寄存器中。圖8-182.中斷響應(yīng)過(guò)程一次中斷發(fā)生后:將EFLAGS、CS、EIP先后壓入堆棧清除EFLAGS中的IF和TF標(biāo)志將中斷門中的段選擇子裝入CS依照CS內(nèi)容,從GDT或LDT表中找到中斷服務(wù)程序的段描述符,裝入CS寄存器對(duì)應(yīng)的描述符寄存器,中斷門中的偏移地址裝入EIP寄存器進(jìn)入由CS:EIP所指出的中斷服務(wù)程序。如果中斷類型對(duì)應(yīng)一個(gè)陷阱門,除了不清除IF標(biāo)志位外,其他過(guò)程與上述相同。由于不清除IF,在中斷處理過(guò)程能夠被新的外部中斷打斷,這意味著它的中斷優(yōu)先級(jí)較低。出于保護(hù)的需要,不同特權(quán)級(jí)的任務(wù)不能使用同一個(gè)堆棧。如果中斷服務(wù)程序與被中斷程序有不同的特權(quán)級(jí),還需要在將EFLAGS、CS、EIP壓入堆棧后進(jìn)行堆棧的切換,新的堆棧指針(SS:ESP)存放在當(dāng)前任務(wù)的TSS段中。為了保證正確的返回,需要把原來(lái)的堆棧指針也壓入堆棧保護(hù)。如果中斷類型對(duì)應(yīng)一個(gè)任務(wù)門段選擇符被裝入TR寄存器依照段選擇符的內(nèi)容,從GDT中取出TSS描述符裝入TR對(duì)應(yīng)的描述符寄存器將當(dāng)前任務(wù)的所有通用寄存器、所有段寄存器中的選擇子、EFLAGS、EIP存入該任務(wù)的TSS將對(duì)應(yīng)TSS段中所保存的通用寄存器、段寄存器(段選擇子)、EFLAGS、EIP副本裝入處理器對(duì)應(yīng)的寄存器中在CS:EIP的控制下,一個(gè)新的任務(wù)開(kāi)始執(zhí)行類似于用JMP和CALL指令連接一個(gè)新任務(wù)在新的“兩個(gè)中心”微計(jì)算機(jī)結(jié)構(gòu)中,處理器以外的中斷管理功能是由“I/O控制中心(ICH2/ICH4)”芯片完成的。圖8-10列出了它的中斷接口信號(hào)。8.5.2I/O控制中心(ICH)的中斷管理功能1.串行中斷在以前的PC機(jī)中,外部中斷請(qǐng)求信號(hào)連接在中斷控制器8259A的中斷輸入引腳上,所連接的引腳的編號(hào)與它的中斷類型、中斷優(yōu)先級(jí)相對(duì)應(yīng)。這種方式的優(yōu)點(diǎn)是直觀和簡(jiǎn)單,缺點(diǎn)是連線多,缺乏靈活性,不便于系統(tǒng)的擴(kuò)充。在新一代的PC微機(jī)中,采用了一種新的中斷請(qǐng)求信號(hào)格式——串行中斷,它用一根信號(hào)線(SERIRQ)來(lái)傳遞中斷請(qǐng)求信號(hào)。所有支持串行中斷的設(shè)備都可以用一個(gè)三態(tài)門連接到

溫馨提示

  • 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)論