TW201401046A - 記憶體管理方法 - Google Patents
記憶體管理方法 Download PDFInfo
- Publication number
- TW201401046A TW201401046A TW101123051A TW101123051A TW201401046A TW 201401046 A TW201401046 A TW 201401046A TW 101123051 A TW101123051 A TW 101123051A TW 101123051 A TW101123051 A TW 101123051A TW 201401046 A TW201401046 A TW 201401046A
- Authority
- TW
- Taiwan
- Prior art keywords
- space
- average
- capacity
- memory
- management method
- Prior art date
Links
Landscapes
- Power Sources (AREA)
Abstract
一種記憶體管理方法,係應用於具有記憶體模組之電子裝置,記憶體模組包括可利用空間。該方法包括以下步驟:偵測自電子裝置啟動後之設定時間內可利用空間之使用狀態變化,以計算出可利用空間之平均空間使用量及平均執行緒數量;判斷是否接收系統待機指令;若是,偵測此時可利用空間之使用狀態,以取得可利用空間之現有執行緒數量;根據現有執行緒數量、平均執行緒數量與平均空間使用量以計算出可利用空間應保留之設定容量;清除可利用空間中設定容量以外之其他容量空間。
Description
本發明係關於一種記憶體管理方法,特別是一種有效管理記憶體空間以提高系統處理速度之記憶體管理方法。
現今許多電子裝置為了達到省電效果,在裝置本身閒置一段時間後會進入休眠模式,暫時停止裝置大部分功能之運作,以減少多餘之電量消耗。以可攜式電腦為例,由於提供使用者隨身攜帶使用之便利性,更需要有效節省電池之電量消耗。然而就電腦內部之記憶體來說,一旦將其停止供電,記憶體內部暫存之動態資料將會遺失,容易使電腦內系統發生錯誤;因此當需要關閉記憶體時,必須先將原先儲存於記憶體內部之資料寫入硬碟,待休眠模式結束而使記憶體恢復供電後,再將該些資料自硬碟重新寫入記憶體。
部分可攜式電腦採用資料讀寫速度較佳之固態硬碟裝置,使得電腦閒置或休眠時能提供更快速之資料處理效果。然而固態硬碟裝置價格較昂貴,若選用大容量之固態硬碟裝置將大幅增加電腦生產成本;此外習知針對休眠時大多是將整個記憶體資料直接複製到硬碟裝置內,如此一來當電腦系統要回復至休眠前狀態時,勢必會花費更長之回復時間在資料搬移上,並無法提供真正有效率之加速處理效果。
本發明之主要目的係在提供一種有效管理記憶體空間以提高系統處理速度之記憶體管理方法。
為達到上述之目的,本發明之記憶體管理方法係應用於具有記憶體模組之電子裝置,記憶體模組包括可利用空間。該方法包括以下步驟:偵測自電子裝置啟動後之設定時間內可利用空間之使用狀態變化,以計算出可利用空間之平均空間使用量及平均執行緒數量;判斷是否接收系統待機指令;若是,偵測此時可利用空間之使用狀態,以取得可利用空間之現有執行緒數量;根據現有執行緒數量、平均執行緒數量與平均空間使用量以計算出可利用空間應保留之設定容量;清除可利用空間中設定容量以外之其他容量空間。
藉由本發明之設計,在電子裝置準備進入閒置或休眠狀態時,先針對記憶體模組進行空間管理,以縮減需要複製之記憶體資料量,加速進入或離開閒置或休眠狀態之處理時間。
為能讓 貴審查委員能更瞭解本發明之技術內容,特舉出較佳實施例說明如下。
請先參考圖1係本發明之電子裝置1之系統示意圖。在本發明之一實施例中,電子裝置1係為可攜式電腦(例如筆記型電腦、小筆電、平板電腦等),但依據
應用類型不同,電子裝置1亦可為其他具類似組成架構之電子裝置,不以本實施例為限。
如圖1所示,本發明之電子裝置1包括記憶體模組10、第一儲存模組20及處理模組30,各模組之間彼此電性連接。記憶體模組10包括至少一記憶體,以供載入系統或應用程式之執行緒(process)以執行。在本實施例中,第一儲存模組20採用固態硬碟裝置,此固態硬碟裝置之容量係不小於記憶體模組10之總容量,藉由固態硬碟裝置之快速讀寫特性,使得裝置休眠或待機時,固態硬碟裝置能提供與記憶體模組10間快速之直接記憶體存取功能(direct memory access,DMA)。
處理模組30包括中央處理單元31、第二儲存模組32及控制模組33,在本實施例中,第二儲存模組32係為容量較大之傳統硬碟裝置,主要儲存作業系統321、各類應用軟體及其他相關資料。而藉由結合第一儲存模組20及第二儲存模組32,使得電子裝置1建構成傳統硬碟裝置及固態硬碟裝置之組合硬碟架構。
中央處理單元31用以於電子裝置1啟動後開始載入作業系統321,並發送指令至控制模組33;控制模組33則依指令針對記憶體模組10進行偵測及容量計算、資料搬移等操作。在本實施例中,控制模組33為控制程式與電子晶片或硬體元件之結合,例如結合控制程式之基本輸入輸出系統(BIOS)、唯讀記憶體或其他控制晶片等,但控制模組33亦可採用純軟體形式儲存於前述第二儲存模組32中,亦透過中央處理單元31之指令予以執行。
需注意的是,前述處理模組30之組成架構不以本實施例為限。
於作業系統321被載入後,當電子裝置1已閒置一定時間未使用或依使用者所輸入之指令切換至休眠狀態時,中央處理單元31即可接收作業系統321所發出之系統待機指令,並通知控制模組33針對記憶體模組10進行容量空間之清除操作,以便將記憶體模組10中正在執行之系統和應用程式之執行緒暫存至第一儲存模組20中,而進入系統待機狀態。
請參考圖2係記憶體模組10之容量空間配置示意圖。
如圖2所示,一般記憶體模組10包括硬體保留空間A、使用中空間B及可利用空間C。硬體保留空間A供儲存記憶體模組10相關之硬體資料;使用中空間B供儲存載入目前作業系統321正在使用及修改中之執行緒(process)資料;而可利用空間C係包括預備空間及自由空間,預備空間供隨時儲存載入記憶體模組10中之各應用程式之執行緒資料,而自由空間做為空間不足時之支援調整之用。在一般情況下,當作業系統321進入系統待機狀態時,係將記憶體模組10之整體容量完全複製到第一儲存模組20中。由於可利用空間C中之資料變化量較大,因此本發明係針對可利用空間C進行資料管理及清除等操作,以減少需要複製之資料量,加速系統處理速度。
請參考圖3係本發明之記憶體管理方法之第一實施例之流程圖。須注意的是,以下雖以圖1所示之電子裝置1為例說明本發明之記憶體管理方法,但本發明並不以適用於電子裝置1為限,任何其他具類似架構之電子裝置亦可適用本發明之方法。如圖3所示,本發明之記憶體管理方法包括步驟S301至步驟S305。以下將詳細說明該方法之各個步驟。
步驟S301:偵測自電子裝置啟動後之設定時間內可利用空間之使用狀態變化,以計算出可利用空間之平均空間使用量及平均執行緒數量。
當使用者啟動電子裝置1後,中央處理單元31將開始執行開機程序並載入作業系統321,此時中央處理單元31會通知控制模組33開始即時地偵測記憶體模組10之使用狀態變化。由於記憶體模組10在開機過程中,會於可利用空間內陸續地載入所設定的應用程式之執行緒,而各個執行緒依對應之應用程式不同而具有不同容量需求,因此藉由控制模組33在開機後之一設定時間內,持續地偵測記憶體模組10之狀態變化,包括所載入執行緒之數量變化及所有執行緒所佔之總空間使用量變化,以計算出這段時間內載入可利用空間之所有之平均執行緒數量及該些執行緒之平均空間使用量。
在本發明之一較佳實施例中,前述設定時間約為60秒,以便控制模組33取得啟動後載入記憶體模組10並執行之主要應用程式之執行緒資料,但設定時間並不以此為限,視判斷需求不同而進行調整。其中前述平均執行
緒數量為在此設定時間內,所載入記憶體模組10之執行緒之數量平均值;而每個執行緒均會佔據部分記憶體容量,因此控制模組33亦能藉由偵測記憶體模組10之容量變化,以計算出此設定時間內所載入記憶體模組10之該些執行緒之平均空間使用量。
此外,在取得前述資料數據後,利用控制模組33將前述該些執行緒之平均空間使用量除以平均執行緒數量,即可概略計算出單一執行緒平均容量。控制模組33可將該些結果數據予以儲存,以供後續計算使用。
舉例來說,假設控制模組33經偵測並計算於電子裝置1啟動後之60秒內,已載入記憶體模組10之平均執行緒數量約為50,而該些執行緒之平均空間使用量約為250MB,因此依據前述數值可計算出單一執行緒平均容量約為5MB。
步驟S302:判斷是否接收系統待機指令。
電子裝置1於完成載入作業系統321之程序後,即進入作業系統321之操作介面,在此介面下當使用者輸入系統待機指令,或是依據系統或使用者之設定於電子裝置1閒置一定時間後,作業系統321會發送系統待機指令至中央處理單元31;而中央處理單元31在判斷接收到系統待機指令後,會指示記憶體模組10、作業系統321、控制模組33及相關元件開始準備進入系統待機模式。
步驟S303:若接收到系統待機指令,則偵測此時可利用空間之使用狀態,以取得可利用空間之現有執行緒數量。
當判斷接收到系統待機指令後,中央處理單元21會指示控制模組33,以目前時間點針對記憶體模組10再次進行偵測,來確認此時記憶體模組10之使用狀態。由於記憶體模組10在作業系統321持續執行之過程中,會依據使用者所輸入指令或系統排程,陸續地載入不同的應用程式之執行緒以供執行,因此藉由控制模組33偵測此時間點之記憶體模組10之狀態,計算已載入記憶體模組10之可利用空間之現有執行緒數量,供做為後續計算之用。
步驟S304:根據現有執行緒數量、平均執行緒數量與平均空間使用量以計算出可利用空間應保留之設定容量。
執行前述步驟後,控制模組33會利用所計算出來之相關數據,進一步計算出目前記憶體模組10所足以適用之設定容量。正常情況下,隨著使用者之操作,記憶體模組10於作業系統環境所載入之應用程式執行緒之數量,會大於系統開始啟動時所載入之應用程式執行緒之數量。因此控制模組33根據前述於接收系統待機指令時已載入記憶體模組10之現有執行緒數量,減去自電子裝置啟動後之設定時間內載入記憶體模組10之所有程式之平均執行緒數量,以得知多出的執行緒之數量差值。而控制模組33藉由將前述所計算出的執行緒之數量差值乘以前述所計算出之單一執行緒平均容量,即可取得對應該些多出之執行緒所需之調整容量。
接著控制模組33再藉由前述所計算出可利用空間於電子裝置1啟動後之平均空間使用量,與前述針對多出之執行緒所計算出之調整容量相加,即可計算出目前記憶體模組10之可利用空間所需使用之設定容量大小。
延續前例,假設控制模組33偵測到於電子裝置1啟動後之60秒內,所載入記憶體模組10之平均執行緒數量約為50,且可利用空間之平均空間使用量約為250MB;而經計算出單一執行緒平均容量約為5MB。此外,假設控制模組33偵測到於接收系統待機指令時,已載入記憶體模組10之現有執行緒數量為56。
經控制模組33計算,現有執行緒數量與平均執行緒數量之差值為6,因此將數量差值乘以單一執行緒平均容量後得到30MB(即6×5MB),此數值即表示對應提供多出之執行緒之理想調整容量。接著再將前述平均空間使用量與調整容量相加,則可計算出可利用空間之設定容量為280MB。
在本發明之一實施例中,控制模組33更預先定義有供計算之權重值,而控制模組33藉由將前述所計算出的執行緒之數量差值連續乘以前述單一執行緒平均容量及權重值,以取得對應該些多出之執行緒所需之調整容量。此權重值係為經實驗統計所取得之數值,權重值越大則所計算出之調整容量也越大,其係為大於0之數值但不小於2;在本發明之一較佳實施例中,採用之權重值為2,但本發明不以此為限。由於不同應用程式之執行緒所需之容量空間不同,透過權重值之設計,可調整
對應該些多出之執行緒所需之調整容量大小,進而改變所計算出之設定容量。
同樣延續前例,假設現有執行緒數量與平均執行緒數量之差值為6,且可利用空間之平均空間使用量約為250MB,而單一執行緒平均容量約為5MB。此外,控制模組33所採用之權重值定義為2。
經控制模組33計算,將數量差值連續乘以單一執行緒平均容量及權重值後,得到對應提供多出之執行緒之理想調整容量為60MB(即6×2×5MB)。接著再將前述平均空間使用量與調整容量相加,則可計算出可利用空間之設定容量為310MB。
步驟S305:清除可利用空間中設定容量外之其他容量空間。
當控制模組33計算出可利用空間應該具備之設定容量後,即可通知中央處理單元21對記憶體模組10進行資料搬移及清除動作,以前述設定容量集中存放目前載入可利用空間中之所有執行緒資料,並清除可利用空間中除了設定容量外之其他容量空間。
在藉由本發明之記憶體管理方法清除可利用空間中除了設定容量外之其他容量空間後,處理模組30即可藉由直接記憶體存取,搬移記憶體模組10之所需資料至第一儲存模組20中暫存,以便電子裝置進入系統待機或休眠模式。
請一併參考圖4係應用本發明之記憶體管理方法對記憶體模組10進行空間配置之示意圖。
如圖4所示,針對記憶體模組10之可利用空間C,藉由控制模組33計算出原先於啟動過程中所載入之所有執行緒之平均空間使用量C1,接著計算出於系統進入休眠之時點相較於開機時多出之執行緒所對應之調整容量C2,即可得知可利用空間C需要配置之設定容量為C1+C2。因此,當電子裝置1進入休眠模式時,處理模組30會將記憶體模組10中包括使用中空間B及可利用空間C中之設定容量C1+C2之資料,一併藉由直接記憶體存取搬移到第一儲存模組20中,以便進入電子裝置1之休眠模式。而於休眠模式結束時,處理模組30再將第一儲存模組20內之資料搬回記憶體模組10中。
藉由本發明之方法進行記憶體模組10之空間清除管理後,其所需搬移之資料量較習知記憶體模組10之資料量少,因此能有效減少電子裝置休眠或回復時之資料量傳輸,增進電子裝置之處理效率。
請參考圖5係本發明之記憶體管理方法之第二實施例之流程圖。如圖5所示,在本實施例中,本發明之記憶體管理方法於步驟S301前更包括步驟S501:偵測電子裝置1是否為結合固態硬碟裝置及傳統硬碟裝置之組成架構。
由於本發明之記憶體管理方法係適用於具有固態硬碟裝置及傳統硬碟裝置之組成架構,才能達到加速系統休眠或回復之效果,因此藉由處理模組30於電子裝置1啟動後,首先針對電子裝置1之所有儲存模組(在本實施例中包括第一儲存模組20及第二儲存模組32)進行偵
測,以判斷電子裝置1內是否為固態硬碟裝置及傳統硬碟裝置之組成架構。舉例來說,於電子裝置1啟動時,藉由基本輸入輸出系統取得電子裝置1之各內部元件資訊,以判斷第一儲存模組20及第二儲存模組32是否分別為固態硬碟裝置及傳統硬碟裝置)。若是,則處理模組30接著對記憶體模組10進行步驟S301等後續步驟;若否,表示電子裝置1並不符合本發明之方法所應用之電子裝置類型,因此控制模組33不會針對記憶體模組10執行該些相關步驟。
藉由本發明之設計,令電子裝置先針對記憶體模組進行空間管理,縮減需要進行處理之記憶體資料量,以便能加速進入或離開閒置或休眠狀態之處理時間。
綜上所陳,本發明無論就目的、手段及功效,在在均顯示其迥異於習知技術之特徵。惟須注意,上述實施例僅為例示性說明本發明之原理及其功效,而非用於限制本發明之範圍。任何熟於此項技藝之人士均可在不違背本發明之技術原理及精神下,對實施例作修改與變化。本發明之權利保護範圍應如後述之申請專利範圍所述。
1‧‧‧電子裝置
10‧‧‧記憶體模組
20‧‧‧第一儲存模組
30‧‧‧處理模組
31‧‧‧中央處理單元
32‧‧‧第二儲存模組
321‧‧‧作業系統
33‧‧‧控制模組
A‧‧‧硬體保留空間
B‧‧‧使用中空間
C‧‧‧可利用空間
C1‧‧‧預備空間
C2‧‧‧自由空間
圖1係本發明之電子裝置之系統示意圖。
圖2係記憶體模組之容量空間配置示意圖。
圖3係本發明之記憶體管理方法之第一實施例之流程圖。
圖4係應用本發明之記憶體管理方法對記憶體模組進行空間配置之示意圖。
圖5係本發明之記憶體管理方法之第二實施例之流程圖。
Claims (9)
- 一種記憶體管理方法,係應用於具有一記憶體模組之一電子裝置,該記憶體模組包括一可利用空間,該方法包括以下步驟:偵測自該電子裝置啟動後之一設定時間內,該可利用空間之使用狀態變化,以計算出該可利用空間之一平均空間使用量及一平均執行緒(process)數量;判斷是否接收一系統待機指令;若接收到該系統待機指令,則偵測此時該可利用空間之使用狀態,以取得該可利用空間之一現有執行緒數量;根據該現有執行緒數量、該平均執行緒數量與該平均空間使用量計算出該可利用空間應保留之一設定容量;清除該可利用空間中該設定容量外之其他容量空間。
- 如申請專利範圍第1項所述之記憶體管理方法,其中藉由計算該現有執行緒數量與該平均執行緒數量之一差值,並乘以一單一執行緒平均容量後,再加上該平均空間使用量,以取得該設定容量。
- 如申請專利範圍第2項所述之記憶體管理方法,其中藉由該平均空間使用量除以該平均執行緒數量,以取得該單一執行緒平均容量。
- 如申請專利範圍第2項所述之記憶體管理方法,其中更定義一權重值,藉由計算該差值連續乘以該單一執行緒平均容量及該權重值後,再加上該平均空間使用量,以取得該設定容量。
- 如申請專利範圍第1項所述之記憶體管理方法,更包括以下步驟:偵測該電子裝置是否為結合一固態硬碟裝置及一傳統硬碟裝置之組成架構。
- 如申請專利範圍第5項所述之記憶體管理方法,其中於清除該可利用空間後,藉由直接記憶體存取(direct memory access,DMA)搬移該記憶體模組之資料至該固態硬碟裝置。
- 如申請專利範圍第5項所述之記憶體管理方法,其中該固態硬碟裝置之總容量不小於該記憶體模組之總容量。
- 如申請專利範圍第1項所述之記憶體管理方法,其中該權重值係大於0但不大於2。
- 如申請專利範圍第1項所述之記憶體管理方法,其中該設定時間為60秒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101123051A TW201401046A (zh) | 2012-06-27 | 2012-06-27 | 記憶體管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101123051A TW201401046A (zh) | 2012-06-27 | 2012-06-27 | 記憶體管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201401046A true TW201401046A (zh) | 2014-01-01 |
Family
ID=50345044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101123051A TW201401046A (zh) | 2012-06-27 | 2012-06-27 | 記憶體管理方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TW201401046A (zh) |
-
2012
- 2012-06-27 TW TW101123051A patent/TW201401046A/zh unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10521006B2 (en) | Report updated threshold level based on parameter | |
EP2936272B1 (en) | Reducing power consumption of volatile memory via use of non-volatile memory | |
TWI528162B (zh) | 電腦系統及其作業系統切換方法 | |
TWI472914B (zh) | 具有可移除式非揮發性半導體記憶體模組之硬碟驅動器、硬碟總成、膝上型電腦和用於非揮發性半導體記憶體模組移除檢測之硬碟控制器積體電路 | |
TWI528169B (zh) | 在閒置顯示情況中之記憶體電力節省 | |
TWI407300B (zh) | 電源管理控制器與方法 | |
TW201229743A (en) | Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption | |
KR101846612B1 (ko) | 부트 데이터 로드 | |
KR20160145791A (ko) | 상시-온 프로세서를 갖는 시스템 온 칩 | |
US20140013140A1 (en) | Information processing apparatus and computer program product | |
US10175995B1 (en) | Device hibernation control | |
TWI224728B (en) | Method and related apparatus for maintaining stored data of a dynamic random access memory | |
JP2015156205A (ja) | 情報処理装置およびその制御方法 | |
US10466917B2 (en) | Indirection structure prefetch based on prior state information | |
CN103914325A (zh) | 基于混合内存的Linux系统的关机、开机方法及系统 | |
US10268486B1 (en) | Expedited resume process from hibernation | |
WO2019041903A1 (zh) | 一种基于非易失存储的计算装置及其使用方法 | |
JP2013003682A (ja) | メモリ管理装置及びメモリ管理方法及びプログラム | |
US20130073792A1 (en) | Electronic apparatus using nand flash and memory management method thereof | |
TWI522924B (zh) | 電子裝置及其切換作業系統的方法 | |
TW201401046A (zh) | 記憶體管理方法 | |
JP5894044B2 (ja) | ハイブリッド・ディスク・ドライブにデータを記憶する方法および携帯式コンピュータ | |
JP2012168871A (ja) | 計算機、消費電力低減方法およびプログラム | |
TW201329706A (zh) | 電子裝置、休眠方法以及電腦程式產品 | |
JP5913770B2 (ja) | 回転式のディスクを備える記憶装置のパワー・ステートを制御する方法および携帯式コンピュータ |