TWI707345B - 快閃記憶體裝置及快閃記憶體儲存管理方法 - Google Patents
快閃記憶體裝置及快閃記憶體儲存管理方法 Download PDFInfo
- Publication number
- TWI707345B TWI707345B TW109105951A TW109105951A TWI707345B TW I707345 B TWI707345 B TW I707345B TW 109105951 A TW109105951 A TW 109105951A TW 109105951 A TW109105951 A TW 109105951A TW I707345 B TWI707345 B TW I707345B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- flash memory
- written
- block
- data block
- Prior art date
Links
Images
Classifications
-
- 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
- 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
- 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
-
- 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/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; 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
- 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; 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; 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
-
- 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/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/061—Improving I/O performance
-
- 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
-
- 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
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種快閃記憶體儲存管理方法包括:提供一快閃記憶體模組,該快閃記憶體模組包括複數個單層單元資料區塊以及至少一多層單元資料區塊;將一筆欲寫入之資料分類為複數群資料;分別執行單層單元資料寫入以及執行一類似容錯式磁碟陣列的錯誤更正編碼操作產生一對應的校驗碼,以將複數群資料以及該對應的校驗碼寫入至該些單層單元資料區塊;當完成該些單層單元資料區塊的寫入時,執行內部複製,將該些單層單元資料區塊所儲存之該複數群資料以及該對應校驗碼,依該些單層單元資料區塊的儲存順序,依序寫入至該至少一多層單元資料區塊。
Description
本發明係關於一種快閃記憶體裝置,尤指一種執行一類似容錯式磁碟陣列的錯誤更正編碼操作之快閃記憶體裝置與儲存管理方法。
一般而言,對於一快閃記憶體控制器執行資料寫入以寫入一筆資料至單層單元資料區塊或是多層單元資料區塊,傳統的機制係採用於例如在一資料區塊的一字元線的最後一頁放置該字元線之其他資料頁所對應的校驗碼,使得當發生寫入失敗、字元線斷路及字元線短路時可利用該對應的校驗碼來進行一定程度的錯誤更正,然而,這樣的資料儲存率過低,例如一字元線如果包括8張資料頁,則僅有7張資料頁用來存資料,另一張資料頁是用來儲存校驗碼,如此一來,一個資料區塊中將會有1/8的比例是用來儲存校驗碼,而非用來儲存資料,就使用者的角度來說,無法被接受。
因此,本發明的目的之一在於提供一種快閃記憶體裝置及對應的快閃記憶體儲存管理方法,採用一類似容錯式磁碟陣列的錯誤更正編碼操作,降低錯誤發生率,降低傳統機制所需要使用的校驗碼數目,同時適當地將所需的校驗碼儲存於對應的資料頁位置,令發生寫入失敗、字元線斷路及字元線短路時仍可利用所需的校驗碼來進行一定程度的錯誤更正,解決了上述的問題。
根據本發明一實施例,其揭露了一種快閃記憶體裝置。快閃記憶體裝置包含有一快閃記憶體模組與快閃記憶體控制器,快閃記憶體模組包括複數個單層單元資料區塊以及至少一多層單元資料區塊,快閃記憶體控制器具有複數條通道分別連接至快閃記憶體模組,快閃記憶體控制器係將一筆欲寫入之資料分類為複數群的資料,快閃記憶體控制器分別執行單層單元資料寫入以及執行一類似容錯式磁碟陣列的錯誤更正編碼操作產生一對應的校驗碼,以將複數群的資料以及對應的校驗碼寫入至複數個單層單元資料區塊;當完成複數個單層單元資料區塊的寫入時,快閃記憶體模組係執行內部複製,將複數個單層單元資料區塊所儲存之複數群的資料以及對應的校驗碼,依資料的先後順序,依序搬移寫入至至少一多層單元資料區塊。
根據本發明一實施例,另揭露了一種快閃記憶體儲存管理方法。該方法包含有:提供一快閃記憶體模組,該快閃記憶體模組包括複數個單層單元資料區塊以及至少一多層單元資料區塊;將一筆欲寫入之資料分類為複數群的資料;分別執行單層單元資料寫入以及執行一類似容錯式磁碟陣列的錯誤更正編碼操作產生一對應的校驗碼,以將複數群的資料以及該對應的校驗碼寫入至該複數個單層單元資料區塊;當完成該複數個單層單元資料區塊的寫入時,執行一內部複製,將該複數個單層單元資料區塊所儲存之該複數群的資料以及該對應的校驗碼,依資料的先後順序,依序搬移寫入至該至少一多層單元資料區塊。
請參照第1圖,其係為本發明一實施例之快閃記憶體裝置100的裝置示意圖。快閃記憶體裝置100包含快閃記憶體模組105及快閃記憶體控制器110,快閃記憶體模組105為一個具有二維平面架構的快閃記憶體模組;然此並非本案的限制。快閃記憶體模組105包含多個快閃記憶體晶片(並未繪示於第1圖),每一快閃記憶體晶片包括多個單層單元資料區塊(single-level cell (SLC) block)及多個多層單元資料區塊(multiple-lelve-cell block),單層單元資料區塊的每一單元可儲存2位元的資料,多層單元資料區塊的每一單元可儲存2
N位元的資料,N大於或等於2並為整數,多層單元資料區塊例如包括有MLC區塊(multi-level cell block)之單元可儲存2
2位元的資料、TLC區塊(triple-level cell block)之單元可儲存2
3元的資料、QLC區塊(quad-level cell block)之單元可儲存2
4位元的資料,依此類推。
快閃記憶體控制器110可通過複數條通道連接至快閃記憶體模組105,使可利用不同條通道同時寫入資料至不同的快閃記憶體晶片,增加寫入效率,快閃記憶體控制器110包括一錯誤更正碼編碼電路1101及一校驗碼(parity check code)緩衝器1102,錯誤更正碼編碼電路1101用以對資料進行以一錯誤更正碼編碼操作,例如本案之實施例中包括里德-所羅門碼(Reed-solomon codes)的編碼操作及/或互斥或(exclusive-OR,XOR)運算的編碼操作,以產生相對應的校驗碼,校驗碼緩衝器1102用以暫存所產生之相對應的校驗碼,而快閃記憶體控制器110係用以一類似容錯式磁碟陣列(Redundant Array of Independent Disks, RAID)的資料管理機制,將一筆資料寫入不同的快閃記憶體晶片,降低出錯率,並在寫入資料至單層單元資料區塊時即同時考慮不同編碼操作的校驗碼於單層單元資料區塊的儲位位置以及於TLC資料區塊的儲存位置,令在寫入資料至單層單元資料區塊時可更正資料出錯以及後續快閃記憶體模組105通過內部複製(internal copy)操作由單層單元區塊將資料複製搬移至TLC資料區塊時亦可更正資料出錯。
實作上,為求資料寫入的效率及降低出錯率,快閃記憶體模組105包括多個通道(本案之實施例為2個通道,但非限定),當一通道執行某一資料頁(page)的寫入時,可採用另一通道來執行另一資料頁的寫入,而不需要等候該通道,每一通道在快閃記憶體控制器110中有各自的序列傳輸器(sequencer)且均包含了多個快閃記憶體晶片(本案之實施例為2個晶片,但非限定),使得一個通道可同時對多個快閃記憶體晶片執行不同資料頁的寫入,而不需要等候其中一個晶片,此外,每一快閃記憶體晶片可具有一折疊設計(folded)而具有不同的兩個平面(plane),令一個快閃記憶體晶片在資料寫入時可同時利用不同兩平面上的兩個資料區塊來執行不同資料頁的寫入,而不需要等候其中某一個資料區塊。因此,快閃記憶體模組105的一個超級資料區塊(super block)係由多個通道的多個快閃記憶體晶片的多個資料頁所組成。上述的快閃記憶體控制器110即係將資料以超級資料區塊為單位來進行寫入,先將資料寫入至快閃記憶體模組105內的單層單元資料區塊,由單層單元資料區塊緩衝,後續再從該些單層單元資料區塊將資料複製搬移至TLC資料區塊內。另外,應注意的是,其他實施例中,每一快閃記憶體晶片可不具有折疊設計,亦即,一個快閃記憶體晶片在資料寫入時係利用一資料區塊來執行一資料頁的寫入,其他資料頁的寫入需要等候時間。
就資料寫入的流程而言,一筆資料會先被快閃記憶體控制器110寫入至多個單層單元資料區塊1051A~1051C,之後再從該些單層單元資料區塊1051A~1051C搬移至多層單元資料區塊1052,例如,在本實施例,係以TLC單元為架構的多層資料區塊為例,TLC單元可儲存2
3位元的資訊,也就是說,三個單層單元資料區塊(以下簡稱為SLC資料區塊)1051A~1051C的資料會被寫入至一個TLC資料區塊1052,據此,考量到需要共同對SLC資料區塊1051A~1051C的寫入以及TLC資料區塊1052的寫入進行錯誤更正的保護,快閃記憶體控制器110係將一筆資料分類為三個群(group)的資料,應注意的是,如果係以MLC單元為架構的多層資料區塊為例,由於MLC單元可儲存2
2位元的資訊,所以快閃記憶體控制器110會將該筆資料分類為兩個群的資料,而如果係以QLC單元為架構的多層資料區塊為例,由於QLC單元可儲存2
4位元的資訊,所以快閃記憶體控制器110會將該筆資料分類為四個群的資料;依此類推。也就是說,當上述多層單元資料區塊1052之單元可儲存具有2
N位元的資訊,N大於等於2並為整數,單層單元資料區塊的數目會設計為N個SLC資料區塊,快閃記憶體控制器110係將該筆欲寫入之資料分類為N個群的資料,以分別寫入至N個SLC資料區塊。
在本實施例中,當快閃記憶體控制器110將該筆資料分類為三個群的資料後,會接著執行第一次的資料寫入(SLC program)將第一群的資料寫入上述第一個SLC資料區塊1051A以及利用錯誤更正碼編碼電路1101產生對應的校驗碼並寫入至第一個SLC資料區塊1051A中,如此便完成一次SLC資料區塊的寫入操作,之後快閃記憶體控制器110接著執行第二次的資料寫入(SLC program)將第二群的資料寫入上述第二個SLC資料區塊1051B以及利用錯誤更正碼編碼電路1101產生對應的校驗碼並寫入至第二個SLC資料區塊1051B中,如此便完成第二次的SLC資料區塊的寫入操作,以及快閃記憶體控制器110接著執行第三次的資料寫入(SLC program)將第三群的資料寫入上述第三個SLC資料區塊1051C以及利用錯誤更正碼編碼電路1101產生對應的校驗碼並寫入至第三個SLC資料區塊1051C中,如此便完成第三次的SLC資料區塊的寫入操作。
當快閃記憶體控制器110執行某一次的資料寫入(SLC program)將某一群的資料寫入某一個SLC資料區塊時,或該次資料寫入之後,快閃記憶體控制器110會檢測是否出錯,如果資料有錯,例如發生某一SLC資料區塊寫入的寫入失敗(program fail)、一字元線斷路(one word line open)及/或兩字元線短路(two word line short)的情況,快閃記憶體控制器110會利用錯誤更正碼編碼電路1101於該次資料寫入時所產生之對應校驗碼來更正上述的錯誤。
當前述三個群的資料均寫入至三個SLC資料區塊時1051A~1051C或者某一個SLC資料區塊的資料寫入已完成時,快閃記憶體模組105係執行內部複製,從該些SLC資料區塊1051A~1051C或某一個SLC資料區塊中將三個群的資料或某一群的資料複製搬移並依三個群的資料順序執行資料寫入(TLC program)至一個TLC資料區塊1052(亦即前述的超級資料區塊),TLC資料區塊1052係由不同通道的不同快閃記憶體晶片的字元線的資料頁所組成,例如,TLC資料區塊1052的一字元線的一資料頁包括有上資料頁(upper page)、中間資料頁(middle page)以及下資料頁(lower page),快閃記憶體模組105的內部複製係依順序例如將一SLC資料區塊的第N條字元線上的多個資料頁寫入至TLC資料區塊1052之一字元線的多個上資料頁,將該SLC資料區塊的第N+1條字元線上的多個資料頁寫入至TLC資料區塊1052之同一字元線的多個中間資料頁,以及將該SLC資料區塊的第N+2條字元線上的多個資料頁寫入至TLC資料區塊1052之同一字元線的多個下資料頁。待所有三個群的資料均寫入至TLC資料區塊1052,如此便完成了該超級資料區塊的寫入操作。
應注意的是,為了令內部複製易於實現、符合TLC資料區塊1052的亂數種子數(randomizer seed)規則要求、以及同時考量錯誤更正編碼能力以降低出錯率,該內部複製操作係只是依資料的順序將資料搬移至TLC資料區塊1052的多條字元線的上、中、下資料頁的位置,而由快閃記憶體控制器110於寫入不同群的資料以及對應產生之校驗碼至該些SLC資料區塊1051A~1051C時,同時依據TLC資料區塊的亂數種子數規則要求以及考量錯誤更正編碼之校驗碼的寫入儲存位置,令錯誤更正碼編碼電路1101的錯誤更正編碼能力可於執行一次SLC資料區塊的寫入操作時更正SLC資料區塊的寫入失敗、一字元線斷路及/或兩字元線短路所造成的錯誤,以及可於執行該超級資料區塊的寫入操作時更正TLC資料區塊1052的寫入失敗、一字元線斷路及/或兩字元線短路所造成的錯誤。
此外,如果快閃記憶體模組105進行記憶體垃圾回收(garbage collection),快閃記憶體控制器110係通過外部讀取,從該些SLC資料區塊1051A~1051C中讀取出資料並重新進行錯誤更正的編碼來執行資料寫入(SLC program),及/或從TLC資料區塊1052中讀取出資料並重新進行錯誤更正的編碼來執行資料寫入(SLC program)。此外,如果寫入資料(SLC program)至一SLC資料區塊且突然發生關機時,快閃記憶體控制器110係從該SLC資料區塊讀回資料並重新進行錯誤更正的編碼、寫入資料(SLC program)至另一新的SLC資料區塊。此外,如果寫入資料(TLC program)至TLC資料區塊1052且突然發生關機時,快閃記憶體模組105係放棄該TLC資料區塊1052中目前所儲存之資料,並從該些SLC資料區塊1051A~1051C,通過內部複製重新將對應的資料執行TLC資料寫入(TLC program)至該TLC資料區塊1052。
請參照第2圖,第2圖為本發明第一實施例第1圖所示之快閃記憶體控制器110執行SLC資料寫入(SLC program)將某一群之資料寫入至快閃記憶體模組105內之一SLC資料區塊以執行一次SLC資料區塊寫入操作的示意圖。快閃記憶體控制器110之錯誤更正碼編碼電路1101係對資料執行以一類似容錯式磁碟陣列的里德-所羅門(Reed Solomon,RS)編碼操作,產生相對應的校驗碼,而校驗碼緩衝器1102用以暫存所產生之相對應的校驗碼。
快閃記憶體模組105內包括有兩個通道,並包括兩個快閃記憶體晶片及每一晶片的兩組區塊有兩不同平面,為求寫入效率,快閃記憶體控制器110係通過兩個通道寫入資料至快閃記憶體模組105內的兩個快閃記憶體晶片的兩區塊。如第2圖之實施方式所示,一SLC資料區塊包括有例如128條字元線(分別由WL0至WL127表示之),該SLC資料區塊可以是由一個SLC資料區塊或是一組SLC子資料區塊所組成,視SLC資料區塊的定義而變,為方便描述,在實施例係將包括128條字元線視為一個SLC資料區塊的大小,其中每一條字元線包括有例如8個資料頁,以該SLC資料區塊的第一條字元線WL0為例,快閃記憶體控制器110藉由通道CH0及摺疊平面PLN0、PLN1將資料頁P1、P2寫入至快閃記憶體晶片CE0,接著藉由同一通道CH0及摺疊平面PLN0、PLN1將資料頁P3、P4寫入至另一快閃記憶體晶片CE1,接著由另一通道CH1及摺疊平面PLN0、PLN1將資料頁P5、P6寫入至快閃記憶體晶片CE0,接著藉由通道CH1及摺疊平面PLN0、PLN1將資料頁P7、P8寫入至快閃記憶體晶片CE1。其他則依此類推。
快閃記憶體控制器110係將一個SLC資料區塊的多個字元線WL0至WL127依順序將每M條字元線編類為一組,M為大於或等於2的正整數,M例如為3,例如字元線WL0~WL2為第一組,字元線WL3~WL5為第二組,字元線WL6~WL8為第三組,字元線WL9~WL11為第四組…,字元線WL120~WL122為倒數第三組,字元線WL123~WL125為倒數第二組,最後一組字元線為WL126、WL127,其中第一、第三、第五組…等等的字元線為奇數組字元線,而第二、第四、第六組…等等的字元線為偶數組字元線,快閃記憶體控制器110每次寫入一組字元線之資料(包括三條字元線之資料),係利用錯誤更正碼編碼電路1101對於該組字元線之資料執行錯誤更正編碼,並將所產生之對應之部分的校驗碼(partial parity code)輸出至校驗碼緩衝器1102,以暫存部分的校驗碼。
校驗碼緩衝器1102於暫存部分的校驗碼時係將奇數組字元線資料所對應之部分的校驗碼儲存於一第一緩衝區1102A,將偶數組字元線資料所對應之部分的校驗碼儲存於一第二緩衝區1102B,舉例來說,當寫入字元線WL0~WL2之資料頁P1~P24時,錯誤更正碼編碼電路1101係對於資料頁P1~P24執行錯誤更正編碼,並將所產生之對應之部分的校驗碼輸出至校驗碼緩衝器1102,暫存於第一緩衝區1102A;接著當寫入字元線WL3~WL5之資料頁P1~P24, 錯誤更正碼編碼電路1101係對於資料頁P1~P24執行錯誤更正編碼,並將所產生之對應之部分的校驗碼輸出至校驗碼緩衝器1102,暫存於第二緩衝區1102B;接著錯誤當寫入字元線WL6~WL8之資料頁P25~P48,錯誤更正碼編碼電路1101係對於資料頁P25~P48執行錯誤更正編碼,並將所產生之對應之部分的校驗碼輸出至校驗碼緩衝器1102,暫存於第一緩衝區1102A;後續的資料頁寫入與編碼操作係依此類推…;之後,當寫入字元線WL120~WL122之資料頁,錯誤更正碼編碼電路1101係對於字元線WL120~WL122之資料頁執行編碼,並將所產生之對應之部分的校驗碼輸出至校驗碼緩衝器1102,暫存於第一緩衝區1102A。
接著,快閃記憶體控制器110於寫入偶數組字元線的最後一組字元線(WL123~WL125)時,除了執行資料寫入(SLC program)與對應的錯誤更正編碼外,亦將第二緩衝區1102B所暫存之所有偶數組字元線之資料的部分校驗碼讀回,並將偶數組字元線之資料所對應之所有校驗碼寫入至最後一組偶數組字元線之最後一條字元線WL125的資料頁,例如最後3個資料頁(標記為205),以儲存偶數組字元線之資料所對應的里德-所羅門校驗碼。
另外,對於寫入最後一組奇數組字元線的最後一條字元線WL127時,快閃記憶體控制器110除了執行資料寫入(SLC program)與對應的錯誤更正編碼外,會將第一緩衝區1102A所暫存之所有奇數組字元線之資料的部分校驗碼讀回,並將奇數組字元線之資料所對應之所有校驗碼寫入至最後一組奇數組字元線之最後一條字元線WL127的資料頁,例如最後3個資料頁(標記為210),以儲存奇數組字元線之資料所對應的里德-所羅門校驗碼。如此便完成一次SLC資料區塊的寫入。因此,就里德-所羅門編碼操作而言,奇數組字元線之資料所對應的校驗碼係儲存於最後一組奇數組字元線之最後一條字元線WL127的最後複數張資料頁的位置,而偶數組字元線之資料所對應的校驗碼係儲存於最後一組偶數組字元線之最後一條字元線WL125的最後複數張資料頁的位置。
此外,錯誤更正碼編碼電路1101在第2圖所示之實施例所執行的是里德-所羅門編碼操作,可更正發生在SLC資料區塊之任意三個位置之資料頁的出錯,舉例來說,錯誤更正碼編碼電路1101對於字元線WL0~WL2的三條字元線的資料執行錯誤更正編碼並產生相對應的部分校驗碼,如果同一通道的相同晶片的同一摺疊平面的三個資料頁出錯,例如資料頁P1、P9、P17出錯,錯誤更正碼編碼電路1101可利用所產生之相對應的部分校驗碼,將該三個資料頁的錯誤更正。
如果於執行該次SLC資料區塊的寫入時檢測到發生寫入失敗(program fail)的情況,例如以發生機率來說,例如檢測到資料頁P9寫入失敗,錯誤更正碼編碼電路1101可利用所產生之相對應的部分校驗碼,將資料頁P9的錯誤更正。
如果於執行該次SLC資料區塊的寫入時檢測到發生一字元線斷路(one word line open)而造成例如資料頁P9錯誤,錯誤更正碼編碼電路1101可利用所產生之相對應的部分校驗碼,將資料頁P9的錯誤更正。
如果於執行該次SLC資料區塊的寫入時檢測到發生兩字元線短路(two word line short)而造成例如資料頁P9、P17均錯誤,錯誤更正碼編碼電路1101可利用所產生之相對應的部分校驗碼,將資料頁P9、P17的錯誤更正。如果發生兩字元線短路而造成例如字元線WL2的資料頁P17與字元線WL3的資料頁P1出錯,錯誤更正碼編碼電路1101可利用一組字元線WL0~WL2的部分校驗碼以及另一組字元線WL3~WL5的部分校驗碼,分別將字元線WL2的資料頁P17與字元線WL3的資料頁P1的錯誤更正。如果發生兩字元線短路而造成例如字元線WL0的資料頁P1、P2錯誤,錯誤更正碼編碼電路1101可利用一組字元線WL0~WL2的部分校驗碼,分別將字元線WL0的資料頁P1、P2的錯誤更正。
因此,無論是在執行SLC資料區塊寫入時發生寫入失敗、一字元線斷路或兩字元線短路所造成的資料頁錯誤,錯誤更正碼編碼電路1101均可對應地更正該些錯誤的資料頁。
請參照第3圖,第3圖為快閃記憶體模組105內之一SLC資料區塊通過內部複製將資料寫入至TLC資料區塊1052的示意圖。如第3圖所示,一SLC資料區塊之一組三條字元線資料係寫入至TLC資料區塊1052之一字元線,對應地形成該字元線之一資料頁的最低有效位LSB、中間有效位CSB及最高有效位MSB的資料,例如SLC資料區塊之字元線資料WL0~WL2寫入至TLC資料區塊1052,作為該TLC資料區塊1052之字元線WL0之最低有效位LSB、中間有效位CSB及最高有效位MSB的資料;SLC資料區塊之字元線資料WL3~WL5寫入至TLC資料區塊1052,作為該TLC資料區塊1052之字元線WL1之最低有效位LSB、中間有效位CSB及最高有效位MSB的資料;SLC資料區塊之字元線資料WL6~WL8寫入至TLC資料區塊1052,作為該TLC資料區塊1052之字元線WL2之最低有效位LSB、中間有效位CSB及最高有效位MSB的資料;也就是說,快閃記憶體模組105的內部複製係將SLC資料區塊之資料依字元線的順序搬移並寫入填入至TLC資料區塊的字元線內。
請參照第4圖,第4圖為本發明第一實施例第1圖所示之快閃記憶體控制器110寫入三個群組之資料至快閃記憶體模組105內的多個SLC資料區塊1051A~1051C並通過內部複製將資料搬移寫入至TLC資料區塊而形成一個超級資料區塊的示意圖。由於錯誤更正碼編碼電路1101於每次執行SLC資料區塊的寫入時,均把資料分類為奇數組字元線及偶數組字元線兩組,並將對應產生之校驗碼儲存於奇數組字元線之最後一字元線的最後3張資料頁及偶數組字元線之最後一字元線的最後3張資料頁,因此,當執行TLC資料區塊的寫入時,如第4圖所示,第一個群組之資料的奇數組字元線的對應之校驗碼係儲存於超級區塊之字元線WL42的中間有效位CSB的最後三個資料頁(標記為401A),而第一個群組之資料的偶數組字元線的對應之校驗碼係儲存於超級區塊之字元線WL41的最高有效位MSB的最後三個資料頁(標記為401B);第二個群組之資料的奇數組字元線的對應之校驗碼係儲存於超級區塊之字元線WL85的最低有效位LSB的最後三個資料頁(標記為402A),而第二個群組之資料的偶數組字元線的對應之校驗碼係儲存於超級區塊之字元線WL84的最高有效位MSB的最後三個資料頁(標記為402B);第三個群組之資料的奇數組字元線的對應之校驗碼係儲存於超級區塊之字元線WL127的最高有效位MSB的最後三個資料頁(標記為403A),而第三個群組之資料的偶數組字元線的對應之校驗碼係儲存於超級區塊之字元線WL127之最低有效位LSB的最後三個資料頁(標記為403B)。
如果檢測到兩字元線短路而造成例如該超級區塊之字元線WL0、WL1的兩資料頁(如框線404所標示)發生錯誤,快閃記憶體模組105可利用字元線WL42之中間有效位CSB的最後三張資料頁上儲存之校驗碼401A來更正字元線WL0之資料頁的錯誤,以及利用字元線WL41之最高有效位MSB之最後三張資料頁上儲存之校驗碼401B來更正字元線WL1之資料頁的錯誤。
相同地,如果檢測到兩字元線短路而造成例如該超級區塊之字元線WL43、WL44的兩資料頁(如框線405所標示)發生錯誤,快閃記憶體模組105可利用字元線WL85之最後三張資料頁之最低有效位LSB上儲存之校驗碼402A來更正405所標示之字元線WL43之一資料頁之最低有效位LSB、中間有效位CSB的錯誤以及字元線WL44之一資料頁之最高有效位MSB的錯誤,以及利用字元線WL84之最後三張資料頁之中間有效位CSB上儲存之校驗碼402B,來更正405所標示之字元線WL43一資料頁之最高有效位MSB之錯誤以及字元線WL44一資料頁之最低有效位LSB、中間有效位CSB的錯誤。
相同地,如果是檢測到兩字元線短路而造成例如該TLC資料區塊之字元線WL125、WL126的兩資料頁(如框線406所標示)發生錯誤,快閃記憶體模組105可利用字元線WL127之最後三張資料頁之最高有效位MSB上儲存之校驗碼403A來更正406所標示之字元線WL125一資料頁之中間有效位CSB、最高有效位MSB的錯誤以及字元線WL126一資料頁之最高有效位MSB的錯誤,以及利用字元線WL127之最後三張資料頁之最低有效位LSB上儲存之校驗碼403B,來更正406所標示之字元線WL125一資料頁之最低有效位LSB之錯誤以及406所標示之字元線WL126一資料頁之中間有效位CSB、最高有效位MSB的錯誤。
如果是檢測到一字元線斷路或寫入失敗而造成超級區塊之任一字元線的任一資料頁發生錯誤(亦即連續任意三張子資料頁出錯),則快閃記憶體模組105均可利用對應儲存之校驗碼來更正連續任意三張子資料頁的錯誤。
也就是說,通過快閃記憶體控制器110寫入三個群組之資料至快閃記憶體模組105內的多個SLC資料區塊1051A~1051C的校驗碼之儲存位置管理設計,當快閃記憶體模組105通過內部複製將該些資料從多個SLC資料區塊1051A~1051C複製寫入至TLC資料區塊而形成一個超級資料區塊時,如果檢測到一字元線斷路、兩字元線短路或寫入失敗的錯誤,均可由多個SLC資料區塊1051A~1051C所儲存之校驗碼來進行更正。
再者,請參照第5圖,第5圖為本發明第二實施例第1圖所示之快閃記憶體控制器110執行資料寫入(SLC program)以寫入一個群之資料至快閃記憶體模組105內之SLC資料區塊以完成一次SLC資料區塊寫入操作的示意圖。快閃記憶體控制器110之錯誤更正碼編碼電路1101係對資料執行以一類似容錯式磁碟陣列的互斥或運算的編碼操作,產生相對應的校驗碼,而校驗碼緩衝器1102用以暫存所產生之相對應的校驗碼。此外,錯誤更正碼編碼電路1101的互斥或運算包括有三個不同的編碼引擎以對SLC資料區塊的不同字元線資料進行互斥或運算;詳細操作內容如下所述。
快閃記憶體模組105內包括有兩個通道,並包括兩個快閃記憶體晶片,為求寫入效率,快閃記憶體控制器110係通過兩個通道寫入資料至快閃記憶體模組105內的兩個快閃記憶體晶片,將一個SLC資料區塊之資料頁分別程式化至不同快閃記憶體晶片內,快閃記憶體控制器110的一次SLC資料區塊寫入操作所寫入的資料包括128條字元線(分別由WL0至WL127表示之),每一條字元線包括8個資料頁,例如以字元線WL0為例,錯誤更正碼編碼電路1101藉由通道CH0及PLN0、PLN1將資料頁P1、P2寫入至快閃記憶體晶片CE0,接著藉由同一通道CH0及PLN0、PLN1將資料頁P3、P4寫入至另一快閃記憶體晶片CE1,接著由另一通道CH1及PLN0、PLN1將資料頁P5、P6寫入至快閃記憶體晶片CE0,接著藉由通道CH1及PLN0、PLN1將資料頁P7、P8寫入至快閃記憶體晶片CE1。
錯誤更正碼編碼電路1101係將一個SLC資料區塊的多個字元線WL0至WL127依順序將每M條字元線編類為一組,M為大於或等於2的正整數,M例如為3,例如字元線WL0~WL2為第一組,字元線WL3~WL5為第二組,字元線WL6~WL8為第三組,字元線WL9~WL11為第四組…,字元線WL120~WL122為倒數第三組,字元線WL123~WL125為倒數第二組,最後一組字元線為WL126、WL127,其中第一、第三、第五組…等等的字元線為奇數組字元線,而第二、第四、第六組…等等的字元線為偶數組字元線,快閃記憶體控制器110每次寫入一組字元線之資料(包括三條字元線之資料),係利用錯誤更正碼編碼電路1101對於該組字元線之資料執行互斥或運算的錯誤更正編碼,並將所產生之對應之部分的校驗碼(partial parity code)輸出至校驗碼緩衝器1102,以暫存部分的校驗碼。
錯誤更正碼編碼電路1101每次寫入資料至一組三條不同字元線時,係採用三個不同的編碼引擎對於所寫入之資料執行互斥或運算的編碼,並將所產生之對應之部分的校驗碼輸出至校驗碼緩衝器1102,以暫存部分的校驗碼,而校驗碼緩衝器1102於暫存部分的校驗碼時係將奇數組之字元線資料所對應之部分的校驗碼儲存於一第一緩衝區,將偶數組之字元線資料所對應之部分的校驗碼儲存於一第二緩衝區。
舉例來說,錯誤更正碼編碼電路1101包括有第一編碼引擎、第二編碼引擎及第三編碼引擎,當寫入字元線WL0~WL2之資料頁P1~P24,依序利用第一編碼引擎對於字元線WL0的資料頁P1~P8執行互斥或運算以產生一第一部分校驗碼、利用第二編碼引擎對於字元線WL1的資料頁P9~P16進行互斥或運算以產生一第二部分校驗碼以及利用第三編碼引擎對於字元線WL2的資料頁P17~P24進行互斥或運算以產生一第三部分校驗碼,並將所產生之該些部分校驗碼分別輸出至校驗碼緩衝器1102,暫存於第一緩衝區;接著錯誤更正碼編碼電路1101寫入字元線WL3~WL5之資料頁P1~P24,依序利用第一編碼引擎對於字元線WL3的資料頁P1~P8執行互斥或運算以產生另一第一部分校驗碼、利用第二編碼引擎對於字元線WL4的資料頁P9~P16執行互斥或運算以產生另一第二部分校驗碼以及利用第三編碼引擎對於字元線WL5的資料頁P17~P24執行互斥或運算以產生另一第三部分校驗碼,並將所產生之該些部分校驗碼分別輸出至校驗碼緩衝器1102,暫存於第二緩衝區。
後續的資料頁寫入與編碼操作係依此類推…,也就是說,對於一組奇數組字元線的第一條字元線的資料、第二條字元線的資料、第三條字元線的資料以及對於一組偶數組字元線的第一條字元線的資料、第二條字元線的資料、第三條字元線的資料,均分別執行不同次的互斥或運算,產生相對應的校驗碼。之後為了寫入該些對應的校驗碼於SLC資料區塊的適當儲存位置,錯誤更正碼編碼電路1101在寫入最後6條字元線WL122~WL127之資料頁時,係將該些相對應的校驗碼寫入於最後6條字元線WL122~WL127之最後一張資料頁(如第5圖之長方形斜線框所示),例如,在寫入字元線WL122之資料頁時,字元線WL122為一組奇數組字元線的第三條字元線,錯誤更正碼編碼電路1101係於字元線WL122的最後一張資料頁中寫入所有奇數組字元線中所有第三條字元線之資料所對應的校驗碼(亦即奇數組字元線中由第三編碼引擎所產生之所有第三部分校驗碼),而在寫入字元線WL123之資料頁時,字元線WL123為最後一組偶數組字元線的第一條字元線,錯誤更正碼編碼電路1101係於字元線WL123的最後一張資料頁中寫入所有偶數組字元線中所有第一條字元線之資料所對應的校驗碼(亦即偶數組字元線中由第一編碼引擎所產生之所有第一部分校驗碼),而在寫入字元線WL124之資料頁時,字元線WL124為最後一組偶數組字元線的第二條字元線,錯誤更正碼編碼電路1101係於字元線WL124的最後一張資料頁中寫入所有偶數組字元線中所有第二條字元線之資料所對應的校驗碼(亦即偶數組字元線中由第二編碼引擎所產生之所有第二部分校驗碼),而在寫入字元線WL125之資料頁時,字元線WL125為最後一組偶數組字元線的第三條字元線,錯誤更正碼編碼電路1101係於字元線WL125的最後一張資料頁中寫入所有偶數組字元線中所有第三條字元線之資料所對應的校驗碼(亦即偶數組字元線中由第三編碼引擎所產生之所有第三部分校驗碼),而在寫入字元線WL126之資料頁時,字元線WL126為最後一組奇數組字元線的第一條字元線,錯誤更正碼編碼電路1101係於字元線WL126的最後一張資料頁中寫入所有奇數組字元線中所有第一條字元線之資料所對應的校驗碼(亦即奇數組字元線中由第一編碼引擎所產生之所有第一部分校驗碼),而在寫入字元線WL127之資料頁時,字元線WL127為最後一組奇數組字元線的第二條字元線,錯誤更正碼編碼電路1101係於字元線WL127的最後一張資料頁中寫入所有奇數組字元線中所有第二條字元線之資料所對應的校驗碼(亦即奇數組字元線中由第二編碼引擎所產生之所有第二部分校驗碼)。如此便完成一次SLC資料區塊的寫入。
也就是說,當快閃記憶體控制器110寫入一群的資料至一SLC資料區塊時,快閃記憶體控制器110係將該SLC資料區塊的所有字元線依順序每M條字元線編類為一組字元線,以產生複數組奇數組的字元線及複數組偶數組的字元線,以及對一組奇數組的每一條字元線及一組偶數組的每一條字元線,分別執行不同M次的互斥或運算的編碼操作,產生該組奇數組的每一條字元線的M個部分校驗碼以及該組偶數組的每一條字元線的M個部分校驗碼,寫入並儲存該複數組奇數組的每一條字元線的M個部分校驗碼於該複數組奇數組字元線中最後M條字元線之最後一張資料頁、寫入並儲存該複數組偶數組的每一條字元線的M個部分校驗碼於該複數組偶數組字元線中最後M條字元線之最後一張資料頁。而以上述實施例,M為3,然此並非是本案的限制。
錯誤更正碼編碼電路1101在第5圖所示之實施例所執行的是互斥或運算編碼操作,可更正發生在SLC資料區塊之一條字元線上一個位置的資料頁錯誤,舉例來說,如果於執行該次SLC資料區塊的寫入時檢測到發生寫入失敗的情況,例如檢測到字元線WL1的資料頁P9寫入失敗,錯誤更正碼編碼電路1101可利用第二編碼引擎於處理第一組字元線的字元線WL1時所產生之相對應的部分校驗碼及同一字元線WL1之的其他正確的資料頁P10~P16,更正字元線WL1的資料頁P9的錯誤。
如果於執行該次SLC資料區塊的寫入時檢測到發生一字元線斷路而造成例如字元線WL1的資料頁P9錯誤,錯誤更正碼編碼電路1101亦可利用第二編碼引擎於處理第一組字元線的字元線WL1時所產生之相對應的部分校驗碼及同一字元線WL1之其他正確的資料頁P10~P16,更正字元線WL1的資料頁P9的錯誤。
如果於執行該次SLC資料區塊的寫入時檢測到發生兩字元線短路而造成例如字元線WL1的資料頁P9與字元線WL2的P17均錯誤,錯誤更正碼編碼電路1101可利用第二編碼引擎於處理第一組字元線的字元線WL1時所產生之相對應的部分校驗碼及同一字元線WL1的其他正確的資料頁P10~P16,更正字元線WL1的資料頁P9的錯誤,以及利用第三編碼引擎於處理第一組字元線的字元線WL2時所產生之相對應的部分校驗碼及同一字元線WL2的其他正確的資料頁P18~P24,更正字元線WL2的資料頁P17的錯誤。而如果是字元線WL2的資料頁P17與字元線WL3的資料頁P1出錯,則錯誤更正碼編碼電路1101可利用第三編碼引擎於處理第一組字元線之字元線WL2時所產生之相對應的部分校驗碼及同一字元線WL2的其他正確的資料頁P18~P24,更正字元線WL2的資料頁P17的錯誤,以及利用第一編碼引擎於處理第二組字元線之字元線WL3時所產生之相對應的部分校驗碼及同一字元線WL3之其他正確的資料頁P2~P8,更正字元線WL3的資料頁P1的錯誤。因此,無論是在執行SLC資料區塊寫入時發生寫入失敗、一字元線斷路或兩字元線短路所造成的資料頁錯誤,錯誤更正碼編碼電路1101均可對應地更正該些錯誤的資料頁。快閃記憶體模組105通過內部複製將上述SLC資料區塊將資料寫入至TLC資料區塊的操作如同前述第3圖的內容,不再贅述。
接著請參照第6圖,第6圖為本發明第二實施例第1圖所示之快閃記憶體控制器110寫入三個群之資料至快閃記憶體模組105內的多個SLC資料區塊1051A~1051C並通過內部複製將該些SLC資料區塊1051A~1051C之資料搬移寫入至TLC資料區塊1052而形成一個超級區塊的示意圖。錯誤更正碼編碼電路1101於每次執行SLC資料區塊的寫入時,均把資料分類為奇數組字元線與偶數組字元線,並將對應產生之校驗碼儲存於所有奇數組字元線中最後3條字元線之最後每一張資料頁以及所有偶數組字元線之最後3條字元線之最後每一張資料頁,如第6圖所示,執行TLC資料區塊寫入時,依資料寫入的順序,第一群中的字元線資料的對應校驗碼,如605A所標示,係寫入並儲存於TLC資料區塊1052之字元線WL40之最後一張資料頁之最高有效位MSB、字元線WL41之最後一張資料頁以及字元線WL42之最後一張資料頁之最低有效位LSB與中間有效位CSB,其中第一個群中的SLC資料區塊的奇數組字元線的校驗碼儲存於字元線WL40之最後一張資料頁之最高有效位MSB以及字元線WL42之最後一張資料頁之最低有效位LSB與中間有效位CSB,而第一個群中的SLC資料區塊的偶數組字元線的校驗碼儲存於字元線WL41之最後一張資料頁(包括最低有效位LSB、中間有效位CSB與最高有效位MSB)。
第二個群中的字元線資料的對應校驗碼,如605B所標示,係寫入並儲存於TLC資料區塊1052之字元線WL83之最後一張資料頁之中間有效位CSB與最高有效位MSB、字元線WL84之最後一張資料頁以及字元線WL85之最後一張資料頁之最低有效位LSB,其中對於第二個群中在SLC資料區塊的奇數組字元線資料,由第三編碼引擎所產生之所有第三部分校驗碼係儲存於TLC資料區塊1052的字元線WL83之最後一張資料頁之中間有效位CSB,由第一編碼引擎所產生之所有第一部分校驗碼係儲存於TLC資料區塊1052的字元線WL84之最後一張資料頁之最高有效位MSB,由第二編碼引擎所產生之所有第二部分校驗碼係儲存於TLC資料區塊1052的字元線WL85之最後一張資料頁之最低有效位LSB,而對於第二個群中在SLC資料區塊的偶數組字元線資料,由第一編碼引擎所產生之所有第一部分校驗碼係儲存於TLC資料區塊1052的字元線WL83之最後一張資料頁之最高有效位MSB,由第二編碼引擎所產生之所有第二部分校驗碼係儲存於TLC資料區塊1052的字元線WL84之最後一張資料頁之最低有效位LSB,由第三編碼引擎所產生之所有第三部分校驗碼係儲存於TLC資料區塊1052的字元線WL84之最後一張資料頁之中間有效位CSB。
第三個群之字元線資料的對應校驗碼,如605C所標示,係寫入並儲存於TLC資料區塊1052之字元線WL126、127之最後一張資料頁(包括最低有效位LSB、中間有效位CSB與最高有效位MSB),其中對於第三個群中在SLC資料區塊的奇數組字元線資料,由第三編碼引擎所產生之所有第三部分校驗碼係儲存於TLC資料區塊1052的字元線WL126之最後一張資料頁之最低有效位LSB,由第一編碼引擎所產生之所有第一部分校驗碼係儲存於TLC資料區塊1052的字元線WL127之最後一張資料頁之中間有效位CSB,由第二編碼引擎所產生之所有第二部分校驗碼係儲存於TLC資料區塊1052的字元線WL127之最後一張資料頁之最高有效位MSB,而對於第三個群中在SLC資料區塊的偶數組字元線資料,由第一編碼引擎所產生之所有第一部分校驗碼係儲存於TLC資料區塊1052的字元線WL126之最後一張資料頁之中間有效位CSB,由第二編碼引擎所產生之所有第二部分校驗碼係儲存於TLC資料區塊1052的字元線WL126之最後一張資料頁之最高有效位MSB,由第三編碼引擎所產生之所有第三部分校驗碼係儲存於TLC資料區塊1052的字元線WL127之最後一張資料頁之最低有效位LSB。
因此,當快閃記憶體模組105透過內部複製操作從該些SLC資料區塊1051A~1051C搬移寫入資料至TLC資料區塊1052時,如果檢測到兩字元線短路而造成例如TLC資料區塊1052之字元線WL0、WL1的兩資料頁(如框線610所標示)發生錯誤,快閃記憶體模組105可利用儲存於TLC資料區塊1052之字元線WL42之最後一張資料頁之中間有效位CSB的第一部分校驗碼以及字元線WL0之其他資料頁的最低有效位LSB的資料,更正610所標記之字元線WL0之資料頁的最低有效位LSB的資料,利用儲存於TLC資料區塊1052之字元線WL42之最後一張資料頁之最高有效位MSB的第二部分校驗碼以及字元線WL0之其他資料頁的中間有效位CSB的資料,來更正610所標記之字元線WL0之資料頁的中間有效位CSB的資料,以及利用儲存於TLC資料區塊1052之字元線WL40之最後一張資料頁之最高有效位MSB的第三部分校驗碼以及字元線WL0之其他資料頁的最高有效位MSB的資料,來更正610所標記之字元線WL0之資料頁的最高有效位MSB的資料。相同地,快閃記憶體模組105可利用儲存於TLC資料區塊1052之字元線WL41之最後一張資料頁之最低有效位LSB的第一部分校驗碼以及字元線WL1之其他資料頁的最低有效位LSB的資料,來更正610所標記之字元線WL1之資料頁的最低有效位LSB的資料,利用儲存於TLC資料區塊1052之字元線WL41之最後一張資料頁之中間有效位CSB的第二部分校驗碼以及字元線WL1之其他資料頁的中間有效位CSB的資料,來更正610所標記之字元線WL1之資料頁的中間有效位CSB的資料,以及利用儲存於TLC資料區塊1052之字元線WL41之最後一張資料頁之最高有效位MSB的第三部分校驗碼以及字元線WL1之其他資料頁的最高有效位MSB的資料,來更正610所標記之字元線WL1之資料頁的最高有效位MSB的資料。
相似地,如果兩字元線短路而造成之錯誤是發生在超級區塊之任兩連續字元線的之連續資料頁(例如如615、620所標示的錯誤位置),快閃記憶體模組105均可利用每一群組中一SLC資料區塊之最後6條字元線之最後一資料頁所儲存之相對應的校驗碼來更正錯誤。此外,如果是檢測到一字元線斷路或寫入失敗而造成TLC資料區塊1052之任一字元線的任一資料頁發生錯誤(亦即同一資料頁的三個有效位均出錯或是連續兩不同資料頁的不同有效位出錯),則快閃記憶體模組105均可利用對應儲存之校驗碼來更正連續任意三個有效位的錯誤。
也就是說,通過快閃記憶體控制器110寫入三個群的資料至快閃記憶體模組105內的多個SLC資料區塊1051A~1051C的校驗碼儲存位置管理設計,當快閃記憶體模組105通過內部複製將該些資料從多個SLC資料區塊1051A~1051C複製搬移寫入至TLC資料區塊時,如果檢測到一字元線斷路、兩字元線短路或寫入失敗的錯誤,均可由多個SLC資料區塊1051A~1051C儲存之校驗碼來進行更正。
再者,本案上述的實施例亦適用於MLC資料區塊或QLC資料區塊等架構,當使用於MLC資料區塊時,上述三個群資料改為分類為兩個群的資料,而對於如果是執行互斥或運算的編碼操作,則改用兩個編碼引擎來實現,其他的條件則與前述使用於TLC資料區塊時相同;因此,如果是使用於QLC資料區塊時,上述三個群資料改為分類為四個群的資料,而對於如果是執行互斥或運算的編碼操作,則改用四個編碼引擎來實現,其他的條件則與前述使用於TLC資料區塊時相同;其他資料區塊的架構則依此類推。
以資料儲存的成本(overhead)來看,如果是採用兩個通道寫入兩個記憶體晶片,且每一記憶體晶片具有折疊平面設計使可同時寫入兩個區塊,則以一個SLC資料區塊的資料寫入而言,128條字元線共有8*128個資料頁,而僅需要使用到6個資料頁來儲存對應的校驗碼,成本的百分比不到1%(6/(128*8)),亦即對於SLC資料區塊的寫入以及TLC資料區塊的寫入,只需使用低於1%的資料空間作為儲存相對應的錯誤更正校驗碼之用,資料空間的使用效率極高。而如果是採用4個通道寫入4個記憶體晶片,且每一記憶體晶片具有折疊平面設計使可同時寫入2個區塊,則以一個SLC資料區塊的資料寫入而言,128條字元線共有4*4*2*128個資料頁,而僅需要使用到6個資料頁來儲存對應的校驗碼,成本的百分比將可更低,約為0.15%(6/(128*4*4*2)),亦即對於SLC資料區塊的寫入以及TLC資料區塊的寫入,只需使用約為0.15%的資料空間作為儲存相對應的錯誤更正校驗碼之用,資料空間的使用效率更高。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:快閃記憶體裝置
105:快閃記憶體模組
110:快閃記憶體控制器
205,210,401A,401B,402A,402B,403A,403B,605A,605B,605C:校驗碼儲存位置
404,405,406,610,615,620:TLC資料區塊的資料頁
1051A,1051B,1051C:SLC資料區塊
1052:TLC資料區塊
1101:錯誤更正碼編碼電路
1102:校驗碼緩衝器
1102A,1102B:緩衝區
第1圖為本發明一實施例之快閃記憶體裝置的裝置示意圖。
第2圖為本發明第一實施例第1圖所示之快閃記憶體控制器執行SLC資料寫入將某一群之資料寫入至快閃記憶體模組內之一SLC資料區塊以執行一次SLC資料區塊寫入操作的示意圖。
第3圖為快閃記憶體模組內之一SLC資料區塊通過內部複製將資料寫入至TLC資料區塊的示意圖。
第4圖為本發明第一實施例第1圖所示之快閃記憶體控制器寫入三個群的資料至快閃記憶體模組內的多個SLC資料區塊並通過內部複製將資料搬移寫入至TLC資料區塊而形成一個超級區塊的示意圖。
第5圖為本發明第二實施例第1圖所示之快閃記憶體控制器執行SLC資料寫入以寫入一個群之資料至快閃記憶體模組內之SLC資料區塊以完成一次SLC資料區塊寫入操作的示意圖。
第6圖為本發明第二實施例第1圖所示之快閃記憶體控制器寫入三個群之資料至快閃記憶體模組內的多個SLC資料區塊並通過內部複製將該些SLC資料區塊之資料搬移寫入至TLC資料區塊而形成一個超級區塊的示意圖。
100:快閃記憶體裝置
105:快閃記憶體模組
110:快閃記憶體控制器
1051A,1051B,1051C:SLC資料區塊
1052:TLC資料區塊
1101:錯誤更正碼編碼電路
1102:校驗碼緩衝器
1102A,1102B:緩衝區
Claims (13)
- 一種快閃記憶體裝置,包含有: 一快閃記憶體模組,包括複數個第一資料區塊以及至少一第二資料區塊;以及 一快閃記憶體控制器,具有複數條通道分別連接至該快閃記憶體模組的複數個快閃記憶體晶片,該快閃記憶體控制器係先將一筆欲寫入之資料分類為複數群的資料,該快閃記憶體控制器分別執行單層單元資料寫入以及執行一容錯式磁碟陣列的互斥或運算的一錯誤更正編碼操作產生一對應的校驗碼,以分別通過該複數條通道將該複數群的資料以及該對應的校驗碼寫入至位於該複數個快閃記憶體晶片的該複數個第一資料區塊;完成該複數個第一資料區塊的寫入後,該快閃記憶體模組係執行一內部複製(internal copy),將該複數個第一資料區塊所儲存之該複數群的資料以及該對應的校驗碼,搬移寫入至該至少一第二資料區塊,其中所產生之該對應的校驗碼係用來更正當寫入該複數群的資料至該複數個第一資料區塊時所發生的錯誤以及用來更正當將該複數個第一資料區塊所儲存之該複數群的資料搬移寫入至該至少一第二資料區塊時所發生的錯誤。
- 如申請專利範圍第1項所述之快閃記憶體裝置,其中該至少一第二資料區塊為一TLC資料區塊,儲存三個位元的資料,該快閃記憶體控制器係將該筆欲寫入之資料分類為三個群的資料,以分別寫入至三個SLC資料區塊。
- 如申請專利範圍第1項所述之快閃記憶體裝置,其中該複數個第一資料區塊為複數個SLC資料區塊,當快閃記憶體控制器寫入一群的資料至一SLC資料區塊時,該快閃記憶體控制器係將該SLC資料區塊的所有字元線(word line)依順序每M條字元線編類為一組字元線,以產生複數組奇數組的字元線及複數組偶數組的字元線,以及對一組奇數組的每一條字元線及一組偶數組的每一條字元線,分別執行不同M次的互斥或運算的編碼操作,產生該組奇數組的每一條字元線的M個部分校驗碼以及該組偶數組的每一條字元線的M個部分校驗碼,寫入並儲存該複數組奇數組的每一條字元線的M個部分校驗碼於該複數組奇數組字元線中最後M條字元線之最後一張資料頁、寫入並儲存該複數組偶數組的每一條字元線的M個部分校驗碼於該複數組偶數組字元線中最後M條字元線之最後一張資料頁。
- 如申請專利範圍第1項所述之快閃記憶體裝置,其中當進行記憶體垃圾回收(garbage collection)時,該快閃記憶體控制器係從外部讀取出該複數個第一資料區塊之資料並進行重新編碼與寫入,或從外部讀取出該至少一第二資料區塊並進行重新編碼與寫入。
- 如申請專利範圍第1項所述之快閃記憶體裝置,其中當寫入資料至該至少一第二資料區塊且突然發生關機時,該快閃記憶體控制器係放棄該至少一第二資料區塊所儲存之資料,並執行該內部複製,從該些複數第一資料區塊搬移寫入資料至該至少一第二資料區塊。
- 如申請專利範圍第1項所述之快閃記憶體裝置,其中當寫入資料至該些第一資料區塊時,該快閃記憶體控制器係依據該至少一第二資料區塊之一亂數種子數(randomizer seed)規則,寫入資料至該些複數第一資料區塊。
- 一種快閃記憶體儲存管理方法,其係用於一快閃記憶體模組,該快閃記憶體模組包括複數個第一資料區塊以及至少一第二資料區塊,該方法包含有: 將一筆欲寫入之資料分類為複數群的資料; 分別執行單層單元資料寫入以及執行一容錯式磁碟陣列的互斥或運算之一錯誤更正編碼操作產生一對應的校驗碼,以分別通過複數條通道將該複數群的資料以及該對應的校驗碼寫入至位於複數個快閃記憶體晶片的該複數個第一資料區塊;以及 令該快閃記憶體模組執行一內部複製,將該複數個第一資料區塊所儲存之該複數群的資料以及該對應的校驗碼寫入至該至少一第二資料區塊; 其中所產生之該對應的校驗碼係用來更正當寫入該複數群的資料至該複數個第一資料區塊時所發生的錯誤以及用來更正當將該複數個第一資料區塊所儲存之該複數群的資料搬移寫入至該至少一第二資料區塊時所發生的錯誤。
- 如申請專利範圍第7項所述之快閃記憶體儲存管理方法,其中該至少一第二資料區塊為一TLC資料區塊,儲存三個位元的資料,以及將該筆欲寫入之資料分類為該複數群的資料的步驟包括:將該筆欲寫入之資料分類為三個群的資料,以分別寫入至三個SLC資料區塊。
- 如申請專利範圍第7項所述之快閃記憶體儲存管理方法,其中該複數個第一資料區塊為複數個SLC資料區塊,以及該快閃記憶體儲存管理方法另包括: 當寫入一群的資料至一SLC資料區塊時,該快閃記憶體控制器係將該SLC資料區塊的所有字元線依順序每M條字元線編類為一組字元線,以產生複數組奇數組的字元線及複數組偶數組的字元線; 對一組奇數組的每一條字元線及一組偶數組的每一條字元線,分別執行不同M次的互斥或運算的編碼操作,產生該組奇數組的每一條字元線的M個部分校驗碼以及該組偶數組的每一條字元線的M個部分校驗碼;以及 寫入並儲存該複數組奇數組的每一條字元線的M個部分校驗碼於該複數組奇數組字元線中最後M條字元線之最後一張資料頁、寫入並儲存該複數組偶數組的每一條字元線的M個部分校驗碼於該複數組偶數組字元線中最後M條字元線之最後一張資料頁。
- 如申請專利範圍第7項所述之快閃記憶體儲存管理方法,其另包含有: 當進行記憶體垃圾回收時,從外部讀取出該複數個第一資料區塊之資料並進行重新編碼與寫入,或從外部讀取出該至少一第二資料區塊並進行重新編碼與寫入。
- 如申請專利範圍第7項所述之快閃記憶體儲存管理方法,其另包含有: 當寫入資料至該至少一第二資料區塊且突然發生關機時,放棄該至少一第二資料區塊所儲存之資料,並執行該內部複製,從該些複數第一資料區塊搬移寫入資料至該至少一第二資料區塊。
- 如申請專利範圍第7項所述之快閃記憶體儲存管理方法,其另包含有: 當寫入資料至該些第一資料區塊時,依據該至少一第二資料區塊之一亂數種子數規則,寫入資料至該些複數第一資料區塊。
- 一種快閃記憶體控制器,包含: 複數條通道,分別連接至一快閃記憶體模組的複數個快閃記憶體晶片,該快閃記憶體模組包括複數個第一資料區塊以及至少一第二資料區塊;以及 一錯誤更正碼編碼電路; 其中該快閃記憶體控制器係先將一筆欲寫入之資料分類為複數群的資料,採用該錯誤更正碼編碼電路來分別執行單層單元資料寫入以及執行一容錯式磁碟陣列的互斥或運算的一錯誤更正編碼操作產生一對應的校驗碼,以分別通過該複數條通道將該複數群的資料以及該對應的校驗碼寫入至位於該複數個快閃記憶體晶片的該複數個第一資料區塊;完成該複數個第一資料區塊的寫入後,該快閃記憶體控制器令該快閃記憶體模組係執行一內部複製,將該複數個第一資料區塊所儲存之該複數群的資料以及該對應的校驗碼,搬移寫入至該至少一第二資料區塊,其中所產生之該對應的校驗碼係用來更正當寫入該複數群的資料至該複數個第一資料區塊時所發生的錯誤以及用來更正當將該複數個第一資料區塊所儲存之該複數群的資料搬移寫入至該至少一第二資料區塊時所發生的錯誤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662328025P | 2016-04-27 | 2016-04-27 | |
US62/328,025 | 2016-04-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202025163A TW202025163A (zh) | 2020-07-01 |
TWI707345B true TWI707345B (zh) | 2020-10-11 |
Family
ID=61022891
Family Applications (15)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111121269A TWI806649B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW108110612A TWI689930B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW107132887A TWI659423B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW106144650A TWI650755B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW106105508A TWI618070B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW112118732A TWI841391B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW109130011A TWI740629B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW110130076A TWI771151B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW109105951A TWI707345B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW107136718A TWI684857B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW112125378A TWI845371B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
TW106106328A TWI643062B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW112106392A TWI812576B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
TW111106129A TWI797996B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
TW109100013A TWI759673B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
Family Applications Before (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111121269A TWI806649B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW108110612A TWI689930B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW107132887A TWI659423B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW106144650A TWI650755B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW106105508A TWI618070B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW112118732A TWI841391B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW109130011A TWI740629B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW110130076A TWI771151B (zh) | 2016-04-27 | 2017-02-20 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
Family Applications After (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107136718A TWI684857B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW112125378A TWI845371B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
TW106106328A TWI643062B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
TW112106392A TWI812576B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
TW111106129A TWI797996B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
TW109100013A TWI759673B (zh) | 2016-04-27 | 2017-02-24 | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111710358B (zh) |
TW (15) | TWI806649B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI656442B (zh) | 2017-11-30 | 2019-04-11 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 |
US10956049B2 (en) | 2019-06-12 | 2021-03-23 | International Business Machines Corporation | Wear-aware block mode conversion in non-volatile memory |
CN112130749B (zh) * | 2019-06-25 | 2023-12-22 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US11119855B2 (en) | 2019-10-24 | 2021-09-14 | International Business Machines Corporation | Selectively storing parity data in different types of memory |
US11573737B2 (en) * | 2020-03-02 | 2023-02-07 | Silicon Motion, Inc. | Method and apparatus for performing disk management of all flash array server |
US11809748B2 (en) | 2022-03-10 | 2023-11-07 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and electronic device |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150058700A1 (en) * | 2013-08-23 | 2015-02-26 | Silicon Motion, Inc. | Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same |
US20150058661A1 (en) * | 2013-08-23 | 2015-02-26 | Silicon Motion, Inc. | Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same |
US20150058699A1 (en) * | 2013-08-23 | 2015-02-26 | Silicon Motion, Inc. | Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same |
US20150255159A1 (en) * | 2007-04-02 | 2015-09-10 | Kabushiki Kaisha Toshiba | Method for controlling a non-volatile semiconductor memory, and semiconductor storage system |
US20160104539A1 (en) * | 2014-10-08 | 2016-04-14 | Kyungryun Kim | Storage device and reliability verification method |
US20160110102A1 (en) * | 2014-10-20 | 2016-04-21 | Samsung Electronics Co., Ltd. | Hybrid memory module structure and method of driving the same |
US20160110249A1 (en) * | 2014-10-20 | 2016-04-21 | Fusion-Io, Inc. | Adaptive storage reliability management |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3534585B2 (ja) * | 1997-10-21 | 2004-06-07 | 株式会社日立製作所 | フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置 |
US8341332B2 (en) * | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
US6906961B2 (en) * | 2003-06-24 | 2005-06-14 | Micron Technology, Inc. | Erase block data splitting |
US8131920B2 (en) * | 2007-12-06 | 2012-03-06 | Hitachi Global Storage Technologies, Netherlands B.V. | Method and system for dynamically allocating read and write sequence randomizer |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8898374B2 (en) * | 2010-07-21 | 2014-11-25 | Silicon Motion, Inc. | Flash memory device and method for managing flash memory device |
US8892981B2 (en) * | 2010-09-30 | 2014-11-18 | Apple Inc. | Data recovery using outer codewords stored in volatile memory |
KR101214285B1 (ko) * | 2010-12-30 | 2012-12-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US8949568B2 (en) * | 2011-05-24 | 2015-02-03 | Agency For Science, Technology And Research | Memory storage device, and a related zone-based block management and mapping method |
US9141533B2 (en) * | 2012-05-31 | 2015-09-22 | Silicon Motion, Inc. | Data storage device and flash memory control method for performing garbage collection |
CN107133122B (zh) * | 2012-06-06 | 2020-10-27 | 慧荣科技股份有限公司 | 存储器控制方法 |
US9286985B2 (en) * | 2013-02-12 | 2016-03-15 | Kabushiki Kaisha Toshiba | Semiconductor device with power mode transitioning operation |
US8656255B1 (en) * | 2013-03-15 | 2014-02-18 | Avalanche Technology, Inc. | Method for reducing effective raw bit error rate in multi-level cell NAND flash memory |
WO2015013689A2 (en) * | 2013-07-25 | 2015-01-29 | Aplus Flash Technology, Inc. | Nand array hiarchical bl structures for multiple-wl and all -bl simultaneous erase, erase-verify, program, program-verify, and read operations |
TWI515749B (zh) * | 2013-08-23 | 2016-01-01 | 慧榮科技股份有限公司 | 存取快閃記憶體中儲存單元的方法以及使用該方法的裝置 |
US9262316B2 (en) * | 2013-12-09 | 2016-02-16 | International Business Machines Corporation | Recording dwell time in a non-volatile memory system |
US20150170747A1 (en) * | 2013-12-17 | 2015-06-18 | Skymedi Corporation | Method and system for programming a multi-bit per cell non-volatile memory |
US9262268B2 (en) * | 2013-12-20 | 2016-02-16 | Seagate Technology Llc | Method to distribute user data and error correction data over different page types by leveraging error rate variations |
US9361182B2 (en) * | 2014-05-20 | 2016-06-07 | Transcend Information, Inc. | Method for read disturbance management in non-volatile memory devices |
US9105333B1 (en) * | 2014-07-03 | 2015-08-11 | Sandisk Technologies Inc. | On-chip copying of data between NAND flash memory and ReRAM of a memory die |
US20160041760A1 (en) * | 2014-08-08 | 2016-02-11 | International Business Machines Corporation | Multi-Level Cell Flash Memory Control Mechanisms |
JP6313245B2 (ja) * | 2014-09-09 | 2018-04-18 | 東芝メモリ株式会社 | 半導体記憶装置 |
-
2017
- 2017-02-20 TW TW111121269A patent/TWI806649B/zh active
- 2017-02-20 TW TW108110612A patent/TWI689930B/zh active
- 2017-02-20 TW TW107132887A patent/TWI659423B/zh active
- 2017-02-20 TW TW106144650A patent/TWI650755B/zh active
- 2017-02-20 TW TW106105508A patent/TWI618070B/zh active
- 2017-02-20 TW TW112118732A patent/TWI841391B/zh active
- 2017-02-20 TW TW109130011A patent/TWI740629B/zh active
- 2017-02-20 TW TW110130076A patent/TWI771151B/zh active
- 2017-02-20 TW TW109105951A patent/TWI707345B/zh active
- 2017-02-24 TW TW107136718A patent/TWI684857B/zh active
- 2017-02-24 TW TW112125378A patent/TWI845371B/zh active
- 2017-02-24 TW TW106106328A patent/TWI643062B/zh active
- 2017-02-24 TW TW112106392A patent/TWI812576B/zh active
- 2017-02-24 TW TW111106129A patent/TWI797996B/zh active
- 2017-02-24 TW TW109100013A patent/TWI759673B/zh active
- 2017-04-26 CN CN202010384012.4A patent/CN111710358B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150255159A1 (en) * | 2007-04-02 | 2015-09-10 | Kabushiki Kaisha Toshiba | Method for controlling a non-volatile semiconductor memory, and semiconductor storage system |
US20150058700A1 (en) * | 2013-08-23 | 2015-02-26 | Silicon Motion, Inc. | Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same |
US20150058661A1 (en) * | 2013-08-23 | 2015-02-26 | Silicon Motion, Inc. | Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same |
US20150058699A1 (en) * | 2013-08-23 | 2015-02-26 | Silicon Motion, Inc. | Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same |
US20160104539A1 (en) * | 2014-10-08 | 2016-04-14 | Kyungryun Kim | Storage device and reliability verification method |
US20160110102A1 (en) * | 2014-10-20 | 2016-04-21 | Samsung Electronics Co., Ltd. | Hybrid memory module structure and method of driving the same |
US20160110249A1 (en) * | 2014-10-20 | 2016-04-21 | Fusion-Io, Inc. | Adaptive storage reliability management |
Also Published As
Publication number | Publication date |
---|---|
TW202238601A (zh) | 2022-10-01 |
TWI618070B (zh) | 2018-03-11 |
TW201810280A (zh) | 2018-03-16 |
TW202341158A (zh) | 2023-10-16 |
TWI689930B (zh) | 2020-04-01 |
TWI841391B (zh) | 2024-05-01 |
CN111710358B (zh) | 2022-06-03 |
TW202014890A (zh) | 2020-04-16 |
TWI740629B (zh) | 2021-09-21 |
TW202223651A (zh) | 2022-06-16 |
TWI845371B (zh) | 2024-06-11 |
TWI806649B (zh) | 2023-06-21 |
TW201907300A (zh) | 2019-02-16 |
TW202147326A (zh) | 2021-12-16 |
TWI684857B (zh) | 2020-02-11 |
TWI650755B (zh) | 2019-02-11 |
TW202324097A (zh) | 2023-06-16 |
TWI797996B (zh) | 2023-04-01 |
TW202025163A (zh) | 2020-07-01 |
TWI771151B (zh) | 2022-07-11 |
TWI643062B (zh) | 2018-12-01 |
TW201812583A (zh) | 2018-04-01 |
TW201738892A (zh) | 2017-11-01 |
CN111710358A (zh) | 2020-09-25 |
TW201903777A (zh) | 2019-01-16 |
TW202343265A (zh) | 2023-11-01 |
TWI659423B (zh) | 2019-05-11 |
TW202115732A (zh) | 2021-04-16 |
TWI812576B (zh) | 2023-08-11 |
TWI759673B (zh) | 2022-04-01 |
TW201928977A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391026B (zh) | 闪存装置及闪存存储管理方法 | |
CN107403646B (zh) | 闪存装置及闪存存储管理方法 | |
TWI707345B (zh) | 快閃記憶體裝置及快閃記憶體儲存管理方法 | |
US20240154624A1 (en) | Flash memory apparatus and storage management method for flash memory | |
TWI855978B (zh) | 快閃記憶體裝置及快閃記憶體儲存管理方法 | |
TW202433301A (zh) | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 | |
TW202431265A (zh) | 快閃記憶體裝置及快閃記憶體儲存管理方法 |