專利名稱:與調(diào)度性能直接相關(guān)的內(nèi)存管理核的硬件化的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及硬件化的操作系統(tǒng),尤其是涉及一種硬件化的進(jìn)程內(nèi)存管理核。
背景技術(shù):
隨著計算機(jī)應(yīng)用在人們生活中普及,依靠計算機(jī)進(jìn)行自動化的管理,控制, 計算和服務(wù)處理變得越來越重要。特別在金融,工業(yè),控制等領(lǐng)域,除了需要 保證計算機(jī)可靠與安全,對處理速度,響應(yīng)時間高效性的需求也顯得非常重要。
同時由于互聯(lián)網(wǎng)的飛速發(fā)展,大型服務(wù)器和某些專門用于實時任務(wù)處理的 機(jī)器需要服務(wù)的響應(yīng)和請求的處理有非常高的速度。但是,軟件的使用限制了 速度的進(jìn)一步提升。作為軟件管理者的操作系統(tǒng)也實際上成為了速度提升的瓶
頸。因此出現(xiàn)了許多針對原有操作系統(tǒng)的改進(jìn)版本,Linux2.4版本里時鐘的最小 粒度為10毫秒,而Li皿x2.6將時鐘粒度降低到1毫秒,但這還遠(yuǎn)達(dá)不到實時系 統(tǒng)的要求。RTLinux通過將任務(wù)分解成實時部分和非實時部分,在原有操作系統(tǒng) 核的基礎(chǔ)上進(jìn)一步獨(dú)立出實時核來專門處理和分發(fā)實時任務(wù),提高了響應(yīng)速度, 幾乎可以達(dá)到了十幾個微秒級的調(diào)度粒度。但是, 一味地提高時鐘粒度會使調(diào) 度的開銷增大,也就是說當(dāng)時鐘粒度小到某個極限時,系統(tǒng)的性能不會因為時 鐘頻率的增加而提高了。
另外,軟件技術(shù)的改進(jìn)受到的硬件的制約,如果能夠通過硬件的改進(jìn)來進(jìn)行 加速,效果會更好。比如,在Intel公司每次對處理器的改進(jìn)上,都會加入一些 新的指令針對特定的應(yīng)用程序進(jìn)行加速,比如在SSE4指令集中過提供了一條新 的計算CRC(Cyclic Redundancy Check)指令,因此數(shù)據(jù)的集成檢查可以更加迅速 的完成。而且,軟件存在與內(nèi)存中,容易被惡意的代碼進(jìn)行篡改,盡管安全防 護(hù)技術(shù)層出不窮,但相比于實現(xiàn)同樣功能的硬件單元,安全性就顯得不足。
發(fā)明內(nèi)容
為了克服背景技術(shù)中的不足,本發(fā)明的目的在于提供一種與調(diào)度性能直接 相關(guān)的內(nèi)存管理核的硬件化的方法。
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的,包括以下步驟
(l)進(jìn)程頁表的創(chuàng)建
輸入PID;
輸出SUC寄存器,操作成功返回l,失敗返回0;讀入要創(chuàng)建頁表的進(jìn)程的PID,在PID與頁表基地址轉(zhuǎn)換表中找到PID所 對應(yīng)的表項,并將進(jìn)程頁表的基地址,即PIDf 1024寫入該表項中,采用一級 頁表映射,每個頁表的大小為4KBytes,因此該頁表映射最多達(dá)8M Bytes的內(nèi) 存空間;
(2) 進(jìn)程虛擬地址到物理地址的映射
輸入PID,要映射的虛擬地址,要映射的物理地址; 輸出SUC寄存器,操作成功返回l,失敗返回O;
根據(jù)輸入的PID,計算出該進(jìn)程的頁表基地址,利用輸入的虛擬地址的高 IO位作為索引,找到頁表中該虛擬地址對應(yīng)的項,檢査表項中的合法位是否置 位,如果已經(jīng)置位則操作失敗,將suc賦值為O;否則將物理地址的高10位填 入該表項中并將表項中的合法位置位;該合法位標(biāo)識了該虛擬頁已經(jīng)被映射使 用;
(3) 進(jìn)程虛擬地址到物理地址的取消映射 輸入PID,要取消映射的虛擬地址;
輸出SUC寄存器,操作成功返回l,失敗返回O;
根據(jù)輸入的PID,計算出該進(jìn)程的頁表基地址,利用輸入的虛擬地址的高
io位作為索引,找到頁表中該虛擬地址對應(yīng)的項,將表項中的合法位置0,表 示該虛擬頁已經(jīng)被釋放;
(4) 進(jìn)程頁表的切換 輸入即將運(yùn)行PID;
輸出SUC寄存器,操作成功返回l,失敗返回O;
首先將切換前正在運(yùn)行的進(jìn)程PID存儲到用來記錄上一個運(yùn)行進(jìn)程PID號
寄存器last_pid中,然后將輸入的進(jìn)程PID號賦給標(biāo)志當(dāng)前運(yùn)行進(jìn)程PID的寄存 器CUrr_pid;由于在進(jìn)行虛擬地址到物理地址的轉(zhuǎn)換時,頁表的選擇是根據(jù) curr_pid來進(jìn)行計算,因此修改了 curr_pid的值實現(xiàn)進(jìn)程頁表切換;
(5) 進(jìn)程頁表的刪除 輸入PID ; 輸出無;
讀入要創(chuàng)建頁表的進(jìn)程的PID,在進(jìn)程號與頁表基地址轉(zhuǎn)換表中找到進(jìn)程號 所對應(yīng)的表項,并將該表項清空,表明該進(jìn)程的頁表映射已經(jīng)完全失效,同時 要將實際頁表中所有項的合法位清空,實現(xiàn)進(jìn)程頁表的刪除;
(6) 進(jìn)程虛擬地址到物理地址的轉(zhuǎn)換輸入虛擬地址VA;
輸出物理地址PA, SUC寄存器,操作成功返回l,失敗返回0;
將輸入虛擬地址的前IO位作為索引,首先在TLB中進(jìn)行査找,如果查找到 則直接返回物理地址;否則以currjpid計算出當(dāng)前進(jìn)程頁表的基地址,在該頁表 中選擇出對應(yīng)的表項;然后檢查該表項的合法位,如果該位為零則表明無此虛 擬地址,程序訪問錯誤,置sue為0;否則將表項中存儲的物理地址高10位讀 出到PA寄存器中和TLB的對應(yīng)項中;TLB的替換采用先進(jìn)先出的替換方法。
所述的進(jìn)程頁表創(chuàng)建,刪除,切換,虛擬地址映射,反映射以及虛擬地址 到物理地址的轉(zhuǎn)換均由硬件來完成。
與背景技術(shù)相比,本發(fā)明具有的有益效果是-
(1) 高效性。本發(fā)明實現(xiàn)了在硬件化的進(jìn)程內(nèi)存管理核,將內(nèi)存管理中的進(jìn) 程頁表創(chuàng)建,刪除,切換,虛擬地址映射,反映射以及虛擬地址到物理地址的 轉(zhuǎn)換由硬件來完成,降低了進(jìn)程切換時的開銷,提高了進(jìn)程切換時效率。
(2) 安全性。本發(fā)明中的硬件化的進(jìn)程內(nèi)存管理核,將原本由軟件代碼來實 現(xiàn)的功能交付給硬件單元來完成,消除了操作系統(tǒng)的某一部分功能被惡意篡改 的可能性,保證了處理的完全正確性和可靠性。
因此,將操作系統(tǒng)中與調(diào)度性能直接相關(guān)的進(jìn)程內(nèi)存管理,包括頁表創(chuàng)建, 切換,頁面映射等功能設(shè)計成硬件,可以消除軟件處理時的瓶頸,同時能夠進(jìn) 一步減少由于時鐘粒度的細(xì)化而帶來的額外調(diào)度開銷,提高整個系統(tǒng)的工作效 率。
附圖是硬件化的進(jìn)程內(nèi)存管理核架構(gòu)示意圖。
具體實施例方式
下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步說明。
首先解釋一下用到的名詞和一些技術(shù)設(shè)計所用到的前提
PID:進(jìn)程號,4bit, 0號不用,因此最多可以表示15個進(jìn)程;
PID—TO_PCB:進(jìn)程號與頁表基地址轉(zhuǎn)換表;
SUC:輸出信號中每一次操作的返回值,成功為l,失敗為O;
VA:輸入信號中的邏輯地址, 一共有22位,頁面大小4Kbytes;
PA:輸出信號中的物理地址, 一共有22位,頁面大小4Kbytes;
laSt_pid:上一個運(yùn)行的或即將被切換走的進(jìn)程號;
CUrr_pid:當(dāng)前運(yùn)行的或即將運(yùn)行的進(jìn)程號;TLB: Translation Look-aside Buffer,用來加速頁表査找; 下面將結(jié)合附圖來詳細(xì)的闡述與調(diào)度性能直接相關(guān)的內(nèi)存管理核的硬件化 的方法。
(1) 進(jìn)程頁表的創(chuàng)建的硬件化。本來由軟件來完成的功能,現(xiàn)在改為硬件來 實現(xiàn)。首先,讀入要創(chuàng)建頁表的進(jìn)程的PID,在PID一TO一PCB表(進(jìn)程號與頁表 基地址轉(zhuǎn)換表)中找到進(jìn)程號所對應(yīng)的表項,并將進(jìn)程頁表的基地址,即PID * 1024寫入該表項中。采用一級頁表映射,每個頁表的大小為4K Bytes,則頁表 可映射最多達(dá)8MBytes的內(nèi)存空間。
(2) 進(jìn)程虛擬地址到物理地址的映射的硬件化。根據(jù)輸入的PID,計算出該 進(jìn)程的頁表基地址,利用輸入的虛擬地址的高10位作為索引,找到頁表中該虛 擬地址對應(yīng)的項,檢查表項中的合法位是否置位,如果已經(jīng)置位則操作失敗, 將sue賦值為0。否則將物理地址的高10位填入該表項中并將表項中的合法位 置位。該合法位標(biāo)識了該虛擬頁己經(jīng)被映射使用。
C3)進(jìn)程虛擬地址到物理地址的取消映射的硬件化。根據(jù)輸入的PID,計算 出該進(jìn)程的頁表基地址,利用輸入的虛擬地址的高10位作為索引,找到頁表中 該虛擬地址對應(yīng)的項,將表項中的合法位清除,表示該虛擬頁已經(jīng)被釋放。
(4) 進(jìn)程頁表的切換功能的硬件化。首先將切換前運(yùn)行的進(jìn)程PID存儲到用 來記錄上一個運(yùn)行進(jìn)程PID號寄存器last_pid中,然后將輸入的進(jìn)程PID號賦給 標(biāo)志當(dāng)前運(yùn)行進(jìn)程PID的寄存器Cmr_pid。由于在進(jìn)行虛擬地址到物理地址的轉(zhuǎn) 換時,頁表的選擇是根據(jù)cmr^id來進(jìn)行計算餓,因此修改了curr^j)id的值也意 味著頁表的成功切換。
(5) 進(jìn)程頁表的刪除功能的硬件化。讀入要創(chuàng)建頁表的進(jìn)程的PID,在進(jìn)程 號與頁表基地址轉(zhuǎn)換表中找到進(jìn)程號所對應(yīng)的表項,并將該表項清空,表明該 進(jìn)程的頁表映射已經(jīng)完全失效,同時要將實際頁表中所有項的合法位清空。
(6) 進(jìn)程虛擬地址到物理地址的轉(zhuǎn)換的硬件化。輸入虛擬地址的前10位作為 索引,首先在TLB中進(jìn)行査找,如果査找到則直接返回物理地址。否則以Curr_pid 計算出當(dāng)前進(jìn)程頁表的基地址,在該頁表中選擇出對應(yīng)的表項。然后檢査該表 項的合法位,如果該位為零則表明無此虛擬地址,程序訪問錯誤,置suc為0。 否則將表項中存儲的物理地址高10位讀出到PA寄存器中和TLB的對應(yīng)項中。 TLB的替換策略采用先進(jìn)先出的替換策略。
本發(fā)明所述的是一種硬件化的進(jìn)程內(nèi)存管理核,提出了操作系統(tǒng)軟件功能 硬件化的思想。主要方法是將內(nèi)存管理中進(jìn)程頁表創(chuàng)建,刪除,切換,虛擬地址映射,反映射以及虛擬地址到物理地址的轉(zhuǎn)換的功能交付給硬件來完成,降 低了調(diào)度時進(jìn)程切換時的開銷,提高了進(jìn)程切換時效率。本發(fā)明可以利用在操 作系統(tǒng)的其他部件中。
權(quán)利要求
1、一種與調(diào)度性能直接相關(guān)的內(nèi)存管理核的硬件化的方法,其特征在于,包括以下步驟(1)進(jìn)程頁表的創(chuàng)建輸入PID;輸出suc寄存器,操作成功返回1,失敗返回0;讀入要創(chuàng)建頁表的進(jìn)程的PID,在PID與頁表基地址轉(zhuǎn)換表中找到PID所對應(yīng)的表項,并將進(jìn)程頁表的基地址,即PID*1024寫入該表項中,采用一級頁表映射,每個頁表的大小為4K Bytes,因此該頁表映射最多達(dá)8M Bytes的內(nèi)存空間;(2)進(jìn)程虛擬地址到物理地址的映射輸入PID,要映射的虛擬地址,要映射的物理地址;輸出suc寄存器,操作成功返回1,失敗返回0;根據(jù)輸入的PID,計算出該進(jìn)程的頁表基地址,利用輸入的虛擬地址的高10位作為索引,找到頁表中該虛擬地址對應(yīng)的項,檢查表項中的合法位是否置位,如果已經(jīng)置位則操作失敗,將suc賦值為0;否則將物理地址的高10位填入該表項中并將表項中的合法位置位;該合法位標(biāo)識了該虛擬頁已經(jīng)被映射使用;(3)進(jìn)程虛擬地址到物理地址的取消映射輸入PID,要取消映射的虛擬地址;輸出suc寄存器,操作成功返回1,失敗返回0;根據(jù)輸入的PID,計算出該進(jìn)程的頁表基地址,利用輸入的虛擬地址的高10位作為索引,找到頁表中該虛擬地址對應(yīng)的項,將表項中的合法位置0,表示該虛擬頁已經(jīng)被釋放;(4)進(jìn)程頁表的切換輸入即將運(yùn)行PID;輸出suc寄存器,操作成功返回1,失敗返回0;首先將切換前正在運(yùn)行的進(jìn)程PID存儲到用來記錄上一個運(yùn)行進(jìn)程PID號寄存器last_pid中,然后將輸入的進(jìn)程PID號賦給標(biāo)志當(dāng)前運(yùn)行進(jìn)程PID的寄存器curr_pid;由于在進(jìn)行虛擬地址到物理地址的轉(zhuǎn)換時,頁表的選擇是根據(jù)curr_pid來進(jìn)行計算,因此修改了curr_pid的值實現(xiàn)進(jìn)程頁表切換;(5)進(jìn)程頁表的刪除輸入PID;輸出無;讀入要創(chuàng)建頁表的進(jìn)程的PID,在進(jìn)程號與頁表基地址轉(zhuǎn)換表中找到進(jìn)程號所對應(yīng)的表項,并將該表項清空,表明該進(jìn)程的頁表映射已經(jīng)完全失效,同時要將實際頁表中所有項的合法位清空,實現(xiàn)進(jìn)程頁表的刪除;(6)進(jìn)程虛擬地址到物理地址的轉(zhuǎn)換輸入虛擬地址VA;輸出物理地址PA,suc寄存器,操作成功返回1,失敗返回0;將輸入虛擬地址的前10位作為索引,首先在TLB中進(jìn)行查找,如果查找到則直接返回物理地址;否則以curr_pid計算出當(dāng)前進(jìn)程頁表的基地址,在該頁表中選擇出對應(yīng)的表項;然后檢查該表項的合法位,如果該位為零則表明無此虛擬地址,程序訪問錯誤,置suc為0;否則將表項中存儲的物理地址高10位讀出到PA寄存器中和TLB的對應(yīng)項中;TLB的替換采用先進(jìn)先出的替換方法。
2、根據(jù)權(quán)利要求1所述的一種與調(diào)度性能直接相關(guān)的內(nèi)存管理核的硬件化 的方法,其特征在于所述的進(jìn)程頁表創(chuàng)建,刪除,切換,虛擬地址映射,反 映射以及虛擬地址到物理地址的轉(zhuǎn)換均由硬件來完成。
全文摘要
本發(fā)明公開了一種與調(diào)度性能直接相關(guān)的進(jìn)程內(nèi)存管理核的硬件化的方法。是通過將操作系統(tǒng)中與調(diào)度性能直接相關(guān)的進(jìn)程內(nèi)存管理,包括進(jìn)程頁表創(chuàng)建,刪除,切換,虛擬地址映射,虛擬地址到物理地址的轉(zhuǎn)換的功能交付給硬件來完成,降低了調(diào)度時進(jìn)程切換時的開銷,提高了進(jìn)程切換時效率。本發(fā)明可以利用在操作系統(tǒng)的其他部件中。本發(fā)明實現(xiàn)了在硬件化的進(jìn)程內(nèi)存管理,降低了進(jìn)程切換時的開銷,提高了進(jìn)程切換時效率,將原本由軟件代碼來實現(xiàn)的功能交付給硬件單元來完成,消除了操作系統(tǒng)的某一部分功能被惡意篡改的可能性,保證了處理的完全正確性和可靠性。
文檔編號G06F9/46GK101539869SQ20091009764
公開日2009年9月23日 申請日期2009年4月13日 優(yōu)先權(quán)日2009年4月13日
發(fā)明者楠 張, 汪達(dá)舟, 繆良華, 劍 陳, 陳天洲 申請人:浙江大學(xué)