TW201437806A - 增加記憶體中之備用空間以延長記憶體之生命週期之系統、方法、及電腦程式產品 - Google Patents

增加記憶體中之備用空間以延長記憶體之生命週期之系統、方法、及電腦程式產品 Download PDF

Info

Publication number
TW201437806A
TW201437806A TW103120106A TW103120106A TW201437806A TW 201437806 A TW201437806 A TW 201437806A TW 103120106 A TW103120106 A TW 103120106A TW 103120106 A TW103120106 A TW 103120106A TW 201437806 A TW201437806 A TW 201437806A
Authority
TW
Taiwan
Prior art keywords
memory
flash memory
reserved
blocks
life cycle
Prior art date
Application number
TW103120106A
Other languages
English (en)
Other versions
TWI539277B (zh
Inventor
Radoslav Danilak
Original Assignee
Lsi Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lsi Corp filed Critical Lsi Corp
Publication of TW201437806A publication Critical patent/TW201437806A/zh
Application granted granted Critical
Publication of TWI539277B publication Critical patent/TWI539277B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本發明提供一種用於延長記憶體的生命週期之系統、方法及電腦程式產品。操作上,增加記憶體的預留空間。此外,由於記憶體的預留空間的增加來延長該記憶體的生命週期。

Description

增加記憶體中之備用空間以延長記憶體之生命週期之系統、方法及電腦程式產品
本發明關於一種記憶體,更特別地係,關於具有一有限生命週期之記憶體。
在包括非揮發性記憶(例如快閃記憶體等)的先前技術記憶體系統中,此記憶體在寫入資料之前,必須要先抹除。明確地係,當儲存資料的一部分被改變時,對應的整個記憶體區塊會被讀取,然後抹除,其中的資料匯被編輯以反映變更,隨後必須使用新的資料寫入整個記憶體區塊。因此,當寫入一4KB頁面的記憶體時,例如,512KB的記憶體會寫入。
一些先前技術已發展可供連續資料分組寫入,設法減少必須寫入的資料量。然而,此技術應用在任意寫入資料的系統(例如在資料庫系統)時會有缺點。
仍然地係,一些先前技術已藉由連續寫入任意資料以處理這些缺點,然後使用一資料表或類似資料結構追蹤資料存在的地方。雖然此技術改進先前的方法,不過允許舊資料(例如被改變且然後儲存在新位置的資料)繼續儲存在記憶體。當處理此舊資料時(即是「垃圾」等),一處理程序一般可發現包含此舊資料的記憶體區塊,並在收集 此整個舊資料區塊及然後抹除之前,將任何有用資料從此區塊複製到其他記憶體頁面。結果,在先前技術中,將會寫入更多的資料,這是因為除了一主機電腦所寫入的資料量之外尚收集了舊資料(例如垃圾收集)。例如,有效的資料可從垃圾收集的區塊複製,以建立用於抹除操作的至少一空區塊。
如此,需要處理與先前技術有關的這些及/或其他議題。
一種系統、方法及電腦程式產品提供用以延長記憶體的生命週期。操作上,增加記憶體的預留空間。此外,由於記憶體的預留空間的增加,該記憶體的生命週期得以延長。
150‧‧‧記憶體模組
152‧‧‧記憶體區塊
156‧‧‧寫入的資料
158‧‧‧快閃頁
160‧‧‧預留區塊
200‧‧‧技術
202‧‧‧操作總數
204‧‧‧期望的生命週期
206‧‧‧最大平均操作率
300‧‧‧技術
302‧‧‧操作總數
304‧‧‧期望的生命週期
306‧‧‧最大平均操作率
400‧‧‧技術
402‧‧‧操作總數
404‧‧‧期望的生命週期
406‧‧‧最大平均操作率
500‧‧‧系統
501‧‧‧電腦
502‧‧‧儲存匯流排
503‧‧‧儲存系統
510‧‧‧裝置
511‧‧‧控制器
512‧‧‧匯流排
513‧‧‧匯流排
514‧‧‧生命週期評估器模組
515‧‧‧匯流排
516‧‧‧節流模組
517‧‧‧時間模組
518‧‧‧匯流排
519‧‧‧匯流排
520‧‧‧需要的生命週期模組
521‧‧‧匯流排
522‧‧‧匯流排
530‧‧‧儲存裝置
531‧‧‧區塊或模組
532‧‧‧區塊或模組
533‧‧‧區塊或模組
540‧‧‧儲存裝置
541‧‧‧區塊或模組
542‧‧‧區塊或模組
543‧‧‧區塊或模組
700‧‧‧圖形使用者介面
702‧‧‧計量器
704‧‧‧警告
705‧‧‧估計
900‧‧‧系統
901‧‧‧電腦
902‧‧‧輸入/輸出(I/O)匯流排
903‧‧‧讀取路徑
904‧‧‧寫入路徑
910‧‧‧裝置
911‧‧‧差異計算模組
912‧‧‧更新模組
913‧‧‧匯流排
914‧‧‧匯流排
915‧‧‧匯流排
920‧‧‧合併記憶體
921‧‧‧合併記憶體緩衝器
922‧‧‧合併記憶體緩衝器
923‧‧‧合併記憶體緩衝器
930‧‧‧儲存裝置
931‧‧‧儲存區塊
932‧‧‧儲存區塊
933‧‧‧儲存區塊
934‧‧‧預定部分
935‧‧‧其餘部分
1200‧‧‧系統
1201‧‧‧主機處理器
1202‧‧‧通信匯流排
1204‧‧‧主記憶體
1206‧‧‧圖形處理器
1208‧‧‧顯示器
1210‧‧‧輔助儲存裝置
第一A圖顯示根據一具體實施例之用於延長記憶體的生命週期之方法。
第一B圖顯示根據一具體實施例之具有一延長生命週期之記憶體模組。
第一C圖顯示根據一具體實施例之用於延遲減少記憶體生命週期的操作之方法。
第二圖顯示根據另一具體實施例之用於延遲減少記憶體生命週期的操作之技術。
第三圖顯示根據另一具體實施例之用於延遲減少記憶體生命週期的操作之一以時間間隔為主之技術。
第四圖顯示根據另一具體實施例之用於延遲減少記憶體生命週期的操作之一以整合為主之技術。
第五圖說明根據另一具體實施例之用以若預期的生命週期持續時間超過一估計的生命週期持續時間,延遲減少記憶體生命週期的操作之系統。
第六圖說明根據另一具體實施例之用以若預期的生命週期持續時間超過一估計的生命週期持續時間,延遲減少記憶體生命週期的操作之方法。
第七圖顯示根據另一具體實施例之用於測定記憶體的生命週期之圖形使用者介面。
第八圖顯示根據另一具體實施例之利用差異資訊以減少記憶體的寫入操作之方法。
第九圖說明根據另一具體實施例之用於減少記憶體的寫入操作之系統。
第十圖說明根據一具體實施例之使用差異資訊以讀取記憶體之方法。
第十一圖說明根據一具體實施例之使用差異資訊以寫入記憶體之方法。
第十二圖說明使用一以處理器為主之系統之一具體實施例。
第一A圖顯示根據一具體實施例之用於延長記憶體的生命週期之方法110。如圖所示,此方法增加記憶體的預留空間。請即參見操作112。此外,由於增加該記憶體的預留空間,記憶體的生命週期得以延長,請即參見操作114。
在目前描述的範圍中,記憶體的生命週期可包括記憶體在任何持續時間中呈現任何預期可用性程度。例如,在各種不同具體實施例中,此生命週期可包括(但未限於)預期的生命週期、實際的生命週期、估計的生命週期等。此外,可用性程度是指任何可用性相關參數,例如仍然操作的組件(例如區塊、單元等)的百分比、記憶體或組件的可信度、及/或關於此的任何其他參數。
此外,在目前描述的範圍中,記憶體中的預留空間是指可使用 的任何記憶體空間(例如區塊、單元等)。此外,在各種不同具體實施例中,記憶體可包括(但未限於)機械式儲存裝置(例如磁碟機等)、固態儲存裝置(例如動態隨機存取記憶體(DRAM,“Dynamic Random Access Memory”)、快閃記憶體等)、及/或任何其他儲存裝置。在記憶體包括快閃記憶體的情況中,快閃記憶體可包括(但未限於)單層式晶片(SLC,“Single-Level Cell”)裝置、單層式晶片(MLC,“Multi-Level Cell”)裝置、NOR快閃記憶體、NAND快閃記憶體、MLC NAND快閃記憶體、SLC NAND快閃記憶體等。在一具體實施例中,非揮發性記憶體裝置可包括每單元一單位元NOR快閃記憶體、每單元一多位元NOR快閃記憶體、每單元一單位元NAND快閃記憶體、每單元一多位元NAND快閃記憶體、一相變記憶體、一電阻式記憶體、一碳奈米管記憶體、與一電子遷移記憶體之至少一者。
更多說明資訊現將闡述按使用者期望,關於可以或不能實施先前架構的各種不同選擇性架構與特徵。例如,前面的技術可搭配一方案使用,以保證或延長記憶體的生命週期。應該特別注意,下列資訊闡述只是說明,並非以任何方式加以限制。下列任何特徵可選擇性合併或不排除其他描述的特徵。
第一B圖顯示根據一具體實施例的一具有延長生命週期之記憶體模組150。記憶體模組150還可實施以實現第一A圖的方法110。當然(然而),記憶體模組150可在任何想要的環境中實施。亦應該注意,上述的定義可在目前的描述中應用。
如圖所示,增加了記憶體模組150的許多預留區塊160。增加記憶體模組150的預留區塊160數量的結果,可延長記憶體模組150的生命週期。在一具體實施例中,記憶體的預留區塊160數量可藉由壓縮在記憶體模組150中儲存的資料而增加。此壓縮可包括一無損壓縮(例如Burrows-Wheeler、Lempel-Ziv、LZ77、LZ78等),或在一些具體實 施例中,可包括一有損壓縮(例如有損預測編碼譯碼器、有損轉換編碼譯碼器等)。
在使用壓縮以增加預留區塊160的情況中,該壓縮比可變化。在另一具體實施例中,記憶體的預留區塊160數量可藉由移除在記憶體模組150中儲存的重複資料予以增加。
選擇性地,記憶體的預留區塊160數量還可藉由壓縮在記憶體模組150中儲存的資料及移除在記憶體模組150中儲存的重複資料而增加。在此情況中,移除重複資料之後,再壓縮其餘資料。當然,您可同樣壓縮資料,隨後移除重複資料。
在另一具體實施例中,預留空間可藉由偵測刪除的資料、及增加預留資料和刪除的資料所佔用的空間而增加。刪除的資料還可從一主機或RAID控制器進行溝通,或由一磁碟控制器從包含的資料的磁碟上發現。在另一具體實施例中,壓縮、去除重複及回收刪除檔案的任何組合可用來增加預留空間量。
如一特定範例所示,壓縮及/或去除重複及/或移除刪除的資料可用來允許記憶體模組150中的某些記憶體量成為預留區。在此情況中,儲存的成本可隨著預留空間呈比例減少。例如,資料156可寫至複數個記憶體區塊152中包括的一快閃頁158。
寫入的資料156然後可壓縮,以致於增加許多預留區塊160。在一具體實施例中,延長利用預留區塊160的記憶體生命週期可連同保證記憶體的生命週期予以實施。
選擇性地,記憶體模組150區塊的生命週期還可相等化。例如,預留區塊160可被選擇使得記憶體模組150的區塊生命週期可相等。在此情況中,記憶體模組150中的不同區塊可用來儲存資料,以使記憶體模組150的區塊生命週期能夠相等。
根據描述的不同具體實施例,減少記憶體生命週期的各種不同 操作可為了延長此生命週期而加以控制。在目前描述的範圍中,此操作是指一寫入操作、一抹除操作、一程控操作、及/或能夠減少上述生命週期的任何其他操作。此外,應該注意,雖然目前的具體實施例是從記憶體區塊的觀點描述記憶體的預留空間,但是此具體實施例同樣可在記憶體(例如記憶體單元等)的任何預留空間的觀點出發。
第一C圖顯示根據一具體實施例之用於延遲減少記憶體生命週期的操作之方法100。方法100還可在第一A圖至第一B圖的細節之範圍中實施。當然(然而),方法100可在任何想要的環境中實施。亦應該注意,上述定義可應用在目前描述中。
如圖所示,其識別了有關記憶體的生命週期之至少一態樣。請參見操作102。在目前描述的範圍中,有關在操作102中所識別生命週期之態樣於各種不同具體實施例中,可包括一時段、減少記憶體生命週期的操作率、減少記憶體生命週期的總允許操作數目、生命週期的持續時間等。而且,若有上述總允許操作量與選定或期望的生命週期,在一說明的具體實施例中,可直接計算以每時段的操作數為單位的最大平均操作率。當然,此示例性態樣闡述係絕對只為了說明目的,任何其他生命週期的態樣同樣可加以識別。
為了這個目的,基於該態樣,延遲了減少記憶體的生命週期之至少一操作。請參見操作104。此延遲如此能夠以在操作102中所識別記憶體生命週期態樣的至少部分功能之任何方法加以執行。在目前描述的範圍中,上述操作的延遲包括只延遲部分操作的情況。例如,在操作可包括多個組件的情況中,此延遲可適用於此操作的一或多個(或所有)部分。
在一具體實施例中,可藉由延遲啟始該操作的一命令而延遲操作。例如,回應一寫入或抹除命令的識別,可延遲此指令的執行。當然,在其他具體實施例中,可只延遲操作本身。藉由此設計,延遲減 少記憶體生命週期的一或多個操作造成至少部分降低記憶體生命週期的減少。
其他說明資訊現將闡述按使用者期望,關於可以或不可實施前面架構的各種不同選擇性架構與特徵。例如,延遲可以使用現將闡述多種不同技術、和範例的不同方式加以執行。
第二圖顯示根據另一具體實施例之用於延遲減少記憶體生命週期的操作之技術200。技術200還可在第一A圖至第一C圖細節的範圍中實施。當然(然而),技術200可在任何想要的環境中實施。亦應該注意,上述定義可應用在目前描述中。
如圖所示,技術200係考慮操作202的總數所造成記憶體最小的可用度、以及記憶體的最小期望的生命週期204。從此資料點,可計算達成最小期望的生命週期204的最大平均操作率206。
使用上,許多減少生命週期的操作可隨著時間的進行而受監督。任何時刻,若許多此操作超過最大平均操作率206,以圖式所顯示的方式,任何超出之操作(促成最大平均操作率之超過)可藉由一計算出來數量操作的延遲、一預定時間的操作延遲,或適性地基於減少生命週期操作的先前或預測操作率加以延遲。在一具體實施例中,此預定時間的操作延遲可為造成最大平均操作率206不被超過的的時間。
在各種不同具體實施例中,操作受到延遲(以及延遲本身的長度)的決定可基於多種因素。例如,在一具體實施例中,延遲可基於啟始該操作的應用程式。在此具體實施例中,藉由具有較低優先順序的應用程式所啟始的操作會受到延遲,而藉由具有較高優先順序的應用程式所啟始的操作不必然會受到延遲(當可能時)。
當然,可考慮其他具體實施例,其中延遲是以與應用程式無關的方式運作。例如,不論啟始操作的應用程式,延遲可適用於特定類 型的所有操作(例如,抹除操作等)。仍然地係,伴有一混合方式之具體實施例亦可考慮。
甚至仍然地係,可考慮延遲的操作包括引起不尋常減少生命週期的操作或操作型態的具體實施例。在一具體實施例中,可只延遲這些操作型態。例如,可偵測病毒或粗糙應用程式操作型態,及可只延遲來自這類型態的操作。
第三圖顯示根據仍然另一具體實施例之用於延遲減少記憶體生命週期的操作之以時間為主之技術300。技術300還可實施以實現第一C圖的方法100,及/或進一步在第二圖的技術200之範圍中實施。當然(然而),技術300可在任何想要的環境中實施。再次地,亦應該注意,上述定義可應用在目前描述中。
類似第二圖的技術,技術300係考慮造成記憶體呈現最小可用度之操作302總數、以及記憶體的最小期望的生命週期304。從這些資料點,可計算達成最小期望的生命週期304的最大平均操作率306。使用上,許多減少生命週期操作可隨著時間的進行而受到監督。
任何時刻,若許多此種操作隨著時間進行而超過最大平均操作率306,任何超出之操作不必然會以無條件方式延遲(類似第二圖的技術200)。相反地係,此超出之操作可基於操作啟始的時間間隔而有條件延遲。此時間間隔可例如包括(但未限於)一天的某個時間、一星期的某一日、一年的某一月等。在其他具體實施例中,時間間隔可適當及動態調整至一最佳時段。例如,此適當及動態的調整可基於時間間隔的副區間之減少生命週期操作的頻率的長條圖。
例如,若超出之操作數係認為發生在星期一、星期二、星期三、星期四等(如圖所示),可辨識(例如預期)的是認為在隨後星期五、星期六、和星期日期間發生的操作數將較少。因此,操作可立即執行,而不是無條件延遲此超出之操作數,此是取決於平均操作率 (當以一整週採計)將不超過最大平均操作率306。當然,若此判明不是此情況,部分延遲可能會在隨後一週等的期間發生。雖然前述範例是在一週期間的數日情況下闡述,但是其他更多的「宏觀」具體實施例可考慮,可考慮一整月的數週、一整年的數月的記憶體使用之變動情況。
在仍然其他具體實施例中,有條件延遲的操作可一般化,所以不必然要以間隔為主,但是可基於記憶體的歷史性使用、及/或甚至記憶體的預測使用。在此具體實施例中,為了預測將來使用的目的,任何想要的統計分析可使用歷史性資料執行,以更正確地識別不必然需要去延遲超出之操作的發生之情況。
第四圖顯示根據仍然另一具體實施例之用於延遲減少記憶體生命週期的操作之一以整合為主之技術400。技術400還可實施以實現第一C圖的方法100,及/或進一步在第二圖至第三圖的技術200和300範圍中實施。當然(然而),技術400可在任何想要的環境中實施。再次地,亦應該注意,上述定義可應用在目前描述中。
類似先前的技術,技術400係考慮造成記憶體呈現最小可用性程度之操作402總數、以及記憶體的最小期望的生命週期404。從此資料點,最大平均操作率406可計算以達成最小期望的生命週期404。使用上,許多減少生命週期操作可隨著時間之進行而受到監督。
任何時刻,若隨著時間進行有許多此造成超過最大平均操作率406之操作,任何超出之操作不必然會以一無條件方式予以延遲(類似第二圖的技術200)。相反地,可基於反映記憶體使用的整體功能而有條件地延遲這類過度操作。特別地係,整體減少生命週期操作率、與最大平均操作率406之間的整體差可在現有基礎上計算。為了這個目的,若此整體指示此操作可能超過最大平均操作率406,上述延遲便不必然會發生。
第五圖說明根據另一具體實施例,用以若一需要的生命週期持續時間超過一估計的生命週期持續時間,延遲減少記憶體生命週期的操作之系統500。系統500還可實施以實現第一C圖的方法100及/或進一步選擇性合併第二圖至第四圖4之任一技術。當然(然而),系統500可以任何期望的方式使用。
如圖所示,其提供一儲存系統503,該儲存系統包含複數個儲存裝置530、540。至少一儲存匯流排502係耦合至少一控制器511與至少一電腦501。在各種不同具體實施例中,儲存匯流排502可包括(但未限於)串列高級技術附件(SATA,“Serial Advanced Technology Attachment”)匯流排、串列連接SCSI(SAS,“Serial Attached SCSI”)匯流排、光織通道匯流排、記憶匯流排介面、快閃記憶體匯流排、NAND快閃匯流排、整合驅動電子(IDE,“Integrated Drive Electronics”)匯流排、高級技術附件(ATA,“Advanced Technology Attachment”)匯流排、消費性電子產品(CE,“Consumer Electronics”)匯流排、萬用串列匯流排(USB,“Universal Serial Bus”)匯流排、智慧卡匯流排、多媒體卡(MMC,“Multimedia Card”)匯流排等。因此,控制器511可耦合在一系統(例如,電腦501)與輔助儲存裝置(例如,儲存裝置530、540之至少一者)之間。圖式更包括至少一裝置510,用於延長與儲存裝置530、540有關的記憶體生命週期。
如圖所示,裝置510包括一控制器511,其係分別經由複數個對應匯流排521、522耦合至儲存裝置530、540。控制器511係使用複數個匯流排521、522以控制並與複數個儲存裝置530、540交換資料,以執行經由儲存匯流排502從電腦501接收的命令。儲存裝置530、540之每一者包括用於儲存資料的至少一區塊或模組531、532、533、541、542、543。此外,上述命令的至少一部分是減少生命週期命令,其具有對至少一區塊或模組531、532、533、541、542、543的不利衝擊。 使用上,裝置510是用於延長儲存裝置530、540的生命週期。
控制器511係經由一對應的匯流排512耦合至一生命週期估計器模組514。裝置510更包括一時間模組517,其係經由一匯流排518耦合至生命週期估計器模組514,用以提供目前的時間。使用上,生命週期估計器模組514是用來接收命令,該等命令是從電腦501經由儲存匯流排502而與控制器511進行溝通。此外,生命週期估計器模組514可計算假定經由匯流排512接收的命令執行後一估計的生命週期,。
請即持續參考第五圖,生命週期估計模組514是經由一匯流排515耦合至一節流模組516。生命週期估計模組514係使用匯流排515將一控制器511目前執行的命令之估計生命週期傳遞給節流模組516。在一具體實施例中,目前執行的命令可與生命週期估計器模組514經由匯流排512接收的執行命令相同,並可進一步與控制器511經由儲存匯流排502而從電腦501接收的執行命令相同。
目前時間模組517亦經由匯流排518耦合至節流模組516。因此,來自目前時間模組517的目前時間亦可傳遞至節流模組516。在一具體實施例中,目前時間模組517可如同以固定時間間隔增量的一簡單計數器等加以實施。
節流模組516是經由一匯流排519而與一需要的生命週期模組520進一步耦合、以及經由一匯流排513耦合至控制器511。使用上,需要的生命週期模組520係用於儲存期望的生命週期。藉由此設計,節流模組516可組態成經由匯流排513傳遞資訊至控制器511,以使控制器511延遲目前命令的執行。
在一具體實施例中,裝置510的節流模組516可致使目前命令的執行會受到延遲,直到命令執行的效果為致使估計的生命週期較長或相等於在需要的生命週期模組520中儲存的需要生命週期。在一具體實施例中,若經由匯流排515接收的估計生命週期係短於經由匯流排 519接收的需要之生命週期,節流模組516可只提供一延遲信號至控制器511。
在另一具體實施例中,上述控制器511的功能、生命週期估計器模組514、與節流模組516可適用於在預先定義時間間隔中接收的一群命令。此配置允許系統500可符合需要的生命週期,不會有會另外減少生命週期的不必要節流命令短叢發。藉由選擇時間間隔(例如一天),此技術允許系統500提供減少生命週期命令的較高瞬時效能,因為在一天的某時段(例如,夜間等)期間,可能存在較低之減少生命週期的命令,這是與減少生命週期命令的平均頻率之比較結果。
在一選擇性具體實施例中,同調性可隨著時間予以維護。如一同調性方法的範例所示,若延遲了減少生命週期命令A的執行,則取決於A的資料之所有命令(不論是否會減少生命週期)、或從命令A的執行所造成的值亦將會延遲。
在另一具體實施例中,時間可使用各種不同近似時間值予以取代,例如磁碟啟動的時間。在另一具體實施例中,電腦501、一RAID控制器及/或其他裝置可提供其他資訊以增加時間追蹤的精密度。因此,當一或多個儲存裝置530、540關閉時,時間計數器不會計數,此可能不必然會減少性能。在此情況中,電腦501、軟體、及/或一控制器可提供關於系統500關閉當時的時間資訊,以提供一解決方法。
在另一具體實施例中,系統500可具有一儲存裝置間冗餘能力,用於減少費用及改良性能。在此具體實施例中,基於有關生命週期的任何態樣,資料可在個別儲存裝置530、540之間移動(例如,請參見第一C圖的操作102等)。例如,一情況可包括儲存裝置530之第一者包含有一組相較於儲存裝置540之第二者的資料更常被覆寫的資料。在此情況中,在預定時間量之後、或在垃圾收集期間、或生命結束之等化、或一系統決定之其他事件,此資料可從第一儲存裝置530移至第 二儲存裝置540,且自此以後,第一儲存裝置530或一或多個區塊/模組531、532、533可用來儲存較不常被重複寫入的資料或不再進一步使用。
為了這個目的,儲存裝置剩餘生命週期可適當地分配,避免儲存裝置在與同樣群組的其他儲存裝置過早的時間點上失效。當然,目前技術不僅可應用在不同儲存裝置之中,而且可應用在儲存裝置的一部分。為了這個目的,任何記憶體組件的生命週期能夠以此方法處理。
無論如何,控制器511如此可具有用於減少及/或分配寫入操作的能力。藉由此特徵,可延長適當儲存裝置530、540的生命週期。實現此技術的一示例性方法現將在第六圖的描述中闡述。
第六圖說明根據另一具體實施例之用以若一期望的生命週期持續時間超過一估計的生命週期持續時間,延遲減少記憶體生命週期的操作之方法600。方法600還可使用第五圖的系統500、及/或進一步選擇性合併第一圖至第四圖之任一技術加以實現。當然(然而),方法600能夠以任何期望的方式使用。仍然地係,上述定義可應用在目前描述中。
開始操作601時,方法600會繼續,使一控制器(例如第五圖的控制器511等)等待一電腦(例如電腦501等)將命令602送給至少一儲存裝置(例如儲存裝置530、540等)。一旦控制器接收命令,當控制器決定在步驟602接受的命令是一減少生命週期命令(例如一抹除操作、一寫入操作等)時,該方法會執行決定603。若在決定603判斷目前接收的命令不是減少生命週期的種類,此命令會由步驟607處理。
另一方面,若在決定603中判斷目前接收的命令確實是會減少生命週期,基於在步驟602中接收的指令、一先前的生命週期、與一目前的時間(經由時間模組517等),一生命週期估計器模組(例如,生命 週期估計器模組514等)可計算一估計的生命週期。請參見步驟604。在一具體實施例中,先前的生命週期可代表生命週期估計器模組的先前狀態。在另一具體實施例中,藉由測量至少一儲存裝置的一或多個特性可獲得先前的生命週期。
無論如何,藉由此生命週期估計器模組所估計的生命週期然後提供給一節流模組(例如節流模組516等)。在決定605中,若從生命週期的估計器接收的估計生命週期係短於傳送給該節流模組的需要生命週期,該節流模組可決定是否需要節流。若必須節流,方法600執行步驟606,以延遲(例如節流等)減少生命週期命令。然而,若估計的生命週期不短於需要的生命週期,方法600執行步驟607。
明確地係,在步驟606中,該節流模組可使用控制器節流執行該等減少生命週期命令。在一具體實施例中,此節流可藉由使用控制器延遲此減少生命週期命令的執行加以實施,直到該生命週期估計器估計的生命週期較長或相同於需要的生命週期。
在另一具體實施例中,節流可在預定的時段內決定,並應用在隨後的預定時段中的命令。在此具體實施例中,一限制可用為有多少生命週期可於預定的時間間隔內縮短。在仍然另一具體實施例中,有多少生命週期可在時間間隔內縮短之限制可在一或多個先前時間間隔中決定。在仍然另一具體實施例中,節流可基於分析複數個待執行之操作加以決定,允許非減少生命週期之操作可在減少生命週期之操作、或取決於此減少生命週期之操作的操作之前予以執行。
藉由此設計,一資料儲存系統可提供控制減少生命週期操作,以保證需要的最小生命週期。如此可估計此減少生命週期操作對於最小需要生命週期之衝擊,並可適應性地強迫減少生命週期之操作的頻率。
第七圖顯示根據另一具體實施例之用於精確測定記憶體的生命 週期之圖形使用者介面700。圖形使用者介面700還可在第一圖至第六圖的功能與架構的情況下實施。當然(然而),圖形使用者介面700可使用在任何想要的環境。再次地,亦應該注意,上述定義可應用在目前描述中。
如圖所示,各種不同圖標可顯示以反映與記憶體的生命週期有關的至少一態樣。在一具體實施例,此態樣可為在第一C圖的步驟102中之識別。當然(然而),此生命週期相關態樣可包括至少部分與記憶體的生命週期有關的任何想要態樣。例如,在第五圖的系統500之範圍中,該態樣可由控制器511從任何所示的模組取回,供處理及/或單純地傳遞至電腦501,然後在軟體應用程式(例如外掛程式等)的控制下,顯示相關的圖標。
例如,在一具體實施例中,上述圖標可包括一計量器702,用以指示一或多個記憶體的剩餘生命週期量。在此具體實施例中,計量器702可如同已隨著時間執行的減少生命週期操作數之函數,指示剩餘的總記憶體生命週期量。在仍然另一具體實施例中,上述圖標可包括一估計705,此估計係基於先前使用之推測及假設節流操作之暫停實施以指示生命週期。
在另一具體實施例中,上述圖標可包括一警告704,用於指示一或多個記憶體的最小剩餘生命週期量。可例如基於歷史性記憶體使用資料以估計此生命週期。藉由此設計,可警告使用者記憶體應該在預定時間量內更換等的情況。當然,可考慮其他具體實施例,其中任何想要圖標可用來報告與記憶體的生命週期有關的各種不同資訊。
第八圖顯示根據另一具體實施例之利用差異資訊以減少記憶體寫入操作之方法800。方法800還可以或不連同第一圖至第七圖的功能與架構予以實現。當然(然而),方法800可在任何想要的環境中實現。亦應該注意,上述定義可應用在目前描述中。
如圖所示,針對記憶體中儲存的資料執行寫入操作是可加以識別。請參見步驟802。在目前描述的範圍中,此寫入操作可包括造成記憶體儲存資料修改的任何操作。此外,藉由截取與這類操作(寫入操作本身等)有關的寫入命令,可以任何期望之方法加以識別這類寫入操作。
如步驟804所示,一差異然後可在寫入操作的結果與在記憶體中儲存的資料之間決定。在目前描述的範圍中,上述差異可至少部分反映在記憶體中所儲存資料的第一狀態與從前面寫入操作造成的第二狀態之間的任何差異。
在另一具體實施例中,差異可在記憶體中儲存的任何資料之間決定。例如,一檔案的新修改版本可建立及寫至記憶體中的新位置,以致於可決定來自記憶體不同位置的資料差異。作為一選項,資料的位置還可基於混雜、光暈過濾器等加以識別。為了這個目的,在相同資料的不同實例寫至記憶體不同位置的示例性具體實施例中,決定的差異可包括資料的位置,且不必然是資料本身。
在一具體實施例中,有關差異之差異資訊可儲存在記憶體(例如儲存資料等的相同記憶體)。在另一具體實施例中,以稍後將在不同具體實施例中描述之方法,差異資訊亦可儲存一單獨的緩衝器。應該注意,差異資訊可包括描述的任何資料,至少部分係在步驟804中所決定的差異。從稍後描述具體實施例的討論中將可很快就能看出,在一具體實施例中,可利用指令集儲存差異資訊。如下面的描述,此指令集可在不同具體實施例中調適變更及/或動態擴充。
為了這個目的,利用差異資訊可減少寫入操作。請參見步驟806。藉由此設計,此減少寫入操作可選擇性造成記憶體的生命週期的延長。
更多說明資訊現將闡述按使用者的期望,關於可以或無法實施 先前架構的各種不同選擇性架構及特徵。例如,一示例性系統將闡述基於差異資訊以實施減少寫入操作之一說明方法。應該特別注意,下列資料闡述是說明目的,應不以任何方式構成限制。下列任何特徵可選擇性合併或不排除其他描述的特徵。
第九圖說明根據另一具體實施例之用於減少記憶體中寫入操作之系統900。系統900可實施以實現第八圖的方法800、及/或進一步選擇性合併第一圖至第七圖之任一方法或技術。當然(然而),系統900能夠以任何期望之方法使用。然而,再次地,上述定義可應用在目前描述中。
如圖所示,系統900包括一電腦901,其係以很快將闡述之方式,經由輸入/輸出(I/O,“Input/Output”)匯流排902耦合至一儲存裝置930。I/O匯流排902包括一讀取路徑903與一寫入路徑904。儲存裝置930包括複數個儲存區塊931、932、933。儲存區塊931、932、933是由電腦901寫入及讀取。
針對很快就能看出的理由,儲存區塊931、932、933之每一者的預定部分934可分配以儲存差異資訊,此差異資訊係反映電腦901針對在對應儲存區塊931、932、933的其餘部分935中儲存的資料所做的任何變化。在各種不同具體實施例中,預定部分934之大小可由使用者決定。此外,儲存區塊中儲存的差異資訊可採用任何形式。
第一表說明代表差異資訊之一可能格式(複數個差異資訊可儲存在儲存區塊931、932、933之每一預定部分934)。
在目前具體實施例中,操作碼可代表在對應儲存區塊931、932、933的其餘部分935中儲存的資料上所執行的操作。針對此而論,此操作的範例可包括(但未限於)結束、置換、上移、下移、刪除、插入、及/或任何其他操作。這類操作之每一者還可具有精簡表示的相關碼(例如,置換='001';上移='010'等)。
此外,來源起始位址與大小可指向及指示操作實體的對應儲存區塊931、932、933的其餘部分935中所儲存資料(個別)大小。甚至仍然地係,該操作強制資料的置換/修改的情況中,資料本身可如同差異資訊的組件予以儲存。又另一選擇中,一壓縮演算法還可應用至差異資訊供更有效率儲存。另一選擇中,該操作強制資料移動的情況 中,可指定資料的來源位置,且不必然是資料本身,由於此資料係包含在最初的儲存區塊。
在另一具體實施例中,新的操作可適應性地建立。例如,一第一操作的重複序列可由一新的第二操作所取代。此新的第二操作可選擇性描述一連串的第一操作。如此,新的操作可適應性地建立,以致於系統900可最佳地使調適本身至新的應用。
當然,第一表的資料結構之闡述是只為了說明目的,且不應以任何方法構成限制。例如,差異資訊的實例可只包括所要置換的資料(沒有任何複雜命令等)。
進一步提供係用於減少記憶體中的寫入操作之裝置910。此裝置910包括一合併記憶體920,其包括複數個合併記憶體緩衝器921、922、923。在一具體實施例中,合併記憶體緩衝器921、922、923之每一者的大小可為一預定大小(例如4Kb等),此預定大小是與單一操作中可寫入儲存區塊931、932、933之每一者的最小區塊部分有關聯。此外,在各種不同具體實施例中,合併緩衝器921可包括單晶片儲存裝置、外部記憶體、DRAM、SRAM等。
很快就能看出,合併記憶體緩衝器921、922、923之每一者係保持對應儲存區塊931、932、和933的一差異資訊實例(例如,參見第一表)。換句話說,合併記憶體緩衝器921之第一者係保持儲存區塊931之第一者的差異資訊之實例,合併記憶體緩衝器之第二者係保持儲存區塊932之第二者的差異資訊之實例,合併記憶體緩衝器923之第三者係保持儲存區塊933之第三者的差異資訊之實例,以此類推。
裝置910更包括一更新模組912,其係經由一匯流排914耦合至合併記憶體920,用以將在合併記憶體緩衝器921、922、923中儲存的差異資訊寫至對應的儲存區塊931、932、和933。在一具體實施例中,在使用差異資訊之至少一實例填入合併記憶體緩衝器921、922、923 之一者(且如此構成最小寫入至儲存區塊931、932、和933的適當之一者之大小),可啟始此寫入動作。為了達成此寫入,更新模組912可經由一匯流排915耦合至儲存裝置930。如圖式的進一步顯示,更新模組912的輸出係經由讀取路徑903耦合至I/O匯流排902。
甚至仍然地係,一差異計算模組911係經由讀取路徑匯流排903以耦合至更新模組912、經由寫入路徑匯流排904耦合至輸入/輸出匯流排902、及進一步經由一匯流排913耦合至合併記憶體920。使用上,差異計算模組911是從儲存裝置930讀取資料,並可使用來自相關儲存區塊931、932、和933;及/或合併記憶緩衝921、922、923的差異資訊,以進一步重新建構此資料的目前狀態。
差異計算模組911可在適當時,藉由先重新建構此資料的目前狀態(類似上面的讀取操作)、識別此目前狀態與一寫入操作(由電腦901啟始)之後所產生的狀態之間的差異、及使用要用來更新相關儲存區塊931、932、和933的一或多個實例以填入合併記憶體緩衝器921、922、923,以進一步將資料寫至儲存裝置930。關於此讀取及寫入操作的更多資訊現將在第十圖與第十一圖的描述中闡述。
在各種不同具體實施例中,差異計算模組911可使用供識別上述差異之任何期望技術。例如,可利用各種不同字串匹配演算法、資料動作估計技術等。在仍然其他具體實施例中,此差異可基於逐位元組加以決定。
此外,差異之計算可包括下列一或多個:尋找要插入的位元組串、尋找要刪除的位元組串、尋找要置換的位元組串、尋找要複製位元組串、決定位元組串是否要藉由加入值而予以更新、尋找儲存區塊的副本及建立這些副本之參考、尋找區塊分割、尋找區塊合併等。
第十圖說明根據一具體實施例之使用差異資訊以讀取記憶體之方法1000。方法1000依需要還可使用第九圖的系統900、及/或進一步 選擇性合併第一圖至第八圖之任一技術予以實現。當然(然而),方法1000能夠以任何期望的方法加以使用。仍然地係,上述定義可應用在目前描述中。
如圖所示,方法1000可從一電腦請求(例如電腦901等)時,從儲存裝置(例如儲存裝置930等)讀取區塊(例如第九圖的區塊931、932、933等)的步驟1001開始。讀取的儲存區塊資料然後傳送至一更新模組(例如更新模組912等)。其次,回應讀取操作,以從對應至儲存區塊(與此電腦要求相關)的合併緩衝器(例如合併緩衝器921、922、923等)、及/或從儲存區塊本身讀取差異資訊。請參見步驟1002。差異資訊的適當來源可取決於需要的資訊是否在讀取請求時,已從合併緩衝器寫至對應的儲存區塊。差異資訊可散佈在快閃記憶體的資料之間。此外,有關特殊資料的差異可分組成一或多個群組。
其次,在步驟1003中,更新模組應用來自步驟1002的差異資訊所反映之差異,此差異資訊係對應至在步驟1001中讀取的區塊。為了這個目的,在步驟1003中重新建構的資料可經由一讀取路徑(例如讀取路徑903等)傳送至電腦。請參見步驟1004。
在各種不同具體實施例中,前面的資料讀取操作可包括從一邏輯儲存區塊編號映射至一實體儲存區塊編號。仍然地係,方法1000可進一步提供與讀取有關的錯誤偵測與錯誤修正。此錯誤偵測與讀取資料修正可更包括一重新讀取操作以嘗試復原資料,並將此復原資料重新配置到另一儲存位置。例如,此復原資料的重新配置可包括邏輯儲存區塊轉換及/或可基於候選儲存區塊的錯誤率資訊。
第十一圖說明根據一具體實施例之使用差異資訊以寫入記憶體之方法1100。該方法1100依需要還可使用第九圖的系統900、及/或進一步選擇性合併第一圖至第八圖、第十圖之任一技術予以實現。當然(然而),方法1100可以任何期望的方法使用。仍然地係,上述定義可 應用在目前描述中。
類似第十圖的讀取方法1000,方法1100是從儲存裝置(例如儲存裝置930等)讀取區塊(例如第九圖的區塊931、932、933等)的步驟1101開始,該方法是受制於電腦(例如電腦901等)的一寫入要求。讀取儲存區塊資料然後傳送至一更新模組(例如更新模組912等)。其次,在步驟1102中,差異資訊是從對應至儲存區塊(與電腦要求關)的合併緩衝器(例如合併緩衝器921、922、923等)、及/或從儲存區塊本身讀取。然後,在步驟1103中,更新模組係應用來自步驟1102的差異資訊所反映之差異,而此差異資訊係對應至步驟1101中所讀取的區塊,以重建可讀取或寫入的資料。
為了這個目的,在步驟1103中重新建構的資料可傳送至一差異計算模組(例如差異計算模組911等),並與電腦所要求之寫入操作的執行所造成資料的狀態相較。請參見步驟1104。為了這個目的,重新建構的資料與從寫入操作執行所造成資料的狀態之間的差異可加以識別。在一具體實施例中,此差異是由用於更新資料的應用程式(在電腦上執行)所引起。此更新可包括(但未限於)置換一串位元組、插入一串位元組、刪除一串位元組、複製一串位元組等。
在步驟1105中,有關步驟1104所計算出差異之差異資訊可附加至適當的合併緩衝器,該等合併緩衝器係對應至步驟1104中所計算至少一差異的區塊。此附加動作可藉由寫至合併記憶體中的合併緩衝器之末端予以達成。在一具體實施例中,此附加動作可更包括解壓縮一合併緩衝器、附加資料、及重新壓縮適當的合併緩衝器。合併緩衝器記憶體還可依需要重新分配至合併緩衝器。
在一選擇性具體實施例中,差異資訊可如同描述在資料上所執行功能的操作(例如寫入等)予以儲存。例如,差異資訊可反映從B-Tree執行操作所造成的變化,且如此可代表與此操作有關的差異。資 料庫、郵件伺服器、檔案系統等可選擇性利用此B-Tree。
其次,在決定步驟1106中,測試合併緩衝器以決定其是否填滿。若合併緩衝器未填滿,方法1100會進行步驟1110。另一方面,若至少一合併緩衝器是填滿,方法1100會進行步驟1107。在步驟1107,任何填滿合併緩衝器會附加至差異資訊。此外,此填滿合併緩衝器會被清空的(供重複使用等),如步驟1112所示。
進一步決定差異資訊是否填滿(步驟1114)。當差異資訊未填滿時,方法1100會進行步驟1110。然而,回應差異資訊的填滿,來自差異資訊的變更可應用在資料上。如步驟1116。而且,應用變更的資料區塊會寫入,且舊資料會丟棄,如步驟1118所示。仍然地係,如步驟1120所示,差異資訊被清空。為了這個目的,提供一資料儲存系統,此資料儲存系統使用在寫入資料與現有資料之間的差異,以在記憶體區塊上減少寫入及分配寫入,改善以區塊為主之儲存裝置的可信度。
在各種不同具體實施例中,在前面具體實施例中提到的記憶體可包括一機械式儲存裝置(例如一磁碟機,包括一SATA磁碟機、一SAS磁碟機、一光纖通道磁碟機、IDE磁碟機、ATA磁碟機、CE磁碟機、USB磁碟機、智慧卡磁碟機、MMC磁碟機等)、及/或一非機械式儲存裝置(例如以半導體為主等)。此非機械式記憶體可例如包括揮發性或非揮發性記憶體。在各種不同具體實施例中,非揮發性記憶體裝置可包括快閃記憶體(例如每單元單位元NOR快閃記憶體、每單元多位元NOR快閃記憶體、每單元單位元NAND快閃記憶體、每單元多位元NAND快閃記憶體、大區塊快閃記憶體等)。雖然在此闡述了各種不同記憶體的範例,但是應該注意,各種不同原則可適用於在此執行的各種不同操作所導致減少生命週期之任何類型記憶體。
第十二圖說明可實施各種不同先前具體實施例的各種不同架構及/或功能性之示例性系統1200。例如,示例性系統1200可代表在一 些先前具體實施例中闡述的電腦。仍然地係,上面闡述的各種不同裝置可甚至為系統1200的一組件。
如圖所示,一系統1200之提供包括至少一主機處理器1201,該主機處理器連接至一通信匯流排1202。系統1200亦包括主記憶體1204。控制邏輯(軟體)與資料是儲存在可採用隨機存取記憶體(RAM,“Random Access Memory”)形式之主記憶體1204。
系統1200亦包括一圖形處理器1206與一顯示器1208,即是一電腦監視器。系統1200亦可包括一輔助儲存裝置1210。輔助儲存裝置1210包括例如一硬碟機及/或一可移除儲存磁碟機,代表一軟碟機、一磁帶機、一雷射唱盤機等。可移除儲存磁碟機能夠以熟知的方式從可移除儲存模組讀取、及/或寫入該可移除儲存模組。
電腦程式、或電腦控制邏輯演算法可儲存在主記憶體1204及/或輔助儲存裝置1210。當電腦程式執行時,此電腦程式可使系統1200執行各種不同功能。記憶體1204、儲存裝置1210及/或任何其他儲存裝置是電腦可讀媒體之可能範例。
在一具體實施例中,各種不同先前圖式的架構及/或功能性可在主機處理器1201、圖形處理器1206、輔助儲存裝置1210、一可為主機處理器1201和圖形處理器1206二者能力之至少一部分積體電路(未在圖顯示)、一晶片組(即是一組積體電路,其設計上能夠以執行相關功能等的模組)、及/或用於此目的之任何其他積體電路的情況下實施。
仍然地係,各種不同先前圖式的架構及/或功能性可在一般電腦系統、一電路板系統、一專屬於娛樂目的之遊戲機控制系統、一應用特殊系統、及/或任何其他期望系統的情況下實施。例如,系統1200可採用一桌上型電腦、膝上型電腦、及/或任何其他類型邏輯的形式。仍然地係,系統1200可採用各種不同其他裝置的形式,包括(但未限於)一個人數位助理(PDA,“Personal Digital Assistant”)裝置、一 行動電話裝置、一電視機等。
此外,雖然未在圖式中顯示,但是系統1200可耦合至一網路(例如一電信網路、區域網路(LAN,“Local Area Network”)、無線網路、廣域網路(WAN,“Wide Area Network”),例如網際網路、對等網路、電纜網路等),供通信目的使用。
雖然上面已描述各種不同具體實施例,但是應該瞭解,這些不同具體實施例只經由範例描述,而不是限制。因此,一較佳具體實施例的廣度及範疇應不受到上述任一示例性具體實施例的限制,而是只根據下列申請專利範圍及其同等物的定義。

Claims (18)

  1. 一種方法,其包含:增加一快閃記憶體之可使用之一預留空間(spare space);使該預留空間包含增加數量之該快閃記憶體;及由增加該預留空間以延長包含該快閃記憶體之一儲存子系統的一生命週期,來達成一已儲存之選擇的最小生命週期;其中增加該預留空間之步驟包含藉由該儲存子系統壓縮儲存在該快閃記憶體中的資料。
  2. 如申請專利範圍第1項之方法,其中增加該預留空間之步驟進一步包含偵測已刪除的資料並增加具有被該刪除資料佔據的空間之預留資料。
  3. 如申請專利範圍第1項之方法,其中增加該預留空間之步驟進一步包含移除該快閃記憶體中儲存的重複資料。
  4. 如申請專利範圍第1項之方法,其中該壓縮是無損壓縮。
  5. 如申請專利範圍第1項之方法,其中該快閃記憶體包含複數個區塊,且增加該預留空間之步驟進一步包括增加該複數個區塊之預留區塊之數目。
  6. 如申請專利範圍第5項之方法,其進一步包含均等化該複數個區塊之一生命終止(EOL)。
  7. 一種在一電腦可讀媒體上實施的電腦程式產品,其包含:用於增加一快閃記憶體之可使用之一預留空間並使該預留空間包含增加數量之該快閃記憶體之電腦程式碼;及用於藉由增加該預留空間以延長包含該快閃記憶體之一儲存子系統的一生命週期,來達成一已儲存之選擇的最小生命週期 之電腦程式碼;其中藉由該儲存子系統壓縮儲存在該快閃記憶體中的資料以增加該預留空間。
  8. 如申請專利範圍第7項之電腦程式產品,其中增加該預留空間之步驟進一步包含偵測已刪除的資料並增加具有被該刪除資料佔據的空間之預留資料。
  9. 如申請專利範圍第7項之電腦程式產品,其中增加該預留空間之步驟進一步包含移除該快閃記憶體中儲存的重複資料。
  10. 如申請專利範圍第7項之電腦程式產品,其中該壓縮是無損壓縮。
  11. 如申請專利範圍第7項之電腦程式產品,其中該快閃記憶體包含複數個區塊,且增加該預留空間之步驟進一步包括增加該複數個區塊之預留區塊之數目。
  12. 如申請專利範圍第11項之電腦程式產品,其進一步包含均等化該複數個區塊之一生命終止。
  13. 一種儲存子系統,其包含:一快閃記憶體;及用於增加該快閃記憶體之可使用之一預留空間並使該預留空間包含增加數量之該快閃記憶體之邏輯;其中藉由增加該預留空間以延長該儲存子系統的一生命週期,來達成一已儲存之選擇的最小生命週期,且其中該預留空間係藉由該儲存子系統壓縮儲存在該快閃記憶體中的資料而增加。
  14. 如申請專利範圍第13項之儲存子系統,其中增加該預留空間之 步驟進一步包含偵測已刪除的資料並增加具有被該刪除資料佔據的空間之預留資料。
  15. 如申請專利範圍第13項之儲存子系統,其中增加該預留空間之步驟進一步包含移除該快閃記憶體中儲存的重複資料。
  16. 如申請專利範圍第13項之儲存子系統,其中該壓縮是無損壓縮。
  17. 如申請專利範圍第13項之儲存子系統,其中該快閃記憶體包含複數個區塊,且增加該預留空間之步驟進一步包括增加該複數個區塊之預留區塊之數目。
  18. 如申請專利範圍第17項之儲存子系統,其進一步包含均等化該複數個區塊之一生命終止。
TW103120106A 2007-11-28 2008-11-24 增加記憶體中之備用空間以延長記憶體之生命週期之系統、方法及電腦程式產品 TWI539277B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/946,753 US9183133B2 (en) 2007-11-28 2007-11-28 System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory

Publications (2)

Publication Number Publication Date
TW201437806A true TW201437806A (zh) 2014-10-01
TWI539277B TWI539277B (zh) 2016-06-21

Family

ID=40670741

Family Applications (2)

Application Number Title Priority Date Filing Date
TW097145339A TWI506421B (zh) 2007-11-28 2008-11-24 增加記憶體中之備用空間以延長記憶體之生命週期之系統、方法及電腦程式產品
TW103120106A TWI539277B (zh) 2007-11-28 2008-11-24 增加記憶體中之備用空間以延長記憶體之生命週期之系統、方法及電腦程式產品

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW097145339A TWI506421B (zh) 2007-11-28 2008-11-24 增加記憶體中之備用空間以延長記憶體之生命週期之系統、方法及電腦程式產品

Country Status (5)

Country Link
US (3) US9183133B2 (zh)
JP (1) JP5970645B2 (zh)
CN (1) CN101925884A (zh)
TW (2) TWI506421B (zh)
WO (1) WO2009070196A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI610219B (zh) * 2016-08-09 2018-01-01 捷鼎國際股份有限公司 資料儲存系統
TWI665550B (zh) * 2018-04-27 2019-07-11 威聯通科技股份有限公司 磁碟陣列的資料分佈方法及其資料儲存系統與記錄媒體
US11237908B2 (en) 2017-03-29 2022-02-01 SK Hynix Inc. Memory system and operating method thereof
TWI756297B (zh) * 2017-03-29 2022-03-01 南韓商愛思開海力士有限公司 記憶體系統及其操作方法

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809900B2 (en) 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
US7747813B2 (en) 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US7849275B2 (en) 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
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
TWI369688B (en) * 2008-05-21 2012-08-01 Ite Tech Inc Integrated storage device and controlling method thereof
US8554983B2 (en) 2008-05-27 2013-10-08 Micron Technology, Inc. Devices and methods for operating a solid state drive
JP4461187B1 (ja) * 2008-12-24 2010-05-12 株式会社東芝 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法
US20100281207A1 (en) * 2009-04-30 2010-11-04 Miller Steven C Flash-based data archive storage system
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US8516166B2 (en) 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
KR101702392B1 (ko) 2010-08-20 2017-02-06 삼성전자주식회사 반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법
US8862807B2 (en) 2010-08-20 2014-10-14 Samsung Electronics Co., Ltd. Semiconductor storage device and method of throttling performance of the same
US9037778B2 (en) * 2010-08-20 2015-05-19 Samsung Electronics Co., Ltd. Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device
KR101467941B1 (ko) * 2011-04-26 2014-12-02 엘에스아이 코포레이션 비휘발성 저장부에 대한 가변 오버­프로비저닝
US10803970B2 (en) * 2011-11-14 2020-10-13 Seagate Technology Llc Solid-state disk manufacturing self test
JP2014052899A (ja) 2012-09-07 2014-03-20 Toshiba Corp メモリシステムとその制御方法
WO2014051603A1 (en) * 2012-09-28 2014-04-03 Longsand Limited Predicting failure of a storage device
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
CN104462112A (zh) * 2013-09-17 2015-03-25 上海华虹集成电路有限责任公司 文件系统存储模块
WO2015128955A1 (ja) * 2014-02-26 2015-09-03 株式会社日立製作所 記憶デバイス、記憶デバイスを有する装置、及び記憶制御方法
US9348520B2 (en) 2014-03-24 2016-05-24 Western Digital Technologies, Inc. Lifetime extension of non-volatile semiconductor memory for data storage device
US9690696B1 (en) 2014-05-14 2017-06-27 Western Digital Technologies, Inc. Lifetime extension of memory for data storage system
JP6331773B2 (ja) * 2014-06-30 2018-05-30 富士通株式会社 ストレージ制御装置、およびストレージ制御プログラム
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US9678677B2 (en) 2014-12-09 2017-06-13 Intel Corporation Determining adjustments to the spare space in a storage device unavailable to a user based on a current consumption profile of a storage device
JP6541369B2 (ja) * 2015-02-24 2019-07-10 キヤノン株式会社 メモリのデータ処理を行なうデータ処理装置、データ処理方法、及びプログラム
CN106484331B (zh) 2015-09-29 2019-04-12 华为技术有限公司 一种数据处理方法、装置及闪存设备
CN105551522A (zh) * 2016-01-14 2016-05-04 深圳市硅格半导体股份有限公司 闪存存储设备的管理方法及装置
JP6320439B2 (ja) * 2016-03-10 2018-05-09 株式会社東芝 メモリ制御装置、ストレージ装置、ストレージ装置の制御プログラム、及び、ストレージ装置の制御方法
KR20180093153A (ko) * 2017-02-09 2018-08-21 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
CN109964210B (zh) * 2017-02-20 2023-05-30 株式会社日立制作所 存储系统和存储控制方法
CN109725841B (zh) * 2017-10-30 2021-01-12 华为技术有限公司 数据写入方法、装置、存储系统、存储介质与控制器
CN115061624A (zh) * 2018-01-18 2022-09-16 伊姆西Ip控股有限责任公司 分配存储的方法、电子设备、存储系统和计算机程序产品
CN111104047B (zh) * 2018-10-25 2023-08-25 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03250499A (ja) 1990-02-27 1991-11-08 Nec Corp データ記憶回路
GB2251324B (en) 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5768182A (en) * 1991-05-21 1998-06-16 The Regents Of The University Of California Ferroelectric nonvolatile dynamic random access memory device
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5337275A (en) * 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
JP3641280B2 (ja) * 1992-10-30 2005-04-20 インテル・コーポレーション フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
JPH08124393A (ja) 1994-10-20 1996-05-17 Fujitsu Ltd データ消去回数に制限のあるメモリの制御方法及びこの方法を用いた装置
US5568423A (en) 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
US5805809A (en) 1995-04-26 1998-09-08 Shiva Corporation Installable performance accelerator for maintaining a local cache storing data residing on a server computer
US5621687A (en) 1995-05-31 1997-04-15 Intel Corporation Programmable erasure and programming time for a flash memory
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
US5956473A (en) 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US5963970A (en) 1996-12-20 1999-10-05 Intel Corporation Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JPH1185571A (ja) * 1997-09-03 1999-03-30 Nec Corp フラッシュメモリへのログ格納方式
JP3898305B2 (ja) 1997-10-31 2007-03-28 富士通株式会社 半導体記憶装置、半導体記憶装置の制御装置及び制御方法
EP1027653B1 (de) 1998-09-04 2004-09-15 Hyperstone AG Zugriffssteuerung eines speichers beschränkter löschhäufigkeit
FR2787601A1 (fr) 1998-12-22 2000-06-23 Gemplus Card Int Systeme de memorisation comprenant des moyens de gestion d'une memoire avec anti-usure et procede de gestion anti-usure d'une memoire
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
US6405295B1 (en) 1999-09-07 2002-06-11 Oki Electric Industry, Co., Ltd. Data storage apparatus for efficient utilization of limited cycle memory material
US6484228B2 (en) * 2000-04-19 2002-11-19 Motorola, Inc. Method and apparatus for data compression and decompression for a data processor system
EP1182589A3 (en) * 2000-08-17 2002-07-24 International Business Machines Corporation Provision of electronic documents from cached portions
US6522105B2 (en) * 2000-10-23 2003-02-18 Shindengen Electric Manufacturing Co., Ltd. Battery charging apparatus
US6732221B2 (en) 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
US6948026B2 (en) 2001-08-24 2005-09-20 Micron Technology, Inc. Erase block management
JP2003075137A (ja) * 2001-09-04 2003-03-12 Minolta Co Ltd 撮影システム並びにそれに用いられる撮像装置および3次元計測用補助ユニット
US20030058681A1 (en) 2001-09-27 2003-03-27 Intel Corporation Mechanism for efficient wearout counters in destructive readout memory
US7000063B2 (en) 2001-10-05 2006-02-14 Matrix Semiconductor, Inc. Write-many memory device and method for limiting a number of writes to the write-many memory device
US6735673B2 (en) * 2002-01-10 2004-05-11 Hewlett-Packard Development Company, L.P. Apparatus and methods for cache line compression
US6640283B2 (en) * 2002-01-16 2003-10-28 Hewlett-Packard Development Company, L.P. Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size
US6775751B2 (en) * 2002-08-06 2004-08-10 International Business Machines Corporation System and method for using a compressed main memory based on degree of compressibility
US20040135903A1 (en) * 2002-10-11 2004-07-15 Brooks Lane C. In-stream lossless compression of digital image sensor data
US6831865B2 (en) 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US6973531B1 (en) 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US7103732B1 (en) 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US7035967B2 (en) 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
ATE372578T1 (de) 2002-10-28 2007-09-15 Sandisk Corp Automatischer abnutzungsausgleich in einem nicht- flüchtigen speichersystem
US6925523B2 (en) 2003-03-03 2005-08-02 Agilent Technologies, Inc. Managing monotonically increasing counter values to minimize impact on non-volatile storage
JP2005039579A (ja) * 2003-07-16 2005-02-10 Fuji Photo Film Co Ltd 画像管理装置及びデジタルカメラ
US7143238B2 (en) * 2003-09-30 2006-11-28 Intel Corporation Mechanism to compress data in a cache
US7032087B1 (en) 2003-10-28 2006-04-18 Sandisk Corporation Erase count differential table within a non-volatile memory system
US7395384B2 (en) * 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
US7433994B2 (en) * 2004-12-07 2008-10-07 Ocz Technology Group, Inc. On-device data compression to increase speed and capacity of flash memory-based mass storage devices
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US7224604B2 (en) 2005-03-14 2007-05-29 Sandisk Il Ltd. Method of achieving wear leveling in flash memory using relative grades
US7752382B2 (en) * 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US8151094B2 (en) * 2005-12-30 2012-04-03 Intel Corporation Dynamically estimating lifetime of a semiconductor device
US20070180186A1 (en) * 2006-01-27 2007-08-02 Cornwell Michael J Non-volatile memory management
KR20070089460A (ko) * 2006-02-28 2007-08-31 삼성전자주식회사 우선 순위에 따른 비휘발성 메모리의 연산 처리 장치 및방법
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
EP2024839B1 (en) * 2006-05-15 2014-07-02 SanDisk Technologies Inc. Non-volatile memory system with end of life calculation
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US7596656B2 (en) * 2006-09-28 2009-09-29 Sandisk Corporation Memory cards with end of life recovery and resizing
CN101578587B (zh) * 2006-11-24 2015-02-25 Lsi公司 延迟缩减存储器寿命的操作
US8560760B2 (en) * 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US7870105B2 (en) * 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI610219B (zh) * 2016-08-09 2018-01-01 捷鼎國際股份有限公司 資料儲存系統
US11237908B2 (en) 2017-03-29 2022-02-01 SK Hynix Inc. Memory system and operating method thereof
TWI756297B (zh) * 2017-03-29 2022-03-01 南韓商愛思開海力士有限公司 記憶體系統及其操作方法
TWI665550B (zh) * 2018-04-27 2019-07-11 威聯通科技股份有限公司 磁碟陣列的資料分佈方法及其資料儲存系統與記錄媒體

Also Published As

Publication number Publication date
WO2009070196A1 (en) 2009-06-04
US20090138671A1 (en) 2009-05-28
US10318181B2 (en) 2019-06-11
JP2011505046A (ja) 2011-02-17
US9183133B2 (en) 2015-11-10
TWI506421B (zh) 2015-11-01
CN101925884A (zh) 2010-12-22
JP5970645B2 (ja) 2016-08-17
TWI539277B (zh) 2016-06-21
TW200928735A (en) 2009-07-01
US20160062684A1 (en) 2016-03-03
US20170199682A1 (en) 2017-07-13
US9645750B2 (en) 2017-05-09

Similar Documents

Publication Publication Date Title
TWI539277B (zh) 增加記憶體中之備用空間以延長記憶體之生命週期之系統、方法及電腦程式產品
US10732857B2 (en) Techniques for reducing memory write operations using coalescing memory buffers and difference information
US8230164B2 (en) Techniques for multi-memory device lifetime management
US7904764B2 (en) Memory lifetime gauging system, method and computer program product
US8230183B2 (en) Techniques for prolonging a lifetime of memory by controlling operations that affect the lifetime of the memory
JP5171840B2 (ja) メモリの寿命を縮める動作を遅延させる方法及びストレージシステム
US20080126685A1 (en) System, method, and computer program product for reducing memory write operations using an instruction set
KR20210006102A (ko) 데이터 입출력 속도에 따라 버퍼의 사용을 결정할 수 있는 메모리 시스템 및 그의 동작 방법
Zuolo et al. Memory driven design methodologies for optimal SSD performance
Chen et al. Combining Cache and Refresh to Optimize SSD Read Performance Scheme

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees