TWI503665B - 根據檔案層級試探架構來執行快取之方法與系統 - Google Patents
根據檔案層級試探架構來執行快取之方法與系統 Download PDFInfo
- Publication number
- TWI503665B TWI503665B TW099109383A TW99109383A TWI503665B TW I503665 B TWI503665 B TW I503665B TW 099109383 A TW099109383 A TW 099109383A TW 99109383 A TW99109383 A TW 99109383A TW I503665 B TWI503665 B TW I503665B
- Authority
- TW
- Taiwan
- Prior art keywords
- file
- data
- storage medium
- cache
- cached
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係有關於快取領域,及更特定但非專指關於根據檔案層級試探架構來執行快取(意指儲存起來以供後續階段之快速取用)。
硬碟機的性能已明顯落後於中央處理單元的性能。這樣,輸入/輸出(I/O)資料傳遞至硬碟機仍是電腦系統的最大瓶頸之一。雖然諸如固態驅動機之較快驅動機的面世正緩解此瓶頸問題,但較快驅動機之相對高的成本正阻止其被大規模採用作主流儲存裝置。
為了緩解此瓶頸問題,非依電性記憶體已被用作一系統中硬碟機的一快取。例如,硬碟機之一些碟片扇區或邏輯區塊位址(LBA)可被快取於一非依電性記憶體中,使得中央處理器能夠以一比硬碟機快的存取速率來存取被快取於非依電性記憶體中的資料。
用來加速I/O資料傳遞的快取方案主要是根據LBA層級存取型樣或一作業系統或一使用者的特定指令來釘選或取消釘選非依電性記憶體中的LBA。
依據本發明之一實施例,係特地提出一種系統,其包含:用以儲存資料的一儲存媒體;用以快取該儲存媒體的該資料之一NAND快閃記憶體;及一快取策略引擎,其至少根據與該資料相關聯之一或一個以上的檔案層級試探架構來將該該儲存媒體的該資料快取於該NAND快閃記憶體中或從中逐出。
本發明之實施例之特徵與優點由下面標的之詳細說明將變得顯而易見,其中:第1圖依據本發明之一實施例說明實施本文所揭露的方法之一系統;第2圖依據本發明之一實施例說明實施本文所揭露的方法之一系統組態;第3圖依據本發明之一實施例說明一作業系統中的模組之一方塊圖;第4圖依據本發明之一實施例說明一作業系統(OS)中的模組之一方塊圖;第5圖依據本發明之一實施例說明一將LBA映射至檔案層級資訊之表格;及第6圖依據本發明之一實施例說明執行快取策略之步驟的一流程圖。
本說明書中提及「一實施例」指結合實施例所予以描述的一特定特徵、結構、或特性被包括在本發明之至少一實施例中。因此,在本說明書各不同位置出現片語「在一實施例中」未必都指相同的實施例。
本發明之實施例提供一種根據至少一或一個以上的檔案層級試探架構來執行快取之方法與系統。在本發明之一實施例中,一快取策略引擎對資料執行自一持久儲存媒體至一快取裝置中之快取。該快取策略引擎接收儲存媒體的資料之I/O存取的檔案層級資訊並根據至少該接收的檔案層級資訊來將儲存媒體的資料快取至快取裝置中或將其從中逐出。在一實施例中,藉由利用與儲存媒體的資料相關聯之檔案及檔案操作的資訊,該快取策略引擎能夠對選自儲存媒體、要被快取至快取裝置中或自快取裝置逐出之資料作出一較佳判決。較高快取命中率可被實現及利用快取策略引擎之系統的性能被提高。
儲存媒體可包括但不限於,固態驅動機、硬碟機、磁帶驅動機、光碟(CD)、軟碟、通用串列匯流排快閃記憶體驅動機、或任何其它形式的非依電性電腦資料儲存媒體。快取裝置包括但不限於,非依電性媒體、固態驅動機、NAND快取記憶體、相位改變記憶體或任何其它形式的非依電性電腦資料儲存媒體。
第1圖依據本發明之一實施例說明實施本文所揭露之方法的一系統100。系統100包括但不限於,桌上型電腦、膝上型電腦、筆記型電腦、小筆電電腦、個人數位助理(PDA)、伺服器、工作站、蜂巢式電話、行動計算裝置、網際網路電器或任何其它類型的計算裝置。在另一實施例中,用來實施本文所揭露之方法的系統100可以是單晶片系統(SOC)系統。
系統100包括一記憶體/圖形控制器120及一I/O控制器150。該記憶體/圖形控制器120典型地提供記憶體及I/O管理功能,以及複數個可被處理器110存取或使用之通用及/或專用暫存器、計時器等。處理器110可使用一或一個以上的處理器而被實施或使用多核處理器而被實施。依據本發明之一實施例,I/O控制器150具有一快取策略引擎152。該快取策略引擎(CPE)152有助於存取I/O控制器150與儲存媒體160及快取裝置170之間的I/O資料。
記憶體/圖形控制器120執行使處理器110能夠存取一包括一依電性記憶體142及/或非依電性記憶體144之主記憶體140且與其通訊之功能。在本發明之另一實施例中,快取策略引擎152可被整合於記憶體/圖形控制器120而非I/O控制器152中。依電性記憶體142包括但不限於,同步動態隨機存取記憶體(SDRAM)、動態隨機存取記憶體(SDRAM)、RAMBUS動態隨機存取記憶體(RDRAM)、及/或任何其它類型的隨機存取記憶體。非依電性記憶體144包括但不限於,NAND快閃記憶體、ROM、EEPROM、及/或任何其它期望類型的記憶體裝置。主記憶體140儲存處理器110執行的資訊及指令。主記憶體140也可儲存處理器110正執行指令時的臨時變數或其它中間資訊。在本發明之另一實施例中,記憶體/圖形控制器120是處理器110的一部分。
記憶體/圖形控制器120連接至一顯示裝置130,該顯示裝置130包括但不限於,液晶顯示器(LCD)、陰極射線管(CRT)顯示器、或任何其它形式的視覺顯示裝置。I/O控制裝置150與但不限於一(數)儲存媒體160、一(數)快取裝置170、一網路介面180、及一鍵盤/滑鼠190耦接。特別地,I/O控制器150執行使處理器110能夠與儲存媒體160、快取裝置170、網路介面180、及鍵盤/滑鼠190通訊之功能。
網路介面180是使用任何類型的習知網路介面標準而被實施,包括但不限於,乙太網路介面、通用串列匯流排(USB)、周邊構件互連(PCI)快速介面、無線介面及/或任何其它類型的介面。無線介面依據但不限於電氣電子工程師協會(IEEE)無線標準族802.11、電源線網路(Home Plug AV(HPAV))、超寬頻帶(UWB)、藍牙、WiMax、或任何形式的無線通訊協定而運作。
第2圖依據本發明之一實施例說明實施本文所揭露之方法的一系統組態200。系統組態200顯示本發明的一實施例,其中一或一個以上的快取裝置及儲存媒體可與系統100連接。在系統組態200中,儲存媒體220經由一通訊鏈接被連接至系統100。該通訊鏈接包括但不限於,先進技術附件(ATA)介面、串聯ATA(SATA)介面、及串接的小型電腦系統介面(SCSI)(SAS)及任何其它有線或無線通訊鏈接。類似地,快取裝置230經由一通訊鏈接被連接至系統100,該通訊鏈接包括但不限於,SATA介面、SAS介面、PCI快速介面、及ONFI。在本發明之一實施例中,快取裝置230與系統100之間的通訊鏈接可比儲存媒體220與系統100之間的通訊鏈接快。
系統100也經由一網路/網橋210被連接至儲存媒體240及快取裝置250。系統組態200顯示的是,有各種不同方式來將儲存媒體220與240及快取裝置230與250連接至系統100。在第1與2圖中所繪示之快取裝置與儲存媒體的組態並不意為作限制及相關技藝中具有通常知識者將瞭解的是在不影響本發明的運作的情況下其它組態可被使用。快取裝置可經由一通訊鏈接被內部連接至系統100或外部連接至系統100。舉例而言,在本發明之一實施例中,快取裝置170可經由一通訊鏈接被內部連接至平台100中的CPE 152,該通訊鏈接包括但不限於,PCI快速介面、SATA介面及ONFI。在本發明之一實施例之另一範例中,快取裝置170可經由一USB通訊鏈接被外部連接至平台100。
第3圖依據本發明之一實施例說明一作業系統(OS)的一方塊圖300。該OS具有一應用層310及一檔案系統320。應用層310能夠存取檔案系統320所組織的檔案。檔案系統320具有一檔案系統過濾驅動器(FFD) 332來監視儲存媒體160之資料的I/O存取。該FFD 322監視檔案層級資訊,該檔案層級資訊包括但不限於所存取資料的LBA、所存取檔案的檔案類型、所存取檔案的檔案名稱、所存取檔案的檔案大小、對所存取檔案執行的檔案操作、對所存取檔案執行的檔案操作、由檔案建立操作之屬性驅動的使用者或應用程式意向、及任何其它可用作快取試探架構之檔案層級資訊。
該OS還具有一儲存驅動器堆疊及一區塊驅動器340。該區塊驅動器具有一有助於對儲存媒體160及快取裝置170的存取之快取策略引擎344。該CPE 344自FFD 332接收儲存媒體160的資料之I/O存取的檔案層級資訊並根據至少一或一個以上的檔案層級試探架構來將儲存媒體160的資料快取至快取裝置170中或從中逐出。在獲悉檔案層級資訊的情況下,對於是否快取儲存媒體160之資料至快取裝置170或從中逐出,CPE 344可作出較佳判決。
在本發明之一實施例中,CPE 344將快取裝置170劃分為多條快取線。每一快取線儲存儲存媒體160之一或一個以上的LBA。在本發明之另一實施例中,儲存媒體160的資料不被安排於LBA中及一選替定址方案可被使用。CPE 344之每一快取線儲存該選替定址方案之一或一個以上的單元。在本發明之又一實施例中,CPE 344使用一插入或逐出判決來決定將一檔案移至快取裝置170或是自快取裝置170移出。相關技藝中具有通常知識者將易於瞭解的是,除了LBA以外的選替定址方案可被CPE 344用來快取資料至快取裝置170或從中逐出及在不影響本發明的運行的情況下選替的定址方案可被使用。
在本發明之一實施例中CPE 344之快取策略或檔案層級試探架構包括當一與該資料相關聯的檔案被刪除時自快取裝置170逐出儲存媒體160的該資料。舉例而言,在本發明之一實施例中,如果一儲存於儲存媒體160中之檔案被快取於快取裝置170之一或一個以上的快取線中,則當FFD 332檢測到該檔案被OS刪除時,FFD 332將此事件通知CPE 344。CPE 344根據快取策略作出是否將與該檔案相關聯之資料自快取裝置170逐出之判決。該檔案刪除發生於包括但不限於以下之一情形中,將該檔案移至一Microsoft WindowsOS之一資源回收桶、永久刪除該檔案、或任何其它致使一檔案被暫時或永久刪除之事件。
在本發明之一實施例中,CPE 344之快取策略或檔案層級試探架構包括當一與該資料相關聯之檔案自一LBA位置被移至另一LBA位置時將遭快取至快取裝置170中的儲存媒體160之資料的LBA資訊更新。舉例而言,在本發明之一實施例中,快取裝置170之每一快取線包含其快取之資料的LBA資訊。當一檔案在儲存媒體160之一重組操作期間由該OS自儲存媒體中的一LBA位置移至另一LBA位置時,FFD 332通知CPE 344更新快取裝置170中儲存與該檔案相關聯的資料之各自快取線中的LBA資訊。在另一範例中,當對檔案執行小更新時,該檔案也可由OS自儲存媒體160中的一LBA位置移至另一LBA位置。FFD 332也通知CPE 344更新在快取裝置170中儲存與該檔案相關聯的資料之各自快取線中的LBA資訊。藉由更新LBA資訊,就不需要在快取裝置170中保存儲存媒體160之無效或過期LBA或將其逐出。當一檔案自儲存媒體160中的一LBA位置被移至另一LBA位置時,也就沒有必要將新LBA再次插入快取裝置170中。
在本發明之一實施例中,CPE 344之快取策略或檔案層級試探架構包括當一與資料相關聯之檔案的元資料在該檔案移動之後被更新時更新儲存媒體160之快取資料的資料釘選資訊。舉例而言,在本發明之一實施例中,一或一個以上的檔案可被系統之一使用者或OS直接或間接指定放置於快取裝置170中。該一或一個以上的檔案被稱為釘選檔案且當OS對釘選檔案的一移動僅致使更新釘選檔案的元資料時,CPE 344更新資料釘選資訊來確保與釘選檔案相對應之資料仍被釘選於快取裝置170中。另外,CPE 344也可更新快取裝置170中儲存與釘選檔案相關聯的資料之各自快取線中的LBA資訊。
在本發明之一實施例中,CPE 344之快取策略或檔案層級試探架構包括當存取資訊指示一檔案被複製時在快取裝置170中標示出與該檔案相關聯之快取資料來允許其他檔案引用或指向該快取資料。舉例而言,在本發明之一實施例中,當一檔案被快取於快取裝置170中時,CPE 344標示出與該檔案相關聯的快取資料使得多個檔案或LBA可指向或引用該快取資料。這麼做,所有檔案副本上的資料I/O可被加速而不必在快取裝置170中多次儲存相同資料。在本發明之一實施例中,快取資料可藉由設定與快取資料相關聯之暫存器位元或任何其它指示出快取資料可被多個檔案或LBA引用之方法來被標示。
在本發明之一實施例中,FFD 322提供OS之一虛擬記憶體頁面檔案的扇區映射至CPE 344來允許頁面檔案的快取插入。在本發明之一實施例中,CPE 344之快取策略或檔案層級試探架構包括快取映射OS之虛擬記憶體頁面檔案之該一或一個以上的LBA。FFD 322也可將資料I/O存取之過程識別資訊發送至CPE 344。在本發明之一實施例中,CPE 344之快取策略或檔案層級試探架構包括當過程識別資訊指示出啟動資料I/O存取之應用程式是一挖掘應用程式時不快取與一檔案相關聯的資料。一挖掘應用程式包括但不限於,一病毒掃描應用程式、一資料備份應用程式、一資料搜尋應用程式、或任何在不再使用資料的情況下存取資料之應用程式。舉例而言,在本發明之一實施例中,當一檔案被一OS存取時,FFD 320可檢查是否該檔案被一挖掘應用程式存取。如果是,則與該檔案相關聯之資料不被快取於快取裝置170中。
在本發明之一實施例中,CPE 344之快取策略或檔案層級試探架構包括當與該資料相關聯的檔案被另一有相同檔案名稱的檔案替換時逐出儲存媒體160的資料。舉例而言,在一實施例中,當一檔案被複製至一包含有相同名稱之檔案的目的地目錄時,目的地目錄中的檔案被替換且與被隱式刪除檔案相關聯之資料自快取裝置170被逐出。與被複製檔案相關聯之資料未被插入至快取裝置170中。
在本發明之一實施例中,CPE 344之快取策略或檔案層級試探架構包括當與資料相關聯之檔案自一快取儲存裝置被移動至一非快取儲存裝置時自快取儲存裝置170逐出儲存媒體160的資料。舉例而言,在一實施例中,系統100具有兩儲存媒體且快取裝置170僅快取儲存媒體當中之一者。被快取裝置170快取的儲存媒體被稱為一快取儲存裝置而不被快取裝置170快取的儲存媒體被稱為一非快取儲存裝置。當一儲存於快取儲存裝置中的檔案被快取於快取裝置170中時,CPE 344在該檔案自快取儲存裝置被移至非快取儲存裝置時逐出與該檔案相關聯的資料。在本發明之一實施例的另一範例中,快取裝置除了被用作一快取裝置之外也可被用作一儲存媒體。當快取裝置170中的一檔案自快取裝置170被移至儲存媒體160時,CPE 344逐出與該檔案相關聯的資料。
在本發明之一實施例中,CPE 344之快取策略或檔案層級試探架構包括當一檔案自一快取儲存裝置被複製至一非快取儲存裝置時降低與該檔案相關聯之資料的優先順序。舉例而言,在一實施例中,當一儲存於快取儲存裝置中的檔案被快取於快取裝置170中時,CPE 344在該檔案自快取儲存媒體被複製至非快取儲存裝置時降低快取裝置170中與該檔案相關聯之資料的優先順序。在一實施例之另一範例中,當一被儲存於快取儲存裝置中的檔案不在快取裝置170中時,CPE 344在該檔案自快取儲存裝置被移至非快取儲存裝置時不將資料插入或快取於快取裝置170中。
第4圖依據本發明之一實施例說明一OS中之模組的一方塊圖400。方塊圖400繪示了CPE 422可以是檔案系統420的一部分。舉例而言,在本發明之一實施例中,CPE是FFD的一部分及CPE 422能夠獲得儲存媒體160資料之I/O存取的檔案層級資訊並根據至少一或一個以上的檔案層級試探架構來將儲存媒體160的資料快取至快取裝置170中或從中逐出。
在本發明之一實施例中,CPE 422之快取策略或檔案層級試探架構包括當一檔案被打開供讀取存取時快取與該一檔案相關聯的資料。舉例而言,在本發明之一實施例中,當一有唯讀存取許可的檔案被打開時,如果在快取裝置170中有儲存空間,則與該檔案相關聯之資料自儲存媒體160被預提取並被快取於快取裝置170中。在本發明之另一實施例中,該預提取資料可被標示來指示出預提取資料最近未被存取。
在本發明之一實施例中,CPE 422之快取策略或檔案層級試探架構包括當一檔案被打開供重寫(覆寫)時逐出與該一檔案相關聯的資料。在本發明之另一實施例中,CPE 422之快取策略或檔案層級試探架構包括當一檔案被打開供讀取存取且該檔案之一快速I/O旗標被設定時逐出與該一檔案相關聯的資料。舉例而言,在本發明之一實施例中,一OS可對被快取於一系統快取中之資料設定一快速I/O旗標及該資料在使用者緩衝器與系統快取之間被直接傳遞,而繞過檔案系統420及儲存驅動器堆疊430。當一檔案被一在系統上執行的OS打開供讀取存取且該檔案之一快速I/O旗標被設定時,CPE 422逐出與該檔案相關聯的資料。當一檔案的快速I/O旗標被設定時,與該檔案相關聯之資料被OS快取於系統快取記憶體中且該檔案的存取速率被增加。因此,在本發明之一實施例中,CPE 422不快取與該檔案相關聯的資料,因為該檔案的存取速率已被增加。
OS可結合一預讀操作來執行一快速I/O讀取操作。舉例而言,當OS執行一快速I/O讀取操作時,OS檢查是否其需要執行一預讀操作。如果一預讀操作被需要,則OS在快速I/O讀取操作期間發出預讀命令。在本發明之一實施例中,CPE 422之快取策略或檔案層級試探架構包括當OS在一快速I/O讀取操作期間發出預讀命令時快取與該預讀命令相關聯的資料。藉由快取與該預讀命令相關聯的資料,允許快速I/O操作被進一步改進。
在本發明之一實施例中,CPE 422之快取策略或檔案層級試探架構包括當一檔案被關閉時逐出與該檔案相關聯的資料。在本發明之另一實施例中,與一檔案相關聯之資料可被降低優先順序而被保持在快取裝置170中,因為在沒有一中間檔案操作來打開檔案的情況下資料不可能被再次使用。在本發明之一實施例中,如果一檔案是一媒體串流檔案,則CPE 422之快取策略或檔案層級試探架構包括不快取與該檔案相關聯的資料。舉例而言,在本發明之一實施例中,當OS正對一媒體串流檔案執行順序讀取操作時,CPE 422不將該媒體串流檔案快取於快取裝置70中。一媒體串流檔案是以一格式運作的檔案,該格式包括但不限於,一音訊視訊交錯(AVI)格式、動畫專家組(MPEG) 1音訊層3(MP3)格式、MP4格式、QuickTime格式及任何其它媒體串流格式。
在本發明之一實施例中,CPE 422之快取策略或檔案層級試探架構包括當一檔案的大小比一臨界值大時逐出與該檔案相關聯的資料。舉例而言,在本發明之一實施例中,當CPE 422接收關於一檔案的大小的資訊時,它根據一臨界值來決定快取與該檔案相關聯的資料至快取裝置170中。在一實施例中,CPE 422將該臨界值設定為一小或中等值使得大檔案可被留在儲存媒體160中而更多小檔案被允許保留在快取裝置170中。此操作可在後臺或在檔案讀取存取操作時被完成。
OS可依據一優先順序方案來標示與一檔案相關聯之資料。在本發明之一實施例中,CPE 422之快取策略或檔案層級試探架構包括當一檔案被標示為低優先順序時不快取與該檔案相關聯之資料。在其它實施例中,如果被標示為低優先順序的該檔案已被快取於快取裝置170中,則CPE 422降低與該檔案相關聯之資料的優先順序。在本發明之一實施例中,CPE 422之快取策略或檔案層級試探架構包括當一檔案被一被標示為高優先順序的應用程式存取時快取與該檔案相關聯之資料。舉例而言,在本發明之一實施例中,當一應用程式被標記為高優先順序時,CPE 422檢查是否被執行之任一應用程式的過程識別匹配該應用程式。如果匹配,則被應用程式存取之資料被快取於快取裝置170中。
有關一被存取檔案之檔案類型或副檔名的資訊可被CPE 422用來定義一包含及排除列表。該包含列表包括一或一個以上檔案類型或副檔名被包括於快取裝置170中之檔案而排除列表包括一或一個以上的檔案類型或副檔名不被包括於快取裝置170中之檔案。在本發明之一實施例中,CPE 422之快取策略或檔案層級試探架構包括當一檔案之檔案類型或副檔名屬於一包含列表時快取與該檔案相關聯之資料,而當一檔案之檔案類型或副檔名屬於一排除列表時避免快取或逐出與該檔案相關聯之資料。舉例而言,在一實施例中,包含列表可包括所有副檔名為“doc”的檔案。另外,在本發明之另一實施例中結合包含或排除列表可加入額外的規則。舉例而言,一規則可指定,一可執行檔案類型的檔案被包括於包含列表中且檔案大小不應該超過256千位元組。
本文所予以描述的快取策略或檔案層級試探結構可被FFD 322、CPE 344及422、或被系統中的另一組件執行。雖然CPE在第1圖中被繪示為I/O控制器的一部分、在第3圖中被繪示為區塊驅動器340及在第4圖中被繪示為檔案系統420的一部分,但是這並不意為作限制。快取策略引擎可以是系統之另一組件的一部分、或一應用程式的一部分、或另一過濾驅動器、或可被包括為系統上硬體/韌體的一部分。本文所予以描述的快取策略或檔案層級試探架構並不意為作限制及相關技藝中具有通常知識者將易於瞭解的是,在不影響本發明的運作的情況下其它檔案層級試探架構也可被使用。在本發明之其它實施例中,CPE可結合檔案層級試探架構使用其他試探架構來對儲存媒體的資料選擇做出較佳判決以使其被快取於快取裝置中或自快取裝置逐出。其它試探架構包括但不限於,最近最少接觸資料、最先被插入資料、及最後被插入資料。
第5圖依據本發明之一實施例說明將LBA映射至檔案層級資訊之一表格500。在本發明之一實施例中,FFD 322接收每一I/O資料存取的檔案層級資訊。表格500繪示LBA510與檔案名稱520、檔案大小530、檔案類型540、及檔案操作550的一映射。在本發明之一實施例中,CPE 344使用表格500來決定要被執行之適當的快取策略動作。FFD 332維護表格500及CPE 344查詢或擷取表格500中的檔案層級資訊以根據該檔案層級資訊之一或一個以上的項目來進行其快取操作。
在本發明之又一實施例中,CPE 422維護表格500而無需一FFD 322的協助,亦即,CPE是FFD 322的一部分。舉例而言,CPE 422的快取策略判定檔案music.mp3是一媒體串流檔案及因而依據本發明之一實施例中之檔案層級試探架構中之一者,檔案music.mp3不被快取於快取裝置170中。表格500可被維持在該平台的主記憶體140中,在快取裝置170中,或任何其它CPE能夠存取的位置。表格500所示檔案層級資訊並不意為作限制及表格500可維持較少或較多的檔案層級資訊以允許CPE作出較佳判決。
第6圖依據本發明之一實施例說明執行快取策略之步驟的一流程圖600。在步驟610,儲存媒體160資料之I/O存取的檔案層級資訊被接收。在步驟620,適當的快取策略動作根據接收的檔案層級資訊而被決定。在步驟630,適當的動作被執行。本文所予以描述的快取策略試探架構並不意為作限制及相關技藝中具有通常技藝者在不影響本發明之運作的情況下可根據至少一檔案層級資訊來應用其它快取策略試探架構。
雖然所揭露標的之實施例的範例被予以描述,但是相關技藝中具有通常知識者將易於瞭解的是,實施所揭露標的之許多其它方法能可選擇地被使用。在前面說明中,所揭露標的之各不同層面已被予以描述。為了解釋說明,特定數目、系統、及組態被提出以便提供對本標的的一徹底理解。然而,受益於本揭露,對熟於相關技藝者而言顯而易見的是該標的可在沒有特定細節的情況下被實施。在其它實例中,習知特徵、組件、或模組被忽略、被簡化、被結合、或被分開以免模糊所揭露的標的。
本文所使用的「可操作的」一詞意為裝置、系統、協定等能夠操作或適於針對其期望的功能而操作,當該裝置或系統處於關電狀態時。所揭露標的之各不同實施例可在硬體、韌體、或其等之組合中被實施,及可參考或結合程式碼而被予以描述,諸如指令、函數、程序、資料結構、邏輯、應用程式、模擬的設計表示或格式、仿真、及一設計的構造,當它們被一機器存取時致使該機器執行任務、定義抽象資料類型或低級硬體環境、或產生一結果。
在圖中所示技術可使用在一或一個以上的計算裝置(諸如通用電腦或計算裝置)上被儲存且被執行之程式碼及資料而被實施。此類計算裝置使用機器可讀取媒體來儲存並(內部地及透過一網路與其它計算裝置)傳送程式碼及資料,諸如機器可讀取儲存媒體(例如,磁碟;光碟;隨機存取記憶體;唯讀記憶體;快閃記憶體裝置;相位改變記憶體)及機器可讀取通訊媒體(例如,電氣的、光學的、聲學的或其它形式的傳播信號-諸如載波、紅外信號、數位信號,等等)。
雖然所揭露的標的已參考說明性實施例予以描述,但是本說明並不欲以一限制意義而被理解。對熟於所揭露標的所屬之技藝人士而言顯而易見的是,對說明性實施例及對標的之其它實施例的各不同修改被認為落入所揭露標的的範圍內。
100...系統
110...處理器
120...記憶體/圖形控制器
130...顯示裝置
140...主記憶體
142...依電性記憶體
144...非依電性記憶體
150...I/O控制器
152...快取策略引擎
160...儲存媒體
170...快取裝置
180...網路介面
190‧‧‧鍵盤/滑鼠
200‧‧‧系統組態
210‧‧‧網路/網橋
220、240‧‧‧儲存媒體
230、250‧‧‧快取裝置
300、400‧‧‧方塊圖
310‧‧‧應用層
320、420‧‧‧檔案系統
330、430‧‧‧儲存驅動器堆疊
340‧‧‧區塊驅動器
344、422‧‧‧快取策略引擎
500‧‧‧表格
600‧‧‧流程圖
610、620、630‧‧‧步驟
第1圖依據本發明之一實施例說明實施本文所揭露的方法之一系統;
第2圖依據本發明之一實施例說明實施本文所揭露的方法之一系統組態;
第3圖依據本發明之一實施例說明一作業系統中的模組之一方塊圖;
第4圖依據本發明之一實施例說明一作業系統(OS)中的模組之一方塊圖;
第5圖依據本發明之一實施例說明一將LBA映射至檔案層級資訊之表格;及
第6圖依據本發明之一實施例說明執行快取策略之步驟的一流程圖。
100...系統
110...處理器
120...記憶體/圖形控制器
130...顯示裝置
140...主記憶體
142...依電性記憶體
144...非依電性記憶體
150...I/O控制器
152...快取策略引擎
160...儲存媒體
170...快取裝置
180...網路介面
190...鍵盤/滑鼠
Claims (35)
- 一種系統,其包含:用以儲存資料的一儲存媒體;用以快取該儲存媒體的該資料之一NAND快閃記憶體;及一快取策略引擎,其至少根據與該資料相關聯之一或一個以上的檔案層級試探架構來將該儲存媒體的該資料快取於該NAND快閃記憶體中或從中逐出,其中該一或一個以上的檔案層級試探架構包含當與該資料相關聯的一檔案之大小大於一臨界值時,不對該資料快取、逐出、降低一優先順序、或增加一齡期。
- 如申請專利範圍第1項所述之系統,其中該NAND快閃記憶體具有比該儲存媒體快的一存取速率。
- 如申請專利範圍第1項所述之系統,其中該快取策略引擎是一區塊驅動器的一部分,及其中該區塊驅動器係用以促進該系統對該NAND快閃記憶體及該儲存媒體的存取。
- 如申請專利範圍第1項所述之系統,其中該一或一個以上的檔案層級試探架構包含當與該資料相關聯的一檔案被在該系統上執行之一作業系統(OS)刪除時,逐出該資料。
- 如申請專利範圍第1項所述之系統,其中該快取策略引擎進一步用以在與該資料相關聯的一檔案被在該系統上執行的一作業系統(OS)自一邏輯區塊位址(LBA)位置 移至另一LBA位置而未將該資料再次寫入該儲存媒體時,更新該儲存媒體之快取資料的LBA資訊。
- 如申請專利範圍第1項所述之系統,其中該一或一個以上的檔案層級試探架構包含,當與該資料相關聯的一檔案被在該系統上執行的一作業系統(OS)打開時快取該資料的至少一部分。
- 如申請專利範圍第1項所述之系統,其中該一或一個以上的檔案層級試探架構包含當與該資料相關聯的一檔案是一媒體串流檔案時,不快取該資料。
- 一種方法,包含有下列步驟:接收被儲存於一儲存媒體中之資料的輸入/輸出(I/O)存取的檔案層級資訊,其中該檔案層級資訊包含檔案刪除、檔案複製、檔案打開、檔案讀取、檔案大小、檔案類型、及檔案移動資訊當中之至少一者;及至少根據該接收的檔案層級資訊來將儲存於該儲存媒體中之該資料快取至一快取裝置中或從中逐出。
- 如申請專利範圍第8項所述之方法,其中將儲存於該儲存媒體中之該資料快取至該快取裝置中或從中逐出的步驟,包含將儲存於該儲存媒體之一或一個以上的邏輯區塊位址(LBA)中的資料快取至該快取裝置中或從中逐出。
- 如申請專利範圍第8項所述之方法,其中將儲存於該儲存媒體中之該資料快取至該快取裝置中或從中逐出的步驟,包含當該資料之一檔案類型或一副檔名屬於一包 含列表時快取該資料,而當該資料之該檔案類型屬於一排除列表時不快取該資料或逐出該資料。
- 如申請專利範圍第8項所述之方法,其中該檔案層級資訊包含一作業系統(OS)對該資料的存取優先順序,及其中將儲存於該儲存媒體中之該資料快取至該快取裝置中或從中逐出的步驟,包含當對該資料的該存取優先順序低時不快取該資料或逐出該資料,而當對該資料的該存取優先順序高時快取該資料。
- 如申請專利範圍第8項所述之方法,其中該檔案層級資訊包含執行對該資料的該IO存取之一應用程式的資訊,及其中將儲存於該儲存媒體中之該資料快取至該快取裝置中或從中逐出的步驟,包含當該應用程式是一挖掘應用程式時不快取該資料。
- 如申請專利範圍第9項所述之方法,其中該儲存媒體之該一或一個以上的LBA被映射至一虛擬記憶體頁面檔案,及其中將儲存於該儲存媒體中之該資料快取至該快取裝置中或從中逐出的步驟,包含將被映射至該虛擬記憶體頁面檔案之該一或一個以上的LBA快取至該快取裝置中。
- 一種儲存有指令之電腦可讀儲存媒體,該等指令在被執行時致使一處理器執行下列方法步驟:接收被儲存於一儲存媒體中之資料的輸入/輸出(I/O)存取的檔案層級資訊,其中該檔案層級資訊包含檔案刪除、檔案複製、檔案打開、檔案讀取、檔案大小、 檔案類型、及檔案移動資訊當中之至少一者;及至少根據該接收的檔案層級資訊來將儲存於該儲存媒體中之該資料快取至一快取裝置中或從中逐出。
- 如申請專利範圍第14項所述之媒體,其中將儲存於該儲存媒體中之該資料快取至該快取裝置中或從中逐出之該處理器,係用以將儲存於該儲存媒體之一或一個以上的邏輯區塊位址(LBA)中的資料快取至該快取裝置中或從中逐出。
- 如申請專利範圍第15項所述之媒體,其中該處理器進一步用以在與該資料相關聯的一檔案被在該處理器上執行的一作業系統(OS)移動時更新該儲存媒體之快取資料的LBA資訊。
- 如申請專利範圍第15項所述之媒體,其中該處理器進一步用以在與該資料相關聯的一檔案被在該處理器上執行的一作業系統(OS)自一LBA移至另一LBA時更新該儲存媒體之快取資料的LBA資訊。
- 如申請專利範圍第14項所述之媒體,其中該檔案層級資訊包含該資料的存取資訊,及其中將儲存於該儲存媒體中的該資料快取至該快取裝置中或從中逐出之該處理器係用以:預提取被儲存於該儲存媒體中的該資料;及當該存取資訊指出與該資料相關聯的一檔案被打開供執行一讀取操作時,將儲存於該儲存媒體中的該資料快取至該快取裝置中。
- 如申請專利範圍第14項所述之媒體,其中該檔案層級資訊包含該資料的存取資訊,及其中當該存取資訊指出與該資料相關聯的一檔案被打開供執行一重寫操作時,將儲存於該儲存媒體中的該資料快取至該快取裝置中或從中逐出之該處理器係用以逐出該資料。
- 一種裝置,其包含:一快取策略引擎,其用以至少根據與儲存於一儲存媒體中之資料相關聯之一或一個以上的檔案層級試探架構,來將該資料快取至NAND快閃記憶體中或從中逐出,其中該檔案層級試探架構包含檔案刪除、檔案複製、檔案打開、檔案讀取、檔案大小、檔案類型、及檔案移動資訊當中之至少一者。
- 如申請專利範圍第20項所述之裝置,其中該快取策略引擎是一檔案系統過濾驅動器的一部分,及其中該快取策略引擎係用以促進系統對該NAND快閃記憶體及該儲存媒體的存取。
- 如申請專利範圍第20項所述之裝置,其中該一或一個以上的檔案層級試探架構包含該資料的存取資訊,及其中當該存取資訊指出與該資料相關聯的一檔案被關閉時,將儲存於該儲存媒體中的該資料快取至該NAND快閃記憶體中或從中逐出之該快取策略引擎係用以逐出該資料。
- 如申請專利範圍第20項所述之裝置,其中該一或一個以上的檔案層級試探架構包含該資料的存取資訊,及其中 當該存取資訊指出與該資料相關聯的一檔案被打開供執行一讀取操作且該檔案的一快速I/O旗標被設定時,將儲存於該儲存媒體中的該資料快取至該NAND快閃記憶體中或從中逐出之該快取策略引擎係用以逐出該資料。
- 如申請專利範圍第20項所述之裝置,其中該一或一個以上的檔案層級試探架構包含該資料的存取資訊,及其中當該存取資訊指出一預讀命令在該資料的一快速I/O讀取操作期間被發出時,將儲存於該儲存媒體中的該資料快取至該NAND快閃記憶體中或從中逐出之該快取策略引擎,係用以快取與該預讀命令相關聯的資料。
- 如申請專利範圍第20項所述之裝置,其中該一或一個以上的檔案層級試探架構包含該資料的存取資訊,及其中該快取策略引擎進一步用以標示一檔案的一快取資料,以在該存取資訊指出該檔案被複製時允許其它檔案對該快取資料的引用。
- 如申請專利範圍第20項所述之裝置,其中該一或一個以上的檔案層級試探架構包含該資料的存取資訊,及其中當該存取資訊指出與該資料相關聯的一檔案被有一相同檔案名稱的另一檔案替換時,將儲存於該儲存媒體中的該資料快取至該快取裝置中或從中逐出之該快取策略引擎係用以逐出該資料。
- 如申請專利範圍第20項所述之裝置,其中該一或一個以上的檔案層級試探架構包含該資料的存取資訊,及其中當該存取資訊指出與該資料相關聯的檔案自一快取儲 存裝置被移至一非快取儲存裝置時,將儲存於該儲存媒體中的該資料快取至該快取裝置中或從中逐出之該快取策略引擎係用以逐出該資料。
- 如申請專利範圍第20項所述之裝置,其中該一或一個以上的檔案層級試探架構包含該資料的存取資訊,及其中該快取策略引擎進一步用以在該存取資訊指出與該資料相關聯的檔案自一快取儲存裝置被複製至一非快取儲存裝置時,降低該快取裝置中與該檔案相關聯的該資料的優先順序。
- 如申請專利範圍第20項所述之裝置,其中該一或一個以上的檔案層級試探架構包含該資料的存取資訊,及其中將儲存於該儲存媒體中的該資料快取至該NAND快閃記憶體中或從中逐出的該快取策略引擎,係用以在該存取資訊指出存取一檔案的一應用程式被標記為高優先順序時快取與該檔案相關聯的該資料。
- 一種方法,其包含:接收被儲存於一儲存媒體中之資料的輸入/輸出(I/O)存取的檔案層級資訊;及至少根據該接收的檔案層級資訊來將儲存於該儲存媒體中之該資料快取至一快取裝置中或從中逐出,其中將儲存於該儲存媒體中之該資料快取至該快取裝置中或從中逐出的步驟,包含當該資料之一檔案類型或一副檔名屬於一包含列表時快取該資料,而當該資料之該檔案類型屬於一排除列表時不快取該資料或逐出該資 料。
- 如申請專利範圍第30項所述之方法,其中將儲存於該儲存媒體中之該資料快取至該快取裝置中或從中逐出的步驟,包含將儲存於該儲存媒體之一或一個以上的邏輯區塊位址(LBA)中的資料快取至該快取裝置中或從中逐出。
- 如申請專利範圍第30項所述之方法,其中該檔案層級資訊包含檔案刪除、檔案複製、檔案打開、檔案讀取、檔案大小、檔案類型、及檔案移動資訊當中之至少一者。
- 如申請專利範圍第30項所述之方法,其中該檔案層級資訊包含一作業系統(OS)對該資料的存取優先順序,及其中將儲存於該儲存媒體中之該資料快取至該快取裝置中或從中逐出的步驟,包含當對該資料的該存取優先順序低時不快取該資料或逐出該資料,而當對該資料的該存取優先順序高時快取該資料。
- 如申請專利範圍第30項所述之方法,其中該檔案層級資訊包含執行對該資料的該IO存取之一應用程式的資訊,及其中將儲存於該儲存媒體中之該資料快取至該快取裝置中或從中逐出的步驟,包含當該應用程式是一挖掘應用程式時不快取該資料。
- 如申請專利範圍第34項所述之方法,其中該儲存媒體之該一或一個以上的LBA被映射至一虛擬記憶體頁面檔案,及其中將儲存於該儲存媒體中之該資料快取至該快取裝置中或從中逐出的步驟,包含將被映射至該虛擬記 憶體頁面檔案之該一或一個以上的LBA快取至該快取裝置中。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/415,595 US8171219B2 (en) | 2009-03-31 | 2009-03-31 | Method and system to perform caching based on file-level heuristics |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201040722A TW201040722A (en) | 2010-11-16 |
| TWI503665B true TWI503665B (zh) | 2015-10-11 |
Family
ID=42228569
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW099109383A TWI503665B (zh) | 2009-03-31 | 2010-03-29 | 根據檔案層級試探架構來執行快取之方法與系統 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US8171219B2 (zh) |
| CN (1) | CN101853208B (zh) |
| DE (1) | DE102010013389B4 (zh) |
| GB (1) | GB2469373B (zh) |
| TW (1) | TWI503665B (zh) |
Families Citing this family (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8850128B2 (en) * | 2009-12-23 | 2014-09-30 | HGST Netherlands B.V. | Implementing data storage and dual port, dual-element storage device |
| EP2609498A1 (en) | 2010-08-27 | 2013-07-03 | Fxi Technologies AS | Electronic devices |
| US9280477B2 (en) | 2010-12-13 | 2016-03-08 | Seagate Technology Llc | Data storage management in a memory device |
| US9323670B2 (en) | 2010-12-13 | 2016-04-26 | Seagate Technology Llc | Protecting volatile data of a storage device in response to a state reset |
| WO2012106362A2 (en) | 2011-01-31 | 2012-08-09 | Fusion-Io, Inc. | Apparatus, system, and method for managing eviction of data |
| US8473462B1 (en) * | 2011-04-21 | 2013-06-25 | Symantec Corporation | Change tracking for shared disks |
| US8838916B2 (en) | 2011-09-15 | 2014-09-16 | International Business Machines Corporation | Hybrid data storage management taking into account input/output (I/O) priority |
| CN102521161B (zh) * | 2011-11-21 | 2015-01-21 | 华为技术有限公司 | 一种数据的缓存方法、装置和服务器 |
| US9239793B2 (en) * | 2011-12-13 | 2016-01-19 | Ati Technologies Ulc | Mechanism for using a GPU controller for preloading caches |
| US10102117B2 (en) * | 2012-01-12 | 2018-10-16 | Sandisk Technologies Llc | Systems and methods for cache and storage device coordination |
| US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
| US9251052B2 (en) | 2012-01-12 | 2016-02-02 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer |
| JP5861473B2 (ja) * | 2012-01-27 | 2016-02-16 | 富士通株式会社 | 情報処理装置、メモリ管理方法およびメモリ管理プログラム |
| US10346095B2 (en) | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
| CN103049395B (zh) * | 2012-12-10 | 2015-12-23 | 记忆科技(深圳)有限公司 | 缓存存储设备数据的方法及其系统 |
| US9612956B2 (en) | 2013-03-15 | 2017-04-04 | Seagate Technology Llc | Multi-tiered caching for data storage management in a device |
| US10146437B2 (en) | 2014-03-17 | 2018-12-04 | Primaryio, Inc. | Tier aware caching solution to increase application performance |
| US10133488B2 (en) * | 2014-03-17 | 2018-11-20 | Primaryio, Inc. | Apparatus and method for cache provisioning, configuration for optimal application performance |
| CN104298617B (zh) * | 2014-08-20 | 2017-12-08 | 深圳大学 | 一种numa平台中非核部件数据流缓冲管理的优化方法及系统 |
| CN104202650B (zh) * | 2014-09-28 | 2017-11-17 | 西安诺瓦电子科技有限公司 | 流媒体播放系统及方法、led显示屏系统 |
| US9740635B2 (en) * | 2015-03-12 | 2017-08-22 | Intel Corporation | Computing method and apparatus associated with context-aware management of a file cache |
| US10365798B1 (en) | 2016-01-08 | 2019-07-30 | Microsoft Technology Licensing, Llc | Feedback manager for integration with an application |
| US9946646B2 (en) * | 2016-09-06 | 2018-04-17 | Advanced Micro Devices, Inc. | Systems and method for delayed cache utilization |
| US20180285274A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Apparatus, method and system for just-in-time cache associativity |
| CN107807888B (zh) * | 2017-09-04 | 2021-03-02 | 深圳市爱协生科技有限公司 | 一种用于soc架构的数据预取系统及其方法 |
| US10891233B2 (en) | 2018-06-28 | 2021-01-12 | Intel Corporation | Intelligent prefetch disk-caching technology |
| US10846241B2 (en) * | 2018-08-29 | 2020-11-24 | Vmware, Inc. | Score-based cache admission and eviction |
| KR102849235B1 (ko) | 2019-06-17 | 2025-08-22 | 삼성전자 주식회사 | 스토리지를 포함하는 전자 장치 및 그의 스토리지 이용 방법 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200516392A (en) * | 2003-05-07 | 2005-05-16 | Ibm | A distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
| TW200807266A (en) * | 2006-07-11 | 2008-02-01 | Dell Products Lp | System and method of dynamically changing file representations |
| US20080162795A1 (en) * | 2006-12-28 | 2008-07-03 | Genesys Logic, Inc. | Hard disk cache device and method |
| US20080215800A1 (en) * | 2000-01-06 | 2008-09-04 | Super Talent Electronics, Inc. | Hybrid SSD Using A Combination of SLC and MLC Flash Memory Arrays |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5257370A (en) | 1989-08-29 | 1993-10-26 | Microsoft Corporation | Method and system for optimizing data caching in a disk-based computer system |
| JPH0883148A (ja) | 1994-09-13 | 1996-03-26 | Nec Corp | 磁気ディスク装置 |
| US6766413B2 (en) | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
| US7444662B2 (en) | 2001-06-28 | 2008-10-28 | Emc Corporation | Video file server cache management using movie ratings for reservation of memory and bandwidth resources |
| US20030061352A1 (en) * | 2001-09-27 | 2003-03-27 | International Business Machines Corporation | Optimized file cache organization in a network server |
| US7237061B1 (en) | 2003-04-17 | 2007-06-26 | Realnetworks, Inc. | Systems and methods for the efficient reading of data in a server system |
| US20050138296A1 (en) * | 2003-12-18 | 2005-06-23 | Coulson Richard L. | Method and system to alter a cache policy |
| US7644239B2 (en) * | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
| US7509329B1 (en) | 2004-06-01 | 2009-03-24 | Network Appliance, Inc. | Technique for accelerating file deletion by preloading indirect blocks |
| KR100674189B1 (ko) | 2005-07-06 | 2007-01-24 | 주식회사 대우일렉트로닉스 | 프로젝터가 가능한 프로젝션 텔레비전 |
| KR100723512B1 (ko) * | 2005-11-23 | 2007-05-30 | 삼성전자주식회사 | 캐쉬 버퍼 제어 방법 및 이를 이용한 디스크 드라이브 |
| JP2007193865A (ja) | 2006-01-17 | 2007-08-02 | Toshiba Corp | 情報記録装置及びその制御方法 |
| JP2008046964A (ja) | 2006-08-18 | 2008-02-28 | Toshiba Corp | 情報記録装置及びその制御方法 |
| KR100833188B1 (ko) * | 2006-11-03 | 2008-05-28 | 삼성전자주식회사 | 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템 |
| KR100881187B1 (ko) | 2007-01-16 | 2009-02-05 | 삼성전자주식회사 | 하이브리드 하드 디스크 드라이브, 하이브리드 하드 디스크드라이브를 내장하는 컴퓨터 시스템, 그리고 하이브리드하드 디스크 드라이브의 플래시 메모리 dma 회로 |
| TW200841343A (en) * | 2007-04-02 | 2008-10-16 | Apacer Technology Inc | A data storage device consisting of NAND (Not-AND) flash memory and its data storing method |
| TWI397912B (zh) * | 2008-02-13 | 2013-06-01 | Genesys Logic Inc | 調整存取效能的快閃記憶體儲存裝置 |
| US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
| US8407400B2 (en) * | 2008-11-12 | 2013-03-26 | Micron Technology, Inc. | Dynamic SLC/MLC blocks allocations for non-volatile memory |
| US8209466B2 (en) * | 2008-12-16 | 2012-06-26 | Intel Corporation | Methods and systems to allocate addresses in a high-endurance/low-endurance hybrid flash memory |
-
2009
- 2009-03-31 US US12/415,595 patent/US8171219B2/en active Active
-
2010
- 2010-03-29 GB GB1005305A patent/GB2469373B/en active Active
- 2010-03-29 TW TW099109383A patent/TWI503665B/zh not_active IP Right Cessation
- 2010-03-30 DE DE102010013389.2A patent/DE102010013389B4/de active Active
- 2010-03-31 CN CN201010158578.1A patent/CN101853208B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080215800A1 (en) * | 2000-01-06 | 2008-09-04 | Super Talent Electronics, Inc. | Hybrid SSD Using A Combination of SLC and MLC Flash Memory Arrays |
| TW200516392A (en) * | 2003-05-07 | 2005-05-16 | Ibm | A distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
| TW200807266A (en) * | 2006-07-11 | 2008-02-01 | Dell Products Lp | System and method of dynamically changing file representations |
| US20080162795A1 (en) * | 2006-12-28 | 2008-07-03 | Genesys Logic, Inc. | Hard disk cache device and method |
Also Published As
| Publication number | Publication date |
|---|---|
| DE102010013389B4 (de) | 2022-11-24 |
| GB201005305D0 (en) | 2010-05-12 |
| TW201040722A (en) | 2010-11-16 |
| US8171219B2 (en) | 2012-05-01 |
| US20100250834A1 (en) | 2010-09-30 |
| GB2469373B (en) | 2011-10-19 |
| CN101853208B (zh) | 2014-12-10 |
| CN101853208A (zh) | 2010-10-06 |
| DE102010013389A1 (de) | 2010-11-04 |
| GB2469373A (en) | 2010-10-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI503665B (zh) | 根據檔案層級試探架構來執行快取之方法與系統 | |
| US9690694B2 (en) | Apparatus, system, and method for an address translation layer | |
| US8738882B2 (en) | Pre-organization of data | |
| US10359954B2 (en) | Method and system for implementing byte-alterable write cache | |
| US8291166B2 (en) | Caching performance optimization | |
| US9489297B2 (en) | Pregroomer for storage array | |
| US9037820B2 (en) | Optimized context drop for a solid state drive (SSD) | |
| CN104969170B (zh) | 层次化存储系统、存储控制器以及代替层次间的数据移动的方法 | |
| US11461033B2 (en) | Attribute-driven storage for storage devices | |
| US20150067001A1 (en) | Cache management in a computerized system | |
| CN104145252A (zh) | 两级高速缓存系统中的自适应高速缓存提升 | |
| KR20100021868A (ko) | 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법 | |
| EP3446221B1 (en) | Adapted block translation table (btt) | |
| JP2013143124A (ja) | メタデータの永続化のための方法 | |
| JP6713934B2 (ja) | 記憶装置及びその動作方法並びにシステム | |
| US20130086307A1 (en) | Information processing apparatus, hybrid storage apparatus, and cache method | |
| US8478933B2 (en) | Systems and methods for performing deduplicated data processing on tape | |
| CN110389709A (zh) | 顺序流检测与数据预读 | |
| CN107797772A (zh) | 一种基于闪存介质的垃圾回收系统及方法 | |
| Yim | A novel memory hierarchy for flash memory based storage systems | |
| US20190130135A1 (en) | Memory system and storage device capable of permanently deleting data stored in a non-volatile memory | |
| US10402112B1 (en) | Method and system for chunk-wide data organization and placement with real-time calculation | |
| JP2010176305A (ja) | 情報処理装置およびデータ記憶装置 | |
| CN101458663B (zh) | 储存装置的数据存取方法 | |
| TWI353519B (en) | Flash memory device and pipeline access method the |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |