TWI474335B - 增加記憶體的複數區塊的生命週期的系統、方法及電腦程式產品 - Google Patents
增加記憶體的複數區塊的生命週期的系統、方法及電腦程式產品 Download PDFInfo
- Publication number
- TWI474335B TWI474335B TW97144480A TW97144480A TWI474335B TW I474335 B TWI474335 B TW I474335B TW 97144480 A TW97144480 A TW 97144480A TW 97144480 A TW97144480 A TW 97144480A TW I474335 B TWI474335 B TW I474335B
- Authority
- TW
- Taiwan
- Prior art keywords
- blocks
- memory
- life cycle
- block
- calculating
- Prior art date
Links
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- 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
-
- 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
- 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/0608—Saving storage space on storage systems
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0653—Monitoring storage devices or systems
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- 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/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0054—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell
- G11C14/009—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
Description
本發明係關於一種記憶體,更特別地係,關於具有一有限生命週期的記憶體。
記憶體是現代企業計算系統性能的最受限制的態樣之一。記憶體的一受限制態樣為許多類型的記憶體呈現有限制的生命週期。例如,每次抹除及重新寫入時,非揮發性記憶體(例如快閃記憶體)的生命週期會減少。隨著時間及數千個抹除及重新寫入,此快閃記憶體會變成越來越不可靠。
用於減少記憶體生命週期的一普通先前技術是耗損調平(Wear Leveling)。耗損調平允許以概略相等的次數將一儲存裝置中的區塊予以抹除及寫入。此可避免一區塊較常使用、到達生命結束、及必須停止使用的情況。此減少整個裝置的儲存能力。雖然該等儲存裝置可具有預留區塊,但是該等預留區塊會用盡,且裝置的記憶體容量會下降,以致於無法使用此儲存裝置。
記憶體代理商時常保證特定百分比的記憶體有某預期壽命。例如,一快閃記憶體代理商可保證在100,000程控與抹除週期(即是持久性)之後,基於過度的錯誤修正需求,小於1%的區塊將無法使用。在此情況中,該等錯誤修正需求可針對該快閃裝置加以設定成每512個位元組有一單一位元錯誤。一些最近發展的裝置具有非常低的持久性。這些裝置需要非常大的錯誤修正需求。
此外,記憶體區塊的生命週期彼此有差異。結果,使用程控抹除週期均衡之耗損調平,當只有一指定的百分比區塊是不良(例如,1%)時,一儲存裝置可到達生命的結束。然而,多數在儲存裝置中包括的區塊可仍然發揮功能。
如此,需要用於處理有關先前技術的這些及/或其他議題。
本發明提供一種用於增加複數個記憶體區塊的生命週期之系統、方法及電腦程式產品。操作上,影響該複數個記憶體區塊的生命週期之至少一因素可加以識別。此外,基於該至少一因素,可選擇要寫入的複數個區塊。
第一圖顯示根據一具體實施例之用於增加複數個記憶體區塊的生命週期之方法100。影響複數個記憶體區塊的生命週期之至少一因素可加以識別。請參見步驟102。此外,基於該至少一因素,可選擇要寫入的複數個區塊。請參見步驟104。
在目前描述的範圍中,記憶體的生命週期可包括記憶體在任何持續時間內呈現任何想要可用性程度。例如,在各種不同具體實施例中,此生命週期可包括(但必定不限於)一想要的生命週期、一實際的生命週期、一估計的生命週期等。此外,可用性的程度是指任何可用性相關的參數,例如仍可操作的組件(例如區塊、單元等)之百分比、記憶體或組件之可信度、及/或有關此的任何其他參數。
此外,在各種不同具體實施例中,記憶體可包括(但未限於)機械式儲存裝置(例如,磁碟機等)、固態儲存裝置(例如動態隨機存取記憶體(DRAM,“Dynamic Random Access Memory”)、快閃記憶體等)、及/或任何其他儲存裝置。在記憶體包括快閃記憶體的情況中,快閃記憶體可包括(但未限於)單層式儲存(SLC,“Single-Level Cell”)裝置、多層式儲存(MLC,“Multi-Level Cell”)裝置、NOR快閃記憶體、NAND快閃記憶體、MLC NAND快閃記憶體、SLC NAND快閃記憶體等。在一具體實施例中,非揮發性記憶體裝置可包括每單元單位元NOR快閃記憶體、每單元多位元NOR快閃記憶體、每單元單位元NAND快閃記憶體、及每單元多位元NAND快閃記憶體之至少一者。
此外,在目前描述的範圍中,該因素可包括可直接或間接影響記憶體區塊的生命週期之任何因素。例如,在各種不同具體實施例中,該等因素可包括(但未限於)涉及記憶體區塊之至少一者的讀取操作期間之錯誤數(例如偵測、修正等)、一程控操作與涉及記憶體區塊之至少一者的讀取操作之間的持續時間;抹除記憶體區塊之至少一者的次數;抹除記憶體區塊之至少一者所需的持續時間、程控操作記憶體區塊之至少一者所需的持續時間、程控操作記憶體區塊至少之一者的重新嘗試數、記憶體區塊之至少一者的一頁之介入讀取數、記憶體的相鄰頁、結構與組織之介入讀取數、及/或符合上述定義之任何其他因素。記憶體區塊使用的歷史還可儲存。在此情況中,使用的歷史可用來決定因素。
更多說明資訊現將按使用者的期望,描述關於可以或無法實施參考先前架構的各種不同選擇性架構及特徵。應該特別注意,下列資訊之闡述只是說明,且不應以任何方式構成限制。下列任一特徵可選擇性合併或不排除其他描述之特徵。
第二圖顯示根據另一具體實施例之用於增加複數個記憶體區塊的生命週期之技術200。技術200還可在第一圖的細節之範圍中實施。當然(然而),技術200可在任何想要的環境中實施。亦應該注意,上述定義可在目前的描述中應用。
如圖所示,複數個記憶區塊204的持久性202係可被監督。在此情況中,第二圖的長條係代表一特別區塊204的寫入次數。在目前描述的範圍中,持久性202是指每一記憶體區塊204的寫入與抹除週期數。因此,持久性202係對應至記憶體區塊204的使用程度。在一具體實施例中,寫入及/或抹除的次數可受監督及記錄。
藉由監督區塊204寫入次數,可決定哪些區塊為較常使用。在一具體實施例中,此監督可用來決定區塊204之任一者的寫入次數是否超過一臨限206。此外,此監督允許使用上的均等化,以致於當特定區塊的寫入次數到達臨限206時,其他低於臨限206的區塊可用於寫入。例如,區塊寫入及回收的順序可改變,以將區塊之間的持久性值的任何差異減至最少。
操作上,影響複數個記憶體204區塊生命週期的至少一因素可加以識別及/或監督。要寫入的複數個區塊然後可基於該至少一因素加以選取。在各種不同具體實施例中,可能有多個因素指出區塊204的生命週期狀態。在一具體實施例中,因素可包括與該等區塊204之每一者有關的修正錯誤數。例如,此修正的錯誤可對應至資料的讀取。
在各種不同情況,因素可能受到複數個其他因素的影響。例如,修正的錯誤數可能受到從程控操作至讀取使用多少時間、及執行多少個讀取的影響。此外,一區塊抹除及程控的次數亦可能影響修正的錯誤數。
當然,許多其他因素亦可能影響修正錯誤量。在各種不同具體實施例中,這些因素可對應至區塊204的使用時間、寫入的頻率、操作率、允許的操作總數、與生命週期的持續時間等。當然,此示例性態樣之闡述只為了說明之目的,而可能影響記憶體區塊預期壽命的因素可對應至任何態樣。
在一具體實施例中,一分數可用來決定是否改變要寫入及回收的區塊204之順序。例如,每一區塊204可具有一對應的分數功能而該分數功能係基於至少一因素。該分數功能可用來決定區塊204之每一者的分數。
此分數可用來減少在區塊204的分數功能間的值之差異。該分數還可基於影響區塊204的生命週期之一因素。該分數還可基於影響區塊204的生命週期的複數個因素。
例如,在兩記憶體區塊的情況中,一記憶體區塊可具有超過臨限206的分數,而一記憶體區塊可具有低於臨限206的分數。在此情況中,該等分數之每一者可對應至影響該等區塊生命週期的至少一因素。應該注意,該等分數可對應至任何數目之因素,如上所述。
在一具體實施例中,該等分數係表示一值,該值係對應至有關區塊生命預期的至少一因素。在此情況中,該等值的差異可反映區塊預期壽命的差異。因此,兩區塊可相等。
在一具體實施例中,均等化可包括利用(例如寫入)低於臨限206的區塊,但不利用超過臨限206的區塊。在當兩區塊對應至相等或接近等值之前,這是可能發生。此時,臨限206可增加,之後任一記憶體區塊均可被利用。
最初,所有區塊204可低於臨限206。當一區塊超過臨限206時,可將該區塊標示或識別為超過臨限206。然後,在區塊到達或超過臨限206之前,可利用低於臨限206下的區塊204。
用盡低於臨限206的所有區塊204之前,上述動作可繼續。此時,一新的臨限的設定使得全部現有區塊204是低於此新的臨限。此可在區塊204的生命週期期間一直重複。
可選擇地,可用空間的計數百分比可在均等化區塊204間的變異,以減少抹除及寫入區塊204之總數。此外,各種不同其他技術可用來減少抹除及寫入的區塊總數、連同使區塊間的變異(即是區塊回收)均等。此外,各種不同其他均等技術可用來使區塊204間的變異均等。
在一具體實施例中,多個記憶體模組可使用在一系統。在此情況中,記憶體模組可包括具有不同生命週期的記憶體模組。同樣地,系統的總記憶體生命週期可是記憶體的生命週期之總數,而不只是侷限於具有最小生命週期的記憶體模組。
在一具體實施例中,一生命週期估計器模組可用來接收命令,這些命令可用來經由一儲存匯流排接收與一系統的控制器進行溝通。生命週期估計器模組可計算一估計的生命週期,假設透過該匯流排接收的命令有被執行。在一具體實施例中,一生命週期估計器可用來監督寫入次數、及/或影響記憶體區塊204的生命週期之其他因素。該生命週期估計器模組嚴格地還可用來設定臨限206。
當然,臨限206可使用多種技術予以設定。在一具體實施例中,臨限206可為一預先決定的臨限。在另一具體實施例中,臨限206可被動態設定。該臨限還可與記憶體區塊204之至少一者有關的裝置之生命週期(例如預期、想要等)有直接關聯。
在一具體實施例中,一儲藏裝置間冗餘能力可用於減少費用及改良性能。在此具體實施例中,基於有關生命週期的任何因素,資料可在個別儲存裝置之間移動。例如,一情況係涉及該等儲存裝置之一第一者,相較於該等儲存裝置之一第二者的資料,該第一儲存裝置包括較時常覆寫的一組資料。在此情況中,在超過有關生命週期的至少一因素的臨限之後,此資料可從該第一儲存裝置移至該第二儲存裝置,且自此以後,該第一儲存裝置、或關於其的一或多個區塊/模組可用來儲存較不常寫入的資料或不再進一步使用。
為了這個目的,儲存裝置生命週期可適當分配,避免一儲存裝置或儲存裝置的一部分相對於該組其他儲存裝置的過早時間點上失效。當然,目前技術不僅可在不同儲存裝置之中應用,而且可應用在關於儲存裝置的一些部分。為了這個目的,任何記憶體組件的生命週期能夠以上述方式加以處理。
第三圖顯示根據另一具體實施例之用於增加複數個記憶體區塊的生命週期之方法300。方法300可在第一圖至第二圖的功能性之情況下實施。當然(然而),方法300可在任何想要的環境中實施。亦應該注意,上述定義可在目前的描述中應用。
如圖所示,一臨限的定義使得所有記憶體的區塊低於該臨限。請參見步驟302。在一具體實施例中,該臨限可對應至該等區塊的使用。例如,當使用區塊時,有關區塊的使用值可接近該臨限。在另一具體實施例中,該臨限可對應至與該組區塊的預期壽命有關的至少另一因素。
例如,該臨限可對應至該等區塊的修正錯誤數。在此情況中,當使用區塊時,有關該等區塊的修正錯誤數值可接近該臨限。當然,該臨限可對應至影響該等區塊生命週期的一些因素。
一旦確認該等區塊低於一最初的臨限,是否需要回收一區塊就可決定。請參見步驟304。例如,若因素指出一區塊或一群區塊超過該臨限、或與其他區塊不成比例地使用,可決定需要回收該區塊或數個區塊。
在目前描述的範圍中,藉由垃圾收集、讀取擾動、數據淨化、修正的錯誤數、或其他事件所引起的區塊回收是指基於至少一因素以使區塊之間的變異得以均等。例如,在各種不同具體實施例中,該區塊回收可包括基於一些因素以使該等區塊間的變異均等,該等因素可為:在讀取/寫入期間偵測的錯誤數、在一讀取/寫入期間修正的錯誤數、抹除區塊的時間長度、區塊程控的時間長度、程控期間所利用的登錄數、一頁面的介入讀取數、一相鄰頁面的介入讀取數、一區塊的抹除與程控週期數、及/或任何其他因素。
若決定需要回收一區塊,在設定成低於該臨限的區塊中之所有區塊可配置成將要寫入。請參見步驟306。例如,低於一臨限的區塊而不是超過該臨限的區塊或多個區塊可被利用在後續之一記憶體操作。
一旦設定成低於該臨限的區塊組中之所有區塊配置成將要寫入,然後決定任何該區塊是否超過該臨限。請參見步驟308。例如,低於該臨限的區塊集中之所有區塊可被寫入直到一區塊超過該臨限。
若一區塊已超過該臨限,該區塊可置入對應至超過該臨限的區塊之區塊集中。請參見步驟310。若區塊未超過該臨限,該區塊可保留在低於該臨限的區塊集中,並可繼續利用。
然後,決定是否用盡所有低於臨限的區塊。請參見步驟312。換句話說,決定低於該臨限之區塊集中的所有區塊是否包括在超過該臨限之區塊集中。
若所有低於該臨限的區塊已用盡,可設定新的臨限,並將全部現有區塊定義成低於新的臨限。請參見步驟314。一旦已設定新的臨限,再次決定是否需要回收區塊。此可在記憶體區塊的生命週期上繼續。
應該注意,新的及最初的臨限可基於各種不同標準而設定。例如,臨限可基於區塊的預期使用而設定。在一具體實施例中,臨限可為一預先決定的臨限。在另一具體實施例中,臨限可基於記憶體區塊使用而決定。
第四圖顯示根據一具體實施例之基於一寫入頻率,將資料寫至不同儲存裝置之方法400。方法400還可在第一圖至第三圖的功能性與架構的情況下實施。當然(然而),方法400可在任何想要的環境中實施。亦應該注意,上述定義可在目前的描述中應用。
如圖所示,資料寫入的頻率可加以識別。請參見步驟402。此外,複數個不同類型的儲存裝置可基於該頻率而選用來寫入資料。請參見步驟404。
在一具體實施例中,該選擇可基於一臨限。例如,若資料寫入的頻率超過一臨限,一特定的儲存裝置可選用來寫入該資料。不同類型的儲存裝置還可包括一SLC和一MLC裝置、一MLC和具不同持久性的MLC、SLC和DRAM、MLC和DRAM。當然,在各種不同其他具體實施例中,不同類型的儲存裝置可包括任何數量的裝置,包括各種不同類型的記憶體。
在另一具體實施例中,至少兩不同類型記憶體可整合在一裝置。例如,快閃MLC和SLC記憶體可組合在一裝置上。如另一範例所示,兩不同類型快閃MLC可整合在一裝置中。在仍然另一範例中,一裝置中的混合記憶體類型可程式化決定。在一情況中,有關SLC快閃記憶體的儲存裝置的一部分可決定,且有關MLC快閃記憶體的儲存裝置的一部分可決定。
如一特定範例所示,可決定來自一特別應用或程式的資料可使用高頻率寫入。在此情況中,一SLC裝置可選擇寫入該資料。另一方面,可決定來自一特別應用或程式、或磁碟的特定位置、或來自特別存取模式的資料可使用低頻率寫入。在此情況中,一MLC裝置可選用來寫入該資料。當然,這只是一範例,因為任何數量的裝置可基於識別的頻率加以選取。
在一具體實施例中,一生命週期的估計器模組可用來經由一儲存匯流排接收與一系統的控制器進行溝通的命令。該生命週期估計器模組可監督頻率、以及計算估計的生命週期,假設透過該匯流接收的命令被執行。當然,頻率能夠以多種方式決定,且未限於藉由生命週期估計器模組加以識別。
在各種不同具體實施例中,在前面具體實施例中提到的記憶體可包括一機械式儲存裝置(例如一磁碟機,包括一SATA磁碟機、一SAS磁碟機、一光纖通道磁碟機、IDE磁碟機、ATA磁碟機、CE磁碟機、USB磁碟機、智慧卡磁碟機、MMC磁碟機等)、及/或一非機械式儲存裝置(例如半導體式儲存裝置等)。此非機械式記憶體可例如包括揮發性或非揮發性記憶體。在各種不同具體實施例中,非揮發性記憶體裝置可包括快閃記憶體(例如每單元單位元NOR快閃記憶體、每單元多位元NOR快閃記憶體、每單元單位元NAND快閃記憶體、每單元多位元NAND快閃記憶體、每單元多層式及/或多位元NAND快閃記憶體、大區塊快閃記憶體、電阻式記憶體、相變記憶體、磁性記憶體等)。雖然在此闡述了各種不同記憶體的範例,但是應該注意,各種不同原則可適用於由於在此執行的各種不同操作所導致生命週期的減少之任何類型記憶體。
第五圖說明可實施各種不同先前具體實施例的各種不同架構及/或功能之示例性系統500。例如,示例性系統500可代表在一些先前具體實施例中闡述的電腦。上面闡述的各種不同裝置可甚至為系統500的一組件。
如圖所示,一系統500之提供包括至少一主機處理器501,主機處理器501連接至一通信匯流排502。系統500亦包括主記憶體504。控制邏輯(軟體)與資料是儲存在可採用隨機存取記憶體(RAM,“Random Access Memory”)形式的主記憶體504。
系統500亦包括一圖形處理器506與一顯示器508(如一電腦監視器)。系統500亦可包括一輔助儲存裝置510。輔助儲存裝置510包括例如一硬碟機及/或一可移除儲存磁碟機,代表一軟碟機、一磁帶機、一光碟機等。可移除儲存磁碟機能夠以熟知的方式從可移除儲存模組讀取、及/或寫入。
電腦程式、或電腦控制邏輯演算法可儲存在主記憶體504及/或輔助儲存裝置510。當電腦程式執行時,此電腦程式可使系統500執行各種不同功能。記憶體504、儲存裝置510及/或任何其他儲存裝置是電腦可讀媒體之可能範例。
在一具體實施例中,各種不同先前圖式的架構及/或功能可在主機處理器501、圖形處理器506、輔助儲存裝置510、一可為主機處理器501和圖形處理器506二者能力之至少一部分積體電路(未在圖顯示)、一晶片組(即是一組積體電路,其設計上可執行相關功能的模組)、及/或用於此目的之任何其他積體電路的情況下實施。
各種不同先前圖式的架構及/或功能可在一般電腦系統、一電路板系統、一專屬於娛樂目的之遊戲機控制系統、一應用特殊系統、及/或任何其他期望系統的範圍中實施。例如,系統500可採用一桌上型電腦、膝上型電腦、及/或任何其他類型邏輯的形式。系統500可採用各種不同其他裝置的形式,包括(但未限於)一個人數位助理(PDA,“Personal Digital Assistant”)裝置、一行動電話裝置、一電視機等。
此外,雖然未在圖式中顯示,但是系統500可耦合至一網路(例如一電信網路、區域網路(LAN,“Local Area Network”)、無線網路、廣域網路(WAN,“Wide Area Network”),例如網際網路、對等網路、電纜網路等),供通信目的使用。
雖然上面已描述各種不同具體實施例,但是應該瞭解,這些不同具體實施例只經由範例描述,而不是限制。因此,一較佳具體實施例的廣度及範疇應不受到上述任一示例性具體實施例的限制,而是只根據下列申請專利範圍及其同等物的定義。
500...系統
501...主機處理器
502...匯流排
504...主記憶體
506...圖形處理器
508...顯示器
510...輔助儲存裝置
第一圖顯示根據一具體實施例之用於增加複數個記憶體區塊的生命週期之方法。
第二圖顯示根據另一具體實施例之用於增加複數個記憶體區塊的生命週期之技術。
第三圖顯示根據另一具體實施例之用於增加複數個記憶體區塊的生命週期之方法。
第四圖顯示根據一具體實施例之基於一寫入頻率,將資料寫至不同儲存裝置之方法。
第五圖描述可實施各種不同先前具體實施例的各種不同架構及/或功能性之示例性系統。
Claims (20)
- 一種增加記憶體複數個區塊的一生命週期之方法,其包含:至少部分地基於複數個區塊之每一者之可用空間之一個別計數百分比而針對該複數個區塊之每一者計算一個別生命週期期望(expectancy)分數;至少部分地基於至少部分該等個別生命週期期望分數,決定要寫入及回收該等區塊的一順序,及其中當在該等區塊之間之生命週期期望分數變異被均等化時,被抹除及寫入之該等區塊之一總數被最小化。
- 如申請專利範圍第1項之方法,其中該計算係進一步至少部分地基於在涉及該等區塊之每一者的一個別讀取操作期間所發生之個別錯誤數,該等錯誤為複數個。
- 如申請專利範圍第2項之方法,其中該等錯誤為偵測到的錯誤。
- 如申請專利範圍第2項之方法,其中該等錯誤是經修正的錯誤。
- 如申請專利範圍第1項之方法,其中該計算係進一步至少部分地基於涉及在該等區塊之每一者的一個別程控操作與一個別讀取操作之間的一個別持續期間。
- 如申請專利範圍第1項之方法,其中該計算係進一步至少部分地基於被個別抹除之該等區塊之每一者的一個別次數。
- 如申請專利範圍第1項之方法,其中該計算係進一步至少部分地基於個別抹除該等區塊之每一者所需的一個別持續時間。
- 如申請專利範圍第1項之方法,其中該計算係進一步至少部分地基於個別程控該等區塊之每一者所需的一個別持續時間。
- 如申請專利範圍第1項之方法,其中該計算係進一步至少部分地基於個別程控該等區塊之每一者所需的一個別重新嘗試次數。
- 如申請專利範圍第1項之方法,其中該計算係進一步至少部分地基於與該等區塊之每一者相關聯的一頁面之一個別介入讀取數。
- 如申請專利範圍第1項之方法,其中該計算係進一步至少部分地基於與該等區塊之每一者相關聯的一相鄰頁面之一個別介入讀取數。
- 如申請專利範圍第1項之方法,其中先寫入該等區塊之中之一具一較長估計生命週期第一區塊,之後再寫入該等區塊之中之一具一較短估計生命週期的第二區塊。
- 如申請專利範圍第12項之方法,其中該等區塊之中之具該較短估計生命週期的該第二區塊之該個別生命週期期望分數係高於針對多個生命週期期望分數而建立之一臨限值。
- 如申請專利範圍第13項之方法,其中該等區塊之中之具該較長估計生命週期的該第一區塊之該個別生命週期期望分數係低於針對多個生命週期期望分數 而建立之該臨限值。
- 如申請專利範圍第1項之方法,其中該記憶體包括一機械式儲存裝置。
- 如申請專利範圍第1項之方法,其中該記憶體包括一揮發性記憶體裝置。
- 如申請專利範圍第1項之方法,其中其中該記憶體包括一非揮發性記憶體裝置。
- 如申請專利範圍第17項之方法,其中該非揮發性記憶體裝置包括一每單元單位元NOR快閃記憶體、一每單元多位元NOR快閃記憶體、一每單元單位元NAND快閃記憶體、一每單元多位元NAND快閃記憶體之至少一者。
- 如申請專利範圍第1項之方法,更包括儲存該等區塊的一使用歷史。
- 一種電腦可讀媒體,其具有儲存於其中之一組指令,當該組指令由一處理元件執行時使該處理元件執行多個功能,其包含:至少部分地基於複數個區塊之每一者之可用空間之一個別計數百分比而針對該複數個區塊之每一者計算一個別生命週期期望分數;至少部分地基於至少部分該等個別生命週期期望分數,決定要寫入及回收該等區塊的一順序;及其中當在該等區塊之間之生命週期期望分數變異被均等化時,被抹除及寫入之該等區塊之一總數被最小化。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/942,631 US7903486B2 (en) | 2007-11-19 | 2007-11-19 | System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200933638A TW200933638A (en) | 2009-08-01 |
TWI474335B true TWI474335B (zh) | 2015-02-21 |
Family
ID=40641792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW97144480A TWI474335B (zh) | 2007-11-19 | 2008-11-18 | 增加記憶體的複數區塊的生命週期的系統、方法及電腦程式產品 |
Country Status (5)
Country | Link |
---|---|
US (10) | US7903486B2 (zh) |
JP (2) | JP2011503741A (zh) |
CN (1) | CN101874240B (zh) |
TW (1) | TWI474335B (zh) |
WO (1) | WO2009067139A1 (zh) |
Families Citing this family (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
US7904672B2 (en) | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
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 |
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 |
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 |
KR100954039B1 (ko) * | 2008-08-11 | 2010-04-20 | (주)인디링스 | 플래시 메모리 제어 방법 및 제어 장치 |
US8082386B2 (en) * | 2008-10-21 | 2011-12-20 | Skymedi Corporation | Method of performing wear leveling with variable threshold |
KR101586047B1 (ko) | 2009-03-25 | 2016-01-18 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
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 |
US8438361B2 (en) * | 2010-03-10 | 2013-05-07 | Seagate Technology Llc | Logical block storage in a storage device |
US8458417B2 (en) * | 2010-03-10 | 2013-06-04 | Seagate Technology Llc | Garbage collection in a storage device |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US9183134B2 (en) | 2010-04-22 | 2015-11-10 | Seagate Technology Llc | Data segregation in a storage device |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US9170933B2 (en) * | 2010-06-28 | 2015-10-27 | International Business Machines Corporation | Wear-level of cells/pages/sub-pages/blocks of a memory |
US9021192B1 (en) | 2010-09-21 | 2015-04-28 | Western Digital Technologies, Inc. | System and method for enhancing processing of memory access requests |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
JP2012089085A (ja) * | 2010-10-22 | 2012-05-10 | Toshiba Corp | 半導体メモリ装置および半導体メモリシステム |
WO2012148828A2 (en) | 2011-04-26 | 2012-11-01 | Lsi Corporation | Variable over-provisioning for non-volatile storage |
KR101861184B1 (ko) | 2011-11-02 | 2018-05-28 | 삼성전자주식회사 | 스토리지의 동작 성능 조절방법 및 그에 따른 반도체 저장장치 |
KR20130061967A (ko) * | 2011-12-02 | 2013-06-12 | 삼성전자주식회사 | 메모리 시스템 및 그것의 웨어 레벨링 방법 |
TWI455140B (zh) * | 2012-02-21 | 2014-10-01 | Fluiditech Ip Ltd | Flash memory usage period assessment method |
US11232093B2 (en) * | 2012-03-02 | 2022-01-25 | Pure Storage, Inc. | Slice migration in a dispersed storage network |
US20130262942A1 (en) * | 2012-03-27 | 2013-10-03 | Yung-Chiang Chu | Flash memory lifetime evaluation method |
CN102915764A (zh) * | 2012-09-04 | 2013-02-06 | 邹粤林 | 提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器 |
US9329948B2 (en) | 2012-09-15 | 2016-05-03 | Seagate Technology Llc | Measuring cell damage for wear leveling in a non-volatile memory |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
KR102089532B1 (ko) | 2013-02-06 | 2020-03-16 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN104008061B (zh) * | 2013-02-22 | 2018-01-23 | 华为技术有限公司 | 内存回收方法及装置 |
US8976589B2 (en) | 2013-03-14 | 2015-03-10 | Kabushiki Kaisha Toshiba | Storage device |
GB2514354A (en) * | 2013-05-20 | 2014-11-26 | Ibm | Managing storage devices having a lifetime of a finite number of operations |
US9501393B2 (en) * | 2014-01-27 | 2016-11-22 | Western Digital Technologies, Inc. | Data storage system garbage collection based on at least one attribute |
CN104866429B (zh) * | 2014-02-26 | 2018-02-02 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
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 |
KR102291507B1 (ko) | 2014-05-20 | 2021-08-20 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 |
KR102318561B1 (ko) | 2014-08-19 | 2021-11-01 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치의 동작 방법 |
US9251909B1 (en) | 2014-09-29 | 2016-02-02 | International Business Machines Corporation | Background threshold voltage shifting using base and delta threshold voltage shift values in flash memory |
CN104317671A (zh) * | 2014-10-24 | 2015-01-28 | 杭州帅锐电子科技有限公司 | 一种提升非易失存储使用寿命的掉电数据保存恢复算法 |
CN104376875B (zh) * | 2014-11-19 | 2017-09-05 | 华为数字技术(苏州)有限公司 | 存储设备寿命预测、确定方法及装置 |
US9372628B1 (en) | 2015-01-23 | 2016-06-21 | International Business Machines Corporation | Deduplication tracking for accurate lifespan prediction |
JP6541369B2 (ja) * | 2015-02-24 | 2019-07-10 | キヤノン株式会社 | メモリのデータ処理を行なうデータ処理装置、データ処理方法、及びプログラム |
JP6510635B2 (ja) * | 2015-04-09 | 2019-05-08 | 株式会社日立製作所 | ストレージシステム及びデータ制御方法 |
KR102393323B1 (ko) | 2015-08-24 | 2022-05-03 | 삼성전자주식회사 | 재사용 주기를 이용하여 사용자 데이터를 쓰기 위한 워드라인을 결정하는 저장 장치의 동작 방법 |
KR102456104B1 (ko) | 2015-08-24 | 2022-10-19 | 삼성전자주식회사 | 데이터 신뢰성에 따라 동작 조건을 변경하는 저장 장치의 동작 방법 |
KR102333746B1 (ko) | 2015-09-02 | 2021-12-01 | 삼성전자주식회사 | 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법 |
US9934174B2 (en) | 2015-09-18 | 2018-04-03 | Seagate Technology Llc | Selectively enable data transfer based on accrued data credits |
US9734912B2 (en) * | 2015-11-25 | 2017-08-15 | Macronix International Co., Ltd. | Reprogramming single bit memory cells without intervening erasure |
US9898202B2 (en) * | 2015-11-30 | 2018-02-20 | Samsung Electronics Co., Ltd. | Enhanced multi-streaming though statistical analysis |
US10359933B2 (en) * | 2016-09-19 | 2019-07-23 | Micron Technology, Inc. | Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods |
US11126632B2 (en) | 2016-09-26 | 2021-09-21 | Splunk Inc. | Subquery generation based on search configuration data from an external data system |
US20180089324A1 (en) | 2016-09-26 | 2018-03-29 | Splunk Inc. | Dynamic resource allocation for real-time search |
US11232100B2 (en) | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
US10776355B1 (en) | 2016-09-26 | 2020-09-15 | Splunk Inc. | Managing, storing, and caching query results and partial query results for combination with additional query results |
US11222066B1 (en) | 2016-09-26 | 2022-01-11 | Splunk Inc. | Processing data using containerized state-free indexing nodes in a containerized scalable environment |
US10353965B2 (en) | 2016-09-26 | 2019-07-16 | Splunk Inc. | Data fabric service system architecture |
US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
US10984044B1 (en) | 2016-09-26 | 2021-04-20 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system |
US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
US10977260B2 (en) | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
US11281706B2 (en) | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US10726009B2 (en) | 2016-09-26 | 2020-07-28 | Splunk Inc. | Query processing using query-resource usage and node utilization data |
US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
US11321321B2 (en) | 2016-09-26 | 2022-05-03 | Splunk Inc. | Record expansion and reduction based on a processing task in a data intake and query system |
US11416528B2 (en) | 2016-09-26 | 2022-08-16 | Splunk Inc. | Query acceleration data store |
US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in a data intake and query system |
US11003714B1 (en) | 2016-09-26 | 2021-05-11 | Splunk Inc. | Search node and bucket identification using a search node catalog and a data store catalog |
US10795884B2 (en) | 2016-09-26 | 2020-10-06 | Splunk Inc. | Dynamic resource allocation for common storage query |
US11243963B2 (en) | 2016-09-26 | 2022-02-08 | Splunk Inc. | Distributing partial results to worker nodes from an external data system |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US11294941B1 (en) | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
US11106734B1 (en) | 2016-09-26 | 2021-08-31 | Splunk Inc. | Query execution using containerized state-free search nodes in a containerized scalable environment |
US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
US11620336B1 (en) * | 2016-09-26 | 2023-04-04 | Splunk Inc. | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
US11163758B2 (en) | 2016-09-26 | 2021-11-02 | Splunk Inc. | External dataset capability compensation |
US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
US11023463B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US11550847B1 (en) | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
US11314753B2 (en) | 2016-09-26 | 2022-04-26 | Splunk Inc. | Execution of a query received from a data intake and query system |
US11567993B1 (en) | 2016-09-26 | 2023-01-31 | Splunk Inc. | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
US11250056B1 (en) | 2016-09-26 | 2022-02-15 | Splunk Inc. | Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system |
US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
US10740227B2 (en) * | 2017-04-28 | 2020-08-11 | Vmware, Inc. | Reclaiming storage resources |
CN107193493A (zh) * | 2017-05-19 | 2017-09-22 | 惠州佰维存储科技有限公司 | Nand闪存块的管理方法及其系统 |
US11921672B2 (en) | 2017-07-31 | 2024-03-05 | Splunk Inc. | Query execution at a remote heterogeneous data store of a data fabric service |
US11151137B2 (en) | 2017-09-25 | 2021-10-19 | Splunk Inc. | Multi-partition operation in combination operations |
US10896182B2 (en) | 2017-09-25 | 2021-01-19 | Splunk Inc. | Multi-partitioning determination for combination operations |
CN108073362B (zh) * | 2017-12-20 | 2021-04-09 | 北京兆易创新科技股份有限公司 | 一种延长PairBlock使用寿命的方法及装置 |
US11210166B1 (en) | 2017-12-22 | 2021-12-28 | Pliops Ltd. | Efficient redundancy management in key-value NAND flash storage |
US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
US11132247B2 (en) * | 2018-07-30 | 2021-09-28 | Micron Technology, Inc. | Selective bad block untag and bad block reuse |
WO2020220216A1 (en) | 2019-04-29 | 2020-11-05 | Splunk Inc. | Search time estimate in data intake and query system |
US11715051B1 (en) | 2019-04-30 | 2023-08-01 | Splunk Inc. | Service provider instance recommendations using machine-learned classifications and reconciliation |
US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
US11922222B1 (en) | 2020-01-30 | 2024-03-05 | Splunk Inc. | Generating a modified component for a data intake and query system using an isolated execution environment image |
CN111312326B (zh) * | 2020-03-09 | 2021-11-12 | 宁波三星医疗电气股份有限公司 | 闪存寿命测试方法、装置、电力采集终端及存储介质 |
CN111833948A (zh) * | 2020-07-16 | 2020-10-27 | 浪潮(北京)电子信息产业有限公司 | Nand闪存的擦写能力测试方法、装置、设备及介质 |
US11561907B2 (en) * | 2020-08-18 | 2023-01-24 | Micron Technology, Inc. | Access to data stored in quarantined memory media |
US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1173378A (ja) * | 1997-08-27 | 1999-03-16 | Oki Electric Ind Co Ltd | 半導体ディスク装置の寿命算出方法 |
US6058047A (en) * | 1996-08-16 | 2000-05-02 | Tokyo Electron Limited | Semiconductor memory device having error detection and correction |
US20020008990A1 (en) * | 1999-02-08 | 2002-01-24 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device |
US6606273B1 (en) * | 2002-04-11 | 2003-08-12 | Advanced Micro Devices, Inc. | Methods and systems for flash memory tunnel oxide reliability testing |
TWI248570B (en) * | 2003-05-29 | 2006-02-01 | Accton Technology Corp | Method and system for storing data |
US20060233010A1 (en) * | 2005-04-01 | 2006-10-19 | Yan Li | Non-Volatile Memory with Background Data Latch Caching During Read Operations |
JP2007011839A (ja) * | 2005-07-01 | 2007-01-18 | Hitachi Computer Peripherals Co Ltd | メモリ管理方法及びメモリ管理システム |
US20070198786A1 (en) * | 2006-02-10 | 2007-08-23 | Sandisk Il Ltd. | Method for estimating and reporting the life expectancy of flash-disk memory |
Family Cites Families (112)
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 |
US6347051B2 (en) * | 1991-11-26 | 2002-02-12 | Hitachi, Ltd. | Storage device employing a flash memory |
TW261687B (zh) | 1991-11-26 | 1995-11-01 | Hitachi Seisakusyo Kk | |
JP2610737B2 (ja) | 1991-12-20 | 1997-05-14 | シャープ株式会社 | 記録再生装置 |
US5592415A (en) | 1992-07-06 | 1997-01-07 | Hitachi, Ltd. | Non-volatile semiconductor memory |
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 | データ消去回数に制限のあるメモリの制御方法及びこの方法を用いた装置 |
WO1996028826A1 (fr) | 1995-03-15 | 1996-09-19 | Hitachi, Ltd. | Dispositif a memoire a semiconducteur dote d'une fonction de determination de la deterioration |
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 |
US6085248A (en) | 1997-02-11 | 2000-07-04 | Xaqtu Corporation | Media access control transmitter and parallel network management system |
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 |
JP3898305B2 (ja) | 1997-10-31 | 2007-03-28 | 富士通株式会社 | 半導体記憶装置、半導体記憶装置の制御装置及び制御方法 |
US6305014B1 (en) | 1998-06-18 | 2001-10-16 | International Business Machines Corporation | Lifetime-sensitive instruction scheduling mechanism and method |
KR100533140B1 (ko) | 1998-09-04 | 2005-12-02 | 하이퍼스톤 아게 | 제한된 소거빈도의 메모리의 액세스제어방법 |
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 |
US7628622B2 (en) | 1999-08-04 | 2009-12-08 | Super Talent Electronics, Inc. | Multi-level cell (MLC) slide flash memory |
US6405295B1 (en) | 1999-09-07 | 2002-06-11 | Oki Electric Industry, Co., Ltd. | Data storage apparatus for efficient utilization of limited cycle memory material |
US7130807B1 (en) | 1999-11-22 | 2006-10-31 | Accenture Llp | Technology sharing during demand and supply planning in a network-based supply chain environment |
JP2001306543A (ja) | 2000-04-19 | 2001-11-02 | Nec Corp | マイクロコンピュータ及びフラッシュメモリのデータ書換え方法 |
US6484228B2 (en) | 2000-04-19 | 2002-11-19 | Motorola, Inc. | Method and apparatus for data compression and decompression for a data processor system |
US6256232B1 (en) | 2000-07-07 | 2001-07-03 | Institute For Information Industry | Data access method capable of reducing the number of erasing to flash memory and data patch and access device using the same |
US6732221B2 (en) | 2001-06-01 | 2004-05-04 | M-Systems Flash Disk Pioneers Ltd | Wear leveling of static areas in flash memory |
TW520514B (en) | 2001-08-02 | 2003-02-11 | Macronix Int Co Ltd | Circuit and method of qualification test for non-volatile memory |
US6948026B2 (en) | 2001-08-24 | 2005-09-20 | Micron Technology, Inc. | Erase block management |
US6717847B2 (en) * | 2001-09-17 | 2004-04-06 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
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 |
US20030120841A1 (en) | 2001-12-21 | 2003-06-26 | Chang Matthew C.T. | System and method of data logging |
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 |
NZ520786A (en) | 2002-08-14 | 2005-06-24 | Daniel James Oaeconnell | Method of booting a computer system using a memory image of the post boot content of the system RAM memory |
KR100484485B1 (ko) | 2002-10-01 | 2005-04-20 | 한국전자통신연구원 | 비휘발성 메모리에의 데이터 저장 방법 및 장치 |
US6910106B2 (en) | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
US20040135903A1 (en) | 2002-10-11 | 2004-07-15 | Brooks Lane C. | In-stream lossless compression of digital image sensor data |
CA2408979A1 (en) | 2002-10-18 | 2004-04-18 | Richard Egon Schauble | Tamper-evident use-indicating odometer and engine-timer |
US7096313B1 (en) | 2002-10-28 | 2006-08-22 | Sandisk Corporation | Tracking the least frequently erased blocks in non-volatile memory systems |
US6831865B2 (en) | 2002-10-28 | 2004-12-14 | Sandisk Corporation | Maintaining erase counts in non-volatile storage systems |
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 |
US6973531B1 (en) | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
AU2003282544A1 (en) | 2002-10-28 | 2004-05-25 | Sandisk Corporation | Automated wear leveling in non-volatile storage systems |
US7103732B1 (en) | 2002-10-28 | 2006-09-05 | Sandisk Corporation | Method and apparatus for managing an erase count block |
US6925523B2 (en) | 2003-03-03 | 2005-08-02 | Agilent Technologies, Inc. | Managing monotonically increasing counter values to minimize impact on non-volatile storage |
US7203874B2 (en) * | 2003-05-08 | 2007-04-10 | Micron Technology, Inc. | Error detection, documentation, and correction in a flash memory device |
US7320100B2 (en) * | 2003-05-20 | 2008-01-15 | Cray Inc. | Apparatus and method for memory with bit swapping on the fly and testing |
US7143238B2 (en) | 2003-09-30 | 2006-11-28 | Intel Corporation | Mechanism to compress data in a cache |
US7188228B1 (en) * | 2003-10-01 | 2007-03-06 | Sandisk Corporation | Hybrid mapping implementation within a non-volatile memory system |
US20070067366A1 (en) | 2003-10-08 | 2007-03-22 | Landis John A | Scalable partition memory mapping system |
US7032087B1 (en) | 2003-10-28 | 2006-04-18 | Sandisk Corporation | Erase count differential table within a non-volatile memory system |
JP2005147749A (ja) * | 2003-11-12 | 2005-06-09 | Toshiba Corp | スキャン回路を備える半導体集積回路、スキャン回路システムおよびスキャンテストシステム |
US7480760B2 (en) | 2003-12-17 | 2009-01-20 | Wegener Communications, Inc. | Rotational use of memory to minimize write cycles |
JP4357304B2 (ja) | 2004-01-09 | 2009-11-04 | 株式会社バッファロー | 外部記憶装置 |
WO2005094281A2 (en) | 2004-03-25 | 2005-10-13 | Riverstone Networks, Inc. | Device-level address translation within a programmable non-volatile memory device |
US7595796B2 (en) | 2004-04-23 | 2009-09-29 | Hewlett-Packard Development Company, L.P. | Optimizing lifetime of a display |
US7664796B2 (en) | 2004-10-13 | 2010-02-16 | Microsoft Corporation | Electronic labeling for offline management of storage devices |
KR100949855B1 (ko) | 2004-11-08 | 2010-03-25 | 이노패스 소프트웨어, 아이엔시. | 파일 시스템 이미지를 디퍼런싱하기 위한 장치, 시스템, 방법 및 컴퓨터 판독가능형 매체 |
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 |
US20060149891A1 (en) * | 2004-12-30 | 2006-07-06 | Rudelic John C | Relocated reclaim block |
US7224604B2 (en) | 2005-03-14 | 2007-05-29 | Sandisk Il Ltd. | Method of achieving wear leveling in flash memory using relative grades |
US20060209684A1 (en) | 2005-03-18 | 2006-09-21 | Via Technologies, Inc. | Data rate controller, and method of control thereof |
KR100705220B1 (ko) * | 2005-09-15 | 2007-04-06 | 주식회사 하이닉스반도체 | 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법 |
JP2007094734A (ja) | 2005-09-28 | 2007-04-12 | Canon Inc | 半導体ディスク装置、該装置へのデータ書き込み方法、プログラム及び記憶媒体 |
US7761854B2 (en) * | 2005-12-22 | 2010-07-20 | International Business Machines Corporation | Adaptive profiling by progressive refinement |
US7457178B2 (en) | 2006-01-12 | 2008-11-25 | Sandisk Corporation | Trimming of analog voltages in flash memory devices |
US20070180186A1 (en) * | 2006-01-27 | 2007-08-02 | Cornwell Michael J | Non-volatile memory management |
US8848789B2 (en) | 2006-03-27 | 2014-09-30 | Qualcomm Incorporated | Method and system for coding and decoding information associated with video compression |
US7653778B2 (en) | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
JP2007316779A (ja) | 2006-05-23 | 2007-12-06 | Sharp Corp | 不揮発性メモリシステム |
US8412682B2 (en) | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US7555575B2 (en) | 2006-07-27 | 2009-06-30 | Hitachi, Ltd. | Method and apparatus for migrating data between storage volumes of different data pattern |
US7561482B2 (en) * | 2006-09-07 | 2009-07-14 | Sandisk Corporation | Defective block isolation in a non-volatile memory system |
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 |
US7904619B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for reducing memory write operations using difference information |
US20080126685A1 (en) | 2006-11-24 | 2008-05-29 | Radoslav Danilak | System, method, and computer program product for reducing memory write operations using an instruction set |
US7747813B2 (en) | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
JP5171840B2 (ja) | 2006-11-24 | 2013-03-27 | サンドフォース インコーポレイテッド | メモリの寿命を縮める動作を遅延させる方法及びストレージシステム |
US7904764B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | Memory lifetime gauging system, method and computer program product |
US7904672B2 (en) | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
US8090980B2 (en) | 2006-12-08 | 2012-01-03 | Sandforce, Inc. | System, method, and computer program product for providing data redundancy in a plurality of storage devices |
KR20080090021A (ko) | 2007-04-03 | 2008-10-08 | 삼성테크윈 주식회사 | 데이터 전송 속도가 다른 인터페이스들을 갖는 데이터 저장모듈 및 이의 데이터 전송방법 |
US7743203B2 (en) * | 2007-05-11 | 2010-06-22 | Spansion Llc | Managing flash memory based upon usage history |
US20080294813A1 (en) | 2007-05-24 | 2008-11-27 | Sergey Anatolievich Gorobets | Managing Housekeeping Operations in Flash Memory |
US7934072B2 (en) * | 2007-09-28 | 2011-04-26 | Lenovo (Singapore) Pte. Ltd. | Solid state storage reclamation apparatus and method |
TW200917123A (en) | 2007-10-03 | 2009-04-16 | Guo-Lang Zhang | USB flash disk for computer boot up and method of loading programs in the USB flash disk |
TWI373772B (en) | 2007-10-04 | 2012-10-01 | Phison Electronics Corp | Wear leveling method and controller using the same |
US20090125645A1 (en) | 2007-11-12 | 2009-05-14 | Gemalto Inc | System and method for supporting multiple tokens having a smart card to control parameters of a flash memory device |
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 |
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 |
WO2009072102A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices |
US7827320B1 (en) | 2008-03-28 | 2010-11-02 | Western Digital Technologies, Inc. | Serial ATA device implementing intra-command processing by detecting XRDY primitive while in the XRDY state |
US7970978B2 (en) | 2008-05-27 | 2011-06-28 | Initio Corporation | SSD with SATA and USB interfaces |
US20100017650A1 (en) | 2008-07-19 | 2010-01-21 | Nanostar Corporation, U.S.A | Non-volatile memory data storage system with reliability management |
US8140739B2 (en) | 2008-08-08 | 2012-03-20 | Imation Corp. | Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table |
US8291131B2 (en) | 2009-07-06 | 2012-10-16 | Micron Technology, Inc. | Data transfer management |
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 |
JP2012033047A (ja) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム |
US9355023B2 (en) * | 2011-03-15 | 2016-05-31 | Anirudh Badam | Virtual address pager and method for use with a bulk erase memory |
US8738882B2 (en) * | 2011-06-03 | 2014-05-27 | Apple Inc. | Pre-organization of data |
-
2007
- 2007-11-19 US US11/942,631 patent/US7903486B2/en not_active Expired - Fee Related
-
2008
- 2008-10-23 WO PCT/US2008/012044 patent/WO2009067139A1/en active Application Filing
- 2008-10-23 JP JP2010534015A patent/JP2011503741A/ja active Pending
- 2008-10-23 CN CN2008801168271A patent/CN101874240B/zh active Active
- 2008-11-18 TW TW97144480A patent/TWI474335B/zh not_active IP Right Cessation
-
2011
- 2011-03-07 US US13/042,242 patent/US8339881B2/en active Active
-
2012
- 2012-08-10 US US13/572,257 patent/US8531900B2/en active Active
-
2013
- 2013-08-08 US US13/962,779 patent/US8699287B2/en active Active
-
2014
- 2014-04-08 US US14/247,399 patent/US9165682B2/en active Active
- 2014-08-21 JP JP2014168546A patent/JP2014241158A/ja active Pending
-
2015
- 2015-09-23 US US14/862,195 patent/US9323666B2/en active Active
-
2016
- 2016-04-25 US US15/138,064 patent/US9489303B2/en active Active
- 2016-11-04 US US15/343,576 patent/US9921761B2/en active Active
-
2018
- 2018-02-21 US US15/901,339 patent/US10579278B2/en active Active
-
2020
- 2020-01-10 US US16/739,294 patent/US20200167083A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058047A (en) * | 1996-08-16 | 2000-05-02 | Tokyo Electron Limited | Semiconductor memory device having error detection and correction |
JPH1173378A (ja) * | 1997-08-27 | 1999-03-16 | Oki Electric Ind Co Ltd | 半導体ディスク装置の寿命算出方法 |
US20020008990A1 (en) * | 1999-02-08 | 2002-01-24 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device |
US6606273B1 (en) * | 2002-04-11 | 2003-08-12 | Advanced Micro Devices, Inc. | Methods and systems for flash memory tunnel oxide reliability testing |
TWI248570B (en) * | 2003-05-29 | 2006-02-01 | Accton Technology Corp | Method and system for storing data |
US20060233010A1 (en) * | 2005-04-01 | 2006-10-19 | Yan Li | Non-Volatile Memory with Background Data Latch Caching During Read Operations |
JP2007011839A (ja) * | 2005-07-01 | 2007-01-18 | Hitachi Computer Peripherals Co Ltd | メモリ管理方法及びメモリ管理システム |
US20070198786A1 (en) * | 2006-02-10 | 2007-08-23 | Sandisk Il Ltd. | Method for estimating and reporting the life expectancy of flash-disk memory |
Also Published As
Publication number | Publication date |
---|---|
US20170075597A1 (en) | 2017-03-16 |
US9323666B2 (en) | 2016-04-26 |
JP2011503741A (ja) | 2011-01-27 |
US10579278B2 (en) | 2020-03-03 |
US20180329633A1 (en) | 2018-11-15 |
US7903486B2 (en) | 2011-03-08 |
US20130326130A1 (en) | 2013-12-05 |
US20200167083A1 (en) | 2020-05-28 |
WO2009067139A1 (en) | 2009-05-28 |
CN101874240A (zh) | 2010-10-27 |
US20120311378A1 (en) | 2012-12-06 |
US8531900B2 (en) | 2013-09-10 |
US20140301143A1 (en) | 2014-10-09 |
US20160239411A1 (en) | 2016-08-18 |
US20090129163A1 (en) | 2009-05-21 |
JP2014241158A (ja) | 2014-12-25 |
US9165682B2 (en) | 2015-10-20 |
US20160011974A1 (en) | 2016-01-14 |
US8699287B2 (en) | 2014-04-15 |
US8339881B2 (en) | 2012-12-25 |
US20120060060A1 (en) | 2012-03-08 |
TW200933638A (en) | 2009-08-01 |
US9489303B2 (en) | 2016-11-08 |
CN101874240B (zh) | 2012-05-30 |
US9921761B2 (en) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI474335B (zh) | 增加記憶體的複數區塊的生命週期的系統、方法及電腦程式產品 | |
TWI420303B (zh) | 基於寫入頻率將資料寫至記憶體不同部份之方法、非暫態電腦可讀媒體與裝置 | |
US9606737B2 (en) | Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning | |
US8356152B2 (en) | Initiative wear leveling for non-volatile memory | |
JP2011503741A5 (zh) | ||
JP2011503768A5 (zh) | ||
WO2015057458A1 (en) | Biasing for wear leveling in storage systems | |
US9424177B2 (en) | Clock switching method, memory controller and memory storage apparatus | |
TW201611018A (zh) | 非揮發性記憶體裝置進行耗損管理之方法 | |
JP6730604B2 (ja) | 制御回路、半導体記憶装置、及び半導体記憶装置の制御方法 | |
KR101628925B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |