亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

處理器高速數(shù)據(jù)緩存重配置方法

文檔序號:6556496閱讀:179來源:國知局
專利名稱:處理器高速數(shù)據(jù)緩存重配置方法
技術領域
本發(fā)明涉及操作系統(tǒng)的優(yōu)化技術領域,涉及到操作系統(tǒng)存儲體系結構領域,特別是涉及到一種處理器高速數(shù)據(jù)緩存重配置方法。
背景技術
所謂處理器緩存,通常指的是二級高速緩存,或外部高速緩存。即高速緩沖存儲器,是位于CPU和主存儲器DRAM(Dynamic RAM)之間的規(guī)模較小的但速度很高的存儲器,通常由SRAM(靜態(tài)隨機存儲器)組成。用來存放那些被CPU頻繁使用的數(shù)據(jù),以便使CPU不必依賴于速度較慢的DRAM(動態(tài)隨機存儲器)。
處理器緩存先于內存與CPU交換數(shù)據(jù),因此速度很快。L1 Cache(一級緩存)是CPU第一層高速緩存。內置的L1高速緩存的容量和結構對CPU的性能影響較大,不過高速緩沖存儲器均由靜態(tài)RAM組成,結構較復雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般L1緩存的容量通常在32-256KB。L2 Cache(二級緩存)是CPU的第二層高速緩存,分內部和外部兩種芯片。內部的芯片二級緩存運行速度與主頻相同,而外部的二級緩存則只有主頻的一半。L2高速緩存容量也會影響CPU的性能,原則是越大越好,現(xiàn)在普通臺式機CPU的L2緩存最大為512KB,而筆記本、服務器和工作站上用CPU的L2高速緩存最高可達1MB-3MB。
處理器緩存的基本思想就是依賴于“引用的局部性”,這可以分為時間局部性和空間局部性??臻g局部性是指CPU在某一時刻需要某個數(shù)據(jù),那么很可能下一步就需要其附近的數(shù)據(jù);時間局部性是指當某個數(shù)據(jù)被訪問過一次之后,過不了多少時間就會被再一次訪問。對于應用程序而言,不管是指令流還是數(shù)據(jù)流都會出現(xiàn)引用的局部性現(xiàn)象。因此可以用少量的SRAM作為CPU與DRAM存儲系統(tǒng)之間的緩沖區(qū),即Cache系統(tǒng)。片內Cache也稱為一級Cache。由于高檔處理器的時鐘頻率很高,一旦出現(xiàn)一級Cache未命中的情況,性能將明顯惡化。在這種情況下采用的辦法是在處理器芯片之外再加Cache,稱為二級Cache。二級Cache實際上是CPU和主存之間的真正緩沖。
如果在時間局部性中使用合理的替換策略就可以大大提高緩存的使用效果。而替換策略將決定目前緩存中的某個塊要被某個新塊所替換。當然可以隨機選擇一個新塊來取代緩存現(xiàn)在不使用的塊,也可以應用什么FIFO(First In FirstOut先進先出)、LIFO(Last In First Out后進先出)之類的方式。但是,上面所有的方式都沒有考慮到塊重復使用的問題。
目前最好的策略是去除緩存中不被使用時間最長的塊,也可以表述成去除使用次數(shù)最少(LRU,least Recently Used最近最少被使用者)的塊。如果一個塊有一段時間沒有使用了,那看上去這個塊在這個工作區(qū)的操作中再被使用的機會也就最小,就應該移出去。
這種LRU的算法很是理想化,如果真的在緩存控制上加入檢查每個塊的使用頻率功能,那么不但緩存設計將更為復雜,而且這樣的檢查也將占據(jù)相對的時間,并在移出塊時造成操作的延遲。目前大多數(shù)緩存的設計都是使用的偽-LRU算法,將不使用的塊做上標記,當新塊要進入緩存時,就取代標記最多的那個塊。
不過有時“塊”被移出并不是因為不再用到,而是緩存容量不夠了,必須為待進的塊騰出地方,以滿足當前工作區(qū)的需要。這種情況就是Cache Miss中的最后一種,“Capacity Miss(容量缺失)”,就是不得不因為容量的問題將有用的塊移出。
XSBase27X開發(fā)平臺是基于Intel高性能的PXA27X處理器并裝有嵌入式Linux。該平臺通過各種接口實現(xiàn)了強大的擴展性并能測試PXA27X外圍設備絕大多數(shù)的性能。
該平臺通過IntelPXA27X處理器實現(xiàn)了高性能和最小功耗,因此它非常適合做移動設備。該平臺裝有的Linux內核是最新的2.6.11版本,該操作系統(tǒng)公認是最穩(wěn)定可靠的系統(tǒng),用戶可以在穩(wěn)定的環(huán)境中運行程序,并可以從Linux網(wǎng)絡的穩(wěn)定性中獲得受益。應用程序可以在沒有外部存儲設備如硬盤的環(huán)境中運行。采用的MTD方式閃存文件系統(tǒng)(JFFS2)提供了最大的容量的利用率和可靠運行。在開發(fā)過程中,PXA 27X處理器的各種擴展接口提供了極大的擴展性和便利性。
XScale核是采用ARM V5TE架構的處理器,是Intel公司的StrongARM的升級換代產(chǎn)品。它具有高性能、低功耗等特點,不過,它以核的形式作為ASSP(Application specific Standard Productor)的構件(building block)。PXA250和PXA210應用處理器就是作為手持式設備設計的ASSP。而采用XScale核的第一個應用處理器是Intel的80200,作為I/O應用。

發(fā)明內容
本發(fā)明的目的在于提供一種處理器高速數(shù)據(jù)緩存重配置方法。
本發(fā)明解決其技術問題采用的技術方案如下1)以處理器高速數(shù)據(jù)緩存行為分配單元處理器高速數(shù)據(jù)緩存以行為基本單元與內存進行數(shù)據(jù)交換,對內存的數(shù)據(jù)進行緩存,所以高速數(shù)據(jù)緩存重配置構成的緩存型隨機存儲器也以處理器高速數(shù)據(jù)緩存行作為空間分配的基本單元;2)提供重配置系統(tǒng)調用接口為嵌入式Linux操作系統(tǒng)添加處理器高速數(shù)據(jù)緩存重配置的系統(tǒng)調用,作為程序員重配置高速數(shù)據(jù)緩存的接口;3)確定重配置高速數(shù)據(jù)緩存大小,分配同等大小內存空間由于處理器高速緩存和內存的存取特性,在確定重配置高速數(shù)據(jù)緩存大小和分配將要配置為緩存型隨機存儲器的內存空間時,有兩條原則I.確定重配置高速數(shù)據(jù)緩存大小,由于處理器高速數(shù)據(jù)緩存以行為基本單元與內存進行數(shù)據(jù)交換,對內存的數(shù)據(jù)進行緩存,所以重配置的高速數(shù)據(jù)緩存大小必須以高速數(shù)據(jù)緩存的行為基本單元;II.分配內存空間,由于總線帶寬的限制,內存數(shù)據(jù)以總線帶寬為單元進行對齊時效率將會提高,所以,將要配置為緩存型隨機存儲器的內存空間應當以總線帶寬和高速數(shù)據(jù)緩存的行寬度兩者之間的較大值進行對齊分配;4)重配置處理器高速數(shù)據(jù)緩存重配置處理器高速數(shù)據(jù)緩存需要進行如下步驟I.獲取將要配置為緩存型隨機存儲器的內存起始地址;II.鎖定處理器高速數(shù)據(jù)緩存;III.分配處理器高速數(shù)據(jù)緩存行;IV.解除處理器高速數(shù)據(jù)緩存鎖。
本發(fā)明與背景技術相比,具有的有益的效果是本發(fā)明是一種在基于PXA 27X的嵌入式Linux操作系統(tǒng)中重新配置處理器高速數(shù)據(jù)緩存為緩存型隨機存儲器的方法,其主要功能是在操作系統(tǒng)級提供開發(fā)者系統(tǒng)根據(jù)需要重新配置處理器高速數(shù)據(jù)緩存為緩存型隨機存儲器的系統(tǒng)調用接口,從而使原本對程序員透明的處理器緩存變成可見的。可以用于變量常用的暫用(Scratch)存儲器,它能提供比寄存器文件更大的區(qū)域。
(1)使程序員可以操作處理器高速數(shù)據(jù)緩存。從而,程序員可以顯式地使程序中的常用數(shù)據(jù)駐留在緩存型隨機存儲器之中,即在處理器高速數(shù)據(jù)緩存之中,不必在需要時才加載到處理器高速數(shù)據(jù)緩存。
(2)大幅提高程序中常用變量的訪問速度。系統(tǒng)可以讓程序中常用變量駐留在緩存型隨機存儲器之中,從而不會被替換出處理器高速數(shù)據(jù)緩存。因此可以有效減少這些頻繁數(shù)據(jù)訪問的冷啟動失配,從而提高了數(shù)據(jù)訪問的速度。


附圖是本發(fā)明總體流程圖。
具體實施例方式
處理器高速數(shù)據(jù)緩存重配置方法的具體實現(xiàn)流程如下。
第一步以處理器高速數(shù)據(jù)緩存行為分配單元。
處理器高速數(shù)據(jù)緩存以行為基本單元與內存進行數(shù)據(jù)交換,對內存的數(shù)據(jù)進行緩存,所以高速數(shù)據(jù)緩存重配置構成的緩存型隨機存儲器也以處理器高速數(shù)據(jù)緩存行作為空間分配的基本單元。
XScale的D-Cache為32K字節(jié),采用32路組相聯(lián)的映像方式,即分為32組,每組有32路,每行為32字節(jié)和1位有效位。此外,每行還包含2位“臟”(dirty)位,分別來說明低16字節(jié)和高16字節(jié)是否被改寫過。當訪問Cache命中時,相應半行(16字節(jié))的臟位置起。所以在在基于PXA 27X的嵌入式Linux操作系統(tǒng)的處理器高速數(shù)據(jù)緩存重配置方法的實現(xiàn)中,系統(tǒng)的基本分配單元大小為32字節(jié)。
第二步提供重配置系統(tǒng)調用接口。
為嵌入式Linux操作系統(tǒng)添加處理器高速數(shù)據(jù)緩存重配置的系統(tǒng)調用,作為程序員重配置高速數(shù)據(jù)緩存的接口。
要添加系統(tǒng)調用首先要選擇一個和現(xiàn)有系統(tǒng)調用不沖突的系統(tǒng)調用名稱,即接口名稱。接著選擇或者添加一個尚未使用的系統(tǒng)調用號,然后在系統(tǒng)調用表中添加系統(tǒng)調用表項。第三步確定重配置高速數(shù)據(jù)緩存大小,分配同等大小內存空間。
由于處理器高速緩存和內存的存取特性,在確定重配置高速數(shù)據(jù)緩存大小和分配將要配置為緩存型隨機存儲器的內存空間時,有兩條原則I.確定重配置高速數(shù)據(jù)緩存大小。由于處理器高速數(shù)據(jù)緩存以行為基本單元與內存進行數(shù)據(jù)交換,對內存的數(shù)據(jù)進行緩存,所以重配置的高速數(shù)據(jù)緩存大小必須以高速數(shù)據(jù)緩存的行為基本單元。在基于PXA 27X的嵌入式Linux操作系統(tǒng)的處理器高速數(shù)據(jù)緩存重配置方法的實現(xiàn)中,系統(tǒng)分配的將要配置為緩存型隨機存儲器的內存空間大小必須為32字節(jié)的整數(shù)倍。
II.分配內存空間,由于總線帶寬的限制,內存數(shù)據(jù)以總線帶寬為單元進行對齊時效率將會提高,所以,將要配置為緩存型隨機存儲器的內存空間應當以總線帶寬和高速數(shù)據(jù)緩存的行寬度兩者之間的較大值進行對齊分配。
第四步重配置處理器高速數(shù)據(jù)緩存。
XScale微結構采用了CP15(MMU控制)、CP14(性能監(jiān)視)和CPO(DSP處理)等協(xié)處理。與一般的ARM架構相比,增加了CP14和CP協(xié)處理器,而且CP15還增加了新的功能。
Xscale的數(shù)據(jù)Cache重構通過CP15協(xié)處理器(用于MMU控制)的寄存器9的數(shù)據(jù)Cache的鎖操作來實現(xiàn)。
重配置處理器高速數(shù)據(jù)緩存需要進行如下步驟I.獲取將要配置為緩存型隨機存儲器的內存起始地址和空間大小。
由于對協(xié)處理器CP15的操作屬于特權操作,只允許在操作系統(tǒng)內核態(tài)執(zhí)行,所以系統(tǒng)通過寄存器將要配置為緩存型隨機存儲器的內存空間的起始地址從用戶態(tài)空間傳送進入內核態(tài)空間。
II.鎖定處理器高速數(shù)據(jù)緩存。
在處理器高速數(shù)據(jù)緩存行分配過程中應該禁止其他操作使用高速數(shù)據(jù)緩存,所以在緩存行分配開始前,系統(tǒng)鎖定處理器高速數(shù)據(jù)緩存。在鎖定處理器高速數(shù)據(jù)緩存前,需要排空數(shù)據(jù)緩存中懸掛的存取。
III.分配處理器高速數(shù)據(jù)緩存行。
根據(jù)需要配置的緩存型隨機存儲器空間的大小,分配相同大小的處理器高速數(shù)據(jù)緩存行。并將預先分配的內存空間映射到處理器高速數(shù)據(jù)緩存行,因此,程序員可以在程序中像使用普通內存一樣使用緩存型隨機存儲器空間。
IV.解除處理器高速數(shù)據(jù)緩存鎖。
在處理器高速數(shù)據(jù)緩存行分配完成后,處理器高速數(shù)據(jù)緩存鎖定解除。在解鎖前,需要排空數(shù)據(jù)緩存中懸掛的存取。
權利要求
1.一種處理器高速數(shù)據(jù)緩存重配置方法,其特征在于1)以處理器高速數(shù)據(jù)緩存行為分配單元處理器高速數(shù)據(jù)緩存以行為基本單元與內存進行數(shù)據(jù)交換,對內存的數(shù)據(jù)進行緩存,所以高速數(shù)據(jù)緩存重配置構成的緩存型隨機存儲器也以處理器高速數(shù)據(jù)緩存行作為空間分配的基本單元;2)提供重配置系統(tǒng)調用接口為嵌入式Linux操作系統(tǒng)添加處理器高速數(shù)據(jù)緩存重配置的系統(tǒng)調用,作為程序員重配置高速數(shù)據(jù)緩存的接口;3)確定重配置高速數(shù)據(jù)緩存大小,分配同等大小內存空間由于處理器高速緩存和內存的存取特性,在確定重配置高速數(shù)據(jù)緩存大小和分配將要配置為緩存型隨機存儲器的內存空間時,有兩條原則I.確定重配置高速數(shù)據(jù)緩存大小,由于處理器高速數(shù)據(jù)緩存以行為基本單元與內存進行數(shù)據(jù)交換,對內存的數(shù)據(jù)進行緩存,所以重配置的高速數(shù)據(jù)緩存大小必須以高速數(shù)據(jù)緩存的行為基本單元;II.分配內存空間,由于總線帶寬的限制,內存數(shù)據(jù)以總線帶寬為單元進行對齊時效率將會提高,所以,將要配置為緩存型隨機存儲器的內存空間應當以總線帶寬和高速數(shù)據(jù)緩存的行寬度兩者之間的較大值進行對齊分配;4)重配置處理器高速數(shù)據(jù)緩存重配置處理器高速數(shù)據(jù)緩存需要進行如下步驟I.獲取將要配置為緩存型隨機存儲器的內存起始地址;II.鎖定處理器高速數(shù)據(jù)緩存;III.分配處理器高速數(shù)據(jù)緩存行;IV.解除處理器高速數(shù)據(jù)緩存鎖。
全文摘要
本發(fā)明公開了一種處理器高速數(shù)據(jù)緩存重配置方法。本發(fā)明實現(xiàn)一種重配置處理器高速數(shù)據(jù)緩存,使其映射到固定的內存空間,其主要功能是在操作系統(tǒng)級為開發(fā)者提供根據(jù)需要重新配置處理器高速數(shù)據(jù)緩存為緩存型隨機存儲器的系統(tǒng)調用接口,從而使原本對程序員透明的處理器緩存變成可見的??梢杂糜谧兞砍S玫臅河么鎯ζ?,它能提供比寄存器文件更大的區(qū)域。
文檔編號G06F15/78GK1851675SQ20061005018
公開日2006年10月25日 申請日期2006年4月4日 優(yōu)先權日2006年4月4日
發(fā)明者陳天洲, 嚴力科, 蔣寧, 陳學亮 申請人:浙江大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1