两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

硬件化的進程內存管理核的方法

文檔序號:6460499閱讀:225來源:國知局
專利名稱:硬件化的進程內存管理核的方法
技術領域
本發(fā)明涉及硬件化的操作系統(tǒng)設計,更具體的說,是涉及一種硬件化的進 程內存管理核的方法。
背景技術
隨著計算機應用在人們生活中普及,依靠計算機進行自動化的管理,控制, 計算和服務處理變得越來越重要。特別在金融,工業(yè),控制等領域,除了需要 保證計算機可靠與安全,對處理速度,響應時間高效性的需求也顯得非常重要。同時由于互聯(lián)網(wǎng)的飛速發(fā)展,大型服務器和某些專門用于實時任務處理的 機器需要服務的響應和請求的處理有非常高的速度。但是,軟件的使用限制了 速度的進一步提升。作為軟件管理者的操作系統(tǒng)也實際上成為了速度提升的瓶頸。因此出現(xiàn)了許多針對原有操作系統(tǒng)的改進版本,Linux2.4版本里時鐘的最 小粒度為IO毫秒,而Linux2.6將時鐘粒度降低到1毫秒,但這還遠達不到實 時系統(tǒng)的要求。RTLimix通過將任務分解成實時部分和非實時部分,在原有操 作系統(tǒng)核的基礎上進一步獨立出實時核來專門處理和分發(fā)實時任務,提高了響 應速度,幾乎可以達到了十幾個微秒級的調度粒度。但是, 一味地提高時鐘粒 度會使調度的開銷增大,也就是說當時鐘粒度小到某個極限時,系統(tǒng)的性能不 會因為時鐘頻率的增加而提高了。另外,軟件技術的改進受到的硬件本身的制約,只有能夠通過硬件本身的 改進來進行加速,才能取得好的效果。比如,在Intel公司每次對處理器的改進 上,都會加入一些新的指令針對特定的應用程序進行加速,比如在SSE4指令 集中過提供了一條新的計算CRC(Cyclic Redundancy Check)指令,因此數(shù)據(jù)的 集成檢查可以更加迅速的完成。而且,軟件存在于內存中,容易被惡意的代碼 進行篡改,盡管安全防護技術層出不窮,但相比于實現(xiàn)同樣功能的硬件單元, 軟件的安全性就略顯不足。因此,將操作系統(tǒng)中與調度性能直接相關的進程內存管理,包括頁表創(chuàng)建,切換,頁面映射等功能設計成硬件,可以消除軟件處理時的瓶頸,同時能夠進 一步減少由于時鐘粒度的細化而帶來的額外調度開銷,提高整個系統(tǒng)的工作效 率。發(fā)明內容本發(fā)明的主要目的在于克服現(xiàn)有技術中的不足,提供一種涉及硬件化的進 程內存管理核的方法。為了解決上述技術問題,本發(fā)明是通過以下技術方案實現(xiàn)的。 硬件化的進程內存管理核的方法,包括以下步驟(1) 進程頁表的創(chuàng)建讀入要創(chuàng)建頁表的進程的進程號PID,在進程號與頁表基地址轉換表中找 到進程號所對應的表項,并將進程頁表的基地址,即PIDf 1024寫入該表項中;(2) 進程虛擬地址到硬件地址的映射根據(jù)輸入的進程號PID,計算出該進程的頁表基地址,利用輸入的虛擬地 址的高10位作為索引,找到頁表中該虛擬地址對應的項,檢查表項中的合法位 是否置位,如果己經(jīng)置位則操作失敗,將用于指示操作是否成功的寄存器SUC賦值為O,表示操作失敗;否則將物理地址的高10位填入該表項中并將表項中 的合法位置位,該合法位標識了該虛擬頁已經(jīng)被映射使用;(3) 進程虛擬地址到硬件地址的取消映射根據(jù)輸入的進程號PID,計算出該進程的頁表基地址,利用輸入的虛擬地 址的高10位作為索引,找到頁表中該虛擬地址對應的項,將表項中的合法位清 除,表示該虛擬頁已經(jīng)被釋放;(4) 進程頁表的切換首先將切換前運行的進程PID存儲到用來記錄上一個運行進程PID號寄存 器last_pid中,然后將輸入的進程PID號賦給標志當前運行進程PID的寄存器 curr_pid;(5) 進程頁表的刪除讀入要創(chuàng)建頁表的進程的進程號PID,在進程號與頁表基地址轉換表中找到進程號所對應的表項,并將該表項清空,表明該進程的頁表映射已經(jīng)完全失效,同時要將實際頁表中所有項的合法位清空;(6) 進程虛擬地址到物理地址的轉換:將輸入虛擬地址的前IO位作為索引,首先在TLB中進行查找,如果査找 到則直接返回物理地址;否則以currjid計算出當前進程頁表的基地址,在該 頁表中選擇出對應的表項;然后檢查該表項的合法位,如果該位為零則表明無 此虛擬地址,程序訪問錯誤,置suc為0;否則將表項中存儲的物理地址高10 位讀出到PA寄存器中和TLB的對應項中;TLB的替換策略采用先進先出的替 換策略。作為一種改進,進程頁表創(chuàng)建、刪除、切換、虛擬地址映射、反映射以及 虛擬地址到物理地址的轉換由硬件來完成,可降低進程切換時的開銷,提高進 程切換時效率。與現(xiàn)有技術相比,本發(fā)明的有益效果是(1) 高效性。本發(fā)明實現(xiàn)了在硬件化的進程內存管理核的方法,將內存管 理中的進程頁表創(chuàng)建,刪除,切換,虛擬地址映射,反映射以及虛擬地址到物 理地址的轉換由硬件來完成,降低了進程切換時的開銷,提高了進程切換時效 率。(2) 安全性。本發(fā)明中的硬件化的進程內存管理核的方法,將原本由軟件 代碼來實現(xiàn)的功能交付給硬件單元來完成,消除了操作系統(tǒng)的某一部分功能被 惡意篡改的可能性,保證了處理的完全正確性和可靠性。


圖1是本發(fā)明的總體結構框架圖。
具體實施方式
結合附圖,通過具體實施例對本發(fā)明進一步說明。 首先解釋一下用到的名詞和一些技術設計所用到的前提 PID:進程號,4bit, 0號不用,因此最多可以表示15個進程PID一TO—PCB:進程號與頁表基地址轉換表SUC:輸出信號中每一次操作的返回值,成功為l,失敗為OVA:輸入信號中的邏輯地址, 一共有22位,頁面大小4Kbytes PA:輸出信號中的物理地址, 一共有22位,頁面大小4Kbytes last』id:上一個運行的或即將被切換走的進程號 CUrr_pid:當前運行的或即將運行的進程號TLB: Translation Look-aside Buffer,用來力口速頁表查找一種硬件化的進程內存管理核的方法,包括以下步驟(1) 進程頁表的創(chuàng)建 輸入進程號PID輸出SUC寄存器,操作成功返回l,失敗返回O。 讀入要創(chuàng)建頁表的進程的進程號PID,在PID_TO_PCB表(進程號與頁表基地址轉換表)中找到進程號所對應的表項,并將進程頁表的基地址,即PID * 1024寫入該表項中。這里采用一級頁表映射,每個頁表的大小為4K Bytes,因此該頁表可映射最多達8M Bytes的內存空間。(2) 進程虛擬地址到硬件地址的映射輸入進程號PID,要映射的虛擬地址,要映射的物理地址輸出SUC寄存器,操作成功返回l,失敗返回O。根據(jù)輸入的進程號PID,計算出該進程的頁表基地址,利用輸入的虛 擬地址的高10位作為索引,找到頁表中該虛擬地址對應的項,檢査表項中的合 法位是否置位,如果已經(jīng)置位則操作失敗,將suc賦值為0。否則將物理地址 的高10位填入該表項中并將表項中的合法位置位。該合法位標識了該虛擬頁已 經(jīng)被映射使用。(3) 進程虛擬地址到硬件地址的取消映射 輸入進程號PID,要取消映射的虛擬地址 輸出SUC寄存器,操作成功返回l,失敗返回O。根據(jù)輸入的進程號PID,計算出該進程的頁表基地址,利用輸入的虛 擬地址的高10位作為索引,找到頁表中該虛擬地址對應的項,將表項中的合法位清除,表示該虛擬頁已經(jīng)被釋放。(4) 進程頁表的切換輸入即將運行進程號PID輸出SUC寄存器,操作成功返回l,失敗返回O。 首先將切換前運行的進程PID存儲到用來記錄上一個運行進程PID 號寄存器last_pid中,然后將輸入的進程PID號賦給標志當前運行進程PID的 寄存器Curr_pid。由于在進行虛擬地址到物理地址的轉換時,頁表的選擇是根 據(jù)Curr_pid來進行計算餓,因此修改了 curr_pid的值也意味著頁表的成功切換。(5) 進程頁表的刪除 輸入進程號PID輸出無讀入要創(chuàng)建頁表的進程的進程號PID,在進程號與頁表基地址轉換表中找 到進程號所對應的表項,并將該表項清空,表明該進程的頁表映射己經(jīng)完全失 效,同時要將實際頁表中所有項的合法位清空。 (6)進程虛擬地址到物理地址的轉換 輸入虛擬地址VA輸出物理地址PA, SUC寄存器,操作成功返回l,失敗返回0。 將輸入虛擬地址的前10位作為索引,首先在TLB中進行査找,如果查找 到則直接返回物理地址。否則以curr一j3id計算出當前進程頁表的基地址,在該 頁表中選擇出對應的表項。然后檢査該表項的合法位,如果該位為零則表明無 此虛擬地址,程序訪問錯誤,置suc為0。否則將表項中存儲的物理地址高10 位讀出到PA寄存器中和TLB的對應項中。TLB的替換策略采用先進先出的替 換策略。本發(fā)明所述的是一種硬件化的進程內存管理核的方法,提出了操作系統(tǒng)軟 件功能硬件化的思想。主要方法是將內存管理中進程頁表創(chuàng)建,刪除,切換, 虛擬地址映射,反映射以及虛擬地址到物理地址的轉換的功能交付給硬件來完 成,降低了調度時進程切換時的開銷,提高了進程切換時效率。本發(fā)明的思想 可以利用在操作系統(tǒng)的其他部件中。最后,還需要注意的是,以上列舉的僅是本發(fā)明的具體實施例子。顯然, 本發(fā)明不限于以上實施例子,還可以有許多變形。本領域的普通技術人員能從 本發(fā)明公開的內容直接導出或聯(lián)想到的所有變形,均應認為是本發(fā)明的保護范 圍。
權利要求
1、硬件化的進程內存管理核的方法,其特征在于,包括以下步驟(1)進程頁表的創(chuàng)建讀入要創(chuàng)建頁表的進程的進程號PID,在進程號與頁表基地址轉換表中找到進程號所對應的表項,并將進程頁表的基地址,即PID*1024寫入該表項中;(2)進程虛擬地址到硬件地址的映射根據(jù)輸入的進程號PID,計算出該進程的頁表基地址,利用輸入的虛擬地址的高10位作為索引,找到頁表中該虛擬地址對應的項,檢查表項中的合法位是否置位,如果已經(jīng)置位則操作失敗,將用于指示操作是否成功的寄存器suc賦值為0,表示操作失??;否則將物理地址的高10位填入該表項中并將表項中的合法位置位,該合法位標識了該虛擬頁已經(jīng)被映射使用;(3)進程虛擬地址到硬件地址的取消映射根據(jù)輸入的進程號PID,計算出該進程的頁表基地址,利用輸入的虛擬地址的高10位作為索引,找到頁表中該虛擬地址對應的項,將表項中的合法位清除,表示該虛擬頁已經(jīng)被釋放;(4)進程頁表的切換首先將切換前運行的進程PID存儲到用來記錄上一個運行進程PID號寄存器last_pid中,然后將輸入的進程PID號賦給標志當前運行進程PID的寄存器curr_pid;(5)進程頁表的刪除讀入要創(chuàng)建頁表的進程的進程號PID,在進程號與頁表基地址轉換表中找到進程號所對應的表項,并將該表項清空,表明該進程的頁表映射已經(jīng)完全失效,同時要將實際頁表中所有項的合法位清空;(6)進程虛擬地址到物理地址的轉換將輸入虛擬地址的前10位作為索引,首先在TLB中進行查找,如果查找到則直接返回物理地址;否則以curr_pid計算出當前進程頁表的基地址,在該頁表中選擇出對應的表項;然后檢查該表項的合法位,如果該位為零則表明無此虛擬地址,程序訪問錯誤,置suc為0;否則將表項中存儲的物理地址高10位讀出到PA寄存器中和TLB的對應項中;TLB的替換策略采用先進先出的替換策略。
2、 根據(jù)權利要求l所述的硬件化的進程內存管理核的方法,其特征在于,進程頁表創(chuàng)建、刪除、切換、虛擬地址映射、反映射以及虛擬地址到物理地址 的轉換由硬件來完成。全文摘要
本發(fā)明涉及硬件化的操作系統(tǒng)設計,旨在提供一種硬件化的進程內存管理核的方法。該方法包括以下步驟(1)進程頁表的創(chuàng)建;(2)進程虛擬地址到硬件地址的映射;(3)進程虛擬地址到硬件地址的取消映射;(4)進程頁表的切換;(5)進程頁表的刪除;(6)進程虛擬地址到物理地址的轉換。本發(fā)明所述的硬件化的進程內存管理核的方法,提出了操作系統(tǒng)軟件功能硬件化的思想。主要方法是將內存管理中進程頁表創(chuàng)建,刪除,切換,虛擬地址映射,反映射以及虛擬地址到物理地址的轉換的功能交付給硬件來完成,降低了調度時進程切換時的開銷,提高了進程切換時效率。本發(fā)明的思想還可以利用在操作系統(tǒng)的其他部件中。
文檔編號G06F9/46GK101315602SQ20081006234
公開日2008年12月3日 申請日期2008年5月9日 優(yōu)先權日2008年5月9日
發(fā)明者嚴力科, 馮德貴, 楠 張, 罡 王, 章鐵飛, 斌 謝, 劍 陳, 度 陳, 陳天洲, 項凌翔 申請人:浙江大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
仙居县| 甘孜县| 容城县| 崇州市| 汾阳市| 邵阳市| 潮安县| 澄迈县| 高州市| 邢台市| 方正县| 龙井市| 中卫市| 五指山市| 鸡西市| 远安县| 醴陵市| 嘉禾县| 北碚区| 石泉县| 衡水市| 怀仁县| 宁河县| 资阳市| 阿尔山市| 鄯善县| 武平县| 井陉县| 南漳县| 南和县| 康平县| 孟津县| 弥勒县| 洛川县| 阿拉善右旗| 乌拉特后旗| 衡阳县| 霍林郭勒市| 长沙县| 安徽省| 靖江市|