TWI629690B - Method for accessing flash memory module and associated flash memory controller and memory device - Google Patents

Method for accessing flash memory module and associated flash memory controller and memory device Download PDF

Info

Publication number
TWI629690B
TWI629690B TW106110446A TW106110446A TWI629690B TW I629690 B TWI629690 B TW I629690B TW 106110446 A TW106110446 A TW 106110446A TW 106110446 A TW106110446 A TW 106110446A TW I629690 B TWI629690 B TW I629690B
Authority
TW
Taiwan
Prior art keywords
flash memory
super block
data
block
code
Prior art date
Application number
TW106110446A
Other languages
Chinese (zh)
Other versions
TW201738885A (en
Inventor
楊宗杰
許鴻榮
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to US15/495,997 priority Critical patent/US10110255B2/en
Priority to CN202011217569.5A priority patent/CN112214348B/en
Priority to CN201710280253.2A priority patent/CN107423158B/en
Publication of TW201738885A publication Critical patent/TW201738885A/en
Application granted granted Critical
Publication of TWI629690B publication Critical patent/TWI629690B/en
Priority to US16/132,461 priority patent/US10348332B2/en

Links

Abstract

本發明揭露一種存取一快閃記憶體模組的方法,其中該快閃記憶體模組係為包含了多個快閃記憶體晶片的一立體快閃記憶體模組,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含了多個資料頁;以及該方法包含有:規劃該多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一第一超級區塊以及至少一第二超級區塊;以及指派該至少一第二超級區塊以用來儲存在一資料寫入至該至少一第一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。The invention discloses a method for accessing a flash memory module, wherein the flash memory module is a stereo flash memory module including a plurality of flash memory chips, each flash memory The body wafer includes a plurality of blocks, each of the blocks includes a plurality of data pages; and the method includes: planning the plurality of flash memory chips such that the plurality of flash memory chips have at least a first a super block and at least one second super block; and assigning the at least one second super block to store a plurality of sets of temporary codes encoded in a process of writing data to the at least one first super block Sex check code.

Description

存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置Method for accessing flash memory module and related flash memory controller and memory device

本發明係有關於快閃記憶體,尤指一種存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置。The present invention relates to flash memory, and more particularly to a method of accessing a flash memory module and related flash memory controllers and memory devices.

為了讓快閃記憶體能夠有更高的密度以及更大的容量,快閃記憶體的製程也朝向立體化的發展,而產生了幾種不同的立體NAND型快閃記憶體(3D NAND-type flash)。在立體NAND型快閃記憶體中,由於整體結構的不同以及浮閘形狀位置的改變,因此在資料的寫入以及讀取上也較傳統的平面NAND型快閃記憶體多出了些許的問題。舉例來說,在某些立體NAND型快閃記憶體中,會將多條字元線(word line)定義為一字元線組,而該字元線組會共同具有部分的控制電路,進而導致當資料寫入到該字元線組之一條字元線上的浮閘電晶體發生失敗時(寫入失敗),會連帶導致該字元線組的其他字元線上的浮閘電晶體的資料發生錯誤;此外,若是該字元線組中的一條字元線發生斷路或短路的狀況時,也會連帶影響到該字元線組的其他字元線上的浮閘電晶體的資料發生錯誤,因此,如何就上述問題提出一種錯誤更正方式,以盡可能地維持資料的正確性,且又不會浪費記憶體空間以節省成本,是一個重要的課題。In order to make the flash memory have higher density and larger capacity, the flash memory process is also moving toward stereoscopic development, and several different stereo NAND type flash memories (3D NAND-type) are produced. Flash). In the stereo NAND type flash memory, due to the difference in the overall structure and the change of the position of the floating gate, there are some problems in the writing and reading of the data compared with the conventional planar NAND type flash memory. . For example, in some stereo NAND type flash memories, a plurality of word lines are defined as a word line group, and the word line groups have a part of a control circuit together, and further Resulting in the failure of the floating gate transistor when the data is written to one of the character line groups of the character line group (write failure), which will cause the data of the floating gate crystal on the other character lines of the character line group. An error occurs; in addition, if a character line in the character line group is disconnected or short-circuited, the data of the floating gate crystal that affects other character lines of the character line group may be incorrect. Therefore, how to make a mistake correction method for the above problems, in order to maintain the correctness of the data as much as possible, without wasting memory space to save costs, is an important issue.

因此,本發明的目的之一在於提出一種存取一快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置,其使用類似容錯式磁碟陣列(Redundant Array of Independent Disks,RAID)的錯誤更正方式,但是卻不會大幅浪費快閃記憶體空間,且在快閃記憶體控制器的處理過程中也僅需要很少量的緩衝記憶體空間,以解決先前技術中的問題。Accordingly, one of the objects of the present invention is to provide a method of accessing a flash memory module and associated flash memory controller and memory device using a similar Redundant Array of Independent Disks (Redundant Array of Independent Disks). RAID) error correction method, but it does not waste a lot of flash memory space, and only requires a small amount of buffer memory space during the processing of the flash memory controller to solve the problems in the prior art. .

在本發明的一個實施例中,揭露了一種存取一快閃記憶體模組的方法,其中該快閃記憶體模組係為一立體快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個多層式儲存區塊以及多個單層式儲存區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該方法包含有:對一資料進行編碼以產生至少一組校驗碼,其中該資料係準備寫入到該多個快閃記憶體晶片的一第一超級區塊中,其中該第一超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個多層式儲存區塊;將該資料寫入至該第一超級區塊;以及將該至少一組校驗碼寫入至一第二超級區塊中,其中該第二超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個單層式儲存區塊。In one embodiment of the present invention, a method for accessing a flash memory module is disclosed, wherein the flash memory module is a stereo flash memory module, and the flash memory module is A plurality of flash memory chips are included, each of the flash memory chips includes a plurality of multi-layer storage blocks and a plurality of single-layer storage blocks, each of which contains a plurality of data pages; each of the areas The block includes a plurality of floating gate transistors controlled by a plurality of word lines and bit lines respectively in a plurality of different planes, and the floating gate crystals on each of the word lines constitute at least one of the plurality of data pages a data page; and the method includes: encoding a data to generate at least one set of check codes, wherein the data is to be written to a first super block of the plurality of flash memory chips, wherein The first super block includes a multi-layer storage block of each of the plurality of flash memory chips; writing the data to the first super block; and the at least one Group check code is written to a second super Block, wherein the second super block comprises the plurality of flash memory chips in a single-level storage blocks each flash memory chip.

在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組係為一立體快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個多層式儲存區塊以及多個單層式儲存區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該快閃記憶體控制器包含有:一記憶體、一微處理器以及一編解碼器。該記憶體用來儲存一程式碼;該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取;以及在本實施例的操作中,該編解碼器對一資料進行編碼以產生至少一組校驗碼,其中該資料係準備寫入到該多個快閃記憶體晶片的一第一超級區塊中,其中該第一超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個多層式儲存區塊;以及該微處理器將該資料寫入至該第一超級區塊,以及將該至少一組校驗碼寫入至一第二超級區塊中,其中該第二超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個單層式儲存區塊。In another embodiment of the present invention, a flash memory controller is disclosed, wherein the flash memory controller is used to access a flash memory module, and the flash memory module is a stereo flash memory module, the flash memory module includes a plurality of flash memory chips, each of the flash memory chips includes a plurality of multi-layer storage blocks and a plurality of single-layer storage areas Block, each block includes a plurality of data pages; each block includes a plurality of floating gate transistors controlled by a plurality of word lines and bit lines respectively in a plurality of different planes, and each of the characters The floating gate transistor on the line constitutes at least one data page of the plurality of material pages; and the flash memory controller comprises: a memory, a microprocessor and a codec. The memory is used to store a code; the microprocessor is configured to execute the code to control access to the flash memory module; and in the operation of the embodiment, the codec performs a data Encoding to generate at least one set of check codes, wherein the data is to be written into a first super block of the plurality of flash memory chips, wherein the first super block includes the plurality of flash memories a multi-layer storage block of each flash memory chip in the body wafer; and the microprocessor writing the data to the first super block, and writing the at least one set of check codes to the first In the second super block, the second super block includes a single-layer storage block of each of the plurality of flash memory chips.

在本發明的另一個實施例中,揭露了一種記憶裝置,其包含有一快閃記憶體模組以及一快閃記憶體控制器,其中該快閃記憶體模組係為一立體快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個多層式儲存區塊以及多個單層式儲存區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及當接收到來自一主機的寫入指令以要求將一資料寫入至該快閃記憶體模組中時,該快閃記憶體控制器對該資料進行編碼以產生至少一組校驗碼,並將該資料寫入到該多個快閃記憶體晶片的一第一超級區塊中,其中該第一超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個多層式儲存區塊;以及將該至少一組校驗碼寫入至一第二超級區塊中,其中該第二超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個單層式儲存區塊。In another embodiment of the present invention, a memory device includes a flash memory module and a flash memory controller, wherein the flash memory module is a stereo flash memory. The module, the flash memory module comprises a plurality of flash memory chips, each of the flash memory chips comprises a plurality of multi-layer storage blocks and a plurality of single-layer storage blocks, each block A plurality of data pages are included; each of the blocks includes a plurality of floating gate transistors respectively controlled by a plurality of word lines and bit lines in a plurality of different planes, and the floating gate crystals on each of the word lines Forming at least one of the plurality of material pages; and the flash memory controller when receiving a write command from a host to request a data to be written into the flash memory module Encoding the data to generate at least one set of check codes, and writing the data to a first super block of the plurality of flash memory chips, wherein the first super block includes the plurality of Every flash in the flash memory chip Rewriting a multi-layer storage block of the body wafer; and writing the at least one set of check codes to a second super block, wherein the second super block includes each of the plurality of flash memory chips A single-layer storage block of a flash memory chip.

在本發明的另一個實施例中,揭露了一種存取一快閃記憶體模組的方法,其中該快閃記憶體模組係為一立體快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該方法包含有:規劃該多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一第一超級區塊(super block)以及至少一第二超級區塊;以及指派該至少一第二超級區塊以用來儲存在一資料寫入至該至少一第一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。In another embodiment of the present invention, a method for accessing a flash memory module is disclosed, wherein the flash memory module is a stereo flash memory module, and the flash memory model is The group contains a plurality of flash memory chips, each of which contains a plurality of blocks, each of which contains a plurality of data pages; each of the blocks contains a plurality of different planes a plurality of floating gate transistors controlled by the word line and the bit line, and the floating gate transistors on each of the word lines constitute at least one of the plurality of material pages; and the method comprises: planning The plurality of flash memory chips such that the plurality of flash memory chips have at least one first super block and at least one second super block; and assigning the at least one second super block to And configured to store a plurality of sets of temporary check codes encoded in a process of writing data to the at least one first super block.

在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,該快閃記憶體控制器係用來存取一快閃記憶體模組,其中該快閃記憶體模組係為一立體快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該快閃記憶體控制器包含有一記憶體、一微處理器以及一編解碼器。該記憶體用來儲存一程式碼;該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取;以及在本實施例的操作中,該微處理器規劃該多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一第一超級區塊以及至少一第二超級區塊;以及指派該至少一第二超級區塊以用來儲存在一資料寫入至該至少一第一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。In another embodiment of the present invention, a flash memory controller is disclosed. The flash memory controller is used to access a flash memory module, wherein the flash memory module is A stereo flash memory module, the flash memory module includes a plurality of flash memory chips, each of the flash memory chips includes a plurality of blocks, each of which includes a plurality of data pages Each block includes a plurality of floating gate transistors controlled by a plurality of word lines and bit lines respectively located in a plurality of different planes, and the floating gate transistors on each of the word lines constitute the plurality of data At least one data page in the page; and the flash memory controller includes a memory, a microprocessor, and a codec. The memory is used to store a code; the microprocessor is configured to execute the code to control access to the flash memory module; and in operation of the embodiment, the microprocessor plans the plurality of Flashing the memory chips such that the plurality of flash memory chips have at least one first super block and at least one second super block; and assigning the at least one second super block for storing in a data write A plurality of sets of temporary check codes encoded in the process of entering the at least one first super block.

在本發明的另一個實施例中,揭露了一種記憶裝置,其包含有一快閃記憶體模組以及一快閃記憶體控制器。該快閃記憶體模組係為一立體快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該快閃記憶體控制器規劃該多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一第一超級區塊以及至少一第二超級區塊,以及指派該至少一第二超級區塊以用來儲存在一資料寫入至該至少一第一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。In another embodiment of the invention, a memory device is disclosed that includes a flash memory module and a flash memory controller. The flash memory module is a stereo flash memory module, and the flash memory module comprises a plurality of flash memory chips, each flash memory chip comprises a plurality of blocks, each A block contains a plurality of data pages; each block includes a plurality of floating gate transistors controlled by a plurality of word lines and bit lines respectively in a plurality of different planes, and floating on each of the word lines The gate transistor forms at least one of the plurality of material pages; and the flash memory controller plans the plurality of flash memory chips such that the plurality of flash memory chips have at least one first super a block and at least one second super block, and assigning the at least one second super block to store a plurality of sets of transients encoded in a process of writing data to the at least one first super block Check code.

請參考第1圖,第1圖為依據本發明一實施例之一種記憶裝置100的示意圖,其中本實施例之記憶裝置100尤其係為可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)。記憶裝置100包含有一快閃記憶體(Flash Memory)模組120以及一快閃記憶體控制器110,且快閃記憶體控制器110用來存取快閃記憶體模組120。依據本實施例,快閃記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory, ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體模組120之存取(Access)。Please refer to FIG. 1 . FIG. 1 is a schematic diagram of a memory device 100 according to an embodiment of the present invention. The memory device 100 of the present embodiment is specifically a portable memory device (eg, conforming to SD/MMC, CF, MS, XD standard memory card). The memory device 100 includes a flash memory module 120 and a flash memory controller 110, and the flash memory controller 110 is used to access the flash memory module 120. According to the embodiment, the flash memory controller 110 includes a microprocessor 112, a read only memory (ROM) 112M, a control logic 114, a buffer memory 116, and an interface logic 118. The read-only memory system is used to store a code 112C, and the microprocessor 112 is used to execute the code 112C to control access to the flash memory module 120.

於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之快閃記憶體控制器110)對快閃記憶體模組120進行複製、抹除、合併資料等運作係以區塊為單位來進行複製、抹除、合併資料。另外,一區塊可記錄特定數量的資料頁(Page),其中該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。In a typical situation, the flash memory module 120 includes a plurality of flash memory chips, and each of the flash memory chips includes a plurality of blocks (eg, through a microprocessor). The flash memory controller 110 executing the code 112C performs copying, erasing, and merging data on the flash memory module 120, and copies, erases, and merges the data in units of blocks. In addition, a block can record a specific number of pages, wherein the controller (eg, the memory controller 110 executing the code 112C through the microprocessor 112) writes to the flash memory module 120. The operation of the data is written in units of data pages.

實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)溝通。In practice, the flash memory controller 110 executing the code 112C through the microprocessor 112 can perform various control operations by using its own internal components, for example, using the control logic 114 to control the flash memory module 120. The access operation (especially for at least one block or at least one data page), the buffer memory 116 for the required buffering, and the interface logic 118 for communication with a host device.

另一方面,在本實施例中,控制邏輯114包含了一第一編解碼器(codec)132以及一第二編解碼器134,其中第一編解碼器132係用來對寫入到快閃記憶體模組120之一區塊中的資料進行編碼,以產生對應的錯誤更正碼(error correction code),其中第一編解碼器132所產生的錯誤更正碼僅是根據寫入到一資料頁中一區段(sector)的內容所產生的,且所產生的錯誤更正碼會連同該區段的資料內容一併寫入到該資料頁中。另外,第二編解碼器134為一容錯式磁碟陣列(RAID)編解碼器,其是用來對寫入至多個快閃記憶體晶片中的資料進行編碼,以產生對應的校驗碼,其操作將於以下內容中詳述。On the other hand, in the present embodiment, the control logic 114 includes a first codec 132 and a second codec 134, wherein the first codec 132 is used to write to the flash. The data in one of the blocks of the memory module 120 is encoded to generate a corresponding error correction code, wherein the error correction code generated by the first codec 132 is only based on writing to a data page. The content of the middle sector is generated, and the generated error correction code is written to the data page along with the data content of the section. In addition, the second codec 134 is a fault-tolerant disk array (RAID) codec for encoding data written into a plurality of flash memory chips to generate a corresponding check code. The operation will be detailed in the following.

在本實施例中,快閃記憶體模組120係為一立體NAND型快閃記憶體(3D NAND-type flash)模組,請參考第2圖,其為一立體NAND型快閃記憶體的範例示意圖,如第2圖所示,立體NAND型快閃記憶體包含了多個浮閘電晶體202,其透過多條位元線(圖示僅繪示了BL1~BL3)及多條字元線(例如圖示的WL0~WL2、WL4~WL6)來構成立體NAND型快閃記憶體架構。在第2圖中,以最上面的一個平面為例,字元線WL0上的所有浮閘電晶體構成了至少一資料頁,字元線WL1上的所有浮閘電晶體構成了另至少一資料頁,而字元線WL2的所有浮閘電晶體構成了再另至少一資料頁…以此類堆。此外,根據快閃記憶體寫入方式的不同,字元線WL0與資料頁(邏輯資料頁)之間的定義也會有所不同,詳細來說,當使用單層式儲存(Single-Level Cell,SLC)的方式寫入時,字元線WL0上的所有浮閘電晶體僅對應到單一邏輯資料頁;當使用多層式儲存(Multi-Level Cell,MLC)的方式寫入時,字元線WL0上的所有浮閘電晶體對應到兩個、三個或是四個邏輯資料頁,其中字元線WL0上的所有浮閘電晶體對應到三個邏輯資料頁的情形可以稱為三層式儲存(Triple-Level Cell,TLC)架構,而字元線WL0上的所有浮閘電晶體對應到四個邏輯資料頁的情形可以稱為四層式儲存(Quad-Level Cell,QLC)架構。由於本技術領域中具有通常知識者應能了解立體NAND型快閃記憶體的結構以及字元線及資料頁之間的關係,故相關的細節在此不予贅述。另外,在快閃記憶體控制器110的操作中,“資料頁”為一最小寫入單位,且“區塊”為一最小抹除單位。In this embodiment, the flash memory module 120 is a stereo NAND type flash memory (3D NAND-type flash) module. Please refer to FIG. 2, which is a stereo NAND flash memory. As shown in FIG. 2, the stereo NAND type flash memory includes a plurality of floating gate transistors 202, which pass through a plurality of bit lines (only shown as BL1 to BL3) and a plurality of characters. Lines (for example, WL0~WL2, WL4~WL6 shown) form a stereo NAND type flash memory architecture. In Fig. 2, taking the uppermost one plane as an example, all the floating gate transistors on the word line WL0 constitute at least one data page, and all the floating gate transistors on the word line WL1 constitute at least one other data. The page, while all the floating gate transistors of the word line WL2 constitute another at least one data page... such a heap. In addition, depending on the way the flash memory is written, the definition between the word line WL0 and the data page (logical data page) will be different. In detail, when using single-level storage (Single-Level Cell) , SLC) mode, all floating gate transistors on word line WL0 only correspond to a single logical data page; when writing using Multi-Level Cell (MLC), word line All floating gate transistors on WL0 correspond to two, three or four logical data pages, wherein the case where all floating gate transistors on word line WL0 correspond to three logical data pages may be referred to as three layers. The Triple-Level Cell (TLC) architecture, and the case where all of the floating gate transistors on the word line WL0 correspond to four logical data pages may be referred to as a Quad-Level Cell (QLC) architecture. Since the person having ordinary knowledge in the art should be able to understand the structure of the stereo NAND type flash memory and the relationship between the word line and the data page, the related details will not be described herein. In addition, in the operation of the flash memory controller 110, the "data page" is a minimum write unit, and the "block" is a minimum erase unit.

請參考第3圖,其為浮閘電晶體202結構的概念示意圖,如第3圖所示,每一個浮閘電晶體的閘極及浮閘是圍繞在源極與汲極周圍(gate all around),以增強通道感應能力。Please refer to FIG. 3, which is a conceptual diagram of the structure of the floating gate transistor 202. As shown in FIG. 3, the gate and the floating gate of each floating gate transistor are surrounded around the source and the drain (gate all around ) to enhance channel sensing capability.

需注意的是,第2、3圖所示的僅為立體NAND型快閃記憶體與浮閘電晶體202的範例,而並非是作為本發明的限制,本技術領域中具有通常知識者應能了解立體NAND型快閃記憶體尚有其他種型式,例如部分的字元線可彼此連接..等等,且浮閘電晶體202的設計也能有些許的改變。It should be noted that the figures shown in FIGS. 2 and 3 are only examples of the stereo NAND type flash memory and the floating gate transistor 202, and are not intended to be limitations of the present invention, and those having ordinary knowledge in the art should be able to There are other types of stereo NAND flash memory, for example, some of the word lines can be connected to each other. And so on, and the design of the floating gate transistor 202 can be slightly changed.

如先前技術中所述,在某些立體NAND型快閃記憶體中,會將多條字元線定義為一字元線組,而該字元線組會共同具有部分的控制電路,進而導致當資料寫入到該字元線組之一條字元線上的浮閘電晶體發生失敗時(寫入失敗),會連帶導致該字元線組的其他字元線上的浮閘電晶體的資料發生錯誤。在一實施例中,位於同一個平面上的字元線會被設定為一字元線組,參考第2圖,字元線WL0~WL2會被歸於第一字元線組,而字元線WL4~WL6會被歸於第二字元線組…以此類推。請參考第4圖,其為一區塊中多個字元線組的示意圖,在第4圖中係假設該區塊包含了192條字元線上的所有浮閘電晶體,且一個字元線組包含了4條字元線,因此,在第4圖中的區塊係包含了48個字元線組WL_G0~WL_G47;另外,在圖式中該區塊為三層式儲存(TLC)區塊,亦即每一條字元線上的浮閘電晶體可用來儲存三個資料頁的資料,如第4圖所示,以字元線組WL_G0為例,其包含之字元線WL0上的浮閘電晶體可用來儲存低資料頁P0L、中間資料頁P0M及高資料頁P0U,字元線WL1上的浮閘電晶體可用來儲存低資料頁P1L、中間資料頁P1M及高資料頁P1U,字元線WL2上的浮閘電晶體可用來儲存低資料頁P2L、中間資料頁P2M及高資料頁P2U,以及字元線WL3上的浮閘電晶體可用來儲存低資料頁P3L、中間資料頁P3M及高資料頁P3U。當控制器中將資料寫入到字元線組WL_G0的資料頁中時,係循序將資料寫入到字元線WL0、WL1、WL2、WL3中的浮閘電晶體,而假設字元線WL0、WL1上的資料都成功寫入,但是當資料寫入字元線WL2時發生寫入錯誤,則會連帶使得字元線WL0、WL1上原本寫入成功的資料也發生錯誤。As described in the prior art, in some stereo NAND type flash memories, a plurality of word lines are defined as a word line group, and the word line groups collectively have partial control circuits, thereby causing When the floating gate transistor of the data written to one of the character line groups fails (write failure), the data of the floating gate crystal on the other character lines of the character line group is caused to occur. error. In an embodiment, the word lines on the same plane are set to a character line group. Referring to FIG. 2, the word lines WL0 WL WL2 are attributed to the first word line group, and the word lines are WL4~WL6 will be attributed to the second character line group... and so on. Please refer to FIG. 4, which is a schematic diagram of multiple word line groups in a block. In FIG. 4, it is assumed that the block contains all floating gate transistors on 192 word lines, and one word line. The group contains 4 word lines, so the block in Figure 4 contains 48 word line groups WL_G0~WL_G47; in addition, in the figure, the block is a three-layer storage (TLC) area. The block, that is, the floating gate transistor on each word line, can be used to store data of three data pages. As shown in FIG. 4, the character line group WL_G0 is taken as an example, and the floating line on the character line WL0 is included. The gate transistor can be used to store the low data page P0L, the intermediate data page P0M and the high data page P0U. The floating gate transistor on the word line WL1 can be used to store the low data page P1L, the intermediate data page P1M and the high data page P1U, the word The floating gate transistor on the WL2 line can be used to store the low data page P2L, the intermediate data page P2M and the high data page P2U, and the floating gate transistor on the word line WL3 can be used to store the low data page P3L and the intermediate data page P3M. And high data page P3U. When the data is written into the data page of the word line group WL_G0 in the controller, the data is sequentially written to the floating gate transistors in the word lines WL0, WL1, WL2, WL3, and the word line WL0 is assumed. The data on WL1 is successfully written. However, when a write error occurs when the data is written to the word line WL2, an error occurs in the data originally written successfully on the word lines WL0 and WL1.

另外,在某些情況下,即使資料已經成功寫入,但在後續的讀取中仍然以可能會發生無法讀取或是讀取錯誤的情形,例如字元線發生斷路(open)的情形而造成無法讀取資料的情形,此外,如先前所述,一個字元線組中只要有一條字元線發生斷路,便會造成整個字元線組的資料都會發生錯誤。另一方面,若是在不同字元線組中的兩個字元線發生短路,例如第4圖中的字元線WL3和字元線WL4發生短路的現象,則會造成兩個字元線組WL_G0與WL_G1上的資料均無法成功讀取。In addition, in some cases, even if the data has been successfully written, in the subsequent reading, there may be cases where unreadable or read errors may occur, such as the case where the word line is open. In the case where the data cannot be read, in addition, as described above, as long as one word line breaks in one character line group, the data of the entire character line group will be wrong. On the other hand, if a short circuit occurs in two word lines in different word line groups, for example, a short circuit occurs between the word line WL3 and the word line WL4 in FIG. 4, two word line groups are caused. The data on WL_G0 and WL_G1 cannot be read successfully.

如上所述,由於快閃記憶體在寫入資料以及後續的讀取中會碰到上述寫入失敗、字元線斷路以及字元線短路的情形而造成整個字元線組的資料均發生錯誤,因此,本發明在以下的實施例中提出了一種可以確實解決上述問題的存取快閃記憶體模組120的方法,且僅需要很少的資源(亦即很少的記憶體空間)便可以完成。具體內容如下所述。As described above, since the flash memory encounters the above-mentioned write failure, word line disconnection, and word line short circuit in the writing of data and subsequent reading, the data of the entire character line group is incorrect. Therefore, the present invention proposes a method of accessing the flash memory module 120 that can solve the above problems in the following embodiments, and requires only a small amount of resources (ie, a small amount of memory space). can be completed. The details are as follows.

先參考第5圖,第5圖為快閃記憶體控制器110將資料寫入到快閃記憶體模組120的示意圖。如第5圖所示,快閃記憶體模組120包含了多個通道(在本實施例中,係以兩個通道510、520為例),且每一個通道在快閃記憶體控制器110中有各自的序列傳輸器(sequencer)且均包含了多個快閃記憶體晶片,而在本實施例中通道510包含了快閃記憶體晶片512、514,且通道520包含了快閃記憶體晶片522、524。另外,每一個快閃記憶體晶片512、514、522、524中的一個區塊會被組態為一個超級區塊(super block),而快閃記憶體控制器110會將資料以超級區塊為單位來進行寫入。在本實施例中,超級區塊530包含了每一個快閃記憶體晶片512、514、522、524中的一個三層式儲存區塊,且超級區塊540包含了每一個快閃記憶體晶片512、514、522、524中的一個單層式儲存區塊。需注意的是,在本發明的其他實施例中,超級區塊530所包含的也可以是每一個快閃記憶體晶片512、514、522、524中的一個四層式儲存區塊。Referring first to FIG. 5, FIG. 5 is a schematic diagram of the flash memory controller 110 writing data to the flash memory module 120. As shown in FIG. 5, the flash memory module 120 includes a plurality of channels (in the present embodiment, two channels 510, 520 are taken as an example), and each channel is in the flash memory controller 110. There are respective sequencers and each includes a plurality of flash memory chips. In the present embodiment, the channel 510 includes flash memory chips 512, 514, and the channel 520 includes flash memory. Wafers 522, 524. In addition, one of each of the flash memory chips 512, 514, 522, 524 is configured as a super block, and the flash memory controller 110 will use the data as a super block. Write for the unit. In this embodiment, the super block 530 includes one of the three flash memory blocks 512, 514, 522, 524, and the super block 540 includes each of the flash memory chips. A single-layer storage block of 512, 514, 522, 524. It should be noted that in other embodiments of the present invention, the super block 530 may also be a four-layer storage block of each of the flash memory chips 512, 514, 522, 524.

請同時參考第5、6圖,其中第6圖為依據本發明一第一實施例之快閃記憶體控制器110將資料寫入到超級區塊530的示意圖,其中在以下的敘述中,每一筆資料係寫入到快閃記憶體晶片512、514、522、524的一個資料頁,亦即第1筆資料會被寫入到每一個快閃記憶體晶片512、514、522、524中的第一個資料頁P0,第2筆資料會被寫入到每一個快閃記憶體晶片512、514、522、524中的第二個資料頁P1,…,第N筆資料會被寫入到每一個快閃記憶體晶片512、514、522、524中的第N個資料頁P(N-1)。參考第6圖,當快閃記憶體控制器110需要將第1筆資料寫入至超級區塊530中時,首先,第一編解碼器132分別對第1筆資料進行編碼以產生對應的錯誤更正碼,並將第1筆資料與第一編解碼器132所產生的錯誤更正碼一併寫入到每一個快閃記憶體晶片512、514、522、524中的第一個資料頁P0中,詳細來說,第一編解碼器132對第1筆資料中第一部分資料進行編碼以產生錯誤更正碼,並將第一部分資料與其錯誤更正碼寫入到快閃記憶體晶片512的第一個資料頁P0;第一編解碼器132對第1筆資料中第二部分資料進行編碼以產生錯誤更正碼,並將第二部分資料與其錯誤更正碼寫入到快閃記憶體晶片514的第一個資料頁P0;第一編解碼器132對第1筆資料中第三部分資料進行編碼以產生錯誤更正碼,並將第三部分資料與其錯誤更正碼寫入到快閃記憶體晶片522的第一個資料頁P0;以及第一編解碼器132對第1筆資料中第四部分資料(最後一部分資料)進行編碼以產生錯誤更正碼,並將第四部分資料與其錯誤更正碼寫入到快閃記憶體晶片524的第一個資料頁P0。需注意的是,第一編解碼器132要的操作可以是以一個區段(sector)為單位來進行,其中每一個資料頁係由多個區段所組成。在第1筆資料以及第一編解碼器132所產生的錯誤更正碼寫入至超級區塊530之前,快閃記憶體控制器110中的第二編解碼器134會針對第1筆資料以及其錯誤更正碼進行編碼以產生第1組校驗碼S0。在一實施例中,第二編解碼器134可以採用里德-所羅門 ( Reed Solomon,RS )編碼方式或是互斥或(exclusive-OR,XOR)運算來對寫入到每一個快閃記憶體晶片512、514、522、524中的第一個資料頁P0的資料進行編碼,以產生第1組錯誤更正碼S0。舉例來說,但並非作為本發明的限制,第二編解碼器134可以對快閃記憶體晶片512、514、522、524中的第一個資料頁P0的第一個位元彼此一起作互斥或運算來得到第1組校驗碼S0的第一個位元,對快閃記憶體晶片512、514、522、524中的第一個資料頁P0的第二個位元彼此一起作互斥或運算來得到第1組校驗碼S0的第二個位元…以此類推。Please refer to FIG. 5 and FIG. 6 at the same time. FIG. 6 is a schematic diagram of the flash memory controller 110 writing data to the super block 530 according to a first embodiment of the present invention, wherein in the following description, each A data is written to a data page of the flash memory chips 512, 514, 522, 524, that is, the first data is written into each of the flash memory chips 512, 514, 522, 524. The first data page P0, the second data will be written to the second data page P1, ... of each of the flash memory chips 512, 514, 522, 524, the Nth data will be written to The Nth data page P(N-1) of each of the flash memory chips 512, 514, 522, 524. Referring to FIG. 6, when the flash memory controller 110 needs to write the first data into the super block 530, first, the first codec 132 encodes the first data to generate a corresponding error. Correcting the code and writing the first data together with the error correction code generated by the first codec 132 to the first data page P0 of each of the flash memory chips 512, 514, 522, 524 In detail, the first codec 132 encodes the first part of the first data to generate an error correction code, and writes the first part of the data and its error correction code to the first of the flash memory chip 512. Data page P0; the first codec 132 encodes the second portion of the first data to generate an error correction code, and writes the second portion of the data and its error correction code to the first of the flash memory chip 514 Data page P0; the first codec 132 encodes the third part of the first data to generate an error correction code, and writes the third part of the data and its error correction code to the flash memory chip 522 a data page P0; and first The decoder 132 encodes the fourth portion of the first data (the last portion of the data) to generate an error correction code, and writes the fourth portion of the data and its error correction code to the first data of the flash memory chip 524. Page P0. It should be noted that the operation of the first codec 132 may be performed in units of sectors, wherein each data page is composed of a plurality of sectors. Before the first data and the error correction code generated by the first codec 132 are written to the super block 530, the second codec 134 in the flash memory controller 110 will target the first data and its The error correction code is encoded to generate a first set of check codes S0. In an embodiment, the second codec 134 may use a Reed Solomon (RS) encoding method or an exclusive-OR (XOR) operation to write to each flash memory. The data of the first material page P0 of the wafers 512, 514, 522, 524 is encoded to produce a first set of error correction codes S0. For example, but not as a limitation of the present invention, the second codec 134 may interact with each other of the first bit of the first data page P0 of the flash memory chips 512, 514, 522, 524 Repetitive OR operation to obtain the first bit of the first group of check codes S0, and the second bit of the first data page P0 of the flash memory chips 512, 514, 522, 524 are mutually The OR operation is used to obtain the second bit of the first group of check codes S0... and so on.

第二編解碼器134所產生的第1組校驗碼S0係用來當快閃記憶體晶片512、514、522或524中的其中一個快閃記憶體晶片的第一個資料頁P0發生資料錯誤時進行錯誤更正,舉例來說,假設當快閃記憶體晶片512中的第一個資料頁P0的資料發生無法利用本身的資料進行更正的錯誤時(亦即,無法利用第一編解碼器132所產生的錯誤更正碼來進行更正時),第二編解碼器134可以讀取快閃記憶體晶片514、522、524中所有第一個資料頁P0的資料,再加上第1組校驗碼S0,來進行錯誤更正以決定出快閃記憶體晶片512中的第一個資料頁P0的資料。The first set of check codes S0 generated by the second codec 134 is used to generate data on the first data page P0 of one of the flash memory chips 512, 514, 522 or 524. In the case of an error, an error correction is performed. For example, it is assumed that when the data of the first data page P0 in the flash memory chip 512 fails to be corrected by using its own data (that is, the first codec cannot be utilized) When the error correction code generated by 132 is corrected, the second codec 134 can read the data of all the first data pages P0 of the flash memory chips 514, 522, and 524, plus the first group of schools. The code S0 is used to perform error correction to determine the data of the first material page P0 in the flash memory chip 512.

此外,第二編解碼器134所產生的第1組校驗碼S0會先暫時儲存在快閃記憶體控制器110的緩衝記憶體116中。In addition, the first group of check codes S0 generated by the second codec 134 is temporarily stored in the buffer memory 116 of the flash memory controller 110.

另外,在第1筆資料寫入的過程中,快閃記憶體控制器110會對寫入的資料進行讀取檢查的操作,以確定資料是否成功寫入。當資料寫入錯誤時,第二編解碼器134可以直接使用儲存在緩衝記憶體116中的第1組校驗碼S0來對所讀出的資料進行更正,而由於快閃記憶體模組120無法直接對已寫入的資料做修正,更正後的資料(更正後的第1筆資料)可以等待後續適合的時間連同超級區塊530中的其他資料一併寫入到另外一個超級區塊中。而在快閃記憶體控制器110判斷第1筆資料已經成功寫入到快閃記憶體晶片512、514、522、524中第一個資料頁P0後,快閃記憶體控制器110便會將第1組校驗碼S0從緩衝記憶體116中搬移到超級區塊540中。In addition, during the writing of the first data, the flash memory controller 110 performs a read check operation on the written data to determine whether the data is successfully written. When the data is written incorrectly, the second codec 134 can directly correct the read data by using the first group of check codes S0 stored in the buffer memory 116, and the flash memory module 120 is used. It is not possible to directly correct the written data, and the corrected data (the first data after correction) can wait for the subsequent suitable time to be written together with other materials in the super block 530 to another super block. . After the flash memory controller 110 determines that the first data has been successfully written to the first data page P0 of the flash memory chips 512, 514, 522, 524, the flash memory controller 110 will The first group of check codes S0 is moved from the buffer memory 116 to the super block 540.

接著,當快閃記憶體控制器110需要將第2筆資料寫入至超級區塊530中時,首先,第一編解碼器132分別對第2筆資料進行編碼以產生對應的錯誤更正碼,並將第2筆資料與第一編解碼器132所產生的錯誤更正碼一併寫入到每一個快閃記憶體晶片512、514、522、524中的第二個資料頁P1中。在第2筆資料以及第一編解碼器132所產生的錯誤更正碼寫入至超級區塊530之前,快閃記憶體控制器110中的第二編解碼器134會針對第2筆資料以及其錯誤更正碼進行編碼以產生第2組校驗碼S1。在一實施例中,第二編解碼器134可以採用里德-所羅門編碼方式或是互斥或運算來對寫入到每一個快閃記憶體晶片512、514、522、524中的第二個資料頁P1的資料進行編碼,以產生第2組錯誤更正碼S1。Next, when the flash memory controller 110 needs to write the second data into the super block 530, first, the first codec 132 respectively encodes the second data to generate a corresponding error correction code. The second data is written to the second material page P1 of each of the flash memory chips 512, 514, 522, 524 together with the error correction code generated by the first codec 132. Before the second data and the error correction code generated by the first codec 132 are written to the super block 530, the second codec 134 in the flash memory controller 110 will target the second data and its The error correction code is encoded to generate a second set of check codes S1. In one embodiment, the second codec 134 may use a Reed-Solomon encoding or a mutually exclusive OR operation to write to the second of each of the flash memory chips 512, 514, 522, 524. The data of the data page P1 is encoded to generate a second set of error correction codes S1.

此外,第二編解碼器134所產生的第2組校驗碼S1會先暫時儲存在快閃記憶體控制器110的緩衝記憶體116中。In addition, the second group of check codes S1 generated by the second codec 134 is temporarily stored in the buffer memory 116 of the flash memory controller 110.

類似地,在第2筆資料寫入的過程中,快閃記憶體控制器110也會對寫入的資料進行讀取檢查的操作,以確定資料是否成功寫入。當資料寫入錯誤時,第二編解碼器134可以直接使用儲存在緩衝記憶體116中的第2組校驗碼S1來對所讀出的資料進行更正,而更正後的資料(更正後的第2筆資料)可以等待後續適合的時間連同超級區塊530中的其他資料一併寫入到另外一個超級區塊中。而在快閃記憶體控制器110判斷第2筆資料已經成功寫入到快閃記憶體晶片512、514、522、524中第二個資料頁P1後,快閃記憶體控制器110便會將第2組校驗碼S1從緩衝記憶體116中搬移到超級區塊540中。Similarly, during the writing of the second data, the flash memory controller 110 also performs a read check operation on the written data to determine whether the data is successfully written. When the data is written incorrectly, the second codec 134 can directly correct the read data using the second group of check codes S1 stored in the buffer memory 116, and the corrected data (corrected) The second data) can wait for the next suitable time to be written to another super block along with other data in the super block 530. After the flash memory controller 110 determines that the second data has been successfully written to the second data page P1 of the flash memory chips 512, 514, 522, 524, the flash memory controller 110 will The second set of check codes S1 is moved from the buffer memory 116 to the super block 540.

需注意的是,當第2筆資料寫入的過程中也發生寫入錯誤的情形時,則由於資料頁P1、P0是屬於同一個字元線組WL_G0,因此,快閃記憶體晶片512、514、522、524中的資料頁P0也有可能發生損壞。舉例來說,假設快閃記憶體晶片514的資料頁P1在資料寫入的過程中發生錯誤,則先前已成功寫入的快閃記憶體晶片514的資料頁P0也會發生錯誤。此時,由於緩衝記憶體116本身並沒有儲存第1組校驗碼S0,因此,快閃記憶體控制器110會自超級區塊540中讀取第1組校驗碼S0,來對自超級區塊530所讀取的第1筆資料來進行更正。It should be noted that when a write error occurs in the process of writing the second data, since the data pages P1 and P0 belong to the same word line group WL_G0, the flash memory chip 512, The data page P0 in 514, 522, and 524 may also be damaged. For example, assuming that the material page P1 of the flash memory chip 514 has an error during the data writing, the data page P0 of the flash memory chip 514 that has been successfully written previously also has an error. At this time, since the buffer memory 116 itself does not store the first group check code S0, the flash memory controller 110 reads the first group check code S0 from the super block 540 to The first data read by block 530 is corrected.

基於同樣的操作,快閃記憶體控制器110繼續將第3筆資料寫入至快閃記憶體晶片512、514、522、524中的第三個資料頁P2中,並產生相對應的第3組校驗碼S2;以及將第4筆資料寫入至快閃記憶體晶片512、514、522、524中的第四個資料頁P3中,並產生相對應的第4組校驗碼S3,以完成字元線組WL_G0上的資料寫入操作。Based on the same operation, the flash memory controller 110 continues to write the third data into the third material page P2 of the flash memory chips 512, 514, 522, 524, and generates the corresponding third. Group check code S2; and writing the fourth data into the fourth data page P3 of the flash memory chips 512, 514, 522, 524, and generating a corresponding fourth group check code S3, To complete the data write operation on the word line group WL_G0.

接著,類似以上步驟,快閃記憶體控制器110將接下來的第5~184筆資料寫入至快閃記憶體晶片512、514、522、524中,且第二編解碼器134對第5~184筆資料進行編碼以分別產生第5~183組校驗碼S4~S183,並將第5~183組校驗碼S4~S183儲存至超級區塊540中。Then, similar to the above steps, the flash memory controller 110 writes the next 5~184th data into the flash memory chips 512, 514, 522, 524, and the second codec 134 is 5th. The ~184 data is encoded to generate the 5th to 183th check codes S4 to S183, respectively, and the 5th to 183th check codes S4 to S183 are stored in the super block 540.

針對第185筆資料,快閃記憶體控制器110只會將第185筆資料連同第一編解碼器132所產生的錯誤更正碼來寫入至快閃記憶體晶片512、514、522中的資料頁P184,而並不會將資料寫入到快閃記憶體晶片524中的資料頁P184。在第185筆資料寫入至超級區塊530之前,第二編解碼器134對第185筆資料及其錯誤更正碼來進行編碼以產生第185組校驗碼S184。接著,快閃記憶體控制器110自超級區塊540中讀取每一個字元線組WL_G0~WL_G45的第一組校驗碼S0、S8、S16、…、S176,且第二編解碼器對校驗碼S0、S8、S16、…、S176以及校驗碼S184彼此一起作互斥或運算來得到第一組最終校驗碼SF0。接著,快閃記憶體控制器110將第185筆資料寫入至快閃記憶體晶片512、514、522中的資料頁P184,並將第一組最終校驗碼SF0寫入到快閃記憶體晶片524中的資料頁P184。在一實施例中,第二編解碼器134對校驗碼S0、S8、S16、…、S184中的第一個位元一起作互斥或運算來產生最終校驗碼SF0的第一個位元,對校驗碼S0、S8、S16、…、S184中的第二個位元一起作互斥或運算來產生最終校驗碼SF0的第二個位元…以此類推,直到完成最終校驗碼SF0的最後一個位元。另外,校驗碼S184可以儲存至超級區塊540中。For the 185th data, the flash memory controller 110 only writes the 185th data together with the error correction code generated by the first codec 132 to the data in the flash memory chips 512, 514, 522. Page P184 does not write data to the material page P184 in the flash memory chip 524. Before the 185th data is written to the super block 530, the second codec 134 encodes the 185th data and its error correction code to generate the 185th set of check code S184. Next, the flash memory controller 110 reads the first set of check codes S0, S8, S16, ..., S176 of each of the word line groups WL_G0 WL WL_45 from the super block 540, and the second codec pair The check codes S0, S8, S16, ..., S176 and the check code S184 are mutually exclusive or operated together to obtain a first set of final check codes SF0. Next, the flash memory controller 110 writes the 185th data to the data page P184 in the flash memory chips 512, 514, 522, and writes the first set of final check code SF0 to the flash memory. Data page P184 in wafer 524. In an embodiment, the second codec 134 performs a mutually exclusive operation on the first bit of the check codes S0, S8, S16, ..., S184 to generate the first bit of the final check code SF0. The second bit in the check codes S0, S8, S16, ..., S184 is mutually exclusive ORed to generate the second bit of the final check code SF0... and so on until the final school is completed. The last bit of the code SF0 is verified. Additionally, the check code S184 can be stored in the super block 540.

針對第186筆資料,快閃記憶體控制器110只會將第186筆資料連同第一編解碼器132所產生的錯誤更正碼來寫入至快閃記憶體晶片512、514、522中的資料頁P185,而並不會將資料寫入到快閃記憶體晶片524中的資料頁P185。在第186筆資料寫入至超級區塊530之前,第二編解碼器134對第186筆資料及其錯誤更正碼來進行編碼以產生第186組校驗碼S185。接著,快閃記憶體控制器110自超級區塊540中讀取每一個字元線組WL_G0~WL_G45的第二組校驗碼S1、S9、S17、…、S177,且第二編解碼器對校驗碼S1、S9、S17、…、S177以及校驗碼S185彼此一起作互斥或運算來得到第二組最終校驗碼SF1。接著,快閃記憶體控制器110將第186筆資料寫入至快閃記憶體晶片512、514、522中的資料頁P185,並將第二組最終校驗碼SF1寫入到快閃記憶體晶片524中的資料頁P185。在一實施例中,第二編解碼器134對校驗碼S1、S9、S17、…、S185中的第一個位元一起作互斥或運算來產生最終校驗碼SF1的第一個位元,對校驗碼S1、S9、S17、…、S185中的第二個位元一起作互斥或運算來產生最終校驗碼SF1的第二個位元…以此類推,直到完成最終校驗碼SF1的最後一個位元。此外,校驗碼S185可以儲存至超級區塊540中。For the 186th data, the flash memory controller 110 only writes the 186th data together with the error correction code generated by the first codec 132 to the data in the flash memory chips 512, 514, 522. Page P185 does not write data to the material page P185 in the flash memory chip 524. Before the 186th data is written to the super block 530, the second codec 134 encodes the 186th data and its error correction code to generate the 186th set of check code S185. Next, the flash memory controller 110 reads the second set of check codes S1, S9, S17, ..., S177 of each of the word line groups WL_G0 WL WL_45 from the super block 540, and the second codec pair The check codes S1, S9, S17, ..., S177 and the check code S185 are mutually exclusive or operated together to obtain a second set of final check codes SF1. Next, the flash memory controller 110 writes the 186th data to the data page P185 in the flash memory chips 512, 514, 522, and writes the second set of final check code SF1 to the flash memory. Data page P185 in wafer 524. In an embodiment, the second codec 134 performs a mutually exclusive operation on the first bit of the check codes S1, S9, S17, ..., S185 to generate the first bit of the final check code SF1. The second bit in the check codes S1, S9, S17, ..., S185 is mutually exclusive ORed to generate the second bit of the final check code SF1... and so on until the final school is completed. The last bit of the code SF1. Further, the check code S185 can be stored in the super block 540.

基於類似的操作,針對第187~192筆資料,快閃記憶體控制器110將第187~192筆資料連同第一編解碼器132所產生的錯誤更正碼來寫入至快閃記憶體晶片512、514、522中的資料頁P186~P191;且第二編解碼器134也根據上述類似的操作來產生第三至八組最終校驗碼SF2~SF7,並將第三至八組最終校驗碼SF2~SF7分別寫入到快閃記憶體晶片524中的資料頁P186~P191。Based on the similar operation, for the 187th to 192th data, the flash memory controller 110 writes the 187th to 192th data together with the error correction code generated by the first codec 132 to the flash memory chip 512. Data pages P186~P191 in 514, 522; and the second codec 134 also generates third to eighth sets of final check codes SF2~SF7 according to the similar operations described above, and the third to eighth sets of final checksums The codes SF2 to SF7 are written to the material pages P186 to P191 in the flash memory chip 524, respectively.

上述根據第1~192組校驗碼S0~S191來產生8組最終校驗碼SF0~SF7的概念可以參考第7圖所示的內容。For the concept of generating the eight sets of final check codes SF0 to SF7 based on the first to 192th sets of check codes S0 to S191, reference may be made to the contents shown in FIG.

在本實施例中,超級區塊540中所儲存的校驗碼本身只是一個暫時性的校驗碼,亦即超級區塊540所儲存的多組校驗碼S0~S191只有在資料寫入到超級區塊530的過程中發生錯誤時才會使用到。因此,在最終校驗碼SF0~SF7寫入至超級區塊530之後,超級區塊540所儲存的多組校驗碼S0~S191便不需要再被需要使用,因此,在後續超級區塊530中所儲存的該資料仍然為有效的情形下,快閃記憶體控制器110可以將超級區塊540的內容抹除或是標記為無效。In this embodiment, the check code stored in the super block 540 is only a temporary check code, that is, the plurality of check codes S0~S191 stored in the super block 540 are only written in the data. This is only used when an error occurs during the super block 530. Therefore, after the final check codes SF0~SF7 are written to the super block 530, the plurality of sets of check codes S0~S191 stored in the super block 540 need not be used again, and therefore, in the subsequent super block 530. In the event that the data stored in the data is still valid, the flash memory controller 110 can erase or mark the contents of the super block 540 as invalid.

需注意的是,由於上述的最終校驗碼SF0~SF7是由校驗碼S0~S191所產生的,因此,最終校驗碼SF0~SF7實質上便帶有先前每一組校驗碼S0~S191的資訊。亦即,在後續的讀取操作中,每一組校驗碼S0~S191除了可以再次根據相對應的資料頁內容來得到之外(例如讀取快閃記憶體晶片512、514、522、524的資料頁P1來得到校驗碼S1),若是發生錯誤時也可以透過相對應的最終校驗碼SF0~SF7來進行更正。舉例來說,假設字元線組WL_G0中有一條字元線發生斷路,例如快閃記憶體晶片514之資料頁P0所對應到的字元線斷路,則快閃記憶體控制器110可以讀取其他字元線組中的資料來重新產生校驗碼S8、S16、...、S184以及最終校驗碼SF0,以重新產生校驗碼S0,之後再使用校驗碼S0以及自快閃記憶體晶片512、522、524之資料頁P0所讀取的內容來重新產生快閃記憶體晶片514之資料頁P0的資料;快閃記憶體控制器110讀取其他字元線組中的資料來重新產生校驗碼S9、S17、...、S185以及最終校驗碼SF1,以重新產生校驗碼S1,之後再使用校驗碼S1以及自快閃記憶體晶片512、522、524之資料頁P1所讀取的內容來重新產生快閃記憶體晶片514之資料頁P1的資料;以及根據上述類似操作來重新產生快閃記憶體晶片514之資料頁P2、P3的資料。如上所述,透過上述操作,只要超級區塊530沒有出現多個資料線斷路的情形,均可以順利地將資料更正還原,而不會發生資料無法修復的情形。It should be noted that since the above final check codes SF0~SF7 are generated by the check codes S0~S191, the final check codes SF0~SF7 have substantially the previous set of check codes S0~. S191 information. That is, in the subsequent read operation, each set of check codes S0~S191 can be obtained in addition to the corresponding data page content (for example, reading the flash memory chips 512, 514, 522, 524). The data page P1 obtains the check code S1), and if an error occurs, it can be corrected by the corresponding final check code SF0~SF7. For example, if one of the word line groups WL_G0 is disconnected, for example, the word line corresponding to the data page P0 of the flash memory chip 514 is broken, the flash memory controller 110 can read The data in the other character line group regenerates the check codes S8, S16, ..., S184 and the final check code SF0 to regenerate the check code S0, and then uses the check code S0 and the self-flash memory. The content read by the material page P0 of the body wafers 512, 522, 524 regenerates the data of the data page P0 of the flash memory chip 514; the flash memory controller 110 reads the data in other character line groups. The check codes S9, S17, ..., S185 and the final check code SF1 are regenerated to regenerate the check code S1, and then the check code S1 and the data from the flash memory chips 512, 522, 524 are used. The content read by page P1 regenerates the data of the data page P1 of the flash memory chip 514; and the data of the data pages P2, P3 of the flash memory chip 514 are regenerated according to the similar operations described above. As described above, through the above operation, as long as the plurality of data lines are not broken in the super block 530, the data correction can be smoothly restored without occurrence of the fact that the data cannot be repaired.

此外,若是字元線組WL_G0和WL_G1之間發生兩條資料線短路,例如快閃記憶體晶片514之資料頁P3、P4所對應到的字元線短路的情形,亦可以透過上一個段落所提及的方法來將字元線組WL_G0和WL_G1內的資料更正還原,而不會發生資料無法修復的情形。In addition, if two data lines are short-circuited between the word line groups WL_G0 and WL_G1, for example, the word line corresponding to the data pages P3 and P4 of the flash memory chip 514 is short-circuited, and the previous paragraph can also be used. The method mentioned is used to correct the data in the word line groups WL_G0 and WL_G1, without the situation that the data cannot be repaired.

需注意的是,第6圖所繪示的P0~P191的每一者所代表的並非限定是三個資料頁,而可能是2個或是4個資料頁。It should be noted that each of P0~P191 depicted in FIG. 6 represents not limited to three data pages, but may be two or four data pages.

此外,在第6~7圖所示的實施例中,最終校驗碼SF0~SF7是透過讀取先前所儲存在超級區塊540中的校驗碼所產生的,然而,本發明並不以此為限。在另一實施例中,儲存至超級區塊540中的校驗碼在產生的過程中也可以同時使用之前字元線組的校驗碼來一同進行編碼,舉例來說,第二編解碼器134可以對第9筆資料(寫入至每一個快閃記憶體晶片512、514、522、524中的第9個資料頁P8)以及第1組校驗碼S0一同進行編碼來產生第9組校驗碼S8、對第17筆資料(寫入至每一個快閃記憶體晶片512、514、522、524中的第17個資料頁P16)以及第9組校驗碼S8一同進行編碼來產生第17組校驗碼S16、…、對第185筆資料(寫入至每一個快閃記憶體晶片512、514、522、524中的第185個資料頁P184)以及第177組校驗碼S176一同進行編碼來產生第185組校驗碼S184。如此一來,由於第185組校驗碼S184本身已經帶有先前的校驗碼S0、S8、S16、…、S176的資訊,故第185組校驗碼S184便可以直接作為第一組最終校驗碼SF0,並儲存至超級區塊530之對應到快閃記憶體晶片524的資料頁P184。同理,最終校驗碼SF1~SF7亦可透過上述方式來產生,並分別儲存至超級區塊530之對應到快閃記憶體晶片524的資料頁P185~P191中。Further, in the embodiment shown in FIGS. 6 to 7, the final check codes SF0 to SF7 are generated by reading the check code previously stored in the super block 540, however, the present invention does not This is limited. In another embodiment, the check code stored in the super block 540 can also be encoded together with the check code of the previous word line group in the process of generation, for example, the second codec. 134 may encode the ninth data (the ninth data page P8 written to each of the flash memory chips 512, 514, 522, 524) and the first group of check codes S0 to generate the ninth group. The check code S8, the 17th data (written to the 17th data page P16 of each of the flash memory chips 512, 514, 522, 524) and the 9th set of check code S8 are encoded together to generate The 17th group check code S16, ..., the 185th data (written to the 185th data page P184 of each of the flash memory chips 512, 514, 522, 524) and the 177th group check code S176 Coding is performed together to generate a 185th set of check codes S184. In this way, since the 185th group check code S184 itself has the information of the previous check codes S0, S8, S16, ..., S176, the 185th group check code S184 can be directly used as the first group final school. The code SF0 is stored and stored in the data block P184 of the super block 530 corresponding to the flash memory chip 524. Similarly, the final check codes SF1 SF SF7 can also be generated in the above manner, and stored in the data blocks P185 to P191 of the super block 530 corresponding to the flash memory chip 524, respectively.

另外,在第5圖中,超級區塊530僅包含了每一個快閃記憶體晶片512、514、522、524中的一個三層式儲存區塊,然而,在其他實施例中,例如快閃記憶體模組120是被組態為兩個區塊平面的情形之下,超級區塊530可以包含了每一個快閃記憶體晶片512、514、522、524中的兩個三層式儲存區塊,而每一個快閃記憶體晶片512、514、522、524中的兩個三層式儲存區塊是由不同的晶片致能(chip enable)訊號所控制的。同理,超級區塊540也可以包含了每一個快閃記憶體晶片512、514、522、524中的兩個單層式儲存區塊。In addition, in FIG. 5, the super block 530 includes only one of the three flash memory blocks 512, 514, 522, 524. However, in other embodiments, for example, flashing In the case where the memory module 120 is configured as two block planes, the super block 530 may include two three-layer storage areas of each of the flash memory chips 512, 514, 522, 524. Blocks, and two of the three flash memory blocks of each of the flash memory chips 512, 514, 522, 524 are controlled by different chip enable signals. Similarly, super block 540 can also include two single-layer storage blocks in each of flash memory chips 512, 514, 522, 524.

請參考第8圖,其為根據本發明一實施例之存取一快閃記憶體模組的方法的流程圖。參考以上所揭露的內容,流程如下所述:Please refer to FIG. 8 , which is a flowchart of a method for accessing a flash memory module according to an embodiment of the invention. Referring to the above disclosure, the process is as follows:

步驟800:流程開始。Step 800: The process begins.

步驟802:規劃多個快閃記憶體晶片以使得多個快閃記憶體晶片具有至少一第一超級區塊以及至少一第二超級區塊。Step 802: Plan a plurality of flash memory chips such that the plurality of flash memory chips have at least one first super block and at least one second super block.

步驟804:將一資料寫入至該至少一超級區塊中。Step 804: Write a data into the at least one super block.

步驟806:對該資料進行編碼以產生多組暫時性的校驗碼,並將該多組暫時性的校驗碼儲存至該至少一第二超級區塊。Step 806: Encode the data to generate a plurality of sets of temporary check codes, and store the plurality of sets of temporary check codes to the at least one second super block.

步驟808:根據該多組暫時性的校驗碼來產生最終校驗碼。Step 808: Generate a final check code according to the plurality of sets of temporary check codes.

步驟810:將最終校驗碼寫入至該至少一第一超級區塊。Step 810: Write a final check code to the at least one first super block.

步驟812:將該至少一第二超級區塊抹除或是標記為無效。Step 812: Erasing or marking the at least one second super block as invalid.

步驟814:流程結束。Step 814: The process ends.

簡要歸納本發明,在本發明的存取快閃記憶體模組的方法的實施例中,第二編解碼器會循序對寫入至多層式儲存的超級區塊的多筆資料來進行編碼,並將所產生之暫時性的校驗碼儲存至單層式儲存的超級區塊,之後再讀取單層式儲存的超級區塊中所儲存的暫時性的校驗碼來產生資料量很低的最終校驗碼,並將最終校驗碼儲存至多層式儲存的超級區塊中。透過上述存取方式,除了可以對資料寫入錯誤、字元線斷路以及字元線短路所造成的資料讀取錯誤進行更正之外,也可以大幅降低快閃記憶體控制器中緩衝記憶體的容量需求,且快閃記憶體模組中也不需要浪費太多個空間來儲存校驗碼,故可以大幅降低快閃記憶體控制器的成本以及快閃記憶體模組的使用效率。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。Briefly summarized in the present invention, in an embodiment of the method for accessing a flash memory module of the present invention, the second codec sequentially encodes multiple pieces of data written to the multi-stored super block. And storing the generated temporary check code to the super-block stored in the single-layer storage, and then reading the temporary check code stored in the super-block stored in the single-layer storage to generate a low amount of data. The final check code is stored and the final check code is stored in the multi-stored super block. Through the above access method, in addition to correcting data reading errors caused by data writing errors, word line disconnection, and word line short circuit, the buffer memory in the flash memory controller can be greatly reduced. Capacity requirements, and the flash memory module does not need to waste too much space to store the check code, so the cost of the flash memory controller and the use efficiency of the flash memory module can be greatly reduced. The above are only the preferred embodiments of the present invention, and all changes and modifications made to the scope of the present invention should be within the scope of the present invention.

100‧‧‧記憶裝置
110‧‧‧快閃記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧快閃記憶體模組
132‧‧‧第一編解碼器
134‧‧‧第二編解碼器
202‧‧‧浮閘電晶體
510、520‧‧‧通道
512、514、516、518‧‧‧快閃記憶體晶片
530、540‧‧‧超級區塊
800~814‧‧‧步驟
B1~B3‧‧‧位元線
WL0~WL47‧‧‧字元線
WL_G0~WL_G47‧‧‧字元線組
100‧‧‧ memory device
110‧‧‧Flash Memory Controller
112‧‧‧Microprocessor
112C‧‧‧ Code
112M‧‧‧Reading memory
114‧‧‧Control logic
116‧‧‧Buffered memory
118‧‧‧Interface logic
120‧‧‧Flash Memory Module
132‧‧‧first codec
134‧‧‧Second codec
202‧‧‧Floating transistor
510, 520‧‧‧ channels
512, 514, 516, 518‧‧‧ flash memory chips
530, 540‧‧‧Super Block
800~814‧‧‧Steps
B1~B3‧‧‧ bit line
WL0~WL47‧‧‧ character line
WL_G0~WL_G47‧‧‧ character line group

第1圖為依據本發明一實施例之一種記憶裝置的示意圖。 第2圖為一立體NAND型快閃記憶體的範例示意圖。 第3圖為浮閘電晶體結構的概念示意圖。 第4圖為一區塊中多個字元線組的示意圖。 第5圖為快閃記憶體控制器將資料寫入到快閃記憶體模組、以及超級區塊的示意圖。 第6圖為依據本發明一第一實施例之快閃記憶體控制器將資料寫入到超級區塊的示意圖。 第7圖為根據第1~192組校驗碼S0~S191來產生8組最終校驗碼SF0~SF7的示意圖。 第8圖為根據本發明一實施例之存取一快閃記憶體模組的方法的流程圖。1 is a schematic diagram of a memory device in accordance with an embodiment of the present invention. Figure 2 is a schematic diagram of an example of a stereo NAND type flash memory. Figure 3 is a conceptual diagram of the structure of a floating gate transistor. Figure 4 is a schematic diagram of multiple word line groups in a block. Figure 5 is a schematic diagram of the flash memory controller writing data to the flash memory module and the super block. Figure 6 is a diagram showing the flash memory controller writing data to the super block in accordance with a first embodiment of the present invention. FIG. 7 is a schematic diagram of generating eight sets of final check codes SF0 to SF7 according to the first to 192th check codes S0 to S191. 8 is a flow chart of a method of accessing a flash memory module in accordance with an embodiment of the present invention.

Claims (24)

一種存取一快閃記憶體模組的方法,其中該快閃記憶體模組係為一立體快閃記憶體(3D NAND-type flash)模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片為一立體快閃記憶體晶片,且包含了多個區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該方法包含有:規劃該多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一第一超級區塊(super block)以及至少一第二超級區塊,其中該第一超級區塊以及該第二超級區塊中每一者均包含了分別位於該多個快閃記憶體晶片中的多個區塊;以及指派該至少一第二超級區塊以用來儲存在一資料寫入至該至少一第一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。 A method for accessing a flash memory module, wherein the flash memory module is a 3D NAND-type flash module, and the flash memory module includes a plurality of A flash memory chip, each of which is a stereo flash memory chip and includes a plurality of blocks, each of which contains a plurality of data pages; each of the blocks includes a plurality of data blocks respectively a plurality of word lines of different planes and a plurality of floating gate transistors controlled by the bit lines, and the floating gate transistors on each of the word lines constitute at least one of the plurality of material pages; and the The method includes: planning the plurality of flash memory chips such that the plurality of flash memory chips have at least one first super block and at least one second super block, wherein the first super area Each of the block and the second super block includes a plurality of blocks respectively located in the plurality of flash memory chips; and assigning the at least one second super block for storing in a data write Into the process of the at least one first super block Code generating many temporary check code group. 如申請專利範圍第1項所述之方法,其中該至少一第二超級區塊係專屬用來儲存任何資料寫入至該至少一第一超級區塊的編碼過程中所產生之暫時性的校驗碼。 The method of claim 1, wherein the at least one second super block is exclusively used to store a temporary school generated by any data written into the encoding process of the at least one first super block. Code verification. 如申請專利範圍第1項所述之方法,其中該至少一第一超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個多層式儲存區塊,且該至少一第二超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個單層式儲存區塊。 The method of claim 1, wherein the at least one first super block comprises a multi-layer storage block of each of the plurality of flash memory chips, and the at least one A second super block includes a single layer storage block of each of the plurality of flash memory chips. 如申請專利範圍第3項所述之方法,其中該多層式儲存區塊為三層式儲存(Triple-Level Cell,TLC)區塊或是四層式儲存(Quad-Level Cell,QLC)區塊。 The method of claim 3, wherein the multi-layer storage block is a Triple-Level Cell (TLC) block or a Quad-Level Cell (QLC) block. . 如申請專利範圍第1項所述之方法,另包含有:在該資料寫入至該至少一第一超級區塊的過程中:自該第一超級區塊中讀取該資料之已經寫入至該至少一第一超級區塊的部分內容;以及當讀取該資料的部分內容的過程中發生無法更正的錯誤時,自該第二超級區塊讀取至少一部份之暫時性的校驗碼,並使用所讀取之暫時性的校驗碼來對所讀取的資料進行錯誤更正。 The method of claim 1, further comprising: in the process of writing the data to the at least one first super block: reading the data from the first super block has been written Reading a portion of the content of the at least one first super block; and reading at least a portion of the temporary school from the second super block when an uncorrectable error occurs during reading of a portion of the content of the material The code is verified and the read data is error corrected using the read temporary check code. 如申請專利範圍第1項所述之方法,另包含有:自該至少一第二超級區塊中讀取該多組暫時性的校驗碼;對該多組暫時性的校驗碼進行編碼以產生一組最終校驗碼;以及將該組最終校驗碼寫入至該至少一第一超級區塊中。 The method of claim 1, further comprising: reading the plurality of sets of temporary check codes from the at least one second super block; encoding the plurality of sets of temporary check codes Generating a set of final check codes; and writing the set of final check codes to the at least one first super block. 如申請專利範圍第6項所述之方法,另包含有:在將該組最終校驗碼寫入至該第一超級區塊之後,在該至少一第一超級區塊中所儲存的該資料仍然為有效的情形下,將該至少一第二超級區塊的內容抹除或是標記為無效。 The method of claim 6, further comprising: storing the data stored in the at least one first super block after the final verification code is written to the first super block If still valid, the content of the at least one second superblock is erased or marked as invalid. 如申請專利範圍第6項所述之方法,另包含有:在該組最終校驗碼寫入至該至少一第一超級區塊中之後: 自該第一超級區塊中讀取該資料的部分內容;以及當讀取該資料的部分內容的過程中發生無法更正的錯誤時,自該至少一第一超級區塊中讀取該組最終校驗碼,並使用所讀取之該組最終校驗碼來對所讀取的資料進行錯誤更正。 The method of claim 6, further comprising: after the final verification code of the group is written into the at least one first super block: Reading a portion of the material from the first super block; and reading an uncorrectable error in the process of reading a portion of the content, reading the group from the at least one first super block Check the code and use the set of final check codes read to correct the data read. 一種快閃記憶體控制器,該快閃記憶體控制器係用來存取一快閃記憶體模組,其中該快閃記憶體模組係為一立體快閃記憶體(3D NAND-type flash)模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片為一立體快閃記憶體晶片,且包含了多個區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該快閃記憶體控制器包含有:一記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;以及一編解碼器;其中該微處理器規劃該多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一第一超級區塊(super block)以及至少一第二超級區塊,其中該第一超級區塊以及該第二超級區塊中每一者均包含了分別位於該多個快閃記憶體晶片中的多個區塊;以及指派該至少一第二超級區塊以用來儲存在一資料寫入至該至少一第一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。 A flash memory controller for accessing a flash memory module, wherein the flash memory module is a stereo flash memory (3D NAND-type flash) a module, the flash memory module includes a plurality of flash memory chips, each flash memory chip is a stereo flash memory chip, and includes a plurality of blocks, each block includes a plurality of data pages; each of the blocks includes a plurality of floating gate transistors controlled by a plurality of word lines and bit lines respectively in a plurality of different planes, and the floating gate transistors on each of the word lines constitute a floating gate transistor At least one of the plurality of data pages; and the flash memory controller includes: a memory for storing a code; a microprocessor for executing the code to control the An access to the flash memory module; and a codec; wherein the microprocessor plans the plurality of flash memory chips such that the plurality of flash memory chips have at least one first super block (super Block) and at least one second super block, wherein the Each of the super block and the second super block includes a plurality of blocks respectively located in the plurality of flash memory chips; and the at least one second super block is assigned for storage in a The plurality of sets of temporary check codes encoded in the process of writing the data to the at least one first super block. 如申請專利範圍第9項所述之快閃記憶體控制器,其中該至少一第二超級區塊係專屬用來儲存任意資料寫入至該至少一第一超級區塊的編碼過 程中所產生之暫時性的校驗碼。 The flash memory controller of claim 9, wherein the at least one second super block is exclusively used to store any data written to the code of the at least one first super block. The temporary check code generated in the process. 如申請專利範圍第9項所述之快閃記憶體控制器,其中該至少一第一超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個多層式儲存區塊,且該至少一第二超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個單層式儲存區塊。 The flash memory controller of claim 9, wherein the at least one first super block comprises a multi-layer storage area of each of the plurality of flash memory chips. And the at least one second super block includes a single layer storage block of each of the plurality of flash memory chips. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該多層式儲存區塊為三層式儲存(Triple-Level Cell,TLC)區塊或是四層式儲存(Quad-Level Cell,QLC)區塊。 The flash memory controller of claim 11, wherein the multi-layer storage block is a triple-level cell (TLC) block or a four-layer storage (Quad-Level Cell). , QLC) block. 如申請專利範圍第9項所述之快閃記憶體控制器,其中在該資料寫入至該至少一第一超級區塊的過程中:該微處理器自該第一超級區塊中讀取該資料之已經寫入至該至少一第一超級區塊的部分內容;以及當讀取該資料的部分內容的過程中發生無法更正的錯誤時,自該第二超級區塊讀取至少一部份之暫時性的校驗碼,且該編解碼器使用所讀取之暫時性的校驗碼來對所讀取的資料進行錯誤更正。 The flash memory controller of claim 9, wherein in the process of writing the data to the at least one first super block: the microprocessor reads from the first super block The data has been written to a portion of the at least one first superblock; and when an uncorrectable error occurs during reading of a portion of the content, at least one of the second superblock is read A temporary check code, and the codec uses the read temporary check code to correct the read data. 如申請專利範圍第9項所述之快閃記憶體控制器,其中該微處理器自該至少一第二超級區塊中讀取該多組暫時性的校驗碼,該編解碼器對該多組暫時性的校驗碼進行編碼以產生一組最終校驗碼,以及該微處理器將該組最終校驗碼寫入至該至少一第一超級區塊中。 The flash memory controller of claim 9, wherein the microprocessor reads the plurality of sets of temporary check codes from the at least one second super block, the codec A plurality of sets of temporary check codes are encoded to generate a set of final check codes, and the microprocessor writes the set of final check codes into the at least one first super block. 如申請專利範圍第14項所述之快閃記憶體控制器,其中在將該組最 終校驗碼寫入至該第一超級區塊之後,在該至少一第一超級區塊中所儲存的該資料仍然為有效的情形下,該微處理器將該至少一第二超級區塊的內容抹除或是標記為無效。 A flash memory controller as described in claim 14, wherein the group is the most After the final check code is written to the first super block, the microprocessor stores the at least one second super block if the data stored in the at least one first super block is still valid. The content is erased or marked as invalid. 如申請專利範圍第14項所述之快閃記憶體控制器,其中在該組最終校驗碼寫入至該至少一第一超級區塊中之後:該微處理器自該第一超級區塊中讀取該資料的部分內容;以及當讀取該資料的部分內容的過程中發生無法更正的錯誤時,該微處理器自該至少一第一超級區塊中讀取該組最終校驗碼,且該編解碼器使用所讀取之該組最終校驗碼來對所讀取的資料進行錯誤更正。 The flash memory controller of claim 14, wherein after the set of final check codes is written into the at least one first super block: the microprocessor is from the first super block Reading a portion of the content of the material; and when an uncorrectable error occurs during reading of a portion of the content, the microprocessor reads the final verification code from the at least one first super block And the codec uses the set of final check codes read to correct the read data. 一種記憶裝置,其包含有:一快閃記憶體模組,其中該快閃記憶體模組係為一立體快閃記憶體(3D NAND-type flash)模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片為一立體快閃記憶體晶片,且包含了多個區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及一快閃記憶體控制器,用來存取該快閃記憶體模組;其中該快閃記憶體控制器規劃該多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一第一超級區塊(super block)以及至少一第二超級區塊,以及指派該至少一第二超級區塊以用來儲存在一資料寫入至該至少一第一超級區塊的過程中所編碼產生之多組暫時性的校驗碼,其中 該第一超級區塊以及該第二超級區塊中每一者均包含了分別位於該多個快閃記憶體晶片中的多個區塊。 A memory device includes: a flash memory module, wherein the flash memory module is a 3D NAND-type flash module, and the flash memory module includes a plurality of flash memory chips, each of which is a stereo flash memory chip and includes a plurality of blocks, each of which contains a plurality of data pages; each of the blocks includes a plurality of floating gate transistors controlled by a plurality of word lines and bit lines respectively in a plurality of different planes, and the floating gate crystals on each of the word lines constitute at least one of the plurality of material pages And a flash memory controller for accessing the flash memory module; wherein the flash memory controller plans the plurality of flash memory chips such that the plurality of flash memory chips have At least one first super block and at least one second super block, and assigning the at least one second super block to store a process of writing data to the at least one first super block Multiple sets of temporary check codes generated by the encoding among them Each of the first super block and the second super block includes a plurality of blocks respectively located in the plurality of flash memory chips. 如申請專利範圍第17項所述之記憶裝置,其中該至少一第二超級區塊係專屬用來儲存任意資料寫入至該至少一第一超級區塊的編碼過程中所產生之暫時性的校驗碼。 The memory device of claim 17, wherein the at least one second super block is exclusively used to store temporary data generated by any data written into the encoding process of the at least one first super block. Check code. 如申請專利範圍第17項所述之記憶裝置,其中該至少一第一超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個多層式儲存區塊,且該至少一第二超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個單層式儲存區塊。 The memory device of claim 17, wherein the at least one first super block comprises a multi-layer storage block of each of the plurality of flash memory chips, and the The at least one second super block includes a single layer storage block of each of the plurality of flash memory chips. 如申請專利範圍第19項所述之記憶裝置,其中該多層式儲存區塊為三層式儲存(Triple-Level Cell,TLC)區塊或是四層式儲存(Quad-Level Cell,QLC)區塊。 The memory device of claim 19, wherein the multi-layer storage block is a Triple-Level Cell (TLC) block or a Quad-Level Cell (QLC) region. Piece. 如申請專利範圍第17項所述之記憶裝置,其中在該資料寫入至該至少一第一超級區塊的過程中:該快閃記憶體控制器自該第一超級區塊中讀取該資料之已經寫入至該至少一第一超級區塊的部分內容;以及當讀取該資料的部分內容的過程中發生無法更正的錯誤時,自該第二超級區塊讀取至少一部份之暫時性的校驗碼,且使用所讀取之暫時性的校驗碼來對所讀取的資料進行錯誤更正。 The memory device of claim 17, wherein the flash memory controller reads the data from the first super block during the writing of the data to the at least one first super block The data has been written to a portion of the at least one first superblock; and when an uncorrectable error occurs during reading of a portion of the content, at least a portion of the second superblock is read The temporary check code, and the read temporary data is used to correct the error of the read data. 如申請專利範圍第17項所述之記憶裝置,其中該快閃記憶體控制器 自該至少一第二超級區塊中讀取該多組暫時性的校驗碼,並對該多組暫時性的校驗碼進行編碼以產生一組最終校驗碼,且將該組最終校驗碼寫入至該至少一第一超級區塊中。 The memory device of claim 17, wherein the flash memory controller Reading the plurality of sets of temporary check codes from the at least one second super block, and encoding the plurality of sets of temporary check codes to generate a set of final check codes, and finalizing the group The code is written into the at least one first super block. 如申請專利範圍第22項所述之記憶裝置,其中在將該組最終校驗碼寫入至該第一超級區塊之後,在該至少一第一超級區塊中所儲存的該資料仍然為有效的情形下,該快閃記憶體控制器將該至少一第二超級區塊的內容抹除或是標記為無效。 The memory device of claim 22, wherein after the final verification code is written to the first super block, the data stored in the at least one first super block is still In an effective case, the flash memory controller erases or marks the content of the at least one second super block as invalid. 如申請專利範圍第22項所述之記憶裝置,其中在該組最終校驗碼寫入至該至少一第一超級區塊中之後:該快閃記憶體控制器自該第一超級區塊中讀取該資料的部分內容;以及當讀取該資料的部分內容的過程中發生無法更正的錯誤時,該快閃記憶體控制器自該至少一第一超級區塊中讀取該組最終校驗碼,並使用所讀取之該組最終校驗碼來對所讀取的資料進行錯誤更正。 The memory device of claim 22, wherein after the set of final check codes is written into the at least one first super block: the flash memory controller is from the first super block Reading a portion of the material; and when an uncorrectable error occurs during reading of a portion of the material, the flash memory controller reads the final group from the at least one first super block The code is verified and the corrected data is read to correct the data read.
TW106110446A 2016-04-27 2017-03-29 Method for accessing flash memory module and associated flash memory controller and memory device TWI629690B (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/495,997 US10110255B2 (en) 2016-04-27 2017-04-25 Method for accessing flash memory module and associated flash memory controller and memory device
CN202011217569.5A CN112214348B (en) 2016-04-27 2017-04-26 Method for accessing flash memory module, and related flash memory controller and memory device
CN201710280253.2A CN107423158B (en) 2016-04-27 2017-04-26 Method for accessing flash memory module and related flash memory controller and memory device
US16/132,461 US10348332B2 (en) 2016-04-27 2018-09-16 Method for accessing flash memory module and associated flash memory controller and memory device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662328025P 2016-04-27 2016-04-27
US201662328027P 2016-04-27 2016-04-27
US62/328,027 2016-04-27
US62/328,025 2016-04-27

Publications (2)

Publication Number Publication Date
TW201738885A TW201738885A (en) 2017-11-01
TWI629690B true TWI629690B (en) 2018-07-11

Family

ID=61022890

Family Applications (7)

Application Number Title Priority Date Filing Date
TW107136200A TWI672703B (en) 2016-04-27 2017-01-03 Method, flash memory controller, memory device for accessing flash memory
TW106145735A TWI650764B (en) 2016-04-27 2017-01-03 Method, flash memory controller, memory device for accessing flash memory
TW106100010A TWI614759B (en) 2016-04-27 2017-01-03 Method, flash memory controller, memory device for accessing flash memory
TW106110436A TWI665679B (en) 2016-04-27 2017-03-29 Method for accessing flash memory module and associated flash memory controller and memory device
TW108119159A TWI691966B (en) 2016-04-27 2017-03-29 Method for accessing flash memory module and associated flash memory controller and memory device
TW107117861A TWI674586B (en) 2016-04-27 2017-03-29 Method for accessing flash memory module and associated flash memory controller and memory device
TW106110446A TWI629690B (en) 2016-04-27 2017-03-29 Method for accessing flash memory module and associated flash memory controller and memory device

Family Applications Before (6)

Application Number Title Priority Date Filing Date
TW107136200A TWI672703B (en) 2016-04-27 2017-01-03 Method, flash memory controller, memory device for accessing flash memory
TW106145735A TWI650764B (en) 2016-04-27 2017-01-03 Method, flash memory controller, memory device for accessing flash memory
TW106100010A TWI614759B (en) 2016-04-27 2017-01-03 Method, flash memory controller, memory device for accessing flash memory
TW106110436A TWI665679B (en) 2016-04-27 2017-03-29 Method for accessing flash memory module and associated flash memory controller and memory device
TW108119159A TWI691966B (en) 2016-04-27 2017-03-29 Method for accessing flash memory module and associated flash memory controller and memory device
TW107117861A TWI674586B (en) 2016-04-27 2017-03-29 Method for accessing flash memory module and associated flash memory controller and memory device

Country Status (1)

Country Link
TW (7) TWI672703B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949123B2 (en) * 2018-10-18 2021-03-16 Western Digital Technologies, Inc. Using interleaved writes to separate die planes
CN109582227B (en) * 2018-11-15 2022-01-21 深圳忆联信息系统有限公司 Solid state disk writing method and device, computer equipment and storage medium
JP2022094705A (en) * 2020-12-15 2022-06-27 キオクシア株式会社 Memory system and control method
CN115878020A (en) * 2021-09-29 2023-03-31 慧荣科技股份有限公司 Method for accessing coding course information and computer readable storage medium and device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130297984A1 (en) * 2008-02-29 2013-11-07 Kabushiki Kaisha Toshiba Semiconductor storage device, method of controlling the same, and error correction system
US20140149828A1 (en) * 2012-11-27 2014-05-29 Lite-On It Corporation Solid state drive and joint encoding/decoding method thereof
US20140325124A1 (en) * 2013-04-30 2014-10-30 International Business Machines Corporation Memory system and method for operating a memory system
US20150169402A1 (en) * 2012-08-04 2015-06-18 Seagate Technology Llc Soft-decision compensation for flash channel variation
US9286985B2 (en) * 2013-02-12 2016-03-15 Kabushiki Kaisha Toshiba Semiconductor device with power mode transitioning operation
US20160104539A1 (en) * 2014-10-08 2016-04-14 Kyungryun Kim Storage device and reliability verification method

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6906961B2 (en) * 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
JP2008257773A (en) * 2007-04-02 2008-10-23 Toshiba Corp Nonvolatile semiconductor memory device, method for controlling the same, nonvolatile semiconductor memory system, and memory card
US8024637B2 (en) * 2007-04-02 2011-09-20 Broadcom Corporation Super block error correction code (ECC) adaptable to communication systems including hard disk drives (HDDs) and other memory storage devices
US8892981B2 (en) * 2010-09-30 2014-11-18 Apple Inc. Data recovery using outer codewords stored in volatile memory
KR102025263B1 (en) * 2012-10-05 2019-09-25 삼성전자주식회사 Memory system and read reclaim method thereof
US8958244B2 (en) * 2012-10-16 2015-02-17 Conversant Intellectual Property Management Inc. Split block decoder for a nonvolatile memory device
US8914670B2 (en) * 2012-11-07 2014-12-16 Apple Inc. Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks
US9734911B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
CN107632904B (en) * 2013-08-23 2020-12-22 慧荣科技股份有限公司 Method for accessing storage unit in flash memory and device using the same
CN108447516B (en) * 2013-08-23 2020-04-24 慧荣科技股份有限公司 Method for accessing memory cell in flash memory and device using the same
CN104424127A (en) * 2013-08-23 2015-03-18 慧荣科技股份有限公司 Method for accessing storage unit in flash memory and device using the same
TWI588843B (en) * 2013-08-23 2017-06-21 慧榮科技股份有限公司 Methods for accessing a storage unit of a flash memory and apparatuses using the same
US9424126B2 (en) * 2013-09-03 2016-08-23 Kabushiki Kaisha Toshiba Memory controller
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
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
US9984768B2 (en) * 2014-10-20 2018-05-29 Sandisk Technologies Llc Distributing storage of ECC code words
US9959059B2 (en) * 2014-10-20 2018-05-01 Sandisk Technologies Llc Storage error management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130297984A1 (en) * 2008-02-29 2013-11-07 Kabushiki Kaisha Toshiba Semiconductor storage device, method of controlling the same, and error correction system
US20150169402A1 (en) * 2012-08-04 2015-06-18 Seagate Technology Llc Soft-decision compensation for flash channel variation
US20140149828A1 (en) * 2012-11-27 2014-05-29 Lite-On It Corporation Solid state drive and joint encoding/decoding method thereof
US9286985B2 (en) * 2013-02-12 2016-03-15 Kabushiki Kaisha Toshiba Semiconductor device with power mode transitioning operation
US20140325124A1 (en) * 2013-04-30 2014-10-30 International Business Machines Corporation Memory system and method for operating a memory system
US20160104539A1 (en) * 2014-10-08 2016-04-14 Kyungryun Kim Storage device and reliability verification method

Also Published As

Publication number Publication date
TW201738895A (en) 2017-11-01
TW201738885A (en) 2017-11-01
TWI674586B (en) 2019-10-11
TW201738900A (en) 2017-11-01
TWI650764B (en) 2019-02-11
TW201903784A (en) 2019-01-16
TW201830393A (en) 2018-08-16
TWI691966B (en) 2020-04-21
TWI672703B (en) 2019-09-21
TWI614759B (en) 2018-02-11
TW201935486A (en) 2019-09-01
TW201812788A (en) 2018-04-01
TWI665679B (en) 2019-07-11

Similar Documents

Publication Publication Date Title
CN110147295B (en) Method for accessing flash memory module, flash memory controller and memory device
CN107403640B (en) Method for accessing flash memory module and related flash memory controller and memory device
CN107391296B (en) Method for accessing flash memory module and related flash memory controller and memory device
CN107423158B (en) Method for accessing flash memory module and related flash memory controller and memory device
TWI629690B (en) Method for accessing flash memory module and associated flash memory controller and memory device
CN112463433B (en) Method for accessing flash memory module, and related flash memory controller and memory device
CN111951855B (en) Method for accessing flash memory module and related flash memory controller and memory device
CN112214348B (en) Method for accessing flash memory module, and related flash memory controller and memory device
TWI575530B (en) Method for accessing flash memory module and associated flash memory controller and memory device
TWI691967B (en) Decoding method and associated flash memory controller and electronic device