專利名稱:一種高性能微處理器寄存器及其內(nèi)存地址彈性保護方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種高性能微處理器寄存器及其內(nèi)存地址彈性保護方法。
背景技術(shù):
處理器是當代計算機工業(yè)的核心。處理器大致分為兩類:精簡指令集處理器和復雜指令集處理器。在高性能處理平臺中,精簡指令集處理器被廣泛使用,如:PAD,高性能服務(wù)器,桌面平臺,嵌入式平臺等;然而,復雜指令集處理器的使用卻相對較少,一般只用于低性能服務(wù)器和桌面平臺等。其主要原因是:精簡指令集處理器指令長度不變,指令格式少,寄存器數(shù)目多,指令數(shù)目少,更能使處理器處理流水化。具有設(shè)計簡單、效率高、容易測試、成品率高等特點。因此,如何研發(fā)出具有完全自主核心知識產(chǎn)權(quán)的高性能精簡指令集處理器,已成為計算機工業(yè)設(shè)計研究中的重要課題。目前,計算機操作系統(tǒng)的內(nèi)核主要放在內(nèi)存的低地址區(qū)間中(只有極少數(shù)的處理器把內(nèi)核放在內(nèi)存的高地址),接著放操作系統(tǒng)處理異常中斷的程序,再接著放為應用程序提供服務(wù)的程序,應用程序放在最后。為了防止應用程序的非法訪問,目前,主流的處理器主要用以下方法實現(xiàn):
(1)把計算機的內(nèi)存固定分成一定長度的段,應用程序和操作系統(tǒng)內(nèi)核放在規(guī)定的內(nèi)存區(qū)間內(nèi),以防止用戶程序的非法訪問;
(2)處理器通過檢查程序的長度,特權(quán)級和讀寫執(zhí)行等屬性以防止用戶程序的非法訪
問;
(3)操作系統(tǒng)通過檢查程序的長度,特權(quán)級和讀寫執(zhí)行等屬性以防止用戶程序的非法訪問?,F(xiàn)有的計算機內(nèi)存地址的保護方法存在以下不足:
O當計算機的內(nèi)存很小(如roD、嵌入式平臺中)時,如果固定長度的內(nèi)存很大,供應用程序使用的內(nèi)存就會很小,會造成寶貴的內(nèi)存資源浪費,造成內(nèi)存沒有被合理的使用;
2)當計算機的內(nèi)存很大(如在高性能的服務(wù)器中、大型計算機中),并且其操作系統(tǒng)內(nèi)核也很大時,會造成操作系統(tǒng)內(nèi)核不能完全被處理器內(nèi)核保護的情況;
3)如果應用程序利用操作系統(tǒng)的漏洞,篡改程序?qū)傩?在分段操作系統(tǒng),分頁操作系統(tǒng)中分別更改段屬性,頁屬性等),使程序得到非法權(quán)限。
發(fā)明內(nèi)容
本發(fā)明的一個目的在于克服現(xiàn)有技術(shù)的不足,提供一種高性能微處理器,在不改變指令集的前提下可輕易升級,采用淺流水線設(shè)計和精簡流水線架構(gòu),靜態(tài)分支預測,動態(tài)分支預測,能夠更好地減少每條指令執(zhí)行的時間,同時支持多發(fā)多射,減少處理器從內(nèi)存里查找數(shù)據(jù)所用的時間;
本發(fā)明的另一個目的在于提供一種高性能微處理器寄存器的內(nèi)存地址彈性保護方法,克服傳統(tǒng)處理器通過軟件保護和固定分段保護來防止應用程序非法訪問的不足,可有效防止應用程序的非法訪問。本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:一種高性能微處理器寄存器,它包括:
永遠為O的O號寄存器;
用作累加器的I 8號寄存器;
用作乘法時的高位,除法指令的商的9號寄存器;
用作乘法時的低位,除法指令的模的10號寄存器;
用作返回用戶模式時的指針、頁的11、12號寄存器;
用作處理器在用戶模式時的指令指針、頁的13、14號寄存器;
用作處理器在特權(quán)模式時的指令指針、頁的15、16號寄存器;
用作處理器在中斷模式時的指令指針、頁的17、18號寄存器,其頁只有處理器在kenmode和int mode下才被數(shù)據(jù)移動指令賦值,如果處理器在soft mode和urs mode,則不能賦值并產(chǎn)生異常;
用作軟件模式的指令指針、頁的19、20號寄存器,其頁只有處理器在ken mode、intmode和soft mode下才被數(shù)據(jù)移動指令賦值,如果處理器在urs mode,則不能賦值并產(chǎn)生
異常;
用作堆棧指針、頁的21、22號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁寄存器的指針、頁的23、24號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁寄存器的指針、頁的25、26號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁寄存器的指針、頁的27、28號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁寄存器的指針、頁的29、30號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常;
用作狀態(tài)寄存器的31號寄存器;
用作頁目錄寄存器的32號寄存器,保存虛擬地址轉(zhuǎn)換式的頁目錄低20位有效,高12位強制為0,否則在以后的產(chǎn)品中產(chǎn)生不可預知的錯誤異常;
用作定時器timer的33 36號寄存器,當timer使能后,處理器每經(jīng)過一個時鐘寄存器的值加I,溢出時產(chǎn)生異常;
分別用作kenend、intend和softend寄存器的37 39號寄存器,在計算機的內(nèi)存不大于4GB,在頁大小為4kb時低20位有效,高12位必須為0,否則產(chǎn)生指令錯誤異常;
用作異常中斷寄存器的40號寄存器,15位為I開啟中斷,反之不開啟;16位為I開啟異常,反之不開啟;
用作頁異常線性地址的41號寄存器;
用作多任務(wù)模式下的頁開始、結(jié)束位置的42、43號寄存器,當操作系統(tǒng)開啟多任務(wù)保護模式,當用戶頁的值在42、43號寄存器值之外時,處理器產(chǎn)生出界異常;
用作虛擬模式下的頁開始、結(jié)束位置的44、45號寄存器,O號版本的內(nèi)核暫時保留;用作tlb入口的46 50號寄存器,該寄存器的21,22,23位的值是000,001,010,011,100,101,110,111,其中,011,100,101,110保留,供處理器架構(gòu)升級用,000作為O級cache的地址使用,001作為I級cache的地址使用,010作為2級cache的地址使用,111作為處理器的全局地址,供io輸入輸出塊使用,高9位是處理器的處理核心號碼,供處理器升級成多核心時使用,在操作系統(tǒng)為單核心時強制為0,低20位是cache的塊號;
用作內(nèi)部dma的51 53號寄存器,51號寄存器為地址的開始地址,52號寄存器為地址結(jié)束處(都是塊號);
53號寄存器保留;
54號寄存器保留;
用作分頁模式下的局部地址轉(zhuǎn)換的奇54、55號寄存器;
57 60 號寄存器分別作為 config0、configl、config2、config3,其中,對于 configO,25號寄存器低4位分別使能0,1,2,3號時鐘,第4位為I開啟分頁機制,為O時開啟分頁碼機制,第5位多任務(wù)保護模式,操作系統(tǒng)檢查當前usr mode的指令頁碼的范圍是否在42、43號寄存器之內(nèi),不在其內(nèi),貝1J產(chǎn)生異常;其它位保留,configl、config2、config3分別保留;分別用作trp、trpp寄存器的61、62號寄存器,在任務(wù)切換時,61、62號寄存器的值無需保存,其每行的數(shù)據(jù)長度為32位,在任務(wù)切換時把寄存器的值放在里面,執(zhí)行該任務(wù)時將數(shù)據(jù)取出;
63號寄存器cpu屬性如下:
處理器核心數(shù) 9bit31,23
處理器當前核心號9bit22,14
處理器的位數(shù) 3bit2,0
其它位保留;
其中,32 63號寄存器的值只有運行在ker mode, int mode和soft mode才能被賦值。一種高性能微處理器寄存器的內(nèi)存地址彈性保護方法,它包括以下步驟:
51:操作系統(tǒng)通過賦值37、38、39號寄存器,分配處理器在各種模式下的內(nèi)存區(qū)間;
52:處理器檢查14號寄存器的內(nèi)容是否在39號寄存器中頁值之內(nèi),如果在其范圍之內(nèi),則產(chǎn)生異常,如果不在其范圍之內(nèi),則不產(chǎn)生異常;
53:處理器檢查16號寄存器的頁碼是否在O號到37號寄存器頁碼范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常;
54:處理器檢查18號寄存器的頁碼是否在37號寄存器和38號寄存器范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常;
55:處理器檢查20號寄存器的內(nèi)容是否在38號寄存器和39號寄存器中頁值之內(nèi),如果在其范圍之外,則產(chǎn)生異常;
56:處理器把異常號送到異常中斷寄存器中,并且進入int mode,當前處理器的指令頁是18寄存器,指令指針是17號寄存器,處理器通過執(zhí)行操作系統(tǒng)的異常中斷處理程序,從而防止應用程序的非法訪問。本發(fā)明的有益效果是:
I)在不改變指令集的前提下可輕易升級,采用淺流水線設(shè)計和精簡流水線架構(gòu),靜態(tài)分支預測,能夠更好地減少每條指令的時間,同時支持多發(fā)多射;
2)指令集采用目前主流的精簡指令,現(xiàn)大約有60條,本指令集最大可以支持1024條,在處理器的位超過1024位時,才需要升級;
3)在任務(wù)切換時,61、62號寄存器的值不需要保存,其每行數(shù)據(jù)的長度為32位,在任務(wù)切換時把寄存器的值放在里面,執(zhí)行該任務(wù)時把數(shù)據(jù)從里面取出,可減少處理器從內(nèi)存里查找數(shù)據(jù)所用的時間;
4)操作系統(tǒng)通過數(shù)據(jù)移動指令賦值37至39號寄存器,能更有效地分配計算機內(nèi)存空
間;
5)從計算機硬件層面保護了系統(tǒng)資源,克服了傳統(tǒng)處理器通過軟件保護和固定分段保護來防止應用程序非法訪問的不足,可有效防止應用程序的非法訪問。
圖1為內(nèi)存地址彈性保護方法流程圖。
具體實施例方式下面結(jié)合附圖進一步詳細描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護范圍不局限于以下所述。一種高性能微處理器寄存器,其特征在于:它包括:
用于接電源最低電位的永遠為O的O號寄存器;
用作累加器的I 8號寄存器;
用作乘法時的高位,除法指令的商的9號寄存器;
用作乘法時的低位,除法指令的模的10號寄存器;
用作返回用戶模式時的指針、頁的11、12號寄存器;
用作處理器在用戶模式時的指令指針、頁的13、14號寄存器;
用作處理器在特權(quán)模式時的指令指針、頁的15、16號寄存器;
用作處理器在中斷模式時的指令指針、頁的17、18號寄存器,其頁只有處理器在kermode和int mode下才被數(shù)據(jù)移動指令賦值,如果處理器在soft mode和urs mode,則不能賦值并產(chǎn)生異常;
用作軟件模式的指令指針、頁的19、20號寄存器,其頁只有處理器在ker mode、intmode和soft mode下才被數(shù)據(jù)移動指令賦值,如果處理器在urs mode,則不能賦值并產(chǎn)生
異常;
用作堆棧指針、頁的21、22號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁寄存器的指針、頁的23、24號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁寄存器的指針、頁的25、26號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常;
用作頁寄存器的指針、頁的27、28號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常;用作頁寄存器的指針、頁的29、30號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常;
用作狀態(tài)寄存器的31號寄存器;
用作頁目錄寄存器的32號寄存器,保存虛擬地址轉(zhuǎn)換式的頁目錄低20位有效,高12位強制為0,否則在以后的產(chǎn)品中產(chǎn)生不可預知的錯誤異常;
用作定時器(timer)的33 36號寄存器,當timer使能后,處理器每經(jīng)過一個時鐘寄存器的值加I,溢出時產(chǎn)生異常;
分別用作kenend、intend和softend寄存器的37 39號寄存器,在計算機的內(nèi)存不大于4GB,在頁大小為4kb時低20位有效,高12位必須為0,否則產(chǎn)生指令錯誤異常;
用作異常中斷寄存器的40號寄存器,15位為I開啟中斷,反之不開啟;16位為I開啟異常,反之不開啟;
用作頁異常線性地址的41號寄存器;
用作多任務(wù)模式下的頁開始、結(jié)束位置的42、43號寄存器,當操作系統(tǒng)開啟了多任務(wù)保護模式,當用戶頁的值在42、43號寄存器值之外時,處理器產(chǎn)生出界異常;
用作虛擬模式下的頁開始、結(jié)束位置的44、45號寄存器,O號版本的內(nèi)核暫時保留;用作tlb入口的46 50號寄存器,該寄存器的21,22,23位的值是000,001,010,011,100,101,110,111,其中,011,100,101,110保留,供處理器架構(gòu)升級用,000作為O級cache的地址使用,001作為I級cache的地址使用,010作為2級cache的地址使用,111作為處理器的全局地址,供io輸入輸出塊使用,高9位是處理器的處理核心號碼,供處理器升級成多核心時使用,在操作系統(tǒng)為單核心時強制為0,低20位是cache的塊號;
用作內(nèi)部dma的51 53 號寄存器,51號寄存器為地址的開始地址,52號寄存器為地址結(jié)束處(都是塊號);
53號寄存器保留;
54號寄存器保留;
用作分頁模式下的局部地址轉(zhuǎn)換的奇54、55號寄存器;
57 60 號寄存器分別作為 config0、configl、config2、config3,其中,對于 configO,25號寄存器低4位分別使能0,1,2,3號時鐘,第4位為I開啟分頁機制,為O時開啟分頁碼機制,第5位多任務(wù)保護模式,操作系統(tǒng)檢查當前usr mode的指令頁碼的范圍是不是在42,43號寄存器之內(nèi),不在其內(nèi),則產(chǎn)生異常;其它位保留,configl、Config2、Config3分別保留;
分別用作trp、trpp寄存器的61、62號寄存器,在任務(wù)切換時,61、62號寄存器的值無需保存,其每行的數(shù)據(jù)長度為32位,在任務(wù)切換時把寄存器的值放在里面,執(zhí)行該任務(wù)時將數(shù)據(jù)取出;
63號寄存器cpu屬性如下:
處理器核心數(shù) 9bit31,23
處理器當前核心號9bit22,14
處理器的位數(shù) 3bit2,0
其它位保留;
其中,32 63號寄存器的值只有運行在特權(quán)模式下才能被賦值。37 39號寄存器只有在ken mode下才能被賦值,其他mode賦值產(chǎn)生異常。指令集手冊: mov指令
mov,其為數(shù)據(jù)移動指令,該指令可以分成兩類:立即數(shù)移動指令;寄存器間移動指令。(I)立即數(shù)移動指令可以分成有符號立即數(shù)移動指令,無符號立即數(shù)移動指令:
A:有符號立即數(shù)移動指令
源操作數(shù)目的操作數(shù)(該處是目的寄存器)
movsb立即數(shù), %n8位有符號移動指令
mo V sw立即數(shù), %n16位有符號移動指令
movsd立即數(shù), %n32位有符號移動指令
movsl立即數(shù), %n64位有符號移動指令(在32位處理器中保
留)
B:無符號立即數(shù)移動指令
源操作數(shù)目的操作數(shù)(該處是目的寄存器)
movb立即數(shù), %n8位有符號移動指令
movw立即數(shù), %n16位有符號移動指令
movd立即數(shù), %n32位有符號移動指令
movl立即數(shù), %n64位有符號移動指令(在32位處理器中保留)
C:寄存器間移動指令: mov %n,%m (把源操作數(shù)所在的寄存器%n,送到目的操作數(shù)所在寄存器%m)
(2)特殊指令
指令注釋·
bck源操作數(shù)為11號寄存器,目的操作數(shù)為12號寄存器,返回用戶模式,在
跳轉(zhuǎn)指令時,把用戶模式的指針,頁放入對應的寄存器。usr無源目的操作數(shù),處理器進入用戶模式。ken無源目的操作數(shù),處理器進入核心模式。int無源目的操作數(shù),處理器進入中斷模式。saft無源目的操作數(shù),處理器進入軟件模式。pop從堆棧頁中彈出數(shù)據(jù)指令,彈出,壓人的數(shù)據(jù)長度為處理器的位數(shù)。push把寄存器中的數(shù)據(jù)壓人堆棧中,彈出,壓人的數(shù)據(jù)長度為處理器的位數(shù)。set置位命令,把目的操作數(shù)的(源操作數(shù)位)置I。clr清位命令,把目的操作數(shù)的(源操作數(shù)位)置O。tst測試命令,測試目的操作數(shù)的(源操作數(shù)位)位,結(jié)果放入(31號寄存器)狀態(tài)寄存器的27位。m3232位無符號數(shù)乘法指令,結(jié)果放到,低位放到10號寄存器,高位放到9號寄存器中。sm3232位有符號數(shù)乘法指令,結(jié)果放到,低位放到10號寄存器,高位放到9號寄存器中。d3232位無符號數(shù)除法指令,結(jié)果放到,結(jié)果放到9號寄存器,模放到10號寄
存器中。Sd3232位有符號數(shù)乘法指令,結(jié)果放到,結(jié)果放到9號寄存器,模放到10
號寄存器中。rstrest (只有處理器處在ken mode,才能執(zhí)行,否則產(chǎn)生異常)。如圖1所示,一種高性能微處理器寄存器的內(nèi)存地址彈性保護方法,它包括以下步驟:
51:操作系統(tǒng)通過賦值37、38、39號寄存器,分配處理器在各種模式下的內(nèi)存區(qū)間;
52:處理器檢查14號寄存器的內(nèi)容是否在39號寄存器中頁值之內(nèi),如果在其范圍之內(nèi),則產(chǎn)生異常,如果不在其范圍之內(nèi),則不產(chǎn)生異常;
53:處理器檢查16號寄存器的頁碼是否在O號到37號寄存器頁碼范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常;
54:處理器檢查18號寄存器的頁碼是否在37號寄存器和38號寄存器范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常; 55:處理器檢查20號寄存器的內(nèi)容是否在38號寄存器和39號寄存器中頁值之內(nèi),如果在其范圍之外,則產(chǎn)生異常;
56:處理器把異常號送到異常中斷寄存器(40號寄存器)中,并且進入int mode,當前處理器的指令頁是18寄存器,指令指針是17號寄存器,處理器通過執(zhí)行操作系統(tǒng)的異常中斷處理程序,從而防止應用程序的非法訪問。
權(quán)利要求
1.一種高性能微處理器寄存器,其特征在于:它包括: 永遠為O的O號寄存器; 用作累加器的1 8號寄存器; 用作乘法時的高位,除法指令的商的9號寄存器; 用作乘法時的低位,除法指令的模的10號寄存器; 用作返回用戶模式時的指針、頁的11、12號寄存器; 用作處理器在用戶模式時的指令指針、頁的13、14號寄存器; 用作處理器在特權(quán)模式時的指令指針、頁的15、16號寄存器; 用作處理器在中斷模式時的指令指針、頁的17、18號寄存器,其頁只有處理器在kenmode和int mode下才被數(shù)據(jù)移動指令賦值,如果處理器在soft mode和urs mode,則不能賦值并產(chǎn)生異常; 用作軟件模式的指令指針、頁的19、20號寄存器,其頁只有處理器在ken mode、intmode和soft mode下才被數(shù)據(jù)移動指令賦值,如果處理器在urs mode,則不能賦值并產(chǎn)生異常; 用作堆棧指針、頁的21、22號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常; 用作頁寄存器的指針、頁的23、24號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常; 用作頁寄存器的指針、頁的25、26號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常; 用作頁寄存器的指針、頁的27、28號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常; 用作頁寄存器的指針、頁的29、30號寄存器,當給其控制的O級cache賦值時,檢查其特權(quán)級,當特權(quán)級值小于等于它才被賦值,否則產(chǎn)生異常; 用作狀態(tài)寄存器的31號寄存器; 用作頁目錄寄存器的32號寄存器,保存虛擬地址轉(zhuǎn)換式的頁目錄低20位有效,高12位強制為0,否則在以后的產(chǎn)品中產(chǎn)生不可預知的錯誤異常; 用作定時器timer的33 36號寄存器,當timer使能后,處理器每經(jīng)過一個時鐘寄存器的值加1,溢出時產(chǎn)生異常; 分別用作kenend、intend和softend寄存器的37 39號寄存器,在計算機的內(nèi)存不大于4GB,在頁大小為4kb時低20位有效,高12位必須為0,否則產(chǎn)生指令錯誤異常; 用作異常中斷寄存器的40號寄存器,15位為I開啟中斷,反之不開啟;16位為I開啟異常,反之不開啟; 用作頁異常線性地址的41號寄存器; 用作多任務(wù)模式下的頁開始、結(jié)束位置的42、43號寄存器,當操作系統(tǒng)開啟多任務(wù)保護模式,當用戶頁的值在42、43號寄存器值之外時,處理器產(chǎn)生出界異常; 用作虛擬模式下的頁開始、結(jié)束位置的44、45號寄存器,O號版本的內(nèi)核暫時保留;用作tlb入口的46 50號寄存器,該寄存器的21,22,23位的值是000,001,010,011,.100,101,110,111,其中,011,100,101,110保留,供處理器架構(gòu)升級用,000作為O級cache的地址使用,001作為I級cache的地址使用,010作為2級cache的地址使用,111作為處理器的全局地址,供io輸入輸出塊使用,高9位是處理器的處理核心號碼,供處理器升級成多核心時使用,在操作系統(tǒng)為單核心時強制為0,低20位是cache的塊號; 用作內(nèi)部dma的51 53號寄存器,51號寄存器為地址的開始地址,52號寄存器為地址結(jié)束處;. 53號寄存器保留;. 54號寄存器保留; 用作分頁模式下的局部地址轉(zhuǎn)換的奇54、55號寄存器; . 57 60 號寄存器分別作為 config0、configl、config2、config3,其中,對于 configO,25號寄存器低4位分別使能0,1,2,3號時鐘,第4位為I開啟分頁機制,為O時開啟分頁碼機制,第5位多任務(wù)保護模式,操作系統(tǒng)檢查當前usr mode的指令頁碼的范圍是否在42、43號寄存器之內(nèi),不在其內(nèi),貝1J產(chǎn)生異常;其它位保留,configl、config2、config3分別保留;分別用作trp、trpp寄存器的61、62號寄存器,在任務(wù)切換時,61、62號寄存器的值無需保存,其每行的數(shù)據(jù)長度為32 位,在任務(wù)切換時把寄存器的值放在里面,執(zhí)行該任務(wù)時將數(shù)據(jù)取出;. 63號寄存器cpu屬性如下: 處理器核心數(shù) 9bit31,23
處理器當前核心號9bit22,14
處理器的位數(shù) 3bit2,0
其它位保留; 其中,32 63號寄存器的值只有運行在ker mode, int mode和soft mode才能被賦值。
2.一種高性能微處理器寄存器的內(nèi)存地址彈性保護方法,其特征在于,它包括以下步驟: . 51:操作系統(tǒng)通過賦值37、38、39號寄存器,分配處理器在各種模式下的內(nèi)存區(qū)間; . 52:處理器檢查14號寄存器的內(nèi)容是否在39號寄存器中頁值之內(nèi),如果在其范圍之內(nèi),則產(chǎn)生異常,如果不在其范圍之內(nèi),則不產(chǎn)生異常;. 53:處理器檢查16號寄存器的頁碼是否在O號到37號寄存器頁碼范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常; 54:處理器檢查18號寄存器的頁碼是否在37號寄存器和38號寄存器范圍中,如果在其范圍之內(nèi),則不產(chǎn)生異常,如果不在其范圍之內(nèi),則產(chǎn)生異常; 55:處理器檢查20號寄存器的內(nèi)容是否在38號寄存器和39號寄存器中頁值之內(nèi),如果在其范圍之外,則產(chǎn)生異常; 56:處理器把異常號送到異常中斷寄存器中,并且進入int mode,當前處理器的指令頁是18寄存器,指令指針是17號寄存器,處理器通過執(zhí)行操作系統(tǒng)的異常中斷處理程序,從而防止應用程序的非法訪問。
全文摘要
本發(fā)明公開了一種高性能微處理器寄存器及其內(nèi)存地址彈性保護方法,方法包括賦值37、38、39號寄存器,分配內(nèi)存區(qū)間;檢查14號寄存器的內(nèi)容是否在39號中頁值之內(nèi);檢查16號寄存器的頁碼是否在0號到37號頁碼范圍中;檢查18號寄存器的頁碼是否在37、38號范圍中;檢查20號寄存器的內(nèi)容是否在38、39號中頁值之內(nèi);處理器把異常號送到異常中斷寄存器中,當前處理器的指令頁是18號,指令指針是17號,處理器通過執(zhí)行操作系統(tǒng)的異常中斷處理程序。本發(fā)明在不改變指令集的前提下可輕易升級,采用淺流水線設(shè)計和精簡流水線架構(gòu),能夠更好地減少每條指令的時間,同時支持多發(fā)多射,提高處理器運算速度,有效地分配內(nèi)存空間,有效防止應用程序的非法訪問。
文檔編號G06F9/48GK103150521SQ20131007297
公開日2013年6月12日 申請日期2013年3月7日 優(yōu)先權(quán)日2013年3月7日
發(fā)明者周海林 申請人:周海林