TWI584121B - 快取記憶體元件與控制方法及其應用系統 - Google Patents
快取記憶體元件與控制方法及其應用系統 Download PDFInfo
- Publication number
- TWI584121B TWI584121B TW104126918A TW104126918A TWI584121B TW I584121 B TWI584121 B TW I584121B TW 104126918 A TW104126918 A TW 104126918A TW 104126918 A TW104126918 A TW 104126918A TW I584121 B TWI584121 B TW I584121B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache memory
- data
- sub
- order
- blocks
- Prior art date
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明的實施例是有關於一種快取記憶體元件(buffer cache device)與控制方法及其應用系統。特別是有關於一種具有多階層快取記憶體的混合式快取記憶體元件與控制方法及其應用系統。
快取記憶體技術,是通過應用程式(applications)將資料從主記憶體(bulk/main memory)中讀取並暫時拷貝至設置於比主記憶體更鄰近處理器(Process Unit,PU)且可進行快速存取的儲存介質(rapidly-accessible storage media)中,使處理器可從快取記憶體中快速讀取資料而無須再從主記憶體中讀取,加快讀取和寫入操作的速度,以節省系統的反應與執行時間(response/execution time)。
習知的快取記憶體一般係採用動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)來作儲存介質。然而,動態隨機存取記憶體係一種揮發性記憶體(volatile memory),所儲
存的資料可能會因為電流關閉或無預期的系統失效(sudden system crashes)而消失。為了確保資料的穩定,一般會將儲存於快取記憶體中的資料同步寫入(synchronous write)到主記憶體中。不過,此舉會減低處理器的讀取和寫入操作效率。
為了改善此一問題,目前已有採用非揮發性記憶體(non-Volatile memory)來作為快取記憶體。相變記憶體(Phase Change Memory,PCM),與快閃記憶體相比,具有較高的操作速度和耐受度(endurance),是最具前景的非揮發性記憶體之一。然而,相變記憶體使用年限(life time)低於動態隨機存取記憶體,且受限於寫入電力的需求,一次最多只能平行寫入有限的資料量,例如32個位元組(bytes),易造成寫入延遲(write latency),並不適合單獨作為快取記憶體。
因此,有需要提供一種更先進的快取記憶體與控制方法及其應用系統,以改善習知技術所面臨的問題。
本發明的一個面向是提供一種快取記憶體元件,可通過至少一個應用程式獲取至少一資料。此快取記憶體元件包括:第一階快取記憶體、第二階快取記憶體以及控制器。第一階快取記憶體係用來接收並儲存此一資料。第二階快取記憶體具有與第一階快取記憶體不同的記憶胞結構。控制器用來將儲存於第一階快取記憶體中的資料寫入第二階快取記憶體。
本發明的另一個面向是提供一種快取記憶體元件的
控制方法。其中,快取記憶體元件包括第一階快取記憶體以及具有與第一階快取記憶體不同之記憶胞結構的第二階快取記憶體,此快取記憶體元件的控制方法包括下述部驟:首先通過第一應用程式獲取並暫時儲存一資料於第一階快取記憶體中。之後,再將此一資料寫入第二階快取記憶體。
本發明的再一個面向是提供一種嵌入式系統(embedded system)。此嵌入式系統包括:主記憶體元件、快取記憶體元件以及控制器。快取記憶體元件包括通過至少一個應用程式接收並儲存此一資料的第一階快取記憶體,以及具有與第一階快取記憶體不同之記憶胞結構的第二階快取記憶體。控制器用來將儲存於第一階快取記憶體中的資料寫入第二階快取記憶體;之後,再將被儲存於第二階快取記憶體的資料寫入主記憶體。
根據上述,本發明的實施例是在提供一種多階層記快取憶體所構成的混合式快取記憶體元件以及應用此種快取記憶體元件的嵌入式系統。其中此一混合式快取記憶體元件至少包含第一階快取記憶體以及具有與第一階快取記憶體不同之記憶胞結構的第二階快取記憶體。將通過至少一個應用程式獲取的至少一個資料先儲存於第一階快取記憶體中,並藉由階層式寫回(hierarchically write-back)方式,再將儲存於第一階快取記憶體中的資料寫入第二階快取記憶體中。解決習知技術單獨使用動態隨機存取記憶體作為快取記憶體之儲存介質,造成資料不穩定的問題。
在一些實施例中,並藉由未更新子區塊管理(sub-dirty block management)來解決習知相變記憶體快取記憶體,卻因平行寫入資料量不足所衍生的和寫入延遲問題。另外,更可採用最少活化(Least-Recently-Activated,LRA)的資料取代策略(replacement policy),來增進嵌入式系統的操作效能。
100‧‧‧嵌入式系統
100’‧‧‧嵌入式系統
101‧‧‧主記憶體元件
102‧‧‧快取記憶體元件
102a‧‧‧第一階快取記憶體
102b‧‧‧第二階快取記憶體
102c‧‧‧控制單元
103‧‧‧控制器
104、app1、app2、app3‧‧‧應用程式
105‧‧‧虛擬程式系統或程式系統
106‧‧‧驅動程式
107A、107B、block 1、block 2‧‧‧區塊
107A0、107B0‧‧‧未更新位元
107A1~16、107B1~16‧‧‧次未更新位元
1A~16A,1B~16B‧‧‧子區塊
201‧‧‧將輸入/輸出要求寫入第二階快取記憶體
202‧‧‧採用資料取代策略來選擇已寫入第二階快取記憶體中的未更新區塊,並將所選擇的未更新區塊寫入主記憶體元件中
203‧‧‧依照控制器所發出的刷新指令,將寫入第二階快取記憶體中的未更新區塊寫入主記憶體元件中
401‧‧‧監控儲存於第二階快取記憶體中未更新子區塊的數量n、第一階快取記憶體的快取命中率和儲存於第二階快取記憶體區塊中資料的閒置時間
402‧‧‧當未更新子區塊的數量、快取命中率和閒置時間三者
之一高於預設標準時,進行背景刷新操作
403‧‧‧當接收到一指令要求對時,立即中止背景刷新操作,先完成指令要求,之後再重新監控
501、502、503、504、503‧‧‧標準化輸入/輸出反應時間
601、602、603、604、603‧‧‧標準化應用程式執行時間
I/O‧‧‧輸入/輸出要求
n‧‧‧未更新子區塊的數量
α‧‧‧快取命中率
t‧‧‧閒置時間
Sn、Sα、St‧‧‧預設標準
App ID‧‧‧應用程式識別碼
為了對本發明之上述實施例及其他目的、特徵和優點能更明顯易懂,特舉數個較佳實施例,並配合所附圖式,作詳細說明如下:第1圖係根據本發明的一實施例所繪示之嵌入式系統的方塊示意圖;第1’圖係根據本發明的另一實施例所繪示之嵌入式系統的方塊示意圖;第2圖係根據本發明的一實施例所繪示之嵌入式系統的快取操作流程方塊圖;第3圖係根據本發明的一實施例所繪示最近最少活化策略的選擇決策流程示意圖;第4圖係根據本發明的一實施例所繪示之背景刷新操作的流程示意圖;第5圖係根據本發明的一實施例繪示Android智慧型手機在不同緩衝快取模型下,採用不同應用程式進行快取操作模擬所得到的輸入/輸出反應時間直方圖;以及
第6圖係根據本發明的一實施例繪示Android智慧型手機在不同緩衝快取模型下,採用不同應用程式進行快取操作模擬所得到的應用程式執行時間直方圖。
本發明是提供一種混合式快取記憶體元件以及應用此種快取記憶體元件的嵌入式系統與控制方法,可改善習知單獨使用動態隨機存取記憶體或像變化記憶體作為快取記憶體之儲存介質所造成的資料不穩定與寫入延遲問題。下文特舉數種具有至少二種不同記憶胞結構之多階層記憶體所構成的混合式快取記憶體元件以及應用此種快取記憶體元件的嵌入式系統與控制方法作為較佳實施例,並配合所附圖式作詳細說明。
但必須注意的是,這些特定的實施案例與方法,並非用以限定本發明。本發明仍可採用其他特徵、元件、方法及參數來加以實施。較佳實施例的提出,僅係用以例示本發明的技術特徵,並非用以限定本發明的申請專利範圍。該技術領域中具有通常知識者,將可根據以下說明書的描述,在不脫離本發明的精神範圍內,作均等的修飾與變化。在不同實施例與圖式之中,相同的元件,將以相同的元件符號加以表示。
請參照第1圖,第1圖係根據本發明的一實施例所繪示之嵌入式系統100的方塊示意圖。此嵌入式系統100包括:主記憶體元件101、快取記憶體元件102以及控制器103。在本發明的一些實施例中,主記憶體元件101可以是一種快閃記憶體
(flash memory),但不以此為限。例如在本發明的另一些實施例中,主記憶體元件101可以是記憶磁碟(disk)、嵌入式多媒體卡(embedded Multi-Media Card,eMMC)、固態硬碟(Solid State Disk,SSD)或其他可能的儲存介質。
快取記憶體元102件包括第一階快取記憶體102a以及第二階快取記憶體102b。其中,第二階快取記憶體102b具有與第一階快取記憶體102a不同之記憶胞結構。在本發明的一些實施例中,第一階快取記憶體102a可以是動態隨機存取記憶體;且第二階快取記憶體102b可以是變化記憶體,但不以此為限。例如在本發明的另一些實施例中,第一階快取記憶體102a可以是變化記憶體動態隨機存取記憶體;且第二階快取記憶體102b可以是動態隨機存取記憶體。
換言之,只要第一階快取記憶體102a和第二階快取記憶體102b的記憶胞結構不同,在一些實施例中,第一階快取記憶體102a和第二階快取記憶體102b可以分別選自於自旋轉移力矩隨機存取記憶體(Spin Transfer Torque Random Access Memory,STT-RAM)、磁阻式隨機存取記憶體(Magnetoresistive Random Access Memory,MRAM)、可變電阻式記憶體(Resistive Random Access Memory,ReRAM)或其他可能的儲存介質。
控制器103可用來從使用者空間(user space)所提供的至少一個應用程式104中,經由虛擬程式系統(Virtual File system,VFS)或程式系統105,獲取至少一個資料,例如一個應
用程式104的輸入/輸出(Input/Output)要求I/O,並將此一輸入/輸出要求I/O儲存於第一階快取記憶體102a之中。並且,提供一種階層式寫回方法,將儲存於第一階快取記憶體102a的資料寫入第二階快取記憶體102b;接著,再透過驅動程式106,將儲存於第二階快取記憶體102b的資料寫入主記憶體元件101中。
在本發明的一些實施例之中,控制器103可以是位於嵌入式系統100之主作業系統(host machine)中的處理器(如第1圖所繪示)。但在本發明的另一些實施例之中,控制器103也可以是內建於快取記憶體元件102中的一個控制單元102c。請參照第1’圖,第1’係根據本發明的另一實施例所繪示之嵌入式系統100’的方塊示意圖。在此一實施例中,輸入/輸出要求I/O的快取操作直接由快取記憶體元件102來加以控制,而非由設置於嵌入式系統100’主作業系統中的控制器103來進行。
請參照第2圖,第2圖係根據本發明的一實施例所繪示之嵌入式系統100的快取操作流程方塊圖。在本發明的一較佳實施例中,嵌入式系統100的快取操作係藉由控制器103所提供的階層式寫回程序來進行下述部驟:(1)將未更新的(dirty)輸入/輸出要求I/O由第一階快取記憶體102a寫入第二階快取記憶體102b(如箭號201所繪示);(2)將未更新的輸入/輸出要求I/O由第二階快取記憶體102b寫入主記憶體元件101中(如箭號202所繪示);以及(3)進行背景刷新(background flush)將未更新輸入/輸出要求I/O寫入主記憶體元件101中(如第2圖箭號203所繪
示)。
在本發明的一些實施例中,在進行階層式寫回程序之前,還包括對對儲存於第一階快取記憶體102a和第二階快取記憶體102b中的資料(例如輸入/輸出要求I/O)進行未更新子區塊管理。未更新子區塊寫入管理包含下述部驟:首先將第一階快取記憶體102a和第二階快取記憶體102b中的記憶區塊區分為複數個子區塊,使每一個子區塊包含一部分儲存於第一階快取記憶體102a和第二階快取記憶體102b中的資料。接著,辨識並標註儲存於每一個子區塊中的一部分資料是否為未更新。
例如,以第一階快取記憶體102a為例,第一階快取記憶體102a具有區塊107A和107B,可將每一個區塊(例如區塊107A或107A)區分為16個子區塊1A~16A和1B~16B。其中,每一個子區塊1A~16A和1B~16B的粒度尺寸(granularity),實質等於可平行寫入第二階快取記憶體102b的最大資料量。在本實施例中,每一個子區塊1A~16A和1B~16B的粒度尺寸實質等於32個位元組,亦即可平行寫入相變記憶體的資料量。且每一個區塊107A和107B為512個位元組。
另外,第一階快取記憶體102a的每一個區塊107A(或107B)還包括一個區塊標示位元(dirty bit)107A0(或107B0)、複數個子區塊標示位元(sub-dirty bits)107A1~16(或107B1~16)以及一個用來識別儲存於區塊107A(或107B)中之輸入/輸出要求I/O的應用程式識別碼App ID。其中,每一個子區塊標示位元
107A1~16(或107B1~16)係對應一個子區塊1A~16(或1B~16),用以標示這些子區塊1A~16A(或1B~16B)中所儲存之輸入/輸出要求I/O的部分是否為未更新部分,並將儲存輸入/輸出要求I/O未更新部分的子區塊標示為未更新子區塊(sub-dirty block)。區塊標示位元107A0和107B0則係用以標示其所對應的區塊107A或107B中是否具有未更新子區塊(dirty block)。並將具有未更新子區塊者標示為未更新區塊。
例如,在本實施例中,子區塊標示位元107A1~16和107B1~16分別由分別由16個位元組成,每一個子區塊標示位元107A1~16和107B1~16分別對應一個子區塊1A~16和1B~16B。儲存有未更新的輸入/輸出要求I/O部分的子區塊3B被子區塊標示位元107B3標示為未更新子區塊(以繪示於子區塊3B上的影線表示之)。區塊標示位元107A0將不具有未更新子區塊則區塊107A標示為已更新(clean,以C表示);區塊標示位元107B0將具有未更新子區塊B3的區塊107B標示為未更新(以D表示)。
接著,將未更新的輸入/輸出要求I/O由第一階快取記憶體102a寫入第二階快取記憶體102b(如箭號201所繪示)。由於儲存於第一階快取記憶體102a中的輸入/輸出要求I/O,只有儲存於未更新子區塊3B中的部分未更新。因此,只需要將儲存於未更新的子區塊3B中之輸入/輸出要求I/O部分寫入第二階快取記憶體102b中,即可將原本儲存於非揮發性快取記憶體(動態隨機存取記憶體)中的輸入/輸出要求I/O轉存至非揮發性快取記
憶體(相變記憶體)中。
再加上,未更新子區塊3B的粒度尺寸,實質等於可平行寫入第二階快取記憶體102b(相變記憶體)的最大資料量。將儲存於未更新區塊107B中之輸入/輸出要求I/O的未更新部分寫入第二階快取記憶體102b,並不會造成寫入延遲的問題。可再不影響快取記憶體元件102之反應與執行時間的前提下,達到兼顧快取資料穩定的目的。
當第一階快取記憶體102a中具有複數個未更新區塊時,可根據嵌入式系統100的不同需求,採用不同的資料取代策略,例如最近最少活化策略、時鐘法(CLOCK)策略、先到先服務(First-Come First-Served,FCFS)策略或最近最少使用(Least-Recently-Used,LRU)策略,來決定未更新區塊107B被寫入第二階快取記憶體102b的次序。在本發明的一些實施例中,在將未更新區塊107B寫入第二階快取記憶體102b之後,更進一步將第一階快取記憶體102a中的未更新區塊加以騰空(evict),以允許其他應用程式的輸入/輸出要求I/O儲存於該區塊中。
在本實施例之中,係採用最近最少活化策略來決定寫入第二階快取記憶體102b中之未更新區塊的次序。其中,所謂最近最少活化策略係選擇最近最少被設定為前景(foreground)程式的未更新輸入/輸出要求I/O,將其優先寫入第二階快取記憶體102b之中,並將儲存此未更新輸入/輸出要求I/O的未更新區塊從第一階快取記憶體102a騰空。其中,所謂的前景程式,則是
指目前出現在應用嵌入式系統100之裝置,例如智慧型手機,之顯示器畫面上的程式。
例如請參照第3圖,第3圖係根據本發明的一實施例所繪示最近最少活化策略的選擇決策流程示意圖。為了簡單說明起見,假設本實施例中之嵌入式系統100的第一階快取記憶體102a中僅具有2個區塊block 1和block 2,用來分別儲存來自於三種應用程式app1、app2和app3(以不同網底)的輸入/輸出要求I/O。當此三種應用程式app1、app2和app3每一次被設定為前景程式時控制器103都將儲存這些應用程式的區塊按照被存取的先後順序加以排列。序列中的第一名即是儲存最近最多被活化(Most-Recently Activated,MRA)的區塊,而最後一名即是儲存最近最少被活化(LRA)的區塊,亦即是會被優先寫入第二階快取記憶體,並且被從第一階快取記憶體102a中騰空的區塊(在本實施例之中為區塊Block1)。
接著請再參照第2圖,嵌入式系統100的快取操作還包括將被儲存於第二階快取記憶體102b區塊中的未更新資料(例如儲存於的輸入/輸出要求I/O未更新的部分)寫入主記憶體元件101,並騰空第二階快取記憶體102b中儲存此未更新資料的區塊。在本發明的一些實施例中,將儲存於第二階快取記憶體102b中的未更新輸入/輸出要求I/O寫入主記憶體元件101的方式1包含二種方式:一種係採用前所述的資料取代策略,例如,例如最近最少活化策略、時鐘法策略、先到先服務策略或最近最少使
用略,來將未更新區塊107B寫入第二階快取記憶體102b中,並騰空所選擇的未更新區塊107B(如箭號202所繪示)。另一種則是進行背景刷新(background flush),依照控制器103所發出的刷新指令,將第二階快取記憶體102b中所有的未更新區塊107B寫入主記憶體元件101中,再騰空第二階快取記憶體102b中所有的未更新區塊107B(如箭號203所繪示)。由於採用資料取代策略所進行的寫入與騰空操作方法已揭露如前,故不在此贅述。
請參照第4圖,第4圖係根據本發明的一實施例所繪示之背景刷新操作的流程示意圖。在快取操作期間,控制器103會監控儲存於第二階快取記憶體102b中未更新子區塊(例如未更新子區塊3B)的數量n、第一階快取記憶體101a的快取命中率(hit rate)α和儲存於第二階快取記憶體的閒置時間(idle time)t(如步驟401所繪示)。當未更新子區塊的數量n、快取命中率α和閒置時間t三者之一高於預設標準(n>Sn、α>Sα或t>St)時,控制器103才會進行背景刷新操作,將位於第二階快取記憶體102b的所有未更新區塊107B寫入至主記憶體元件101,之後騰空位於第二階快取記憶體102b中所有的未更新區塊107B(如步驟402所繪示)。
由於,當儲存於第二階快取記憶體102b中的未更新子區塊的數量n、第一階快取記憶體101a的快取命中率α或第二階快取記憶體102b的閒置時間t高於預設標準時,代表第二階快取記憶體102b處於較空閒的狀態,且儲存於第二階快取記憶體102的資料較不常被應用程式所存取。利用此一空檔,將較不常
被應用程式所存取的資料寫入主記憶體元件101,並騰出第二階快取記憶體102b中的儲存空間,應不會造成快取記憶體元件102的工作負擔。
且值得注意的是,在進行背景刷新中,當控制器103接收到另一種指令要求(demand request)而對儲存於第二階快取記憶體102b的資料進行存取時。控制器103會立即中止背景刷新程序,先完成此指令要求之後,再重新對儲存於第二階快取記憶體102b中未更新子區塊的數量n、第一階快取記憶體101a的快取命中率α和儲存於第二階快取記憶體102區塊107A和107B中資料的閒置時間t進行監控(如步驟403所繪示)。
之後,藉由模擬方法來比較本發明實施例所提供之包括混合式快取記憶體元件102與習知快取儲存元件的效能。在本發明的一實施例中,採用習知的Android智慧型手機作為平台來進行模擬比較,此一模擬方法包括下述部驟:首先,蒐集Android智慧型手機上未進行快取儲存前,包括程序識別碼(process ID)、inode程式碼(inode number)、讀取/寫入/刷新(read/write/fsync/flush)、輸入/輸出位址(I/O address)、資料大小(size)、時間戳(timestamp)...等的存取參數(access trace)。再將這些存取參數放入追蹤驅動緩衝快取模擬器(trace-driven buffer cache simulator),模擬不同快取記憶體元件搭配不同緩衝快取模型,以取得模擬快取操作的存取參數。再將模擬產生的存取參數當作輸入/輸出負載(I/O workloads I)輸入Android智慧型手機
中,以比較Android智慧型手機對於不同應用程式採用不同緩衝快取模型進行快取操作時的效能。
模擬結果如第5圖和第6圖所繪示,第5圖係根據本發明的一實施例繪示Android智慧型手機在不同緩衝快取模型下,採用不同應用程式進行快取操作模擬所得到的輸入/輸出反應時間直方圖。第5圖分別包含5組長條柱子集(subsets),分別代表Android智慧型手機使用應用程式Browser、Facebook、Gmail和Fliboard以不同緩衝快取模型進行模擬後所得到的模擬結果以及其平均值Average。而每一長條柱組合包含5條長條柱501、502、503、504和505,分別代表單獨採用動態隨機存取記憶體作為快取記憶體之儲存介質的緩衝快取模型(以DRAM表示)、單獨採用相變記憶體作為快取記憶體之儲存介質的緩衝快取模型(以PCM表示)、單獨採用本案實施例提供之混合式快取記憶體元件102作為快取記憶體之儲存介質的緩衝快取模型(以Hybrid表示)、採用混合式快取記憶體元件102作為快取記憶體,並搭配未更新子區塊寫入管理的緩衝快取模型(以Hybrid+sub表示)以及採用本混合式快取記憶體元件102作為快取記憶體,搭配未更新子區塊寫入管理和刷新操作的緩衝快取模型(以Hybrid+sub+BG表示),在進行模擬快取操作之後所得到的標準化輸入/輸出反應時間。
在本實施例之中,模擬的結果係以單獨採用動態隨機存取記憶體的緩衝快取模型(DRAM)進行模擬所得到的輸入/輸
出反應時間進行標準化。根據第5圖所繪示的模擬結果可以發現,相較於單獨採用動態隨機存取記憶體的緩衝快取模型(DRAM),單獨採用混合式快取記憶體元件102的緩衝快取模型(Hybrid)可以使標準化輸入/輸出反應時間平均值減少7%;採用混合式快取記憶體元件102並搭配未更新子區塊寫入管理的緩衝快取模型(Hybrid+Sub)可以使標準化輸入/輸出反應時間平均值減少13%;採用本混合式快取記憶體元件102並搭配未更新子區塊寫入管理和刷新操作的緩衝快取模型(Hybrid+Sub+BG)則可以使標準化輸入/輸出反應時間平均值減少20%。顯示,使用本案實施例提供之混合式快取記憶體元件102作為快取記憶體之儲存介質,可大幅減少Android智慧型手機快取操作時的輸入/輸出反應時間。
第6圖係根據本發明的一實施例繪示Android智慧型手機在不同緩衝快取模型下,採用不同應用程式進行快取操作模擬所得到的執行時間直方圖。第6圖分別包含5組長條柱組合,分別代表Android智慧型手機使用應用程式Browser、Facebook、Gmail和Filpboard,以不同緩衝快取模型進行模擬快取操作之後所得到的模擬結果以及其平均值Average。而每一長條柱組合包含5條長條柱601、602、603、604和605,分別代表單獨採用動態隨機存取記憶體作為快取記憶體之儲存介質的緩衝快取模型(DRAM)、單獨採用相變記憶體作為快取記憶體之儲存介質的緩衝快取模型(PCM)、單獨採用本案實施例提供之混
合式快取記憶體元件102作為快取記憶體之儲存介質的緩衝快取模型(Hybrid)、採用混合式快取記憶體元件102作為快取記憶體,並搭配未更新子區塊寫入管理的緩衝快取模型(Hybrid+Sub)以及採用本混合式快取記憶體元件102作為快取記憶體,並搭配未更新子區塊寫入管理和刷新操作的緩衝快取模型(Hybrid+Sub+BG),在進行模擬快取操作之後所得到的標準化應用程式執行時間。
在本實施例之中,模擬的結果係以單獨採用動態隨機存取記憶體的緩衝快取模型(DRAM)進行模擬所得到的應用程式執行時間時間進行標準化。由第6圖所繪示的結果可以發現,與單獨採用動態隨機存取記憶體作為快取記憶體之儲存介質的緩衝快取模型(DRAM)相比,採用混合式快取記憶體元件102作為快取記憶體,並搭配未更新子區塊寫入管理和背景刷新操作的緩衝快取模型(Hybrid+Sub+BG)可以使標準化執行時間平均值減少12.5%。與單獨採用相變記憶體元件作為快取記憶體之儲存介質的緩衝快取模型(DRAM)相比,採用混合式快取記憶體元件102作為快取記憶體,並搭配未更新子區塊寫入管理的緩衝快取模型(Hybrid+Sub)可以使標準化執行時間平均值減少12.3%。顯示使用本案實施例提供之混合式快取記憶體元件102作為快取記憶體之儲存介質,可大幅降低Android智慧型手機的應用程式執行時間。
根據上述,本發明的實施例是在提供一種多階層記快取憶體所構成的混合式快取記憶體元件以及應用此種快取記
憶體元件的嵌入式系統。其中此一混合式快取記憶體元件至少包含第一階快取記憶體以及具有與第一階快取記憶體不同之記憶胞結構的第二階快取記憶體。將通過至少一個應用程式獲取的至少一個資料先儲存於第一階快取記憶體中,並藉由階層式寫回方式,再將儲存於第一階快取記憶體中的資料寫入第二階快取記憶體中。解決習知技術單獨使用動態隨機存取記憶體作為快取記憶體之儲存介質,造成資料不穩定的問題。
在一些較佳實施例中,可採用動態隨機存取記憶體和相變記憶體分別作為第一階快取記憶體和第二階快取記憶體。並且在進行階層式寫回之前,先對第一階快取記憶體進行未更新子區塊寫入管理,以及在階層式寫回中對第二階快取記憶體進行背景刷新,藉以來解決習知單獨採用相變記憶體作為快取記憶體之儲存介質,卻因平行寫入資料量不足所衍生的和寫入延遲問題。另外,更可採用最少活化的資料取代策略,來增進嵌入式系統的操作效能。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何該技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧嵌入式系統
101‧‧‧主記憶體元件
102a‧‧‧第一階快取記憶體
102b‧‧‧第二階快取記憶體
103‧‧‧控制器
104‧‧‧應用程式
105‧‧‧虛擬程式系統或程式系統
106‧‧‧驅動程式
Claims (18)
- 一種快取記憶體元件(buffer cache device),可通過一應用程式(application)獲取一第一資料,其中該快取記憶體元件包括:一第一階快取記憶體,用來接收並儲存該第一資料;一第二階快取記憶體,具有與該第一階快取記憶體不同的一記憶胞結構;以及一控制器,用來將儲存於該第一階快取記憶體中的該第一資料寫入該第二階快取記憶體;其中該第一階快取記憶體包括複數個區塊(blocks),每一該些區塊包括:複數個子區塊(sub-blocks),每一該些子區塊用來儲存一部分該第一資料;複數個次未更新位元(sub-dirty bits),對應每一該些子區塊,用以標示對應的該些子區塊中是否儲存該第一資料中的至少一未更新(dirty)部分,並將被具有該未更新部分者標示為一未更新子區塊;以及一未更新位元(dirty bit),用以標示該區塊中是否具有該未更新子區塊。
- 如申請專利範圍第1項所述之快取記憶體元件,其中該第一階快取記憶體為一動態隨機存取記憶體(Dynamic Random Access Memory,DRAM),該第二階快取記憶體為一相變記憶體(Phase Change Memory,PCM)。
- 如申請專利範圍第1項所述之快取記憶體元件,其中每一該些子區塊具有一粒度尺寸(granularity),實質等於可平行寫入該第二階快取記憶體的一最大資料量。
- 如申請專利範圍第1所述之快取記憶體元件,其中該控制器會監控儲存於該第二階快取記憶體中的未更新子區塊的一數量、該第一階快取記憶體的一快取命中率(hit rate)或儲存於該第二階快取記憶體的一閒置時間(idle time);當該數量、該快取命中率和該閒置時間三者之一高於一預設標準時,將儲存於該第二階快取記憶體中的所有該未更新子區塊寫入一主記憶體元件。
- 一種快取記憶體元件(buffer cache device),可通過一應用程式(application)獲取一第一資料,其中該快取記憶體元件包括:一第一階快取記憶體,用來接收並儲存該第一資料;一第二階快取記憶體,具有與該第一階快取記憶體不同的一記憶胞結構;以及一控制器,用來將儲存於該第一階快取記憶體中的 該第一資料寫入該第二階快取記憶體,其中該第一階快取記憶體可用來接收並儲存一第二資料,該控制器採用一時鐘法(CLOCK)策略、一最近最少使用(Least-Recently-Used,LRU)策略、一先到先服務(First-Come,First-Served,FCFS)策略和一最近最少活化(Least-Recently-Activated,LRA)策略之一者,來選擇儲存於該第一階快取記憶體中的該第一資料或該第二資料寫入第二階快取記憶體,再騰空(evict)被選擇的該第一資料或該第二資料,以容許一第三資料儲存於該第一階快取記憶體中。
- 如申請專利範圍第5項所述之快取記憶體元件,其中該最近最少活化(Least-Recently-Activated,LRA)策略係選擇最近最少被一前景應用程式(foreground application)所存取之該第一資料或該第二資料。
- 如申請專利範圍第5項所述之快取記憶體元件,該控制器會採用該時鐘法策略、該最近最少使用策略、該先到先服務策略和該最近最少活化策略之一者,來選擇儲存於該第二階快取記憶體中的該第一資料或該第二資料寫入一主記憶體元件,再騰空該第二階快取記憶體中被選擇的該第一資料或該第二資料。
- 一種快取記憶體元件的控制方法,其中該快取記憶體元件包括一第一階快取記憶體以及一第二階快取記憶體,其中該第二階快取記憶體具有與該第一階快取記憶體不同的一記憶胞結構,該快取記憶體元件的控制方法包括:通過一第一應用程式獲取一第一資料並儲存於該第一階快取記憶體;將儲存於該第一階快取記憶體中的該第一資料寫入該第二階快取記憶體;以及將該第一階快取記憶體區隔成複數個區塊,使每一該些區塊包括:複數個子區塊,每一該些子區塊用來儲存一部分該第一資料;複數個次未更新位元,對應每一該些子區塊,用以標示對應的該些子區塊中是否儲存該第一資料中的至少一未更新部分,並將被具有該未更新部分者標示為一未更新子區塊;以及一未更新位元,用以標示該區塊中是否具有該未更新子區塊。
- 如申請專利範圍第8項所述之快取記憶體元件的控制方法,其中該第一階快取記憶體為一動態隨機存取記憶體, 該第二階快取記憶體為一相變記憶體。
- 如申請專利範圍第8項所述之快取記憶體元件的控制方法,其中將該第一資料寫入該第二階快取記憶體的步驟,包括將該未更新子區塊複製並儲存於該第二階快取記憶體中。
- 如申請專利範圍第8項所述之快取記憶體元件的控制方法,其中每一該些子區塊具有一粒度尺寸,實質等於可平行寫入該第二階快取記憶體的一最大資料量。
- 如申請專利範圍第8項所述之快取記憶體元件的控制方法,更包括:監控儲存於該第二階快取記憶體中未更新子區塊的一數量、該第一階快取記憶體的一快取命中率以及儲存於該第二階快取記憶體中該第一資料的一閒置時間;以及當該數量、該快取命中率和該閒置時間三者之一高於一預設標準時,進行一背景刷新(background flush)操作,將儲存於該第二階快取記憶體中的所有該未更新子區塊寫入一主記憶體元件;以及騰空該第二階快取記憶體中具有該未更新子區塊的該區塊。
- 如申請專利範圍第12項所述之快取記憶體元件的控制方法,更包括:當接收一指令要求(demand request)時,即停止該背景刷新操作;並完成該指令要求;以及監控該數量、該快取命中率和該閒置時間。
- 一種快取記憶體元件的控制方法,其中該快取記憶體元件包括一第一階快取記憶體以及一第二階快取記憶體,其中該第二階快取記憶體具有與該第一階快取記憶體不同的一記憶胞結構,該快取記憶體元件的控制方法包括:通過一第一應用程式獲取一第一資料並儲存於該第一階快取記憶體;將儲存於該第一階快取記憶體中的該第一資料寫入該第二階快取記憶體;通過一第二應用程式獲取一第二資料並儲存於一第一階快取記憶體;採用一時鐘法策略、一最近最少使用策略、一先到先服務策略或一最近最少活化策略之一者,來選擇儲存於該第一階快取記憶體中的該第一資料或該第二資料,將其寫入該第二階快取記憶體; 騰空儲存於該第一階快取記憶體中的該第二資料被選擇的該第一資料或該第二資料;以及通過一第三應用程式獲取一第三資料並儲存於該第一階快取記憶體中。
- 如申請專利範圍第14項所述之快取記憶體元件的控制方法,其中該最近最少活化策略係選擇最近最少被一前景應用程式所存取該第一資料或該第二資料。
- 如申請專利範圍第14項所述之快取記憶體元件的控制方法,更包括:採用一時鐘法策略、一最近最少使用策略、一先到先服務策略或一最近最少活化策略之一者,來選擇儲存於該第二階快取記憶體中的該第一資料或該第二資料,將其寫入該主記憶體元件;以及騰空儲存於該第二階快取記憶體中的該第二資料被選擇的該第一資料或該第二資料。
- 一種嵌入式系統(embedded system),包括:一主記憶體元件;一快取記憶體元件,包括:一第一階快取記憶體,用來通過至少一應用程式接收並儲存至少一資料;以及 一第二階快取記憶體,具有與該第一階快取記憶體不同的一記憶胞結構;以及一控制器,用來將儲存於該第一階快取記憶體中的該資料寫入該第二階快取記憶體;之後,再將被儲存於該第二階快取記憶體中的該第一資料寫入該主記憶體;其中該第一階快取記憶體包括複數個區塊,每一該些區塊包括:複數個子區塊,每一該些子區塊用來儲存一部分該第一資料;複數個次未更新位元,對應每一該些子區塊,用以標示對應的該些子區塊中是否儲存該第一資料中的至少一未更新部分,並將被具有該未更新部分者標示為一未更新子區塊;以及一未更新位元,用以標示該區塊中是否具有該未更新子區塊。
- 如申請專利範圍第17項所述之嵌入式系統,其中該控制器係內健於該快取記憶體元件之中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104126918A TWI584121B (zh) | 2015-08-19 | 2015-08-19 | 快取記憶體元件與控制方法及其應用系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104126918A TWI584121B (zh) | 2015-08-19 | 2015-08-19 | 快取記憶體元件與控制方法及其應用系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201709067A TW201709067A (zh) | 2017-03-01 |
TWI584121B true TWI584121B (zh) | 2017-05-21 |
Family
ID=58774385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104126918A TWI584121B (zh) | 2015-08-19 | 2015-08-19 | 快取記憶體元件與控制方法及其應用系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI584121B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020046325A1 (en) * | 1998-12-08 | 2002-04-18 | Cai Zhong-Ning | Buffer memory management in a system having multiple execution entities |
US20100042776A1 (en) * | 2008-08-18 | 2010-02-18 | Dong Young Seo | Method and apparatus for providing enhanced write performance using a buffer cache management scheme based on a buffer replacement rule |
-
2015
- 2015-08-19 TW TW104126918A patent/TWI584121B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020046325A1 (en) * | 1998-12-08 | 2002-04-18 | Cai Zhong-Ning | Buffer memory management in a system having multiple execution entities |
US20100042776A1 (en) * | 2008-08-18 | 2010-02-18 | Dong Young Seo | Method and apparatus for providing enhanced write performance using a buffer cache management scheme based on a buffer replacement rule |
Also Published As
Publication number | Publication date |
---|---|
TW201709067A (zh) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102510384B1 (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
US10649661B2 (en) | Dynamically resizing logical storage blocks | |
JP5413572B2 (ja) | メモリストレージ装置及びその制御方法 | |
US9158700B2 (en) | Storing cached data in over-provisioned memory in response to power loss | |
US8316257B2 (en) | NAND power fail recovery | |
US9146688B2 (en) | Advanced groomer for storage array | |
TWI519950B (zh) | 處理用於一具有非揮發性記憶體之系統的動態及靜態資料 | |
US7536500B2 (en) | Header blocks for flash memory writes | |
US20130151754A1 (en) | Lba bitmap usage | |
US20130073789A1 (en) | Systems and methods for configuring non-volatile memory | |
US10402338B2 (en) | Method and apparatus for erase block granularity eviction in host based caching | |
JP2016506585A (ja) | データストレージのための方法及びシステム | |
JP2018185815A5 (zh) | ||
JP2013542486A5 (zh) | ||
CN109902034B (zh) | 快照创建方法、装置、电子设备及机器可读存储介质 | |
CN110413211B (zh) | 存储管理方法、电子设备以及计算机可读介质 | |
US20150212744A1 (en) | Method and system of eviction stage population of a flash memory cache of a multilayer cache system | |
US20140195571A1 (en) | Fast new file creation cache | |
US20170052899A1 (en) | Buffer cache device method for managing the same and applying system thereof | |
US20150120995A1 (en) | Data storage device startup | |
TWI584121B (zh) | 快取記憶體元件與控制方法及其應用系統 | |
JP6243884B2 (ja) | 情報処理装置、プロセッサ、および情報処理方法 | |
CN106469020B (zh) | 高速缓存元件与控制方法及其应用系统 | |
CN114746848B (zh) | 用于存储装置的高速缓存架构 | |
CN107544913B (zh) | 一种ftl表快速重建方法与装置 |