TW201535114A - 記錄非揮發性記憶體系統中之停滯時間 - Google Patents
記錄非揮發性記憶體系統中之停滯時間 Download PDFInfo
- Publication number
- TW201535114A TW201535114A TW103138435A TW103138435A TW201535114A TW 201535114 A TW201535114 A TW 201535114A TW 103138435 A TW103138435 A TW 103138435A TW 103138435 A TW103138435 A TW 103138435A TW 201535114 A TW201535114 A TW 201535114A
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- controller
- block
- memory array
- pages
- 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/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
- 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/0604—Improving or facilitating administration, e.g. storage 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/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/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/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
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
本發明係關於資料處理及儲存,且更具體言之,係關於諸如快閃記憶體系統之非揮發性記憶體系統中之停滯時間的記錄及使用。
快閃記憶體為將每記憶體單元之一或多個資料位元作為電荷而儲存於電晶體之浮動閘極上的非揮發性記憶體技術。隨著快閃記憶體中的單元密度及每單元所儲存之位元之數目在後代快閃技術中不斷地增加,儲存於記憶體單元中之資料變得更易受由讀取干擾、高周圍溫度、長儲存持續時間及其他因素誘發之位元錯誤的損壞。因此,即使每單位資料之儲存密度及成本一直在改良時,快閃記憶體被評等所針對的讀取/寫入循環之數目通常仍一直在下降。
本發明認識到,在可經考量以延長非揮發性記憶體(例如,快閃記憶體)之可用壽命且改良資料完整性的許多因素當中的是停滯時間。
在至少一項實施例中,一種資料儲存系統包括一非揮發性記憶體陣列,及耦接至該記憶體陣列之一控制器。該控制器針對該記憶體陣列中之複數個有效頁面中之每一者記錄每一有效頁面之一停滯時間的一各別指示。
在至少一項實施例中,一種資料儲存系統包括一非揮發性記憶
體陣列,該非揮發性記憶體陣列包括複數個實體記憶體區域。該資料儲存系統進一步包括一控制器,該控制器控制對該記憶體陣列之讀取及寫入存取,且淘汰該複數個實體記憶體區域中之已選取區域免於使用。該控制器基於儲存於該複數個實體記憶體區域當中之一特定區域中的資料之一停滯時間來判定是否淘汰該特定區域免於使用。
在至少一項實施例中,一種資料儲存系統包括一非揮發性記憶體陣列,該非揮發性記憶體陣列包括複數個實體記憶體區塊,每一區塊包括多個頁面。該資料儲存系統進一步包括一控制器,該控制器維護識別該記憶體陣列中當前未儲存有效資料之實體記憶體區塊之一資料結構。回應於指定一位址及寫入資料之一寫入輸入/輸出操作(IOP)的接收,該控制器在滿足針對一特定區塊之一停滯時間臨限值之前自該資料結構中識別之該等區塊當中選取該特定區塊、運用該寫入資料來程式化該已選取區塊內之一頁面,且使該位址與該已選取區塊相關聯。
100‧‧‧資料處理環境
102‧‧‧處理器系統
104‧‧‧處理器
106‧‧‧本機儲存體
108‧‧‧輸入/輸出(I/O)配接器
110‧‧‧I/O通道
120‧‧‧資料儲存系統
122‧‧‧介面
124‧‧‧快閃控制器
126‧‧‧快閃控制器記憶體
128‧‧‧CPU
130‧‧‧CPU記憶體
140‧‧‧NAND快閃記憶體陣列/NAND快閃記憶體系統
150‧‧‧轉譯資料表(TT)
152‧‧‧已抹除區塊清單(EBL)
154‧‧‧可用區塊佇列(ABQ)
156‧‧‧熱清單
300‧‧‧快閃記憶體模組/快閃模組
400‧‧‧平面
500‧‧‧區塊
502‧‧‧頁面狀態資訊/PSI
600‧‧‧頁面等量磁碟區
700‧‧‧頁面等量磁碟區/資料頁面
702‧‧‧資料欄位
704‧‧‧LBA欄位
706‧‧‧CRC欄位
708‧‧‧ECC欄位
800‧‧‧頁面等量磁碟區/資料保護頁面
802‧‧‧資料XOR欄位
804‧‧‧LBA XOR欄位
806‧‧‧CRC欄位
808‧‧‧ECC欄位
1000‧‧‧輸入項目
1002‧‧‧PBA
1004‧‧‧抹除時間戳記
1100‧‧‧輸入項目
1102‧‧‧PBA
1104‧‧‧時序資訊(T)
1106‧‧‧額外資訊
M0a‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M1a‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M2a‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M3a‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M0b‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M1b‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M2b‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M3b‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M12a‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M13a‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M14a‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M15a‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M12b‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M13b‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M14b‧‧‧快閃記憶體儲存器件/快閃記憶體模組
M15b‧‧‧快閃記憶體儲存器件/快閃記憶體模組
圖1為根據一項實施例之資料處理環境的高階方塊圖;圖2至圖5說明根據本發明之NAND快閃記憶體陣列內的實體記憶體之例示性配置;圖6描繪根據本發明之頁面等量磁碟區(page stripe)的例示性實施;圖7說明根據本發明之例示性資料頁面;圖8描繪根據本發明之例示性資料保護頁面;圖9為根據一項實施例之例示性處理序的高階邏輯流程圖,藉由該處理序,快閃控制器在滿足停滯時間臨限值之前將實體記憶體區塊之識別符自已抹除區塊清單傳送至可用區塊佇列;圖10至圖11分別描繪由快閃控制器維護之已抹除區塊清單及可用
區塊佇列的例示性實施例;圖12為資料寫入處理序之例示性實施例的高階邏輯流程圖,藉由該處理序,將資料頁面及關聯停滯時間寫入至NAND快閃記憶體陣列;圖13為例示性處理序之高階邏輯流程圖,藉由該處理序,快閃控制器重新定位不滿足停滯時間臨限值的儲存於實體頁面內之資料頁面;及圖14為資料讀取處理序之例示性實施例的高階邏輯流程圖,在該處理序中,可根據儲存目標資料頁面之實體頁面之停滯時間來處置目標資料頁面中之錯誤。
熟習此項技術者應瞭解,本發明之態樣可被體現為系統、方法或電腦程式產品。因此,本發明之態樣可採取完全硬體實施例、完全軟體實施例(包括韌體、常駐軟體、微碼等等)或組合軟體態樣與硬體態樣之實施例的形式,該等實施例通常皆可在本文中被稱為「電路」、「模組」或「系統」。此外,本發明之態樣可採取體現於一或多個電腦可讀媒體中之電腦程式產品的形式,該一或多個電腦可讀媒體具有體現於其上之電腦可讀程式碼。
可利用一或多個電腦可讀媒體之任何組合。電腦可讀媒體可為電腦可讀信號媒體或電腦可讀儲存媒體。舉例而言,電腦可讀儲存媒體可為但不限於電子、磁性、光學、電磁、紅外線或半導體系統、裝置或器件,或前述各者之任何合適組合。電腦可讀儲存媒體之更特定實例(非詳盡清單)將包括以下各者:具有一或多個電線之電連線、攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、光纖、攜帶型光碟唯讀記憶體(CD-ROM)、光學儲存器件、磁性儲存器件,或前述各
者之任何合適組合。在此文件之上下文中,電腦可讀儲存媒體可為可含有或儲存供指令執行系統、裝置或器件使用或結合指令執行系統、裝置或器件而使用之程式的任何有形媒體。
電腦可讀信號媒體可包括傳播資料信號,其中電腦可讀程式碼體現於該傳播資料信號中,例如,在基頻中或作為載波之部分。此傳播信號可採取各種形式中之任一者,包括但不限於電磁、光學或其任何合適組合。電腦可讀信號媒體可為並非電腦可讀儲存媒體且可傳達、傳播或輸送供指令執行系統、裝置或器件使用或結合指令執行系統、裝置或器件而使用之程式的任何電腦可讀媒體。
可使用任何適當媒體來傳輸體現於電腦可讀媒體上之程式碼,該適當媒體包括但不限於無線、有線、光纖纜線、RF等等,或前述各者之任何合適組合。
可以一或多種程式設計語言之任何組合來撰寫用於進行用於本發明之態樣之操作的電腦程式碼,該一或多種程式設計語言包括諸如Java、Smalltalk、C++或其類似者之物件導向式程式設計語言,及諸如「C」程式設計語言或類似程式設計語言之習知程序性程式設計語言。程式碼可完全地在使用者電腦上執行、部分地在使用者電腦上執行、作為單機套裝軟體而執行、部分地在使用者電腦上且部分地在遠端電腦上執行,或完全地在遠端電腦或伺服器上執行。在後者情境中,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))而連接至使用者電腦,或可對外部電腦進行連接(例如,在使用網際網路服務提供者的情況下經由網際網路)。
下文參考根據本發明之實施例之方法、裝置(系統)及電腦程式產品的流程圖說明及/或方塊圖來描述本發明之態樣。應理解,該等流程圖說明及/或方塊圖之每一區塊以及該等流程圖說明及/或方塊圖中之區塊組合可由電腦程式指令實施。可將此等電腦程式指令提供至一
般用途電腦、特殊用途電腦或其他可程式化資料處理裝置之處理器以產生一機器,使得經由該電腦或其他可程式化資料處理裝置之處理器而執行之指令建立用於實施該或該等流程圖及/或方塊圖區塊中指定之功能/動作的構件。
亦可將此等電腦程式指令儲存於一電腦可讀媒體中,該電腦可讀媒體可指導一電腦、其他可程式化資料處理裝置或其他器件以特定方式起作用,使得儲存於該電腦可讀媒體中之指令產生一製品,該製品包括實施該或該等流程圖及/或方塊圖區塊中指定之功能/動作的指令。
亦可將該等電腦程式指令載入至一電腦、其他可程式化資料處理裝置或其他器件上,以使一系列操作步驟在該電腦、其他可程式化裝置或其他器件上執行以產生一電腦實施處理序,使得在該電腦或其他可程式化裝置上執行之指令提供用於實施該或該等流程圖及/或方塊圖區塊中指定之功能/動作的處理序。
現在參看諸圖且特定地參看圖1,說明包括資料儲存系統之例示性資料處理環境100的高階方塊圖,該資料儲存系統使用如本文進一步所描述之NAND快閃記憶體。如所展示,資料處理環境100包括具有處理指令及資料之一或多個處理器104之至少一個處理器系統102。處理器系統102可另外包括可儲存程式碼、運算元及/或由處理器104執行之處理之執行結果的本機儲存體106(例如,動態隨機存取記憶體(DRAM)或磁碟)。在各種實施例中,處理器系統102可為(例如)行動計算器件(諸如,智慧型電話或平板電腦)、膝上型或桌上型個人電腦系統、伺服器電腦系統(諸如,可購自國際商業機器公司(International Business Machines Corporation)之POWER系列中之一者),或大型主機電腦系統。處理器系統102亦可為使用諸如以下各者之各種處理器之內嵌式處理器系統:ARM、PowerPC、Intel X86,或
與快取記憶體、記憶體控制器、本機儲存體、I/O匯流排集線器等等組合之任何其他處理器。
處理器系統102進一步包括經由I/O通道110而直接地(亦即,無任何介入器件)或間接地(亦即,經由至少一個中間器件)耦接至資料儲存系統120之輸入/輸出(I/O)配接器108。在各種實施例中,I/O通道可使用已知或未來開發之通信協定中之任一者或其組合,該等通信協定包括(例如)光纖通道(FC)、乙太網路FC(FCoE)、網際網路小型電腦系統介面(iSCSI)、輸送控制協定/網際網路協定(TCP/IP)、快速周邊組件互連(PCIe)等等。經由I/O通道110而傳達之I/O操作(IOP)包括供處理器系統102向資料儲存系統120請求資料的讀取IOP,及供處理器系統102請求資料儲存系統120中之資料儲存的寫入IOP。
在所說明實施例中,資料儲存系統120包括介面122,經由介面122,資料儲存系統120經由I/O通道110而接收及回應於IOP。介面122耦接至具有關聯快閃控制器記憶體126(例如,動態隨機存取記憶體(DRAM))之快閃控制器124(例如,特殊應用積體電路(ASIC)或場可程式化閘陣列(FPGA))。快閃控制器124另外耦接至具有關聯CPU記憶體130(例如,DRAM)之CPU 128,且進一步耦接至NAND快閃記憶體陣列140。在快閃控制器124被實施有FPGA的實施例中,CPU 128可在資料儲存系統120之啟動期間程式化及組態快閃控制器124。在啟動之後,在一般操作中,快閃控制器124經由I/O通道110及介面122而接收讀取及寫入IOP,以讀取儲存於NAND快閃記憶體陣列140中之資料及/或將資料儲存於NAND快閃記憶體陣列140中。快閃控制器124服務此等IOP,例如,藉由存取NAND快閃記憶體陣列140以自NAND快閃記憶體陣列140讀取已請求資料或將已請求資料寫入至NAND快閃記憶體陣列140中,或藉由存取與NAND快閃記憶體陣列140相關聯之快取記憶體(未說明)。
快閃控制器124實施提供邏輯至實體位址轉譯以使能夠存取NAND快閃記憶體陣列140內之特定記憶體位置的快閃轉譯層(flash translation layer,FTL)。一般而言,由快閃控制器124自主機器件(諸如,處理器系統102)接收之IOP含有資料將被存取(讀取或寫入)所在的邏輯區塊位址(LBA),及(若為寫入IOP)待儲存至資料儲存系統120之寫入資料。IOP亦可指定待存取資料之量(或大小)。亦可取決於由資料儲存系統120支援之協定及特徵而傳達其他資訊。如熟習此項技術者所知,NAND快閃記憶體(諸如,NAND快閃記憶體陣列140中使用之NAND快閃記憶體)因其建構而受到約束,使得可由讀取或寫入IOP存取之資料之最小區組(granule)固定於單一快閃記憶體頁面之大小,例如,16千位元組(kB)。由主機器件提供之LBA因此對應於邏輯位址空間內之頁面。快閃轉譯層將此LBA轉譯成被指派給NAND快閃記憶體陣列140中之對應實體位置的實體位址。快閃控制器124可執行位址轉譯及/或將邏輯位址與實體位址之間的映射儲存於邏輯至實體轉譯資料結構(諸如,轉譯資料表(TT)150)中,TT 150可便利地儲存於快閃控制器記憶體126中。
如圖1進一步所展示,快閃控制器124可維護一或多個額外資料結構以追蹤關於NAND快閃記憶體陣列140之資訊,此等資料結構亦可緩衝於快閃控制器記憶體126中。此等資料結構可包括(例如)識別NAND快閃記憶體陣列140中已被抹除之實體記憶體區塊的已抹除區塊清單(EBL)152、識別NAND快閃記憶體陣列140中可用於運用寫入IOP之寫入資料進行程式化之實體記憶體區塊的可用區塊佇列(ABQ),及識別經頻繁存取之LBA的熱清單156。熟習此項技術者應瞭解,在各種實施例中,快閃控制器124可將此等資料結構中之一或多者組合於一共同資料結構中及/或實施額外資料結構以管理NAND快閃記憶體陣列140。
NAND快閃記憶體陣列140可在各種實施例中採取許多形式。現在參看圖2至圖5,描繪根據本發明之NAND快閃記憶體陣列140內的實體記憶體之一個例示性配置。
如圖2所展示,NAND快閃記憶體陣列140可由三十二(32)個個別可定址NAND快閃記憶體儲存器件形成。在所說明實例中,快閃記憶體儲存器件M0a至M15b中之每一者採取板裝式快閃記憶體模組之形式,例如,單位階記憶體單元(SLC)、多位階記憶體單元(MLC)、三位階記憶體單元(TLC)或四位階記憶體單元(QLC)NAND快閃記憶體模組。三十二個NAND快閃記憶體模組係以兩個模組為一群組之十六個群組(M0a、M0b)至(M15a、M15b)而配置。出於實體定址方案之目的,兩個模組之每一群組形成一「通路(lane)」(有時亦被稱作「通道」),使得NAND快閃記憶體陣列140包括十六個通道或通路(通路0至通路15)。
在一較佳實施例中,該等個別通路中之每一者具有將其耦接至快閃控制器124之各別關聯匯流排。因此,藉由將快閃控制器124之通信引導至該等特定通信匯流排中之一者,快閃控制器124可將其通信引導至記憶體模組之通路中之一者。因為用於給定通路之每一通信匯流排獨立於用於其他通路之通信匯流排,所以快閃控制器124可發出命令且同時橫越各種通信匯流排而發送或接收資料,從而使快閃控制器124能夠同時或恰好幾乎同時存取對應於個別通路之記憶體模組。
現在參看圖3,說明可用以實施圖2之快閃記憶體模組M0a至M15b中之任一者的快閃記憶體模組300之例示性實施例。如圖3所展示,由快閃記憶體模組300提供之實體儲存位置被進一步再分成可經由晶片啟用(Chip Enable,CE)而定址及/或識別的實體位置。在圖3之實例中,每一快閃記憶體晶片300之實體記憶體被劃分成四個晶片啟用(CE0、CE1、CE2及CE3),每一晶片啟用具有由快閃控制器124確
證以使能夠存取對應CE內之實體記憶體位置或自對應CE內之實體記憶體位置存取的各別CE線。每一CE又被再分成多個晶粒(例如,晶粒0及晶粒1),每一晶粒具有兩個平面(例如,平面0及平面1)。每一平面表示區塊之集合(下文所描述),該等區塊由於快閃記憶體晶片之實體佈局而彼此實體上相關聯且利用共同電路系統(例如,I/O緩衝器)以用於執行各種操作,諸如,讀取及寫入操作。
如圖4至圖5進一步所展示,例示性平面400(其可用以實施圖3之快閃記憶體模組300內的平面中之任一者)包括(例如)2048個實體記憶體區塊。一般而言,區塊500為通常以實體方式彼此相關聯之實體頁面之集合。此關聯係使得一區塊被定義為可在NAND快閃記憶體陣列140內抹除之實體儲存位置之最小粒度(granularity)。在圖5之實施例中,每一區塊500包括(例如)256個實體頁面,其中一實體頁面被定義為用於讀取及寫入存取之最小個別可定址資料單位。在例示性系統中,資料之每一實體頁面具有用於資料儲存加用於下文較詳細地所描述之後設資料之額外儲存的共同容量(例如,16kB)。因此,逐頁面地將資料寫入至NAND快閃記憶體陣列140中或自NAND快閃記憶體陣列140讀取資料,但逐區塊地抹除資料。如圖5進一步所展示,每一區塊500較佳地包括頁面狀態資訊502,其將彼區塊500中之每一實體頁面之狀態指示為已淘汰(亦即,已撤回免於使用)或未淘汰(亦即,作用中或仍在使用中)。在各種實施中,PSI 502可收集至區塊500內之單一資料結構(例如,向量或資料表)中、分佈於區塊500內(例如,作為附加至每一實體頁面之一或多個後設資料位元),或維持於資料儲存系統120中之別處(例如,在快閃控制器記憶體126中之資料結構中)。
如上文所提及,資料儲存系統120通常不允許外部器件直接地定址及/或存取NAND快閃記憶體陣列140內之實體記憶體位置。取而代之,資料儲存系統120通常經組態以將單一連續邏輯位址空間呈現給
外部器件,因此允許主機器件自邏輯位址空間內之LBA讀取資料及將資料寫入至邏輯位址空間內之LBA,同時准許快閃控制器124及CPU 128控制與各種LBA相關聯之資料實際上在包含NAND快閃記憶體陣列140之實體記憶體位置中駐留之處。以此方式,可智慧地管理及最佳化NAND快閃記憶體陣列140之效能及使用壽命。
隨著發生至資料儲存系統120之寫入,對於快閃控制器124及CPU 128而言將有必要使儲存於NAND快閃記憶體陣列140中之抹除區塊中之一者的實體頁面中之一者中的資料無效。將接著使新資料與正被寫入之資料聯合,且最終儲存於NAND快閃記憶體陣列140中之不同位置中。接著可看出,頁面或頁面之部分將無效,且因此,NAND快閃記憶體陣列140之部分變得未使用。快閃控制器124及CPU 128將最終需要經由被稱為廢棄項目收集(garbage collection)之處理序而回收此空間。將基於包括特定抹除區塊內多少資料無效的數個因素來選擇該等抹除區塊。快閃控制器124將已抹除區塊之實體區塊位址(PBA)記錄於EBL 152中。有效資料將連同新寫入一起自主機讀取及寫入至自ABQ 154分配之區塊中。
因為由資料儲存系統120實施之快閃轉譯層使可用於主機器件之邏輯位址空間與NAND快閃記憶體陣列140內之實體記憶體隔離,所以NAND快閃記憶體陣列140之大小無需等於被呈現給主機器件之邏輯位址空間的大小。在大多數實施例中,有益的是呈現小於總可用實體記憶體之邏輯位址空間(亦即,過度佈建NAND快閃記憶體陣列140)。以此方式之過度佈建確保當邏輯位址空間被完全地利用時,即使在存在如上文所描述的某一量之無效資料的情況下,實體記憶體資源仍可用。除了尚未被回收之無效資料以外,經過度佈建之空間亦可用以確保即使在存在記憶體失敗及藉由使用資料保護方案(諸如,錯誤校正碼(ECC)、循環冗餘檢查(CRC),及同位檢查)而需要之記憶體
額外負荷的情況下仍存在足夠邏輯空間。
在一較佳實施例中,資料通常被寫入至NAND快閃記憶體陣列140之關聯實體頁面群組,其在本文中被稱作「頁面等量磁碟區」。雖然儲存至NAND快閃記憶體陣列140中之各種頁面等量磁碟區之長度可且較佳地確實變化,但在一項實施例中,每一頁面等量磁碟區包括寫入資料(通常由主機器件提供)之兩個至十五個資料頁面,及用以儲存用於寫入資料之資料保護資訊的一個額外頁面(「資料保護頁面」)。舉例而言,圖6說明包括N個資料頁面(亦即,Dpage00至DpageN-1)及一個資料保護頁面(亦即,PpageN)之例示性頁面等量磁碟區600。
圖7說明頁面等量磁碟區700內之每一資料頁面的例示性格式。在此實例中,資料頁面700包括16kB資料欄位702,以及針對描述資料頁面之後設資料之額外欄位。在所說明實例中,此等後設資料欄位包括含有資料頁面700之LBA的LBA欄位704、含有針對資料欄位702與LBA欄位704之組合所計算之CRC值的CRC欄位706,及含有(在所說明實例中)自資料欄位702、LBA欄位704與CRC欄位706之內容組合所計算之ECC值的ECC欄位708。
圖8描繪頁面等量磁碟區800之資料保護頁面的例示性格式。在所描繪實例中,資料保護頁面800包括含有頁面等量磁碟區600中之資料頁面700之資料欄位702之內容的逐位元互斥或(XOR)的資料XOR欄位802。資料保護頁面800進一步包括含有頁面等量磁碟區600中之資料頁面700之LBA欄位704之逐位元XOR的LBA XOR欄位804。資料保護頁面800最後包括用於分別儲存用於資料保護頁面800之CRC值及ECC值的CRC欄位806及ECC欄位808。此保護方案通常被稱作RAID 5,此係因為同位檢查欄位將不總是位於一個特定快閃平面上。然而,應瞭解,可使用諸如雷德-所羅門(Reed-Solomon)之替代資料保護
方案。
用於上文所描述之資料頁面及資料保護頁面的格式使用多種不同保護機制來保護儲存於頁面等量磁碟區中之資料。首先,在每一資料頁面中使用ECC位元會允許校正快閃頁面內之某一數目個位元錯誤。取決於所使用之ECC方法,可有可能校正NAND快閃頁面內之數百個位元或甚至數千個位元。在執行ECC檢查及校正之後,使用已校正CRC欄位以驗證已校正資料。在一起使用的情況下,此兩種機制允許僅使用本機頁面內資訊來校正相對良性之錯誤且偵測較嚴重之錯誤。若(例如)歸因於用以儲存資料頁面之實體頁面的失敗而在資料頁面中發生不可校正錯誤,則可自用於頁面等量磁碟區之其他資料頁面及資料保護頁面重新建構失敗資料頁面之資料欄位及LBA欄位的內容。
雖然頁面等量磁碟區之資料頁面及資料保護頁面被儲存所在的實體記憶體位置將在NAND快閃記憶體陣列140內變化,但在一項實施例中,包含給定頁面等量磁碟區之資料頁面及資料保護頁面較佳地儲存於經選取以最佳化資料儲存系統120之整體操作的實體記憶體位置中。舉例而言,在一些實施例中,儲存包含頁面等量磁碟區之資料頁面及資料保護頁面,使得使用不同實體通路以儲存資料頁面及資料保護頁面中之每一者。此等實施例支援對頁面等量磁碟區之有效存取,此係因為快閃控制器124可同時或幾乎同時存取包含頁面等量磁碟區之全部資料頁面。應注意,頁面至通路之指派無需循序(亦即,資料頁面可以任何次序儲存於任何通路中),且除非頁面等量磁碟區為完整長度之頁面等量磁碟區(例如,含有十五個資料頁面及一個資料保護頁面),否則用以儲存頁面等量磁碟區之通路無需鄰近。
在已描述資料儲存系統120之一般實體結構及操作的情況下,現在描述資料儲存系統120之某些操作態樣,包括關於分配區塊以用於
程式化、寫入(程式化)NAND快閃記憶體陣列140之頁面且自NAND快閃記憶體陣列140讀取資料的態樣。
現在參看圖9,說明例示性方法之高階邏輯流程圖,藉由該方法,使NAND快閃記憶體陣列140中之實體記憶體區塊可用於分配以用於運用寫入資料進行程式化。該方法可(例如)由快閃控制器124及/或CPU 128以硬體、韌體、軟體或其組合予以執行。出於解釋簡單起見,在下文中將假定處理序係由快閃控制器124執行。如同本文所提供之其他流程圖,以邏輯而非嚴格以時間順序之次序來呈現步驟,且在一些實施例中,可以替代次序或同時執行該等步驟中之至少一些。
當圖9之處理序在區塊900處開始時,快閃控制器124已經由廢棄項目收集處理序而運用識別NAND快閃記憶體陣列140中的實體記憶體之已抹除區塊的複數個輸入項目來填入已抹除區塊清單(EBL)152。圖10說明EBL 152之一項例示性實施例。在此例示性實施例中,EBL 152包括複數個輸入項目1000,每一輸入項目1000藉由其PBA 1002來識別NAND快閃記憶體陣列140中的實體記憶體之各別已抹除區塊。每一輸入項目1000較佳地進一步包括指示由PBA 1002識別之區塊之抹除時間的抹除時間戳記1004。
返回至圖9,處理序自區塊900進行至區塊902,區塊902說明快閃控制器124自EBL 152選取輸入項目1000,例如,下一循序輸入項目或最舊輸入項目。在區塊904處,快閃控制器124計算由已選取輸入項目1000識別之區塊之當前停滯時間,例如,藉由計算當前時間(或在替代實施例中,頁面之先前抹除或程式化之時間)與由已選取輸入項目1000指定之抹除時間戳記1004之間的差。在區塊906處,快閃控制器124判定是否已滿足針對區塊之停滯時間臨限值(例如,在區塊904處計算之停滯時間是否等於及/或大於停滯時間臨限值)。在各種實施例中,停滯時間臨限值可固定(例如,由快閃記憶體製造者預定),或
遍及含有記憶體區塊之快閃模組300之操作壽命而可變。另外,在至少一些實施例中,針對不同區塊之停滯時間可不同。
回應於已滿足區塊之停滯時間臨限值的判定,快閃控制器124至少將PBA 1002自EBL 152中之已選取輸入項目1000傳送至可用區塊佇列(ABQ)154之輸入項目以使區塊可用於程式化,且使EBL 152中之已選取輸入項目1000空閒(區塊908)。圖11說明包括複數個輸入項目1100之ABQ 154之一項例示性實施例,複數個輸入項目1100各自儲存NAND快閃記憶體124中可用於程式化之實體記憶體區塊的PBA 1102、儲存時序資訊(T)1104,且視情況儲存關於已識別區塊之額外資訊1106。在各種實施例中,時序資訊1104可包括在區塊904處計算之當前停滯時間、指示區塊906處之停滯時間臨限值判定之結果的旗標,及/或與EBL 152中之區塊相關聯的抹除時間戳記1004。
若不滿足針對由已選取輸入項目1000識別之區塊之停滯時間臨限值(如由區塊906處之否定判定所表示),則快閃控制器124可基於一或多個動態因素來選擇仍然使區塊可用於程式化。舉例而言,如區塊910處所展示,快閃控制器124可逐區塊地決定基於快閃控制器124是否需要可用於ABQ 154中之程式化的更多區塊(例如,如由ABQ 154之低填充臨限值之高至低交叉、寫入IOP之接收速率及/或資料儲存系統120之當前工作負載之其他度量所指示)來放鬆停滯時間。另外,快閃控制器124可替代地或另外基於針對經頻繁存取之(「熱」)位址(例如,如由熱清單156中存在之位址所指示)的一或多個寫入IOP之接收來放鬆區塊之停滯時間。回應於區塊910處之用以放鬆實體記憶體之已識別區塊之停滯時間的判定,處理序轉至已被描述之區塊908。否則,圖9之處理序返回至已被描述之區塊902及後繼區塊。
現在參看圖12,說明在資料儲存系統120中執行寫入操作之例示性方法的高階邏輯流程圖。該方法可(例如)由快閃控制器124及/或
CPU 128以硬體、韌體、軟體或其組合予以執行。出於解釋簡單起見,在下文中將假定處理序係由快閃控制器124執行。
該方法在區塊1200處開始且接著進行至區塊1202,區塊1202說明快閃控制器124等待自主機器件(諸如,處理器系統102)接收寫入IOP。寫入IOP包括(例如)待寫入至NAND快閃記憶體陣列140中之資料,及主機器件想要儲存該資料所在的目標LBA之指示。回應於寫入IOP之接收,處理序自區塊1202進行至區塊1204至1206,此說明快閃控制器124判定(例如,藉由參考邏輯至實體位址轉譯資料表150)寫入IOP中指示之目標LBA當前是否映射至實體記憶體頁面,且若是,則改變當前與目標LBA相關聯之每一資料頁面的狀態以指示其不再有效。如此項技術中所知,無效頁面(及含有無效頁面之區塊)最終將被抹除,且再次可用於分配以藉由快閃控制器124之廢棄項目收集處理序來儲存資料。
在區塊1208處,快閃控制器124分配實體頁面以形成用以儲存寫入資料之頁面等量磁碟區。如區塊1210處所指示,快閃控制器124接著開始將寫入資料之第一資料頁面儲存至被分配給頁面等量磁碟區之第一實體頁面。在區塊1212至1214處,快閃控制器124另外判定用於頁面之後設資料,且將該後設資料儲存於含有該頁面之記憶體區塊中,在該頁面自身中抑或在記憶體區塊中之別處(例如,作為PSI 502之部分)。舉例而言,在區塊1212處,快閃控制器124計算及儲存用於實體記憶體頁面之停滯時間資訊,其中可利用自抹除至抹除、自程式化至程式化、自抹除至程式化或自程式化至抹除之間隔中的一或多者來定義停滯時間資訊。在至少一些實施例中,停滯時間資訊可包括指示在程式化頁面之前是否滿足針對頁面之停滯時間臨限值的旗標。區塊1212處使用之停滯時間臨限值可與圖9之區塊906處使用的停滯時間臨限值相同或不同,且可另外為動態的且隨著時間而改變,例如,與
觀測殘餘位元錯誤率(RBER)成正相關。在至少一些實施例中,停滯時間資訊可替代地或另外包括頁面之停滯時間,及/或頁面被程式化的時間之時間戳記。如區塊1214處進一步所展示,後設資料可進一步包括用於資料頁面之CRC值及ECC值,其可由快閃控制器124儲存於資料頁面之CRC欄位706及ECC欄位708中。在區塊1215處,快閃控制器124亦計算用於資料頁面之同位檢查資訊。
在區塊1216處,快閃控制器124判定全部寫入資料是否已寫入至NAND快閃記憶體系統140中。若快閃控制器124判定少於全部之寫入資料已寫入至NAND快閃記憶體系統140,則處理序返回至已被描述之區塊1210。回應於判定全部寫入資料已儲存於NAND快閃記憶體系統140中(及判定針對頁面等量磁碟區中之全部資料頁面的同位檢查計算完成),快閃控制器124將用於頁面等量磁碟區之同位檢查資訊儲存於頁面等量磁碟區之資料保護頁面中(區塊1218)。快閃控制器124亦更新邏輯至實體位址轉譯資料表以使用以儲存寫入資料之實體頁面與由主機器件指示之LBA相關聯(區塊1220)。此後,圖12之處理序在區塊1222處結束。
應注意,至少區塊1208、1210、1212及1214將包括檢查實體頁面之程式化是否正確地完成的步驟。若快閃控制器124判定寫入未正確地完成,則快閃控制器124將使用各種復原技術,諸如,完成頁面等量磁碟區(包括同位檢查),及將頁面等量磁碟區重新建置於新位置中。若寫入不成功,則快閃控制器124亦可以與讀取不成功(如下文所論述)時相同之方式來淘汰寫入失敗所針對的實體頁面。
現在參看圖13,說明在一項實施例中重新定位不滿足停滯時間臨限值之頁面之例示性方法的高階邏輯流程圖。該方法可(例如)由快閃控制器124及/或CPU 128以硬體、韌體、軟體或其組合予以執行。出於解釋簡單起見,在下文中將假定處理序係由快閃控制器124執
行。
圖13之處理序在區塊1300處開始且接著進行至區塊1302,區塊1302說明快閃控制器124選取讀取NAND快閃記憶體陣列140中儲存有效資料頁面之下一實體記憶體頁面。區塊1302處執行之選取可(例如)藉由當快閃控制器124並不完全地忙於服務處理器系統102之讀取及寫入IOP時操作的背景讀取器處理序而進行。在區塊1304處,快閃控制器124判定是否滿足針對頁面之停滯時間臨限值。在各種實施例中,區塊1304處使用之停滯時間臨限值可與圖9之區塊906及圖12之區塊1212處使用的停滯時間臨限值相同或不同。在圖12之區塊1212處儲存之停滯時間資訊包括指示是否滿足頁面之停滯時間之旗標的實施例中,區塊1304處之判定可包括檢查該旗標。在至少一些實施例中,區塊1304處說明之判定可包括自含有記憶體頁面之記憶體區塊讀取停滯時間,及/或自儲存於含有記憶體頁面之記憶體區塊中的時間戳記計算停滯時間且接著比較停滯時間與停滯時間臨限值。
回應於區塊1304處之滿足針對已選取實體記憶體頁面之停滯時間臨限值的判定,處理序返回至已被描述之區塊1302。然而,若快閃控制器124在區塊1304處判定不滿足記憶體頁面之停滯時間臨限值(例如,如上文參看圖9之區塊910所論述,放鬆針對頁面之停滯時間),則圖13之處理序自區塊1304進行至區塊1306。在區塊1306處,快閃控制器124將當前選取之實體記憶體頁面及同一記憶體區塊之全部較舊有效頁面排入佇列以用於重新定位儲存於其中之資料頁面。在快閃控制器124循序地寫入至區塊頁面的實施例中,快閃控制器124將較舊有效頁面識別為在當前選取之頁面之前的區塊之全部有效頁面。如區塊1308處所展示,快閃控制器124亦可視情況評估同一記憶體區塊的最近較多程式化之頁面以用於重新定位儲存於其中之資料頁面,例如,藉由比較此等頁面之停滯時間資訊與停滯時間臨限值。快閃控制器
124將經識別用於區塊1308處之重新定位的任何最近較多程式化之頁面新增至重新定位佇列。在一些實施例中,快閃控制器124以區塊中的最近最多寫入(例如,最高)之有效頁面開始區塊1302處描繪之讀取操作,且經由區塊之頁面向後工作至最近最少寫入(例如,最低)之有效頁面。在此等實施例中,可省略選用的區塊1308。
在區塊1310處,快閃控制器124將儲存於重新定位佇列中識別之實體頁面中的資料頁面重新定位至新實體頁面,且將舊實體頁面標記為無效,例如,在PSI 502中。資料頁面被重新定位至的新實體頁面可在同一實體記憶體區塊抑或不同實體記憶體區塊中,但較佳地為滿足停滯時間臨限值所針對之頁面。快閃控制器124可將區塊1310處描繪的資料頁面之重新定位作為低優先權任務而執行,該低優先權任務係在不以其他方式需要資料儲存系統120之所需資源來服務處理系統102之讀取及寫入IOP的串流時執行。如區塊1312處所展示,隨著重新定位資料頁面,快閃控制器124運用每一已重新定位資料頁面之新LBA至PBA映射來更新轉譯資料表150。在區塊1312之後,圖13之處理序在已被描述之區塊1302處繼續。
現在參看圖14,說明在資料儲存系統120中執行讀取操作之例示性方法的高階邏輯流程圖,其中可基於頁面來淘汰實體記憶體。該方法可(例如)由快閃控制器124及/或CPU 128以硬體、韌體、軟體或其組合予以執行。出於解釋簡單起見,在下文中將假定處理序係由快閃控制器124執行。
所說明處理序在區塊1400處開始且接著進行至區塊1402,區塊1402說明快閃控制器124等待自外部主機器件(諸如,處理器系統102)接收讀取IOP。一般而言,讀取IOP將指定由主機器件請求的目標資料頁面之LBA。回應於讀取IOP之接收,快閃控制器124轉譯LBA(例如,藉由參考快閃控制器記憶體126中之邏輯至實體轉譯資料表(TT)
150)以判定儲存已請求資料頁面之實體頁面之實體位址(區塊1404)。一旦判定實體位址,快閃控制器124就藉由發出讀取請求以自與實體位址相關聯之實體頁面讀取目標資料頁面而利用實體位址來存取目標資料頁面(區塊1406)。讀取IOP可請求各種大小之資料,但出於簡化起見,假定圖14之處理序針對由讀取IOP參考之每一資料頁面被演練一次。
在區塊1410處,快閃控制器124計算用於資料頁面之ECC,且比較已計算ECC與ECC欄位708之ECC內容以判定資料頁面是否含有資料錯誤。此等資料錯誤可歸因於任何數目個問題,包括實體器件之氧化物層中的截留電荷或已自浮動閘極洩漏之電荷。此等錯誤可本質上為永久的,使得單元不再能夠正確地儲存及讀取資料,或錯誤可歸因於與由鄰近單元之寫入或讀取造成之資料保留或電雜訊相關的問題。當單元被抹除且接著被重寫時將不存在此等錯誤。真實軟體錯誤(soft error)為實質上隨機的,且通常並不與NAND快閃記憶體陣列140之任何特定實體頁面、區塊或其他實體區域唯一地相關聯。另一方面,硬體錯誤(hard error)為由實體失敗造成的一或多個資料位元之損毀。硬體錯誤可由多種因素造成,該等因素包括但不限於給定記憶體晶片內之一或多個組件的實體失敗(諸如,電荷泵之失敗)、整個記憶體晶片或用於彼晶片之外部支撐結構的實體失敗(例如,至晶片之電力線或位址線的斷裂)、由於環境因素(例如,過度溫度、磁場、濕度等等)而引起的晶片之全部或部分的實體失敗。一般而言,因為硬體錯誤起因於記憶體系統之實體結構,所以硬體錯誤係與記憶體晶片之特定集合、特定記憶體晶片或晶片內之特定實體區域(諸如,CE、平面、區塊或頁面)唯一地相關聯。
回應於區塊1410處的資料頁面不含有資料錯誤之判定,處理序轉至下文所描述之區塊1430。然而,回應於區塊1410處的資料頁面含
有資料錯誤之判定,若可能(例如,若在碼字內存在50個錯誤位元且ECC能夠校正碼字內之大於50個錯誤位元),則快閃控制器124利用ECC來校正資料頁面中之資料錯誤。在區塊1414處,快閃控制器124判定是否已利用ECC來校正已偵測資料錯誤。若是,則處理序自區塊1414進行至下文所描述之區塊1430。另一方面,若快閃控制器124在區塊1414處判定資料錯誤為不可校正的,則快閃控制器124進一步在區塊1415處判定儲存發生錯誤的資料頁面之實體頁面是否應被淘汰免於使用。可(例如)基於是否滿足儲存資料頁面之實體頁面的停滯時間臨限值及/或基於針對實體頁面之一或多個健康情況分數(例如,來自含有實體頁面之給定實體記憶體區域之資料錯誤的頻率或數目,及/或針對含有實體頁面之給定實體記憶體區域的寫入/抹除循環計數)來進行區塊1415處描繪之判定。舉例而言,快閃控制器124可自不滿足實體頁面之停滯時間臨限值的事實推斷錯誤可起因於運用放鬆之停滯時間來程式化實體頁面,而非起因於記憶體單元或電路之實體失敗。回應於區塊1415處的實體頁面應被淘汰免於使用之判定,處理序進行至下文所描述之區塊1416。另一方面,若快閃控制器124判定實體頁面不應被淘汰,則處理序轉至區塊1417,區塊1417說明快閃控制器124藉由記錄實體頁面中之不可校正錯誤的發生來更新實體頁面之健康情況分數。此後,處理序轉至下文所描述之區塊1432。
在區塊1416處,快閃控制器124僅將儲存目標資料頁面之實體頁面標記為已淘汰(亦即,不再可用於分配以儲存新頁面等量磁碟區之資料頁面),例如,在含有彼實體頁面之區塊的PSI 502中。因此,與逐區塊地淘汰NAND快閃記憶體中之實體記憶體的先前技術系統對比,資料儲存系統120可回應於單一資料錯誤之偵測而逐頁面地淘汰NAND快閃記憶體陣列140中之實體記憶體。應瞭解,實體記憶體之實體頁面(例如,16kB)而非區塊(例如,4MB)的淘汰節省實體記憶體
資源,從而增強效能且延長NAND快閃記憶體陣列140之壽命。然而,由於頁面淘汰,NAND快閃記憶體系統140之實體記憶體區塊的有效大小將變化。
在執行淘汰之前,此例示性實施等待直至實體頁面具有含有不可校正錯誤之一或多個碼字為止。然而,某些實施可選擇在不可校正性之前的某一點處淘汰頁面。舉例而言,若一實施遍及大約1024個位元組使用BCH ECC且可校正50個錯誤位元,則快閃控制器124可決定當不可校正位元之數目達到小於50之數目(比如,48)時淘汰頁面。另外,熟習此項技術者亦應知道,取決於所使用之快閃技術,彼快閃控制器124可選擇在淘汰頁面之前執行區塊1412至1414處之額外步驟。舉例而言,快閃製造者可要求快閃控制器124改變用於彼頁面或區塊之某些參數且執行該頁面之重新讀取。若資料仍為可校正的,則快閃控制器124將遵循來自區塊1414之否定路徑。以此方式,區塊1412至1414可含有本文未描述之判定頁面含有硬體錯誤或真實不可校正錯誤的許多額外步驟。
在區塊1418處,快閃控制器124藉由參考PSI 502來進一步判定含有區塊1416處淘汰之頁面之實體記憶體區域中的實體記憶體之已淘汰頁面的數目現在是否滿足(例如,大於及/或等於)臨限值T1。第一臨限值T1所屬的實體記憶體區域可為(例如)區塊、平面、晶粒、CE或整個快閃模組。回應於快閃控制器124在區塊1418處判定不滿足臨限值T1,處理序轉至區塊1430。然而,回應於快閃控制器124在區塊1418處判定滿足臨限值T1,快閃控制器124將含有已淘汰實體頁面之整個實體記憶體區域標記為已淘汰且因此不可用於分配以儲存新頁面等量磁碟區(區塊1420)。若在區塊1418至1420處判定淘汰所針對的實體記憶體區域為小於整個快閃記憶體模組的區域,則快閃控制器124可視情況判定是否淘汰含有已淘汰實體頁面之較大實體記憶體區域。亦可
判定,現在,在NAND快閃記憶體系統140內存在太多已淘汰記憶體資源以致於不能夠達成所需效能位準,且快閃控制器124可將回應發送至使用者,該回應指示是時候替換含有NAND快閃記憶體系統140之實體資源。處理序接著進行至區塊1432。
在區塊1430處,快閃控制器124嘗試藉由計算循環冗餘碼且比較已計算CRC與CRC欄位706中含有之CRC來驗證目標資料頁面之資料欄位702及LBA欄位704。回應於資料頁面之成功驗證,處理序進行至下文所描述之區塊1434。然而,回應於區塊1430處之CRC驗證之失敗,或結合區塊1417、1418及/或1420處描述之處理,快閃控制器124讀取整個頁面等量磁碟區,且自頁面等量磁碟區之其他資料頁面及資料保護頁面復原目標資料頁面之正確內容(區塊1432)。另外,快閃控制器124將頁面等量磁碟區(包括已復原目標資料頁面)移動至NAND快閃記憶體系統120中之不同實體位置,且使形成舊頁面等量磁碟區之實體頁面失效(若此等頁面未被淘汰)。自區塊1430或區塊1432,處理序進行至區塊1434,區塊1434說明快閃控制器124將目標資料頁面傳輸至請求主機器件。此後,圖14之處理序在區塊1440處終止。可取決於處理序中之其他操作而在某一稍後未指定時間再次執行圖14之方法。
如上文所提及,圖14中闡述之操作次序為例示性的,且預期操作次序不同於上文所闡述之操作次序的實施例。舉例而言,預期快閃控制器124在完成CRC驗證之前將資料頁面傳輸至主機器件且此後傳輸資料頁面是否有效之指示的實施例。又,在一些實施例中,讀取IOP可存取多個資料頁面而非單一資料頁面。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例的系統、方法及電腦程式產品之可能實施的架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示程式碼之一模組、區段或部
分,其包含用於實施所指定邏輯功能之一或多個可執行指令。亦應注意,在一些替代實施中,區塊中提及之功能可不以諸圖中提及之次序發生。舉例而言,事實上,取決於所涉及之功能性,連續地展示之兩個區塊可實質上同時執行,或該等區塊有時可以相反次序執行。亦應注意,方塊圖及/或流程圖說明之每一區塊以及方塊圖及/或流程圖說明中之區塊組合可藉由執行所指定功能或動作的基於特殊用途硬體之系統或特殊用途硬體與電腦指令之組合予以實施。
如已描述,在至少一項實施例中,一種資料儲存系統包括一非揮發性記憶體陣列,及耦接至該記憶體陣列之一控制器。該控制器針對該記憶體陣列中之複數個有效頁面中之每一者記錄每一有效頁面之一停滯時間的一各別指示。
在至少一項實施例中,一種資料儲存系統包括一非揮發性記憶體陣列,該非揮發性記憶體陣列包括複數個實體記憶體區域。該資料儲存系統進一步包括一控制器,該控制器控制對該記憶體陣列之讀取及寫入存取,且淘汰該複數個實體記憶體區域中之已選取區域免於使用。該控制器基於儲存於該複數個實體記憶體區域當中之一特定區域中的資料之一停滯時間來判定是否淘汰該特定區域免於使用。
在至少一項實施例中,一種資料儲存系統包括一非揮發性記憶體陣列,該非揮發性記憶體陣列包括複數個實體記憶體區塊,每一區塊包括多個頁面。該資料儲存系統進一步包括一控制器,該控制器維護識別該記憶體陣列中當前未儲存有效資料之實體記憶體區塊之一資料結構。回應於指定一位址及寫入資料之一寫入輸入/輸出操作(IOP)的接收,該控制器在滿足針對一特定區塊之一停滯時間臨限值之前自該資料結構中識別之該等區塊當中選取該特定區塊、運用該寫入資料來程式化該已選取區塊內之一頁面,且使該位址與該已選取區塊相關聯。
雖然已如參考一或多個較佳實施例所描述而特定地展示本發明,但熟習此項技術者應理解,在不脫離本發明之精神及範疇的情況下,可在本發明中作出形式及細節之各種改變。舉例而言,儘管已關於包括引導某些功能之快閃控制器的資料儲存系統而描述態樣,但應理解,本發明可替代地被實施為包括儲存程式碼之儲存器件的程式產品,該程式碼可由處理器處理以執行此等功能或使此等功能被執行。如本文所使用,「儲存器件」經特定地定義為僅包括法定製品且排除暫時性傳播媒體本身。
另外,儘管已描述包括NAND快閃記憶體之使用的實施例,但應瞭解,本文中之本發明並不限於與NAND快閃記憶體一起使用,而是適用於任何其他非揮發性隨機存取記憶體(NVRAM)技術。舉例而言,所揭示技術可應用於相變記憶體(PCM)、磁阻性RAM(MRAM)及電阻性RAM(RRAM)。
上文所描述之諸圖以及下文對特定結構及功能之書面描述未被呈現為限制申請人已發明之事項的範疇或隨附申請專利範圍之範疇。實情為,諸圖及書面描述經提供以教示任何熟習此項技術者進行及使用尋求專利保護所針對的本發明。熟習此項技術者應瞭解,出於清楚及理解起見而描述或展示本發明之商用實施例的並非全部特徵。熟習此項技術者亦應瞭解,併有本發明之態樣的實際商用實施例之開發將需要眾多實施特定決策以達成開發者針對商用實施例之最終目標。此等實施特定決策可包括且很可能不限於符合系統相關約束、商業相關約束、政府相關約束及其他約束,該等約束可按照特定實施、按照特定位置且隨著時間而變化。雖然開發者之努力在絕對意義上可為複雜的且耗時的,但此等努力對於受益於本發明之熟習此項技術者而言將仍然為例行工作。必須理解,本文所揭示及教示之本發明容許眾多及各種修改及替代形式。最後,單數術語(諸如但不限於「一」)之使用
並不意欲為對項目之數目的限制。
100‧‧‧資料處理環境
102‧‧‧處理器系統
104‧‧‧處理器
106‧‧‧本機儲存體
108‧‧‧輸入/輸出(I/O)配接器
110‧‧‧I/O通道
120‧‧‧資料儲存系統
122‧‧‧介面
124‧‧‧快閃控制器
126‧‧‧快閃控制器記憶體
128‧‧‧CPU
130‧‧‧CPU記憶體
140‧‧‧NAND快閃記憶體陣列/NAND快閃記憶體系統
150‧‧‧轉譯資料表(TT)
152‧‧‧已抹除區塊清單(EBL)
154‧‧‧可用區塊佇列(ABQ)
156‧‧‧熱清單
Claims (20)
- 一種資料儲存系統,其包含:一控制器,其經組態以耦接至一非揮發性記憶體陣列,其中該控制器針對該記憶體陣列中之複數個有效頁面中之每一者記錄該每一有效頁面之一停滯時間的一各別指示。
- 如請求項1之資料儲存系統,其中該控制器將該停滯時間之該指示記錄於該記憶體陣列中。
- 如請求項2之資料儲存系統,且其進一步包含:該非揮發性記憶體陣列,其中該控制器將該停滯時間之該指示記錄於該每一有效頁面中。
- 如請求項1之資料儲存系統,其中用於該複數個頁面中之每一者的該指示包含以下各者中之一或多者:含有該每一頁面之一區塊之一抹除的一時間戳記、該每一頁面之一程式化的一時間戳記、該每一頁面之一停滯時間,及指示該每一頁面是否滿足一停滯時間臨限值之一旗標。
- 如請求項1之資料儲存系統,其中:該控制器維護識別該記憶體陣列中已被抹除但自抹除以來未被程式化之區塊的一已抹除區塊資料結構;及該控制器進一步與該已抹除區塊資料結構相關聯地記錄該已抹除區塊資料結構中識別之該等區塊中之每一者之抹除的一時間戳記。
- 如請求項1之資料儲存系統,其中:該控制器維護識別該記憶體陣列中可用於程式化之區塊的一可用區塊資料結構;及該控制器進一步與該可用區塊資料結構相關聯地記錄該已抹 除區塊資料結構中識別之該等區塊中之每一者之該停滯時間的一指示。
- 如請求項1之資料儲存系統,其中:該控制器在針對由該可用區塊資料結構識別之該等區塊當中的一特定區塊之一特定頁面滿足一停滯時間臨限值之前基於針對該特定頁面之一健康情況度量來程式化該特定頁面。
- 一種程式產品,其包含:一儲存器件;及程式碼,其儲存於該儲存器件中,其中該程式碼在由控制一資料儲存系統之一非揮發性記憶體陣列的一控制器執行時使該控制器針對該記憶體陣列中之複數個有效頁面中之每一者記錄該每一有效頁面之一停滯時間的一各別指示。
- 如請求項8之程式產品,其中該控制器將該停滯時間之該指示記錄於該記憶體陣列中。
- 如請求項9之程式產品,其中該控制器將該停滯時間之該指示記錄於該每一有效頁面中。
- 如請求項8之程式產品,其中用於該複數個頁面中之每一者的該指示包含以下各者中之一或多者:含有該每一頁面之一區塊之一抹除的一時間戳記、該每一頁面之一程式化的一時間戳記、該每一頁面之一停滯時間,及指示該每一頁面是否滿足一停滯時間臨限值之一旗標。
- 如請求項8之程式產品,其中該程式碼在由該控制器執行時進一步使:該控制器維護識別該記憶體陣列中已被抹除但自抹除以來未被程式化之區塊的一已抹除區塊資料結構;及該控制器進一步與該已抹除區塊資料結構相關聯地記錄該已 抹除區塊資料結構中識別之該等區塊中之每一者之抹除的一時間戳記。
- 如請求項8之程式產品,其中該程式碼在由該控制器執行時進一步使:該控制器維護識別該記憶體陣列中可用於程式化之區塊的一可用區塊資料結構;及該控制器進一步與該可用區塊資料結構相關聯地記錄該已抹除區塊資料結構中識別之該等區塊中之每一者之該停滯時間的一指示。
- 如請求項8之程式產品,其中該程式碼在由該控制器執行時進一步使:該控制器在針對由該可用區塊資料結構識別之該等區塊當中的一特定區塊之一特定頁面滿足一停滯時間臨限值之前基於針對該特定頁面之一健康情況度量來程式化該特定頁面。
- 一種在包括記憶體陣列之一資料儲存系統中之方法,該方法包含:一控制器控制自一非揮發性記憶體陣列之讀取及至該非揮發性記憶體陣列之寫入;及該控制器針對該記憶體陣列中之複數個有效頁面中之每一者記錄該每一有效頁面之一停滯時間的一各別指示。
- 如請求項15之方法,其中該記錄包含該控制器將該停滯時間之該指示記錄於該記憶體陣列中。
- 如請求項16之方法,其中該記錄包含該控制器將該停滯時間之該指示記錄於該每一有效頁面中。
- 如請求項15之方法,其中用於該複數個頁面中之每一者的該指示包含以下各者中之一或多者:含有該每一頁面之一區塊之一 抹除的一時間戳記、該每一頁面之一程式化的一時間戳記、該每一頁面之一停滯時間,及指示該每一頁面是否滿足一停滯時間臨限值之一旗標。
- 如請求項15之方法,且其進一步包含:該控制器維護識別該記憶體陣列中已被抹除但自抹除以來未被程式化之區塊的一已抹除區塊資料結構;且該方法進一步包含該控制器進一步與該已抹除區塊資料結構相關聯地記錄該已抹除區塊資料結構中識別之該等區塊中之每一者之抹除的一時間戳記。
- 如請求項15之方法,且其進一步包含:該控制器維護識別該記憶體陣列中可用於程式化之區塊的一可用區塊資料結構;及該控制器進一步與該可用區塊資料結構相關聯地記錄該已抹除區塊資料結構中識別之該等區塊中之每一者之該停滯時間的一指示。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/100,122 US9262316B2 (en) | 2013-12-09 | 2013-12-09 | Recording dwell time in a non-volatile memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201535114A true TW201535114A (zh) | 2015-09-16 |
TWI594120B TWI594120B (zh) | 2017-08-01 |
Family
ID=52232224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103138435A TWI594120B (zh) | 2013-12-09 | 2014-11-05 | 用於記錄非揮發性記憶體系統中之停滯時間之系統、方法及程式產品 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9262316B2 (zh) |
TW (1) | TWI594120B (zh) |
WO (1) | WO2015087184A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291374A (zh) * | 2016-03-31 | 2017-10-24 | 慧荣科技股份有限公司 | 纪录数据区块的使用时间的方法及其装置 |
TWI634419B (zh) * | 2016-04-15 | 2018-09-01 | 美光科技公司 | 記憶體裝置及用於操作記憶體的方法 |
US10110255B2 (en) | 2016-04-27 | 2018-10-23 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US10133664B2 (en) | 2016-04-27 | 2018-11-20 | Silicon Motion Inc. | Method, flash memory controller, memory device for accessing 3D flash memory having multiple memory chips |
TWI643062B (zh) * | 2016-04-27 | 2018-12-01 | 慧榮科技股份有限公司 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
US10157098B2 (en) | 2016-04-27 | 2018-12-18 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
US10236908B2 (en) | 2016-04-27 | 2019-03-19 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
US10289487B2 (en) | 2016-04-27 | 2019-05-14 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US10325668B2 (en) | 2017-04-05 | 2019-06-18 | Micron Technology, Inc. | Operation of mixed mode blocks |
CN111737019A (zh) * | 2020-08-31 | 2020-10-02 | 西安芯瞳半导体技术有限公司 | 一种显存资源的调度方法、装置及计算机存储介质 |
US11323133B2 (en) | 2016-04-27 | 2022-05-03 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201322075D0 (en) | 2013-12-13 | 2014-01-29 | Ibm | Device for selecting a level for at least one read voltage |
US9563373B2 (en) | 2014-10-21 | 2017-02-07 | International Business Machines Corporation | Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management |
US10365859B2 (en) | 2014-10-21 | 2019-07-30 | International Business Machines Corporation | Storage array management employing a merged background management process |
US10339048B2 (en) * | 2014-12-23 | 2019-07-02 | International Business Machines Corporation | Endurance enhancement scheme using memory re-evaluation |
US9990279B2 (en) | 2014-12-23 | 2018-06-05 | International Business Machines Corporation | Page-level health equalization |
US9921909B2 (en) * | 2015-07-03 | 2018-03-20 | Qualcomm Incorporated | Systems and methods for providing error code detection using non-power-of-two flash cell mapping |
US9552163B1 (en) | 2015-07-03 | 2017-01-24 | Qualcomm Incorporated | Systems and methods for providing non-power-of-two flash cell mapping |
KR102602694B1 (ko) * | 2015-12-15 | 2023-11-15 | 삼성전자주식회사 | 스토리지 컨트롤러의 작동 방법과 이를 포함하는 스토리지 장치의 작동 방법 |
KR102618699B1 (ko) | 2016-09-28 | 2024-01-02 | 삼성전자주식회사 | 호스트에 의해 제어되는 스토리지 장치를 포함하는 컴퓨팅 시스템 |
US11003381B2 (en) * | 2017-03-07 | 2021-05-11 | Samsung Electronics Co., Ltd. | Non-volatile memory storage device capable of self-reporting performance capabilities |
JP2021015658A (ja) | 2019-07-10 | 2021-02-12 | キオクシア株式会社 | 不揮発性半導体記憶装置及び不揮発性半導体記憶装置の駆動方法 |
US11188459B2 (en) * | 2019-12-23 | 2021-11-30 | Micron Technology, Inc. | Data block switching at a memory sub-system |
TWI787627B (zh) | 2020-07-02 | 2022-12-21 | 慧榮科技股份有限公司 | 電子裝置、快閃記憶體控制器及其存取方法 |
US20220075523A1 (en) * | 2020-09-08 | 2022-03-10 | Qualcomm Incorporated | Flash memory local purge |
US11474898B2 (en) * | 2020-12-09 | 2022-10-18 | International Business Machines Corporation | Multiple responder approach to systems with different types of failures |
US11829636B2 (en) * | 2021-09-01 | 2023-11-28 | Micron Technology, Inc. | Cold data identification |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5568423A (en) * | 1995-04-14 | 1996-10-22 | Unisys Corporation | Flash memory wear leveling system providing immediate direct access to microprocessor |
CN100543702C (zh) | 2003-11-18 | 2009-09-23 | 松下电器产业株式会社 | 文件记录装置及其控制方法和执行方法 |
US8453022B2 (en) | 2007-12-05 | 2013-05-28 | Densbits Technologies Ltd. | Apparatus and methods for generating row-specific reading thresholds in flash memory |
US8031521B1 (en) * | 2008-05-20 | 2011-10-04 | Marvell International Ltd. | Reprogramming non-volatile memory devices for read disturbance mitigation |
TWI363272B (en) | 2008-07-11 | 2012-05-01 | Silicon Motion Inc | Data programming method and device |
US8261136B2 (en) * | 2009-06-29 | 2012-09-04 | Sandisk Technologies Inc. | Method and device for selectively refreshing a region of a memory of a data storage device |
US8199577B2 (en) | 2009-11-30 | 2012-06-12 | Texas Instruments Incorporated | Ripple programming of memory cells in a nonvolatile memory |
US20120008414A1 (en) | 2010-07-06 | 2012-01-12 | Michael Katz | Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system |
US8737136B2 (en) | 2010-07-09 | 2014-05-27 | Stec, Inc. | Apparatus and method for determining a read level of a memory cell based on cycle information |
US8745318B2 (en) * | 2011-06-28 | 2014-06-03 | Seagate Technology Llc | Parameter tracking for memory devices |
US9431113B2 (en) * | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
-
2013
- 2013-12-09 US US14/100,122 patent/US9262316B2/en not_active Expired - Fee Related
-
2014
- 2014-11-05 TW TW103138435A patent/TWI594120B/zh active
- 2014-11-21 WO PCT/IB2014/066231 patent/WO2015087184A1/en active Application Filing
-
2016
- 2016-01-12 US US14/993,914 patent/US9684468B2/en active Active
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291374A (zh) * | 2016-03-31 | 2017-10-24 | 慧荣科技股份有限公司 | 纪录数据区块的使用时间的方法及其装置 |
CN107291374B (zh) * | 2016-03-31 | 2021-01-08 | 慧荣科技股份有限公司 | 纪录数据区块的使用时间的方法及其装置 |
TWI634419B (zh) * | 2016-04-15 | 2018-09-01 | 美光科技公司 | 記憶體裝置及用於操作記憶體的方法 |
TWI685734B (zh) * | 2016-04-15 | 2020-02-21 | 美商美光科技公司 | 記憶體裝置及用於操作記憶體的方法 |
US10340014B2 (en) | 2016-04-15 | 2019-07-02 | Micron Technology, Inc. | Monitoring error correction operations performed in memory |
US10289487B2 (en) | 2016-04-27 | 2019-05-14 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US11323133B2 (en) | 2016-04-27 | 2022-05-03 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US10157098B2 (en) | 2016-04-27 | 2018-12-18 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
US11916569B2 (en) | 2016-04-27 | 2024-02-27 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
TWI643062B (zh) * | 2016-04-27 | 2018-12-01 | 慧榮科技股份有限公司 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
US10348332B2 (en) | 2016-04-27 | 2019-07-09 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US11847023B2 (en) | 2016-04-27 | 2023-12-19 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US10510430B2 (en) | 2016-04-27 | 2019-12-17 | Silicon Motion, Inc. | Method, flash memory controller, memory device for accessing 3D flash memory having multiple memory chips |
TWI684857B (zh) * | 2016-04-27 | 2020-02-11 | 慧榮科技股份有限公司 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
US10133664B2 (en) | 2016-04-27 | 2018-11-20 | Silicon Motion Inc. | Method, flash memory controller, memory device for accessing 3D flash memory having multiple memory chips |
US10643733B2 (en) | 2016-04-27 | 2020-05-05 | Silicon Motion, Inc. | Method, flashing memory controller, memory device for accessing 3D flash memory having multiple memory chips |
US10713115B2 (en) | 2016-04-27 | 2020-07-14 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US10771091B2 (en) | 2016-04-27 | 2020-09-08 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
TWI812576B (zh) * | 2016-04-27 | 2023-08-11 | 慧榮科技股份有限公司 | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
US10846173B2 (en) | 2016-04-27 | 2020-11-24 | Silicon Motion, Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US10110255B2 (en) | 2016-04-27 | 2018-10-23 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US11030042B2 (en) | 2016-04-27 | 2021-06-08 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
TWI797996B (zh) * | 2016-04-27 | 2023-04-01 | 慧榮科技股份有限公司 | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
TWI759673B (zh) * | 2016-04-27 | 2022-04-01 | 慧榮科技股份有限公司 | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
US10236908B2 (en) | 2016-04-27 | 2019-03-19 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
US11500722B2 (en) | 2016-04-27 | 2022-11-15 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US11158392B2 (en) | 2017-04-05 | 2021-10-26 | Micron Technology, Inc. | Operation of mixed mode blocks |
US11721404B2 (en) | 2017-04-05 | 2023-08-08 | Micron Technology, Inc. | Operation of mixed mode blocks |
TWI673605B (zh) * | 2017-04-05 | 2019-10-01 | 美商美光科技公司 | 混合模塊之操作 |
US10325668B2 (en) | 2017-04-05 | 2019-06-18 | Micron Technology, Inc. | Operation of mixed mode blocks |
CN111737019A (zh) * | 2020-08-31 | 2020-10-02 | 西安芯瞳半导体技术有限公司 | 一种显存资源的调度方法、装置及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20150161034A1 (en) | 2015-06-11 |
TWI594120B (zh) | 2017-08-01 |
US20160124656A1 (en) | 2016-05-05 |
WO2015087184A1 (en) | 2015-06-18 |
US9262316B2 (en) | 2016-02-16 |
US9684468B2 (en) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI594120B (zh) | 用於記錄非揮發性記憶體系統中之停滯時間之系統、方法及程式產品 | |
US9690702B2 (en) | Programming non-volatile memory using a relaxed dwell time | |
US9558107B2 (en) | Extending useful life of a non-volatile memory by health grading | |
US9952795B2 (en) | Page retirement in a NAND flash memory system | |
JP6855102B2 (ja) | 不揮発性メモリ・システムにおけるマルチページ障害の回復 | |
US10884914B2 (en) | Regrouping data during relocation to facilitate write amplification reduction | |
US9552290B2 (en) | Partial R-block recycling | |
US9390003B2 (en) | Retirement of physical memory based on dwell time | |
US10365859B2 (en) | Storage array management employing a merged background management process | |
US9727244B2 (en) | Expanding effective storage capacity of a data storage system while providing support for address mapping recovery | |
US9898215B2 (en) | Efficient management of page retirement in non-volatile memory utilizing page retirement classes | |
US9524116B1 (en) | Reducing read-after-write errors in a non-volatile memory system using an old data copy | |
US20170115900A1 (en) | Dummy page insertion for flexible page retirement in flash memory storing multiple bits per memory cell | |
KR20220085804A (ko) | 용도 블록을 위한 동적 오버 프로비저닝 할당 | |
US10115472B1 (en) | Reducing read disturb effect on partially programmed blocks of non-volatile memory | |
US9430375B2 (en) | Techniques for storing data in bandwidth optimized or coding rate optimized code words based on data access frequency | |
US9417809B1 (en) | Efficient management of page retirement in non-volatile memory utilizing page retirement classes | |
US10733069B2 (en) | Page retirement in a NAND flash memory system |