CPU的工作模式--精選文檔_第1頁(yè)
CPU的工作模式--精選文檔_第2頁(yè)
已閱讀5頁(yè),還剩4頁(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、Intel CPU 和 ARM CPU 的運(yùn)行模式摘要: 本文介紹了Intel CPU的三種運(yùn)行模式:實(shí)模式、保護(hù)模式,虛擬實(shí)模式,同時(shí)還介紹了ARM處理器的工作模式:用戶模式和特權(quán)模式,并且分析比較了兩種CPU的這些運(yùn)行模式的作用及適用場(chǎng)合,以便對(duì)這些運(yùn)行模式有更深入的了解。CPU作為計(jì)算機(jī)和各種電子設(shè)備的大腦,對(duì)計(jì)算機(jī)和電子設(shè)備起著至關(guān)重要的作用,它主要用來(lái)解釋指令和處理數(shù)據(jù),是計(jì)算機(jī)和電子設(shè)備能夠?qū)崿F(xiàn)各種各樣的功能的基礎(chǔ)。CPU運(yùn)行模式指的是各種工作環(huán)境, 以及對(duì)芯片的指令和能力的影響。CPU運(yùn)行模式控制處理器如何查看和管理系統(tǒng)存儲(chǔ)器以及使用它的任務(wù)。Intel的CPU占領(lǐng)了大部分的PC

2、市場(chǎng),而ARM處理器則大量存在于手機(jī)和各種嵌入式設(shè)備中。對(duì)這兩種CPU的運(yùn)行模式進(jìn)行分析能讓我們對(duì)CPU的運(yùn)行模式更加深入的理解。絕大部分PC的CPU都是Intel公司的CPU,Intel的 CPU經(jīng)過(guò)多年的發(fā)展,已經(jīng)當(dāng)初的一種運(yùn)行模式發(fā)展成了現(xiàn)在的三種運(yùn)行模式,分別是:實(shí)模式、保護(hù)模式,虛擬實(shí)模式。下面對(duì)這三種模式進(jìn)行詳細(xì)介紹。實(shí)模式 Intel的8086到80186處理器都只有一種運(yùn)行模式,這就是實(shí)模式。在這個(gè)模式下,CPU用20根地址線進(jìn)行內(nèi)存尋址,所以在這個(gè)模式下CPU只能訪問(wèn)從00000h-FFFFFh的地址范圍的內(nèi)存,即1M大小的內(nèi)存。同時(shí)使用16根數(shù)據(jù)線,使用l6位內(nèi)部寄存器運(yùn)行

3、16位指令。由于使用的是16根數(shù)據(jù)線,為了能夠支持使用20位的地址來(lái)訪問(wèn)1M的內(nèi)存,于是就對(duì)內(nèi)存的使用引入了分段機(jī)制。為了支持分段機(jī)制,CPU設(shè)置了四個(gè)16位的段寄存器:CS、DS、SS、ES,分別是代碼段,數(shù)據(jù)段,堆棧段和其他段,對(duì)應(yīng)于地址總線中的高16位。尋址時(shí),將段寄存器中的值向左移四位再加上段內(nèi)偏移量就得到了物理地址。這樣就實(shí)現(xiàn)了16位內(nèi)存地址到20位物理地址的轉(zhuǎn)換,這種方式叫做“映射”。由于其偏移量只能用16位來(lái)表示,所以其支持的段的大小只有64K字節(jié)。在實(shí)模式下,系統(tǒng)一次只能運(yùn)行一個(gè)程序,其他程序都處于休眠狀態(tài)。在這個(gè)模式下,任何一個(gè)程序都可以訪問(wèn)內(nèi)存的任何地方,并沒(méi)有一種保護(hù)機(jī)制

4、來(lái)防止一個(gè)程序被另一個(gè)程序重寫(xiě),即便是對(duì)于在內(nèi)存中的操作系統(tǒng)也是如此。所以如果有幾個(gè)程序存在內(nèi)存中,很可能會(huì)因?yàn)槠渲械囊粋€(gè)程序修改了另一個(gè)程序的數(shù)據(jù)而導(dǎo)致系統(tǒng)崩潰。為了能夠和前面的CPU兼容,80286 及以后x86系列兼容處理器仍然是開(kāi)機(jī)啟動(dòng)時(shí)工作在實(shí)模式下,這時(shí)的CPU和8086沒(méi)有任何區(qū)別,只是運(yùn)行速度比8086更快而已。然后通過(guò)操作系統(tǒng)設(shè)置之后就可以進(jìn)入一個(gè)更加先進(jìn)的模式保護(hù)模式。保護(hù)模式 要發(fā)揮80386及x86系列處理器的全部?jī)?yōu)勢(shì)就要在保護(hù)模式下。那么保護(hù)模式和實(shí)模式到底有什么區(qū)別呢?首先是在保護(hù)模式下采用的是32根地址線和數(shù)據(jù)線,運(yùn)行32位指令,可尋址高達(dá)4G字節(jié)的物理地址空間

5、字。實(shí)模式下只能尋址的1M字節(jié)的物理地址空間。保護(hù)模式采用了虛擬內(nèi)存,并采用分段和分頁(yè)技術(shù)相結(jié)合的方式,其支持的最大的段的大小也從實(shí)模式的64K增長(zhǎng)到4G。同時(shí)保護(hù)模式的地址轉(zhuǎn)換方式也發(fā)生了變化。此時(shí)段寄存器里存的不再是基址,而是段選擇子。通過(guò)段選擇子來(lái)選出段的描述符,描述符用來(lái)描述一個(gè)段,包含了段基址,段界限,段屬性等段的信息。得到了段基址之后,再加上偏移量就得到了線性地址,與實(shí)模式最大的區(qū)別是保護(hù)模式的基址不要偏移。得到線性地址之后,如果禁止分頁(yè)線性地址就被解釋為物理地址;如果允許分頁(yè)線性地址就通過(guò)頁(yè)表映射到物理地址。保護(hù)模式和實(shí)模式的最大區(qū)別是在保護(hù)模式下運(yùn)行的軟件程序受到了保護(hù)。這種保

6、護(hù)作用首先體現(xiàn)在進(jìn)程間的保護(hù)。在保護(hù)模式下每個(gè)進(jìn)程都有自己的地址空間,然后把地址空間分頁(yè),得到許多的頁(yè)面,再把這些頁(yè)面映射到物理內(nèi)存。由于不同進(jìn)程的頁(yè)表被映射到不同的物理內(nèi)存,這就實(shí)現(xiàn)了進(jìn)程間的相互隔離,防止一個(gè)程序被另一個(gè)程序重寫(xiě),導(dǎo)致系統(tǒng)崩潰。同時(shí)進(jìn)程間的隔離使得一個(gè)進(jìn)程的崩潰也不會(huì)影響到其他進(jìn)程的執(zhí)行。同時(shí)保護(hù)作用還包括進(jìn)程內(nèi)的保護(hù)。在一個(gè)進(jìn)程內(nèi),段定義有四種執(zhí)行特權(quán)級(jí)別,用數(shù)字0、1、2、3表示,用于限制對(duì)任務(wù)中的段進(jìn)行訪問(wèn),數(shù)字越小,級(jí)別越高。按照包含在段中的數(shù)據(jù)的重要性和代碼的可信程度,給段指定特權(quán)級(jí)別。把最高的特權(quán)級(jí)別分配給最重要的數(shù)據(jù)段和最可信任的代碼段,高特權(quán)級(jí)別代碼可以訪問(wèn)

7、地特權(quán)級(jí)別代碼,但是反過(guò)來(lái)就會(huì)被阻止。所以系統(tǒng)代碼與應(yīng)用程序代碼雖處于同一地址空間,但系統(tǒng)代碼具有高特權(quán)級(jí)別,應(yīng)用程序代碼處于低特權(quán)級(jí)別,這樣就防止了用戶代碼破壞系統(tǒng)代碼。操作系統(tǒng)被設(shè)置為0級(jí),擁有最高特權(quán)等級(jí),這就保證了操作系統(tǒng)的安全。段的特權(quán)級(jí)別是通過(guò)段描述符的中的一個(gè)占兩位的DPL位來(lái)表示的。保護(hù)模式支持的多任務(wù)運(yùn)行,但這需要多任務(wù)操作系統(tǒng)來(lái)完成。操作系統(tǒng)讓每個(gè)進(jìn)程都得到部分的CPU時(shí)間,讓它們輪流使用CPU,看起來(lái)就好像是多個(gè)任務(wù)在運(yùn)行,實(shí)際上在很小的時(shí)間片段內(nèi)還是只有一個(gè)程序運(yùn)行,但在多核CPU中可以實(shí)現(xiàn)真正的并行運(yùn)行。通過(guò)操作系統(tǒng)的設(shè)置,CPU可以從實(shí)模式進(jìn)入保護(hù)模式,但是不能夠倒

8、退從保護(hù)模式進(jìn)入實(shí)模式。虛擬8086模式 在當(dāng)初設(shè)計(jì)Intel 80386 CPU的時(shí)候,需要解決的一個(gè)難題是如何讓運(yùn)行在16位實(shí)模式下的程序能夠在80386的保護(hù)模式中運(yùn)行。為此Intel的設(shè)計(jì)人員在80386中加入了虛擬8086模式。在虛擬8086模式中,CPU把內(nèi)存分成許多大小為1M的部分,每個(gè)部分分配給一個(gè)任務(wù)。大部分16位實(shí)模式下的程序能夠不經(jīng)任何修改的運(yùn)行在保護(hù)模式下,每個(gè)程序都有屬于他們的1M內(nèi)存。微軟在用虛擬8086模式來(lái)運(yùn)行他們的DOS程序。運(yùn)行Windows操作系統(tǒng)中的DOS提示窗口時(shí),就建立了一個(gè)虛擬8086模式的會(huì)話。和真正的MS-DOS不一樣,MS-DOS一次只能運(yùn)行

9、一個(gè)任務(wù),其他任務(wù)都在睡眠,而在Windows中,每個(gè)任務(wù)都可以得到一個(gè)CPU的時(shí)間片段,所以許多任務(wù)都可以同時(shí)保持活躍,這是因?yàn)楸Wo(hù)模式支持多任務(wù)。一個(gè)虛擬8086會(huì)話窗口完全模擬了一個(gè)8086環(huán)境,每一個(gè)虛擬機(jī)器都有其自己的l M B地址空間、實(shí)際硬件BIOS程序的映像、所有各寄存器的仿真以及其他能在實(shí)模式中找到的特性,除了速度更快以外。Intel的三個(gè)模式中實(shí)模式和虛擬8086模式都是為了兼容以前的版本而設(shè)計(jì)的,因?yàn)橄蚯凹嫒莶攀沟?Intel現(xiàn)在的CPU設(shè)計(jì)的比較復(fù)雜,但其最重要的模式是保護(hù)模式,它是現(xiàn)在計(jì)算機(jī)能夠極大方便人們生活的基石。Intel統(tǒng)治PC的CPU市場(chǎng),而ARM CPU則

10、統(tǒng)治著嵌入式設(shè)備, 全球 95% 以上的手機(jī)以及超過(guò)四分之一的電子設(shè)備都在使用 ARM 技術(shù)。 ARM處理器作為廣泛應(yīng)用的嵌入式處理器,有其獨(dú)特的體系結(jié)構(gòu)。ARM CPU有兩種工作狀態(tài),分為ARM狀態(tài)和THUMB狀態(tài)。在ARM狀態(tài)下執(zhí)行的是32位字對(duì)齊的ARM指令。在THUMB狀態(tài)下執(zhí)行的是執(zhí)行16位半字對(duì)齊的THUMB指令。在這種狀態(tài)下,PC寄存器的第1位來(lái)選擇一個(gè)字中的哪一半。THUMB狀態(tài)下有著更高的代碼密度,在不需要32位運(yùn)算場(chǎng)合時(shí),使用THUMB指令可以有更好的效率,但THUMB不是一個(gè)完整的體系,只支持一般的功能,無(wú)法支持全部功能,高級(jí)功能必須要靠ARM來(lái)實(shí)現(xiàn)。ARM有七種處理器的

11、運(yùn)行模式,分為兩大類:用戶模式和特權(quán)模式。ARM CPU工作狀態(tài)的轉(zhuǎn)換并不影響CPU的運(yùn)行模式。用戶模式 大多數(shù)的用戶程序運(yùn)行在用戶模式下,這時(shí),應(yīng)用程序不能訪問(wèn)一些受操作系統(tǒng)保護(hù)的資源,例如一些特殊的寄存器。在用戶模式,應(yīng)用程序不能直接切換處理器模式。如果要進(jìn)行模式切換,則必須產(chǎn)生中斷才可以。產(chǎn)生中斷后就進(jìn)入了特權(quán)模式。特權(quán)模式 特權(quán)模式包括除用戶模式之外的其他六種模式:快速中斷模式、中斷模式、超級(jí)用戶模式、中止模式、系統(tǒng)模式和未定義模式。其中除系統(tǒng)模式之外的其他特權(quán)模式又叫異常模式。在每一種異常模式下都有一組寄存器,供相應(yīng)的異常處理程序使用,這樣就可以保證在進(jìn)入異常模式時(shí),用戶模式下的寄存

12、器不被破壞。在特權(quán)模式下,程序可以訪問(wèn)系統(tǒng)的所有資源,也可以任意的對(duì)運(yùn)行模式進(jìn)行切換。每一個(gè)模式都有其特殊用途。快速中斷模式 當(dāng)一個(gè)高優(yōu)先級(jí)的中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這個(gè)模式。這個(gè)模式是用來(lái)支持高速數(shù)據(jù)傳輸或通道處理而設(shè)計(jì)的??焖僦袛嗑哂休^高的中斷優(yōu)先級(jí),進(jìn)入這個(gè)模式后必須盡快處理中斷事件并離開(kāi)這個(gè)模式??焖僦袛嗟目焖袤w現(xiàn)在:一是快速中斷位于中斷向量表的最后,因此可緊接異常向量表書(shū)寫(xiě)快中斷處理程序,而不必進(jìn)行程序跳轉(zhuǎn)操作,避免了刷新指令流水線和高速緩存。二是快速中斷有著足夠的私有寄存器,從而可以減少了由于上下文切換造成的寄存器數(shù)據(jù)的保存和恢復(fù)工作而帶來(lái)了額外開(kāi)銷。中斷模式 當(dāng)一個(gè)低優(yōu)先級(jí)的中斷產(chǎn)生時(shí)

13、就會(huì)進(jìn)入這個(gè)模式,這些中斷都要比快速中斷的優(yōu)先級(jí)低,當(dāng)一個(gè)快速中斷序列進(jìn)入時(shí)它將被屏蔽。所以這個(gè)模式只是進(jìn)行普通的中斷處理。系統(tǒng)的外設(shè)可以通過(guò)中斷進(jìn)入這個(gè)模式來(lái)請(qǐng)求服務(wù)。超級(jí)用戶模式 當(dāng)復(fù)位或軟中斷指令執(zhí)行時(shí)就會(huì)進(jìn)入這個(gè)模式,通常用于請(qǐng)求執(zhí)行特定的管理功能,是操作系統(tǒng)使用的一種保護(hù)模式。軟中斷是用戶模式中的程序用來(lái)調(diào)用特權(quán)操作指令,實(shí)現(xiàn)系統(tǒng)功能調(diào)用,它是通訊進(jìn)程之間用來(lái)模擬硬件中斷的一種信號(hào)通訊方式,中斷源發(fā)中斷請(qǐng)求或軟中斷信號(hào)后,CPU或接收進(jìn)程在適當(dāng)?shù)臅r(shí)機(jī)自動(dòng)進(jìn)行中斷處理或完成軟中斷信號(hào)對(duì)應(yīng)的功能。中止模式 當(dāng)存取出現(xiàn)異常時(shí)就會(huì)進(jìn)入這個(gè)模式,產(chǎn)生中止異常就意味著對(duì)存儲(chǔ)器的訪問(wèn)失敗。中止異常

14、包括兩種類型,一種是發(fā)生在指令預(yù)取時(shí)的指令預(yù)取中止,另一種是發(fā)生在數(shù)據(jù)訪問(wèn)時(shí)的數(shù)據(jù)中止。若處理器的預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn),存儲(chǔ)器會(huì)向處理器發(fā)出中止信號(hào),所取得的指令將會(huì)被標(biāo)記為無(wú)效,但是異常不會(huì)立即發(fā)生,只有當(dāng)處理器試圖執(zhí)行無(wú)效指令時(shí),指令預(yù)取中止異常才會(huì)發(fā)生。如果在無(wú)效指令執(zhí)行前發(fā)生分支跳轉(zhuǎn),那么異常就不會(huì)發(fā)生。若處理器數(shù)據(jù)訪問(wèn)指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn)時(shí),產(chǎn)生數(shù)據(jù)中止異常。中止機(jī)制使得頁(yè)面虛擬存儲(chǔ)器機(jī)制得以實(shí)現(xiàn)。在采用虛擬存儲(chǔ)器的系統(tǒng)中,處理器可以產(chǎn)生任意的地址。當(dāng)某個(gè)地址的數(shù)據(jù)無(wú)效時(shí),MMU將產(chǎn)生一個(gè)中止信號(hào)。這樣中止異常的處理程序就必須找出異常中斷的原因,使要求的數(shù)據(jù)可用,并重新執(zhí)行被中止掉的指令。應(yīng)用程序也就不需要了解實(shí)際可用存儲(chǔ)空間的大小,也不需要了解異常中斷對(duì)它的影響。未定義模式 當(dāng)產(chǎn)生一個(gè)未定義指令異常時(shí),就會(huì)進(jìn)入這個(gè)模式。若ARM處理器不認(rèn)識(shí)當(dāng)前指令,則將該指令發(fā)送到協(xié)處理器;若所有的協(xié)處理器都不認(rèn)識(shí)該指令,則產(chǎn)生未定義指令異常中斷。該異常中斷處理程序就是用軟件仿真系統(tǒng)中某些部件(協(xié)處理器)的一條指令如仿真浮點(diǎn)運(yùn)算器的某條浮點(diǎn)運(yùn)算指令等。如果不仿真,就直接返回,執(zhí)行下一條指令。采用這種機(jī)制,就可以通過(guò)軟件仿真擴(kuò)展ARM或THUMB指令集。系統(tǒng)模式 這

溫馨提示

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