欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種高性能微處理器寄存器及其內(nèi)存地址彈性保護(hù)方法

文檔序號(hào):6400053閱讀:184來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種高性能微處理器寄存器及其內(nèi)存地址彈性保護(hù)方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種高性能微處理器寄存器及其內(nèi)存地址彈性保護(hù)方法。
背景技術(shù)
處理器是當(dāng)代計(jì)算機(jī)工業(yè)的核心。處理器大致分為兩類(lèi):精簡(jiǎn)指令集處理器和復(fù)雜指令集處理器。在高性能處理平臺(tái)中,精簡(jiǎn)指令集處理器被廣泛使用,如:PAD,高性能服務(wù)器,桌面平臺(tái),嵌入式平臺(tái)等;然而,復(fù)雜指令集處理器的使用卻相對(duì)較少,一般只用于低性能服務(wù)器和桌面平臺(tái)等。其主要原因是:精簡(jiǎn)指令集處理器指令長(zhǎng)度不變,指令格式少,寄存器數(shù)目多,指令數(shù)目少,更能使處理器處理流水化。具有設(shè)計(jì)簡(jiǎn)單、效率高、容易測(cè)試、成品率高等特點(diǎn)。因此,如何研發(fā)出具有完全自主核心知識(shí)產(chǎn)權(quán)的高性能精簡(jiǎn)指令集處理器,已成為計(jì)算機(jī)工業(yè)設(shè)計(jì)研究中的重要課題。目前,計(jì)算機(jī)操作系統(tǒng)的內(nèi)核主要放在內(nèi)存的低地址區(qū)間中(只有極少數(shù)的處理器把內(nèi)核放在內(nèi)存的高地址),接著放操作系統(tǒng)處理異常中斷的程序,再接著放為應(yīng)用程序提供服務(wù)的程序,應(yīng)用程序放在最后。為了防止應(yīng)用程序的非法訪(fǎng)問(wèn),目前,主流的處理器主要用以下方法實(shí)現(xiàn):
(1)把計(jì)算機(jī)的內(nèi)存固定分成一定長(zhǎng)度的段,應(yīng)用程序和操作系統(tǒng)內(nèi)核放在規(guī)定的內(nèi)存區(qū)間內(nèi),以防止用戶(hù)程序的非法訪(fǎng)問(wèn);
(2)處理器通過(guò)檢查程序的長(zhǎng)度,特權(quán)級(jí)和讀寫(xiě)執(zhí)行等屬性以防止用戶(hù)程序的非法訪(fǎng)
問(wèn);
(3)操作系統(tǒng)通過(guò)檢查程序的長(zhǎng)度,特權(quán)級(jí)和讀寫(xiě)執(zhí)行等屬性以防止用戶(hù)程序的非法訪(fǎng)問(wèn)?,F(xiàn)有的計(jì)算機(jī)內(nèi)存地址的保護(hù)方法存在以下不足:
O當(dāng)計(jì)算機(jī)的內(nèi)存很小(如roD、嵌入式平臺(tái)中)時(shí),如果固定長(zhǎng)度的內(nèi)存很大,供應(yīng)用程序使用的內(nèi)存就會(huì)很小,會(huì)造成寶貴的內(nèi)存資源浪費(fèi),造成內(nèi)存沒(méi)有被合理的使用;
2)當(dāng)計(jì)算機(jī)的內(nèi)存很大(如在高性能的服務(wù)器中、大型計(jì)算機(jī)中),并且其操作系統(tǒng)內(nèi)核也很大時(shí),會(huì)造成操作系統(tǒng)內(nèi)核不能完全被處理器內(nèi)核保護(hù)的情況;
3)如果應(yīng)用程序利用操作系統(tǒng)的漏洞,篡改程序?qū)傩?在分段操作系統(tǒng),分頁(yè)操作系統(tǒng)中分別更改段屬性,頁(yè)屬性等),使程序得到非法權(quán)限。

發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的在于克服現(xiàn)有技術(shù)的不足,提供一種高性能微處理器,在不改變指令集的前提下可輕易升級(jí),采用淺流水線(xiàn)設(shè)計(jì)和精簡(jiǎn)流水線(xiàn)架構(gòu),靜態(tài)分支預(yù)測(cè),動(dòng)態(tài)分支預(yù)測(cè),能夠更好地減少每條指令執(zhí)行的時(shí)間,同時(shí)支持多發(fā)多射,減少處理器從內(nèi)存里查找數(shù)據(jù)所用的時(shí)間;
本發(fā)明的另一個(gè)目的在于提供一種高性能微處理器寄存器的內(nèi)存地址彈性保護(hù)方法,克服傳統(tǒng)處理器通過(guò)軟件保護(hù)和固定分段保護(hù)來(lái)防止應(yīng)用程序非法訪(fǎng)問(wèn)的不足,可有效防止應(yīng)用程序的非法訪(fǎng)問(wèn)。本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的:一種高性能微處理器寄存器,它包括:
永遠(yuǎn)為O的O號(hào)寄存器;
用作累加器的I 8號(hào)寄存器;
用作乘法時(shí)的高位,除法指令的商的9號(hào)寄存器;
用作乘法時(shí)的低位,除法指令的模的10號(hào)寄存器;
用作返回用戶(hù)模式時(shí)的指針、頁(yè)的11、12號(hào)寄存器;
用作處理器在用戶(hù)模式時(shí)的指令指針、頁(yè)的13、14號(hào)寄存器;
用作處理器在特權(quán)模式時(shí)的指令指針、頁(yè)的15、16號(hào)寄存器;
用作處理器在中斷模式時(shí)的指令指針、頁(yè)的17、18號(hào)寄存器,其頁(yè)只有處理器在kenmode和int mode下才被數(shù)據(jù)移動(dòng)指令賦值,如果處理器在soft mode和urs mode,則不能賦值并產(chǎn)生異常;
用作軟件模式的指令指針、頁(yè)的19、20號(hào)寄存器,其頁(yè)只有處理器在ken mode、intmode和soft mode下才被數(shù)據(jù)移動(dòng)指令賦值,如果處理器在urs mode,則不能賦值并產(chǎn)生
異常;
用作堆棧指針、頁(yè)的21、22號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁(yè)寄存器的指針、頁(yè)的23、24號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁(yè)寄存器的指針、頁(yè)的25、26號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁(yè)寄存器的指針、頁(yè)的27、28號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁(yè)寄存器的指針、頁(yè)的29、30號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常;
用作狀態(tài)寄存器的31號(hào)寄存器;
用作頁(yè)目錄寄存器的32號(hào)寄存器,保存虛擬地址轉(zhuǎn)換式的頁(yè)目錄低20位有效,高12位強(qiáng)制為0,否則在以后的產(chǎn)品中產(chǎn)生不可預(yù)知的錯(cuò)誤異常;
用作定時(shí)器timer的33 36號(hào)寄存器,當(dāng)timer使能后,處理器每經(jīng)過(guò)一個(gè)時(shí)鐘寄存器的值加I,溢出時(shí)產(chǎn)生異常;
分別用作kenend、intend和softend寄存器的37 39號(hào)寄存器,在計(jì)算機(jī)的內(nèi)存不大于4GB,在頁(yè)大小為4kb時(shí)低20位有效,高12位必須為0,否則產(chǎn)生指令錯(cuò)誤異常;
用作異常中斷寄存器的40號(hào)寄存器,15位為I開(kāi)啟中斷,反之不開(kāi)啟;16位為I開(kāi)啟異常,反之不開(kāi)啟;
用作頁(yè)異常線(xiàn)性地址的41號(hào)寄存器;
用作多任務(wù)模式下的頁(yè)開(kāi)始、結(jié)束位置的42、43號(hào)寄存器,當(dāng)操作系統(tǒng)開(kāi)啟多任務(wù)保護(hù)模式,當(dāng)用戶(hù)頁(yè)的值在42、43號(hào)寄存器值之外時(shí),處理器產(chǎn)生出界異常;
用作虛擬模式下的頁(yè)開(kāi)始、結(jié)束位置的44、45號(hào)寄存器,O號(hào)版本的內(nèi)核暫時(shí)保留;用作tlb入口的46 50號(hào)寄存器,該寄存器的21,22,23位的值是000,001,010,011,100,101,110,111,其中,011,100,101,110保留,供處理器架構(gòu)升級(jí)用,000作為O級(jí)cache的地址使用,001作為I級(jí)cache的地址使用,010作為2級(jí)cache的地址使用,111作為處理器的全局地址,供io輸入輸出塊使用,高9位是處理器的處理核心號(hào)碼,供處理器升級(jí)成多核心時(shí)使用,在操作系統(tǒng)為單核心時(shí)強(qiáng)制為0,低20位是cache的塊號(hào);
用作內(nèi)部dma的51 53號(hào)寄存器,51號(hào)寄存器為地址的開(kāi)始地址,52號(hào)寄存器為地址結(jié)束處(都是塊號(hào));
53號(hào)寄存器保留;
54號(hào)寄存器保留;
用作分頁(yè)模式下的局部地址轉(zhuǎn)換的奇54、55號(hào)寄存器;
57 60 號(hào)寄存器分別作為 config0、configl、config2、config3,其中,對(duì)于 configO,25號(hào)寄存器低4位分別使能0,1,2,3號(hào)時(shí)鐘,第4位為I開(kāi)啟分頁(yè)機(jī)制,為O時(shí)開(kāi)啟分頁(yè)碼機(jī)制,第5位多任務(wù)保護(hù)模式,操作系統(tǒng)檢查當(dāng)前usr mode的指令頁(yè)碼的范圍是否在42、43號(hào)寄存器之內(nèi),不在其內(nèi),貝1J產(chǎn)生異常;其它位保留,configl、config2、config3分別保留;分別用作trp、trpp寄存器的61、62號(hào)寄存器,在任務(wù)切換時(shí),61、62號(hào)寄存器的值無(wú)需保存,其每行的數(shù)據(jù)長(zhǎng)度為32位,在任務(wù)切換時(shí)把寄存器的值放在里面,執(zhí)行該任務(wù)時(shí)將數(shù)據(jù)取出;
63號(hào)寄存器cpu屬性如下:
處理器核心數(shù) 9bit31,23
處理器當(dāng)前核心號(hào)9bit22,14
處理器的位數(shù) 3bit2,0
其它位保留;
其中,32 63號(hào)寄存器的值只有運(yùn)行在ker mode, int mode和soft mode才能被賦值。一種高性能微處理器寄存器的內(nèi)存地址彈性保護(hù)方法,它包括以下步驟:
51:操作系統(tǒng)通過(guò)賦值37、38、39號(hào)寄存器,分配處理器在各種模式下的內(nèi)存區(qū)間;
52:處理器檢查14號(hào)寄存器的內(nèi)容是否在39號(hào)寄存器中頁(yè)值之內(nèi),如果在其范圍之內(nèi),則產(chǎn)生異常,如果不在其范圍之內(nèi),則不產(chǎn)生異常;
53:處理器檢查16號(hào)寄存器的頁(yè)碼是否在O號(hào)到37號(hào)寄存器頁(yè)碼范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常;
54:處理器檢查18號(hào)寄存器的頁(yè)碼是否在37號(hào)寄存器和38號(hào)寄存器范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常;
55:處理器檢查20號(hào)寄存器的內(nèi)容是否在38號(hào)寄存器和39號(hào)寄存器中頁(yè)值之內(nèi),如果在其范圍之外,則產(chǎn)生異常;
56:處理器把異常號(hào)送到異常中斷寄存器中,并且進(jìn)入int mode,當(dāng)前處理器的指令頁(yè)是18寄存器,指令指針是17號(hào)寄存器,處理器通過(guò)執(zhí)行操作系統(tǒng)的異常中斷處理程序,從而防止應(yīng)用程序的非法訪(fǎng)問(wèn)。本發(fā)明的有益效果是:
I)在不改變指令集的前提下可輕易升級(jí),采用淺流水線(xiàn)設(shè)計(jì)和精簡(jiǎn)流水線(xiàn)架構(gòu),靜態(tài)分支預(yù)測(cè),能夠更好地減少每條指令的時(shí)間,同時(shí)支持多發(fā)多射;
2)指令集采用目前主流的精簡(jiǎn)指令,現(xiàn)大約有60條,本指令集最大可以支持1024條,在處理器的位超過(guò)1024位時(shí),才需要升級(jí);
3)在任務(wù)切換時(shí),61、62號(hào)寄存器的值不需要保存,其每行數(shù)據(jù)的長(zhǎng)度為32位,在任務(wù)切換時(shí)把寄存器的值放在里面,執(zhí)行該任務(wù)時(shí)把數(shù)據(jù)從里面取出,可減少處理器從內(nèi)存里查找數(shù)據(jù)所用的時(shí)間;
4)操作系統(tǒng)通過(guò)數(shù)據(jù)移動(dòng)指令賦值37至39號(hào)寄存器,能更有效地分配計(jì)算機(jī)內(nèi)存空
間;
5)從計(jì)算機(jī)硬件層面保護(hù)了系統(tǒng)資源,克服了傳統(tǒng)處理器通過(guò)軟件保護(hù)和固定分段保護(hù)來(lái)防止應(yīng)用程序非法訪(fǎng)問(wèn)的不足,可有效防止應(yīng)用程序的非法訪(fǎng)問(wèn)。


圖1為內(nèi)存地址彈性保護(hù)方法流程圖。
具體實(shí)施例方式下面結(jié)合附圖進(jìn)一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護(hù)范圍不局限于以下所述。一種高性能微處理器寄存器,其特征在于:它包括:
用于接電源最低電位的永遠(yuǎn)為O的O號(hào)寄存器;
用作累加器的I 8號(hào)寄存器;
用作乘法時(shí)的高位,除法指令的商的9號(hào)寄存器;
用作乘法時(shí)的低位,除法指令的模的10號(hào)寄存器;
用作返回用戶(hù)模式時(shí)的指針、頁(yè)的11、12號(hào)寄存器;
用作處理器在用戶(hù)模式時(shí)的指令指針、頁(yè)的13、14號(hào)寄存器;
用作處理器在特權(quán)模式時(shí)的指令指針、頁(yè)的15、16號(hào)寄存器;
用作處理器在中斷模式時(shí)的指令指針、頁(yè)的17、18號(hào)寄存器,其頁(yè)只有處理器在kermode和int mode下才被數(shù)據(jù)移動(dòng)指令賦值,如果處理器在soft mode和urs mode,則不能賦值并產(chǎn)生異常;
用作軟件模式的指令指針、頁(yè)的19、20號(hào)寄存器,其頁(yè)只有處理器在ker mode、intmode和soft mode下才被數(shù)據(jù)移動(dòng)指令賦值,如果處理器在urs mode,則不能賦值并產(chǎn)生
異常;
用作堆棧指針、頁(yè)的21、22號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁(yè)寄存器的指針、頁(yè)的23、24號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁(yè)寄存器的指針、頁(yè)的25、26號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁(yè)寄存器的指針、頁(yè)的27、28號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常;用作頁(yè)寄存器的指針、頁(yè)的29、30號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常;
用作狀態(tài)寄存器的31號(hào)寄存器;
用作頁(yè)目錄寄存器的32號(hào)寄存器,保存虛擬地址轉(zhuǎn)換式的頁(yè)目錄低20位有效,高12位強(qiáng)制為0,否則在以后的產(chǎn)品中產(chǎn)生不可預(yù)知的錯(cuò)誤異常;
用作定時(shí)器(timer)的33 36號(hào)寄存器,當(dāng)timer使能后,處理器每經(jīng)過(guò)一個(gè)時(shí)鐘寄存器的值加I,溢出時(shí)產(chǎn)生異常;
分別用作kenend、intend和softend寄存器的37 39號(hào)寄存器,在計(jì)算機(jī)的內(nèi)存不大于4GB,在頁(yè)大小為4kb時(shí)低20位有效,高12位必須為0,否則產(chǎn)生指令錯(cuò)誤異常;
用作異常中斷寄存器的40號(hào)寄存器,15位為I開(kāi)啟中斷,反之不開(kāi)啟;16位為I開(kāi)啟異常,反之不開(kāi)啟;
用作頁(yè)異常線(xiàn)性地址的41號(hào)寄存器;
用作多任務(wù)模式下的頁(yè)開(kāi)始、結(jié)束位置的42、43號(hào)寄存器,當(dāng)操作系統(tǒng)開(kāi)啟了多任務(wù)保護(hù)模式,當(dāng)用戶(hù)頁(yè)的值在42、43號(hào)寄存器值之外時(shí),處理器產(chǎn)生出界異常;
用作虛擬模式下的頁(yè)開(kāi)始、結(jié)束位置的44、45號(hào)寄存器,O號(hào)版本的內(nèi)核暫時(shí)保留;用作tlb入口的46 50號(hào)寄存器,該寄存器的21,22,23位的值是000,001,010,011,100,101,110,111,其中,011,100,101,110保留,供處理器架構(gòu)升級(jí)用,000作為O級(jí)cache的地址使用,001作為I級(jí)cache的地址使用,010作為2級(jí)cache的地址使用,111作為處理器的全局地址,供io輸入輸出塊使用,高9位是處理器的處理核心號(hào)碼,供處理器升級(jí)成多核心時(shí)使用,在操作系統(tǒng)為單核心時(shí)強(qiáng)制為0,低20位是cache的塊號(hào);
用作內(nèi)部dma的51 53 號(hào)寄存器,51號(hào)寄存器為地址的開(kāi)始地址,52號(hào)寄存器為地址結(jié)束處(都是塊號(hào));
53號(hào)寄存器保留;
54號(hào)寄存器保留;
用作分頁(yè)模式下的局部地址轉(zhuǎn)換的奇54、55號(hào)寄存器;
57 60 號(hào)寄存器分別作為 config0、configl、config2、config3,其中,對(duì)于 configO,25號(hào)寄存器低4位分別使能0,1,2,3號(hào)時(shí)鐘,第4位為I開(kāi)啟分頁(yè)機(jī)制,為O時(shí)開(kāi)啟分頁(yè)碼機(jī)制,第5位多任務(wù)保護(hù)模式,操作系統(tǒng)檢查當(dāng)前usr mode的指令頁(yè)碼的范圍是不是在42,43號(hào)寄存器之內(nèi),不在其內(nèi),則產(chǎn)生異常;其它位保留,configl、Config2、Config3分別保留;
分別用作trp、trpp寄存器的61、62號(hào)寄存器,在任務(wù)切換時(shí),61、62號(hào)寄存器的值無(wú)需保存,其每行的數(shù)據(jù)長(zhǎng)度為32位,在任務(wù)切換時(shí)把寄存器的值放在里面,執(zhí)行該任務(wù)時(shí)將數(shù)據(jù)取出;
63號(hào)寄存器cpu屬性如下:
處理器核心數(shù) 9bit31,23
處理器當(dāng)前核心號(hào)9bit22,14
處理器的位數(shù) 3bit2,0
其它位保留;
其中,32 63號(hào)寄存器的值只有運(yùn)行在特權(quán)模式下才能被賦值。37 39號(hào)寄存器只有在ken mode下才能被賦值,其他mode賦值產(chǎn)生異常。指令集手冊(cè): mov指令
mov,其為數(shù)據(jù)移動(dòng)指令,該指令可以分成兩類(lèi):立即數(shù)移動(dòng)指令;寄存器間移動(dòng)指令。(I)立即數(shù)移動(dòng)指令可以分成有符號(hào)立即數(shù)移動(dòng)指令,無(wú)符號(hào)立即數(shù)移動(dòng)指令:
A:有符號(hào)立即數(shù)移動(dòng)指令
源操作數(shù)目的操作數(shù)(該處是目的寄存器)
movsb立即數(shù), %n8位有符號(hào)移動(dòng)指令
mo V sw立即數(shù), %n16位有符號(hào)移動(dòng)指令
movsd立即數(shù), %n32位有符號(hào)移動(dòng)指令
movsl立即數(shù), %n64位有符號(hào)移動(dòng)指令(在32位處理器中保
留)
B:無(wú)符號(hào)立即數(shù)移動(dòng)指令
源操作數(shù)目的操作數(shù)(該處是目的寄存器)
movb立即數(shù), %n8位有符號(hào)移動(dòng)指令
movw立即數(shù), %n16位有符號(hào)移動(dòng)指令
movd立即數(shù), %n32位有符號(hào)移動(dòng)指令
movl立即數(shù), %n64位有符號(hào)移動(dòng)指令(在32位處理器中保留)
C:寄存器間移動(dòng)指令: mov %n,%m (把源操作數(shù)所在的寄存器%n,送到目的操作數(shù)所在寄存器%m)
(2)特殊指令
指令注釋·
bck源操作數(shù)為11號(hào)寄存器,目的操作數(shù)為12號(hào)寄存器,返回用戶(hù)模式,在
跳轉(zhuǎn)指令時(shí),把用戶(hù)模式的指針,頁(yè)放入對(duì)應(yīng)的寄存器。usr無(wú)源目的操作數(shù),處理器進(jìn)入用戶(hù)模式。ken無(wú)源目的操作數(shù),處理器進(jìn)入核心模式。int無(wú)源目的操作數(shù),處理器進(jìn)入中斷模式。saft無(wú)源目的操作數(shù),處理器進(jìn)入軟件模式。pop從堆棧頁(yè)中彈出數(shù)據(jù)指令,彈出,壓人的數(shù)據(jù)長(zhǎng)度為處理器的位數(shù)。push把寄存器中的數(shù)據(jù)壓人堆棧中,彈出,壓人的數(shù)據(jù)長(zhǎng)度為處理器的位數(shù)。set置位命令,把目的操作數(shù)的(源操作數(shù)位)置I。clr清位命令,把目的操作數(shù)的(源操作數(shù)位)置O。tst測(cè)試命令,測(cè)試目的操作數(shù)的(源操作數(shù)位)位,結(jié)果放入(31號(hào)寄存器)狀態(tài)寄存器的27位。m3232位無(wú)符號(hào)數(shù)乘法指令,結(jié)果放到,低位放到10號(hào)寄存器,高位放到9號(hào)寄存器中。sm3232位有符號(hào)數(shù)乘法指令,結(jié)果放到,低位放到10號(hào)寄存器,高位放到9號(hào)寄存器中。d3232位無(wú)符號(hào)數(shù)除法指令,結(jié)果放到,結(jié)果放到9號(hào)寄存器,模放到10號(hào)寄
存器中。Sd3232位有符號(hào)數(shù)乘法指令,結(jié)果放到,結(jié)果放到9號(hào)寄存器,模放到10
號(hào)寄存器中。rstrest (只有處理器處在ken mode,才能執(zhí)行,否則產(chǎn)生異常)。如圖1所示,一種高性能微處理器寄存器的內(nèi)存地址彈性保護(hù)方法,它包括以下步驟:
51:操作系統(tǒng)通過(guò)賦值37、38、39號(hào)寄存器,分配處理器在各種模式下的內(nèi)存區(qū)間;
52:處理器檢查14號(hào)寄存器的內(nèi)容是否在39號(hào)寄存器中頁(yè)值之內(nèi),如果在其范圍之內(nèi),則產(chǎn)生異常,如果不在其范圍之內(nèi),則不產(chǎn)生異常;
53:處理器檢查16號(hào)寄存器的頁(yè)碼是否在O號(hào)到37號(hào)寄存器頁(yè)碼范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常;
54:處理器檢查18號(hào)寄存器的頁(yè)碼是否在37號(hào)寄存器和38號(hào)寄存器范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常; 55:處理器檢查20號(hào)寄存器的內(nèi)容是否在38號(hào)寄存器和39號(hào)寄存器中頁(yè)值之內(nèi),如果在其范圍之外,則產(chǎn)生異常;
56:處理器把異常號(hào)送到異常中斷寄存器(40號(hào)寄存器)中,并且進(jìn)入int mode,當(dāng)前處理器的指令頁(yè)是18寄存器,指令指針是17號(hào)寄存器,處理器通過(guò)執(zhí)行操作系統(tǒng)的異常中斷處理程序,從而防止應(yīng)用程序的非法訪(fǎng)問(wèn)。
權(quán)利要求
1.一種高性能微處理器寄存器,其特征在于:它包括: 永遠(yuǎn)為O的O號(hào)寄存器; 用作累加器的1 8號(hào)寄存器; 用作乘法時(shí)的高位,除法指令的商的9號(hào)寄存器; 用作乘法時(shí)的低位,除法指令的模的10號(hào)寄存器; 用作返回用戶(hù)模式時(shí)的指針、頁(yè)的11、12號(hào)寄存器; 用作處理器在用戶(hù)模式時(shí)的指令指針、頁(yè)的13、14號(hào)寄存器; 用作處理器在特權(quán)模式時(shí)的指令指針、頁(yè)的15、16號(hào)寄存器; 用作處理器在中斷模式時(shí)的指令指針、頁(yè)的17、18號(hào)寄存器,其頁(yè)只有處理器在kenmode和int mode下才被數(shù)據(jù)移動(dòng)指令賦值,如果處理器在soft mode和urs mode,則不能賦值并產(chǎn)生異常; 用作軟件模式的指令指針、頁(yè)的19、20號(hào)寄存器,其頁(yè)只有處理器在ken mode、intmode和soft mode下才被數(shù)據(jù)移動(dòng)指令賦值,如果處理器在urs mode,則不能賦值并產(chǎn)生異常; 用作堆棧指針、頁(yè)的21、22號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常; 用作頁(yè)寄存器的指針、頁(yè)的23、24號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常; 用作頁(yè)寄存器的指針、頁(yè)的25、26號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常; 用作頁(yè)寄存器的指針、頁(yè)的27、28號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常; 用作頁(yè)寄存器的指針、頁(yè)的29、30號(hào)寄存器,當(dāng)給其控制的O級(jí)cache賦值時(shí),檢查其特權(quán)級(jí),當(dāng)特權(quán)級(jí)值小于等于它才被賦值,否則產(chǎn)生異常; 用作狀態(tài)寄存器的31號(hào)寄存器; 用作頁(yè)目錄寄存器的32號(hào)寄存器,保存虛擬地址轉(zhuǎn)換式的頁(yè)目錄低20位有效,高12位強(qiáng)制為0,否則在以后的產(chǎn)品中產(chǎn)生不可預(yù)知的錯(cuò)誤異常; 用作定時(shí)器timer的33 36號(hào)寄存器,當(dāng)timer使能后,處理器每經(jīng)過(guò)一個(gè)時(shí)鐘寄存器的值加1,溢出時(shí)產(chǎn)生異常; 分別用作kenend、intend和softend寄存器的37 39號(hào)寄存器,在計(jì)算機(jī)的內(nèi)存不大于4GB,在頁(yè)大小為4kb時(shí)低20位有效,高12位必須為0,否則產(chǎn)生指令錯(cuò)誤異常; 用作異常中斷寄存器的40號(hào)寄存器,15位為I開(kāi)啟中斷,反之不開(kāi)啟;16位為I開(kāi)啟異常,反之不開(kāi)啟; 用作頁(yè)異常線(xiàn)性地址的41號(hào)寄存器; 用作多任務(wù)模式下的頁(yè)開(kāi)始、結(jié)束位置的42、43號(hào)寄存器,當(dāng)操作系統(tǒng)開(kāi)啟多任務(wù)保護(hù)模式,當(dāng)用戶(hù)頁(yè)的值在42、43號(hào)寄存器值之外時(shí),處理器產(chǎn)生出界異常; 用作虛擬模式下的頁(yè)開(kāi)始、結(jié)束位置的44、45號(hào)寄存器,O號(hào)版本的內(nèi)核暫時(shí)保留;用作tlb入口的46 50號(hào)寄存器,該寄存器的21,22,23位的值是000,001,010,011,.100,101,110,111,其中,011,100,101,110保留,供處理器架構(gòu)升級(jí)用,000作為O級(jí)cache的地址使用,001作為I級(jí)cache的地址使用,010作為2級(jí)cache的地址使用,111作為處理器的全局地址,供io輸入輸出塊使用,高9位是處理器的處理核心號(hào)碼,供處理器升級(jí)成多核心時(shí)使用,在操作系統(tǒng)為單核心時(shí)強(qiáng)制為0,低20位是cache的塊號(hào); 用作內(nèi)部dma的51 53號(hào)寄存器,51號(hào)寄存器為地址的開(kāi)始地址,52號(hào)寄存器為地址結(jié)束處;. 53號(hào)寄存器保留;. 54號(hào)寄存器保留; 用作分頁(yè)模式下的局部地址轉(zhuǎn)換的奇54、55號(hào)寄存器; . 57 60 號(hào)寄存器分別作為 config0、configl、config2、config3,其中,對(duì)于 configO,25號(hào)寄存器低4位分別使能0,1,2,3號(hào)時(shí)鐘,第4位為I開(kāi)啟分頁(yè)機(jī)制,為O時(shí)開(kāi)啟分頁(yè)碼機(jī)制,第5位多任務(wù)保護(hù)模式,操作系統(tǒng)檢查當(dāng)前usr mode的指令頁(yè)碼的范圍是否在42、43號(hào)寄存器之內(nèi),不在其內(nèi),貝1J產(chǎn)生異常;其它位保留,configl、config2、config3分別保留;分別用作trp、trpp寄存器的61、62號(hào)寄存器,在任務(wù)切換時(shí),61、62號(hào)寄存器的值無(wú)需保存,其每行的數(shù)據(jù)長(zhǎng)度為32 位,在任務(wù)切換時(shí)把寄存器的值放在里面,執(zhí)行該任務(wù)時(shí)將數(shù)據(jù)取出;. 63號(hào)寄存器cpu屬性如下: 處理器核心數(shù) 9bit31,23
處理器當(dāng)前核心號(hào)9bit22,14
處理器的位數(shù) 3bit2,0
其它位保留; 其中,32 63號(hào)寄存器的值只有運(yùn)行在ker mode, int mode和soft mode才能被賦值。
2.一種高性能微處理器寄存器的內(nèi)存地址彈性保護(hù)方法,其特征在于,它包括以下步驟: . 51:操作系統(tǒng)通過(guò)賦值37、38、39號(hào)寄存器,分配處理器在各種模式下的內(nèi)存區(qū)間; . 52:處理器檢查14號(hào)寄存器的內(nèi)容是否在39號(hào)寄存器中頁(yè)值之內(nèi),如果在其范圍之內(nèi),則產(chǎn)生異常,如果不在其范圍之內(nèi),則不產(chǎn)生異常;. 53:處理器檢查16號(hào)寄存器的頁(yè)碼是否在O號(hào)到37號(hào)寄存器頁(yè)碼范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常; 54:處理器檢查18號(hào)寄存器的頁(yè)碼是否在37號(hào)寄存器和38號(hào)寄存器范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常; 55:處理器檢查20號(hào)寄存器的內(nèi)容是否在38號(hào)寄存器和39號(hào)寄存器中頁(yè)值之內(nèi),如果在其范圍之外,則產(chǎn)生異常; 56:處理器把異常號(hào)送到異常中斷寄存器中,并且進(jìn)入int mode,當(dāng)前處理器的指令頁(yè)是18寄存器,指令指針是17號(hào)寄存器,處理器通過(guò)執(zhí)行操作系統(tǒng)的異常中斷處理程序,從而防止應(yīng)用程序的非法訪(fǎng)問(wèn)。
全文摘要
本發(fā)明公開(kāi)了一種高性能微處理器寄存器及其內(nèi)存地址彈性保護(hù)方法,方法包括賦值37、38、39號(hào)寄存器,分配內(nèi)存區(qū)間;檢查14號(hào)寄存器的內(nèi)容是否在39號(hào)中頁(yè)值之內(nèi);檢查16號(hào)寄存器的頁(yè)碼是否在0號(hào)到37號(hào)頁(yè)碼范圍中;檢查18號(hào)寄存器的頁(yè)碼是否在37、38號(hào)范圍中;檢查20號(hào)寄存器的內(nèi)容是否在38、39號(hào)中頁(yè)值之內(nèi);處理器把異常號(hào)送到異常中斷寄存器中,當(dāng)前處理器的指令頁(yè)是18號(hào),指令指針是17號(hào),處理器通過(guò)執(zhí)行操作系統(tǒng)的異常中斷處理程序。本發(fā)明在不改變指令集的前提下可輕易升級(jí),采用淺流水線(xiàn)設(shè)計(jì)和精簡(jiǎn)流水線(xiàn)架構(gòu),能夠更好地減少每條指令的時(shí)間,同時(shí)支持多發(fā)多射,提高處理器運(yùn)算速度,有效地分配內(nèi)存空間,有效防止應(yīng)用程序的非法訪(fǎng)問(wèn)。
文檔編號(hào)G06F9/48GK103150521SQ20131007297
公開(kāi)日2013年6月12日 申請(qǐng)日期2013年3月7日 優(yōu)先權(quán)日2013年3月7日
發(fā)明者周海林 申請(qǐng)人:周海林
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
金华市| 承德县| 新绛县| 石楼县| 肥东县| 木兰县| 辉南县| 泸定县| 滨海县| 达日县| 三明市| 济宁市| 台南县| 侯马市| 广河县| 阳春市| 肇庆市| 临汾市| 衡南县| 融水| 黄石市| 印江| 师宗县| 惠安县| 阿城市| 石家庄市| 微山县| 邵武市| 石狮市| 昂仁县| 天水市| 阿拉善右旗| 济宁市| 云龙县| 吉水县| 尖扎县| 清丰县| 徐州市| 扎鲁特旗| 四平市| 华蓥市|