TW201346550A - 實體頁、邏輯頁及碼字對應 - Google Patents
實體頁、邏輯頁及碼字對應 Download PDFInfo
- Publication number
- TW201346550A TW201346550A TW102109362A TW102109362A TW201346550A TW 201346550 A TW201346550 A TW 201346550A TW 102109362 A TW102109362 A TW 102109362A TW 102109362 A TW102109362 A TW 102109362A TW 201346550 A TW201346550 A TW 201346550A
- Authority
- TW
- Taiwan
- Prior art keywords
- logical
- data
- page
- pages
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1068—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 sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/104—Metadata, i.e. metadata associated with RAID systems with parity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明包含用於實體頁、邏輯頁及碼字對應之設備及方法。數種方法包含將數個資料邏輯頁錯誤寫碼為數個碼字及將該數個碼字寫入至數個記憶體實體頁。資料邏輯頁之數目可不同於記憶體實體頁之數目。
Description
本發明大體上係關於半導體記憶體及方法,且更特定言之係關於用於實體頁、邏輯頁及碼字對應之設備及方法。
通常提供記憶體裝置作為電腦或其他電子裝置中之內部半導體積體電路。存在許多不同類型的記憶體,包含揮發性記憶體及非揮發性記憶體。揮發性記憶體可需要電力來維持其資訊(例如,資料、錯誤資訊等等)且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)等等。非揮發性記憶體可藉由在未供電時留存所儲存的資料而提供永久性資料且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化ROM(EEPROM)、可擦除可程式化ROM(EPROM)及電阻可變記憶體(諸如相變隨機存取記憶體(PCRAM))、電阻性隨機存取記憶體(RRAM)及磁阻隨機存取記憶體(MRAM)等等。
記憶體裝置可組合在一起以形成一記憶體系統之一存放磁碟區(storage volume),諸如一固態硬碟(SSD)。一固態硬碟除了包含各種其他類型的非揮發性記憶體及揮發性記憶體之外亦可包含非揮發性記憶體(例如,NAND快閃記憶體及/或NOR快閃記憶體)且/或可包含揮發性記憶體(例如,DRAM及SRAM)。
一SSD可用以取代硬碟機作為一電腦之主存放磁碟區,這係因為固態硬碟在效能、大小、重量、強度、作業溫度範圍及電力消耗方面優於硬碟機。例如,SSD在與磁碟機相比時因其缺乏移動部件而具有優越效能,此缺乏移動部件可避免與磁碟機相關聯之搜尋時間、延時及其他機電延遲。SSD製造商可使用非揮發性快閃記憶體以產生可不使用一內部電池供應器之快閃SSD,因此容許磁碟機更通用且更緊密。
一SSD可自一主機接收與諸如讀取及寫入操作之記憶體操作相關聯之命令以(例如,在記憶體裝置與該主機之間)傳送資料。例如,增加與一SSD相關聯之輸送量及/或增加SSD之儲存容量可係有益的。
0‧‧‧主機區段
1‧‧‧主機區段
2‧‧‧主機區段
3‧‧‧主機區段
4‧‧‧主機區段
5‧‧‧主機區段
6‧‧‧主機區段
7‧‧‧主機區段
8‧‧‧主機區段
9‧‧‧主機區段
10‧‧‧主機區段
11‧‧‧主機區段
12‧‧‧主機區段
13‧‧‧主機區段
14‧‧‧主機區段
15‧‧‧主機區段
19‧‧‧資料邏輯頁之開始部分之位置
100‧‧‧計算系統
102‧‧‧主機
104‧‧‧記憶體系統
106‧‧‧主機介面
108‧‧‧控制器
110-1至110-N‧‧‧記憶體裝置
112‧‧‧錯誤寫碼組件
114‧‧‧緩衝組件
116‧‧‧映射組件
118‧‧‧獨立NAND冗餘陣列(RAIN)組件
220‧‧‧頁等量磁碟區佈局
222‧‧‧邏輯頁
224‧‧‧碼字
226‧‧‧實體頁
228‧‧‧實體頁後設資料
230‧‧‧邏輯頁格式
231‧‧‧資料邏輯頁之開始部分之位置
232‧‧‧邏輯頁後設資料
234‧‧‧主機區段
320‧‧‧頁等量磁碟區佈局
322‧‧‧資料邏輯頁
324‧‧‧碼字
326‧‧‧資料實體頁/記憶體實體頁
336‧‧‧有損壞部分
420‧‧‧頁等量磁碟區佈局
422‧‧‧資料邏輯頁
424‧‧‧碼字
426‧‧‧記憶體實體頁
440‧‧‧資料邏輯頁之第一部分
442‧‧‧資料邏輯頁之第二部分
526-0‧‧‧記憶體實體頁
526-1‧‧‧記憶體實體頁
528‧‧‧記憶體實體頁後設資料
532-0‧‧‧資料邏輯頁後設資料
532-1‧‧‧資料邏輯頁後設資料
546-0‧‧‧實體緩衝區
546-1‧‧‧實體緩衝區
546-2‧‧‧實體緩衝區
548-0‧‧‧邏輯緩衝區分段
548-1‧‧‧邏輯緩衝區分段
548-2‧‧‧邏輯緩衝區分段
622-0‧‧‧第一資料邏輯頁
622-1‧‧‧第二資料邏輯頁
626‧‧‧記憶體實體頁
628-X‧‧‧實體頁後設資料
628-Y‧‧‧實體頁後設資料
632-X0‧‧‧第一邏輯頁後設資料
632-X1‧‧‧第二邏輯頁後設資料
632-Y0‧‧‧第一邏輯頁後設資料
632-Y1‧‧‧第二邏輯頁後設資料
648-0‧‧‧邏輯緩衝區分段
648-1‧‧‧邏輯緩衝區分段
648-2‧‧‧邏輯緩衝區分段
圖1係根據本發明之數項實施例呈包含至少一記憶體系統之一計算系統之形式之一設備之一方塊圖。
圖2係根據本發明之數項實施例之一頁等量磁碟區佈局之一方塊圖。
圖3係根據本發明之數項實施例包含一已知有損壞部分之一頁等量磁碟區佈局之一方塊圖。
圖4係根據本發明之數項實施例包含一強制單元存取或無額外寫入資料之一頁等量磁碟區佈局之一方塊圖。
圖5係根據本發明之數項實施例用於寫入一邏輯頁之一緩衝區配置之一方塊圖。
圖6係根據本發明之數項實施例用於損耗平衡之一緩衝區分配之一方塊圖。
本發明包含用於實體頁、邏輯頁及碼字對應之設備及方法。數種方法包含將數個資料邏輯頁錯誤寫碼為數個碼字及將該數個碼字寫
入至數個記憶體實體頁。資料邏輯頁之數目可不同於記憶體實體頁之數目。
進行頁映射之一些先前途徑包含資料邏輯頁與記憶體實體頁之間之一對一對應。即,一資料邏輯頁中之資料量等於儲存於一記憶體實體頁中之資料量。相比而言,本發明之數項實施例使一資料邏輯頁大小(例如,一主機邏輯頁大小)與一記憶體實體頁大小(例如,一NAND頁大小)解離。在本發明之一些實施例中,碼字(例如,錯誤校正碼(ECC)碼字)可取決於一記憶體實體頁之大小,但是可獨立於一資料邏輯頁之大小。因此,可跨任意碼字大小提供大小靈活的資料邏輯頁,使得不同的主機區段大小可映射至一任意記憶體頁。
本發明之數項實施例可包含ECC碼字之一可變碼率,同時維持一恆定碼字大小。因此,本發明之一些實施例可管理碼字有效負載大小(例如,並非實體頁有效負載大小)的緩衝區記憶體。可維持啟用RAIN等量磁碟區(包含靈活等量磁碟區長度)以提供缺陷保護。韌體可置於效能路徑之外以改良速度。
在本發明之下列實施方式中,參考形成本發明之一部分之隨附圖式,且其中藉由圖解展示可如何實踐本發明之一或多項實施例。此等實施例經足夠詳細描述以使一般技術者能夠實踐本發明之實施例,且應瞭解可使用其他實施例且可在不脫離本發明之範疇之情況下作出處理程序改變、電改變及/或結構改變。如本文使用,尤其關於圖式中之參考數字之標示符「N」指示可包含如此指定之數個特定特徵。如本文使用,「數個」特定事物可指代一或多個此等事物(例如,數個記憶體裝置可指代一或多個記憶體裝置)。
本文之圖遵循一編號慣例,其中第一個數字或前幾個數字對應於圖式圖編號且剩餘數字識別圖式中之一元件或組件。可藉由使用類似數字來識別不同圖之間之類似元件或組件。例如,222可參考圖2中
之元件「22」,且在圖3中可將一類似元件稱為322。應明白,可添加、交換及/或消除本文中之各種實施例中展示之元件以提供本發明之數項額外實施例。此外,應明白,在圖中提供之元件之比例及相對尺度意欲圖解說明本發明之實施例,且不應被視為一限制意義。
圖1係根據本發明之數項實施例呈包含至少一記憶體系統104之一計算系統100之形式之一設備之一方塊圖。如本文所使用,一記憶體系統104、一控制器108或一記憶體裝置110亦可單獨視為一「設備」。該記憶體系統104可為(例如)一固態硬碟(SSD),且可包含一主機介面106、一控制器108(例如,一處理器及/或其他控制電路)及數個記憶體裝置110-1、……、110-N(例如,諸如NAND快閃裝置之固態記憶體裝置),該等記憶體裝置對該記憶體系統104提供一存放磁碟區。
如圖1中圖解說明,該控制器108可經由複數個通道耦合至該主機介面106及該等記憶體裝置110-1、……、110-N且可用以在該記憶體系統104與一主機102之間傳送資料。該介面106可呈一標準化介面之形式。例如,當該記憶體系統104用於一計算系統100中之資料儲存時,除其他連接器及介面之外,該介面106可亦為一串列進階附接技術(SATA)、快速周邊組件互連(PCIe)或一通用串列匯流排(USB)。然而,一般而言,介面106可提供用於在該記憶體系統104與一主機102之間傳遞控制、位址、資料及其他信號之一介面,該主機102具有用於介面106之相容接納器。
除各種其他類型的主機之外,主機102亦可為一主機系統,諸如一個人膝上型電腦、一桌上型電腦、一數位相機、一行動電話或一記憶體讀卡器。主機102可包含一系統主機板及/或背板,且可包含數個記憶體存取裝置(例如,數個處理器)。
該控制器108可與該等記憶體裝置110-1、……、110-N通信以控制資料讀取、寫入及擦除操作,亦控制其他操作。雖然未具體圖解說
明,但是在一些實施例中,該控制器108可包含用於將該控制器108耦合至該等記憶體裝置110-1、……、110-N之每一通道之一離散記憶體通道控制器。該控制器108可包含(例如)呈硬體及/或韌體(例如,一或多個積體電路)及/或軟體之形式之數個組件以控制對該數個記憶體裝置110-1、……、110-N之存取及/或促進主機102與記憶體裝置110-1、……、110-N之間的資料傳送。
在一些實施例中且如圖1中圖解說明,該控制器108可包含一錯誤寫碼組件112(例如,諸如一錯誤校正碼(ECC)引擎之一錯誤寫碼器)、一緩衝組件114、一映射組件116及一獨立NAND冗餘陣列(RAIN)組件118。該錯誤寫碼組件112、該緩衝組件114、該映射組件116及該RAIN組件118之各者可為諸如一特定應用積體電路(ASIC)之離散組件,或該等組件可反應藉由該控制器108內無需具有與該控制器108之其他部分分離之一離散實體形式之電路提供之功能性。雖然圖解說明為圖1中之控制器108內之組件,但是該錯誤寫碼組件112、該緩衝組件114、該映射組件116及該RAIN組件118之各者可在該控制器108外部或具有位於該控制器108內之數個組件及位於該控制器108外部之數個組件。例如,該緩衝組件可包含位於該控制器108上之數個緩衝區及位於該控制器108外部之數個緩衝區。
該錯誤寫碼組件112可經組態以將數個資料邏輯頁錯誤寫碼為數個碼字。例如,如本文中更詳細描述,該錯誤寫碼組件112可經組態以將非整數數目個資料邏輯頁錯誤寫碼為整數數目個碼字。該錯誤寫碼組件112可經組態以將一資料邏輯頁及非整數數目個額外資料邏輯頁錯誤寫碼為整數數目個碼字。
一碼字可具有包含一包裝函式及一有效負載之一總大小。碼字有效負載可指代在該碼字內編碼之資料(例如,使用者資料)。碼字包裝函式可指代在該碼字中連同使用者資料一起編碼之錯誤資訊。該錯
誤寫碼組件112可程式化地使用一可變碼字包裝函式大小及一可變碼字有效負載大小。該可變碼字包裝函式大小及該可變碼字有效負載大小可程式化為一使用者功能(例如,可經由該主機介面106程式化)或可在製造之後針對一特定應用程式而程式化。例如,可根據碼字有效負載之所要錯誤校正量程式化碼字包裝函式大小。在一些實施例中,可基於特定碼字包裝函式大小(例如,其中固定數目個及/或整數數目個碼字經設計以適用於一實體頁使得碼字之總大小固定而包裝函式及/或有效負載大小可變)程式化碼字有效負載大小。在總碼字大小中,一較大的碼字包裝函式對碼字有效負載提供更多錯誤保護,但是導致一更小碼字有效負載,且因此導致使用者資料之減小記憶體密度,這係因為使用者資料接著被分裂為各具有與其一起儲存之一較大碼字包裝函式之較小部分。一旦已程式化一特定碼字包裝函式及/或碼字有效負載大小,便可將資料錯誤寫碼為具有經程式化有效負載大小之碼字。
碼字有效負載大小對總碼字大小之比率在本文中被稱為碼率。在本發明之一些實施例中,可使用一第一碼率將一第一資料邏輯頁之一部分錯誤寫碼為一第一碼字,且可使用一第二碼率將一第二資料邏輯頁之一部分錯誤寫碼為一第二碼字。第一碼字及第二碼字之大小可相等。因此,第一碼字之碼字有效負載大小可不同於第二碼字之碼字有效負載大小。在數項實施例中,可將一碼率設定為一可程式化選項。
該緩衝組件114可包含分段為複數個邏輯緩衝區分段之複數個實體緩衝區(例如,使得一特定實體緩衝區分段為一個以上邏輯緩衝區分段)。每一邏輯緩衝區分段可對應於一碼字有效負載大小(例如,每一邏輯緩衝區分段可儲存的資訊與一碼字有效負載中所儲存的資訊一樣多)。每一實體緩衝區可對應於一實體頁大小(例如,每一實體緩衝
區可儲存的資訊與每一實體頁所儲存的資訊一樣多)。該複數個實體緩衝區之數個實體緩衝區可在該控制器108外部及/或內部。該控制器108可經組態以基於一邏輯頁大小與一主機102通信且基於總碼字大小緩衝管理該等記憶體裝置110-1、……、110-N。
在數項實施例中,該控制器108可經組態以藉由將數個資料邏輯頁之一部分錯誤寫碼為各具有等於數個邏輯緩衝區分段之各者之一大小之一有效負載大小之數個碼字而將該數個資料邏輯頁之該部分錯誤寫碼為該數個碼字。該數個碼字之有效負載在寫入至一記憶體實體頁之前可在該數個邏輯緩衝區分段中緩衝。
在數項實施例中,該控制器108可包含一映射組件116且可經組態以將複數個資料邏輯頁映射至複數個對應記憶體實體頁。該複數個資料邏輯頁之非整數數目個資料邏輯頁可映射至該複數個記憶體實體頁之各者。在本文中且尤其關於圖5更詳細地描述與該映射組件116相關聯之額外功能性。
該RAIN組件118可有助於保護儲存於該等記憶體裝置110、……、110-N中之資料。RAIN係(例如)在多個記憶體裝置之間分配及/或複製資訊之電腦資訊儲存方案之一涵蓋性術語。一RAIN陣列中之多個記憶體裝置可對一使用者及一電腦之作業系統呈現為一單個記憶體裝置(例如,光碟)。RAIN可包含等量化(例如,分割)資訊使得該資訊之不同部分儲存在不同的記憶體裝置(例如,記憶體裝置110、……、110-N)上。儲存分割資料之一個以上裝置之部分被統稱為一等量磁碟區。相比而言,RAIN亦可包含鏡像,其可包含將資料複本儲存在一個以上裝置上。作為一實例,可跨N個記憶體裝置中的N-1個記憶體裝置等量化寫入資料,其中錯誤資訊可儲存在一第N個記憶體裝置中。錯誤資訊(例如,同位資料)可藉由RAIN組件118(例如,藉由XOR電路)計算且寫入至該第N個記憶體裝置。該RAIN組件
118可採用一靈活等量磁碟區長度。該RAIN組件118可經組態以跨複數個記憶體裝置110-1、……、110-N將資料寫入至等量磁碟區中及/或讀取等量磁碟區中之資料。例如,該控制器108可經組態以自複數個記憶體實體頁讀取一等量磁碟區之資料,其中該複數個記憶體實體頁之各者儲存各自複數個碼字。該控制器108可經組態以組合來自該複數個記憶體實體頁之一者之各自複數個碼字之一個以上碼字之有效負載部分以形成一資料邏輯頁。該資料邏輯頁可接著被(例如,作為數個區段)傳送至一主機。在本文中且尤其關於圖2更詳細描述關於RAIN操作之額外細節。
該等記憶體裝置110-1、……、110-N可包含數個記憶體胞(例如,非揮發性記憶體胞)陣列。該等陣列可為具有(例如)一NAND架構之快閃陣列。然而,實施例並不限於一特定類型的記憶體陣列或陣列架構。該等記憶體胞可被分組為(例如)包含數個實體頁之數個區塊。數個區塊可包含於記憶體胞之一平面中且一陣列可包含數個平面。作為一實例,一記憶體裝置可經組態以每頁儲存8KB(千位元組)的使用者資料、每區塊儲存128頁使用者資料、每平面儲存2048個區塊及每裝置儲存16個平面。
在操作中,可將資料作為(例如)一資料實體頁寫入至一記憶體系統之一記憶體裝置(例如,系統104之記憶體裝置110-1、……、110-N)及/或自該記憶體裝置讀取。因而,一資料實體頁可被稱為記憶體系統之一資料傳送大小。資料可以稱為區段(例如,主機區段)之資料分段傳送至/自一主機(例如,主機102)。因而,一資料區段可被稱為主機之一資料傳送大小。複數個區段可構成一資料邏輯頁。
雖然一資料實體頁可包含數個位元組的使用者資料(例如,包含數個資料區段之一資料有效負載)以及對應於使用者資料之後設資料,但是一資料實體頁之大小通常可僅指代使用者資料之位元組數
目。作為一實例,具有4KB之一頁大小之一資料實體頁可包含4KB使用者資料(例如,4KB資料邏輯頁)以及對應於使用者資料之數個位元組(例如,32B、54B、224B等等)後設資料。除對應於使用者資料之其他後設資料之外,該後設資料可包含完整性資料(諸如錯誤資料,例如,錯誤偵測及/或校正碼資料)及/或位址資料(例如,邏輯位址資料)。
圖2係根據本發明之數項實施例之一頁等量磁碟區佈局220之一方塊圖。根據本發明之數項實施例,該頁等量磁碟區佈局圖解說明數個邏輯頁222、數個碼字224與數個實體頁226之間的相互關係。數個資料邏輯頁222可被錯誤寫碼為數個碼字224。例如,實體頁後設資料228、一邏輯頁LP0及邏輯頁LP1之一部分可被錯誤寫碼為碼字CW0、CW1、CW2及CW3。該數個碼字224可被寫入至數個記憶體實體頁226,其中資料邏輯頁222之數目不同於記憶體實體頁226之數目。例如,該等碼字CW0、CW1、CW2及CW3可被寫入至實體頁D0P0(例如,與晶粒零、平面零相關聯之一實體頁)。在一些實施例中,該實體頁後設資料228可包含等量磁碟區(例如,等量磁碟區長度)、一時戳、一擦除計數、一區塊類型及/或更多或更少資訊之定義。如圖2中圖解說明,該實體頁後設資料228並不具備一專用碼字,而是連同一邏輯頁之一部分一起進行編碼(例如,CW0包含該實體頁後設資料228及LP0之一部分)。
在一些實施例中,可將數個資料邏輯頁222之一部分(例如,LP0及LP1之一部分)編碼為數個碼字224(例如,CW0、CW1、CW2及CW3)。可將該數個碼字224(例如,CW0、CW1、CW2及CW3)寫入至一記憶體實體頁(例如,D0P0)。可藉由將一特定資料邏輯頁(例如,LP0)錯誤寫碼為一第一碼字(例如,CW0)之一第一有效負載部分及一第二碼字(例如,CW1)之一第二有效負載部分而錯誤寫碼該數個資料
邏輯頁之部分。第一碼字(例如,CW0)之大小可等於第二碼字(例如,CW1)之大小。記憶體實體頁之大小可獨立於該數個資料邏輯頁222之任一者之大小。
如圖2中圖解說明,可將邏輯頁LP1之剩餘部分(例如,連同實體頁後設資料及一邏輯頁LP2之一部分一起)錯誤寫碼為與實體頁D0P1相關聯且(例如,連同實體頁後設資料、邏輯頁LP2及邏輯頁LP3之一部分一起)寫入至該實體頁D0P1之一不同碼字CW0。因此,錯誤寫碼數個資料邏輯頁可包含將非整數數目個資料邏輯頁錯誤寫碼為整數數目個碼字。如圖2中圖解說明,在一些實施例中,每一記憶體實體頁可與整數數目個碼字相關聯(例如,每實體頁四個碼字,但是實施例並不限於每頁特定數目個碼字)。可將整數數目個碼字寫入至整數數目個記憶體實體頁。對於一給定等量磁碟區,碼字224之數目可不同於資料邏輯頁222之數目及與其相關聯之記憶體實體頁226之數目。
針對圖2中圖解說明之實施例,錯誤寫碼數個資料邏輯頁222可包含將實體頁後設資料228及一第一資料邏輯頁(例如,LP0)之一第一部分錯誤寫碼為一第一碼字(例如,CW0)、將該第一資料邏輯頁(例如,LP0)之一第二部分錯誤寫碼為一第二碼字(例如,CW1)、將該第一資料邏輯頁(例如,LP0)之一第三部分及一第二資料邏輯頁(例如,LP1)之一第一部分錯誤寫碼為一第三碼字(例如,CW2)、將該第二資料邏輯頁(例如,LP1)之一第二部分錯誤寫碼為一第四碼字(例如,CW3)。將數個碼字224寫入至數個記憶體實體頁226可包含將該第一碼字(例如,CW0)、該第二碼字(例如,CW1)、該第三碼字(例如,CW2)及該第四碼字(例如,CW3)寫入至一第一記憶體實體頁(例如,D0P0)。錯誤寫碼數個資料邏輯頁222可進一步包含將一第二實體頁之實體頁後設資料、該第二資料邏輯頁(例如,LP1)之一第三部分及一第三資料邏輯頁(例如,LP2)之一第一部分錯誤寫碼為一第五碼字(例
如,D0P1中之CW0)。除其他資訊之外,可將該第五碼字(例如,D0P1中之CW0)寫入至一第二記憶體實體頁(例如,D0P1)。
亦如圖2中圖解說明,該頁等量磁碟區佈局220可包含用於等量磁碟區之數個同位資料頁(例如,「DnP0-Plane 0 Parity」及「DnP1-Plane 1 Parity」,但是實施例並不限於特定數目個同位資料頁)。在同位資料之前,圖2亦圖解說明最後一個資料邏輯頁(例如,LPx)結束時「浪費的」資料。此「浪費的」資料可用以填充最後一個碼字,這係因為根據本發明之數項實施例數個資料邏輯頁中可用的資料量不一定結束於等量磁碟區之一碼字邊界處,因為(如本文所述)非整數數目個資料邏輯頁可被編碼為整數數目個碼字。在一些實施例中,無關於整數數目個碼字之任一者之一碼率,每記憶體實體頁之碼字之整數數目可保持恆定。
關於讀取操作,可自複數個記憶體實體頁226讀取一等量磁碟區之資料,其中記憶體實體頁226之各者儲存各自複數個碼字224且可組合來自該等記憶體實體頁之一者之該各自複數個碼字224之一個以上碼字224之有效負載部分以形成一資料邏輯頁222。例如,一第一碼字(例如,CW0)之一部分及一第三碼字(例如,CW2)之一部分可與一第二碼字(例如,CW1)(其等之各者讀取自一第一實體頁(例如,D0P0))組合,以形成一第一資料邏輯頁(例如,LP0)。可組合來自複數個記憶體實體頁226之一個以上記憶體實體頁226之各自複數個碼字224之一個以上碼字224之有效負載部分以形成一資料邏輯頁222。例如,來自一第一記憶體實體頁(例如,D0P0)之一第三碼字(例如,CW2)之一部分及一第四碼字(例如,CW3)可與來自一第二記憶體實體頁(例如,D0P1)之一第一碼字(例如,CW0)之一部分組合以形成一第二資料邏輯頁(例如,LP1)。
讀取一等量磁碟區之資料可包含讀取整數數目個碼字224。例
如,每記憶體實體頁226、每晶粒(例如,每D0、D1、……、Dn)、每等量磁碟區等等可讀取整數數目個碼字224。可組合來自複數個實體頁226之各自複數個碼字224之有效負載部分以形成複數個資料邏輯頁222。組合該各自複數個碼字222之有效負載部分可包含組合該各自複數個碼字之一第一者(例如,CW3)之整個有效負載部分與該各自複數個碼字之一第二者(例如,CW2)之少於整個有效負載部分以形成資料邏輯頁(例如,與D0P0相關聯之LP1)。
圖2中亦圖解說明一例示性邏輯頁格式230(例如,LP4之一格式)。該邏輯頁格式230可包含邏輯頁後設資料232及數個主機區段234(例如,每邏輯頁8個區段;然而,實施例並不限於此)。該邏輯頁後設資料232除包含更多或更少資料以外亦可包含一邏輯區塊位址(LBA)編號、一有效區段位元映射及一邏輯頁類型。該等主機區段234除包含更多或更少資料以外亦可包含一有效負載(例如,512位元組至528位元組,然而實施例不限於此)及資料路徑保護(DPP)資訊。在一些實施例中,諸如循環碼冗餘檢査(CRC)資訊之錯誤資訊可包含於邏輯頁格式內。
除本發明之其他優點之外,本文所述之頁等量磁碟區佈局可啟用使用者資料壓縮方案,該使用者資料壓縮方案除了容許在其他基礎上之可變壓縮速率以外亦容許在逐頁基礎上之可變壓縮速率。此等可變壓縮方案之細節超出本發明之範疇內。
圖3係根據本發明之數項實施例包含一已知有損壞部分336之一頁等量磁碟區佈局320之一方塊圖。除該已知有損壞部分336以外,該頁等量磁碟區佈局320可類似於圖2中圖解說明之頁等量磁碟區佈局220。即,該頁等量磁碟區佈局320可包含資料邏輯頁322、碼字324及資料實體頁326。複數個資料邏輯頁322可映射至複數個對應記憶體實體頁326,其中該複數個邏輯頁322之非整數數目個邏輯頁322映射至
複數個記憶體實體頁326之各者。
例如,在圖3中,該已知有損壞部分336可為記憶體胞之一有損壞實體區塊(例如,與D1P1相關聯使得與D1P1相關聯之實體頁因此亦被視為有損壞)。對於其中等量磁碟區佈局320包含一已知有損壞部分336之該等例項,控制器可經組態以至少部分回應於該複數個邏輯頁322之一特定者之一特定部分336被映射至一已知有損壞記憶體實體頁(例如,D1P1)而將主機資料略過填入該複數個邏輯頁322之該特定者。略過填入意謂該控制器可避免將主機資料填入對應於有損壞實體頁(例如,D1P1)之資料邏輯頁322。原本將填入至該等資料邏輯頁322之資料可被填入至該頁等量磁碟區佈局320中之後續資料邏輯頁322(例如,至少一後續資料邏輯頁)。
控制器可進一步經組態以將錯誤資料填入該複數個資料邏輯頁322之特定者之一第二部分,其中該複數個資料邏輯頁322之該特定者之第二部分映射至一已知良好記憶體實體頁。該控制器可經組態以將該複數個資料邏輯頁322映射至一RAIN等量磁碟區中之複數個記憶體實體頁326。
例如,與D1P1相關聯之記憶體實體頁被視為有損壞。與D1P1相關聯之記憶體實體頁至少對應於原始頁等量磁碟區佈局320中之邏輯頁LP5、LP6及LP7之部分。因此,即使僅LP5之一部分及LP7之一部分對應於與D1P1相關聯之記憶體實體頁,仍可藉由該控制器略過填入邏輯頁LP5、LP6及LP7(例如,未被填入主機資料)。原本將填入至LP5、LP6及LP7之資料可被填入至後續邏輯頁(例如,LP8、LP9及LP10)。如圖3中圖解說明,LP5之一部分及LP7之一部分對應於良好記憶體實體頁(例如,D1P0及D2P0)。因此,可將可用以維持RAIN等量磁碟區之錯誤資料填入LP5及LP7或LP5及LP7之對應於良好記憶體實體頁之至少該等部分(例如,使得同位資料可經計算且適用於RAIN等量磁碟區)。在一些實施例中,填入至略過填入的邏輯頁或其等對
應於良好記憶體實體頁之部分之錯誤資料可為隨機產生的資料。
圖4係根據本發明之數項實施例包含一強制單元存取(FUA)或無額外寫入資料之一頁等量磁碟區佈局420之一方塊圖。一FUA可適用於即刻寫入至實體記憶體之一資料邏輯頁(例如,無需等待後續資料量填入使得可同時程式化一額外記憶體實體頁)。在一些實施例中,關於一FUA之記憶體操作可類似於不存在可用之額外寫入資料時的記憶體操作。
例如,關於圖4,一FUA可適用於LP4使得在對一額外資料邏輯頁(例如,LP5)填入任何資料之前將LP4中之資料寫入至一對應記憶體實體頁(例如,D1P0)。可維持RAIN等量磁碟區佈局420,然而歸因於FUA可在不同的寫入操作期間(例如,非同時)寫入實體頁D1P0及D1P1。
類似地,若在資料邏輯頁438(例如,LP4)之後無可用的額外寫入資料,則在對一額外資料邏輯頁(例如,LP5)填入任何資料之前將資料邏輯頁438(例如,LP4)中之資料寫入至一對應記憶體實體頁(例如,D1P0)。可維持RAIN等量磁碟區佈局420,然而歸因於(例如)暫時缺乏額外寫入資料而可在不同的寫入操作期間(例如,非同時)寫入實體頁D1P0及D1P1。
因此,在一些實施例中,控制器可經組態以至少部分回應於與複數個資料邏輯頁422之前一邏輯頁相關聯之一FUA及/或目前無額外寫入資料可用於寫入而將主機資料略過填入該複數個邏輯頁422之一特定者(例如,LP5)。該控制器可經組態以在將主機資料填入資料邏輯頁438(例如,LP4)之後但在將與複數個資料邏輯頁422之前一邏輯頁(例如,LP4)相關聯之資料寫入複數個記憶體實體頁426之數個實體頁(例如,實體頁D1P0)之前將錯誤資料(例如,如本文所述之RAIN等量磁碟區之同位資料,其在一些實例中可為隨機資料或其他非主機資
料)填入該複數個邏輯頁422之特定者(例如,LP5)之一第一部分440。如本文所述,此錯誤資料可有助於維持RAIN等量磁碟區(例如,RAIN等量磁碟區之同位資料)且此錯誤資料可包含(例如)隨機產生的資料。該錯誤資料之其他實例可包含所有0、所有1等等。
控制器可經組態以在FUA之後及/或額外寫入資料變得可用之後將錯誤資料填入複數個資料邏輯頁422之特定者(例如,LP5)之一第二部分442。例如,該控制器可經組態以在FUA之後及/或額外寫入資料變得可用時在下一資料邏輯頁444(例如,LP6)中繼續填入有效主機資料。
圖5係根據本發明之數項實施例用於寫入一邏輯頁之一緩衝區分配之一方塊圖。如本文所述,一實體緩衝區可分隔成數個邏輯緩衝區分段。例如,實體緩衝區546-0可分隔成第一數目個邏輯緩衝區分段548-0(例如,「BUFFER0」、「BUFFER1」、「BUFFER2」及「BUFFER3」),實體緩衝區546-1可分隔成第二數目個邏輯緩衝區分段548-1(例如,「BUFFER4」、「BUFFER5」、「BUFFER6」及「BUFFER7」),且實體緩衝區546-2可分隔成第三數目個邏輯緩衝區分段548-2(例如,「BUFFER8」)。實體緩衝區可分隔成任何數目個邏輯緩衝區分段,且實施例並不限於圖5中圖解說明之實例。一實體緩衝區可具有等於一記憶體實體頁之一大小(例如,實體緩衝區546-0可具有等於記憶體實體頁526-0之一大小)。在一些實施例中,一邏輯緩衝區分段可具有等於一碼字有效負載大小之一大小。例如,可在一第一邏輯緩衝區分段(例如,「BUFFER0」)中緩衝之資訊量可等於一ECC碼字之一有效負載。該等邏輯緩衝區分段可在錯誤寫碼資料以儲存於一記憶體實體頁中之前緩衝該資料。因此,提供大小等於一碼字有效負載之邏輯緩衝區分段可有助於在一緩衝組件(例如,圖1中圖解說明之緩衝組件114)與一錯誤寫碼組件(例如,圖1中圖解說明之錯誤
寫碼組件112)之間提供一快速且有效資料傳送。
一寫入操作(例如,一等量磁碟區寫入操作)可開始於對一第一資料邏輯頁之一寫入請求。可分配足以儲存該資料邏輯頁之數個邏輯緩衝區分段(例如,在此實例中三個邏輯緩衝區分段「BUFFER0」、「BUFFER1」、及「BUFFER2」)。一第一邏輯緩衝區分段(例如,「BUFFER0」)之一部分可緩衝記憶體實體頁後設資料528及資料邏輯頁後設資料532-0。可針對記憶體實體頁後設資料528及資料邏輯頁後設資料之各者映射該第一邏輯緩衝區分段(例如,「BUFFER0」)內之開始部分之位置。可映射資料邏輯頁之開始部分之一位置(例如,映射至等量磁碟區)。資料邏輯頁之開始部分之位置可對應於錯誤寫碼為數個碼字之數個資料邏輯頁之部分。各種映射可有利於自等量磁碟區讀取各個部分。例如,可使用映射以識別包含資料邏輯頁之開始部分之等量磁碟區,且可將一偏移計入該等量磁碟區中以識別複數個記憶體實體頁之一者及包含資料邏輯頁之開始部分之特定碼字。在數項實施例中,可基於包含(例如)以下各者之一組參數判定一資料邏輯頁之一位址:記憶體總大小之實體頁、記憶體實體頁後設資料大小、碼字總大小、碼字有效負載大小、主機區段大小及邏輯頁後設資料大小。
主機區段可被填入至一資料邏輯頁(例如,與寫入請求相關聯之資料邏輯頁)中。所分配的邏輯緩衝區分段(例如,「BUFFER0」、「BUFFER1」、及「BUFFER2」)可至少部分緩衝資料邏輯頁。在一些實施例中,控制器可經組態以在逐主機區段基礎上至少部分緩衝所分配的邏輯緩衝區分段中之資訊。例如,可在第一邏輯緩衝區分段(例如,「BUFFER0」)中緩衝一第一主機區段「0」、一第二主機區段「1」及一第三主機區段「2」。可在第一邏輯緩衝區分段(例如,「BUFFER0」)中緩衝一第四主機區段「3」之一部分以完全填充該第
一邏輯緩衝區分段。可在第二邏輯緩衝區分段(例如,「BUFFER1」)中緩衝該第四主機區段「3」之剩餘部分。在一些實施例中,一資料邏輯頁可包含8個主機區段(例如,主機區段0至7),然而實施例並不限於每資料邏輯頁特定數目個主機區段。如圖5中圖解說明,可在第二邏輯緩衝區分段(例如,「BUFFER1」)及一第三邏輯緩衝區分段(例如,「BUFFER2」)之一部分中緩衝主機區段4至7。控制器可經組態以至少部分緩衝所分配的邏輯緩衝區分段中之資料邏輯頁,使得資料邏輯頁填充(例如,完全填充)除該等所分配的邏輯緩衝區分段之一者以外的所有邏輯緩衝區分段(例如,其中資料邏輯頁完全填充邏輯緩衝區分段「BUFFER0」及邏輯緩衝區分段「BUFFER1」且部分填充邏輯緩衝區分段「BUFFER2」)。
一後續資料邏輯頁(無論相同於第一資料邏輯頁之寫入請求之部分或一後續寫入請求)皆可分配有邏輯緩衝區分段。例如,一後續資料邏輯頁可被分配一第三邏輯緩衝區分段(例如,「BUFFER2」)之剩餘部分以及一第四邏輯緩衝區分段(例如,「BUFFER3」)及一第五邏輯緩衝區分段(例如,「BUFFER4」)。例如,在緩衝邏輯頁後設資料532-1之後可填充開始於第一資料邏輯頁在第三邏輯緩衝區分段(例如,「BUFFER2」)中停止之處之後續分配的邏輯緩衝區分段。如圖5中圖解說明,可在第三邏輯緩衝區分段(例如,「BUFFER2」)及第四邏輯緩衝區分段(例如,「BUFFER3」)中緩衝且在一第五邏輯緩衝區分段(例如,「BUFFER4」)中部分緩衝後續資料邏輯頁(例如,包含後續主機區段0至7)。圖5亦圖解說明在邏輯緩衝區分段(例如,「BUFFER4」、「BUFFER5」及「BUFFER6」)中緩衝之一第三資料邏輯頁(例如,包含第三主機區段0至7)。圖5亦圖解說明在邏輯緩衝區分段(例如,「BUFFER6」、「BUFFER7」及「BUFFER8」)中緩衝之一第四資料邏輯頁(例如,包含第四主機區段0至7)。
一資料邏輯頁(及至少一主機區段)可橫越一邏輯緩衝區邊界(例如,第一分配邏輯緩衝區分段「BUFFER0」與第二分配邏輯緩衝區分段「BUFFER1」之間之一邊界)。一鏈結可自該等分配邏輯緩衝區分段之一第一者(例如,「BUFFER0」)映射至該等分配邏輯緩衝區分段之一第二者(例如,「BUFFER1」)。該鏈結可結合橫越第一邏輯緩衝區分段(例如,「BUFFER0」)與第二邏輯緩衝區分段(例如,「BUFFER1」)之間之邏輯緩衝區邊界之一特定主機區段而使用。此外,可在後續邏輯緩衝區分段之間(例如,邏輯緩衝區分段「BUFFER1」與邏輯緩衝區分段「BUFFER2」之間等等)映射鏈結。
在已填充一實體緩衝區(例如,包含包含於其中的邏輯緩衝區分段)之後,可錯誤寫碼該實體緩衝區且將該實體緩衝區寫入至一記憶體實體頁。例如,可錯誤寫碼實體緩衝區546-0且將實體緩衝區546-0寫入至記憶體實體頁526-0,且可錯誤寫碼實體緩衝區546-1且將實體緩衝區546-1寫入至記憶體實體頁526-1。在一些實施例中,可將多個實體緩衝區一起寫入至多個記憶體實體頁(例如,在一多平面寫入操作及一RAIN等量磁碟區寫入操作中等等)。
如本文所述,可基於總碼字大小藉由在複數個邏輯緩衝區分段之各者中緩衝一各自碼字之一有效負載而緩衝管理記憶體。與一主機之通信可基於邏輯頁大小藉由與一主機通信一資料邏輯頁來進行,其中該資料邏輯頁包含來自該複數個邏輯緩衝區分段之各者之一各自碼字有效負載。
圖6係根據本發明之數項實施例用於一損耗平衡操作之一緩衝區分配之一方塊圖。一損耗平衡操作之一實例被視為廢棄項目收集。廢棄項目收集可包含(例如,根據一「貪婪演算法」)回收具有最無效頁之區塊(例如,擦除具有最無效頁之區塊及使得具有最無效頁之區塊可用於寫入)。或者,廢棄項目收集可包含回收具有多於臨限量的無
效頁之區塊。例如,一無效頁可為已更新至一不同頁之一資料頁。
例如,可針對損耗平衡識別兩個資料邏輯頁(例如,一第一資料邏輯頁622-0及一第二資料邏輯頁622-1)。在此實例中,該第一資料邏輯頁622-0可包含主機區段0至7且該第二資料邏輯頁622-1可包含主機區段8至15。每一資料邏輯頁可具有對應數目個碼字(例如,三個碼字可分別對應於每一邏輯頁),但是整數數目個碼字可對應於非整數數目個資料邏輯頁。即,例如,每一資料邏輯頁可具有三個對應的碼字,但是一特定資料邏輯頁不一定將所有資訊儲存在所有三個碼字中。可讀取針對損耗平衡識別之邏輯頁之對應數目個碼字,且可在經分配用於損耗平衡操作之數個邏輯緩衝區分段中緩衝碼字有效負載(例如,可在第一數目個邏輯緩衝區分段648-0中緩衝第一邏輯頁622-0之碼字有效負載,且可在第二數目個邏輯緩衝區分段648-1中緩衝第二邏輯頁622-1之碼字有效負載)。
可知該兩個資料邏輯頁之各者之開始部分之位置(例如,在一特定邏輯緩衝區分段內之位置),如本文所述(例如,該資料邏輯頁622-0可在舊的實體頁後設資料628-X之後(但是包含舊的第一邏輯頁後設資料632-X0)的19處具有開始部分之一位置,且該資料邏輯頁622-1可在231處(包含舊的第二邏輯頁後設資料632-X1)具有開始部分之一位置)。由一實體緩衝區分段而成之第三數目個邏輯緩衝區分段648-2(例如,「BUFFER9」、「BUFFER10」、「BUFFER11」及「BUFFER12」)可經分配用於損耗平衡操作。可在新分配的緩衝區分段(例如,「BUFFER9」)中產生並緩衝用於待作為損耗平衡操作之部分而寫入之新的實體頁之實體頁後設資料628-Y。
可針對作為損耗平衡操作之部分之一單頁寫入填入一鏈結清單。該鏈結清單可包含經分配用於損耗平衡操作之第一邏輯緩衝區分段(例如,該數個邏輯緩衝區分段648-2中之「BUFFER9」)之位置之
一識別碼、實體頁後設資料628-Y之一計數、一鏈結及儲存第一資料邏輯頁622-0及第二資料邏輯頁622-1之每一緩衝區之一計數。可藉由邏輯緩衝區分段將每一項目之一計數及至下一項目(例如至下一邏輯緩衝區分段,諸如自「BUFFER0」至「BUFFER1」)之一鏈結填入該鏈結清單中之項目。該等計數可識別與每一項目相關聯之資訊量。該鏈結清單亦可包含整個清單之總計數。因此,來自該第一資料邏輯頁622-0及該第二資料邏輯頁622-1之資料可移動至邏輯緩衝區分段648-2(例如,緩衝區9至12)。隨後,邏輯緩衝區分段648-2(例如,緩衝區9至12)可被寫入至記憶體實體頁626。
在該等邏輯緩衝區分段648-2中緩衝該第一資料邏輯頁622-0及該第二資料邏輯頁622-1之後,可將該第一資料邏輯頁622-0之一部分及該第二資料邏輯頁622-1寫入至一記憶體實體頁626。例如,寫入至該記憶體實體頁626之第一資料邏輯頁622-0之部分及第二資料邏輯頁622-1可包含第一邏輯頁後設資料632-Y0、第二邏輯頁後設資料632-Y1、所有主機區段0至14及主機區段15之一部分。在更新該第二資料邏輯頁622-1之邏輯-實體位址之一表(例如,LBA表)中之一項目之前,可將主機區段15之剩餘部分寫入至一新的記憶體實體頁。
本發明包含用於實體頁、邏輯頁及碼字對應之設備及方法。數種方法包含將數個資料邏輯頁錯誤寫碼為數個碼字及將該數個碼字寫入至數個記憶體實體頁。資料邏輯頁之數目可不同於記憶體實體頁之數目。
雖然已圖解說明並描述特定實施例,但是一般技術者應瞭解,適合達成相同結果之一配置可替代所展示之特定實施例。本發明意欲涵蓋本發明之一或多項實施例之調適或變動。應瞭解,上述描述係以一闡釋性方式而非一限制性方式作出。熟習此項技術者在審閱上述描
述後應明白上述實施例之組合及本文未明確描述之其他實施例。本發明之一或多項實施例之範疇包含其中使用上述結構及方法之其他應用。因此,應參考隨附申請專利範圍連同此等申請專利範圍所授權之等效物之全部範圍而判定本發明之一或多項實施例之範疇。
在前述實施方式中,為簡化本發明之目的將一些特徵一起集合於一單項實施例中。本發明之此方法不應被解釋為反映本發明之所揭示實施例必須使用比明確陳述於每一技術方案中更多之特徵之一意圖。實情係,如下列申請專利範圍反映,本發明標的在於少於一單個所揭示實施例之全部特徵。因此,特此將下列申請專利範圍併入實施方式中,其中每一技術方案獨立地作為一單獨實施例。
220‧‧‧頁等量磁碟區佈局
222‧‧‧邏輯頁
224‧‧‧碼字
226‧‧‧實體頁
228‧‧‧實體頁後設資料
230‧‧‧邏輯頁格式
232‧‧‧邏輯頁後設資料
234‧‧‧主機區段
Claims (32)
- 一種用於操作一記憶體之方法,該方法包括:將數個資料邏輯頁錯誤寫碼為數個碼字;及將該數個碼字寫入至數個記憶體實體頁,其中資料邏輯頁之數目不同於記憶體實體頁之數目。
- 如請求項1之方法,其中將該數個資料邏輯頁錯誤寫碼為該數個碼字包括將非整數數目個資料邏輯頁錯誤寫碼為整數數目個碼字。
- 如請求項2之方法,其中將該數個碼字寫入至該數個記憶體實體頁包括將該整數數目個碼字寫入至整數數目個記憶體實體頁。
- 如請求項1至3中任一項之方法,其中碼字之數目不同於資料邏輯頁之數目及記憶體實體頁之數目。
- 如請求項1至3中任一項之方法,其中錯誤寫碼該數個資料邏輯頁進一步包括:將實體頁後設資料及一第一資料邏輯頁之一第一部分錯誤寫碼為一第一碼字;及將該第一資料邏輯頁之一第二部分錯誤寫碼為一第二碼字;及其中寫入該數個碼字進一步包括將該第一碼字及該第二碼字寫入至一第一記憶體實體頁。
- 一種用於操作一記憶體之方法,該方法包括:使用一總碼字大小之一可變碼字包裝函式大小及一可變碼字有效負載大小來錯誤寫碼資料;及在基於用於碼字有效負載之一所要錯誤校正量錯誤寫碼該資料之前接收指示一特定碼字包裝函式大小之一輸入。
- 如請求項6之方法,其中該方法進一步包括:基於該特定碼字包裝函式大小設定一特定碼字有效負載大小;及將該資料錯誤寫碼為具有該特定碼字有效負載大小之碼字。
- 如請求項6至7中任一項之方法,其中該方法進一步包括:基於邏輯頁大小與一主機通信;及基於該總碼字大小緩衝管理該記憶體。
- 如請求項8之方法,其中基於總碼字大小緩衝管理該記憶體包括在複數個邏輯緩衝區分段之各者中緩衝一各自碼字之一有效負載;及其中基於邏輯頁大小與該主機通信包括將一資料邏輯頁傳達至該主機,該資料邏輯頁包括來自該複數個邏輯緩衝區分段之各者之一各自碼字有效負載。
- 一種用於操作記憶體之方法,該方法包括:自複數個記憶體實體頁讀取一等量磁碟區之資料,其中該複數個記憶體實體頁之各者儲存各自複數個碼字;及組合來自該複數個記憶體實體頁之一者之該各自複數個碼字之一個以上碼字之有效負載部分以形成一資料邏輯頁。
- 如請求項10之方法,其中組合該等有效負載部分包括組合該各自複數個碼字之一第一者之一整個有效負載部分與該各自複數個碼字之一第二者之少於一整個有效負載部分以形成該資料邏輯頁。
- 如請求項10至11中任一項之方法,其中讀取該等量磁碟區之資料包括讀取整數數目個碼字。
- 一種用於操作記憶體之方法,該方法包括:僅將包含一資料邏輯頁之一開始部分之該資料邏輯頁之一部 分編碼為一特定碼字;及寫入複數個記憶體實體頁作為一等量磁碟區,其中該複數個記憶體實體頁之一者包含整數數目個碼字,該等碼字包含該特定碼字。
- 如請求項13之方法,其中該方法進一步包括:將該資料邏輯頁之該開始部分之一位置映射至該等量磁碟區;及藉由以下各者讀取該資料邏輯頁:使用該映射以識別包含該資料邏輯頁之該開始部分之該等量磁碟區;及將一偏移計入該等量磁碟區中以識別該複數個記憶體實體頁之該一者及包含該資料邏輯頁之該開始部分之該特定碼字。
- 一種設備,其包括:數個記憶體裝置;及一控制器,其耦合至該數個記憶體裝置且經組態以:使用一第一碼率將一第一資料邏輯頁之一部分錯誤寫碼為一第一碼字;及使用一第二碼率將一第二資料邏輯頁之一部分錯誤寫碼為一第二碼字,其中該第一碼字之一大小等於該第二碼字之一大小。
- 如請求項15之設備,其中該控制器經進一步組態以將整數數目個碼字寫入至一記憶體實體頁,其中該整數數目個碼字對應於非整數數目個資料邏輯頁。
- 如請求項16之設備,其中無關於該整數數目個碼字之任一者之一碼率,碼字之該整數數目係恆定的。
- 如請求項15至17中任一項之設備,其中該第一碼字之一有效負載大小不同於該第二碼字之一有效負載大小。
- 如請求項15至17中任一項之設備,其中該控制器經組態以接收一輸入以將一碼率設定為一可程式化選項。
- 一種設備,其包括:數個記憶體裝置;及一控制器,其耦合至該數個記憶體裝置且經組態以:將數個資料邏輯頁之一部分錯誤寫碼為數個碼字;及將該數個碼字寫入至一記憶體實體頁;其中該記憶體實體頁之一大小獨立於該數個資料邏輯頁之任一者之一大小。
- 如請求項20之設備,其中該記憶體實體頁之該大小不同於該數個資料邏輯頁之一特定者之該大小。
- 如請求項20之設備,其中該控制器經組態以藉由將該數個資料邏輯頁之該部分錯誤寫碼為各具有等於數個邏輯緩衝區分段之各者之一大小之一有效負載大小之該數個碼字而將該數個資料邏輯頁之該部分錯誤寫碼為該數個碼字。
- 如請求項20之設備,其中該控制器經組態以藉由將一特定資料邏輯頁錯誤寫碼為一第一碼字之一第一有效負載部分及一第二碼字之一第二有效負載部分而錯誤寫碼該數個資料邏輯頁之該部分。
- 一種設備,其包括:數個記憶體裝置;及一控制器,其耦合至該數個記憶體裝置且經組態以:將複數個資料邏輯頁映射至複數個對應記憶體實體頁,其中該複數個資料邏輯頁之非整數數目個資料邏輯頁被映射至 該複數個記憶體實體頁之至少一者。
- 如請求項24之設備,其中該控制器經進一步組態以至少部分回應於該複數個邏輯頁之一特定者之一特定部分被映射至一已知有損壞記憶體實體頁而將主機資料略過填入該複數個邏輯頁之該特定者。
- 如請求項24之設備,其中該控制器經進一步組態以至少部分回應於與該複數個邏輯頁之前一邏輯頁相關聯之一強制單元存取(FUA)而將主機資料略過填入該複數個邏輯頁之一特定者。
- 如請求項24至26中任一項之設備,其中該控制器經進一步組態以至少部分回應於目前無額外主機資料可用於寫入而將主機資料略過填入該複數個邏輯頁之一特定者。
- 一種設備,其包括:數個記憶體裝置;複數個實體緩衝區,其等分段為複數個邏輯緩衝區分段,其中每一邏輯緩衝區分段對應於一碼字有效負載大小,且其中每一實體緩衝區對應於一實體頁大小;及一控制器,其耦合至該數個記憶體裝置及該複數個實體緩衝區,且經組態以:將主機區段填入至一資料邏輯頁中;針對該資料邏輯頁分配該複數個邏輯緩衝區分段之數個邏輯緩衝區分段;及用該資料邏輯頁至少部分填充該複數個邏輯緩衝區分段之該數個邏輯緩衝區分段,使得該資料邏輯頁橫越至少一邏輯緩衝區邊界且至少一主機區段橫越一邏輯緩衝區邊界。
- 如請求項28之設備,其中該控制器經進一步組態以:用實體頁後設資料填充該等分配邏輯緩衝區分段之一第一者 之一第一部分;將邏輯頁後設資料之一開始部分之一位置映射在該實體頁後設資料之一未端處;用該邏輯頁後設資料填充該等分配邏輯緩衝區分段之該第一者之一第二部分;及將該等主機區段之一開始部分之一位置映射在該邏輯頁後設資料之一末端處。
- 如請求項28之設備,其中該控制器經進一步組態以將一鏈結自該等分配邏輯緩衝區分段之一第一者映射至該等分配邏輯緩衝區分段之一第二者,該鏈結結合橫越該邏輯緩衝區邊界之該主機區段而使用,其中該邏輯緩衝區邊界係該等分配邏輯緩衝區分段之該第一者與該第二者之間之一邊界。
- 如請求項28至30中任一項之設備,其中該設備包含一錯誤寫碼組件,該錯誤寫碼組件經組態以將該資料邏輯頁及非整數數目個額外資料邏輯頁錯誤寫碼為整數數目個碼字。
- 如請求項28至30中任一項之設備,其中該控制器經組態以:識別用於損耗平衡之複數個邏輯頁;將對應於該複數個邏輯頁之數個碼字讀取至該複數個邏輯緩衝區分段之第一數目個邏輯緩衝區分段中;針對該損耗平衡分配該複數個邏輯緩衝區分段之第二數目個邏輯緩衝區分段;使用鏈結清單,將該數個碼字之緩衝區有效負載重新定位於該複數個邏輯緩衝區分段之該第二數目個邏輯緩衝區分段中;及將對應於該複數個邏輯頁之該等重新定位碼字之一部分寫入至一記憶體實體頁。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/421,088 US9026887B2 (en) | 2012-03-15 | 2012-03-15 | Physical page, logical page, and codeword correspondence |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201346550A true TW201346550A (zh) | 2013-11-16 |
| TWI514139B TWI514139B (zh) | 2015-12-21 |
Family
ID=49158860
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW102109362A TWI514139B (zh) | 2012-03-15 | 2013-03-15 | 實體頁、邏輯頁及碼字對應 |
Country Status (7)
| Country | Link |
|---|---|
| US (4) | US9026887B2 (zh) |
| EP (1) | EP2825960B1 (zh) |
| JP (1) | JP6053078B2 (zh) |
| KR (1) | KR101660150B1 (zh) |
| CN (3) | CN104272262B (zh) |
| TW (1) | TWI514139B (zh) |
| WO (1) | WO2013138190A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI664531B (zh) * | 2018-01-25 | 2019-07-01 | 矽創電子股份有限公司 | 快閃記憶體之控制器及控制方法 |
Families Citing this family (50)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9159422B1 (en) * | 2011-04-12 | 2015-10-13 | Sk Hynix Memory Solutions Inc. | Cross page management to avoid NAND physical page size limitation |
| US9047214B1 (en) | 2012-05-22 | 2015-06-02 | Pmc-Sierra, Inc. | System and method for tolerating a failed page in a flash device |
| US9021333B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for recovering data from failed portions of a flash drive |
| US9176812B1 (en) * | 2012-05-22 | 2015-11-03 | Pmc-Sierra, Inc. | Systems and methods for storing data in page stripes of a flash drive |
| US8972824B1 (en) | 2012-05-22 | 2015-03-03 | Pmc-Sierra, Inc. | Systems and methods for transparently varying error correction code strength in a flash drive |
| US9021337B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive |
| US9183085B1 (en) * | 2012-05-22 | 2015-11-10 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency |
| US8788910B1 (en) | 2012-05-22 | 2014-07-22 | Pmc-Sierra, Inc. | Systems and methods for low latency, high reliability error correction in a flash drive |
| US8793556B1 (en) | 2012-05-22 | 2014-07-29 | Pmc-Sierra, Inc. | Systems and methods for reclaiming flash blocks of a flash drive |
| US8996957B1 (en) | 2012-05-22 | 2015-03-31 | Pmc-Sierra, Inc. | Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes |
| US9021336B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages |
| US9442840B2 (en) * | 2012-12-19 | 2016-09-13 | Qualcomm Incorporated | Virtual boundary codes in a data image of a read-write memory device |
| US9208018B1 (en) | 2013-03-15 | 2015-12-08 | Pmc-Sierra, Inc. | Systems and methods for reclaiming memory for solid-state memory |
| US9009565B1 (en) | 2013-03-15 | 2015-04-14 | Pmc-Sierra, Inc. | Systems and methods for mapping for solid-state memory |
| US9026867B1 (en) | 2013-03-15 | 2015-05-05 | Pmc-Sierra, Inc. | Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory |
| US9053012B1 (en) | 2013-03-15 | 2015-06-09 | Pmc-Sierra, Inc. | Systems and methods for storing data for solid-state memory |
| US9081701B1 (en) | 2013-03-15 | 2015-07-14 | Pmc-Sierra, Inc. | Systems and methods for decoding data for solid-state memory |
| KR102195298B1 (ko) | 2014-02-13 | 2020-12-24 | 삼성전자주식회사 | 비휘발성 메모리 장치의 부분 페이지 프로그램 방법 |
| US9299457B2 (en) | 2014-02-23 | 2016-03-29 | Qualcomm Incorporated | Kernel masking of DRAM defects |
| US9448745B2 (en) * | 2014-03-13 | 2016-09-20 | NXGN Data, Inc. | Configurable read-modify-write engine and method for operating the same in a solid state drive |
| KR102308777B1 (ko) | 2014-06-02 | 2021-10-05 | 삼성전자주식회사 | 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법 |
| CN105278867A (zh) * | 2014-07-24 | 2016-01-27 | 宇瞻科技股份有限公司 | 储存装置的载入方法及分割方法 |
| US10176039B2 (en) | 2014-09-19 | 2019-01-08 | Micron Technology, Inc. | Self-accumulating exclusive OR program |
| TWI556254B (zh) * | 2014-10-14 | 2016-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料存取方法 |
| US9703631B2 (en) * | 2015-03-20 | 2017-07-11 | Burlywood, LLC | Storage emulation in a storage controller |
| TWI560718B (en) * | 2015-03-27 | 2016-12-01 | Silicon Motion Inc | Data storage device and encoding method thereof |
| US20160299844A1 (en) * | 2015-04-08 | 2016-10-13 | Sandisk Enterprise Ip Llc | Mapping Logical Groups of Data to Physical Locations In Memory |
| US9946594B2 (en) * | 2015-08-19 | 2018-04-17 | International Business Machines Corporation | Validation bits and offsets to represent logical pages split between data containers |
| US9940034B2 (en) | 2016-01-25 | 2018-04-10 | International Business Machines Corporation | Reducing read access latency by straddling pages across non-volatile memory channels |
| US10318378B2 (en) | 2016-02-25 | 2019-06-11 | Micron Technology, Inc | Redundant array of independent NAND for a three-dimensional memory array |
| US10198313B2 (en) * | 2016-03-11 | 2019-02-05 | Western Digital Technologies, Inc. | Redundancy of error correction encoded data in a storage system |
| US10169142B2 (en) * | 2016-07-12 | 2019-01-01 | Futurewei Technologies, Inc. | Generating parity for storage device |
| KR102706994B1 (ko) * | 2016-09-07 | 2024-09-19 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
| JP6524039B2 (ja) * | 2016-09-23 | 2019-06-05 | 東芝メモリ株式会社 | メモリシステム及び制御方法 |
| US10877842B2 (en) * | 2017-09-08 | 2020-12-29 | Intel Corporation | Detecting silent data corruption for mass storage devices |
| US11314425B2 (en) | 2018-05-08 | 2022-04-26 | Micron Technology, Inc. | Read error recovery |
| CN110489351B (zh) * | 2018-05-14 | 2021-03-09 | 英韧科技(上海)有限公司 | 芯片指纹管理装置及安全芯片 |
| US11221910B2 (en) | 2018-07-24 | 2022-01-11 | Micron Technology, Inc. | Media scrubber in memory system |
| US10824502B2 (en) * | 2018-08-08 | 2020-11-03 | Micron Technology, Inc. | Enhanced codeword for media persistence and diagnostics |
| US10817430B2 (en) | 2018-10-02 | 2020-10-27 | Micron Technology, Inc. | Access unit and management segment memory operations |
| US10789126B2 (en) | 2018-10-09 | 2020-09-29 | Micron Technology, Inc. | Multiple memory devices having parity protection |
| US11188250B2 (en) * | 2018-10-25 | 2021-11-30 | Micron Technology, Inc. | Two-stage hybrid memory buffer for multiple streams |
| US10963342B2 (en) | 2019-02-01 | 2021-03-30 | Micron Technology, Inc. | Metadata-assisted encoding and decoding for a memory sub-system |
| US10915400B1 (en) * | 2019-11-08 | 2021-02-09 | Micron Technology, Inc. | Dynamic over provisioning allocation for purposed blocks |
| US11481151B2 (en) * | 2020-07-17 | 2022-10-25 | Kioxia Corporation | Payload spill boundary table assisted read in solid state drives |
| US11144392B1 (en) * | 2020-07-17 | 2021-10-12 | Toshiba Memory Corporation | Payload distribution in solid state drives |
| US11620068B2 (en) * | 2021-01-06 | 2023-04-04 | EMC IP Holding Company LLC | Data transfer optimizations |
| US11550658B1 (en) | 2021-09-02 | 2023-01-10 | Western Digital Technologies, Inc. | Storage system and method for storing logical-to-physical address table entries in a codeword in volatile memory |
| US11775381B2 (en) * | 2021-09-17 | 2023-10-03 | Micron Technology, Inc. | Redundancy metadata schemes for RAIN protection of large codewords |
| JP2024000843A (ja) | 2022-06-21 | 2024-01-09 | キオクシア株式会社 | メモリシステム |
Family Cites Families (40)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3020060A (en) | 1960-07-13 | 1962-02-06 | Gen Motors Corp | Steering arrangement for a solid front axle suspension |
| WO1992002879A1 (en) | 1990-08-03 | 1992-02-20 | Du Pont Pixel Systems Limited | Virtual memory system |
| JP4199519B2 (ja) * | 2002-11-05 | 2008-12-17 | パナソニック株式会社 | メモリ管理装置及びメモリ管理方法 |
| US7739577B2 (en) * | 2004-06-03 | 2010-06-15 | Inphase Technologies | Data protection system |
| US20060282643A1 (en) * | 2005-06-10 | 2006-12-14 | Subramanyam Chandramouli | Transparent low-density mode for multi-level cell flash memory devices |
| US7681109B2 (en) | 2005-10-13 | 2010-03-16 | Ramot At Tel Aviv University Ltd. | Method of error correction in MBC flash memory |
| US8307149B2 (en) * | 2005-12-09 | 2012-11-06 | Panasonic Corporation | Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table |
| US8020060B2 (en) * | 2006-01-18 | 2011-09-13 | Sandisk Il Ltd | Method of arranging data in a multi-level cell memory device |
| US7844879B2 (en) | 2006-01-20 | 2010-11-30 | Marvell World Trade Ltd. | Method and system for error correction in flash memory |
| US20070180349A1 (en) * | 2006-01-31 | 2007-08-02 | Jacobsen Eric A | Techniques for uequal error protection for layered protection applications |
| US7810017B2 (en) * | 2006-03-20 | 2010-10-05 | Micron Technology, Inc. | Variable sector-count ECC |
| KR100843135B1 (ko) * | 2006-11-20 | 2008-07-02 | 삼성전자주식회사 | 비휘발성 메모리 관리 방법 및 장치 |
| US7873779B2 (en) | 2007-05-14 | 2011-01-18 | Qualcomm Incorporated | Memory page size auto detection |
| WO2009053962A2 (en) * | 2007-10-22 | 2009-04-30 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
| JP5150245B2 (ja) * | 2007-12-27 | 2013-02-20 | 株式会社東芝 | 半導体記憶装置 |
| EP2592552B1 (en) * | 2008-03-11 | 2015-11-25 | Agere Systems Inc. | Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding |
| KR101398200B1 (ko) * | 2008-03-18 | 2014-05-26 | 삼성전자주식회사 | 메모리 장치 및 인코딩/디코딩 방법 |
| CN101999117B (zh) * | 2008-04-11 | 2013-12-25 | Lg电子株式会社 | 能像光盘驱动器操作的存储器驱动器及用于将存储器驱动器虚拟化为光盘驱动器的方法 |
| US8321652B2 (en) | 2008-08-01 | 2012-11-27 | Infineon Technologies Ag | Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks |
| CN101676882B (zh) | 2008-09-16 | 2013-01-16 | 美光科技公司 | 存储器装置的内嵌映射信息 |
| US8732388B2 (en) * | 2008-09-16 | 2014-05-20 | Micron Technology, Inc. | Embedded mapping information for memory devices |
| US20100070733A1 (en) | 2008-09-18 | 2010-03-18 | Seagate Technology Llc | System and method of allocating memory locations |
| KR100965051B1 (ko) | 2008-10-01 | 2010-06-21 | 서울시립대학교 산학협력단 | 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치 |
| WO2010125574A1 (en) * | 2009-04-27 | 2010-11-04 | Kamlesh Gandhi | Description |
| US20110004720A1 (en) | 2009-07-02 | 2011-01-06 | Chun-Ying Chiang | Method and apparatus for performing full range random writing on a non-volatile memory |
| TWI400707B (zh) * | 2009-07-09 | 2013-07-01 | Phison Electronics Corp | 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 |
| US8402217B2 (en) | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
| US8266501B2 (en) | 2009-09-29 | 2012-09-11 | Micron Technology, Inc. | Stripe based memory operation |
| US8468294B2 (en) * | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
| KR20110073932A (ko) * | 2009-12-24 | 2011-06-30 | 주식회사 하이닉스반도체 | Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법 |
| US8589766B2 (en) | 2010-02-24 | 2013-11-19 | Apple Inc. | Codeword remapping schemes for non-volatile memories |
| US8406051B2 (en) | 2010-05-17 | 2013-03-26 | Seagate Technology Llc | Iterative demodulation and decoding for multi-page memory architecture |
| US8254167B2 (en) | 2010-05-17 | 2012-08-28 | Seagate Technologies Llc | Joint encoding of logical pages in multi-page memory architecture |
| TWI496161B (zh) * | 2010-08-06 | 2015-08-11 | Phison Electronics Corp | 記憶體識別碼產生方法、管理方法、控制器與儲存系統 |
| TWI451435B (zh) * | 2010-10-08 | 2014-09-01 | Phison Electronics Corp | 非揮發性記憶體儲存裝置、記憶體控制器與資料儲存方法 |
| WO2012056491A1 (en) * | 2010-10-26 | 2012-05-03 | Hitachi, Ltd. | Storage apparatus and data control method |
| TWI579692B (zh) * | 2010-10-29 | 2017-04-21 | 三星電子股份有限公司 | 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法 |
| US8626989B2 (en) * | 2011-02-02 | 2014-01-07 | Micron Technology, Inc. | Control arrangements and methods for accessing block oriented nonvolatile memory |
| US8589761B2 (en) * | 2011-05-31 | 2013-11-19 | Micron Technology, Inc. | Apparatus and methods for providing data integrity |
| US8880977B2 (en) * | 2011-07-22 | 2014-11-04 | Sandisk Technologies Inc. | Systems and methods of storing data |
-
2012
- 2012-03-15 US US13/421,088 patent/US9026887B2/en active Active
-
2013
- 2013-03-08 CN CN201380023613.0A patent/CN104272262B/zh active Active
- 2013-03-08 EP EP13762035.7A patent/EP2825960B1/en active Active
- 2013-03-08 CN CN201711351793.1A patent/CN107967187B/zh active Active
- 2013-03-08 KR KR1020147028217A patent/KR101660150B1/ko active Active
- 2013-03-08 CN CN201911060952.1A patent/CN110941507A/zh active Pending
- 2013-03-08 JP JP2015500482A patent/JP6053078B2/ja active Active
- 2013-03-08 WO PCT/US2013/029919 patent/WO2013138190A1/en not_active Ceased
- 2013-03-15 TW TW102109362A patent/TWI514139B/zh active
-
2015
- 2015-04-08 US US14/681,564 patent/US10055285B2/en active Active
-
2018
- 2018-07-31 US US16/050,585 patent/US10664345B2/en active Active
-
2020
- 2020-05-11 US US16/871,641 patent/US11354187B2/en active Active
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI664531B (zh) * | 2018-01-25 | 2019-07-01 | 矽創電子股份有限公司 | 快閃記憶體之控制器及控制方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US10055285B2 (en) | 2018-08-21 |
| US20150212882A1 (en) | 2015-07-30 |
| EP2825960A1 (en) | 2015-01-21 |
| CN104272262B (zh) | 2018-01-19 |
| US20200272538A1 (en) | 2020-08-27 |
| KR20140139545A (ko) | 2014-12-05 |
| KR101660150B1 (ko) | 2016-09-26 |
| US20180336093A1 (en) | 2018-11-22 |
| US9026887B2 (en) | 2015-05-05 |
| CN110941507A (zh) | 2020-03-31 |
| US10664345B2 (en) | 2020-05-26 |
| CN104272262A (zh) | 2015-01-07 |
| CN107967187A (zh) | 2018-04-27 |
| TWI514139B (zh) | 2015-12-21 |
| EP2825960B1 (en) | 2019-04-24 |
| WO2013138190A1 (en) | 2013-09-19 |
| JP6053078B2 (ja) | 2016-12-27 |
| CN107967187B (zh) | 2019-11-26 |
| EP2825960A4 (en) | 2016-01-06 |
| JP2015510213A (ja) | 2015-04-02 |
| US11354187B2 (en) | 2022-06-07 |
| US20130246891A1 (en) | 2013-09-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI514139B (zh) | 實體頁、邏輯頁及碼字對應 | |
| CN110597654B (zh) | 用于超快的具有奇偶校验的纠错码的系统和方法 | |
| CN103348330B (zh) | 采用独立硅元件的动态较高级冗余模式管理 | |
| KR102101650B1 (ko) | 비-휘발성 메모리에 대한 혼합된 입도 상위-레벨 리던던시 | |
| JP6285709B2 (ja) | 冗長アレイによる不揮発性メモリのプログラム障害回復 | |
| CN115083486B (zh) | 带有混合奇偶的tlc数据编程 | |
| US9292382B2 (en) | Codewords that span pages of memory | |
| CN107678695B (zh) | 基于可用存储器空间选择冗余存储配置 | |
| US20150220386A1 (en) | Data integrity in memory controllers and methods | |
| US20130304970A1 (en) | Systems and methods for providing high performance redundant array of independent disks in a solid-state device | |
| US12007840B2 (en) | Storage controller, operation method thereof | |
| US11537510B2 (en) | Storage devices having minimum write sizes of data | |
| CN114730247B (zh) | 具有数据的最小写入大小的存储设备 | |
| US12197743B2 (en) | Parity protection in non-volatile memory | |
| TWI531902B (zh) | 矽獨立元件之部分冗餘陣列 | |
| US10922025B2 (en) | Nonvolatile memory bad row management | |
| WO2023050147A1 (zh) | 用于存储器的数据保护方法及其存储装置 | |
| WO2010150283A2 (en) | Disk storage performance using digital memory and data compression |