[go: up one dir, main page]

TWI665679B - 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
TWI665679B
TWI665679B TW106110436A TW106110436A TWI665679B TW I665679 B TWI665679 B TW I665679B TW 106110436 A TW106110436 A TW 106110436A TW 106110436 A TW106110436 A TW 106110436A TW I665679 B TWI665679 B TW I665679B
Authority
TW
Taiwan
Prior art keywords
flash memory
data
super block
check codes
block
Prior art date
Application number
TW106110436A
Other languages
Chinese (zh)
Other versions
TW201738895A (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,993 priority Critical patent/US10289487B2/en
Priority to CN202010697066.6A priority patent/CN111951855B/en
Priority to CN201710279848.6A priority patent/CN107403640B/en
Publication of TW201738895A publication Critical patent/TW201738895A/en
Priority to US16/361,200 priority patent/US10846173B2/en
Application granted granted Critical
Publication of TWI665679B publication Critical patent/TWI665679B/en

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

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

Description

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

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

為了讓快閃記憶體能夠有更高的密度以及更大的容量,快閃記憶體的製程也朝向立體化的發展,而產生了幾種不同的立體NAND型快閃記憶體(3D NAND-type flash)。在立體NAND型快閃記憶體中,由於整體結構的不同以及浮閘形狀位置的改變,因此在資料的寫入以及讀取上也較傳統的平面NAND型快閃記憶體多出了些許的問題。舉例來說,在某些立體NAND型快閃記憶體中,會將多條字元線(word line)定義為一字元線組,而該字元線組會共同具有部分的控制電路,進而導致當資料寫入到該字元線組之一條字元線上的浮閘電晶體發生失敗時(寫入失敗),會連帶導致該字元線組的其他字元線上的浮閘電晶體的資料發生錯誤;此外,若是該字元線組中的一條字元線發生斷路或短路的狀況時,也會連帶影響到該字元線組的其他字元線上的浮閘電晶體的資料發生錯誤,因此,如何就上述問題提出一種錯誤更正方式,以盡可能地維持資料的正確性,且又不會浪費記憶體空間以節省成本,是一個重要的課題。In order to enable flash memory to have higher density and larger capacity, the process of flash memory is also moving towards three-dimensional development, and several different three-dimensional NAND-type flash memories (3D NAND-type flash). In the three-dimensional NAND flash memory, due to the difference in the overall structure and the change in the shape and position of the floating gate, it also has a little more problems in writing and reading data than the traditional flat NAND flash memory. . For example, in some three-dimensional NAND-type flash memories, multiple word lines are defined as a word line group, and the word line group will have a part of the control circuit in common. When the writing of data to a floating transistor on one of the character line groups fails (write failure), the data of the floating transistor on the other character lines of the character line group will be accompanied. An error occurred; in addition, if a character line in the character line group is broken or shorted, the data of the floating transistor on the other character lines of the character line group will also be incorrect. Therefore, how to propose an error correction method for the above problems 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)的錯誤更正方式,但是卻不會大幅浪費快閃記憶體空間,且在快閃記憶體控制器的處理過程中也僅需要很少量的緩衝記憶體空間,以解決先前技術中的問題。Therefore, one of the objectives of the present invention is to provide a method for accessing a flash memory module and a related flash memory controller and memory device, which use similar Redundant Array of Independent Disks, RAID) error correction method, but it will not significantly waste flash memory space, and only a small amount of buffer memory space is required 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 three-dimensional flash memory module, and the flash memory module Contains multiple flash memory chips, each flash memory chip contains multiple multi-layer storage blocks and multiple single-layer storage blocks, each block contains multiple data pages; each area The block contains multiple floating transistor transistors controlled by multiple word lines and bit lines respectively located on multiple different planes, and the floating transistor transistors on each character line constitute at least one of the multiple 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 ready to be written into 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 Write a check code 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 three-dimensional flash memory module. The flash memory module includes a plurality of flash memory chips. Each flash memory chip includes a plurality of multi-layer storage blocks and a plurality of single-layer storage areas. Block, each block contains multiple data pages; each block contains multiple word lines and bit lines respectively located on multiple different planes to control multiple floating gate transistors, and each character The floating transistor on the line constitutes at least one data page of the plurality of data pages; and the flash memory controller includes: a memory, a microprocessor, and a codec. The memory is used to store a program code; the microprocessor is used to execute the program code to control access to the flash memory module; and in the operation of this embodiment, the codec performs data processing on a piece of data. Encoding to generate at least one set of check codes, wherein the data is ready to be written into a first super block of the plurality of flash memory chips, wherein the first super block contains the plurality of flash memories A multi-level storage block of each flash memory chip in the body chip; and the microprocessor writes the data to the first super block, and writes the at least one set of check codes to a first Among the two super blocks, 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 is disclosed, which includes a flash memory module and a flash memory controller, wherein the flash memory module is a three-dimensional flash memory. Module, the flash memory module contains multiple flash memory chips, each flash memory chip contains multiple multi-layer storage blocks and multiple single-layer storage blocks, each block Contains multiple data pages; each block contains multiple word lines and bit lines that are located on multiple different planes to control multiple floating gate transistors, and each block has floating gate transistors Constitutes at least one data page of the plurality of data pages; and the flash memory controller receives a write command from a host to request data to be written into the flash memory module, Encode the data to generate at least one set of check codes, and write the data into 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 A multi-layer storage block of a memory chip; and writing the at least one set of check codes into 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 three-dimensional flash memory module, and the flash memory module The group contains multiple flash memory chips, each flash memory chip contains multiple blocks, each block contains multiple data pages, and each block contains a number of different planes. Word lines and bit lines to control a plurality of floating transistors, and each floating transistor on each word line constitutes at least one of the plurality of data pages; and the method includes: planning The plurality of flash memory chips so that the plurality of flash memory chips have at least a first super block and at least a second super block; and assign the at least one second super block to It is used to store a plurality of temporary check codes generated during the process of writing data into the at least one first superblock.

在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,該快閃記憶體控制器係用來存取一快閃記憶體模組,其中該快閃記憶體模組係為一立體快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該快閃記憶體控制器包含有一記憶體、一微處理器以及一編解碼器。該記憶體用來儲存一程式碼;該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取;以及在本實施例的操作中,該微處理器規劃該多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一第一超級區塊以及至少一第二超級區塊;以及指派該至少一第二超級區塊以用來儲存在一資料寫入至該至少一第一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。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 multiple flash memory chips, each flash memory chip contains multiple blocks, and each block contains multiple data pages ; Each block contains multiple word lines and bit lines that are located on multiple different planes to control multiple floating gate transistors, and the floating gate transistors on each word line constitute the multiple 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 program code; the microprocessor is used to execute the program code to control access to the flash memory module; and in the operation of this embodiment, the microprocessor plans the multiple A flash memory chip so that the plurality of flash memory chips have at least a first super block and at least a second super block; and assign the at least one second super block for storing a data write A plurality of sets of temporary check codes generated during encoding into the at least one first superblock.

在本發明的另一個實施例中,揭露了一種記憶裝置,其包含有一快閃記憶體模組以及一快閃記憶體控制器。該快閃記憶體模組係為一立體快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該快閃記憶體控制器規劃該多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一第一超級區塊以及至少一第二超級區塊,以及指派該至少一第二超級區塊以用來儲存在一資料寫入至該至少一第一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。In another embodiment of the present invention, a memory device is disclosed, which includes a flash memory module and a flash memory controller. The flash memory module is a three-dimensional flash memory module. The flash memory module includes a plurality of flash memory chips. Each flash memory chip includes a plurality of blocks. One block contains multiple data pages; each block contains multiple character lines and bit lines that are located on multiple different planes to control multiple floating gate transistors, and the floating on each character line The gate transistor constitutes at least one of the plurality of data pages; and the flash memory controller plans the plurality of flash memory chips so that the plurality of flash memory chips have at least one first super chip Block and at least one second superblock, and a plurality of sets of temporary codes generated during the process of writing a data into the at least one first superblock and assigning the at least one second superblock 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 in this embodiment is particularly a portable memory device (for example: 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 this 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 (Access).

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

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

另一方面,在本實施例中,控制邏輯114包含了一第一編解碼器(codec)132以及一第二編解碼器134,其中第一編解碼器132係用來對寫入到快閃記憶體模組120之一區塊中的資料進行編碼,以產生對應的錯誤更正碼(error correction code),其中第一編解碼器132所產生的錯誤更正碼僅是根據寫入到一資料頁中一區段(sector)的內容所產生的,且所產生的錯誤更正碼會連同該區段的資料內容一併寫入到該資料頁中。另外,第二編解碼器134為一容錯式磁碟陣列(RAID)編解碼器,其是用來對寫入至多個快閃記憶體晶片中的資料進行編碼,以產生對應的校驗碼,其操作將於以下內容中詳述。On the other hand, in this embodiment, the control logic 114 includes a first codec 132 and a second codec 134. The first codec 132 is used to write to the flash memory. The data in one block of the memory module 120 is encoded to generate a corresponding error correction code. The error correction code generated by the first codec 132 is only based on writing to a data page. The content of the secondary sector (sector) is generated, and the error correction code generated is written into the data page together with the data content of the sector. In addition, the second codec 134 is a fault-tolerant disk array (RAID) codec, which is used to encode data written into multiple flash memory chips to generate corresponding check codes. Its 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 three-dimensional NAND-type flash memory module. Please refer to FIG. 2, which is a three-dimensional NAND-type flash memory module. An example schematic, as shown in Figure 2. The three-dimensional NAND flash memory includes a plurality of floating gate transistors 202, which pass through multiple bit lines (only BL1 to BL3 are shown in the figure) and multiple characters. Lines (eg, WL0 ~ WL2, WL4 ~ WL6 as shown) constitute a three-dimensional NAND-type flash memory architecture. In Figure 2, using the top plane as an example, all floating transistors on the word line WL0 constitute at least one data page, and all floating transistors on the word line WL1 constitute at least one piece of information. Page, and all the floating transistors of the word line WL2 constitute at least one other information page ... and so on. In addition, depending on the flash memory writing method, the definition between the character line WL0 and the data page (logical data page) will be different. In detail, when using a single-level cell (Single-Level Cell (SLC), all floating gate transistors on the word line WL0 correspond to only a single logical data page; when using multi-level cell (MLC) writing, the word line All floating transistors on WL0 correspond to two, three, or four logical data pages. The situation where all floating transistors on word line WL0 correspond to three logical data pages can be called a three-layer type. A triple-level cell (TLC) architecture, and a situation where all floating transistor transistors on the word line WL0 correspond to four logical data pages can be referred to as a quad-level cell (QLC) architecture. Since a person having ordinary knowledge in the technical field should be able to understand the structure of the three-dimensional NAND-type flash memory and the relationship between the word lines and the data pages, the relevant details are not repeated here. In addition, in the operation of the flash memory controller 110, the "data page" is a minimum writing unit, and the "block" is a minimum erasing unit.

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

需注意的是,第2、3圖所示的僅為立體NAND型快閃記憶體與浮閘電晶體202的範例,而並非是作為本發明的限制,本技術領域中具有通常知識者應能了解立體NAND型快閃記憶體尚有其他種型式,例如部分的字元線可彼此連接..等等,且浮閘電晶體202的設計也能有些許的改變。It should be noted that the illustrations in Figs. 2 and 3 are only examples of the stereo NAND flash memory and the floating transistor 202, and are not intended as limitations of the present invention. Those skilled in the art should be able to It is understood that there are other types of three-dimensional NAND flash memory, for example, some word lines can be connected to each other, etc., and the design of the floating transistor 202 can also 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 three-dimensional NAND-type flash memories, a plurality of word lines are defined as a word line group, and the word line group will have a part of the control circuit in common, which will result in When data fails to write to the floating transistor on one of the character line groups (write failure), it will cause data on the floating transistor on the other character lines of the character line group to occur. error. In one embodiment, the character lines on the same plane are set as a character line group. Referring to FIG. 2, the character lines WL0 to WL2 are classified as the first character line group, and the character lines WL4 ~ WL6 will be classified as 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 transistor transistors on 192 word lines, and one word line The group contains 4 character lines. Therefore, the block system in Figure 4 contains 48 character line groups WL_G0 ~ WL_G47. In addition, the block is a three-level storage (TLC) area in the diagram. The block, that is, the floating transistor on each character line can be used to store the data of three data pages. As shown in Figure 4, taking the character line group WL_G0 as an example, it contains the floating on the character line WL0 The gate transistor can be used to store the low data page P0L, the middle data page P0M, and the high data page P0U. The floating gate transistor on the character line WL1 can be used to store the low data page P1L, the middle data page P1M, and the high data page P1U. Floating transistor on element line WL2 can be used to store low data page P2L, intermediate data page P2M and high data page P2U, and floating transistor on word line WL3 can be used to store low data page P3L, intermediate data page P3M And high profile page P3U. When the controller writes data to the data page of the character line group WL_G0, it sequentially writes data to the floating transistor in the character line WL0, WL1, WL2, and WL3, and it is assumed that the character line WL0 Both the data on WL1 and WL1 were successfully written, but when a writing error occurs when the data is written into the character line WL2, the original data that was successfully written on the character lines WL0 and WL1 will also cause an error.

另外,在某些情況下,即使資料已經成功寫入,但在後續的讀取中仍然以可能會發生無法讀取或是讀取錯誤的情形,例如字元線發生斷路(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 still be situations where reading or reading errors may occur, such as when the word line is open. As a result, data cannot be read. In addition, as mentioned earlier, as long as one character line breaks in a character line group, the data of the entire character line group will be incorrect. On the other hand, if two word lines in different word line groups are short-circuited, for example, the short-circuit of the word lines WL3 and WL4 in FIG. 4 will cause the two word line groups. The data on WL_G0 and WL_G1 cannot be read successfully.

如上所述,由於快閃記憶體在寫入資料以及後續的讀取中會碰到上述寫入失敗、字元線斷路以及字元線短路的情形而造成整個字元線組的資料均發生錯誤,因此,本發明在以下的實施例中提出了一種可以確實解決上述問題的存取快閃記憶體模組120的方法,且僅需要很少的資源(亦即很少的記憶體空間)便可以完成。具體內容如下所述。As mentioned above, because the flash memory encounters the above-mentioned write failure, broken character lines, and short-circuited character lines during data writing and subsequent reading, the data of the entire character line group is incorrect. Therefore, in the following embodiments of the present invention, a method for accessing the flash memory module 120 that can surely solve the above problem is proposed, and only requires very few resources (that is, very little 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 multiple channels (in this embodiment, two channels 510 and 520 are taken as an example), and each channel is in the flash memory controller 110. There are respective sequencers in each and each includes multiple flash memory chips, and in this embodiment, channel 510 includes flash memory chips 512 and 514, and channel 520 includes flash memory. Wafers 522, 524. In addition, one block in each of the flash memory chips 512, 514, 522, and 524 will be configured as a super block, and the flash memory controller 110 will divide the data into super blocks. Write in units. In this embodiment, the super block 530 includes a three-tier storage block of each of the flash memory chips 512, 514, 522, and 524, and the super block 540 includes each of the flash memory chips. A single layer storage block in 512, 514, 522, and 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 in each of the flash memory chips 512, 514, 522, and 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 FIGS. 5 and 6 at the same time. FIG. 6 is a schematic diagram of writing data to the super block 530 by the flash memory controller 110 according to a first embodiment of the present invention. In the following description, each A piece of data is written to a data page of the flash memory chips 512, 514, 522, 524, that is, the first piece of data is written to 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, ... in each flash memory chip 512, 514, 522, 524, and the Nth data will be written to The N-th data page P (N-1) in each flash memory chip 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. Correct the code, and write the first data and the error correction code generated by the first codec 132 into the first data page P0 in each flash memory chip 512, 514, 522, 524 In detail, the first codec 132 encodes the first part of the first piece of 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 part of the first data to generate an error correction code, and writes the second part 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 first part of the flash memory chip 522 A profile page P0; and the first The decoder 132 encodes the fourth part of the first data (the last part of the data) to generate an error correction code, and writes the fourth part 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 required by the first codec 132 may be performed in a sector unit, where each data page is composed of multiple 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 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 data page P0 in the chips 512, 514, 522, and 524 are encoded to generate the first group 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 on the first bit of the first data page P0 in the flash memory chip 512, 514, 522, and 524 together. Exclusive OR operation to obtain the first bit of the first set of check codes S0, and interact with each other on the second bit of the first data page P0 in the flash memory chip 512, 514, 522, 524 Exclusive OR operation to get the second bit of the first set 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 check code S0 generated by the second codec 134 is used to generate data when the first data page P0 of one of the flash memory chips 512, 514, 522, or 524 Error correction is performed when an error occurs. For example, suppose that when the data of the first data page P0 in the flash memory chip 512 fails to correct with its own data (that is, the first codec cannot be used). 132 error correction code generated for correction), the second codec 134 can read all the data on the first data page P0 in the flash memory chip 514, 522, 524, plus the first set of corrections The check code S0 is used for error correction to determine the data of the first data page P0 in the flash memory chip 512.

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

另外,在第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 data is written incorrectly, the second codec 134 can directly use the first set of check codes S0 stored in the buffer memory 116 to correct the read data, and because the flash memory module 120 It is not possible to directly modify the written data. The corrected data (the first data after correction) can wait for a suitable subsequent time to be written into another super block together with other data in super block 530. . After the flash memory controller 110 determines that the first data has been successfully written to the first data page P0 in the flash memory chip 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 piece of data into the super block 530, first, the first codec 132 encodes the second piece of data to generate corresponding error correction codes. The second data is written into the second data page P1 in each of the flash memory chips 512, 514, 522, and 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 The error correction code is encoded to generate a second set of check codes S1. In an embodiment, the second codec 134 may adopt a Reed-Solomon encoding method or a mutually exclusive OR operation to write the second one to each of the flash memory chips 512, 514, 522, and 524. The data on 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 set of check codes S1 generated by the second codec 134 is temporarily stored in the buffer memory 116 of the flash memory controller 110 first.

類似地,在第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 use the second set of check codes S1 stored in the buffer memory 116 to correct the read data, and the corrected data (corrected The second data) can wait for a suitable subsequent time to be written into another super block together 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 in the flash memory chip 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 writing error occurs during the writing of the second data, the data pages P1 and P0 belong to the same word line group WL_G0. Therefore, the flash memory chip 512, The data page P0 in 514, 522, 524 may also be damaged. For example, assuming that an error occurs in the data page P1 of the flash memory chip 514 during the data writing process, the data page P0 of the flash memory chip 514 that has been successfully written in the past may also fail. At this time, since the buffer memory 116 itself does not store the first group of check codes S0, the flash memory controller 110 reads the first group of check codes S0 from the super block 540 to check the self-super Correct the first data read in block 530.

基於同樣的操作,快閃記憶體控制器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 to the third data page P2 in the flash memory chips 512, 514, 522, and 524, and generates a corresponding third Group check code S2; and write the fourth piece of data into the fourth data page P3 in the flash memory chip 512, 514, 522, 524, and generate a corresponding fourth group check code S3, The data writing operation on the word line group WL_G0 is completed.

接著,類似以上步驟,快閃記憶體控制器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 to 184 records into the flash memory chips 512, 514, 522, and 524, and the second codec 134 performs the fifth The ~ 184 pieces of data are encoded to generate the 5th to 183th sets of check codes S4 to S183, and the 5th to 183th sets of 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 will only write the 185th data with the error correction code generated by the first codec 132 to the data in the flash memory chip 512, 514, 522 Page P184 without writing data to data page P184 in flash memory chip 524. Before the 185th data is written into the super block 530, the second codec 134 encodes the 185th data and its error correction code to generate the 185th set of check codes S184. Then, the flash memory controller 110 reads the first set of check codes S0, S8, S16, ..., S176 of each word line group WL_G0 ~ WL_G45 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 calculated with each other 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 chip 512, 514, and 522, and writes the first set of final verification codes SF0 to the flash memory. Data sheet P184 in wafer 524. In an embodiment, the second codec 134 performs a mutually exclusive OR operation on the first bits in the check codes S0, S8, S16, ..., S184 to generate the first bit of the final check code SF0. Mutually exclusive OR operation on the second bit of the check codes S0, S8, S16, ..., S184 to generate the second bit of the final check code SF0 ... and so on, until the final calibration is completed The last bit of the check code SF0. In addition, the check code S184 may 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 chip 512, 514, 522 Page P185 without writing data to data page P185 in flash memory chip 524. Before the 186th piece of data is written into the super block 530, the second codec 134 encodes the 186th piece of data and its error correction code to generate a 186th set of check codes S185. Next, the flash memory controller 110 reads the second set of check codes S1, S9, S17, ..., S177 of each word line group WL_G0 ~ WL_G45 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 calculated with each other 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 chip 512, 514, and 522, and writes the second set of final check codes SF1 to the flash memory. Data sheet P185 in wafer 524. In an embodiment, the second codec 134 performs a mutually exclusive OR operation on the first bits in the check codes S1, S9, S17, ..., S185 to generate the first bit of the final check code SF1. Mutually exclusive OR operation is performed on the second bit of the check codes S1, S9, S17, ..., S185 to generate the second bit of the final check code SF1 ... and so on, until the final calibration is completed The last bit of the check code SF1. In addition, 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 similar operations, 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 the third to eight sets of final check codes SF2 to SF7 according to the similar operation described above, and performs the third to eight sets of final check codes The codes SF2 ~ SF7 are written into the data pages P186 ~ P191 in the flash memory chip 524, respectively.

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

在本實施例中,超級區塊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 multiple sets of check codes S0 to S191 stored in the super block 540 are only written to the data. Only used when an error occurs during the process of superblock 530. Therefore, after the final check codes SF0 to SF7 are written to the super block 530, the multiple sets of check codes S0 to S191 stored in the super block 540 do not need to be used again. Therefore, in the subsequent super block 530 In the case where the data stored in the data is still valid, the flash memory controller 110 may erase or mark the content 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, because the final check codes SF0 to SF7 are generated by the check codes S0 to S191, the final check codes SF0 to SF7 essentially carry each previous set of check codes S0 to S191 information. That is, in the subsequent reading operation, each set of check codes S0 ~ S191 can be obtained again according to the corresponding data page content (for example, reading the flash memory chip 512, 514, 522, 524). Get the check code S1) on the data page P1 of the data sheet. If an error occurs, you can also use the corresponding final check code SF0 ~ SF7 to correct it. For example, if a character line in the character line group WL_G0 is disconnected, for example, the character line corresponding to the data page P0 of the flash memory chip 514 is disconnected, the flash memory controller 110 can read The data in the other character line groups are used to regenerate the check codes S8, S16, ..., S184 and the final check code SF0 to regenerate the check code S0, and then use the check code S0 and self-flash memory. The content read from the data page P0 of the body chip 512, 522, 524 to regenerate the data of the data page P0 of the flash memory chip 514; the flash memory controller 110 reads the data in the other character line groups to Regenerate the check codes S9, S17, ..., S185 and the final check code SF1 to regenerate the check code S1, and then use the check code S1 and the data from the flash memory chip 512, 522, 524 The content read by the page P1 is used to regenerate the data of the data page P1 of the flash memory chip 514; and the data of the data pages P2 and P3 of the flash memory chip 514 are regenerated according to the similar operation described above. As described above, through the above operations, as long as multiple data lines are not disconnected in the super block 530, the data can be corrected and restored smoothly without the situation that the data cannot be repaired.

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

需注意的是,第6圖所繪示的P0~P191的每一者所代表的並非限定是三個資料頁,而可能是2個或是4個資料頁。It should be noted that each of P0 ~ P191 shown in Figure 6 does not limit 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中。In addition, in the embodiment shown in FIGS. 6 to 7, the final check codes SF0 to SF7 are generated by reading the check codes previously stored in the super block 540. However, the present invention does not This is limited. In another embodiment, during the generation process, the check code stored in the super block 540 may also be used for encoding together with the check code of the previous character line group. For example, the second codec 134 can encode the 9th data (the 9th data page P8 written in each flash memory chip 512, 514, 522, 524) and the first set of check code S0 to generate the 9th set The check code S8 is generated by encoding the 17th data (the 17th data page P16 written in each flash memory chip 512, 514, 522, 524) and the 9th set of check code S8. The 17th group of check codes S16, ..., for the 185th data (written to the 185th data page P184 in each flash memory chip 512, 514, 522, 524) and the 177th group of check codes S176 Encoding is performed together to generate the 185th group of check codes S184. In this way, since the check code S184 of the 185th group already carries the information of the previous check codes S0, S8, S16, ..., S176, the check code S184 of the 185th group can be directly used as the first final calibration. The check code SF0 is stored in the data page P184 of the super block 530 corresponding to the flash memory chip 524. Similarly, the final check codes SF1 to SF7 can also be generated through the above methods, and stored in the data pages 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 three-tier storage block in each of the flash memory chips 512, 514, 522, and 524. However, in other embodiments, for example, the flash In the case where the memory module 120 is configured as two block planes, the super block 530 may include two three-tier storage areas in each of the flash memory chips 512, 514, 522, and 524. Blocks, and the two three-layer storage blocks in each flash memory chip 512, 514, 522, 524 are controlled by different chip enable signals. Similarly, the super block 540 may also include two single-layer storage blocks in each of the flash memory chips 512, 514, 522, and 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 present invention. With reference to the content disclosed above, the process is as follows:

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

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

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

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

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

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

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

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

簡要歸納本發明,在本發明的存取快閃記憶體模組的方法的實施例中,第二編解碼器會循序對寫入至多層式儲存的超級區塊的多筆資料來進行編碼,並將所產生之暫時性的校驗碼儲存至單層式儲存的超級區塊,之後再讀取單層式儲存的超級區塊中所儲存的暫時性的校驗碼來產生資料量很低的最終校驗碼,並將最終校驗碼儲存至多層式儲存的超級區塊中。透過上述存取方式,除了可以對資料寫入錯誤、字元線斷路以及字元線短路所造成的資料讀取錯誤進行更正之外,也可以大幅降低快閃記憶體控制器中緩衝記憶體的容量需求,且快閃記憶體模組中也不需要浪費太多個空間來儲存校驗碼,故可以大幅降低快閃記憶體控制器的成本以及快閃記憶體模組的使用效率。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。The present invention is briefly summarized. In the embodiment of the method for accessing a flash memory module of the present invention, the second codec sequentially encodes multiple pieces of data written into the multi-level storage superblock. The temporary check code generated is stored in the single-level storage super block, and then the temporary check code stored in the single-level storage super block is read to generate a low amount of data. The final check code, and store the final check code in the multi-level storage super block. Through the above access methods, in addition to correcting data writing errors, broken character lines, and short-circuited data lines due to character line shorts, it can also greatly reduce the amount of buffer memory in the flash memory controller. The capacity requirement, 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 description is only a preferred embodiment of the present invention, and all equivalent changes and modifications made in accordance with the scope of patent application of the present invention shall fall within the scope of the present invention.

100‧‧‧記憶裝置100‧‧‧memory device

110‧‧‧快閃記憶體控制器110‧‧‧Flash Memory Controller

112‧‧‧微處理器112‧‧‧Microprocessor

112C‧‧‧程式碼112C‧‧‧Code

112M‧‧‧唯讀記憶體112M‧‧‧Read Only Memory

114‧‧‧控制邏輯114‧‧‧Control logic

116‧‧‧緩衝記憶體116‧‧‧Buffer memory

118‧‧‧介面邏輯118‧‧‧ Interface Logic

120‧‧‧快閃記憶體模組120‧‧‧Flash Memory Module

132‧‧‧第一編解碼器132‧‧‧The first codec

134‧‧‧第二編解碼器134‧‧‧Second codec

202‧‧‧浮閘電晶體202‧‧‧Floating Gate Transistor

510、520‧‧‧通道510, 520‧‧‧ channels

512、514、516、518‧‧‧快閃記憶體晶片512, 514, 516, 518‧‧‧Flash memory chips

530、540‧‧‧超級區塊530, 540‧‧‧ Super Block

800~814‧‧‧步驟800 ~ 814‧‧‧step

B1~B3‧‧‧位元線B1 ~ B3‧‧‧Bit line

WL0~WL47‧‧‧字元線WL0 ~ WL47‧‧‧Character line

WL_G0~WL_G47‧‧‧字元線組WL_G0 ~ WL_G47‧‧‧Character line group

第1圖為依據本發明一實施例之一種記憶裝置的示意圖。 第2圖為一立體NAND型快閃記憶體的範例示意圖。 第3圖為浮閘電晶體結構的概念示意圖。 第4圖為一區塊中多個字元線組的示意圖。 第5圖為快閃記憶體控制器將資料寫入到快閃記憶體模組、以及超級區塊的示意圖。 第6圖為依據本發明一第一實施例之快閃記憶體控制器將資料寫入到超級區塊的示意圖。 第7圖為根據第1~192組校驗碼S0~S191來產生8組最終校驗碼SF0~SF7的示意圖。 第8圖為根據本發明一實施例之存取一快閃記憶體模組的方法的流程圖。FIG. 1 is a schematic diagram of a memory device according to an embodiment of the present invention. FIG. 2 is an exemplary diagram of a three-dimensional NAND flash memory. Figure 3 is a conceptual diagram of the floating gate transistor structure. FIG. 4 is a schematic diagram of multiple word line groups in a block. FIG. 5 is a schematic diagram of a flash memory controller writing data to a flash memory module and a super block. FIG. 6 is a schematic diagram of writing data to a super block by a flash memory controller according to a first embodiment of the present invention. FIG. 7 is a schematic diagram of generating 8 sets of final check codes SF0 to SF7 according to the 1 to 192 sets of check codes S0 to S191. FIG. 8 is a flowchart of a method for accessing a flash memory module according to 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 Flash memory chip, each flash memory chip is a three-dimensional flash memory chip and contains multiple blocks, the multiple blocks include multiple multi-layer storage blocks and multiple single-layer storage Block, each block contains multiple data pages; each block contains multiple word lines and bit lines that are located on multiple different planes to control multiple floating gate transistors, and each word The floating gate transistor on the element line constitutes at least one data page of the plurality of data pages; and the method includes: encoding a data to generate at least one set of check codes, wherein the data is to be written into the data In a first super block of the plurality of flash memory chips, the first super block includes a multi-layer storage of each of the plurality of flash memory chips. Block; write this data to the first super area ; And writing the at least one set of check codes into a second super block, wherein the second super block includes a single layer of each of the plurality of flash memory chips Block; 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. 如申請專利範圍第1項所述之方法,另包含有:在該資料寫入至該第一超級區塊之前,先對該資料進行編碼以產生該至少一組校驗碼,並將該至少一組校驗碼儲存至一快閃記憶體控制器的一緩衝記憶體中;以及當該資料發生寫入錯誤的情形時,直接使用儲存在該緩衝記憶體中的該至少一組校驗碼來對資料進行更正。The method according to item 1 of the scope of patent application, further comprising: before the data is written into the first superblock, the data is encoded to generate the at least one set of check codes, and the at least one A set of check codes is stored in a buffer memory of a flash memory controller; and when a data write error occurs, the at least one set of check codes stored in the buffer memory is directly used To correct the information. 如申請專利範圍第1項所述之方法,另包含有:在該資料寫入至該至少一第一超級區塊的過程中:自該第一超級區塊讀取該資料之已經寫入至該至少一第一超級區塊的部分內容;當讀取該資料的部分內容的過程中發生無法更正的錯誤時,自該第二超級區塊讀取至少一部份的校驗碼,並使用該至少一部份的校驗碼來對所讀取的資料進行錯誤更正。The method according to item 1 of the scope of patent application, 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 to Part of the content of the at least one first super block; when an uncorrectable error occurs during the reading of part of the content, read at least a part of the check code from the second super block and use The at least part of the check code is used to correct errors in the read data. 如申請專利範圍第1項所述之方法,其中該至少一組校驗碼為一暫時性的校驗碼,且該方法另包含有:自該第二超級區塊讀取該至少一組校驗碼,並根據該至少一組校驗碼來產生一組最終校驗碼;將該組最終校驗碼寫入至該第一超級區塊中。The method according to item 1 of the scope of patent application, wherein the at least one set of check codes is a temporary check code, and the method further comprises: reading the at least one set of calibration codes from the second super block. Check code, and generate a set of final check codes according to the at least one set of check codes; write the set of final check codes into the first superblock. 如申請專利範圍第1項所述之方法,其中對該資料進行編碼以產生該至少一組校驗碼的步驟包含有:依序對第1~N筆資料進行編碼以產生第1~N組校驗碼;以及將該將該資料寫入至該第一超級區塊的步驟包含有:將該第1~N筆資料分別寫入至該第一超級區塊之對應於該多個快閃記憶體晶片的第1~N個資料頁中;以及將該組校驗碼寫入至該第二超級區塊的步驟包含有:將該第1~N組校驗碼寫入至該第二超級區塊。The method according to item 1 of the scope of patent application, wherein the step of encoding the data to generate the at least one set of check codes includes: sequentially encoding the first to N records to generate the first to N groups A check code; and the step of writing the data to the first super block includes: writing the first to N pieces of data to the first super block respectively corresponding to the plurality of flashes The first to N data pages of the memory chip; and the steps of writing the set of verification codes to the second superblock include: writing the first to N sets of verification codes to the second Superblock. 如申請專利範圍第1項所述之方法,其中該至少一組校驗碼為一暫時性的校驗碼,且該方法另包含有:自該第二超級區塊讀取該第1~N組校驗碼,並根據該第1~N組校驗碼來產生多組最終校驗碼;將該多組最終校驗碼寫入至該第一超級區塊中。The method according to item 1 of the scope of patent application, wherein the at least one set of check codes is a temporary check code, and the method further includes: reading the first to N from the second super block Set of check codes, and generate multiple sets of final check codes according to the first to N sets of check codes; write the multiple sets of final check codes into the first superblock. 如申請專利範圍第6項所述之方法,其中每一個區塊中位於同一個平面上的多條字元線構成一個字元線組,以及將該多組最終校驗碼寫入至該第一超級區塊的步驟包含有:將該多組最終校驗碼寫入至該第一超級區塊之對應於該多個快閃記憶體晶片的最後兩個字元線組所包含的資料頁中。The method as described in item 6 of the scope of patent application, wherein a plurality of word lines located on the same plane in each block constitute a word line group, and the plurality of sets of final check codes are written to the first The step of a super block includes: writing the plurality of sets of final check codes to the data pages included in the first two super block corresponding to the last two word line groups of the plurality of flash memory chips. in. 如申請專利範圍第7項所述之方法,其中該第P~N筆資料也是被寫入至該第一超級區塊之對應於該多個快閃記憶體晶片的最後兩個字元線組所包含的資料頁中,N為大於1的正整數,且P為大於1且小於N的正整數。The method according to item 7 of the scope of the patent application, wherein the P ~ N pieces of data are also written into the first super block corresponding to the last two word line groups of the plurality of flash memory chips In the included information page, N is a positive integer greater than 1, and P is a positive integer greater than 1 and less than N. 如申請專利範圍第1項所述之方法,另包含有:在將該組最終校驗碼寫入至該第一超級區塊之後,在該第一超級區塊中所儲存的該資料仍然為有效的情形下,將該第二超級區塊的內容抹除或是標記為無效。The method described in item 1 of the patent application scope further includes: after writing the final check code to the first super block, the data stored in the first super block is still If it is valid, the content of the second superblock is erased or marked as invalid. 如申請專利範圍第1項所述之方法,其中該多層式儲存區塊為三層式儲存(Triple-Level Cell,TLC)區塊或是四層式儲存(Quad-Level Cell,QLC)區塊。The method according to item 1 of the scope of patent application, wherein the multilayer storage block is a triple-level cell (TLC) block or a quad-level cell (QLC) block . 一種快閃記憶體控制器,該快閃記憶體控制器係用來存取一快閃記憶體模組,其中該快閃記憶體模組係為一立體快閃記憶體(3D NAND-type flash)模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片為一立體快閃記憶體晶片且包含了多個區塊,該多個區塊包含了多個多層式儲存區塊以及多個單層式儲存區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該快閃記憶體控制器包含有:一記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;以及一編解碼器;該編解碼器對一資料進行編碼以產生至少一組校驗碼,其中該資料係準備寫入到該多個快閃記憶體晶片的一第一超級區塊(super block)中,其中該第一超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個多層式儲存區塊;以及該微處理器將該資料寫入至該第一超級區塊,以及將該至少一組校驗碼寫入至一第二超級區塊中,其中該第二超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個單層式儲存區塊;其中該第一超級區塊以及該第二超級區塊中每一者均包含了分別位於該多個快閃記憶體晶片中的多個區塊。A flash memory controller is used to access a flash memory module, wherein the flash memory module is a 3D NAND-type flash memory. ) Module, the flash memory module includes a plurality of flash memory chips, each flash memory chip is a three-dimensional flash memory chip and includes a plurality of blocks, and the plurality of blocks include Multiple multi-level storage blocks and multiple single-level storage blocks, each block contains multiple data pages; each block contains multiple character lines and bits located on multiple different planes, respectively Multiple floating transistor transistors controlled by lines, and the floating transistor transistors on each character line constitute at least one of the plurality of data pages; and the flash memory controller includes: a memory To store a code; a microprocessor to execute the code to control access to the flash memory module; and a codec; the codec encodes data to generate At least one set of check codes, where the data is to be written to In a first super block of the plurality of flash memory chips, the first super block includes a multi-layer storage of each of the plurality of flash memory chips. Block; and the microprocessor writes the data to the first super block, and writes the at least one set of check codes to a second super block, where the second super block includes A single-layer storage block of each flash memory chip in the plurality of flash memory chips; wherein each of the first super block and the second super block includes the plurality of flash memory chips, respectively. Multiple blocks in a flash memory chip. 如申請專利範圍第11項所述之快閃記憶體控制器,其中在該資料寫入至該第一超級區塊之前,該編解碼器先對該資料進行編碼以產生該至少一組校驗碼,並將該組校驗碼儲存至一快閃記憶體控制器的一緩衝記憶體中;以及當該資料發生寫入錯誤的情形時,該編解碼器直接使用儲存在該緩衝記憶體中的該至少一組校驗碼來對資料進行更正。The flash memory controller according to item 11 of the scope of patent application, wherein before the data is written into the first superblock, the codec first encodes the data to generate the at least one set of checks Code, and stores the set of check codes in a buffer memory of a flash memory controller; and when a write error occurs in the data, the codec directly uses the stored code in the buffer memory The at least one set of check codes to correct the data. 如申請專利範圍第11項所述之快閃記憶體控制器,其中在該資料寫入至該至少一第一超級區塊的過程中:該微處理器自該第一超級區塊讀取該資料之已經寫入至該至少一第一超級區塊的部分內容;以及當讀取該資料的部分內容的過程中發生無法更正的錯誤時,該微處理器自該第二超級區塊讀取至少一部份的校驗碼,且該編解碼器使用該至少一部份的校驗碼來對所讀取的資料進行錯誤更正。The flash memory controller according to item 11 of the scope of patent application, wherein in the process of writing the data to the at least one first super block: the microprocessor reads the data from the first super block Part of the data has been written into the at least one first superblock; and when an uncorrectable error occurs during the reading of the part of the data, the microprocessor reads from the second superblock At least a part of the check code, and the codec uses the at least part of the check code to correct errors in the read data. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該至少一組校驗碼為一暫時性的校驗碼,且該微處理器自該第二超級區塊讀取該至少一組校驗碼,且該編解碼器根據該至少一組校驗碼來產生一組最終校驗碼,並將該組最終校驗碼寫入至該第一超級區塊中。The flash memory controller according to item 11 of the scope of patent application, wherein the at least one set of check codes is a temporary check code, and the microprocessor reads the at least one from the second super block. A set of check codes, and the codec generates a set of final check codes according to the at least one set of check codes, and writes the set of final check codes into the first superblock. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該編解碼器依序對第1~N筆資料進行編碼以產生第1~N組校驗碼,並將該第1~N筆資料分別寫入至該第一超級區塊之對應於該多個快閃記憶體晶片的第1~N個資料頁中;以及該微處理器將該第1~N組校驗碼寫入至該第二超級區塊。The flash memory controller according to item 11 of the scope of patent application, wherein the codec sequentially encodes the first to N records to generate the first to N sets of check codes, and the first to N N pieces of data are respectively written into the first to N data pages of the first super block corresponding to the plurality of flash memory chips; and the microprocessor writes the first to N sets of check codes Into the second superblock. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該至少一組校驗碼為一暫時性的校驗碼,且該微處理器自該第二超級區塊讀取該第1~N組校驗碼,並根據該第1~N組校驗碼來產生多組最終校驗碼,之後再將該多組最終校驗碼寫入至該第一超級區塊中。The flash memory controller according to item 11 of the scope of patent application, wherein the at least one set of check codes is a temporary check code, and the microprocessor reads the first check code from the second super block. 1 ~ N sets of check codes, and generate multiple sets of final check codes according to the 1 ~ N sets of check codes, and then write the multiple sets of final check codes into the first super block. 如申請專利範圍第16項所述之快閃記憶體控制器,其中每一個區塊中位於同一個平面上的多條字元線構成一個字元線組,且該微處理器將該多組最終校驗碼寫入至該第一超級區塊之對應於該多個快閃記憶體晶片的最後兩個字元線組所包含的資料頁中。The flash memory controller according to item 16 of the scope of patent application, wherein a plurality of word lines located on the same plane in each block constitute a word line group, and the microprocessor sets the plurality of groups The final check code is written into the data page included in the first super block corresponding to the last two word line groups of the plurality of flash memory chips. 如申請專利範圍第17項所述之快閃記憶體控制器,其中該第P~N筆資料也是被寫入至該第一超級區塊之對應於該多個快閃記憶體晶片的最後兩個字元線組所包含的資料頁中,N為大於1的正整數,且P為大於1且小於N的正整數。The flash memory controller according to item 17 of the scope of the patent application, wherein the P ~ N records are also written into the first two super blocks corresponding to the last two of the plurality of flash memory chips. In the data pages included in the character line group, N is a positive integer greater than 1, and P is a positive integer greater than 1 and less than N. 如申請專利範圍第11項所述之快閃記憶體控制器,其中在將該組最終校驗碼寫入至該第一超級區塊之後,在該第一超級區塊中所儲存的該資料仍然為有效的情形下,該微處理器將該第二超級區塊的內容抹除或是標記為無效。The flash memory controller according to item 11 of the scope of patent application, wherein after writing the set of final check codes to the first super block, the data stored in the first super block If it is still valid, the microprocessor erases or marks the content of the second superblock as invalid. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該多層式儲存區塊為三層式儲存(Triple-Level Cell,TLC)區塊或是四層式儲存(Quad-Level Cell,QLC)區塊。The flash memory controller according to item 11 of the scope of patent application, wherein the multi-layer storage block is a triple-level cell (TLC) block or a quad-level cell , QLC) block. 一種記憶裝置,其包含有:一快閃記憶體模組,其中該快閃記憶體模組係為一立體快閃記憶體(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 Multiple flash memory chips, each flash memory chip is a three-dimensional flash memory chip and contains multiple blocks, the multiple blocks include multiple multi-layer storage blocks and multiple Layered storage block, each block contains multiple data pages; each block contains multiple word lines and bit lines respectively located on multiple different planes to control multiple floating gate transistors, and The floating transistor on each character line constitutes at least one data page of the plurality of data pages; and a flash memory controller for accessing the flash memory module; When a host writes a request to write data into the flash memory module, the flash memory controller encodes the data to generate at least one set of check codes, and writes the data. Into a first super area of the plurality of flash memory chips (super block), wherein the first super block includes a multi-layer storage block of each of the plurality of flash memory chips; and writing the at least one set of check codes To a second super block, wherein the second super block includes a single-layer storage block of each of the plurality of flash memory chips; wherein the first super block And each of the second super blocks includes a plurality of blocks respectively located in the plurality of flash memory chips. 如申請專利範圍第21項所述之記憶裝置,其中在該資料寫入至該第一超級區塊之前,該快閃記憶體控制器先對該資料進行編碼以產生該至少一組校驗碼,並將該組校驗碼儲存至該快閃記憶體控制器的一緩衝記憶體中;以及當該資料發生寫入錯誤的情形時,該快閃記憶體控制器直接使用儲存在該緩衝記憶體中的該至少一組校驗碼來對資料進行更正。The memory device according to item 21 of the scope of patent application, wherein before the data is written into the first superblock, the flash memory controller encodes the data to generate the at least one check code. And store the set of check codes into a buffer memory of the flash memory controller; and when a data write error occurs, the flash memory controller directly uses the stored in the buffer memory The at least one set of check codes in the body to correct the data. 如申請專利範圍第21項所述之記憶裝置,其中在該資料寫入至該至少一第一超級區塊的過程中:該快閃記憶體控制器自該第一超級區塊讀取該資料之已經寫入至該至少一第一超級區塊的部分內容;以及當讀取該資料的部分內容的過程中發生無法更正的錯誤時,該快閃記憶體控制器自該第二超級區塊讀取至少一部份的校驗碼,並使用該至少一部份的校驗碼來對所讀取的資料進行錯誤更正。The memory device according to item 21 of the scope of patent application, wherein in the process of writing the data to the at least one first super block: the flash memory controller reads the data from the first super block Part of the content that has been written into the at least one first superblock; and when an uncorrectable error occurs during the reading of the partial content of the data, the flash memory controller starts from the second superblock Read at least a part of the check code, and use the at least part of the check code to correct errors in the read data. 如申請專利範圍第21項所述之記憶裝置,其中該至少一組校驗碼為一暫時性的校驗碼,且該快閃記憶體控制器自該第二超級區塊讀取該至少一組校驗碼,並根據該至少一組校驗碼來產生一組最終校驗碼,且將該組最終校驗碼寫入至該第一超級區塊中。The memory device according to item 21 of the patent application scope, wherein the at least one set of check codes is a temporary check code, and the flash memory controller reads the at least one from the second super block. A set of check codes, and generate a set of final check codes according to the at least one set of check codes, and write the set of final check codes into the first superblock.
TW106110436A 2016-04-27 2017-03-29 Method for accessing flash memory module and associated flash memory controller and memory device TWI665679B (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/495,993 US10289487B2 (en) 2016-04-27 2017-04-25 Method for accessing flash memory module and associated flash memory controller and memory device
CN202010697066.6A CN111951855B (en) 2016-04-27 2017-04-26 Method for accessing flash memory module and related flash memory controller and memory device
CN201710279848.6A CN107403640B (en) 2016-04-27 2017-04-26 Method for accessing flash memory module and related flash memory controller and memory device
US16/361,200 US10846173B2 (en) 2016-04-27 2019-03-21 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
US201662328027P 2016-04-27 2016-04-27
US201662328025P 2016-04-27 2016-04-27
US62/328,027 2016-04-27
US62/328,025 2016-04-27

Publications (2)

Publication Number Publication Date
TW201738895A TW201738895A (en) 2017-11-01
TWI665679B true TWI665679B (en) 2019-07-11

Family

ID=61022890

Family Applications (7)

Application Number Title Priority Date Filing Date
TW106100010A TWI614759B (en) 2016-04-27 2017-01-03 Method, flash memory controller, memory device for accessing flash memory
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
TW106110446A TWI629690B (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
TW108119159A TWI691966B (en) 2016-04-27 2017-03-29 Method for accessing flash memory module and associated flash memory controller and memory device
TW106110436A TWI665679B (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
TW106100010A TWI614759B (en) 2016-04-27 2017-01-03 Method, flash memory controller, memory device for accessing flash memory
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
TW106110446A TWI629690B (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
TW108119159A TWI691966B (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) TWI614759B (en)

Families Citing this family (8)

* 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
US11966607B2 (en) 2021-09-29 2024-04-23 Silicon Motion, Inc. Method and non-transitory computer-readable storage medium and apparatus for accessing to encoding-history information
TWI821965B (en) * 2021-09-29 2023-11-11 慧榮科技股份有限公司 Method and computer program product and apparatus for accessing to encoding-history information
CN116343891B (en) * 2021-12-23 2025-06-20 长鑫存储技术有限公司 Storage blocks and memory
TWI831701B (en) 2023-05-31 2024-02-01 慧榮科技股份有限公司 Method for accessing flash memory module and associated flash memory controller and memory device
TWI831704B (en) 2023-06-12 2024-02-01 慧榮科技股份有限公司 Method for performing storage space management of memory device with aid of dynamic block configuration, memory controller, memory device and electronic 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
US20140129874A1 (en) * 2012-11-07 2014-05-08 Apple Inc. Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks
US20140149828A1 (en) * 2012-11-27 2014-05-29 Lite-On It Corporation Solid state drive and joint encoding/decoding method thereof
US20150117103A1 (en) * 2012-10-16 2015-04-30 Conversant Intellectual Property Management Inc. Split block decoder for a nonvolatile memory device
US20150169402A1 (en) * 2012-08-04 2015-06-18 Seagate Technology Llc Soft-decision compensation for flash channel variation
US20150255159A1 (en) * 2007-04-02 2015-09-10 Kabushiki Kaisha Toshiba Method for controlling a non-volatile semiconductor memory, and semiconductor storage system

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
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
US9734911B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9286985B2 (en) * 2013-02-12 2016-03-15 Kabushiki Kaisha Toshiba Semiconductor device with power mode transitioning operation
US9672910B2 (en) * 2013-04-30 2017-06-06 International Business Machines Corporation Memory architecture for storing data in a plurality of memory chips
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
TWI553649B (en) * 2013-08-23 2016-10-11 慧榮科技股份有限公司 Methods for accessing a storage unit of a flash memory and apparatuses using the same
CN107193684B (en) * 2013-08-23 2020-10-16 慧荣科技股份有限公司 Method for accessing storage unit in flash memory and device 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
KR102233074B1 (en) * 2014-10-08 2021-03-30 삼성전자주식회사 Storage device and reliability verification method thereof
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
US20150255159A1 (en) * 2007-04-02 2015-09-10 Kabushiki Kaisha Toshiba Method for controlling a non-volatile semiconductor memory, and semiconductor storage system
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
US20150117103A1 (en) * 2012-10-16 2015-04-30 Conversant Intellectual Property Management Inc. Split block decoder for a nonvolatile memory device
US20140129874A1 (en) * 2012-11-07 2014-05-08 Apple Inc. Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks
US20140149828A1 (en) * 2012-11-27 2014-05-29 Lite-On It Corporation Solid state drive and joint encoding/decoding method thereof

Also Published As

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

Similar Documents

Publication Publication Date Title
CN107403640B (en) Method for accessing flash memory module and related flash memory controller and memory device
TWI575531B (en) Method for accessing flash memory module and associated flash memory controller and memory device
CN107391296B (en) Method for accessing flash memory module and related flash memory controller and memory device
TWI665679B (en) Method for accessing flash memory module and associated flash memory controller and memory device
CN107423158B (en) Method for accessing flash memory module and related 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