新四季網

使用頁面過濾器和系統MMU的硬體輔助存儲器壓縮管理的製作方法

2023-05-17 17:19:16


本申請要求2014年10月7日提交的美國臨時專利申請序列號62/060,949的優先權,該公開的全部內容以引用的方式併入本文。



背景技術:

用於存儲器壓縮的現有手段通常將重點放在經常應用於GPU(圖形處理器單元)、ISP(圖像信號處理器)、視頻、和/或顯示流的像素/參考幀存儲器壓縮。雖然這樣的技術能夠實現一定程度的帶寬減小,但是沒有一種針對或者能夠減少存儲器佔用。



技術實現要素:

本發明內容按照簡化的形式介紹了對概念的選擇以提供對本公開的一些方面的基本理解。本發明內容不是本公開的廣泛概述,並且不旨在標識本公開的關鍵或者重要元素或者記述本公開的範圍。本發明內容僅呈現了本公開的概念中的一些以作為下面提供的具體實施方式的前序。

本公開大體上涉及用於管理存儲器的方法和系統。更具體地,本公開的方面涉及基於硬體的頁面過濾器,其被設計為區分活動的頁面與不活動的頁面,並且在頁面錯誤發生之前對不活動的頁面進行壓縮。

本公開的一個實施例涉及一種用於存儲器壓縮管理的方法,包括:使用頁面過濾器來確定虛擬存儲器空間中的頁面是不活動的;從對應的作業系統的頁面表去除不活動的頁面的工作存儲器地址信息;確定在工作存儲器中的位置以分配該不活動的頁面的壓縮信息;分配該不活動的頁面的壓縮存儲器地址;利用該不活動的頁面的壓縮存儲器地址來更新轉換後備緩衝區;以及將壓縮存儲器地址寫入壓縮存儲器。

在另一實施例中,該用於存儲器壓縮管理的方法進一步包括:從對應的作業系統的頁面表去除不活動的頁面的對應頁面表條目。

在另一實施例中,該用於存儲器壓縮管理的方法進一步包括:引發作業系統的存儲器管理單元的中斷以分配在不活動的頁面的壓縮存儲器中的地址。

本公開的另一實施例涉及一種用於存儲器壓縮管理的系統,該系統包括至少一個處理器和耦合至該至少一個處理器的非暫時性計算機可讀介質,該非暫時性計算機可讀介質存儲有指令,該指令在由該至少一個處理器執行時致使該至少一個處理器:使用硬體頁面過濾器來確定虛擬存儲器空間中的頁面是不活動的;從對應的頁面表去除不活動的頁面的工作存儲器地址信息;確定在工作存儲器中的位置以分配該不活動的頁面的壓縮信息;分配該不活動的頁面的壓縮存儲器地址;利用該不活動的頁面的壓縮存儲器地址來更新關聯高速緩存;以及將該不活動的頁面的壓縮存儲器地址寫入該壓縮存儲器。

在另一實施例中,在用於存儲器壓縮管理的系統中的該至少一個處理器被進一步致使:從頁面表去除該不活動的頁面的對應頁面表條目。

在再一實施例中,在用於存儲器壓縮管理的系統中的該至少一個處理器被進一步致使:使用存儲器管理單元利用該不活動的頁面的壓縮存儲器地址來更新該關聯高速緩存。

在又一實施例中,在用於存儲器壓縮管理的系統中的該至少一個處理器被進一步致使:引發存儲器管理單元的中斷以分配在不活動的頁面的壓縮存儲器中的地址。

本公開的再一實施例涉及一種用於存儲器壓縮管理的方法,該方法包括:使用硬體頁面過濾器來檢測虛擬存儲器空間中的不活動的頁面;在頁面錯誤之前對該不活動的頁面進行壓縮;以及向對應作業系統的內核提供關於所壓縮的不活動頁面的信息。

在另一實施例中,該用於存儲器壓縮管理的方法進一步包括:在作業系統的頁面表中,記錄該虛擬存儲器空間中的頁面中的每一個的壓縮存儲器的起始物理地址。

在再一實施例中,該用於存儲器壓縮管理的方法進一步包括:在該頁面表中,記錄虛擬存儲器空間中的頁面中的每一個的壓縮信息。

在又一實施例中,該用於存儲器壓縮管理的方法進一步包括:引發中斷以利用關於所壓縮的不活動頁面的信息來更新內核中的頁面表條目。

在一個或者多個其它實施例中,本文描述的方法和系統可以可選地包括以下附加特徵中一個或者多個:由作業系統的存儲器管理單元利用不活動的頁面的壓縮存儲器地址來更新轉換後備緩衝區(例如,關聯高速緩存);利用不活動的頁面的壓縮存儲器地址來更新該轉換後備緩衝區(或者關聯高速緩存)以維持虛擬存儲器、壓縮存儲器、和工作存儲器之間的轉換信息;頁面過濾器基於頁面的引用計數低於閾值計數來確定虛擬存儲器空間中的頁面是不活動的;頁面過濾器基於在預定時間段期間頁面的引用計數低於閾值計數來確定虛擬存儲器空間中的頁面是不活動的;和/或響應於容量逐出或者引用計數飽和而引發中斷。

本公開的適用性的進一步範圍將根據下面給出的具體實施方式變得顯而易見。然而,應當理解,由於在本公開的精神和範圍內的各種改變和修改將根據具體實施方式而對於本領域的技術人員變得顯而易見,因此,具體實施方式和具體示例雖然指示了優選實施例,但是僅通過說明的方式給出。

附圖說明

本公開的這些和其它目的、特徵、和特性將根據結合所附權利要求書和附圖來對以下具體實施方式的學習對本領域的技術人員變得更顯而易見,該所有內容形成本說明書的一部分。在附圖中:

圖1是圖示了根據本文描述的一個或者多個實施例的、使用頁面過濾器和系統存儲器管理單元來進行硬體輔助的存儲器壓縮管理的示例系統的框圖。

圖2是圖示了根據本文描述的一個或者多個實施例的、已經向其添加了壓縮信息的示例主存儲器頁面表的框圖。

圖3是圖示了根據本文描述的一個或者多個實施例的、使用頁面過濾器來進行基於硬體的頁面剖析的示例方法的流程圖。

圖4是圖示了根據本文描述的一個或者多個實施例的、系統存儲器管理單元的示例操作的框圖。

圖5是圖示了根據本文描述的一個或者多個實施例的、使用頁面過濾器和系統存儲器管理單元來對存儲器進行壓縮的示例方法的流程圖。

圖6是圖示了根據本文描述的一個或者多個實施例的、使用系統存儲器管理單元來對存儲器進行解壓的示例方法的流程圖。

圖7是圖示了根據本文描述的一個或者多個實施例的、被配置用於使用頁面過濾器和系統存儲器管理單元來進行硬體輔助的存儲器壓縮管理的示例計算設備的框圖。

本文提供的標題僅僅是為了方便起見,並不一定會影響本公開中所要求保護的範圍或者含義。

在附圖中,為了便於理解且出於方便起見,相同的附圖標記和任何首字母縮寫標識具有相同或者類似結構或者功能的元素或者動作。將在下面的具體實施方式中對附圖進行詳細描述。

具體實施方式

現在將對各個示例和實施例進行描述。以下描述提供具體細節以供徹底理解並且實現對這些示例的描述。然而,相關領域的技術人員要明白,可以在沒有這些細節中的很多細節的情況下實踐本文描述的一個或者多個實施例。同樣,相關領域的技術人員還要明白,本公開的一個或者多個實施例可以包括本文未詳細描述的許多其它明顯的特徵。此外,下面將不會詳細示出或者描述一些熟知的結構或者功能,以便避免不必要地模糊相關描述。

為了實現虛擬存儲器,計算機系統需要具有通常被稱為MMU(存儲器管理單元)的特殊存儲器管理硬體。在沒有MMU的情況下,當CPU(計算機處理單元)訪問RAM(隨機存取存儲器)時,在RAM內的實際位置不會改變(例如,特定存儲器地址在RAM內始終是相同的物理位置)。然而,利用MMU,在每次存儲器訪問之前通過轉換步驟來處理存儲器地址。如此,可能會使給定的存儲器地址一次指向第一物理地址,並且另一次指向第二物理地址。因為對於數十億字節的存儲器分別地追蹤虛擬到物理轉換所需要的資源會過大,所以,MMU將RAM劃分成頁面,所述頁面是MU將其作為單個實體來處理的設定大小的存儲器的毗連區段。因此,可以將物理存儲器視為被稱作頁面幀的固定大小的槽的陣列,其中的每一個可以包含單個虛擬存儲器頁面。

為了記錄地址空間的每個虛擬頁面被放置在物理存儲器中的位置,作業系統保持被稱為頁面表(PT)的每進程數據結構。頁面表的主要作用是存儲地址空間的虛擬頁面中的每一個的地址轉換,從而通知每個頁面駐留在物理存儲器中的位置。為了對特定進程所生成的虛擬地址進行轉換,有必要首先將其分成兩個分量:虛擬頁面號(VPN)和頁面內的偏移。

然後,利用VPN有可能對頁面表進行索引並且確定虛擬頁面駐留在哪個物理幀內。例如,通過使用頁面表,有可能確定虛擬頁面的對應物理幀號(PFN)(有時也稱為物理頁面號或者PPN)。然後可以通過用PFN(或者PPN)替換VPN來對虛擬地址進行轉換。應當理解,不對偏移進行轉換(其保持不變),因為偏移僅指示頁面內的期望字節。

頁面錯誤是在程序嘗試訪問(例如,請求)在其地址空間中但當前不位於作業系統的真實存儲器(例如,RAM)中的數據(或者代碼)時發生的事件的序列。作業系統必須通過以某種方式使訪問的數據常駐存儲器來處理頁面錯誤,從而允許程序繼續操作,就像頁面錯誤從未發生過一樣。例如,如果CPU向MMU呈交期望地址,並且MMU不具有對於該地址的轉換,則MMU中斷CPU並且致使執行軟體(通常稱為頁面錯誤處理程序(handler))。然後,該頁面錯誤處理程序確定為了解決該頁面錯誤而必須要完成的操作(例如,從虛擬存儲器空間取得數據並且將該數據加載到RAM中)。

當進程(例如,與程序相關聯的進程)請求訪問其存儲器中的數據時,作業系統的責任是將由該進程提供的虛擬地址映射至存儲該數據的實際存儲器的物理地址。頁面表是作業系統存儲其虛擬地址到物理地址的映射的地方,其中,每個映射也被稱為「頁面表條目」(PTE)。

轉換後備緩衝區(TLB)是頁面表條目(PTE)的關聯高速緩存,其中每個塊是單個PTE。如果條目(與虛擬頁面相對應)不在TLB中,則發生TLB「未命中(miss)」。如果該條目也不在作業系統的真實存儲器中(例如,其已經被「換出(paged out)」),則也發生頁面錯誤。TLB和頁面表共同構成從虛擬地址映射至物理地址的轉換單元。

本公開的實施例涉及用於通過使用被設計為區分活動頁面與不活動頁面(本文中有時分別被稱為「熱」頁面和「冷」頁面)的基於硬體的頁面過濾器來管理存儲器,使得在發生頁面錯誤之前對不活動頁面進行壓縮的方法和系統。

如下面將更詳細地描述的,本公開的方法和系統被設計為:實現更低的成本、更長的電池壽命、和更快的用戶響應等。例如,根據至少一個實施例,至少就容量而言,實現了較低的成本,這是由於使4GB的DRAM(動態隨機存取存儲器)表現得如同8GB的DRAM一樣。在這個意義上,本公開的方法和系統以壓縮計算能量(例如,幾pJ/Op)換得DRAM成本(例如,每GB幾美元)。在延長電池壽命方面,更少的DRAM訪問(GB/s)意指更少的功率消耗(mW),並且因此,本文描述的方法和系統可以以片上壓縮計算能量(例如,幾pJ/Op)換得片外存儲器參考能量(例如,幾百pJ/B)。另外,通過利用硬體輔助的MMU(例如,μ8)而不是OS/內核(例如,ms)來實現更快的用戶響應。

儘管用於存儲器管理的現有方法基於像素或者幀緩衝區壓縮,但是本公開的方法和系統將重點放在CPU的程序(例如,通用數據結構)上。例如,根據一個或者多個實施例,本文描述的方法和系統利用ZRAM(如下面進一步描述的,該ZRAM提供了一種形式的虛擬存儲器壓縮),該ZRAM以程序的通用堆為目標。將重點放在要分流的硬體加速的存儲器壓縮來使CPU降低負荷(offload)轉換了更高的功率效率(例如,ASIC功率比CPU低大約100倍)和更高的性能(例如,ASIC比CPU快大約10倍),並且還允許硬體輔助的存儲器管理來使OS/內核降低負荷,這顯著增加了響應時間。下面提供了根據本公開的方法和系統的關於ZRAM及其利用的附加細節。

ZRAM提供了一種形式的虛擬存儲器壓縮。ZRAM對RAM的實際塊進行壓縮以便使更多的RAM可用於作業系統。內核(例如,用於通過將這樣的請求轉換成用於CPU的數據處理指令來管理來自軟體應用的輸入/輸出請求的電腦程式)動態地對程序的存儲器進行壓縮而無需程序對其了解(「透明」存儲器壓縮)。通過程序的虛擬地址空間和請求頁面調度來實現該壓縮。內核可以取消對來自程序的頁面表的頁面的映射並且對這些頁面進行壓縮。當訪問壓縮頁面(例如,由程序請求)時,頁面錯誤處理器讀取PTE以從壓縮池空間定位該頁面,對該頁面進行解壓,並且將該頁面連結回程序的頁面表。

圖1是用於硬體輔助的存儲器壓縮管理的示例系統100。根據本文描述的一個或者多個實施例,系統100可以包括頁面過濾器110、系統存儲器管理單元130(系統MMU)、最後一級高速緩存(LLC)120、構架(Fabric)140、主未壓縮存儲器控制器(寬I/O 2或者WIO2 Ct1)160、具有寬I/O 2接口標準的主未壓縮存儲器(WIO2 RAM)180、低功率雙倍數據速率存儲器控制器(例如,LPDDR3 Ctl)150、和具有LPDDR3接口標準170的備份壓縮存儲器(ZRAM)。

根據至少一個實施例,可以將頁面過濾器110配置為檢測不活動的(或者「冷」)頁面,而系統MMU 130維持victim TLB(轉換後備緩衝區)。例如,LLC 120可以是8MB的片上靜態隨機存取存儲器(SRAM),並且構架140是在系統的各個代理(例如,組件、元件等)之間移動命令/分組的片上互連,包括:例如CPU、GPU、片上SRAM高速緩存、片外DRAM等。此外,LPDDR3 Ct1 150是與JEDEC LPDDR3 ZRAM170(備份壓縮存儲器)對接的存儲器控制器。雖然出於容量原因提供LPDDR3 ZRAM 170,但是主工作存儲器WIO 2 RAM 180被包括在系統100中以提供工作帶寬。WIO2 RAM 180是除了片上MMU之外提供的專用(例如,高帶寬、更小的容量)存儲器。應當了解,雖然WIO2是行業標準,但是與LPDDR3一起使用WIO2和片上MMU是一種實現改進的速度和改進的存儲器管理的新方法。

在隨後的章節中,根據本公開的一個或者多個實施例,在描述頁面過濾器(例如,在圖1中示出的示例系統100中的頁面過濾器110)的各個特徵的場境(context)中使用「容量逐出」和「引用計數飽和」。例如,頁面過濾器可以具有對系統層級(不是CPU)的4KB頁面的活動保持追蹤的1024個條目。在該場境中,頁面過濾器是片上高速緩存,因為主頁面表駐留在DRAM中。當必須監視新頁面時,高速緩存控制器將逐出舊條目(稱為「容量逐出」的動作)。類似地,當條目的引用計數達到其最大值(即,「引用計數飽和」)時,高速緩存控制器將引發中斷以通知內核的MMU來更新主頁面表。

根據本文描述的一個或者多個實施例,可以在引發中斷時使用基於硬體的頁面剖析以在容量逐出或者引用計數飽和期間更新內核的PTE。例如,一個歷史表可以追蹤4KB的頁面,而另一歷史表追蹤較大(例如,4MB)的頁面。各個頁面可以具有最近最少使用(LRU)歷史記錄或者引用計數以查看頁面在一段時間內被引用的頻繁程度,其中,該時間段可以是可調整的。可以限定閾值,並且當需要進行容量逐出時,引發中斷以逐出未使用的頁面/對其進行壓縮。如上所述,容量逐出是必須監視新頁面並且必須從歷史表逐出舊條目的時候。

下文描述根據本公開的一個或者多個實施例的、在基於硬體的頁面剖析的示例過程內的頁面過濾器的各個特徵和操作。在下面的描述中,有時會參照在圖3中圖示的對應特徵和/或操作。

圖3圖示了使用頁面過濾器來進行基於硬體的頁面剖析的示例過程300。根據本文描述的一個或者多個實施例,頁面剖析的示例過程300可以利用設計為區分活動的(「熱」)頁面與不活動的(「冷」)頁面的頁面過濾器(例如,在圖1中示出的示例系統100中的頁面過濾器110)以使得在發生頁面錯誤之前對不活動的頁面進行壓縮。在下面的章節中提供了關於在基於硬體的頁面剖析的示例過程300中的框305至320中的一個或者多個的進一步細節。

PTE提供頁面引用的歷史記錄,使得內核可以決定對哪個頁面進行壓縮。不應當對活動的或者「熱」頁面進行壓縮。頁面過濾器是片上的,而頁面表是在DRAM中的。由於片上表具有有限的條目,因此在頁面過濾器中發生容量逐出。每當存在容量逐出時,利用最新的引用計數來更新DRAM中的頁面表條目。

如上所述,當發生引用計數飽和時,已經達到最大引用計數(例如,對於8位計數器為255或者更大),這意指無法再追蹤歷史記錄。在這樣的情況下,可以逐出條目,或者可以重置計數器,並且將相關的引用計數值添加至DRAM中的頁面表條目。

根據至少一個實施例,可以基於預定方式(例如,每小時)或者動態地(例如,根據閾值被滿足)重置DRAM頁面表以便防止DRAM中的計數飽和。

根據至少一個實施例,頁面過濾器設計為向內核提供附加信息。雖然內核已經具有一些信息,但是頁面過濾器可以通過例如引用計數和/或LRU向量來添加進一步的信息。

此外,在至少一個實施例中,作業系統可以向內核提供使得內核能夠覆寫(override)基於硬體的頁面過濾器的提示。這樣的布置可以允許頁面保持「熱」,而不管該頁面未被使用/引用。這樣的提示還可以被用於覆寫對頁面的壓縮,該壓縮可能會花費過長的時間來解壓。通過OS來確定頁面大小,並且然後將該頁面大小設計到硬體中。另一固定參數是片上歷史表的大小。例如,微控制器實施方式可以允許這些特徵在資源限制內是可配置的。微控制器可以使用ROM或者外部RAM來保存其狀態。

圖4圖示了系統存儲器管理單元(例如,在圖1中示出的並且在上面詳細描述的示例系統100中的系統MMU 130)的示例操作(400)。根據本公開的一個或者多個實施例,可以將系統MMU配置為通過緩存頁面表條目來執行硬體輔助的(例如,硬體加速的)存儲器壓縮管理。

例如,根據至少一個實施例,硬體輔助的ZRAM可以負責緩存虛擬頁面號(VPN)、物理頁面號(PPN)、和壓縮頁面號(ZPN)。應當理解,在本公開的場境中,主工作存儲器(物理存儲器)可以是未壓縮的。例如,壓縮存儲器空間(例如,3GB的LPDDR3)可以變成6GB至9GB的壓縮ZRAM。

在現有方法中,主工作存儲器會試圖將虛擬地址映射至物理地址。然而,對於壓縮而言,需要更多的信息。如此,添加壓縮信息意指可以以例如4KB的粒度來將來自LPDDR3空間的物理頁面映射至多個壓縮頁面。因此,可以將4KB的物理頁面映射至兩個壓縮頁面。

根據本公開的一個或者多個實施例,可以將上面描述的壓縮信息添加至頁面表。圖2圖示了已經向其添加了壓縮信息的這樣的主存儲器頁面表的示例。另外,還可以將每個頁面的起始地址記錄在頁面表中,在該頁面表中起始地址是壓縮存儲器的物理地址。應當注意,在頁面表中除了將虛擬地址映射至物理地址之外記錄起始地址。按照這種方式,將虛擬地址映射至物理地址,並且將物理地址分離到壓縮和未壓縮存儲器中。

如上所述,CPU具有TLB。當條目未被映射時,將條目分配給系統層級MMU,這意指從工作DRAM挑選出頁面並且將該頁面從當前向壓縮空間的映射中去除。然後,觸發內核進行一些壓縮工作,並且分配條目。當壓縮完成時,利用指示壓縮頁面被分配至其的物理位置的信息來在主存儲器表中更新分配的條目。然後,片上數據結構(例如,系統MMU)利用壓縮的頁面信息來被更新。

例如,當用戶嘗試在該用戶已經在web瀏覽器中打開的不同標籤之間進行交換時,可以讀取分配的條目。具體地,用戶交換到的標籤的網頁被壓縮過,並且現在作為用戶交換至該標籤的結果而正被解壓。在這樣的場景中,讀取壓縮條目以確定在何處取得壓縮存儲器空間並且將其移動至未壓縮空間。

如上所述,TLB未命中導致頁面錯誤。因此,根據本公開的至少一個實施例,可以將DRAM表的某部分保存在片上MMU中,使得可以比在DRAM處查找更快地獲得(例如,檢索、請求等)條目。

此外,一旦將與條目對應的虛擬頁面和物理頁面重新映射至CPU TLB(例如,將壓縮頁面從壓縮區域移動至未壓縮工作存儲器),則可以從MMU去除該條目因為其現在被分配在CPU TLB中。在另一示例中,在例如進程被終止或者標籤被去除的情況下,還可以通過內核MMU來使頁面表條目無效/去除頁面表條目。應當理解,直到程序完成或者被終止才從虛擬存儲器去除條目,在該時刻程序可以清除虛擬地址空間。

根據至少一個實施例,高速緩存操作引擎被配置為取消對來自CPU TLB的物理頁面的映射並且刷新來自最後一級高速緩存(LLC)的任何行。刷新來自LLC的行是必要的,因為硬體觸發的壓縮需要從高速緩存去除壓縮內容以使高速緩存與存儲器保持一致。例如,高速緩存操作可以與在DRAM抽取某物並且將其移動至壓縮空間時的分配同時發生。在另一示例中,可以通過硬體引擎決定是時候對頁面進行壓縮來觸發高速緩存操作。在又一示例中,可以通過內核從存儲器逐出頁面來觸發高速緩存操作。

圖5圖示了使用頁面過濾器和系統存儲器管理單元(例如,在圖1中示出的並且在上面詳細描述的示例系統100中的頁面過濾器110和系統MMU 130)來對存儲器進行壓縮的示例過程。下面提供了關於在使用頁面過濾器和系統MMU來進行存儲器壓縮的示例過程500中的框505至530中的一個或者多個的各個細節。

根據本文描述的一個或者多個實施例,當給定頁面的引用計數被確定為小於一定閾值(其可以是預定的或者可以在操作期間動態地確定/調整)時,頁面被認為(例如,分類、視為、確定等)是冷頁面。發生這樣的情況的結果是:系統MMU刷新來自高速緩存的對應頁面表條目或者內核MMU處置頁面錯誤(標準存儲器逐出)。

如果片上頁面過濾器檢測到冷頁面,則系統MMU將要求來自高速緩存的該物理頁面號。例如,可以取得4KB數據並且對該數據進行壓縮,並且將壓縮的存儲器分配給頁面表條目。然後,內核查找其存儲器頁面表,並且決定在何處分配壓縮頁面。一旦內核決定哪個物理頁面得到壓縮頁面信息,片上MMU便更新victim TLB以保持虛擬、壓縮、和工作存儲器之間的轉換。因此,將壓縮頁面從工作存儲器逐出到壓縮存儲器中。根據本文描述的一個或者多個實施例,可以將直接存儲器存取(DMA)引擎配置為將壓縮頁面寫入壓縮存儲器(例如,在圖1示出的示例系統100中的LPDDR3 ZRAM 170)。首先發生地址分配,然後將內容保存至壓縮存儲器。

圖6圖示了使用系統存儲器管理單元(例如,在圖1中示出的並且在上面詳細描述的示例系統100中的系統MMU 130)來對存儲器進行解壓的示例過程。下面提供了關於在使用系統MMU來進行存儲器解壓的示例過程600中的框605至630中的一個或者多個的各個細節。

根據一個或者多個實施例,例如,場境切換可以是在用戶在web瀏覽器中的標籤之間切換時。例如,可能已經對用戶可以嘗試切換至其的網頁進行了壓縮,並且因此,TLB將不會使物理地址在工作存儲器中被映射,從而致使頁面錯誤。這樣的事件可以發起(例如,開始)預取過程。例如,可以假設程序具有多個需要被取得並且填充的頁面。如此,存儲器解壓的示例過程被設計為不僅得到(例如,檢索、請求、取得等)當前請求的頁面,而且還獲得後繼毗連的所請求頁面。

查找虛擬和壓縮地址並且引發中斷以通過找到被分配在工作存儲器中的物理頁面號的空間來處置頁面錯誤。雖然正在進行1級存儲器(該1級存儲器是主工作存儲器)分配,但是可以從2級存儲器(該2級存儲器是壓縮存儲器)取得壓縮頁面,並且對該壓縮頁面進行解壓。MMU頁面表更新和解壓應當大致在相同時間完成(解壓可能更快)。可以在頁面表中分配並且更新1級存儲器,並且然後可以將未壓縮存儲器寫入分配的1級存儲器空間。

圖7是配置用於使用頁面過濾器和系統存儲器管理單元來進行硬體輔助的存儲器壓縮管理的示例性計算機(700)的高級框圖。例如,根據本文描述的一個或者多個實施例,可以將計算機(700)配置為執行基於硬體的頁面剖析以在容量逐出或者引用計數飽和期間更新內核的PTE。在非常基本的配置(701)中,計算裝置(700)通常包括一個或者多個處理器(710)和系統存儲器(720)。存儲器總線(730)可以被用於在處理器(710)和系統存儲器(720)之間進行通信。

根據期望的配置,處理器(710)可以是任何類型的處理器,包括但不限於:微處理器(μΡ)、微控制器(μC)、數位訊號處理器(DSP)、或者其任何組合。處理器(710)可以包括一個更多層級的高速緩存——諸如一級高速緩存(711)和二級高速緩存(712)、處理器核心(713)、和寄存器(714)。處理器核心(713)可以包括算數邏輯單元(ALU)、浮點單元(FPU)、數位訊號處理核心(DSP Core)、或者其任何組合。存儲控制器(716)還可以和處理器(710)一起使用,或者在一些實施方式中,存儲控制器(715)可以是處理器(710)的內部部分。

根據期望的配置,系統存儲器(720)可以是任何類型的存儲器,包括但不限於:易失性存儲器(諸如,RAM)、非易失性存儲器(諸如,ROM、閃速存儲器等)或者其任何組合。系統存儲器(720)通常包括作業系統(721)、一個或者多個應用(722)、和程序數據(724)。應用(722)可以包括使用頁面過濾器和系統MMU來對存儲器進行有效率地壓縮和解壓的硬體輔助的存儲器壓縮管理系統(723)。

程序數據(724)可以包括存儲指令,該指令在由一個或者多個處理裝置執行時實現用於硬體輔助的存儲器壓縮管理的系統和方法。此外,根據至少一個實施例,程序數據(724)可以包括頁面引用計數數據(725),該頁面引用計數數據可以涉及頁面剖析操作,在該操作中當例如頁面的引用計數低於一定閾值時,頁面被確定為不活動。在一些實施例中,可以將應用(722)布置為與作業系統(721)上的程序數據(724)一起操作。

計算設備(700)可以具有附加特徵或者功能、和附加接口以促進基本配置(701)與任何需要的裝置和接口之間的通信。

系統存儲器(720)是計算機存儲介質的示例。計算機存儲介質包括但不限於:RAM、DRAM、SARM、ROM、EEPROM、閃速存儲器或者其它存儲器技術、CD-ROM、數字多功能盤(DVD)或者其它光學儲存器、磁帶盒、磁帶、磁碟儲存器或者其它磁存儲設備、或者可以被用於存儲期望的信息並且可由計算設備700進行訪問的任何其它介質。任何這樣的計算機存儲介質都可以是設備(700)的一部分。

可以將計算設備(700)實現為小封裝技術可攜式(或者移動)電子設備的一部分,所述小封裝技術可攜式(或者移動)電子設備諸如,蜂窩電話、智慧型電話、個人數字助理(PDA)、個人媒體播放器設備、平板計算機(平板)、無線web手錶設備、個人耳機設備、專用設備、或者包括上面的功能中的任何一個的混合設備。還可以將計算設備(700)實施為包括膝上型計算機和非膝上型計算機配置的個人計算機。

前面描述的詳細描述已經經由使用框圖、流程圖、和/或示例來對設備和/或過程的各個實施例進行了闡述。在這樣的框圖、流程圖、和/或示例包含一個或者多個功能和/或操作的範圍內,本領域技術人員要明白,在這樣的框圖、流程圖、或者示例內的每個功能和/或操作可以由範圍廣泛的硬體、軟體、固件、或者實際上其任何組合來單獨地和/或共同地實現。在一個實施例中,可以經由專用集成電路(ASIC)、現場可編程門陣列(FPGA)、數位訊號處理器(DSP)、或者其它集成格式來實現本文描述的主題的若干部分。然而,本領域的技術人員要認識到,本文所公開的實施例的一些方面能夠整體地或者部分地在集成電路中等效地實現為在一個或者多個計算機上運行的一個或者多個電腦程式、在一個或者多個處理器上運行的一個或者多個程序、固件、或者實際上其任何組合,並且根據本公開,設計電路和/或編寫軟體和/或固件的代碼也將在本領域的技術人員的技術範圍內。

另外,本領域的技術人員要了解,能夠將本文描述的主題的機制分布為各種格式的程序產品,並且無論用於實際執行該分布的非暫時性信號承載介質的特定類型如何,本文描述的主題的說明性實施例都適用。非暫時性信號承載介質的示例包括但不限於以下:可記錄型介質——諸如軟盤、硬碟驅動器、壓縮盤(CD)、數字視頻盤(DVD)、數字磁帶、計算機存儲器等;以及傳輸型介質——諸如數字和/或模擬通信介質(例如,光纖電纜、波導、有線通信鏈路、無線通信鏈路等)。

對於本文使用的幾乎任何複數的和/或單數的術語,在適合於場境和/或應用的情況下本領域的技術人員可以從複數轉化為單數和/或從單數轉化為複數。為了清楚起見,可以在此對各種單/複數排列組合進行清楚地闡述。

因此,已經對本主題的特定實施例進行了描述。其它實施例在所附權利要求書的範圍內。在一些情況下,在權利要求書中記載的動作可以按照不同的順序來執行並且仍然可以實現期望的結果。另外,在附圖中描繪的過程不一定要求示出的特定順序或者連續順序,以實現期望的結果。在某些實施方式中,多任務處理和並行處理可以是有利的。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀