法,所述方法包括:動態(tài)更新用于虛擬存儲器的存儲器設(shè)備中的壓縮存儲部分,所述存儲器設(shè)備包括與所述壓縮存儲部分分開的未壓縮存儲部分,所述虛擬存儲器能夠?qū)⒋鎯ζ鞯刂酚成涞剿鰤嚎s存儲部分;將所述未壓縮存儲部分中分配的存儲區(qū)域壓縮到所述壓縮存儲部分中,其中所述存儲區(qū)域變?yōu)榭捎糜趯碓谒龃鎯ζ髟O(shè)備中的分配,其中所更新的壓縮部分能夠存儲所壓縮的存儲區(qū)域;以及響應(yīng)于對訪問所壓縮的存儲區(qū)域中的數(shù)據(jù)的請求,將所壓縮的存儲區(qū)域解壓縮回所述存儲器設(shè)備中的所述未壓縮部分。2.根據(jù)權(quán)利要求1所述的介質(zhì),其中所述請求導(dǎo)致頁面錯誤,所述頁面錯誤指示所述數(shù)據(jù)在所述未壓縮存儲部分中不可用。3.根據(jù)權(quán)利要求1所述的介質(zhì),其中所述更新包括:從所述未壓縮存儲部分為所述壓縮存儲部分分配額外的存儲,其中用于在所述未壓縮存儲部分中分配的可用存儲的大小由于所述存儲區(qū)域的所述壓縮而增大。4.根據(jù)權(quán)利要求1所述的介質(zhì),其中所述壓縮存儲部分存儲多個壓縮存儲單元,每個壓縮存儲單元對應(yīng)于由所述未壓縮存儲部分壓縮得到的獨立存儲區(qū)域,其中所述壓縮存儲單元中的至少兩個壓縮存儲單元并非連續(xù)存儲于所述壓縮存儲部分中,還包括:對所述壓縮存儲部分進行緊湊化,其中所述緊湊化使得所述壓縮存儲單元中的所述至少兩個壓縮存儲單元連續(xù)存儲于所述壓縮存儲部分中。5.根據(jù)權(quán)利要求4所述的介質(zhì),其中所壓縮的存儲區(qū)域?qū)?yīng)于所述壓縮存儲部分中的特定的壓縮存儲單元,其中所述特定的壓縮存儲單元存儲于所述至少兩個壓縮存儲單元之間,其中所述解壓縮將所述特定的壓縮存儲單元從所述壓縮存儲部分移除,以允許連續(xù)存儲所述壓縮存儲單元中的所述至少兩個壓縮存儲單元。6.根據(jù)權(quán)利要求4所述的介質(zhì),其中所述存儲器設(shè)備與獨立存儲設(shè)備耦接,其中所述更新包括:將所述壓縮存儲單元中的一個或多個壓縮存儲單元從所述壓縮存儲部分換出至所述獨立存儲設(shè)備,其中所述換出使得所述壓縮存儲部分的大小減小以增大所述未壓縮存儲部分的大小。7.根據(jù)權(quán)利要求6所述的介質(zhì),還包括:確定針對所述請求的所壓縮的存儲區(qū)域的所述數(shù)據(jù)在所述壓縮存儲部分中是否為當(dāng)前可用的,其中如果所壓縮的存儲區(qū)域的所述數(shù)據(jù)在所述壓縮存儲部分中為當(dāng)前可用的,則對所壓縮的存儲區(qū)域進行解壓縮。8.根據(jù)權(quán)利要求7所述的介質(zhì),還包括:如果所壓縮的存儲區(qū)域的所述數(shù)據(jù)在所述壓縮存儲部分中不為當(dāng)前可用的,則將所壓縮的存儲區(qū)域從所述獨立存儲設(shè)備換入至所述壓縮存儲部分。9.根據(jù)權(quán)利要求6所述的介質(zhì),其中所述壓縮存儲單元中的所述一個或多個壓縮存儲單元中的特定的一個存儲于所述至少兩個壓縮存儲單元之間,其中所述換出從所述壓縮存儲部分移除所述特定的壓縮存儲單元,以允許連續(xù)存儲所述壓縮存儲單元中的所述至少兩個壓縮存儲單元。10.根據(jù)權(quán)利要求6所述的介質(zhì),其中所述換出包括: 選擇用于所述交換的所述壓縮存儲單元中的所述一個或多個壓縮存儲單元,并且其中所述選擇基于與所述壓縮存儲單元相關(guān)聯(lián)的使用性能。11.根據(jù)權(quán)利要求10所述的介質(zhì),其中所述存儲區(qū)域?qū)?yīng)于所述存儲器設(shè)備中固定大小的存儲單元,其中所述壓縮存儲單元具有不同大小,并且其中所述壓縮存儲單元按照順序線性地存儲于所述壓縮存儲部分中。12.根據(jù)權(quán)利要求11所述的介質(zhì),其中所述使用性能對應(yīng)于與所述壓縮存儲單元相關(guān)聯(lián)的所述線性順序。13.根據(jù)權(quán)利要求12所述的介質(zhì),其中使用性能指示何時針對所述壓縮存儲單元訪問數(shù)據(jù),并且其中所選擇的所述壓縮存儲單元中的所述一個或多個壓縮存儲單元根據(jù)所述選擇的所述線性順序為最近最少使用的。14.根據(jù)權(quán)利要求11所述的介質(zhì),其中所述存儲器設(shè)備經(jīng)由具有數(shù)據(jù)傳輸緩沖區(qū)的接口與所述獨立存儲設(shè)備耦接,其中所述交換基于經(jīng)由所述數(shù)據(jù)傳輸緩沖區(qū)通過所述接口的數(shù)據(jù)傳輸,并且其中所述緊湊化允許所述數(shù)據(jù)傳輸緩沖區(qū)同時承載多個所述壓縮存儲單J L ο15.根據(jù)權(quán)利要求11所述的介質(zhì),其中所述壓縮存儲部分包括一個或多個存儲段,每個存儲段對應(yīng)于所述壓縮存儲單元中的一個或多個壓縮存儲單元的陣列,所述存儲段中的一個存儲段的特定陣列包括兩個或更多個壓縮存儲單元,所述緊湊化包括: 在所述特定存儲段內(nèi)移動所述壓縮存儲單元中的至少一個壓縮存儲單元,以便在所述特定存儲段內(nèi)的連續(xù)存儲空間中存儲所述兩個或更多個壓縮存儲單元。16.根據(jù)權(quán)利要求15所述的介質(zhì),其中每個存儲段具有存儲容量,每個存儲段具有使用率,所述使用率指示所述存儲容量中的多少存儲容量已用于存儲對應(yīng)的壓縮存儲單元陣列,所述緊湊化還包括: 跨所述存儲段移動所述壓縮存儲單元中的一個或多個壓縮存儲單元,其中所述存儲段中的至少一個存儲段的對應(yīng)使用率由于所述壓縮存儲單元中的所述一個或多個壓縮存儲單元的所述移動而增大。17.根據(jù)權(quán)利要求4所述的介質(zhì),其中所述壓縮存儲部分包括多個存儲器插槽池,每個壓縮存儲單元存儲于所述存儲器插槽中的一個或多個連續(xù)的存儲器插槽中,每個池對應(yīng)于所述壓縮存儲單元的獨立分區(qū),每個池與獨立線程相關(guān)聯(lián),并且其中經(jīng)由相關(guān)聯(lián)的線程針對每個池獨立且異步地執(zhí)行所述緊湊化。18.根據(jù)權(quán)利要求6所述的介質(zhì),其中所述存儲區(qū)域?qū)?yīng)于所述存儲器設(shè)備中的存儲頁面,其中所述未壓縮存儲部分包括存儲頁面的工作集,以支持當(dāng)前活動的數(shù)據(jù)處理過程,還包括: 響應(yīng)于休眠請求,將所述存儲頁面的工作集壓縮到所述壓縮存儲部分中的一系列壓縮存儲單元;以及 將所述一系列壓縮存儲單元換出至所述存儲設(shè)備。19.一種其中存儲有指令的機器可讀非暫態(tài)存儲介質(zhì),所述指令在被計算機執(zhí)行時使得所述計算機執(zhí)行一種方法,所述方法包括:基于存儲器設(shè)備提供虛擬存儲器,所述存儲器設(shè)備被動態(tài)劃分為未 壓縮存儲部分和壓縮存儲部分,所述未壓縮存儲部分用于存儲經(jīng)由耦接到所述存儲器設(shè)備的處理器處理的工作數(shù)據(jù); 將所述未壓縮存儲部分的一個或多個存儲頁面壓縮到所述壓縮存儲部分中的一個或多個不同大小的壓縮存儲單元中,其中所述壓縮增大所述未壓縮存儲部分中的可用存儲空間; 響應(yīng)于針對對所述壓縮存儲單元中的一個壓縮存儲單元中的數(shù)據(jù)的訪問請求的頁面錯誤,將所述一個壓縮存儲單元從所述壓縮存儲部分解壓縮到所述未壓縮存儲部分;以及將所述不同大小的壓縮存儲單元中的至少一個壓縮存儲單元從所述壓縮存儲部分換出至海量存儲設(shè)備,其中所述換出增大所述未壓縮存儲部分中的可用存儲空間。20.一種其中存儲有指令的機器可讀非暫態(tài)存儲介質(zhì),所述指令在被計算機執(zhí)行時使得所述計算機執(zhí)行一種方法,所述方法包括: 將存儲器設(shè)備的未壓縮部分的一個或多個存儲頁面壓縮到所述存儲器設(shè)備的壓縮部分中的一個或多個不同大小的壓縮存儲單元中,所述存儲器設(shè)備與海量存儲設(shè)備耦接;將所述不同大小的壓縮存儲單元緊湊化到所述存儲器設(shè)備的所述壓縮部分中的段中; 響應(yīng)于對所述壓縮存儲單元中的一個壓縮存儲單元的訪問請求,將所述一個壓縮存儲單元從所述存儲器設(shè)備的所述壓縮部分解壓縮到所述存儲器設(shè)備的所述未壓縮部分;以及將所述壓縮存儲單元的所述段換出至所述海量存儲設(shè)備以增大所述存儲器設(shè)備中的可用存儲空間。21.—種計算機實現(xiàn)的方法,包括: 動態(tài)更新存儲器設(shè)備中的壓縮存儲部分,所述存儲器設(shè)備包括能夠支持用于至少一個處理器的數(shù)據(jù)處理的未壓縮存儲部分; 將所述未壓縮存儲部分中分配的存儲區(qū)域壓縮到所述壓縮存儲部分中,其中所述存儲區(qū)域變?yōu)榭捎糜趯碓谒龃鎯ζ髟O(shè)備中的分配,其中所更新的壓縮部分能夠存儲所壓縮的存儲區(qū)域;以及 響應(yīng)于對訪問所壓縮的存儲區(qū)域中的數(shù)據(jù)的請求,將所壓縮的存儲區(qū)域解壓縮回所述存儲器設(shè)備中的所述未壓縮部分。22.一種計算機系統(tǒng),包括: 包括可執(zhí)行指令的存儲器,所述存儲器被動態(tài)劃分為壓縮部分和未壓縮部分; 海量存儲設(shè)備; 處理器,所述處理器耦接到所述存儲器和所述海量存儲設(shè)備,所述處理器執(zhí)行來自所述存儲器的所述可執(zhí)行指令,所述處理器被配置為 將所述未壓縮存儲部分中分配的存儲區(qū)域壓縮到所述壓縮存儲部分中,其中所述存儲區(qū)域變?yōu)榭捎糜趯碓谒龃鎯ζ髟O(shè)備中的分配,其中所更新的壓縮部分能夠存儲所壓縮的存儲區(qū)域; 響應(yīng)于對訪問所壓縮的存儲區(qū)域中的數(shù)據(jù)的請求,將所壓縮的存儲區(qū)域解壓縮回所述存儲器設(shè)備中的所述未壓縮部分;以及 響應(yīng)于檢測到所述存儲器設(shè)備中的高存儲器使用,將所壓縮的存儲區(qū)域換出至所述存儲設(shè)備,以增大所述存儲器設(shè)備中的可用存儲空間。
【專利摘要】本發(fā)明描述了一種用于存儲器設(shè)備的方法與裝置,該存儲器設(shè)備包括用于虛擬存儲器的壓縮存儲的動態(tài)更新部分。存儲器設(shè)備可以包括與壓縮存儲部分分開的未壓縮存儲部分。虛擬存儲器能夠?qū)⒋鎯ζ鞯刂酚成涞綁嚎s存儲部分??梢詫⑽磯嚎s存儲部分中分配的存儲區(qū)域壓縮到壓縮存儲部分中。因此,存儲區(qū)域變?yōu)榭捎糜诖鎯ζ髟O(shè)備中所請求的未來分配(例如在壓縮之后)??梢愿聣嚎s存儲部分以存儲所壓縮的存儲區(qū)域。響應(yīng)于對訪問所壓縮的存儲區(qū)域中的數(shù)據(jù)的請求,可以將所壓縮的存儲區(qū)域解壓縮回存儲器設(shè)備中的未壓縮部分。
【IPC分類】G06F12/02, G06F12/08
【公開號】CN105027093
【申請?zhí)枴緾N201380068367
【發(fā)明人】小J·索科爾
【申請人】蘋果公司
【公開日】2015年11月4日
【申請日】2013年11月25日
【公告號】DE112013006298T5, US20140189281, WO2014105323A1