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

通用操作系統(tǒng)對cpu二級緩存訪問的控制方法

文檔序號:6575766閱讀:163來源:國知局
專利名稱:通用操作系統(tǒng)對cpu二級緩存訪問的控制方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機通用操作系統(tǒng)內(nèi)存管理技術(shù)領(lǐng)域,特別是涉及一種通用操作系統(tǒng)對
CPU 二級緩存訪問的控制方法。
背景技術(shù)
CPU緩存是位于CPU與內(nèi)存之間的臨時存儲器,它的容量比內(nèi)存小但交換速度快。在緩 存中的數(shù)據(jù)是內(nèi)存中的一小部分,但這一小部分是短時間內(nèi)CPU即將訪問的,當CPU調(diào)用大 量數(shù)據(jù)時,就可避開內(nèi)存直接從緩存中調(diào)用,從而加快讀取速度。在CPU中加入緩存是一種
高效的解決方案,這樣整個內(nèi)存儲器就變成了既有緩存的高速度,又有內(nèi)存的大容量的存儲
系統(tǒng)了。緩存對CPU的性能影響很大,主要是因為CPU的數(shù)據(jù)交換順序和CPU與緩存間的帶
寬引起的。
CPU在緩存中找到有用的數(shù)據(jù)被稱為命中,當緩存中沒有CPU所需的數(shù)據(jù)時,發(fā)生缺失, CPU才訪問內(nèi)存。緩存的工作原理是當CPU要讀取一個數(shù)據(jù)時,首先從緩存中査找,如果找
到就立即讀取并送給CPU處理;如果沒有找到,就用相對慢的速度從內(nèi)存中讀取并送給CPU
處理,同時把這個數(shù)據(jù)所在的數(shù)據(jù)塊調(diào)入緩存中,可以使得以后對整塊數(shù)據(jù)的讀取都從緩存
中進行,不必再調(diào)用內(nèi)存。正是這樣的讀取機制使CPU讀取緩存的命中率非常高,大多數(shù) CPU可達9(^左右,也就是說CPU下一次要讀取的數(shù)據(jù)9(^都在緩存中,只有大約10%需要從 內(nèi)存讀取。這大大節(jié)省了CPU直接讀取內(nèi)存的時間,也使CPU讀取數(shù)據(jù)時基本無需等待。
最早先的CPU緩存是整體集成在CPU內(nèi)部,且容量低。集成在CPU內(nèi)的緩存漸漸難以滿 足CPU的需求,而制造工藝上的限制又不能大幅度提高緩存的容量,因此出現(xiàn)了集成在與 CPU同一塊電路板上或主板上的緩存。此時就把CPU內(nèi)核集成的緩存稱為一級緩存,而外部 的稱為二級緩存。隨著CPU制造工藝的發(fā)展,二級緩存也能輕易的集成在CPU內(nèi)核中,容量
也在逐年提升。
CPU 二級緩存的出現(xiàn)使得計算機的整體性能得到了又一次巨大的飛躍。二級緩存比內(nèi)存
容量小但速度快,同時比一級緩存容量大但速度略慢,處于計算機存儲系統(tǒng)金字塔結(jié)構(gòu)的第
二層。影響二級緩存性能的最主要因素就是命中率,而提高命中率的方法主要分為兩種第 一種是增加二級緩存容量,用更多的硬件成本換取性能;第二種是用軟件方式提高性能,比
3如改進緩存替換算法。本發(fā)明屬于后者,補充了二級緩存的管理方法。
為了保證CPU訪問時有較高的命中率,緩存中的內(nèi)容應(yīng)該按一定的算法替換。目前緩存
控制器較常用的算法是近似"最近最少使用算法",它是將最近一段時間內(nèi)最少被訪問過的 行淘汰出局。這是一種高效、科學(xué)的算法,在大多數(shù)情況下都有較好的表現(xiàn)。但是在連續(xù)多 次按同一順序遍歷的操作上會出現(xiàn)很差的表現(xiàn),而這種操作卻是常常會遇到的。另一方面,
緩存內(nèi)容的替換算法是固化在CPU中的緩存控制器硬件中的,通用操作系統(tǒng)無法改變或者干
預(yù)這種算法。因此,如果能夠提供一種通用操作系統(tǒng)對二級緩存訪問的控制方法,就可以在 一定程度上彌補緩存替換算法的不足,并解決通用操作系統(tǒng)無法干預(yù)緩存內(nèi)容的現(xiàn)狀,使得 二級緩存的使用更加靈活和高效。

發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的不足,提供一種通用操作系統(tǒng)對CPU 二級緩存訪問
的控制方法。
通用操作系統(tǒng)是一類操作系統(tǒng)的統(tǒng)稱,比如常見的Windows, Linux等都屬于通用操作
系統(tǒng)。與之相對應(yīng)的是專用操作系統(tǒng),或稱為實時操作系統(tǒng),多用于嵌入式領(lǐng)域。通用操作
系統(tǒng)有更普遍的應(yīng)用領(lǐng)域,本發(fā)明中的方法是針對通用操作系統(tǒng)的。 本發(fā)明解決其技術(shù)問題采用的技術(shù)方案包括以下步驟
1) 軟件緩存劃分
在操作系統(tǒng)中可以通過內(nèi)存頁著色的方法實現(xiàn)軟件劃分物理索引的處理器緩存在物理
索引的緩存中,數(shù)據(jù)在物理內(nèi)存中的地址決定了數(shù)據(jù)所映射到的緩存組編號和組內(nèi)偏移,用 來將數(shù)據(jù)映射并索引到緩存的哈希函數(shù)必須利用物理內(nèi)存地址中足夠的位,從而可以尋址整
個緩存;由于當前緩存容量相對較大,這些位數(shù)已經(jīng)超過了內(nèi)存的頁內(nèi)偏移的位數(shù),物理內(nèi) 存的頁編號的低位會與緩存組編號的高位有部分重疊,因此物理內(nèi)存的頁編號決定了緩存中 的指定的一部分組,共享相同緩存組編號位的物理內(nèi)存頁的集合構(gòu)成了一個緩存全等類,整 個物理內(nèi)存可以劃分為多個緩存全等類,具體的個數(shù)與二級緩存大小和物理內(nèi)存頁的大小有 關(guān);
2) 緩存區(qū)域控制方法
在本方法中使用一個名為緩存區(qū)域的結(jié)構(gòu),控制處理器二級緩存的使用情況;緩存區(qū)域 中記錄了被控制的內(nèi)存頁地址的鏈表和起止地址、緩存全等類的數(shù)量、緩存的使用情況、當 前應(yīng)用程序的內(nèi)存結(jié)構(gòu)的信息;控制緩存區(qū)域結(jié)構(gòu)的函數(shù)包括初始化、釋放、向緩存區(qū)域增 加內(nèi)存段、從緩存區(qū)域刪除內(nèi)存段、査找一個內(nèi)存地址是否在指定緩存區(qū)域、為緩存區(qū)域分 配新的內(nèi)存頁、清除緩存區(qū)域的內(nèi)存頁;3) 標記為緩存區(qū)域的機制
要控制處理器二級緩存的訪問范圍,首先要確定應(yīng)用程序要訪問的緩存地址;由軟件緩 存劃分的方法得知,需要保存應(yīng)用程序訪問內(nèi)存物理頁編號的記錄;保存訪問記錄可以利用 操作系統(tǒng)處理虛擬內(nèi)存缺頁的中斷函數(shù);當需要將一塊應(yīng)用程序的內(nèi)存段固定在二級緩存中 時,通過更改虛實地址轉(zhuǎn)換頁表項中這一塊內(nèi)存的權(quán)限位和標記位,使訪問到這一塊內(nèi)存時 會發(fā)生缺頁中斷,在缺頁中斷處理函數(shù)中,根據(jù)頁表項中的標記位添加相關(guān)的分支,即可進 行緩存區(qū)域的相關(guān)操作;
4) 向程序員提供的系統(tǒng)調(diào)用
程序員通過系統(tǒng)調(diào)用來優(yōu)化二級緩存的使用情況;系統(tǒng)調(diào)用將緩存區(qū)域的控制函數(shù)進行 包裝,使得程序員可以方便的控制緩存區(qū)域,只需要在聲明要優(yōu)化的數(shù)據(jù)結(jié)構(gòu)之前使用設(shè)置 緩存區(qū)域的系統(tǒng)調(diào)用即可。
本發(fā)明與背景技術(shù)相比,具有的有益的效果是
本發(fā)明通過改進操作系統(tǒng)內(nèi)核對內(nèi)存缺頁中斷和二級緩存的管理機制,添加系統(tǒng)調(diào)用, 使得操作系統(tǒng)可以控制二級緩存的訪問。該發(fā)明基于軟件緩存劃分的方法,利用物理內(nèi)存頁 編號和二級緩存組編號的地址重疊部分可以將內(nèi)存空間劃分為多個緩存全等類。程序員在編
寫對內(nèi)存頻繁訪問的應(yīng)用程序時,可以通過系統(tǒng)調(diào)用對規(guī)律性頻繁訪問且體積龐大的數(shù)據(jù)結(jié) 構(gòu)進行針對緩存的優(yōu)化,從而減少二級緩存訪問缺失率,顯著提高程序性能。
(1) 性能提升。操作系統(tǒng)對CPU 二級緩存的替換進行控制,從而克服了固化在緩存控制 器硬件中的替換算法的弱點,大幅度提高二級緩存的命中率,使得程序性能得到顯著提升。
(2) 可拓展性?;谲浖彺鎰澐趾途彺嫒阮惖姆椒ǎ僮飨到y(tǒng)中可以設(shè)計多種緩存 替換算法。對于具有不同內(nèi)存訪問規(guī)律的程序使用不同的緩存替換算法,可以進一步拓展本 發(fā)明的應(yīng)用范圍。
(3) 便捷性。程序員在編寫程序時可以方便的利用相關(guān)的系統(tǒng)調(diào)用優(yōu)化程序的緩存訪問。


圖1是軟件緩存劃分編號位重疊的示意圖。
具體實施例方式
在實施通用操作系統(tǒng)對CPU 二級緩存訪問的控制方法時,具體方式如下-
1)軟件緩存劃分
目前通用CPU 二級緩存普遍利用物理內(nèi)存地址來確定內(nèi)存所對應(yīng)的緩存中的位置,也就
是說目前通用CPU二級緩存都是物理索引的緩存;當前的二級緩存容量也已經(jīng)達到足夠大,
5使得控制數(shù)據(jù)映射的哈希函數(shù)利用的物理內(nèi)存地址位數(shù)超過了內(nèi)存頁內(nèi)偏移量的位數(shù),因此 內(nèi)存的物理頁編號的低位與緩存組編號的高位有部分重疊,操作系統(tǒng)可以利用這一部分重疊 的位數(shù)進行軟件緩存劃分。
共享相同緩存組編號位的內(nèi)存物理頁的集合構(gòu)成了一個緩存全等類,每一個類中的內(nèi)存 頁都被映射到緩存中一個固定的區(qū)域,不同的類映射到的緩存區(qū)域不會相同;可用的緩存全 等類的數(shù)量等于2",其中n是在頁內(nèi)偏移量位之上的用來做緩存哈希的位數(shù),即內(nèi)存的物理 頁編號與緩存組編號重疊的位數(shù)。
以IBM PowerPC 970FX處理器為例,它的緩存行大小為128字節(jié),二級緩存共有512組。 內(nèi)存頁大小為常見的4KB時,物理內(nèi)存頁編號會與緩存組編號有4位的重疊,該系統(tǒng)中內(nèi)存 可以劃分為16個,即24個緩存全等類,操作系統(tǒng)控制的內(nèi)存地址可以分成16不同的緩存全 等類,每一個類中的內(nèi)存頁都被映射到不同的二級緩存區(qū)域里。操作系統(tǒng)利用這種不同緩存 全等類不會發(fā)生緩存地址沖突而進行數(shù)據(jù)替換的特征,將被標記到緩存區(qū)域的內(nèi)存地址分散 到不同的緩存全等類當中,從而防止最近最少使用替換原則發(fā)生較差表現(xiàn)的情況,提高二級 緩存的命中率。操作系統(tǒng)利用這種特征,也可以在軟件上實現(xiàn)其他的緩存替換策略,應(yīng)對各 種緩存表現(xiàn)的應(yīng)用程序,實現(xiàn)本方法的可拓展性。
2) 緩存區(qū)域控制方法
緩存區(qū)域結(jié)構(gòu)控制著處理器二級緩存的使用情況,記錄了被標記的物理內(nèi)存地址,保存 了與硬件相關(guān)的控制參數(shù),并提供各種接口函數(shù)給外部使用。
被標記的物理內(nèi)存地址采用鏈表的數(shù)據(jù)結(jié)構(gòu),利用鏈表的靈活性方便的實現(xiàn)增加、刪除 的操作。與硬件相關(guān)的控制參數(shù)包括二級緩存組編號與物理內(nèi)存頁地址的重疊位數(shù),緩存全 等類的數(shù)量,當前應(yīng)用程序的內(nèi)存結(jié)構(gòu)的信息。
提供的接口函數(shù)有初始化、釋放、向緩存區(qū)域增加內(nèi)存段、從緩存區(qū)域刪除內(nèi)存段、査 找一個內(nèi)存地址是否在指定緩存區(qū)域、為緩存區(qū)域分配新的內(nèi)存頁、清除緩存區(qū)域的內(nèi)存頁。 初始化函數(shù)向操作系統(tǒng)申請內(nèi)存空間,創(chuàng)建鏈表,并檢查計算機的硬件結(jié)構(gòu),給相關(guān)的控制 參數(shù)初始值。釋放函數(shù)釋放申請的內(nèi)存空間。向緩存區(qū)域增加內(nèi)存段函數(shù)在鏈表的末尾增加 一個節(jié)點,記錄增加的內(nèi)存地址。從緩存區(qū)域刪除內(nèi)存段先査找要刪除的內(nèi)存地址所在鏈表 節(jié)點,然后從鏈表中刪除該節(jié)點。査找一個內(nèi)存地址是否在指定緩存區(qū)域使用簡單的鏈表遍 歷査找內(nèi)存地址節(jié)點。為緩存區(qū)域分配新的內(nèi)存頁函數(shù)將申請新的物理內(nèi)存頁,這個新的物 理內(nèi)存頁地址對應(yīng)空閑的二級緩存,然后將原來的內(nèi)存頁的內(nèi)容復(fù)制到新的物理內(nèi)存頁中, 同時修改系統(tǒng)中虛地址和實地址的轉(zhuǎn)換表,使得原來的虛地址對應(yīng)新的實地址。清除緩存區(qū) 域的內(nèi)存頁將相應(yīng)的物理內(nèi)存頁釋放,使得對應(yīng)的二級緩存區(qū)域相對空閑。
3) 標記為緩存區(qū)域的機制利用操作系統(tǒng)處理虛擬內(nèi)存缺頁的中斷函數(shù),保存應(yīng)用程序訪問的物理內(nèi)存頁編號記 錄,從而可以調(diào)用緩存區(qū)域結(jié)構(gòu)中的接口函數(shù)控制物理內(nèi)存頁。
當需要將一塊應(yīng)用程序的內(nèi)存段固定在二級緩存中時,首先通過相關(guān)系統(tǒng)調(diào)用將這一段 內(nèi)存對應(yīng)的虛實地址轉(zhuǎn)換頁表項中的用戶權(quán)限位設(shè)置為超級用戶,這是為了引起權(quán)限錯誤而 發(fā)生缺頁中斷并進入中斷函數(shù);然后將頁表項中提供給系統(tǒng)程序員的可用位設(shè)置為特殊值, 這是為了區(qū)別于正常的權(quán)限錯誤,這樣就標記了該內(nèi)存頁為緩存區(qū)域中的內(nèi)存頁。當程序訪 問到被標記的內(nèi)存頁時,由于應(yīng)用程序的訪問權(quán)限屬于普通用戶,而此內(nèi)存頁被標記為超級 用戶,會發(fā)生缺頁中斷。在缺頁中斷處理函數(shù)中,根據(jù)頁表項中的權(quán)限位和保留給系統(tǒng)程序 員的可用位,增加分支。如果是一個被標記為緩存區(qū)域中的內(nèi)存頁,那么査找該內(nèi)存地址是 否已經(jīng)在所有被控制的物理內(nèi)存頁中,如果在那么跳過,如果不在那么將這個內(nèi)存頁加入最 空閑的緩存區(qū)域中,不管是否己經(jīng)被控制都要將原來的頁表項中的權(quán)限位和可用位置為正 常,使得下一次訪問該地址不會發(fā)生同樣的缺頁中斷。
4)向程序員提供的系統(tǒng)調(diào)用
程序員通過系統(tǒng)調(diào)用來優(yōu)化二級緩存的使用情況。系統(tǒng)調(diào)用將緩存區(qū)域的控制函數(shù)進行 包裝,使得程序員可以方便的控制緩存區(qū)域。提供一個特別的系統(tǒng)調(diào)用,將要申請的內(nèi)存地 址對應(yīng)的虛實轉(zhuǎn)換頁表項中的用戶權(quán)限位置為超級用戶,并將提供給系統(tǒng)程序員的可用位置 為特殊值,從而達到標記的目的。將緩存區(qū)域的初始化函數(shù)包裝到這個特別的系統(tǒng)調(diào)用中, 使得第一次調(diào)用標記內(nèi)存地址功能的時候自動初始化緩存區(qū)域結(jié)構(gòu)。程序員在使用規(guī)律性頻 繁訪問且體積龐大的數(shù)據(jù)結(jié)構(gòu)時,可以在聲明該數(shù)據(jù)結(jié)構(gòu)之前調(diào)用這個設(shè)置為緩存區(qū)域的系 統(tǒng)調(diào)用,可以明顯的提高這個數(shù)據(jù)結(jié)構(gòu)的二級緩存命中率。
最后,還需要注意的是,以上公布的僅是本發(fā)明的具體實施例。本領(lǐng)域的普通技術(shù)人 員能從本發(fā)明公開的內(nèi)容直接導(dǎo)出或聯(lián)想到的所有變形,均應(yīng)認為是本發(fā)明的保護范圍。
權(quán)利要求
1、一種通用操作系統(tǒng)對CPU二級緩存訪問的控制方法,其特征在于,包括以下步驟1)在操作系統(tǒng)中以內(nèi)存頁著色的軟件實現(xiàn)方法劃分物理索引的緩存在物理索引的緩存中,數(shù)據(jù)在物理內(nèi)存中的地址決定了數(shù)據(jù)所映射到的緩存組編號和組內(nèi)偏移,用來將數(shù)據(jù)映射并索引到緩存的哈希函數(shù)必須利用物理內(nèi)存地址中足夠的位,從而可以尋址整個緩存;由于當前緩存容量相對較大,物理內(nèi)存地址中的位數(shù)已經(jīng)超過了內(nèi)存的頁內(nèi)偏移的位數(shù),物理內(nèi)存的頁編號的低位會與緩存組編號的高位有部分重疊,因此物理內(nèi)存的頁編號決定了緩存中的指定的一部分組,共享相同緩存組編號位的物理內(nèi)存頁的集合構(gòu)成一個緩存全等類;整個物理內(nèi)存被劃分為多個緩存全等類,具體的個數(shù)與二級緩存大小和物理內(nèi)存頁的大小有關(guān);2)利用緩存區(qū)域的結(jié)構(gòu)來控制處理器二級緩存的使用情況使用函數(shù)控制緩存區(qū)域,并利用緩存區(qū)域記錄被控制的內(nèi)存頁地址的鏈表和起止地址、緩存全等類的數(shù)量、緩存的使用情況、當前應(yīng)用程序的內(nèi)存結(jié)構(gòu)的信息;3)標記為緩存區(qū)域利用操作系統(tǒng)處理虛擬內(nèi)存缺頁的中斷函數(shù)來保存應(yīng)用程序訪問內(nèi)存物理頁編號的記錄,確定應(yīng)用程序要訪問的緩存地址,從而控制處理器二級緩存的訪問范圍當需要將一塊應(yīng)用程序的內(nèi)存段固定在二級緩存中時,通過更改虛實地址轉(zhuǎn)換頁表項中這一塊內(nèi)存的權(quán)限位和標記位,使訪問到這一塊內(nèi)存時會發(fā)生缺頁中斷,在缺頁中斷處理函數(shù)中,根據(jù)頁表項中的標記位添加相關(guān)的分支,即可進行緩存區(qū)域的相關(guān)操作;4)提供系統(tǒng)調(diào)用系統(tǒng)調(diào)用將緩存區(qū)域的控制函數(shù)進行包裝以方便地控制緩存區(qū)域,只需要在聲明要優(yōu)化的數(shù)據(jù)結(jié)構(gòu)之前使用設(shè)置緩存區(qū)域的系統(tǒng)調(diào)用,即可優(yōu)化二級緩存的使用情況。
2、 根據(jù)權(quán)利要求1所述的通用操作系統(tǒng)對CPU 二級緩存訪問的控制方法,其特征在于, 步驟(2)中,所述使用函數(shù)控制緩存區(qū)域,是指使用初始化函數(shù)、釋放函數(shù)、向緩存區(qū)域 增加內(nèi)存段函數(shù)、從緩存區(qū)域刪除內(nèi)存段函數(shù)、查找一個內(nèi)存地址是否在指定緩存區(qū)域函數(shù)、 為緩存區(qū)域分配新的內(nèi)存頁函數(shù)或清除緩存區(qū)域的內(nèi)存頁函數(shù),實現(xiàn)對緩存區(qū)域的結(jié)構(gòu)的控 制。
全文摘要
本發(fā)明涉及計算機通用操作系統(tǒng)內(nèi)存管理技術(shù)領(lǐng)域,旨在提供一種通用操作系統(tǒng)對CPU二級緩存訪問的控制方法。該方法包括以下步驟在操作系統(tǒng)中以內(nèi)存頁著色的軟件實現(xiàn)方法劃分物理索引的緩存、利用緩存區(qū)域的結(jié)構(gòu)來控制處理器二級緩存的使用情況、標記為緩存區(qū)域、提供系統(tǒng)調(diào)用。本發(fā)明通過改進操作系統(tǒng)內(nèi)核對內(nèi)存缺頁中斷和二級緩存的管理機制,添加系統(tǒng)調(diào)用,使得操作系統(tǒng)可以控制二級緩存的訪問。程序員在編寫對內(nèi)存頻繁訪問的應(yīng)用程序時,可以通過系統(tǒng)調(diào)用對規(guī)律性頻繁訪問且體積龐大的數(shù)據(jù)結(jié)構(gòu)進行針對緩存的優(yōu)化,從而減少二級緩存訪問缺失率,顯著提高程序性能。具有性能提升、可拓展性和便捷性等優(yōu)點。
文檔編號G06F12/08GK101510176SQ20091009695
公開日2009年8月19日 申請日期2009年3月26日 優(yōu)先權(quán)日2009年3月26日
發(fā)明者喬福明, 滿 曹, 王春昊, 章鐵飛, 繆良華, 劍 陳, 陳天洲, 項凌翔, 馬建良, 黃江偉 申請人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
嵩明县| 图木舒克市| 南丰县| 昭苏县| 巴南区| 黄梅县| 洛扎县| 江安县| 龙里县| 高密市| 义乌市| 休宁县| 文安县| 麦盖提县| 晋州市| 雅安市| 昌平区| 永吉县| 县级市| 宜黄县| 芜湖市| 和平县| 定日县| 钦州市| 原阳县| 梓潼县| 会理县| 华池县| 得荣县| 抚州市| 北宁市| 阿坝| 洪江市| 客服| 赣榆县| 高要市| 西充县| 于都县| 班玛县| 项城市| 玛曲县|