US20150332758A1 - Memory system and method of controlling memory system - Google Patents
Memory system and method of controlling memory system Download PDFInfo
- Publication number
- US20150332758A1 US20150332758A1 US14/472,701 US201414472701A US2015332758A1 US 20150332758 A1 US20150332758 A1 US 20150332758A1 US 201414472701 A US201414472701 A US 201414472701A US 2015332758 A1 US2015332758 A1 US 2015332758A1
- Authority
- US
- United States
- Prior art keywords
- word lines
- frame
- page
- data
- written
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
Definitions
- This embodiment generally relates to a memory system provided with a non-volatile memory and a method of controlling the memory system.
- padding data is written to a subsequent page of a page to which data is written in order to fix the data of which writing is finished or to secure reliability of the data of which writing is finished.
- the reliability of the padding data itself may be low because writing to the subsequent page is not performed when the padding data is written.
- FIG. 1 is a functional block diagram of an internal configuration of a memory system
- FIG. 2 is a conceptual diagram of an example of an ECC frame in a TLC NAND flash memory
- FIG. 3 is a view of order of writing of the TLC NAND flash memory
- FIG. 4 is a view of a content of data in the ECC frame in the TLC NAND flash memory
- FIG. 5 is a flowchart of an operation procedure of a coding process in a first embodiment
- FIG. 6 is a flowchart of an operation procedure of a decoding process in the first embodiment.
- FIG. 7 is a view of order of writing of an MLC NAND flash memory.
- a memory system comprises a non-volatile memory and a controller.
- the non-volatile memory includes a plurality of blocks. Each of the blocks includes a plurality of word lines and a plurality of memory cells. Each of the word lines is connected to the memory cells. Each of the memory cells belongs to a plurality of pages.
- the controller performs a coding process based on a first frame including data of the pages connected to first word lines, the first word lines being a predetermined number of consecutive word lines in the block.
- the controller When padding data is written to a plurality of pages connected to second word lines being the predetermined number of consecutive word lines subsequent to the first word lines, the controller performs a coding process based on a second frame obtained by excluding the padding data from a frame including data of a plurality of pages connected to the second word lines. When padding data is not written to the pages connected to the second word lines, the controller performs a coding process based on a third frame, the third frame including data of the pages connected to the second word lines.
- FIG. 1 is a block diagram of a configuration example of an SSD (solid state drive) 100 as a memory system of a first embodiment.
- the memory system 100 is connected to a host device (hereinafter, abbreviated as host) 1 to serve as an external storage device of the host 1 .
- the host 1 is a personal computer, a mobile phone, and an imaging device, for example.
- the memory system 100 is provided with a NAND flash memory (hereinafter, abbreviated as NAND) 10 being a non-volatile memory and a memory controller 20 .
- NAND NAND flash memory
- the NAND 10 stores user data specified by the host 1 .
- the NAND 10 includes one or a plurality of memory chips.
- the memory chip includes a memory cell array in which a plurality of memory cells is arranged in a matrix.
- MLC multiple level cell
- TLC triple level cell
- Each of memory chips includes a plurality of physical blocks being units of data erasing.
- the physical block includes of a plurality of physical pages.
- One physical block includes a plurality of memory cells connected to a plurality of word lines WL 0 to WLn.
- a plurality of physical pages is connected to one word line in one block.
- two pages which are a lower page and an upper page are connected to one word line in one block
- three pages which are the lower page, a middle page, and the upper page are connected to one word line.
- write of data and read of data are performed with respect to each of the physical pages.
- the non-volatile memory 10 is not limited to a non-volatile semiconductor memory such as the NAND flash and another non-volatile memory capable of storing the data such as a flash memory other than the NAND-type and a three-dimensional flash memory may also be adopted.
- the memory controller 20 controls writing to the NAND 10 according to a write command from the host 1 and controls reading from the NAND 10 according to a read command from the host 1 .
- the memory controller 20 is provided with a Host I/F 21 , a memory I/F 22 , a control unit 23 , and a coder/decoder 24 .
- the coder/decoder 24 is provided with a coder 25 and a decoder 26 .
- the Host I/F 21 , the memory I/F 22 , the control unit 23 , the coder 25 , and the decoder 26 are connected to one another by means of an internal bus 27 .
- the Host I/F 21 performs a process in accordance with an interface standard between the same and the host 1 and outputs a command, the user data and the like received from the host 1 to the internal bus 27 .
- the Host I/F 21 also transmits the user data read from the NAND 10 and a response from the control unit 23 to the host 1 .
- the memory I/F 22 controls a process to write write data to the NAND 10 and a process to read the data from the NAND 10 based on an instruction of the control unit 23 .
- the control unit 23 generally controls each component of the memory system 100 .
- the control unit 23 receives the command from the host 1 through the Host I/F 21 , the control unit 23 controls the each component according to the command.
- the control unit 23 gives the memory I/F 22 an instruction to write the user data and parity to the NAND 10 and to read the user data from the NAND 10 according to the command from the host 1 .
- the coder 25 performs an error correcting coding process to generate the parity based on the data transferred to the internal bus 27 .
- Any code may be used as an error correcting code; a BCH code, an RS (Reed-Solomon) code and the like may be used, for example.
- the decoder 26 performs a decoding process based on the user data and the parity read from the NAND 10 .
- the user data read from the NAND 10 is directly output to the internal bus 27 , and when the user data includes an error, the user data is output to the internal bus 27 after error correction using the parity is performed.
- FIG. 2 illustrates a storage area in one block.
- One block is formed of a plurality of memory cells connected to a plurality of word lines WL 0 to WLn.
- three-bit data is stored in one memory cell.
- a lower page (L), a middle page (M), and an upper page (U) are assigned to the three bits.
- FIG. 2 illustrates the storage area connected to WL 0 to WL 15 .
- the ECC (error correcting code) frame is formed so as to include the data of a plurality of pages connected to four consecutive word lines.
- the ECC frame may also be formed so as to extend across a plurality of blocks.
- the ECC frame is formed such that the data is stored in a part of a plurality of blocks and the parity is stored in another block.
- the data is stored in the block illustrated in FIG. 2 and the data and the parity are stored in a plurality of other blocks not illustrated.
- the ECC frame of a plurality of pages in one block and store the data and the parity in the ECC frame.
- the ECC frame is formed so as to extend across a plurality of blocks and the data is stored in the block illustrated in FIG. 2 .
- padding data Pd is written for a predetermined number of word lines from the word line following the word line which belongs to the ECC frame that has been written last, prior to the power shutdown.
- the number of word lines to which the padding data Pd is written is set to be smaller than the number of word lines forming the ECC frame.
- the padding data Pd for fixing the writing data is written to three word lines from WL 8 to WL 10 .
- the ECC frame created thirdly is formed so as to include the padding data Pd of WL 8 to WL 10 and the data of WL 11 and the parity is created from the data of WL 8 to WL 11 , error correcting capability thereof is deteriorated. Therefore, in this embodiment, the padding data Pd of WL 8 to WL 10 is excluded from the FCC frame created thirdly and the ECC frame E 3 created thirdly is created from the data of WL 11 . That is to say, the FCC frame E 3 is created from a short frame shorter than usual. In this embodiment, a normal ECC frame is formed of four word lines and three word lines of padding data Pd is added, so that the short frame is formed of one word line of data.
- a fourth ECC frame 54 is created by using the data of 12 pages from the lower page of WL 12 to the upper page of WL 15 .
- Order of writing to the TLC NAND 10 is next described with reference to FIG. 3 .
- FIG. 3 the order of writing to one block is illustrated.
- one block is formed of 258 pages from page 0 to page 257.
- the number assigned in FIG. 3 indicates the order of writing.
- a page number corresponds to the number indicating the order of writing for the purpose of description in this embodiment, another method of assigning the page number may also be adopted.
- the writing is performed to each page in the following order: a lower page 0 of WL 0 , a lower page 1 of WL 1 , a middle page 2 of WL 0 , a lower page 3 of WL 2 , a middle page 4 of WL 1 , an upper page 5 of WL 0 , a lower page 6 of WL 3 , a middle page 7 of WL 2 , an upper page 8 of WL 1 , . . .
- a lower page 252 of WL 85 a middle page 253 of WL 84 , an upper page 254 of WL 83 , a middle page 255 of WL 85 , an upper page 256 of WL 84 , and an upper page 257 of WL 85 . That is to say, when the lower page, the middle page, and the upper page are represented as L, M, and U, respectively, the writing is performed in the following order of pages: L, L, M, L, M, U, L, M, U, . . . , L, M, U, M, U, and U.
- the writing is performed in the order of the lower page of a word line (n+2), the middle page of a word line (n+1), and the upper page of a word line (n) except at the head and end of the block.
- the order of writing of data D and the padding data Pd to the TLC NAND 10 is next described with reference to FIG. 4 .
- the writing is finished and the power shutdown sequence occurs when the data D is written to the lower page of WL 0 , the lower page of WL 1 , the middle page of WL 0 , the lower page of WL 2 , the middle page of WL 1 , the upper page of WL 0 , . . . , the lower page of WL 5 , the middle page of WL 4 , the upper page of WL 3 , and the lower page of WL 6 .
- the data is not written to an entire ECC frame E 2 formed of WL 4 to WL 7 , so that the padding data Pd is written to the ECC frame E 2 .
- the padding data Pd is written in the order of the middle page of WL 5 , the upper page of WL 4 , the lower page of WL 7 , the middle page of WL 6 , the upper page of WL 5 , the lower page of WL 9 , the middle page of WL 7 , the upper page of WL 6 , the lower page of WL 9 , the middle page of WL 8 , and the upper page of WL 7 .
- the FCC frame E 2 may be filled with the padding data Pd.
- the padding data Pd is thereafter written to the lower page of WL 10 , the middle page of WL 9 , and the upper page of WL 8 . Thereafter, the power shutdown sequence is executed.
- the power is turned on thereafter and the data D is written to WL 11 to WL 15 onward.
- the writing is performed in the following order.
- the data D is written to the lower page of WL 11
- the padding data Pd is written to the middle page of WL 10
- the padding data Pd is written to the upper page of WL 9
- the data D is written to the lower page of WL 12
- the data D is written to the middle page of WL 11
- the padding data Pd is written to the upper page of WL 10
- the data D is written to the lower page of WL 13
- the data D is written to the middle page of WL 12
- the data D is written to the upper page of WL 11
- the data D is hereinafter written in similar order.
- FIG. 5 is a flowchart of an operation procedure of the coding process.
- the control unit 23 determines whether the data of a head page (start page) of the ECC frame is the padding data Pd each time the ECC frame is created (step S 100 ). As a result of the determination, when the head of the frame is not the padding data Pd but the normal data D, the control unit 23 gives the coder 25 an instruction to perform the coding process with the normal ECC frame including four word lines of page data. According to this, the coder 25 executes the coding process with the normal ECC frame (step S 110 ).
- the control unit 23 gives the coder 25 an instruction to perform the coding process with the short frame.
- the coder 25 excludes the three word lines of padding data Pd from the ECC frame and executes the coding process with the short frame including one word line of data D (step S 120 ).
- FIG. 6 is a flowchart of an operation procedure of the decoding process.
- the decoder 26 executes an error correcting process with the data and the parity forming the ECC frame (step S 200 ).
- the error correcting process step S 210 : Yes
- the data included in the ECC frame is output to the internal bus 27 (step S 240 ).
- the control unit 23 gives the decoder 26 an instruction to execute the error correcting process with the short frame obtained by excluding the padding data Pd (step S 220 ).
- the decoder 26 may specify a short frame area obtained by excluding the padding data area from the ECC frame and the decoder 26 executes the error correcting process with the short frame.
- the decoder 26 outputs the data included in the short frame to the internal bus 27 (step S 250 ).
- the control unit 23 executes a predetermined error process which should be performed when the error correction ends in failure (step S 260 ).
- the error correcting process In a case in which the coding is performed with the short frame, when the decoding is performed with the ECC frame including a short frame part and the padding data, the error correcting process must end in failure, so that it is determined No at step S 210 . Therefore, in a case in which the coding is performed with the short frame, if the error correcting process is thereafter performed only with the short frame part at step S 220 , the error correcting process must be successful. Since the short frame does not include the padding data with low reliability, this does not deteriorate correcting capability of the error correcting code.
- the ECC frame when the writing is finished partway through the block, the ECC frame is formed so as to include the write data and a fixed amount of padding data Pd is added to a subsequent page of the ECC frame.
- the padding data Pd is added to the subsequent page of the ECC frame, the coding process is performed based on the short frame obtained by excluding the fixed amount of padding data Pd from the ECC frame, so that the padding data Pd with the low reliability is not included in the ECC frame and it becomes possible to improve the correcting capability of the error correcting code.
- the decoding is first performed with the normal ECC frame, and when the decoding ends in failure, the decoding is performed with the short frame, so that it is possible to appropriately decode both of the normal ECC frame and the short frame regardless of whether the padding data is included in a decoding target.
- the ECC frame to be decoded is the normal ECC frame or the short frame in the decoding procedure illustrated in FIG. 6 , so that the decoding process is first performed with the normal ECC frame, and when the decoding process ends in failure, the decoding process is performed with the short frame. It is also possible to allow each ECC frame to have discrimination information to discriminate whether the ECC frame is the normal ECC frame or the short frame. At the time of decoding, the control unit 23 refers to the discrimination information, and when the ECC frame is the normal ECC frame, this allows the decoding process to be performed with the normal ECC frame, and when the ECC frame is the short frame, this allows the decoding process to be performed with the short frame.
- the ECC frame is formed of the four word lines and the three word lines of padding data is added so as to secure the reliability of the write data in the above-described embodiment
- the number of word lines forming the ECC frame, the number of word lines of the padding data to be added, and the number of word lines forming the short frame are optional and other values may also be adopted. That is to say, when p and q are natural numbers, the ECC frame includes data of the pages connected to p word lines, the short frame includes data of the pages connected to q (q ⁇ p) word lines, and the padding data Pd is written to (p ⁇ q) word lines interposed between the p word lines and the q word lines.
- the embodiment is described above by using the TLC NAND, this embodiment may also applied to the MLC NAND.
- the writing is performed in order illustrated in FIG. 7 , for example.
- the order of write operation from page 0 (P 0 ) to page 255 (P 255 ) is L, L, U, L, U, L, U, . . . , L, U, and U.
Abstract
Description
- This application is based upon and claims the benefit of priority from U.S. Provisional Patent Application No. 62/000,041, filed on May 19, 2014; the entire contents of which are incorporated herein by reference.
- This embodiment generally relates to a memory system provided with a non-volatile memory and a method of controlling the memory system.
- In a storage system provided with the non-volatile memory such as a flash memory, when writing is finished partway through a block at the time of power shutdown and the like, padding data is written to a subsequent page of a page to which data is written in order to fix the data of which writing is finished or to secure reliability of the data of which writing is finished. The reliability of the padding data itself may be low because writing to the subsequent page is not performed when the padding data is written.
- In this type of storage system, the reliability of the data is improved by using an error correcting code. However, the inclusion of such padding data with low reliability into the data which configures the error correcting code may impair the correcting capabilities of the error correcting code.
-
FIG. 1 is a functional block diagram of an internal configuration of a memory system; -
FIG. 2 is a conceptual diagram of an example of an ECC frame in a TLC NAND flash memory; -
FIG. 3 is a view of order of writing of the TLC NAND flash memory; -
FIG. 4 is a view of a content of data in the ECC frame in the TLC NAND flash memory; -
FIG. 5 is a flowchart of an operation procedure of a coding process in a first embodiment; -
FIG. 6 is a flowchart of an operation procedure of a decoding process in the first embodiment; and -
FIG. 7 is a view of order of writing of an MLC NAND flash memory. - According to this embodiment, a memory system comprises a non-volatile memory and a controller. The non-volatile memory includes a plurality of blocks. Each of the blocks includes a plurality of word lines and a plurality of memory cells. Each of the word lines is connected to the memory cells. Each of the memory cells belongs to a plurality of pages. The controller performs a coding process based on a first frame including data of the pages connected to first word lines, the first word lines being a predetermined number of consecutive word lines in the block. When padding data is written to a plurality of pages connected to second word lines being the predetermined number of consecutive word lines subsequent to the first word lines, the controller performs a coding process based on a second frame obtained by excluding the padding data from a frame including data of a plurality of pages connected to the second word lines. When padding data is not written to the pages connected to the second word lines, the controller performs a coding process based on a third frame, the third frame including data of the pages connected to the second word lines.
- The memory system and a method of controlling the memory system according to the embodiment will be explained below in detail with reference to the accompanying drawings. Meanwhile, the present invention is not limited to the following embodiment.
-
FIG. 1 is a block diagram of a configuration example of an SSD (solid state drive) 100 as a memory system of a first embodiment. Thememory system 100 is connected to a host device (hereinafter, abbreviated as host) 1 to serve as an external storage device of thehost 1. Thehost 1 is a personal computer, a mobile phone, and an imaging device, for example. - The
memory system 100 is provided with a NAND flash memory (hereinafter, abbreviated as NAND) 10 being a non-volatile memory and amemory controller 20. - The NAND 10 stores user data specified by the
host 1. The NAND 10 includes one or a plurality of memory chips. The memory chip includes a memory cell array in which a plurality of memory cells is arranged in a matrix. When each of the memory cells is an MLC (multiple level cell) storage cell, two-bit information may be accumulated in one memory cell. When each of the memory cells is a TLC (triple level cell) storage cell, three-bit information may be accumulated in one memory cell. - Each of memory chips includes a plurality of physical blocks being units of data erasing. The physical block includes of a plurality of physical pages. One physical block includes a plurality of memory cells connected to a plurality of word lines WL0 to WLn. In a case of the MLC and the TLC, a plurality of physical pages is connected to one word line in one block. In the case of the MLC, two pages which are a lower page and an upper page are connected to one word line in one block, and in the case of the TLC, three pages which are the lower page, a middle page, and the upper page are connected to one word line. In the
NAND 10, write of data and read of data are performed with respect to each of the physical pages. - The
non-volatile memory 10 is not limited to a non-volatile semiconductor memory such as the NAND flash and another non-volatile memory capable of storing the data such as a flash memory other than the NAND-type and a three-dimensional flash memory may also be adopted. - The
memory controller 20 controls writing to theNAND 10 according to a write command from thehost 1 and controls reading from theNAND 10 according to a read command from thehost 1. Thememory controller 20 is provided with a Host I/F 21, a memory I/F 22, acontrol unit 23, and a coder/decoder 24. The coder/decoder 24 is provided with acoder 25 and adecoder 26. The Host I/F 21, the memory I/F 22, thecontrol unit 23, thecoder 25, and thedecoder 26 are connected to one another by means of aninternal bus 27. - The Host I/F 21 performs a process in accordance with an interface standard between the same and the
host 1 and outputs a command, the user data and the like received from thehost 1 to theinternal bus 27. The Host I/F 21 also transmits the user data read from theNAND 10 and a response from thecontrol unit 23 to thehost 1. - The memory I/
F 22 controls a process to write write data to theNAND 10 and a process to read the data from theNAND 10 based on an instruction of thecontrol unit 23. - The
control unit 23 generally controls each component of thememory system 100. When thecontrol unit 23 receives the command from thehost 1 through the Host I/F 21, thecontrol unit 23 controls the each component according to the command. For example, thecontrol unit 23 gives the memory I/F 22 an instruction to write the user data and parity to theNAND 10 and to read the user data from theNAND 10 according to the command from thehost 1. - The
coder 25 performs an error correcting coding process to generate the parity based on the data transferred to theinternal bus 27. Any code may be used as an error correcting code; a BCH code, an RS (Reed-Solomon) code and the like may be used, for example. - The
decoder 26 performs a decoding process based on the user data and the parity read from theNAND 10. When the user data includes no error, the user data read from theNAND 10 is directly output to theinternal bus 27, and when the user data includes an error, the user data is output to theinternal bus 27 after error correction using the parity is performed. - An ECC (error correcting code) frame in a
TLC NAND 10 is described with reference toFIG. 2 .FIG. 2 illustrates a storage area in one block. One block is formed of a plurality of memory cells connected to a plurality of word lines WL0 to WLn. In one memory cell, three-bit data is stored. A lower page (L), a middle page (M), and an upper page (U) are assigned to the three bits.FIG. 2 illustrates the storage area connected to WL0 to WL15. - In
FIG. 2 , the ECC (error correcting code) frame is formed so as to include the data of a plurality of pages connected to four consecutive word lines. The ECC frame may also be formed so as to extend across a plurality of blocks. In this case, the ECC frame is formed such that the data is stored in a part of a plurality of blocks and the parity is stored in another block. The data is stored in the block illustrated inFIG. 2 and the data and the parity are stored in a plurality of other blocks not illustrated. - Meanwhile, it is also possible to form the ECC frame of a plurality of pages in one block and store the data and the parity in the ECC frame. In the following description, the ECC frame is formed so as to extend across a plurality of blocks and the data is stored in the block illustrated in
FIG. 2 . - In
FIG. 2 , 12 pages from the lower page of WL0 to the upper page of WL3 belong to an ECC frame E1 first created. Also, 12 pages from the lower page of WL4 to the upper page of WL7 belong to an ECC frame E2 secondary created. Suppose that a power shutdown sequence or a stand-by instruction from thehost 1 occurs at a time point at which the data is written to the ECC frame E2. In the TLC or theMLC NAND 10, the reliability of a specific WL declines when a subsequent WL following the specific WL is in an erased state or is in a halfway-written state. - Therefore, when writing ends partway through a block due to a power shutdown or the like, in order to fix the data in which writing has been completed, or in order to ensure the reliability of the data in which writing has been completed, padding data Pd is written for a predetermined number of word lines from the word line following the word line which belongs to the ECC frame that has been written last, prior to the power shutdown. The number of word lines to which the padding data Pd is written is set to be smaller than the number of word lines forming the ECC frame. In this embodiment, the padding data Pd for fixing the writing data is written to three word lines from WL8 to WL10. It is possible to prevent deterioration in reliability of the data of WL7 by the writing of the padding data Pd to WL8, WL9 and WL10. After the padding data Pd is written to WL8, WL9 and WL10, the power shutdown sequence is executed. Herein, the reliability of the padding data Pd written to WL8, WL9 and WL10 is low because WL11 being the next word line is in the erased state.
- Suppose that power is turned on thereafter and the data is written to WL11 to WL15 onward. As described above, the reliability of the padding data Pd written to WL8, WL9 and WL10 is low. Therefore, if the ECC frame created thirdly is formed so as to include the padding data Pd of WL8 to WL10 and the data of WL11 and the parity is created from the data of WL8 to WL11, error correcting capability thereof is deteriorated. Therefore, in this embodiment, the padding data Pd of WL8 to WL10 is excluded from the FCC frame created thirdly and the ECC frame E3 created thirdly is created from the data of WL11. That is to say, the FCC frame E3 is created from a short frame shorter than usual. In this embodiment, a normal ECC frame is formed of four word lines and three word lines of padding data Pd is added, so that the short frame is formed of one word line of data.
- A fourth ECC frame 54 is created by using the data of 12 pages from the lower page of WL12 to the upper page of WL15.
- Order of writing to the
TLC NAND 10 is next described with reference toFIG. 3 . InFIG. 3 , the order of writing to one block is illustrated. In a case ofFIG. 3 , one block is formed of 258 pages frompage 0 topage 257. The number assigned inFIG. 3 indicates the order of writing. Although a page number corresponds to the number indicating the order of writing for the purpose of description in this embodiment, another method of assigning the page number may also be adopted. - As illustrated in
FIG. 3 , the writing is performed to each page in the following order: alower page 0 of WL0, alower page 1 of WL1, amiddle page 2 of WL0, alower page 3 of WL2, amiddle page 4 of WL1, anupper page 5 of WL0, alower page 6 of WL3, amiddle page 7 of WL2, anupper page 8 of WL1, . . . , alower page 252 of WL85, amiddle page 253 of WL84, anupper page 254 of WL83, amiddle page 255 of WL85, anupper page 256 of WL84, and anupper page 257 of WL85. That is to say, when the lower page, the middle page, and the upper page are represented as L, M, and U, respectively, the writing is performed in the following order of pages: L, L, M, L, M, U, L, M, U, . . . , L, M, U, M, U, and U. - In this manner, in the
TLC NAND 10, the writing is performed in the order of the lower page of a word line (n+2), the middle page of a word line (n+1), and the upper page of a word line (n) except at the head and end of the block. - The order of writing of data D and the padding data Pd to the
TLC NAND 10 is next described with reference toFIG. 4 . Suppose that the writing is finished and the power shutdown sequence occurs when the data D is written to the lower page of WL0, the lower page of WL1, the middle page of WL0, the lower page of WL2, the middle page of WL1, the upper page of WL0, . . . , the lower page of WL5, the middle page of WL4, the upper page of WL3, and the lower page of WL6. - In this state, the data is not written to an entire ECC frame E2 formed of WL4 to WL7, so that the padding data Pd is written to the ECC frame E2. In more detail, the padding data Pd is written in the order of the middle page of WL5, the upper page of WL4, the lower page of WL7, the middle page of WL6, the upper page of WL5, the lower page of WL9, the middle page of WL7, the upper page of WL6, the lower page of WL9, the middle page of WL8, and the upper page of WL7. According to this, the FCC frame E2 may be filled with the padding data Pd. In order to secure the reliability of the data of WL7, it is required to write the data to all the pages of next WL8. Therefore, the padding data Pd is thereafter written to the lower page of WL10, the middle page of WL9, and the upper page of WL8. Thereafter, the power shutdown sequence is executed.
- Suppose that the power is turned on thereafter and the data D is written to WL11 to WL15 onward. The writing is performed in the following order. The data D is written to the lower page of WL11, the padding data Pd is written to the middle page of WL10, the padding data Pd is written to the upper page of WL9, the data D is written to the lower page of WL12, the data D is written to the middle page of WL11, the padding data Pd is written to the upper page of WL10, the data D is written to the lower page of WL13, the data D is written to the middle page of WL12, the data D is written to the upper page of WL11, and the data D is hereinafter written in similar order.
-
FIG. 5 is a flowchart of an operation procedure of the coding process. When thecoder 25 performs coding, thecontrol unit 23 determines whether the data of a head page (start page) of the ECC frame is the padding data Pd each time the ECC frame is created (step S100). As a result of the determination, when the head of the frame is not the padding data Pd but the normal data D, thecontrol unit 23 gives thecoder 25 an instruction to perform the coding process with the normal ECC frame including four word lines of page data. According to this, thecoder 25 executes the coding process with the normal ECC frame (step S110). - On the other hand, when it is determined that the head of the frame is the padding data Pd at step S100, the
control unit 23 gives thecoder 25 an instruction to perform the coding process with the short frame. According to this, thecoder 25 excludes the three word lines of padding data Pd from the ECC frame and executes the coding process with the short frame including one word line of data D (step S120). -
FIG. 6 is a flowchart of an operation procedure of the decoding process. When thedecoder 26 detects the error in the user data, thedecoder 26 executes an error correcting process with the data and the parity forming the ECC frame (step S200). When the error can be corrected by the error correcting process (step S210: Yes), the data included in the ECC frame is output to the internal bus 27 (step S240). - However, when the error cannot be corrected by the error correcting process with the ECC frame, the
control unit 23 gives thedecoder 26 an instruction to execute the error correcting process with the short frame obtained by excluding the padding data Pd (step S220). In the ECC frame, a size and a position of a padding data area are fixed. Therefore, thedecoder 26 may specify a short frame area obtained by excluding the padding data area from the ECC frame and thedecoder 26 executes the error correcting process with the short frame. When the error correcting process is successful with the short frame, thedecoder 26 outputs the data included in the short frame to the internal bus 27 (step S250). When the error correction cannot be performed also with the short frame, thecontrol unit 23 executes a predetermined error process which should be performed when the error correction ends in failure (step S260). - In a case in which the coding is performed with the short frame, when the decoding is performed with the ECC frame including a short frame part and the padding data, the error correcting process must end in failure, so that it is determined No at step S210. Therefore, in a case in which the coding is performed with the short frame, if the error correcting process is thereafter performed only with the short frame part at step S220, the error correcting process must be successful. Since the short frame does not include the padding data with low reliability, this does not deteriorate correcting capability of the error correcting code.
- In this manner, in the embodiment, when the writing is finished partway through the block, the ECC frame is formed so as to include the write data and a fixed amount of padding data Pd is added to a subsequent page of the ECC frame. When the padding data Pd is added to the subsequent page of the ECC frame, the coding process is performed based on the short frame obtained by excluding the fixed amount of padding data Pd from the ECC frame, so that the padding data Pd with the low reliability is not included in the ECC frame and it becomes possible to improve the correcting capability of the error correcting code.
- At the time of the decoding, the decoding is first performed with the normal ECC frame, and when the decoding ends in failure, the decoding is performed with the short frame, so that it is possible to appropriately decode both of the normal ECC frame and the short frame regardless of whether the padding data is included in a decoding target.
- Meanwhile, it is not clear whether the ECC frame to be decoded is the normal ECC frame or the short frame in the decoding procedure illustrated in
FIG. 6 , so that the decoding process is first performed with the normal ECC frame, and when the decoding process ends in failure, the decoding process is performed with the short frame. It is also possible to allow each ECC frame to have discrimination information to discriminate whether the ECC frame is the normal ECC frame or the short frame. At the time of decoding, thecontrol unit 23 refers to the discrimination information, and when the ECC frame is the normal ECC frame, this allows the decoding process to be performed with the normal ECC frame, and when the ECC frame is the short frame, this allows the decoding process to be performed with the short frame. - Although the ECC frame is formed of the four word lines and the three word lines of padding data is added so as to secure the reliability of the write data in the above-described embodiment, the number of word lines forming the ECC frame, the number of word lines of the padding data to be added, and the number of word lines forming the short frame are optional and other values may also be adopted. That is to say, when p and q are natural numbers, the ECC frame includes data of the pages connected to p word lines, the short frame includes data of the pages connected to q (q<p) word lines, and the padding data Pd is written to (p−q) word lines interposed between the p word lines and the q word lines.
- Although the embodiment is described above by using the TLC NAND, this embodiment may also applied to the MLC NAND. In the
MLC NAND 10, the writing is performed in order illustrated inFIG. 7 , for example. In more detail, the order of write operation from page 0 (P0) to page 255 (P255) is L, L, U, L, U, L, U, . . . , L, U, and U. - While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/472,701 US9208863B1 (en) | 2014-05-19 | 2014-08-29 | Memory system and method of controlling memory system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462000041P | 2014-05-19 | 2014-05-19 | |
US14/472,701 US9208863B1 (en) | 2014-05-19 | 2014-08-29 | Memory system and method of controlling memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
US20150332758A1 true US20150332758A1 (en) | 2015-11-19 |
US9208863B1 US9208863B1 (en) | 2015-12-08 |
Family
ID=54539053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/472,701 Active US9208863B1 (en) | 2014-05-19 | 2014-08-29 | Memory system and method of controlling memory system |
Country Status (1)
Country | Link |
---|---|
US (1) | US9208863B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180068719A1 (en) * | 2016-09-08 | 2018-03-08 | Toshiba Memory Corporation | Memory system |
CN112840324A (en) * | 2018-09-07 | 2021-05-25 | 铠侠股份有限公司 | Converged front-line ECC decoder in a memory system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006338370A (en) * | 2005-06-02 | 2006-12-14 | Toshiba Corp | Memory system |
KR101433620B1 (en) * | 2007-08-17 | 2014-08-25 | 삼성전자주식회사 | Decoder for increasing throughput using double buffering structure and pipelining technique and decoding method thereof |
JP2010015197A (en) | 2008-06-30 | 2010-01-21 | Toshiba Corp | Storage controller, data restoration device, and storage system |
US7729166B2 (en) * | 2008-07-02 | 2010-06-01 | Mosaid Technologies Incorporated | Multiple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same |
JP5242264B2 (en) | 2008-07-07 | 2013-07-24 | 株式会社東芝 | Data control apparatus, storage system, and program |
KR101463584B1 (en) * | 2008-07-30 | 2014-11-19 | 삼성전자주식회사 | Nonvolatile memory device and programmming method teherof |
JP5768022B2 (en) | 2012-03-19 | 2015-08-26 | 株式会社東芝 | Memory controller, storage device, error correction device, and error correction method |
-
2014
- 2014-08-29 US US14/472,701 patent/US9208863B1/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180068719A1 (en) * | 2016-09-08 | 2018-03-08 | Toshiba Memory Corporation | Memory system |
US10061691B2 (en) * | 2016-09-08 | 2018-08-28 | Toshiba Memory Corporation | Write data optimization methods for non-volatile semiconductor memory devices |
CN112840324A (en) * | 2018-09-07 | 2021-05-25 | 铠侠股份有限公司 | Converged front-line ECC decoder in a memory system |
Also Published As
Publication number | Publication date |
---|---|
US9208863B1 (en) | 2015-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101887557B1 (en) | Flash memory controller and memory device for accessing flash memory module, and associated method | |
TWI679649B (en) | Memory system and operating method thereof | |
US9009390B2 (en) | Method for changing read parameter for improving read performance and apparatuses using the same | |
KR102065665B1 (en) | Non-volatile memory device including dummy wordline, memory system and operating method thereof | |
US9639419B2 (en) | Read voltage level estimating method, memory storage device and memory control circuit unit | |
US9424126B2 (en) | Memory controller | |
US9135105B2 (en) | Probability-based remedial action for read disturb effects | |
CN103928052A (en) | Memory System And Method Of Operation Thereof | |
US9063879B2 (en) | Inspection of non-volatile memory for disturb effects | |
US20140173172A1 (en) | System and method to update read voltages in a non-volatile memory in response to tracking data | |
KR20130077890A (en) | Hybrid error correction coding to address uncorrectable errors | |
US20160070507A1 (en) | Memory system and method of controlling memory device | |
US10062418B2 (en) | Data programming method and memory storage device | |
JP2012137994A (en) | Memory system and controlling method thereof | |
US10424391B2 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
TW201346923A (en) | Erasure correction using single error detection parity | |
US9043672B2 (en) | Memory controller, storage device, and memory control method | |
US10782920B2 (en) | Data access method, memory storage apparatus and memory control circuit unit | |
US8755230B2 (en) | Semiconductor memory device | |
US20230297464A1 (en) | Abnormal power loss recovery method, memory control circuit unit, and memory storage device | |
US9208863B1 (en) | Memory system and method of controlling memory system | |
CN109559774B (en) | Decoding method, memory control circuit unit and memory storage device | |
JP2010128697A (en) | Memory system | |
US9104596B2 (en) | Memory system | |
CN109710450B (en) | Data coding method, memory control circuit unit and memory storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: KABUSHIKI KAISHA TOSHIBA, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YOSHIHASHI, EIJI;MATSUDAIRA, HIROKI;NISHIKUBO, RYUJI;AND OTHERS;SIGNING DATES FROM 20140807 TO 20140811;REEL/FRAME:033639/0741 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: TOSHIBA MEMORY CORPORATION, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KABUSHIKI KAISHA TOSHIBA;REEL/FRAME:043709/0035 Effective date: 20170706 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: K.K. PANGEA, JAPAN Free format text: MERGER;ASSIGNOR:TOSHIBA MEMORY CORPORATION;REEL/FRAME:055659/0471 Effective date: 20180801 Owner name: KIOXIA CORPORATION, JAPAN Free format text: CHANGE OF NAME AND ADDRESS;ASSIGNOR:TOSHIBA MEMORY CORPORATION;REEL/FRAME:055669/0001 Effective date: 20191001 Owner name: TOSHIBA MEMORY CORPORATION, JAPAN Free format text: CHANGE OF NAME AND ADDRESS;ASSIGNOR:K.K. PANGEA;REEL/FRAME:055669/0401 Effective date: 20180801 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |