Memory controller, semiconductor device and method of controlling semiconductor device
View Patent ↗According to one embodiment, a memory controller controlling write to and read from a 3D NAND flash memory including a plurality of blocks, one block being constituted by a plurality of pages stacked in a depth direction includes a frame generator that generates frame data including an error detecting code or an error correcting code, and a frame divider that divides the frame data to generate a plurality of divided frames including a first divided frame and a second divided frame. The first divided frame and the second divided frame are written into different pages from one another.
1. A memory controller controlling write to and read from a 3D NAND flash memory including a plurality of blocks, one block being constituted by a plurality of pages stacked in a depth direction, the memory controller comprising:
a frame generator that generates first frame data and second frame data each of which includes an error correcting code (ECC); and
a frame divider that divides the first frame data to generate a plurality of divided frames including a first divided frame and a second divided frame and divides the second frame data to generate a plurality of divided frames including a third divided frame and a fourth divided frame, wherein
the memory controller:
performs verification of the 3D NAND flash memory to specify the number of defective bit lines included in each block;
determines combinations of pages based on the specified number of defective bit lines included in each block so that the numbers of total defective bit lines in the respective combinations of pages are leveled, the combinations of pages including a first combination which includes a first page and a second page;
combines the first divided frame and the third divided frame to generate a first ECC frame and combines the second divided frame and the fourth divided frame to generate a second ECC frame; and
allocates the first and second ECC frames to the first combination so that the first ECC frame is written into the first page and the second ECC frame is written into the second page.
2. The memory controller according to claim 1 , further comprising a storage region that has stored therein information about the determined combinations of pages, wherein
when the memory controller writes the first and second ECC frames to the 3D NAND flash memory, the memory controller selects the first combination including the first and second page from the storage region.
3. The memory controller according to claim 1 , wherein a data size of respective pages is equal to a data size of the first frame data as well as a data size of the second frame data.
4. The memory controller according to claim 1 , wherein a data size of respective pages is a multiple of a data size of the first frame data as well as a multiple of a data size of the second frame data.
5. A semiconductor device comprising:
the memory controller according to claim 1 , and
one or more 3D NAND flash memories, each of the 3D NAND flash memories including a plurality of blocks, one block being constituted by a plurality of pages.
6. The memory controller according to claim 1 , wherein the memory controller calculates an average value of the number of defective bit lines per page and determines the combinations of pages so that the numbers of total defective bit lines per page in the respective combinations of pages are close to the average value.
7. The memory controller according to claim 1 , wherein a data size of the first and second ECC frames is the same as a data size of the first and second frame data.
8. The memory controller according to claim 1 , wherein
the plurality of blocks include a first block and a second block, the second block being different from the first block,
the first page belongs to the first block, and
the second page belongs to the second block.
9. The memory controller according to claim 8 , wherein
the 3D NAND flash memory includes a plurality of word lines to which a plurality of memory cells are connected, respectively,
a plurality of memory cells connected to the same word line constitute one page among the plurality of pages, and
the first block and the second block are arranged in a direction of the word lines.
10. The memory controller according to claim 1 , wherein
the first page and the second page belong to an identical block, and
a depth position of the first page differs from a depth position of the second page in the depth direction.
11. A method of controlling write to and read from a 3D NAND flash memory including a plurality of blocks, one block being constituted by a plurality of pages stacked in a depth direction, the method comprising:
generating first and second frame data each of which includes an error correcting code (ECC), respectively;
dividing the first frame data, thereby generating a plurality of divided frames including a first divided frame and a second divided frame, and dividing the second frame data, thereby generating a plurality of divided frames including a third divided frame and a fourth divided frame;
performing verification of the 3D NAND flash memory, thereby specifying the number of defective bit lines included in each block;
determining combinations of pages based on the specified number of defective bit lines included in each block so that the numbers of total defective bit lines in the respective combinations of pages are leveled, the combinations of pages including a first combination which includes a first page and a second page;
combining the first divided frame and the third divided frame, thereby generating a first ECC frame, and combining the second divided frame and the fourth divided frame, thereby generating a second ECC frame; and
allocating the first and second ECC frames to the first combination so that the first ECC frame is written into the first page and the second ECC frame is written into the second page.