TWI528378B - 延伸快閃碟的使用期限 - Google Patents
延伸快閃碟的使用期限 Download PDFInfo
- Publication number
- TWI528378B TWI528378B TW097103786A TW97103786A TWI528378B TW I528378 B TWI528378 B TW I528378B TW 097103786 A TW097103786 A TW 097103786A TW 97103786 A TW97103786 A TW 97103786A TW I528378 B TWI528378 B TW I528378B
- Authority
- TW
- Taiwan
- Prior art keywords
- input
- flash disk
- flash
- data
- buffer
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In host system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/463—File
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
本發明是有關於延伸快閃碟的使用期限。
當對一機械式硬碟機的各種位置進行讀取及寫入時,通常會出現因一硬碟機讀寫頭在一硬碟上自一處移動至另一處所需要之搜尋時間而牽涉到的延宕性。不過,快閃記憶體係一固態記錄機制而無移動部份,因此比起一機械式硬碟機具有較快的讀取存取時間。這是由於自一快閃記憶體讀取並不會受到因讀寫頭搜尋時間而致生之延宕性所影響,而這在一機械式硬碟機中常見如此。基於此一原因,自一快閃碟讀取可較自一機械式硬碟機讀取而快速十倍。此一經改良之讀取速度正是在許多計算運用方面,快閃碟正在取代機械式硬碟機的一個理由。
在典型的快閃碟裡,記憶體空間係按一稱為胞(cell)的範圍或陣列所組織。快閃記憶體之一限制在於雖可隨機地進行讀取及寫入,然僅能按區塊方式擦拭或清除。在作為寫入/再寫入處理之一部份而對一胞執行過某一有限次數的清除操作後,在一快閃碟內的胞會實體地磨損。通常,為磨損一胞之清除操作的循環次數是約在100,000到1,000,000次清除操作的範圍內。
一般說來,當需要重新寫入一胞內的資料時,是將舊有資料標註為無效,並且將該取代資料寫入至該胞內的一
可用區域。當在該胞內不再有可用空間時,即對該胞進行區塊清除,並且接著將新資料,連同在清除之前自該胞所拷貝出的有效資料,一起寫入至該經清除胞。此清除可釋放出該胞的先前無效局部而供再度寫入。然此一在快閃碟內寫入資料的處理程序係一在快閃碟內的「耗損均衡」(wear leveling)技術,而努力於限制對一胞所執行的清除操作次數。
而當快閃碟變得愈來愈大且愈來愈普遍,該等愈來愈常被用來作為一種補充性儲存裝置,並亦作為一取代機械式硬碟機的主要儲存裝置。由於這種對快閃碟的日增仰賴性,因此運用於一些程式及/或應用程式將會造成一快閃碟內的胞過度受壓。即使是運用目前的耗損均衡技術,這仍將會導致快閃碟的使用期限縮短。縮短的使用期限並非所樂見者,尤其是在當利用快閃記憶體作為一主要儲存裝置時。
因此,一種能夠解決部分前述之快閃碟不利因素及缺點的技術會為有所助益。
本「發明內容」係經提供以介紹一種按一較簡化形式,而在後文「實施方式」所進一步描述的選擇概念。本「發明內容」並非為以識別所主張之主題項目的各項關鍵特點或基本特性,亦非為以用於決定所主張主題項目之範圍的輔助。
在一用以過濾一快閃碟之輸入/輸出操作的電腦實作方法裡,會收到一針對於一快閃碟的輸入/輸出請求。決定該輸入/輸出請求是否關聯於一高量寫入操作。若該輸入/輸出請求係關聯於一高量寫入操作,則選擇執行一快閃碟輸入/輸出管理動作。所選定之快閃碟輸入/輸出管理動作可包含一像是下列的管理動作,然不限於此:管理由於該輸入/輸出請求而被寫入之資料的壓縮處理;管理由於該輸入/輸出請求而所讀取之經壓縮資料的解壓縮處理;管理該輸入/輸出請求的緩衝處理;或者管理該輸入/輸出請求至一週邊固態儲存裝置的重新導向。若該輸入/輸出請求並非關聯於一高量寫入操作,則將該輸入/輸出請求轉傳至該快閃碟。
快閃碟輸入/輸出操作的過濾處理以及針對於該快閃碟之高量寫入操作的管理作業可併同運作,藉以減少在正常操作過程中會另為寫入至該快閃碟的寫入操作。減少對該快閃碟的寫入操作可降低對該快閃碟內之胞上所執行的清除操作,藉此延伸該快閃碟的使用期限。
現將詳細參照於本項用以延伸快閃碟使用期限之技術的具體實施例,其範例可如各隨附圖式中所述。該用以延伸快閃碟使用期限之技術雖將併同於各式具體實施例而敘述,然將能瞭解該等並非為以將本項用以延伸快閃碟使用期限的技術限制在該等具體實施例。相反地,本項用以延
伸快閃碟使用期限之技術的具體實施例係為以涵蓋替代、修改及等同項目,該等可為如後載之申請專利範圍中所定義而納入於各式具體實施例的精神與範圍內。此外,在後述詳細說明裡列載無數特定細節,以供通徹地瞭解本項用以延伸快閃碟使用期限之技術的具體實施例。然而,可具體實作本項用以延伸快閃碟使用期限之技術的各種具體實施例,而無須該等特定細節。在其他實例裡,並未對眾知方法、程序、元件及電路詳細描述,藉以不致不要地模糊該等具體實施例的特點。
即如自後載討論而顯知,除另予詳細陳述者外,應瞭解在本詳細說明全篇裡,運用像是「接收」、「決定」、「選擇」、「轉傳」、「管理」、「壓縮」、「解壓縮」、「寫入」、「讀取」、「解析」、「執行」、「攔截」等等詞彙之討論是指一電腦系統(像是第1圖的電腦系統100)或類似電子計算裝置的動作及處理程序。該電腦系統或類似電子計算裝置可操縱在該電腦系統暫存器及記憶體之內如實體(電子)量值所表示的資料,並予轉換成其他在該電腦系統記憶體或暫存器或其他此等資訊儲存、傳輸或顯示裝置之內而如實體量值所類似地表示的資料。本項用以延伸快閃碟使用期限之技術的具體實施例亦良好適合其他電腦系統的運用,例如像是光學及虛擬電腦。此外,應瞭解亦可將本項用以延伸快閃碟使用期限之技術的具體實施例運用於延伸其他具有類似於快閃碟之硬體特徵的固態儲存裝置之使用期限。並且,應瞭解在本項用以延伸快閃碟使用期限之技術的一些
具體實施例裡,可依人工方式執行一或更多的步驟。
現將開始討論一範例電腦系統環境的說明,而本技術之具體實施例可藉此,或於此之內,運作。討論將進行至一按快閃碟過濾器形式之範例模組的說明,此者可運作以延長一快閃碟的壽命。將簡略地說明該快閃碟過濾器的元件。然後,將併同於一用於過濾一快閃碟之輸入/輸出操作的範例方法說明,同時併同於一用以延伸用來作為一作業系統主要儲存裝置之快閃碟的使用期限之範例方法,藉此進一步詳細地描述該快閃碟及其元件的操作。
現將參照於第1圖,全部或部分的本項用以延伸快閃碟使用期限之技術的各式具體實施例是由電腦可讀取及電腦可執行指令所組成,而該等常駐於例如一電腦系統的電腦可使用媒體之內。亦即,第1圖說明一類型之電腦的範例,此者可用以如後述實作本項用以延伸快閃碟使用期限之技術的具體實施例。第1圖說明一根據本項為以延伸快閃碟使用期限之技術的具體實施例而使用的範例電腦系統100。可顯知該第1圖系統100僅為一範例,並且本項為以延伸快閃碟使用期限之技術的具體實施例可在數種不同的電腦系統之上或之內運作,這些包含一般目的性之網接電腦系統、嵌入式電腦系統、路由器、交換器、伺服器裝置、
客戶端裝置、各式中介性裝置/節點、單立式電腦系統、媒體中心、可攜式電腦系統、手持式裝置等等。即如第1圖所示,第1圖電腦系統100係經良好調適以令例如像是一軟碟、一光碟等等之週邊電腦可讀取媒體102與其相連接。
第1圖的系統100包含一用以傳通資訊之位址/資料匯流排104,以及一處理器106A,此者係經耦接於該匯流排104以供處理資訊和指令。即如第1圖所繪,該系統100亦經良好調適於一多重處理器環境,其中出現有複數個處理器106A、106B及106C。相對地,該系統100亦經良好調適於具有一單一處理器,例如像是處理器106A。該等處理器106A、106B及106C可為任何類型的微處理器。該系統100亦含有資料儲存特性,像是一電腦可使用揮發性記憶體108,即如隨機存取記憶體(RAM),此者係經耦接於該匯流排104,藉以儲存用於該等處理器106A、106B及106C的資訊及指令。該系統100亦含有電腦可使用非揮發性記憶體110,即如唯讀記憶體(ROM),此者係經耦接於該匯流排104,藉以儲存用於該等處理器106A、106B及106C的靜態資訊及指令。亦出現在該系統100內者為一快閃碟112,此者係一固態快閃記憶體裝置,而用以作為一主要儲存裝置。即如第1圖所示,該快閃碟112係透過快閃碟過濾器210而耦接於該匯流排104。該快閃碟112是用以儲存用於該系統100的資訊及指令。在一些具體實施例裡,該系統100可另外地,或替代地,經組態設定以一額外儲存裝置(像是一磁性或光學碟片及碟機),此者可併
同於該快閃碟112而作為主要儲存裝置。
該系統100亦可包含一含有文數字及功能鍵的選擇性文數字輸入裝置114,此者係經耦接於該匯流排104,藉以將資訊及命令選擇傳通至該處理器106A或是該等處理器106A、106B及106C。該系統100亦可包含一選擇性游標控制裝置116,此者係經耦接於該匯流排104,藉以將使用者輸入之資訊及命令選擇傳通至該處理器106A或是該等處理器106A、106B及106C。本具體實施例的系統100亦包含一選擇性顯示裝置118,此者係經耦接於該匯流排104以供顯示資訊。
現仍參照於第1圖,第1圖的選擇性顯示裝置118可為一液晶裝置、陰極射線管、電漿顯示裝置,或是其他適用於建立使用者可辨識之圖形影像及文數字字元的顯示裝置。該選擇性游標控制裝置116可讓該電腦使用者能夠在該顯示裝置118之顯示螢幕上動態地發訊移動一可見符號(游標),並且表示出顯示於該顯示裝置118上之可選項目的使用者選擇。該游標控制裝置116的許多實作為業界所眾知,包含軌跡球、滑鼠、觸控板、搖桿,或是在該文數字輸入裝置114上而能夠發訊一給定移動方向或移位方式的多個特殊鍵。或另者,將能瞭解可利用特殊鍵及按鍵序列命令,透過來自該文數字輸入裝置114的輸入以導引及/或啟動一游標。該系統100亦經良好調適於具備一由其他例如像是語音命令之裝置所導引的游標。該系統100一包含一I/O裝置120,藉以將該系統100耦接於外部個體。
例如,在一具體實施例裡,該I/O裝置120係一數據機,藉以提供在該系統100與一像是網際網路,然不限於此,的外部網路之間的有線或無通訊。在另一具體實施例裡,該I/O裝置120可例如為一通用序列匯流排(USB)連接埠。在一其中該I/O裝置120為一USB連接埠的具體實施例裡,可將一週邊儲存裝置(即如一固態或機械式碟機)耦接於此,藉以運用在本技術的具體實施例。該固態儲存裝置的一些範例包含一記憶卡或可攜式快閃碟。
現仍參照於第1圖,其中對於該系統100描繪出各種其他元件。詳細地說,一作業系統122、應用程式124、模組126及資料128,在當出現時,係經顯示如常駐在該電腦可使用揮發性記憶體108,即如隨機存取記憶體(RAM),以及資料儲存單元112其一或部份的組合之內。
在一些具體實施例裡,本項用以延伸快閃碟使用期限的技術係實作成一應用程式124或模組126,像是一裝置驅動程式,此者可為位在該RAM 108內的記憶體位置處,而經儲存在週邊電腦可讀取媒體102上,或者儲存在該快閃碟112的媒體上。在各種具體實施例裡,即如本揭所述,本項用以延伸快閃碟使用期限的技術可如一快閃碟過濾器210般運作,此者包含一模組中接收並過濾導向於該快閃碟112之輸入/輸出請求的全部或一局部。在此一具體實施例裡,即如第1圖所示,該電腦系統100(及/或該快閃碟112)係經良好調適於具備或耦接於該快閃碟過濾器210。
現參照第2圖,該第2圖顯示一根據本技術之一具體實施例的範例快閃碟過濾器210。該快閃碟過濾器210係一用以減少對一像是該快閃碟112之快閃碟進行寫入操作的模組。例如,在一具體實施例裡,該快閃碟過濾器210係經實作於一軟體層或模組內,像是該作業系統的一部份。又在另一具體實施例裡,該快閃碟過濾器210係經實作為一韌體模組的全部或一部份。而又在另一具體實施例裡,該快閃碟過濾器210係經實作於一硬體模組。即如第2圖之範例具體實施例,該快閃碟過濾器210係由一輸入/輸出(I/O)本質決定器220、一快閃碟I/O管理選擇器230、一壓縮管理器241、一解壓縮管理器242、一緩衝器管理器243及一重新導向管理器244所組成。該快閃碟過濾器210係經耦接於,或經組態設定以耦接於,一快閃碟,藉以減少對該快閃碟的寫入及清除操作。該快閃碟之媒體的使用期限,其僅具一有限的清除操作次數,可因為由該快閃碟過濾器210所執行之過濾處理而增加。
為範例之目的,而非限制,該快閃碟過濾器210係經顯示為耦接於一資料壓縮/解壓縮模組250、一緩衝器260及一週邊儲存裝置270。然應暸解,在各種具體實施例裡,若由該等資料壓縮/解壓縮模組250、緩衝器260或週邊儲存裝置270所提供之功能性並非由一特定具體實施例所要求者,則該等耦接的一或更多者可為選擇性。同樣地,應暸解在各式具體實施例裡,可將該等資料壓縮/解壓縮模組
250、緩衝器260或週邊儲存裝置270之一或更多的功能性併入在該快閃碟過濾器210內,而非如圖所示透過一連至一外部個體之耦接所存取。
該資料壓縮/解壓縮模組250在該快閃碟過濾器210之管理下運作,藉以併同於選定之攔截I/O請求而執行資料壓縮或解壓縮作業。例如,在一具體實施例裡,該資料壓縮/解壓縮模組250壓縮一選定寫入操作,此者最初係經導引朝向於該快閃碟,然而被該快閃碟過濾器210重新導引至該資料壓縮/解壓縮模組250。類似地,在來自該快閃碟過濾器210的管理下,該資料壓縮/解壓縮模組250將自一快閃碟所讀取的經壓縮資料予以解壓縮。在一些具體實施例裡,該資料壓縮/解壓縮模組250亦在資料壓縮的過程中執行資料加密,並且在資料解壓縮的過程中執行資料解密。
該緩衝器260是用以在當該I/O請求經該快閃碟過濾器210所緩衝時,於該快閃碟過濾器210的管理下接收一選定攔截I/O請求。在一具體實施例裡,可利用隨機存取記憶體,像是RAM 108,之一局部以作為該緩衝器260。
該週邊儲存裝置270是在當該輸入/輸出請求被該快閃碟過濾器210而自該快閃碟所重新導引時,於該快閃碟過濾器210的管理下用以接收一選定輸入/輸出請求。該週邊儲存裝置270可為一機械式硬碟機或一固態儲存裝置。固態儲存裝置的一些範例為一記憶卡,以及一像是可攜式快閃碟的外部USB快閃碟。
即如第2圖所示,該快閃碟過濾器210可運作以攔截一經導引而朝向於一正予過濾之快閃碟的I/O請求。該I/O請求可例如接收自一運行於該電腦系統100之上的作業系統或應用程式。即如第1圖及第2圖所示,該快閃碟112係一可將該快閃碟過濾器210耦接於此之快閃碟的範例。為範例之目的,且非限制,本揭各種範例說明使用該快閃碟過濾器210以過濾經導向於該快閃碟112的I/O請求,而此快閃碟係運作如該電腦系統100的主要儲存裝置。然應瞭解本揭所述技術的具體實施例可類似地用以延伸其他例如像是一可攜式快閃碟之快閃碟的使用期限,而該者係可移除地耦接於該電腦系統100的一I/O裝置120。
該輸入/輸出本質決定器220決定一I/O請求的本質。在攔截到對該快閃碟112的I/O請求之後,該快閃碟過濾器210的I/O本質決定器220分析該I/O請求以決定其本質。例如,在一具體實施例裡,該I/O本質決定器220可運作以決定該I/O請求是否為一高量寫入請求。同樣地,在一具體實施例裡,該I/O本質決定器220可進一步運作以決定該經攔截I/O請求所歸屬之高量寫入請求的特定類別。在一具體實施例裡,若該I/O本質決定器220決定該所攔截之I/O請求並非關聯於一高量寫入請求,則將該I/O請求轉傳至該快閃碟112。
該快閃碟輸入/輸出管理選擇器230可根據該輸入/輸出請求的本質選擇一快閃碟輸入/輸出管理動作。在先前範
例之後,該快閃碟I/O管理選擇器230自該I/O本質決定器220處收到一所攔截I/O請求的本質。根據該所攔截I/O請求的本質,該快閃碟I/O管理選擇器230選擇將會管理該I/O請求的方式。該快閃碟I/O管理選擇器230係藉由從該快閃碟過濾器210所經組態設定之可用I/O管理器(241、242、243及244)而選擇一I/O管理器所如此進行,並因此進行待予對該I/O請求所執行的管理動作。在一些具體實施例裡,像是其中該快閃碟過濾器210係經組態設定於僅單一I/O管理器,即可不需要該快閃碟I/O管理選擇器230。
一快閃碟輸入/輸出管理器(241、242、243及244)係經組態設定以管理一快閃碟輸入/輸出管理動作的執行作業,這可有助於減少對該快閃碟的寫入操作。在先前範例之後,一旦選定,該快閃碟輸入/輸出管理器(241、242、243及244)即按一確保減少對該快閃碟112所執行之寫入操作的總數之方式來管理所攔截I/O請求。此寫入操作的減少可降低對該快閃碟112之胞執行清除操作的需要,因而延長該快閃碟112的使用期限。該快閃碟過濾器210係經顯示有四個快閃碟I/O管理器(241、242、243及244)。然應暸解,在各式具體實施例裡,在該快閃碟過濾器210中可含有比起第2圖所示者為較多或較少數量的快閃碟I/O管理器。同樣地,應暸解,在一些具體實施例裡,可由另一快閃碟I/O管理器存取,或納入於其內,一或更多快閃碟I/O管理器的功能性。
該壓縮管理器241管理經導向於該快閃碟112之所選定攔截I/O請求的壓縮作業。在一具體實施例裡,該壓縮管理器241係用以選擇性地壓縮經決定為關聯於高量寫入操作之I/O請求的全部或是其一子集合。例如,將用於一選定寫入操作的資料導向至該資料壓縮/解壓縮模組250,而在此將其壓縮為經壓縮資料。在一些具體實施例裡,在壓縮之後,該壓縮管理器241接著導引該經壓縮資料而寫入至該快閃碟112。或另者,在一些具體實施例裡,在壓縮後,該壓縮管理器241接著導引該經壓縮資料而寫入至該緩衝器260或寫至該週邊儲存裝置270。然後,在一些具體實施例裡,可在一緩衝器門檻值逾期之後,將經緩衝的壓縮資料寫入至該快閃碟112。藉由壓縮該資料,可減少對該快閃碟112之寫入操作的次數,從而降低對該快閃碟112之胞所執行的清除操作次數。
該解壓縮管理器242管理經壓縮資料的解壓縮作業,該資料係根據一經攔截I/O請求而被請求自該快閃碟112、該緩衝器260或該週邊儲存裝置270讀取。在一具體實施例裡,所讀取的經壓縮資料係先前在攔截一與一高量寫入操作相關聯的I/O請求之後所壓縮者。該解壓縮管理器242管理該經壓縮資料自該所存位置處的讀取處理,然後將該經壓縮資料導向至該資料壓縮/解壓縮模組250,而在此予以解壓縮。接著,該解壓縮管理器242將該經解壓縮資料導向至該資料的末端接收者,即如由該經攔截I/O請求所標定者。
該緩衝器管理器243管理一所收I/O請求的緩衝處理,此請求係至少臨時地儲存於該緩衝器260內。該緩衝器管理器243的另一功能為,由於一序列之I/O請求而解析被寫入至該緩衝器260內之資料的重複、冗餘或重疊寫入。在一具體實施例裡,會在一情況下進行該解析處理,即其中一第一版本的資料單元被寫入至該緩衝器260,接著一後續、經修改或等同版本的相同資料單元寫入至該緩衝器260,而卻仍然出現有該第一版本的資料。在一具體實施例裡,在此情況下該緩衝器管理器243會藉由以該經修改資訊來更新該第一版本,或者是拋除該第一版本而僅保留該第二版本,以解析相同資料單元的兩個版本。
該資料單元的經解析版本會被視為是經更新資料。而在一其中該經解析之資料單元係一經壓縮資料的實例裡,其經解析版本被視為是經更新的壓縮資料。該緩衝器管理器243可減少該經緩衝資料對該快閃碟112,或對該週邊儲存裝置270,的後續寫入作業,藉由解析一經寫入至該緩衝器260內之資料單元的多個版本。作業系統對一登註檔案的寫入係一高量寫入操作的範例,此者可在該緩衝器260內臨時地儲存並解析,藉以減少對該快閃碟112的寫入。
該重新導向管理器244將一待予寫入的所收I/O請求重新導向至另一位置,而非至該快閃碟112。例如,在一具體實施例裡,該重新導向管理器244將待予寫入之經選定I/O請求重新導向至該週邊儲存裝置270,而非至該快
閃碟112。在此一具體實施例裡,這可包含一中介步驟,即將一I/O請求的寫入重新導向至該緩衝器260,接著在超越一緩衝器門檻值之後,再導引至該週邊儲存裝置270。此重新導向可減少會另為寫入至該快閃碟112之寫入作業的次數。例如,在一具體實施例裡,該週邊儲存裝置270係一廉價的可攜式快閃碟機,以犧牲地接收高量寫入操作,從而可延伸該快閃碟112的使用期限。在此一具體實施例裡,執行重新導向一I/O請求的決策可為根據出現有一可將該I/O請求重新導向至此之週邊儲存裝置270或緩衝器260。
執行該重新導向的決策亦將為基於該I/O請求的本質。在許多實例裡,該週邊儲存裝置270可為簡易地(或可能突兀地)移除;由於此一理由,在一具體實施例裡僅會重新導向具低度重要性而高量資料的寫入操作。這將防止漏失重要資料,而例如若萬一移除該週邊儲存裝置270,則這些可能會造成一作業系統或應用程式故障。
一高量寫入操作之範例為對一作業系統之分頁檔案的寫入。其他的高量寫入操作範例為由預取應用程式,或用於一電腦系統之搜尋索引化應用程式,所執行的寫入操作。
對於分頁檔案而言,這些通常是用於協助一作業系統以超出存在於一電腦系統中之有限量隨機存取記憶體而建立額外的可使用記憶體。可透過虛擬記憶體技術以建立並運用額外的記憶體。為運用此等技術,一些作業系統會將記憶體分割成稱為分頁(Page)的團塊。分頁的大小可為逐
個作業系統而改變,然分頁的概念維持相同。可於記憶體內(例如RAM)獲用該虛擬記憶體的「分頁」,然此者也會被備份於一分頁檔案內,而經儲存至例如像是該快閃碟112的主要儲存裝置中。
在一作業系統的正常操作下,可有不同類型的分頁。有些記憶體分頁為唯讀。一可執行檔案係一唯讀分頁的範例。有些記憶體分頁為可讀寫。一可讀寫分頁的範例為使用者資料,例如像是一經配置予一文書處理器的使用者資料記憶體分頁。當以文書處理器撰寫或編輯一文件的過程中作出變動時,即可對此使用者資料記憶體分頁進行讀取及寫入。若將此文書處理器最小化,從而可使用另一程式,先前在記憶體內的分頁都會被寫入至主要儲存裝置,因此可被其他分頁所取代而在該可用RAM裡為作用使用中。
即如可見般,在一像是電腦系統100之電腦的正常操作過程中,通常會在該虛擬記憶體內之分頁檔案中進行大量的讀取及寫入。雖將該記憶體稱為「虛擬」,然確有實際地進行大量的讀取及寫入,並且執行至一真實儲存位置,像是在該快閃碟112內的記憶體胞。
第3圖係一根據一本技術快閃碟過濾器210之具體實施例所執行的操作之流程圖300。該流程圖300顯示對一導向於一像是該快閃碟112之快閃碟的主題I/O請求所執行之操作。該主題I/O請求係一被該快閃碟過濾器210的一具體實施例所攔截者,而該者係經組態設定以運用資料壓縮及解壓縮作業,藉此減少與一作業系統之分頁請求相
關聯的寫入處理。
在步驟310,於一具體實施例裡,該I/O本質決定器220收到一導向於該快閃碟112的I/O請求。該I/O本質決定器220決定該I/O請求是否關聯於一高量寫入操作。在本項快閃碟過濾器210實例化中,這包含決定該I/O請求是否為一分頁I/O請求。若否,則在步驟320將該I/O請求轉傳至例如該快閃碟112。在轉傳該I/O請求之後,該流程圖300的此一分支即於步驟390而告結束。
即如步驟330中所示,在一具體實施例裡,若該I/O請求係關聯於一分頁請求,則利用該快閃碟I/O管理選擇器230以決定該I/O請求究係一讀取操作或一寫入操作。若該I/O請求為一讀取操作,則該流程圖前進到步驟340;否則,該流程圖即前進到步驟370。
在步驟340,於一具體實施例裡,利用該解壓縮管理器242以管理對如該I/O請求所正讀取之資料而執行的解壓縮動作。例如,該解壓縮管理器242導引該經壓縮資料而自該者所經儲存的位置讀取。可將該經壓縮資料例如儲存於該快閃碟112上、在該緩衝器260內或是在該週邊儲存裝置270中。在步驟350,該解壓縮管理器242接著將該經壓縮資料導引至該資料壓縮/解壓縮模組250,在此將該者解壓縮成經解壓縮資料。在步驟360,然後該解壓縮管理器242視如該經攔截I/O請求之要求而導引該經解壓縮資料以予轉傳。接著,該流程圖300的此一分支結束於步驟390。
在步驟370,於一具體實施例裡,運用該壓縮管理器241以管理對如該I/O請求所正寫入之資料而執行的壓縮動作。按如該I/O請求而寫入的資料被該壓縮管理器241導引至該資料壓縮/解壓縮模組250,在此將其壓縮成經壓縮資料。
在步驟380,該壓縮管理器241導引該經壓縮資料而予寫入。這可包含將該經壓縮資料直接地寫入至該快閃碟112。這亦可包含將關聯於一I/O請求之經壓縮資料寫入至該緩衝器260或至該週邊儲存裝置270。這亦可包含將關聯於一I/O請求之經壓縮資料寫入至該緩衝器260,然後在超過一緩衝器門檻值之後,再將該經壓縮資料寫入至該快閃碟112或該週邊儲存裝置270。即如本揭前述,這亦可包含解析該經壓縮資料被寫入至該緩衝器260的冗餘、重複或重疊版本。然後該流程圖300的此一分支結束於步驟390。
通常可利用像是預取(prefetching)及搜尋索引化處理(本揭前述)之應用程式,以令一電腦能夠對一使用者而更為快速地運行。這些應用程式通常會增加自該快閃碟112的讀取次數,然亦因寫入至其相關索引或資料庫檔案之更新而增加對該快閃碟112的寫入次數。此為若無使用這些技術,則該快閃碟112會體驗到較一般程度為高的寫入增加。在一具體實施例裡,與預取及/或搜尋索引化處理應用程式之檔案相關聯的高量寫入操作之資料會按類似於第3圖流程圖300所述之分頁I/O請求壓縮及解壓縮的方式而
管理。
第4圖顯示一根據本技術之一具體實施例所執行的緩衝管理動作之範例。第4圖顯示按如一FIFO(先進先出)類型之緩衝器以管理該緩衝器260的緩衝器管理器243。即如第4圖所示,對該緩衝器260的接續寫入係自左至右而佇序排列。當該緩衝器260成為滿整時,或者當超過一指定緩衝器門檻值時,會將該緩衝器260淨空並寫入至該快閃碟112。一緩衝器門檻值之範例為一關聯於該緩衝器260之計時器的逾期。另一緩衝器門檻值的範例為超過該緩衝器260之滿整性的預標定位準。然後,將經佇列之寫入410按所收次序寫入至該快閃碟112的胞(421、422、423、424、425、426、427)。即如可見,這可獲致兩個對該胞421的寫入,一個對該胞422的寫入,三個對該胞424的寫入以及一個對該胞426的寫入。在一具體實施例裡,藉由解析資料的冗餘、重複或重疊版本(即如前述),可藉由在單一寫入操作中,而非多個寫入操作中,將一資料單元交予該快閃碟112,以減少對該快閃碟112的寫入總數。在此一具體實施例裡,該FIFO操作係經些略修改以供解析在該緩衝器260之內的資料。
第5圖顯示另一根據本技術之一具體實施例所執行的緩衝管理動作之範例。第5圖顯示一按如一桶區類型緩衝器以管理該緩衝器260的緩衝器管理器243。即如由第5圖所示,該緩衝器260被劃分成多個桶區(521、522、523、524、525、526、527),此等將寫入操作儲存於該快閃碟
112內的一些位移之間(例如存至一特定胞,或者是另為存至特定的位址範圍,而此等可位於一胞內或是展開跨於該快閃碟112的多個胞)。
當收到一對於該快閃碟112的寫入時,該緩衝器管理器243將該寫入放置在一對於所配置之記憶體位移範圍的適當桶區(bucket)內。若並對於該寫入而言該桶區並不存在,則該緩衝器管理器243開始對於具類似位移的新桶區而寫入,並且接著將該寫入操作緩衝於此一新桶區內。將其他寫入操作標定在一桶區範圍之內的經攔截I/O請求將會被群組合一於相同的桶區裡。緩衝處理雖經執行,然該緩衝器管理器243亦按先前所述方式解析在各桶區之內的重複及冗餘資料。
一旦一桶區變得全滿或是超過緩衝器門檻值容量,則會將在一桶區中所累積的寫入操作寫入至適當的單一或多個胞內(421-427)內,而此者(等)含有經指配予一特定桶區的位移。超過一緩衝器門檻值的範例為被一特定桶區,或是被整個緩衝器260,觸及滿整性的預標定位準。超過一緩衝器門檻值的另一範例則為一關聯於該緩衝器260,或是關聯於該緩衝器260內之一特定桶區或一組桶區,的計時器逾期。在第5圖中,將該緩衝器260淨空獲致三個自桶區521至該胞421的寫入,兩個自桶區522至該胞422的寫入,一個自桶區523至該胞423的寫入,一個自桶區524至該胞424的寫入,以及一個自桶區526至該胞426的寫入。即如第4及5圖的比較所展現,該桶區緩衝方法
比起FIFO緩衝方法會更細緻,因為此者儲存更多對於一特定胞或一胞之局部的寫入,並且可在進行之前提供比起該FIFO緩衝方法更廣泛地解析寫入操作。
底下討論詳細地陳述本項用以延伸快閃碟使用期限之技術的具體實施例之一些範例操作方法的操作方式。參照於第6圖及第7圖,流程圖600及700各者說明由本項用以延伸快閃碟使用期限之技術的各種具體實施例所使用之範例步驟。流程圖600及700包含,在各種具體實施例裡,於電腦可讀取及電腦可執行指令之控制下而由一處理器所執行的處理程序。該等電腦可讀取及電腦可執行指令係常駐於例如資料儲存特性內,像是第1圖的電腦可使用揮發性記憶體108、電腦可使用非揮發性記憶體110、週邊電腦可讀取媒體102及/或快閃碟112。該等電腦可讀取及電腦可執行指令是用以併同於例如第1圖的處理器106A,及/或處理器106A、106B及106C,以進行控制或操作。在流程圖600及700中雖揭示特定步驟,然該等步驟為範例。亦即,該等具體實施例係經良好調適於執行流程圖600及700中所述之各種其他步驟或步驟的變化項目。應暸解可按不同於所呈現者之次序執行流程圖600及700中的步驟,並且並非流程圖600及700之中的所有步驟皆需執行。
第6圖係一根據一本項用以延伸快閃碟使用期限之技術的一具體實施例所執行之操作的流程圖600。更詳細地說,第6圖說明一用以過濾一快閃碟,例如像是該快閃碟112,之I/O操作的電腦實作方法之範例具體實施例流程圖600。底下將參照於第1、2及5圖以解釋流程圖600的構件。
在一具體實施例裡,流程圖600之步驟610包含接收一經導向於一快閃碟的輸入/輸出請求。即如本揭各式範例所描述者,在一具體實施例裡,這包含該快閃碟過濾器210,此者接收一導向至例如像是該快閃碟112之快閃碟的I/O請求。
在一具體實施例裡,流程圖600的步驟620包含決定在步驟610所收到的輸入/輸出請求是否關聯於一高量寫入操作。該I/O本質決定器220作出此一決定。本揭中既已說明數項特定的高量寫入操作範例。這些範例包含與分頁檔案、預取、索引化及登註寫入相關聯的I/O請求。可瞭解到這些僅為許多I/O請求的其中數項,該等關聯於高量寫入操作,並且可由該I/O本質決定器220按本文所述方式加以識別。該I/O本質決定器220有關於決定與分頁I/O請求相關聯之I/O請求的操作範例可為由流程圖300步驟310的範例所述者。應暸解,當評估一對於複數個可能高量寫入操作之任何一者的所收I/O請求時,該I/O本質決定器220係按類似方式運作。
在一具體實施例裡,回應於決定該輸入/輸出請求係關
聯於一高量寫入操作,流程圖600的步驟630包含選擇一快閃碟輸入/輸出管理動作以供執行。在一具體實施例裡,此項選擇是由該快閃碟I/O管理選擇器230按本揭前述方式所執行。例如,該快閃碟I/O管理選擇器230,部分地基於該I/O請求的本質,並且部分地基於該快閃碟過濾器210所經組態設定於之可用I/O管理器(242、242、243、244),選擇一管理動作以供執行。
從而,即如在流程圖300之內繪示的快閃碟過濾器210具體實施例所述,該快閃碟I/O管理選擇器230自一含有管理按該I/O請求之結果而寫入的資料壓縮,以及管理如該I/O請求之結果所讀取的經壓縮資料解壓縮之管理動作群組中選擇一快閃碟管理動作。
同樣地,在一第2圖所說明之快閃碟過濾器210具體實施例裡,該快閃碟I/O管理選擇器230自含有如下管理動作之群組中選擇一快閃碟管理動作:按如該I/O請求之結果而管理所寫入資料的壓縮處理;按如該I/O請求之結果管理所讀取之經壓縮資料的解壓縮處理;管理該I/O請求的緩衝處理;或者管理該I/O請求至一週邊固態儲存裝置的重新導向。
應瞭解在一些具體實施例裡,即如本揭所述,管理按如該I/O請求之結果而寫入的資料之壓縮的選定I/O管理動作包含將該I/O請求的經壓縮資料寫入至一緩衝器。這可藉由該壓縮管理器241將該經壓縮資料寫入至該緩衝器260,或是藉由該壓縮管理器241存取並運用該緩衝器管理
器243藉以將該經壓縮資料寫入至該緩衝器260而達成。此外,在將該經壓縮資料寫入至該緩衝器260之後,該壓縮管理器241可進一步管理將該經壓縮資料自該緩衝器260寫入至該快閃碟112的操作。
亦應瞭解在一些具體實施例裡,即如本揭所述,管理該I/O請求之緩衝處理的選定I/O管理動作進一步包含將與該I/O請求相關聯的資料自一緩衝器寫入至一週邊儲存裝置。這可藉由該緩衝器管理器243管理將資料自該緩衝器260寫入至該週邊儲存裝置270的操作而達成。應進一步暸解,在此一具體實施例裡,該週邊儲存裝置270可為一像是記憶卡或USB快閃碟的固態儲存裝置。
當多個並且可能為重疊的管理動作可用以作為選擇時,該快閃碟I/O管理選擇器230可根據該I/O請求之本質,以及該本質對一預定規則集合的比較,而作出選擇。例如,在此一具體實施例裡,所有的分頁I/O寫入請求都會被發送至該壓縮管理器241,因此可將與該作業系統相關聯之分頁檔案的資料加以壓縮,而同時將所有的分頁I/O讀取請求發送至該解壓縮管理器242,因此可讀取並解壓縮該分頁檔案的資料。同樣地,在此規則式具體實施例裡,會將與一索引化操作相關聯的I/O寫入請求發送至該壓縮管理器241,因此可在寫入之前,先對與一該索引化操作之檔案相關聯的資料進行壓縮。同樣地,在此規則式具體實施例裡,會將與一索引化操作相關聯的I/O寫入請求發送至該壓縮管理器241,因此可在寫入之前,先對與
一該索引化操作之檔案相關聯的資料進行壓縮。此外,在一此規則式具體實施例裡,若一週邊儲存裝置270為可用,則將所有的登註檔案I/O請求發送至該緩衝器管理器243,並且將所有其他的高量寫入操作發送至該重新導向管理器244以供重新導向。
在一具體實施例裡,回應於決定該輸入/輸出請求並非關聯於一高量寫入操作,流程圖600的步驟640包含將該輸入/輸出請求轉傳至該快閃碟。在先前範例之後,當決定該I/O請求並非關聯於一高量寫入操作時,該快閃碟過濾器210的I/O本質決定器220將該I/O請求轉傳至該快閃碟112上。
延伸一作為一作業系統之主儲存裝置的快閃碟之使用期限
第7圖係一根據一本項用以延伸快閃碟使用期限之技術的一具體實施例所執行之操作的流程圖700。更詳細地說,第7圖說明一流程圖700,此係一延伸一用以作為一作業系統之主儲存裝置的快閃碟之使用期限的範例方法。底下將參照於第1、2及3圖之構件以解釋流程圖700的構件。
在一具體實施例裡,流程圖700之步驟710包含接收一自一作業系統而導向於一快閃碟的輸入/輸出請求。即如本揭各種範例所述,在一具體實施例裡這會含有該快閃碟過濾器210,此者接收一導向於一例如像是該快閃碟112之快閃碟的I/O請求。在一具體實施例裡,該作業系統是
運用該快閃碟112而作為一用以併同於該作業系統運行所執行之活動的主儲存裝置。
在一具體實施例裡,流程圖700的步驟720包含決定該所接收I/O請求的本質。例如,在一具體實施例裡,這包含決定該I/O請求是否包含關聯於一高量寫入操作的資料,像是下列者,然不限於此:與該作業系統之一分頁檔案相關聯的資料;與一由該作業系統所執行之預取操作相關聯的資料;與一作業系統之登註檔案相關聯的資料;及/或與一由該作業系統所執行之索引化操作相關聯的資料。在一具體實施例裡,即如本揭所述,該I/O本質決定器220決定該I/O請求是否包含與此一高量寫入操作相關聯的資料。
在一具體實施例裡,流程圖700之步驟730包含根據該I/O請求的本質以執行一快閃碟I/O管理動作,使得能夠減少由該作業系統對該快閃碟所執行之寫入操作的次數,而同時地維持該作業系統的整體性。即如本揭所述,在一具體實施例裡,這包含壓縮與一高量寫入操作相關聯的資料。可藉由正確地管理該資料的壓縮作業而使得無資料漏失來維持該作業系統的整體性。在一具體實施例裡,亦可藉由確保僅將對該作業系統運作極為關鍵之資料儲存在該快閃碟112上,而不會重新導向至該週邊儲存裝置270,其中資料可能會因自該電腦系統移除該週邊儲存裝置270(像是移除一可攜式快閃碟)而容易地漏失,來保護該作業系統的整體性。此外,在一具體實施例裡,可藉由將
該經壓縮資料加密以保護該作業系統的整體性,尤其是在其中該資料被重新導向以供儲存在可簡易地自該電腦系統移除之週邊儲存裝置270上的實例裡。
在一具體實施例裡,該快閃碟I/O管理選擇器230選擇該壓縮管理器241。該壓縮管理器241可藉由將與一高量寫入操作相關聯之資料重新導向至該資料壓縮/解壓縮模組250,在此將該資料壓縮成經壓縮資料,來執行此項與該高量寫入操作相關聯之資料的壓縮作業。在一具體實施例裡,這亦可包含將該經壓縮資料加密。流程圖300描述一此一具體實施例的實例化。
在一具體實施例裡,是將步驟730的經壓縮資料寫入至一週邊儲存裝置,而非寫入至該快閃碟。例如,在一具體實施例裡,於壓縮該資料之後,該壓縮管理器241管理該經壓縮資料的重新導向作業,使得是將該經壓縮資料寫入至該週邊儲存裝置270,而非該快閃碟112。該壓縮管理器241可藉由存取並運用該重新導向管理器244以完成此一重新導向作業。在一具體實施例裡,即如本揭所述,該週邊儲存裝置270可為一固態碟機,像是一記憶卡或一可攜式快閃碟。
在一具體實施例裡,是將步驟730的經壓縮資料寫入至一緩衝器,而非寫入至該快閃碟。例如,在一具體實施例裡,在壓縮與該I/O請求相關聯的資料之後,該壓縮管理器241管理該經壓縮資料的重新導向及/或緩衝處理,使得是將該經壓縮資料寫入至該緩衝器260,而非寫入至該
快閃碟112。該壓縮管理器241可藉由存取並運用該緩衝器管理器243及/或該重新導向管理器244,或另為藉由併入一類似功能性,以完成此一重新導向及/或緩衝處理。
在一具體實施例裡,該經壓縮資料至一緩衝器的寫入亦包含將該資料的重複、冗餘或重疊版本解析而為一經更新的壓縮資料;然後,回應於超過一緩衝器門檻值,將該經更新之壓縮資料自該緩衝器寫入至該快閃碟。在一具體實施例裡,即如本揭所述,該壓縮管理器241可存取或併入該緩衝器管理器243的功能性,藉以解析儲存在該緩衝器260之內的經壓縮資料,並且將該經解析資料自該緩衝器260寫入至該快閃碟112。在一具體實施例裡,若該週邊儲存裝置270為可用,並且若該經解析資料對於該作業系統之功能性並無關鍵重要性,則不以將該經解析資料寫入至該快閃碟112,而是將該經解析資料重新導向至該週邊儲存裝置270。
如上說明本項用以延伸快閃碟之使用期限的技術之範例具體實施例。雖既已按照特定於結構特性及/或方法動作之語言來描述主題事項,然應暸解在後載申請專利範圍中所定義主題事項並非必然地受限於前述各項特定特性或動作。相反地,上述各項特定特性及動作係按如實作該申請專利範圍之範例形式所揭示。
100‧‧‧電腦系統
102‧‧‧週邊電腦可讀取媒體
104‧‧‧位址/資料匯流排
106‧‧‧處理器
108‧‧‧電腦可使用揮發性記憶體
110‧‧‧電腦可使用非揮發性記憶體
112‧‧‧快閃碟
114‧‧‧文數字輸入裝置
116‧‧‧游標控制裝置
118‧‧‧顯示裝置
120‧‧‧I/O裝置
122‧‧‧作業系統
124‧‧‧應用程式
126‧‧‧模組
128‧‧‧資料
210‧‧‧快閃碟過濾器
220‧‧‧I/O本質決定器
230‧‧‧快閃碟I/O管理選擇器
241‧‧‧壓縮管理器
242‧‧‧解壓縮管理器
243‧‧‧緩衝器管理器
244‧‧‧重新導向管理器
250‧‧‧資料壓縮/解壓縮模組
260‧‧‧緩衝器
270‧‧‧週邊儲存裝置
410‧‧‧經佇列之寫入
421-427‧‧‧胞
521-527‧‧‧桶區
經併入本規格文件內且構成其一部份之隨附圖式說明
可用以延伸快閃碟使用期限之技術的具體實施例,並可連同於本文說明以解釋後文所述原理,其中:第1圖係一可併同於本項為以延伸快閃碟使用期限之技術的具體實施例而使用的範例電腦系統圖式。
第2圖顯示一根據本技術之一具體實施例的範例快閃碟過濾器。
第3圖係一根據一本技術快閃碟過濾器之具體實施例所執行的操作之流程圖。
第4圖顯示一根據本技術之一具體實施例所執行的緩衝管理動作之範例。
第5圖顯示另一根據本技術之一具體實施例所執行的緩衝管理動作之範例。
第6圖係一根據一本技術之一具體實施例所執行的操作之流程圖。
第7圖係一根據一本技術之一具體實施例所執行的操作之流程圖。
應瞭解,除另特定註述以外,本文說明中所參照的圖式並未依比例而繪。
Claims (15)
- 一用以過濾一快閃碟之輸入/輸出操作的電腦實作方法,該方法包括以下步驟:接收一輸入/輸出請求,該輸入/輸出請求係從一作業系統導向於該快閃碟;回應於決定該輸入/輸出請求係關聯於一高量寫入操作之步驟,而選擇一快閃碟輸入/輸出管理動作以供執行,其中選擇該快閃碟輸入/輸出管理動作以供執行的該步驟包括以下步驟:管理被寫入之資料的壓縮處理,且將與該輸入/輸出請求相關聯之該經壓縮資料寫入至一緩衝器,且接著在一緩衝器門檻值被超過之後,將該經壓縮資料寫入至該快閃碟,或若一週邊儲存裝置為可用時寫入至該週邊儲存裝置,且其中該方法更包括以下步驟:確保僅將對該作業系統之一運作極為關鍵之資料儲存在該快閃碟上而不重新導向至該週邊儲存裝置;以及回應於決定該輸入/輸出請求並非關聯於該高量寫入操作之步驟,而將該輸入/輸出請求轉傳至該快閃碟。
- 如申請專利範圍第1項所述之電腦實作方法,選擇該快閃碟輸入/輸出管理動作以供執行之該步驟包括以下步驟:自包括如下項目之快閃碟管理動作的一群組中,選擇該快閃碟輸入/輸出管理動作:管理由於該輸入/輸出請求 而被寫入之資料的壓縮處理、管理由於該輸入/輸出請求而被讀取之經壓縮資料的解壓縮處理、管理該輸入/輸出請求的緩衝處理,以及管理該輸入/輸出請求至一週邊固態儲存裝置的重新導向。
- 如申請專利範圍第2項所述之電腦實作方法,管理由於該輸入/輸出請求而被寫入之資料的壓縮處理之快閃碟輸入/輸出管理動作包括:壓縮一與該作業系統相關聯之分頁檔案的資料。
- 如申請專利範圍第2項所述之電腦實作方法,管理由於該輸入/輸出請求而被寫入之資料的壓縮處理之快閃碟輸入/輸出管理動作包括:壓縮一與一預取操作相關聯之檔案的資料。
- 如申請專利範圍第2項所述之電腦實作方法,管理由於該輸入/輸出請求而被寫入之資料的壓縮處理之快閃碟輸入/輸出管理動作包括:壓縮一與一搜尋索引化操作相關聯之檔案的資料。
- 如申請專利範圍第1項所述之電腦實作方法,包括以下步驟:決定該輸入/輸出請求是否與一低重要性寫入操作相 關聯;回應於決定該輸入/輸出請求並非與該低重要性寫入操作相關聯,將該輸入/輸出請求轉傳至該快閃碟;及回應於決定該輸入/輸出請求是與該高量寫入操作相關聯且不與該低重要性寫入操作相關聯,取消選擇供以執行的該快閃碟輸入/輸出管理動作。
- 一種電腦可讀取媒體,具有電腦可執行指令以供執行一種方法,該方法包括如下步驟:接收一輸入/輸出請求,該輸入/輸出請求係自一作業系統而導向至一快閃碟;決定該輸入/輸出請求的一本質;以及根據與一高量寫入操作相關聯的該輸入/輸出請求的該本質執行一快閃碟輸入/輸出管理動作,使得能夠減少由該作業系統對該快閃碟所執行之寫入操作的次數,而同時維持該作業系統的整體性,該快閃碟輸入/輸出管理動作包括以下步驟:管理被寫入之資料的壓縮處理,且將與該輸入/輸出請求相關聯之該經壓縮資料寫入至一緩衝器,且接著在一緩衝器門檻值被超過之後,將該經壓縮資料寫入至該快閃碟,或若一週邊儲存裝置為可用時寫入至該週邊儲存裝置,且其中該方法更包括以下步驟:確保僅將對該作業系統之一運作極為關鍵之資料儲存在該快閃碟上而不重新導向至該週邊儲存裝置。
- 如申請專利範圍第7項所述之電腦可讀取媒體,決定該輸入/輸出請求之該本質的該步驟包括用於下列項目的電腦可執行指令:決定該輸入/輸出請求是否包括與一分頁檔案、一預取操作或一搜尋索引化操作中之至少一者相關聯的資料。
- 如申請專利範圍第7項所述之電腦可讀取媒體,執行該快閃碟輸入/輸出管理動作的該步驟包括用於下列項目的電腦可執行指令:回應於與該緩衝器相關聯之一計時器的一逾期,自該緩衝器將該資料寫入至該快閃碟。
- 如申請專利範圍第7項所述之電腦可讀取媒體,包括用於下列項目的電腦可執行指令:解析該經壓縮資料之重複版本成為一經更新之壓縮資料。
- 一種用以減少對一快閃碟之寫入操作的模組,該模組包括:一快閃碟過濾器,此者係用以耦接該快閃碟,該快閃碟過濾器係經組態設定以攔截一經導向於該快閃碟的輸入/輸出請求,該快閃碟過濾器包括: 一輸入/輸出本質決定器,此者係用以決定該輸入/輸出請求的一本質;一快閃碟輸入/輸出管理選擇器,此者係用以至少部分地根據與一高量寫入操作相關聯之該輸入/輸出請求的該本質選擇一快閃碟輸入/輸出管理動作;一快閃碟輸入/輸出管理器,該輸入/輸出管理器係經組態設定以管理該快閃碟輸入/輸出管理動作的執行,這有助於減少對該快閃碟的寫入操作;以及一緩衝器管理器,耦合至一緩衝器,該緩衝器管理器係經組態設定以執行以下步驟:當該快閃碟過濾器將該輸入/輸出請求暫存於該緩衝器中時,接收該輸入/輸出請求;及解析該緩衝器內之重複資料、冗餘資料或重疊寫入資料中之至少一者。
- 如申請專利範圍第11項所述之模組,該快閃碟過濾器包括:一耦接,此者接於一壓縮/解壓縮模組,而該壓縮/解壓縮模組係經組態設定而用於壓縮經導向於該快閃碟的選定寫入操作,並且解壓縮自該快閃碟所讀取的經壓縮資料。
- 如申請專利範圍第11項所述之模組,該快閃碟過濾器輸入/輸出管理選擇器係經組態設定以至少部分地基於該 輸入/輸出請求是否與一低重要性寫入操作相關聯,來選擇該快閃碟輸入/輸出管理動作。
- 如申請專利範圍第11項所述之模組,該緩衝器管理器係經組態設定以回應於與該緩衝器相關聯之一計時器的一逾期,自該緩衝器將資料的一第一版本寫入至該快閃碟。
- 如申請專利範圍第11項所述之模組,該緩衝器管理器係經組態設定以在決定該資料的一第二版本被寫入至該緩衝器時,更新該緩衝器內之資料的一第一版本。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/700,443 US8560760B2 (en) | 2007-01-31 | 2007-01-31 | Extending flash drive lifespan |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200841353A TW200841353A (en) | 2008-10-16 |
TWI528378B true TWI528378B (zh) | 2016-04-01 |
Family
ID=39669223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097103786A TWI528378B (zh) | 2007-01-31 | 2008-01-31 | 延伸快閃碟的使用期限 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8560760B2 (zh) |
EP (1) | EP2108151B1 (zh) |
JP (1) | JP5452233B2 (zh) |
KR (1) | KR101465816B1 (zh) |
CN (1) | CN101595461B (zh) |
BR (1) | BRPI0806587A2 (zh) |
RU (1) | RU2451993C2 (zh) |
TW (1) | TWI528378B (zh) |
WO (1) | WO2008095134A1 (zh) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8111707B2 (en) * | 2007-12-20 | 2012-02-07 | Packeteer, Inc. | Compression mechanisms for control plane—data plane processing architectures |
JP2009087509A (ja) * | 2007-10-03 | 2009-04-23 | Toshiba Corp | 半導体記憶装置 |
US9183133B2 (en) * | 2007-11-28 | 2015-11-10 | Seagate Technology Llc | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory |
US8473946B2 (en) * | 2008-07-03 | 2013-06-25 | Vmware, Inc. | Efficient recording and replaying of non-deterministic instructions in a virtual machine and CPU therefor |
US20110035540A1 (en) * | 2009-08-10 | 2011-02-10 | Adtron, Inc. | Flash blade system architecture and method |
JP2011128792A (ja) * | 2009-12-16 | 2011-06-30 | Toshiba Corp | メモリ管理装置 |
US8909851B2 (en) | 2011-02-08 | 2014-12-09 | SMART Storage Systems, Inc. | Storage control system with change logging mechanism and method of operation thereof |
US8935466B2 (en) | 2011-03-28 | 2015-01-13 | SMART Storage Systems, Inc. | Data storage system with non-volatile memory and method of operation thereof |
TWI451425B (zh) * | 2011-04-25 | 2014-09-01 | Silicon Motion Inc | 快閃記憶裝置及其資料保護方法 |
US9098399B2 (en) | 2011-08-31 | 2015-08-04 | SMART Storage Systems, Inc. | Electronic system with storage management mechanism and method of operation thereof |
US9021319B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Non-volatile memory management system with load leveling and method of operation thereof |
US9021231B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Storage control system with write amplification control mechanism and method of operation thereof |
US9063844B2 (en) | 2011-09-02 | 2015-06-23 | SMART Storage Systems, Inc. | Non-volatile memory management system with time measure mechanism and method of operation thereof |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US9298252B2 (en) | 2012-04-17 | 2016-03-29 | SMART Storage Systems, Inc. | Storage control system with power down mechanism and method of operation thereof |
US8949689B2 (en) | 2012-06-11 | 2015-02-03 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9671962B2 (en) | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
US10565099B2 (en) * | 2012-12-28 | 2020-02-18 | Apple Inc. | Methods and apparatus for compressed and compacted virtual memory |
US9123445B2 (en) | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9183137B2 (en) | 2013-02-27 | 2015-11-10 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
JP6069031B2 (ja) | 2013-03-04 | 2017-01-25 | 株式会社日立製作所 | 計算機及びメモリ管理方法 |
US9470720B2 (en) | 2013-03-08 | 2016-10-18 | Sandisk Technologies Llc | Test system with localized heating and method of manufacture thereof |
US9043780B2 (en) | 2013-03-27 | 2015-05-26 | SMART Storage Systems, Inc. | Electronic system with system modification control mechanism and method of operation thereof |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
US9313874B2 (en) | 2013-06-19 | 2016-04-12 | SMART Storage Systems, Inc. | Electronic system with heat extraction and method of manufacture thereof |
US9898056B2 (en) | 2013-06-19 | 2018-02-20 | Sandisk Technologies Llc | Electronic assembly with thermal channel and method of manufacture thereof |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9146850B2 (en) | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
US9431113B2 (en) | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9317211B2 (en) | 2014-05-02 | 2016-04-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method of life management for low endurance SSD NAND devices used as secondary cache |
US9811459B1 (en) | 2014-06-16 | 2017-11-07 | Amazon Technologies, Inc. | Data storage optimization for non-volatile memory |
US10223000B2 (en) * | 2015-05-21 | 2019-03-05 | International Business Machines Corporation | Data compression for grid-oriented storage systems |
US11461010B2 (en) | 2015-07-13 | 2022-10-04 | Samsung Electronics Co., Ltd. | Data property-based data placement in a nonvolatile memory device |
US10282324B2 (en) | 2015-07-13 | 2019-05-07 | Samsung Electronics Co., Ltd. | Smart I/O stream detection based on multiple attributes |
CN106527959B (zh) * | 2015-09-10 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 刷新磁盘输入输出请求的处理方法及设备 |
EP3430507A4 (en) | 2016-07-08 | 2020-04-01 | Hewlett-Packard Development Company, L.P. | DETERMINATION OF A DEVICE WEAR RATE |
US10268386B2 (en) * | 2016-12-28 | 2019-04-23 | Western Digital Technologies, Inc. | Data storage device including temporary storage locations |
CN115658625B (zh) * | 2022-12-12 | 2023-03-14 | 北京象帝先计算技术有限公司 | 数据解压系统、图形处理系统、装置、设备及解压方法 |
Family Cites Families (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5490260A (en) | 1990-12-14 | 1996-02-06 | Ceram, Inc. | Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size |
DE19540915A1 (de) * | 1994-11-10 | 1996-05-15 | Raymond Engineering | Redundante Anordnung von Festkörper-Speicherbausteinen |
US5568423A (en) * | 1995-04-14 | 1996-10-22 | Unisys Corporation | Flash memory wear leveling system providing immediate direct access to microprocessor |
JPH0944381A (ja) * | 1995-07-31 | 1997-02-14 | Toshiba Corp | データ格納方法およびデータ格納装置 |
US5835935A (en) * | 1995-09-13 | 1998-11-10 | Lexar Media, Inc. | Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory |
US6711666B1 (en) * | 1995-11-29 | 2004-03-23 | Zf Micro Solutions, Inc. | IBM PC compatible multi-chip module |
US5787484A (en) | 1996-08-08 | 1998-07-28 | Micron Technology, Inc. | System and method which compares data preread from memory cells to data to be written to the cells |
US5905757A (en) | 1996-10-04 | 1999-05-18 | Motorola, Inc. | Filter co-processor |
US6418506B1 (en) * | 1996-12-31 | 2002-07-09 | Intel Corporation | Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array |
HUP0001495A3 (en) | 1997-03-21 | 2001-01-29 | Canal Plus Sa | System for defining and addressing buffers in a memory area in a computer system, memory system in a computer, method of updating a flash memory devided into separately writable pages, flash memory system in a computer,.. |
US6154788A (en) * | 1997-04-25 | 2000-11-28 | Simple Technology, Inc. | Multi-function module incorporating flash memory having additional controller adapted to configure the data from the memory that is to be provided to the external source |
JP2001519563A (ja) | 1997-10-08 | 2001-10-23 | シーゲイト テクノロジー エルエルシー | ディスクドライブアレイおよびデータ格納方法 |
US6189069B1 (en) | 1998-02-17 | 2001-02-13 | Microsoft Corporation | Optimized logging of data elements to a data storage device |
JP2000036947A (ja) | 1998-07-17 | 2000-02-02 | Mitsubishi Electric Corp | 映像蓄積配信表示装置 |
JP2000201333A (ja) | 1999-01-05 | 2000-07-18 | Matsushita Electric Ind Co Ltd | 多重化通信装置 |
US6145069A (en) | 1999-01-29 | 2000-11-07 | Interactive Silicon, Inc. | Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices |
US8078794B2 (en) * | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
US20050160218A1 (en) * | 2004-01-20 | 2005-07-21 | Sun-Teck See | Highly integrated mass storage device with an intelligent flash controller |
US7509420B2 (en) * | 2000-02-18 | 2009-03-24 | Emc Corporation | System and method for intelligent, globally distributed network storage |
US20030046396A1 (en) * | 2000-03-03 | 2003-03-06 | Richter Roger K. | Systems and methods for managing resource utilization in information management environments |
US20020174227A1 (en) * | 2000-03-03 | 2002-11-21 | Hartsell Neal D. | Systems and methods for prioritization in information management environments |
US6883044B1 (en) * | 2000-07-28 | 2005-04-19 | Micron Technology, Inc. | Synchronous flash memory with simultaneous access to one or more banks |
US7689510B2 (en) * | 2000-09-07 | 2010-03-30 | Sonic Solutions | Methods and system for use in network management of content |
JP2002132454A (ja) | 2000-10-19 | 2002-05-10 | Xaxon R & D Corp | 圧縮伸張装置を備えた半導体ディスク装置 |
US6681506B2 (en) * | 2000-10-27 | 2004-01-27 | The Procter & Gamble Company | Process for the ironing of fabrics, and refill cartridge for irons |
EP1205838A3 (en) | 2000-11-07 | 2007-10-10 | Matsushita Electric Industrial Co., Ltd. | Carryable memory media, portable information terminal using the same and method for managing files therein |
KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US7454446B2 (en) * | 2001-08-31 | 2008-11-18 | Rocket Software, Inc. | Techniques for storing data based upon storage policies |
KR100393619B1 (ko) * | 2001-09-07 | 2003-08-02 | 삼성전자주식회사 | 휴대 단말기의 메모리 장치 및 그 제어방법 |
KR100454119B1 (ko) * | 2001-10-24 | 2004-10-26 | 삼성전자주식회사 | 캐쉬 기능을 갖는 불 휘발성 반도체 메모리 장치 및 그것의 프로그램, 읽기, 그리고 페이지 카피백 방법들 |
US7127550B1 (en) * | 2001-10-31 | 2006-10-24 | Sandisk Corporation | Multi-module simultaneous program, erase test, and performance method for flash memory |
RU2189630C1 (ru) | 2001-11-21 | 2002-09-20 | Бабаян Борис Арташесович | Способ фильтрации межпроцессорных запросов в многопроцессорных вычислительных системах и устройство для его осуществления |
US6681309B2 (en) * | 2002-01-25 | 2004-01-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for measuring and optimizing spatial segmentation of electronic storage workloads |
US20050036387A1 (en) * | 2002-04-24 | 2005-02-17 | Seal Brian K. | Method of using flash memory for storing metering data |
JP4063615B2 (ja) * | 2002-08-30 | 2008-03-19 | Necエレクトロニクス株式会社 | 不揮発性メモリおよびその書き込み処理方法 |
US7020758B2 (en) * | 2002-09-18 | 2006-03-28 | Ortera Inc. | Context sensitive storage management |
US6993603B2 (en) * | 2002-12-09 | 2006-01-31 | Microsoft Corporation | Managed file system filter model and architecture |
US7814128B2 (en) * | 2003-05-30 | 2010-10-12 | Symantec Operating Corporation | Multi-volume file support |
TWI220959B (en) | 2003-06-05 | 2004-09-11 | Carry Computer Eng Co Ltd | Storage device with optimized compression management mechanism |
ITVA20030025A1 (it) | 2003-07-17 | 2005-01-18 | Lamberti Spa | Depolimerizzazione enzimatica di carbossimetilcellulosa e relativi prodotti. |
KR100546348B1 (ko) * | 2003-07-23 | 2006-01-26 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그 데이터 저장 방법 |
US6876579B2 (en) * | 2003-08-04 | 2005-04-05 | Phison Electronics Corp. | Method writing data to a large block of a flash memory cell |
KR101087906B1 (ko) | 2003-11-18 | 2011-11-30 | 파나소닉 주식회사 | 파일기록장치 |
US20090193184A1 (en) * | 2003-12-02 | 2009-07-30 | Super Talent Electronics Inc. | Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System |
CN100538900C (zh) * | 2003-12-31 | 2009-09-09 | 深圳市朗科科技股份有限公司 | 闪存介质中的数据操作方法 |
JP4568502B2 (ja) * | 2004-01-09 | 2010-10-27 | 株式会社日立製作所 | 情報処理システムおよび管理装置 |
WO2005096220A1 (ja) * | 2004-03-31 | 2005-10-13 | Matsushita Electric Industrial Co., Ltd. | メモリカード及びメモリカードシステム |
US8352697B2 (en) * | 2004-05-17 | 2013-01-08 | Sandisk Il Ltd. | Method of managing files for optimal performance |
US7702848B2 (en) * | 2004-06-10 | 2010-04-20 | Marvell World Trade Ltd. | Adaptive storage system including hard disk drive with flash interface |
JP2008502988A (ja) * | 2004-06-15 | 2008-01-31 | ティー1 テクノロジーズ リミテッド | コンピュータシステムのブート方法および装置 |
US20060069896A1 (en) * | 2004-09-27 | 2006-03-30 | Sigmatel, Inc. | System and method for storing data |
US20060117018A1 (en) | 2004-11-30 | 2006-06-01 | Microsoft Corporation | Method and system for caching remote files locally |
US7087953B2 (en) * | 2004-12-03 | 2006-08-08 | Aplus Flash Technology, Inc. | Unified non-volatile memory device and method for integrating NOR and NAND-type flash memory and EEPROM device on a single substrate |
KR100684942B1 (ko) * | 2005-02-07 | 2007-02-20 | 삼성전자주식회사 | 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템 |
KR100590388B1 (ko) * | 2005-03-10 | 2006-06-19 | 주식회사 하이닉스반도체 | 멀티-플레인 타입 플래쉬 메모리 장치와, 그 프로그램 동작및 리드 동작 제어 방법 |
KR100626392B1 (ko) * | 2005-04-01 | 2006-09-20 | 삼성전자주식회사 | 읽기 속도를 향상시킬 수 있는 플래시 메모리 장치 |
KR100704037B1 (ko) * | 2005-04-15 | 2007-04-04 | 삼성전자주식회사 | 이종의 비휘발성 메모리를 가지는 데이터 저장장치와 그의구동 방법 |
JP2007004710A (ja) | 2005-06-27 | 2007-01-11 | Nec Corp | ストレージアクセス方式、データ転送装置、ストレージアクセス方法、及びプログラム |
US8321859B2 (en) * | 2005-12-22 | 2012-11-27 | Alan Joshua Shapiro | Method and apparatus for dispensing on a data-storage medium customized content comprising selected assets |
US7747812B2 (en) * | 2005-12-22 | 2010-06-29 | Pitney Bowes Inc. | Method for manipulating state machine storage in a small memory space |
US7555575B2 (en) * | 2006-07-27 | 2009-06-30 | Hitachi, Ltd. | Method and apparatus for migrating data between storage volumes of different data pattern |
US20080228998A1 (en) * | 2007-03-16 | 2008-09-18 | Spansion Llc | Memory storage via an internal compression algorithm |
-
2007
- 2007-01-31 US US11/700,443 patent/US8560760B2/en active Active
-
2008
- 2008-01-31 CN CN2008800035709A patent/CN101595461B/zh active Active
- 2008-01-31 KR KR1020097015539A patent/KR101465816B1/ko active IP Right Grant
- 2008-01-31 TW TW097103786A patent/TWI528378B/zh not_active IP Right Cessation
- 2008-01-31 RU RU2009129412/08A patent/RU2451993C2/ru not_active IP Right Cessation
- 2008-01-31 WO PCT/US2008/052709 patent/WO2008095134A1/en active Application Filing
- 2008-01-31 EP EP08728762.9A patent/EP2108151B1/en active Active
- 2008-01-31 JP JP2009548458A patent/JP5452233B2/ja active Active
- 2008-01-31 BR BRPI0806587-0A2A patent/BRPI0806587A2/pt active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
EP2108151A1 (en) | 2009-10-14 |
JP2010518491A (ja) | 2010-05-27 |
KR101465816B1 (ko) | 2014-11-26 |
CN101595461A (zh) | 2009-12-02 |
EP2108151B1 (en) | 2014-09-24 |
RU2451993C2 (ru) | 2012-05-27 |
WO2008095134A1 (en) | 2008-08-07 |
KR20090117919A (ko) | 2009-11-16 |
BRPI0806587A2 (pt) | 2014-05-13 |
US8560760B2 (en) | 2013-10-15 |
TW200841353A (en) | 2008-10-16 |
EP2108151A4 (en) | 2012-12-26 |
US20080183918A1 (en) | 2008-07-31 |
CN101595461B (zh) | 2012-07-04 |
RU2009129412A (ru) | 2011-02-10 |
JP5452233B2 (ja) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI528378B (zh) | 延伸快閃碟的使用期限 | |
US7409522B1 (en) | Method and system for reallocating data in a file system | |
US20120158674A1 (en) | Indexing for deduplication | |
US20090144496A1 (en) | Fast accessible compressed thin provisioning volume | |
US9875153B2 (en) | Validation bits and offsets to represent logical pages split between data containers | |
KR102449585B1 (ko) | 버저닝 저장 장치 및 방법 | |
KR20040060732A (ko) | 데이터 저장 장치 및 시스템을 위한 로그 구조 기록 캐시 | |
KR20100021868A (ko) | 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법 | |
US20120221824A1 (en) | Data storage using bitmaps | |
US8850148B2 (en) | Data copy management for faster reads | |
US11620218B2 (en) | Using multi-tiered cache to satisfy input/output requests | |
KR20090091746A (ko) | 라이트백 캐시 유닛을 사용하여 데이터를 관리하는 시스템, 방법 및 컴퓨터 프로그램 제품 | |
US20200174689A1 (en) | Update of raid array parity | |
JP2009064160A (ja) | 計算機システム、管理計算機及びデータ管理方法 | |
JP2018181202A (ja) | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム | |
Vieyra et al. | Solid state drive forensics: Where do we stand? | |
US10831388B2 (en) | Selective data destruction via a sanitizing wipe command | |
US10990535B2 (en) | Storage control apparatus and storage control method for deduplication | |
US11520510B1 (en) | Extending the lifespan of a flash-based storage device | |
US11513704B1 (en) | Selectively evicting data from internal memory during record processing | |
US11436158B2 (en) | Fine-grained forced cache eviction | |
JP6579149B2 (ja) | ストレージ制御装置、及びストレージ制御プログラム | |
JP2010003150A (ja) | メモリコントローラおよびフラッシュメモリのデータ管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |