Memory system which writes data to multi-level flash memory by zigzag interleave operation
Granted 30 Oct 2012 · 1 office action
Current assignee: Toshiba Memory Corporation · originally Toshiba
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Hitoshi Shimono, Kazunori Sato, Eriko Chiba, Shinji Kawano · Examiner: Pierre-Michel Bataille · AU 2186 · TC 2100
Life of the application
12 dated eventsAbstract
According to one embodiment, a memory system includes a first memory chip includes a first temporary memory and a first block, a second memory chip includes a second temporary memory and a second block, and a memory controller that controls writing of logical pages to the first and second memory chips. The memory controller forms a second unit having the same page number as the first unit by the first temporary memory and the lowermost physical page in the first block, forms a third unit having the same page number as the first unit by the second temporary memory and the lowermost physical page in the second block, and writes the logical pages by an interleave operation in order of the second unit, the third unit, the first unit in the first block, and the first unit in the second block.
Description
17 parts›CROSS-REFERENCE TO RELATED APPLICATIONS
This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2009-207387, filed Sep. 8, 2009; the entire contents of which are incorporated herein by reference.
›FIELD
Embodiments described herein relate generally to a data writing technique of a multi-level flash memory.
›BACKGROUND
A flash memory, in particular, a NAND flash memory begins to be applied to various fields such as a memory card, and an SSD (solid state drive) as a storage memory. In these fields, when a flash memory system is configured, one of important problems is to increase a data writing speed.
Incidentally, an interleave operation is known as a technology for improving a data transfer speed. Accordingly, when the technology is applied to the flash memory, there is a possibility that the problem of increasing the data writing speed can be solved.
However, the flash memory has such an inherent data writing system that the flash memory cannot overwrite data to a memory cell (physical page), that is, when the flash memory overwrites data, the flash memory must withdraw an old block and rewrite the data to a new block.
Accordingly, the increase of the data writing speed is realized by developing an interleave operation that matches the data writing system of the flash memory.
›BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a memory system.
FIGS. 2 and 3 show four-level threshold distributions.
FIGS. 4 and 5 show block formats.
FIG. 6 shows a NAND block.
FIG. 7 shows a conventional writing.
FIG. 8 shows a writing by a page sift operation.
FIG. 9 shows a writing by an interleave operation.
FIG. 10 shows a wave form chart of an operation in FIG. 9 .
FIG. 11 shows a writing by a zigzag interleave operation.
FIG. 12 shows a wave form chart of an operation in FIG. 11 .
FIG. 13 shows a data transfer in an evacuation.
FIGS. 14 to 17 show embodiments.
FIG. 18 shows an example of a temporary memory.
FIGS. 19 to 22 show embodiments.
FIG. 23 shows an example of a NAND flash memory.
FIGS. 24 and 25 show examples of a memory controller.
›DETAILED DESCRIPTION · 1 of 13
1. Concept
In general, according to one embodiment, a memory system includes a first memory chip comprising a first temporary memory and a first block, a second memory chip comprising a second temporary memory and a second block, and a memory controller that controls writing of logical pages to the first and second memory chips.
The first and second memory chips are each multi-level flash memories for storing n (n is a natural number of at least 2) bits in one memory cell. The first and second blocks are each configured of physical pages and the writing is executed to respective physical pages from a lowermost physical page to an uppermost physical page.
The lowermost physical page includes a lower page having a shortest write time, the uppermost physical page includes an upper page having a longest write time, and the remaining physical pages other than the lowermost physical page and the uppermost physical page are a repetition of a first unit configured of the lower page, (n−2) pieces of middle pages, and the upper page.
The memory controller forms a second unit having the same page number as the first unit by the first temporary memory and the lowermost physical page in the first block, forms a third unit having the same page number as the first unit by the second temporary memory and the lowermost physical page in the second block, and writes the logical pages by an interleave operation in order of the second unit, the third unit, the first unit in the first block, and the first unit in the second block.
Embodiments employ the following configuration to realize a high speed writing to the flash memory by the interleave operation.
First, a flash chip (memory chip) is a multi-level flash memory for storing n (n is a natural number of at least 2) bits in one memory cell. Further, the flash chip comprises blocks (memory blocks) each of which is composed of physical pages.
Here, the block means one section obtained when a memory cell array acting as a data memory area is divided into sections. Further, the page means one section obtained when the block is divided into sections. Accordingly, a page size is smaller than a block size.
Although these terms are particularly used in a NAND flash memory, they are not limited to use in the NAND flash memory.
The writing is executed to respective physical pages from a lowermost physical page to an uppermost physical page.
The lowermost physical page includes a lower page having a shortest write time, and the uppermost physical page includes an upper page having a longest write time. Remaining physical pages other than the lowermost physical page and the uppermost physical page are a repetition of a first unit composed of a lower page, (n−2) pieces of middle pages, and an upper page.
Under the premise, embodiments prepare a temporary memory for temporarily storing a logical page when the logical page is initially written and when the logical page is overwritten, respectively.
The logical page is a page designated by a host, and the physical page is a page actually designated in the flash chip.
Further, the temporary memory is, for example, a lower page having a shortest write time of a block in the flash chip, a page buffer in the flash chip, or the like.
When the logical page is written by the interleave operation, for example, a second unit having the same page number as a first unit is formed by a temporary memory in a first flash chip and a lowermost physical page of a block, a third unit having the same page number as the first unit is formed by a temporary memory in a second flash chip and a lowermost physical page of the block, and the logical page is written in order of the second unit, the third unit, a first unit in the first flash chip, and a first unit in the second flash chip.
The second unit and the third unit are a constituent employed to execute a data movement of logical pages only in the same flash chip without disturbing an order of the logical pages in the same flash chip even if a logical page is overwritten repeatedly by a page shift operation from any of the logical pages.
In, for example, a 4-level, a logical page is written to a new block by the interleave operation in the following order using two logical pages in pairs.
A. Second unit (2 pages) in first flash chip
temporary memory→lowermost physical page (lower page)
B. Third unit (2 pages) in second flash chip
temporary memory→lowermost physical page (lower page)
C. First unit (2 pages) in first flash chip
lower page→upper page
D. First unit (2 pages) in second flash chip
lower page→upper page
E. Repetition of C. and D.
F. Copy of logical page written to temporary memory
A logical page written to a temporary memory in a first flash memory is copied to an uppermost physical page (upper page) of a new block in the first flash memory, and a logical page written to a temporary memory in a second flash memory is copied to an uppermost physical page (upper page) of a new block in the second flash memory.
However, when a logical page is overwritten to a new block from upper pages in an old block, the writing to the temporary memory in A. described above is omitted, and the writing starts from the lowermost physical page (lower page) in A. described above.
At this time, in F. described above, only the logical page written to the temporary memory in the second flash memory is copied.
Note that the copy executed in F. described above is most preferably executed when an old block is withdrawn.
Further, in an n-level, a logical page is written to a new block by the interleave operation in the following order using n pieces of logical pages in pairs.
A. Second unit (n pages) in first flash chip
temporary memory→lowermost physical page (lower page→(n−2) pieces of middle pages)
B. Third unit (n pages) in second flash chip
temporary memory→lowermost physical page (lower page→(n−2) pieces of middle pages)
C. First unit (n pages) in first flash chip
lower page→(n−2) pieces of middle pages→upper page
D. First unit (n pages) in second flash chip
›DETAILED DESCRIPTION · 2 of 13
lower page→(n−2) pieces of middle pages→upper page
E. Repetition of C. and D.
F. Copy of logical page written to temporary memory
A logical page written to a temporary memory in a first flash memory is copied to an upper page in an uppermost physical page of a new block in the first flash memory, and a logical page written to a temporary memory in a second flash memory is copied to an upper page in an uppermost physical page of a new block in the second flash memory.
However, when the logical page is overwritten to a new block from (n−2) pieces of middle pages or from an upper page in an old block, the writing to the temporary memory in A. described above is omitted, and the writing starts from a lower page in the lowermost physical page in A. described above.
At this time, in F. described above, only the logical page written to the temporary memory in the second flash memory is copied.
Note that the copy in F. described above is most preferably executed when an old block is withdrawn.
Further, in the n-level, the logical page may be written to the new block by the interleave operation in the following order.
A. Second unit (n pages) in first flash chip
temporary memory (n−1 pages)→lowermost physical page (lower page)
B. Third unit (n pages) in second flash chip
temporary memory (n−1 pages)→lowermost physical page (lower page)
C. First unit (n pages) in first flash chip
lower page→(n−2) pieces of middle pages→upper page
D. First unit (n pages) in second flash chip
lower page→(n−2) pieces of middle pages→upper page
E. Repetition of C. and D.
F. Copy of logical page written to temporary memory
Note that the copy in F. described above is most preferably executed when an old block is withdrawn.
According to the configuration described above, even if a logical page is repeatedly overwritten from any of logical pages by the page shift operation, an order of the logical pages in the same flash chip is not disturbed. In other words, the order of the logical pages only shifts in the same flash chip each time a block changes.
Accordingly, when an old block is withdrawn, since the data of the logical page moves only in the same flash chip, a high speed writing can be realized by reducing a withdrawal time making use of a high speed moving function of data between blocks mounted on the flash chip.
2. Flash Memory System
FIG. 1 shows a flash memory system.
Flash chips CP 0 , CP 1 are chips in which, for example, NAND flash memories are formed.
Flash chips CP 0 , CP 1 are composed of m+1 pieces (m is a natural number) of blocks BK 0 , BK 1 , . . . BKm. Block BKi (i=0, 1, . . . m) is composed of pages.
Memory controller 11 controls a data writing operation to flash chips CP 0 , CP 1 .
Although two pieces of flash chips CP 0 , CP 1 are used in the example, three or more pieces of flash chips CP 0 , CP 1 may be used.
Further, memory controller 11 and flash chips CP 0 , CP 1 may be accommodated in one package, and a package in which flash chip CP 0 is accommodated may be different from a package in which flash chip CP 1 is accommodated.
3. Multi-Level Flash Memory
Embodiments relate to a data writing technology to a multi-level flash memory.
A multi-level means that at least 3-level data is stored in one memory cell. Since 1 bit, which is a unit of data, has a 2-level, the multi-level flash memory ordinarily has a 2 n level (n is a natural number). It is assumed that when n-bits are stored in one memory cell, the n-bits are shown by a lower bit, middle bits, and an upper bit.
In a multi-level NAND flash memory, data is written in units of page. In this case, a lower bit as write data is called lower page L, middle bits are called middle pages M, and an upper bit is called upper page U.
For example, as shown in FIG. 2 , 4-level (2 bits) is stored in one memory cell in a 4-level NAND flash memory. At this time, the 2 bits stored in the one memory cell are shown by a lower bit and an upper bit.
In a state that only the lower bit is stored in the one memory cell, a threshold value distribution of the memory cell is one of first state A and second state M. First state A is an erase state, and second state M is called an LM (lower middle) state.
In a state that the lower bit and the upper bit are stored in the one memory cell, the threshold value distribution of the memory cell is one of first state A, third state B, fourth state C, and fifth state D. For example, third state B can be obtained by a threshold value shift from first state A, and fourth and fifth states C, D can be obtained by the threshold value shift from second state M.
However, a threshold value shift method is not limited to the above method.
As shown in, for example, FIG. 3 , in the state that only the lower bit is stored, the threshold value distribution of the memory cell may be one of first state A and second state B, and in the state that the lower bit and the upper bit are stored, the threshold value distribution of the memory cell may be one of first state A, second state B, third state C, and the fourth state D.
In this case, third state C can be obtained by the threshold value shift from second state B, and fourth state D can be obtained by the threshold value shift from first state A.
4. Block Format of Flash Memory
A block format of a flash memory will be explained.
FIGS. 4 and 5 show the block format of the flash memory.
Block BKi (i=0, 1, . . . m) corresponds to blocks BK 0 , BK 1 , . . . BKm of FIG. 1 .
FIG. 4 shows a block format of a 4-level flash memory.
One block BKi is composed of j+1 pieces (j is a natural number) of physical addresses PA 0 , PA 1 , PA 2 , . . . PAj−1, PAj.
Lowermost physical address PA 0 in one block BKi is composed only of one page of physical page PP 0 . Physical page PP 0 is set to, for example, lower page L.
Further, uppermost physical address PAj in one block BKi is composed only of one page of physical page PP 2 j− 1. Physical page PP 2 j− 1 is set to, for example, upper page U.
Whether physical pages PP 0 , PP 2 j− 1 are set to the lower page or to the upper page is arbitrarily determined.
›DETAILED DESCRIPTION · 3 of 13
Remaining physical addresses PA 1 , PA 2 , . . . PAj−1 are composed of two pages of lower page L and upper page U.
For example, physical address PA 1 is composed of physical page PP 1 as lower page L and physical page PP 2 as upper page U.
FIG. 5 shows a block format of an 8-level flash memory.
One block BKi is composed of j+1 pieces (j is a natural number) of physical addresses PA 0 , PA 1 , PA 2 , . . . PAj−1, PAj.
Lowermost physical address PA 0 in one block BKi is composed only of one page of physical page PP 0 . Physical page PP 0 is set to, for example, lower page L.
Further, uppermost physical address PAj in one block BKi is composed only of one page of physical page PP 2 j− 1. Physical page PP 2 j− 1 is set to, for example, upper page U.
Whether physical pages PP 0 , PP 2 j− 1 are set to the lower page or to the upper page is arbitrarily determined.
Each of remaining physical addresses PA 1 , PA 2 , . . . PAj−1 is composed of 3 pages of lower page L, middle page M, and upper page U.
For example, physical address PA 1 is composed of physical page PP 1 as lower page L, physical page PP 2 as middle page M, and physical page PP 3 as upper page U.
Note that lowermost physical address PA 0 in one block BKi may be composed of two pages of lower page L and middle page M. Further, uppermost physical address PAj in one block BKi may be composed two pages of middle page M and upper page U.
FIG. 6 shows a block format of a NAND flash memory.
An example of a 4-level will be explained here in correspondence to the block format of FIG. 4 .
NAND cell unit CU is composed of j+1 pieces of memory cells MC connected in series and two select gate transistors ST 1 , ST 2 in total connected to both the ends of memory cells MC. Select gate transistor ST 1 is connected to source line SL, and select gate transistor ST 2 is connected to bit line BL 0 .
Word lines WL 0 , WL 1 , WL 2 , . . . WLj−1, WLj are connected to memory cells MC and select gate lines SGS, SGD are connected to select gate transistors ST 1 , ST 2 .
One block BKi is composed of j+1 pieces (j is a natural number) of physical addresses PA 0 , PA 1 , PA 2 , . . . PAj−1, PAj.
Lowermost physical address PA 0 in one block BKi is composed only of one page of physical page (lower page) PP 0 .
Further, uppermost physical address PAj in one block BKi is composed only of one physical page (upper page) PP 2 j− 1.
Each of remaining physical addresses PA 1 , PA 2 , PAj−1 is composed of two pages of lower page L and upper page U.
Although the block formats of the 4-level (2 bits) and the 8-level (3 bits) have been explained above, the block formats can be easily applied to a 16-level (4 bits), a 32-level (5 bits), a 64-level (6 bits) . . . by increasing, for example, the number of middle bits M of FIG. 5 .
A feature of the block formats of these flash memories is that a page configuration (only one page) of lowermost physical address PA 0 in one block BKi is different from page configurations (pages) of physical addresses PA 1 , PA 2 , . . . PAj−1.
This is a factor for preventing a high speed writing when a page shift operation and a zigzag interleave operation to be explained below are executed.
5. Page Shift Operation
A page shift operation is one of technologies developed to realize a high speed writing in a flash memory.
Since Embodiments employ the page shift operation as a premise, the page shift operation will be explained.
A flash memory, for example, erases data in units of block and writes data in units of page. In contrast, data is managed in a size smaller than a page size, for example, in a sector.
When new data is written to the flash memory, new data, which is managed in units of sector, can be sequentially written to, for example, a non-used block (new block) from which data has been erased from a lowermost physical page to an uppermost physical page in units of page.
In contrast, when a part (for example, a sector) of a page in a block being used (old block) to which data is written is changed by overwriting data, since only a part of the page to which the data is overwritten cannot be changed, a non-used block (new block) from which data has been erased, for example, is newly prepared, and the overwriting data is written to the non-used block.
FIGS. 7 and 8 show examples of an overwrite operation.
In the examples, it is assumed that one block is composed of 128 pages.
First, the new data of logical pages LP 0 , LP 1 , LP 2 , LP 3 , LP 4 , . . . LP 125 , LP 126 , LP 127 are sequentially written to physical pages PP 0 , PP 1 , PP 2 , PP 3 , PP 4 , . . . PP 125 , PP 126 , PP 127 of non-used block BK-A in units of page. Block BK-A, to which the data has been written, becomes a block being used.
Thereafter, a case that the overwrite is executed to logical pages LP 125 , LP 126 , LP 127 will be examined. In this case, first, non-used block BK-B is prepared independently of block BK-A being used.
Data are sequentially written to non-used block BK-B from physical page PP 0 to physical page PP 127 in units of page.
Accordingly, in the example of FIG. 7 , after data (effective data) of physical pages PP 0 to PP 124 in block BK-A being used are copied to non-used block BK-B, the data of logical pages LP 125 to LP 127 as overwriting data are written to physical pages PP 125 to PP 127 of non-used block BK-B.
However, during the control, since data must be copied from block BK-A being used to non-used block BK-B at all times before the data are overwritten, a data writing speed cannot be increased.
In contrast, in the example of FIG. 8 , overwriting data is sequentially written at all times from lowermost physical page PP 0 of non-used block BK-B. Specifically, the data of logical pages LP 125 to LP 127 as overwriting data are written to physical pages PP 0 to PP 2 of non-used block BK-B.
The control is called the page shift operation.
According to the page shift operation, when a part of the page in block BK-A being used is changed by the overwriting data, since the data in block BK-A being used need not be copied to non-used block BK-B, the data writing speed can be increased.
›DETAILED DESCRIPTION · 4 of 13
However, in the page shift operation, it is important to manage a relation between a logical page and a physical page by the controller.
The remaining effective data in block BK-A, that is, the data of logical pages LP 0 to LP 124 are moved from, for example, physical pages PP 0 to PP 124 in block BK-A to physical pages PP 3 to PP 127 in block BK-B at an appropriate time.
After the effective data in block BK-A are moved, block BK-A has only ineffective data. Accordingly, when data is erased from block BK-A, block BK-A is treated as a non-used block again.
When a block being used returns to a non-used block again as described above, it is called “withdrawal”.
6. Zigzag Interleave Operation
A zigzag interleave operation is also one of the technologies developed to realize a high speed writing in a flash memory.
Since Embodiments employ the zigzag interleave operation as a premise, the zigzag interleave operation will be explained. Zigzag is named after the fact that when data is written to physical pages of chips in a zigzag order at the time an interleave operation is applied to data writing to a multi-level flash memory, the zigzag order can contribute to a high speed writing.
(1) Normal Interleave Operation
To understand the zigzag interleave operation, first, one must know a normal interleave operation, which will be explained below.
FIG. 9 shows a writing procedure of the normal interleave operation.
It is assumed here that the number of chips to be interleaved is set to 2 and one block is composed of 128 pages.
In an initial write, the new data of logical pages LP 0 , LP 1 , LP 2 , LP 3 , LP 4 , . . . LP 125 , LP 126 , LP 127 are sequentially and alternately written to physical pages PP 0 , PP 1 , PP 2 , PP 3 , PP 4 , . . . PP 125 , PP 126 , PP 127 of non-used blocks BK-A in two flash chips CP 0 , CP 1 in units of page.
For example, first, the data of logical page LP 0 is written to physical page PP 0 (lower page L) of non-used block BK-A of flash chip CP 0 . Next, the data of logical page LP 1 is written to physical page PP 0 (lower page L) of non-used block BK-A of flash chip CP 1 .
Subsequently, the data of logical page LP 2 is written to physical page PP 1 (lower page L) of non-used block BK-A of flash chip CP 0 . Next, the data of logical page LP 3 is written to physical page PP 1 (lower page L) of non-used block BK-A of flash chip CP 1 .
Thereafter, the data of logical pages LP 4 , LP 5 , . . . LP 254 , LP 255 are sequentially written likewise.
Blocks BK-A, to which the data have been written, become blocks being used.
Thereafter, a case that the overwrite is executed to logical pages LP 4 , LP 5 , LP 6 , LP 7 will be examined. In this case, first, non-used blocks BK-B are prepared independently of blocks BK-A being used.
It is assumed here that data are sequentially written to non-used blocks BK-B from physical page PP 0 to physical page PP 127 in units of page by the page shift operation described above.
That is, in the overwrite operation, the data of logical pages LP 4 , LP 5 , LP 6 , LP 7 are alternately written to physical pages PP 0 , PP 1 of non-used blocks BK-B in two flash chips CP 0 , CP 1 .
Specifically, first, the data of logical page LP 4 is written to physical page PP 0 (lower page L) of non-used block BK-B of flash chip CP 0 . Next, the data of logical page LP 5 is written to physical page PP 0 (lower page L) of non-used block BK-B of flash chip CP 1 .
Subsequently, the data of logical page LP 6 is written to physical page PP 1 (lower page L) of non-used block BK-B of flash chip CP 0 . Next, the data of logical page LP 7 is written to physical page PP 1 (lower page L) of non-used block BK-B of flash chip CP 1 .
Then, the remaining effective data in blocks BK-A, that is, the data of logical pages LP 0 to LP 3 and LP 8 to LP 255 are moved from, for example, physical pages PP 0 , PP 1 and PP 4 to PP 127 in blocks BK-A to physical pages PP 2 to PP 127 in blocks BK-B at an appropriate time.
FIG. 10 shows an operation waveform of a normal interleave.
In the normal interleave operation, since data is alternately input to, for example, two flash chips CP 0 , CP 1 , the data can be written to two flash chips CP 0 , CP 1 substantially in parallel. As a result, an apparent writing speed can be improved.
However, since the interleave does not effectively function due to the block format inherent to the flash memory described above, it is difficult to greatly improve the writing speed.
This is because, in the multi-level flash memory, a lower page, middle pages, and an upper page have different write times, respectively. For example, the lower page has a shortest write time and the upper page has a longest write time.
That is, in the normal interleave operation, a lower page is input to flash chip CP 1 while a lower page is being written to flash chip CP 0 , an upper page is input to flash chip CP 0 while a lower page is being written to flash chip CP 1 , and an upper page is input to flash chip CP 1 while an upper page is being written to flash chip CP 0 .
In this case, since the lower page has the short write time, it is not preferable to input the data of logical page LP 3 to flash chip CP 1 while, for example, logical page LP 2 is being written to flash chip CP 0 (Busy period).
Further, since the upper page has the long write time, it is not effective to input only the data of logical page LP 5 to flash chip CP 1 while, for example, an upper page of logical page LP 4 is being written to flash chip CP 0 (Busy period).
In the example, since apparent Busy period X caused by writing logical page LP 4 becomes long, an effect of the high speed writing executed by the interleave is restricted.
(2) Zigzag Interleave Operation
The zigzag interleave operation overcomes the problem of the normal interleave operation. A feature of the zigzag interleave operation is to write a lower page and an upper page in pairs.
FIG. 11 shows a writing procedure of the zigzag interleave operation.
It is assumed here that the number of chips to be interleaved is set to 2 and one block is composed of 128 pages.
›DETAILED DESCRIPTION · 5 of 13
In an initial write, the new data of logical pages LP 0 , LP 1 , LP 2 , LP 3 , LP 4 , . . . LP 125 , LP 126 , LP 127 are sequentially written zigzag in units of page to physical pages PP 0 , PP 1 , PP 2 , PP 3 , PP 4 , . . . PP 125 , PP 126 , PP 127 of non-used blocks BK-A in two flash chips CP 0 , CP 1 .
For example, first, the data of logical page LP 0 is written to physical page PP 0 (lower page L) of non-used block BK-A of flash chip CP 0 . Next, the data of logical page LP 1 is written to physical page PP 0 (lower page L) of non-used block BK-A of flash chip CP 1 .
Subsequently, the data of logical pages LP 2 , LP 3 are written to physical pages PP 1 (lower page L) and PP 2 (upper page) of non-used block BK-A of flash chip CP 0 . Next, the data of logical pages LP 4 , LP 5 are written to physical pages PP 1 (lower page L) and PP 2 (upper page) of non-used block BK-A of flash chip CP 1 .
Thereafter, the data of logical pages LP 6 , LP 7 , . . . LP 254 , LP 255 are sequentially written likewise.
Blocks BK-A, to which the data have been written, become blocks being used.
Thereafter, a case that the overwrite is executed to logical pages LP 2 to LP 7 will be examined. In this case, first, non-used blocks BK-B are prepared independently of blocks BK-A being used.
It is assumed here that data are sequentially written to non-used blocks BK-B from physical page PP 0 to physical page PP 127 in units of page by the page shift operation described above.
That is, in the overwrite operation, the data of logical pages LP 2 to LP 7 are written zigzag to physical pages PP 0 , PP 1 of non-used blocks BK-B in two flash chips CP 0 , CP 1 .
Specifically, first, the data of logical page LP 2 is written to physical page PP 0 (lower page L) of non-used block BK-B of flash chip CP 0 . Next, the data of logical page LP 3 is written to physical page PP 0 (lower page L) of non-used block BK-B of flash chip CP 1 .
Subsequently, the data of logical pages LP 4 , LP 5 are written to physical pages PP 1 (lower page L) and PP 2 (upper page U) of non-used block BK-B of flash chip CP 0 . Next, the data of logical pages LP 6 , LP 7 are written to physical pages PP 1 (lower page L) and PP 2 (upper page U) of non-used block BK-B of flash chip CP 1 .
Then, the remaining effective data in blocks BK-A, that is, the data of logical pages LP 0 , LP 1 , LP 8 to LP 255 are moved from, for example, physical pages PP 0 , PP 3 to PP 127 in blocks BK-A to physical pages PP 3 to PP 127 in blocks BK-B at an appropriate time.
FIG. 12 shows an operation waveform of a zigzag interleave.
In the zigzag interleave operation, since data is input zigzag to, for example, two flash chips CP 0 , CP 1 , the data can be written to two flash chips CP 0 , CP 1 substantially in parallel. As a result, an apparent writing speed can be improved.
Further, since the writing is continuously executed using a lower page and an upper page in pairs, the lower page and the upper page are input to the remaining one flash chip or flash chips making use of a Busy period caused by writing the upper page of one flash chip at all times.
For example, the data of logical pages LP 4 , LP 5 are input to flash chip CP 1 while the upper page of logical page LP 3 is written to flash chip CP 0 (Busy period).
Accordingly, since apparent Busy period X, which is caused by writing logical page LP 3 , becomes short, an effect of the high speed writing achieved by the interleave is maximized.
The maximum effect is realized by setting the number of flash chips as targets of a zigzag interleave to an optimum value based on the Busy period during which the upper page is written.
The zigzag interleave operation has been described above. A feature of the zigzag interleave operation is that when an interleave writing is executed to flash chips, the writing is executed using a lower page and an upper page in pairs and the lower page and the upper page are input making use of the Busy period caused by writing the upper page.
Accordingly, it is important not to disturb the write order.
However, there is a mode in which the interleave does not effectively function even by the zigzag interleave operation due to the block format inherent to the flash memory described above.
The mode occurs in overwrite.
(3) Problem of Zigzag Interleave Operation
A problem of the zigzag interleave operation occurs when data is overwritten by the page shift operation.
As described above, the feature of the zigzag interleave operation is to continuously write a lower page and an upper page in pairs when the interleave writing is executed to flash chips.
Accordingly, overwriting data must be written by the page shift operation without disturbing the write order.
In an example of FIG. 11 , overwrite is executed to logical page LP 2 to LP 7 .
The data of logical page LP 2 is written to physical page PP 0 (lower page L) of non-used block BK-B of flash chip CP 0 , and the data of logical page LP 3 is written to physical page PP 0 (lower page L) of non-used block BK-B of flash chip CP 1 .
Further, the data of logical pages LP 4 , LP 5 are written to physical pages PP 1 (lower page L) and PP 2 (upper page U) of non-used block BK-B of flash chip CP 0 , and the data of logical pages LP 6 , LP 7 are written to physical pages PP 1 (lower page L) and PP 2 (upper page U) of non-used block BK-B of flash chip CP 1 .
Thereafter, the remaining effective data in blocks BK-A, that is, the data of logical pages LP 0 , LP 1 , LP 8 to LP 255 are moved from, for example, physical pages PP 0 , PP 3 to PP 127 in blocks BK-A to physical pages PP 3 to PP 127 in blocks BK-B, and blocks BK-A are withdrawn.
However, in this case, the data of logical pages LP 8 , LP 9 to LP 252 , LP 253 , LP 255 stored in block BK-A of flash chip CP 1 must be copied to block BK-B in flash chip CP 0 (Copy 1 ).
Further, the data of logical pages LP 10 , LP 11 to LP 250 , LP 251 , LP 254 stored in block BK-A in flash chip CP 0 must be copied to block BK-B in flash chip CP 1 (Copy 2 ).
In the copy, data moves between two different chips. Thus, to execute the operation, an external memory for temporarily storing the data, for example, memory M is necessary in memory controller 11 as shown in FIG. 13 .
›DETAILED DESCRIPTION · 6 of 13
Accordingly, even if the writing speed is increased by the zigzag interleave operation and the page shift operation, a long time is required to move the data when blocks BK-A are withdrawn after the data are overwritten. As a result of the increase of the withdrawal time, the writing speed cannot be greatly improved.
Note that, in the example, the data of logical page LP 0 is copied from block BK-A to block BK-B in flash chip CP 0 (Copy 3 ), and the data of logical pages LP 255 and LP 1 are copied from block BK-A to block BK-B in flash chip CP 1 (Copy 4 ).
Incidentally, a flash chip (for example, a NAND flash memory) comprises a page buffer capable of temporarily storing data. Data can be moved at a high speed between different blocks in the flash chip making use of the page buffer.
Embodiments explained below propose a technology capable of greatly improving the writing speed by copying data in the same flash chip when blocks are withdrawn after the data is overwritten to the blocks, even if the data is overwritten by the zigzag interleave operation and the page shift operation.
7. Embodiments
Embodiments realize a high speed writing by a page shift operation and an interleave operation in such a manner that when logical pages are initially written and overwritten, temporary memories for temporarily storing the logical pages are used, and a movement of data between different flash chips is prevented when an old block is withdrawn.
A case that the interleave operation is executed by two flash chips and a case that the interleave operation is executed by 4 flash chips will be explained below.
(1) First Embodiment
In a first embodiment, the interleave operation is executed by two flash chips.
FIGS. 14 to 17 show a writing procedure of the first embodiment.
It is assumed here that one block is composed of 128 pages.
In an initial write, temporary memories T are used, and logical pages are written to new blocks BK-A in flash chips CP 0 , CP 1 in the following order using two logical pages in pairs.
As shown in, for example, FIG. 18 , lowermost physical pages PP 0 (lower pages L) of blocks BK-(T) in flash chips CP 0 , CP 1 can be used as temporary memories T. Further, although not related to the example, in at least an 8-level (3 bit) flash memory, physical pages PP 0 , PP 1 , . . . of blocks BK-(T) can be used as temporary memories T.
As a first step, two logical pages LP 0 , LP 1 are continuously written in pairs to temporary memory T in flash chip CP 0 and to physical page PP 0 (lower page L) in block BK-A.
Next, as a second step, two logical pages LP 2 , LP 3 are continuously written in pairs to temporary memory T in flash chip CP 1 and to physical page PP 0 (lower page L) in block BK-A.
At the first and second steps described above, write orders of the logical pages are not from a lower page to an upper page. However, when lowermost physical page PP 0 (lower page L) of block BK-(T) in flash chip CP 0 is used as temporary memory T, the high speed writing is not greatly restricted.
Next, as a third step, two logical pages LP 4 , LP 5 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-A in flash chip CP 0 .
Next, as a fourth step, two logical pages LP 6 , LP 7 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-A in flash chip CP 1 .
Since the write orders of the logical pages are from the lower page to the upper page at the third and fourth steps, the lower page and the upper page are input to one of flash chips CP 0 , CP 1 making use of a Busy period caused by writing the upper page to the other of flash chips CP 0 , CP 1 so that the high speed writing can be realized by the interleave operation.
Thereafter, logical pages LP 8 , LP 9 , LP 10 , LP 11 LP 252 , LP 253 , LP 254 , LP 255 are sequentially written likewise the third and fourth steps.
Finally, as a fifth step, logical page LP 0 written to temporary memory T in flash chip CP 0 is copied to uppermost physical page PP 127 (upper page U) of block BK-A in flash chip CP 0 , and logical page LP 2 written to temporary memory T in flash chip CP 1 is copied to uppermost physical page PP 127 (upper page U) of block BK-A in flash chip CP 1 .
Blocks BK-A in flash chips CP 0 , CP 1 , to which logical data LP 0 to LP 255 have been written, become blocks being used (old blocks).
Thereafter, a case that overwrite is executed will be examined.
Overwrite from Even-Numbered Logical Pages (LP) in Flash Chip CP 0
A writing procedure of the overwrite is as shown in FIG. 14 .
It is assumed that the overwrite is executed to logical pages LP 4 to LP 7 .
Temporary memories T are used also in the overwrite, and logical pages are written to new blocks BK-B in flash chips CP 0 , CP 1 in the following order using two logical pages in pairs.
As a first step, two logical pages LP 4 , LP 5 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 0 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a second step, two logical pages LP 6 , LP 7 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 1 and to physical page PP 0 (lower page L) in block BK-B.
At the first and second steps described above, although a write order of the logical pages is not from the lower page to the upper page, when lowermost physical page PP 0 (lower page L) of blocks BK-(T) in flash chips CP 0 , CP 1 are used as temporary memories T, the high speed writing is not greatly restricted.
Thereafter, logical pages LP 8 , LP 9 to LP 254 , LP 255 and logical pages LP 0 , LP 1 , LP 2 , LP 3 are moved from old blocks BK-A in flash chips CP 0 , CP 1 to new blocks BK-B, respectively (Copy 1 , Copy 2 ), and old blocks BK-A are withdrawn.
First, as a third step, two logical pages LP 8 , LP 9 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 0 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 0 .
›DETAILED DESCRIPTION · 7 of 13
Next, as a fourth step, two logical pages LP 10 , LP 11 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 1 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 1 .
Since the write orders of the logical pages are from the lower page to the upper page at the third and fourth steps, the lower page and the upper page are input to one of flash chips CP 0 , CP 1 making use of a Busy period caused by writing the upper page to the other of flash chips CP 0 , CP 1 so that the high speed writing can be realized by the interleave operation.
Further, since data is moved only in the same flash chip at all times at the third and fourth steps, the high speed writing can be realized by reducing a withdrawal time making use of a high speed moving function of data between blocks mounted on the flash chip.
Thereafter, logical pages LP 12 , LP 13 , LP 14 , LP 15 . . . LP 252 , LP 253 , LP 254 , LP 255 and logical pages LP 0 , LP 1 , LP 2 , LP 3 are sequentially written like the third and fourth steps.
Finally, as a fifth step, logical page LP 4 written to temporary memory T in flash chip CP 0 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 0 , and logical page LP 6 written to temporary memory T in flash chip CP 1 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 1 .
Blocks BK-B in flash chips CP 0 , CP 1 , to which logical data LP 0 to LP 255 have been written, become blocks being used (old blocks).
According to the writing procedure described above, even if a logical page is repeatedly overwritten from any of logical pages by the page shift operation, an order of the logical pages in the same flash chip is not disturbed. In other words, the order of the logical pages only shifts in the same flash chip each time a block changes.
Accordingly, when an old block is withdrawn, since the data of the logical page moves only in the same flash chip, the high speed writing can be realized by reducing a withdrawal time making use of a high speed moving function of data between the blocks mounted on the flash chip.
Overwrite from Even-Numbered Logical Pages (LP) in Flash Chip CP 1
A writing procedure of the overwrite is as shown in FIG. 15 .
It is assumed that the overwrite is executed to logical pages LP 2 to LP 5 .
Temporary memories T are used also in the overwrite, and logical pages are written to new blocks BK-B in flash chips CP 0 , CP 1 in the following order using two logical pages in pairs.
As a first step, two logical pages LP 2 , LP 3 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 1 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a second step, two logical pages LP 4 , LP 5 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 0 and to physical page PP 0 (lower page L) in block BK-B.
At the first and second steps described above, although a write order of the logical pages is not from the lower page to the upper page, when lowermost physical pages PP 0 (lower pages L) of blocks BK-(T) in flash chips CP 0 , CP 1 are used as temporary memories T, the high speed writing is not greatly restricted.
Thereafter, logical pages LP 6 , LP 7 to LP 254 , LP 255 and logical pages LP 0 , LP 1 are moved from old blocks BK-A in flash chips CP 0 , CP 1 to new blocks BK-B, respectively (Copy 1 , Copy 2 ), and old blocks BK-A are withdrawn.
First, as a third step, two logical pages LP 6 , LP 7 of physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-A in flash chip CP 1 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 1 .
Next, as a fourth step, two logical pages LP 8 , LP 9 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 0 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 0 .
Since the write orders of the logical pages are from the lower page to the upper page at the third and fourth steps, the lower page and the upper page are input to one of flash chips CP 0 , CP 1 making use of a Busy period caused by writing the upper page to the other of flash chips CP 0 , CP 1 so that the high speed writing can be realized by the interleave operation.
Further, since data is moved only in the same flash chip at all times at the third and fourth steps, the high speed writing can be realized by reducing a withdrawal time making use of the high speed moving function of data between the blocks mounted on the flash chip.
Thereafter, logical pages LP 10 , LP 11 , LP 12 , LP 13 LP 252 , LP 253 , LP 254 , LP 255 and logical pages LP 0 , LP 1 are sequentially written like the third and fourth steps.
Finally, as a fifth step, logical page LP 2 written to temporary memory T in flash chip CP 1 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 1 , and logical page LP 4 written to temporary memory T in flash chip CP 0 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 0 .
Blocks BK-B in flash chips CP 0 , CP 1 , to which logical data LP 0 to LP 255 have been written, become blocks being used (old blocks).
According to the writing procedure described above, even if a logical page is repeatedly overwritten from any of logical pages by the page shift operation, an order of the logical pages in the same flash chip is not disturbed. In other words, the order of the logical pages only shifts in the same flash chip each time a block changes.
Accordingly, when an old block is withdrawn, since the data of the logical page moves only in the same flash chip, the high speed writing can be realized by reducing a withdrawal time making use of the high speed moving function of data between blocks mounted on the flash chip.
›DETAILED DESCRIPTION · 8 of 13
Overwrite from Odd-Numbered Logical Pages (LP) in Flash Chip CP 0
A writing procedure of the overwrite is as shown in FIG. 16 .
It is assumed that the overwrite is executed to logical pages LP 5 to LP 7 .
In the overwrite, only temporary memory T in flash chip CP 1 is used, and logical pages are written to new blocks BK-B in flash chips CP 0 , CP 1 using two logical pages in pairs in the following order.
As a first step, logical page LP 5 as overwriting data is written to physical page PP 0 (lower page L) in block BK-B in flash chip CP 0 .
Next, as a second step, two logical pages LP 6 , LP 7 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 1 and to physical page PP 0 (lower page L) in block BK-B.
At the second step described above, although a write order of the logical pages is not from the lower page to the upper page, when lowermost physical page PP 0 (lower page L) of block BK-(T) in flash chip CP 1 is used as temporary memory T, the high speed writing is not greatly restricted.
Thereafter, logical pages LP 8 , LP 9 to LP 254 , LP 255 and logical pages LP 0 , LP 1 , LP 2 , LP 3 , LP 4 are moved from old blocks BK-A in flash chips CP 0 , CP 1 to new blocks BK-B, respectively (Copy 1 , Copy 2 ), and old blocks BK-A are withdrawn.
First, as a third step, two logical pages LP 8 , LP 9 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 0 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 0 .
Next, as a fourth step, two logical pages LP 10 , LP 11 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 1 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 1 .
Since the write orders of the logical pages are from the lower page to the upper page at the third and fourth steps, the lower page and the upper page are input to one of flash chips CP 0 , CP 1 making use of a Busy period caused by writing the upper page to the other of flash chips CP 0 , CP 1 so that the high speed writing can be realized by the interleave operation.
Further, since data is moved only in the same flash chip at all times at the third and fourth steps, the high speed writing can be realized by reducing the withdrawal time making use of the high speed moving function of data between the blocks mounted on the flash chip.
Thereafter, logical pages LP 12 , LP 13 , LP 14 , LP 15 . . . LP 252 , LP 253 , LP 254 , LP 255 and logical pages LP 0 , LP 1 , LP 2 , LP 3 , LP 4 are sequentially written like the third and fourth steps.
Finally, as a fifth step, logical page LP 6 written to temporary memory T in flash chip CP 1 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 1 .
Blocks BK-B in flash chips CP 0 , CP 1 , to which logical data LP 0 to LP 255 have been written, become blocks being used (old blocks).
According to the writing procedure described above, even if a logical page is repeatedly overwritten from any of logical pages by the page shift operation, an order of the logical pages in the same flash chip is not disturbed. In other words, the order of the logical pages only shifts in the same flash chip each time a block changes.
Accordingly, when the old blocks are withdrawn, since the data of the logical page moves only in the same flash chip, the high speed writing can be realized by reducing the withdrawal time making use of the high speed moving function of data between the blocks mounted on the flash chip.
Overwrite from Odd-Numbered Logical Pages (LP) in Flash Chip CP 1
A writing procedure of the overwrite is as shown in FIG. 17 .
It is assumed that the overwrite is executed to logical pages LP 3 to LP 5 .
In the overwrite, only temporary memory T in flash chip CP 0 is used, and logical pages are written to new blocks BK-B in flash chips CP 0 , CP 1 using two logical pages in pairs in the following order.
As a first step, logical page LP 3 as overwriting data is written to physical page PP 0 (lower page L) in block BK-B in flash chip CP 1 .
Next, as a second step, two logical pages LP 4 , LP 5 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 0 and to physical page PP 0 (lower page L) in block BK-B.
At the second step described above, although a write order of the logical pages is not from the lower page to the upper page, when lowermost physical page PP 0 (lower page L) of block BK-(T) in flash chip CP 0 is used as temporary memory T, the high speed writing is not greatly restricted.
Thereafter, logical pages LP 6 , LP 7 to LP 254 , LP 255 and logical pages LP 0 , LP 1 , LP 2 are moved from old blocks BK-A in flash chips CP 0 , CP 1 to new blocks BK-B, respectively (Copy 1 , Copy 2 ), and old blocks BK-A are withdrawn.
First, as a third step, two logical pages LP 6 , LP 7 of physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-A in flash chip CP 1 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 1 .
Next, as a fourth step, two logical pages LP 8 , LP 9 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 0 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 0 .
Since the write orders of the logical pages are from the lower page to the upper page at the third and fourth steps, the lower page and the upper page are input to one of flash chips CP 0 , CP 1 making use of a Busy period caused by writing the upper page to the other of flash chips CP 0 , CP 1 so that the high speed writing can be realized by the interleave operation.
Further, since data is moved only in the same flash chip at all times at the third and fourth steps, the high speed writing can be realized by reducing the withdrawal time making use of the high speed moving function of data between the blocks mounted on the flash chip.
›DETAILED DESCRIPTION · 9 of 13
Thereafter, logical pages LP 10 , LP 11 , LP 12 , LP 13 . . . LP 252 , LP 253 , LP 254 , LP 255 and logical pages LP 0 , LP 1 , LP 2 are sequentially written like the third and fourth steps.
Finally, as a fifth step, logical page LP 4 written to temporary memory T in flash chip CP 0 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 0 .
Blocks BK-B in flash chips CP 0 , CP 1 , to which logical data LP 0 to LP 255 have been written, become blocks being used (old blocks).
According to the writing procedure described above, even if a logical page is repeatedly overwritten from any of logical pages by the page shift operation, an order of the logical pages in the same flash chip is not disturbed. In other words, the order of the logical pages only shifts in the same flash chip each time a block changes.
Accordingly, when the old blocks are withdrawn, since the data of the logical page moves only in the same flash chip, the high speed writing can be realized by reducing a withdrawal time making use of a high speed moving function of data between blocks mounted on the flash chip.
(2) Second Embodiment
In a second embodiment, the interleave operation is executed by the four flash chips.
FIGS. 19 to 22 show a writing procedure of the second embodiment.
It is assumed here that one block is composed of 128 pages.
In an initial write, temporary memories T are used, and logical pages are written to new blocks BK-A in flash chips CP 0 , CP 1 , CP 2 , CP 3 in the following order using two logical pages in pairs.
As shown in, for example, FIG. 18 , temporary memories T are lowermost physical pages PP 0 (lower pages L) of blocks BK-(T) in flash chips CP 0 , CP 1 , CP 2 , CP 3 .
As a first step, two logical pages LP 0 , LP 1 are continuously written in pairs to temporary memory T in flash chip CP 0 and to physical page PP 0 (lower page L) in block BK-A.
Next, as a second step, two logical pages LP 2 , LP 3 are continuously written in pairs to temporary memory T in flash chip CP 1 and to the physical page PP 0 (lower page L) in block BK-A.
Next, as a third step, two logical pages LP 4 , LP 5 are continuously written in pairs to temporary memory T in flash chip CP 2 and to physical page PP 0 (lower page L) in block BK-A.
Next, as a fourth step, two logical pages LP 6 , LP 7 are continuously written in pairs to temporary memory T in flash chip CP 3 and to physical page PP 0 (lower page L) in block BK-A.
Next, as a fifth step, two logical pages LP 8 , LP 9 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-A in flash chip CP 0 .
Next, as a sixth step, two logical pages LP 10 , LP 11 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-A in flash chip CP 1 .
Next, as a seventh step, two logical pages LP 12 , LP 13 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-A in flash chip CP 2 .
Next, as an eighth step, two logical pages LP 14 , LP 15 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-A in flash chip CP 3 .
Thereafter, logical pages LP 16 , LP 17 . . . LP 510 , LP 511 are sequentially written like the fifth to eighth steps.
Finally, as a ninth step, logical page LP 0 written to temporary memory T in flash chip CP 0 is copied to uppermost physical page PP 127 (upper page U) of block BK-A in flash chip CP 0 , and logical page LP 2 written to temporary memory T in flash chip CP 1 is copied to uppermost physical page PP 127 (upper page U) of block BK-A in flash chip CP 1 .
Further, logical page LP 4 written to temporary memory T in flash chip CP 2 is copied to uppermost physical page PP 127 (upper page U) of block BK-A in flash chip CP 2 , and logical page LP 6 written to temporary memory T in flash chip CP 3 is copied to uppermost physical page PP 127 (upper page U) of block BK-A in flash chip CP 3 .
Blocks BK-A in flash chips CP 0 , CP 1 , CP 2 , CP 3 , to which logical data LP 0 to LP 511 have been written, become blocks being used (old blocks).
Thereafter, a case that overwrite is executed will be examined.
Overwrite from Even-Numbered Logical Pages (LP) in Flash Chip CP 0
A writing procedure of the overwrite is as shown in FIG. 19 .
It is assumed that the overwrite is executed to logical pages LP 8 to LP 15 .
The temporary memories T are used also in the overwrite, and logical pages are written to new blocks BK-B in flash chips CP 0 , CP 1 , CP 2 , CP 3 in the following order using two logical pages in pairs.
As a first step, two logical pages LP 8 , LP 9 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 0 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a second step, two logical pages LP 10 , LP 11 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 1 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a third step, two logical pages LP 12 , LP 13 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 2 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a fourth step, two logical pages LP 14 , LP 15 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 3 and to physical page PP 0 (lower page L) in block BK-B.
Thereafter, logical pages LP 16 , LP 17 to LP 510 , LP 511 and logical pages LP 0 , LP 1 to LP 6 , LP 7 are moved from old blocks BK-A in flash chips CP 0 , CP 1 , CP 2 , CP 3 to new blocks BK-B, respectively, and old blocks BK-A are withdrawn.
First, as a fifth step, two logical pages LP 16 , LP 17 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 0 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 0 .
›DETAILED DESCRIPTION · 10 of 13
Next, as a sixth step, two logical pages LP 18 , LP 19 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 1 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 1 .
Next, as a seventh step, two logical pages LP 20 , LP 21 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 2 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 2 .
Next, as an eighth step, two logical pages LP 22 , LP 23 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 3 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 3 .
Thereafter, logical pages LP 24 , LP 25 , . . . LP 510 , LP 511 and logical pages LP 0 , LP 1 to LP 6 , LP 7 are sequentially written like the fifth to eighth steps.
Finally, as a ninth step, logical page LP 8 written to temporary memory T in flash chip CP 0 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 0 , and logical page LP 10 written to temporary memory T in flash chip CP 1 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 1 .
Further, logical page LP 12 written to temporary memory T in flash chip CP 2 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 2 , and logical page LP 14 written to temporary memory T in flash chip CP 3 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 3 .
Blocks BK-B in flash chips CP 0 , CP 1 , CP 2 , CP 3 , to which logical data LP 0 to LP 511 have been written, become blocks being used (old blocks).
According to the writing procedure described above, even if a logical page is repeatedly overwritten from any of logical pages by the page shift operation, an order of the logical pages in the same flash chip is not disturbed. In other words, the order of the logical pages only shifts in the same flash chip each time a block changes.
Accordingly, when the old block is withdrawn, since the data of the logical page moves only in the same flash chip, the high speed writing can be realized by reducing a withdrawal time making use of a high speed moving function of data between blocks mounted on the flash chip.
Overwrite from Even-Numbered Logical Pages (LP) in Flash Chip CP 2
A writing procedure of the overwrite is as shown in FIG. 20 .
It is assumed that the overwrite is executed to logical pages LP 12 to LP 19 .
Temporary memories T are used also in the overwrite, and logical pages are written to new blocks BK-B in flash chips CP 0 , CP 1 , CP 3 , CP 4 in the following order using two logical pages in pairs.
As a first step, two logical pages LP 12 , LP 13 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 2 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a second step, two logical pages LP 14 , LP 15 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 3 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a third step, two logical pages LP 16 , LP 17 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 0 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a fourth step, two logical pages LP 18 , LP 19 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 1 and to physical page PP 0 (lower page L) in block BK-B.
Thereafter, logical pages LP 20 , LP 21 to LP 510 , LP 511 and logical pages LP 0 , LP 1 to LP 10 , LP 11 are moved from old blocks BK-A in flash chips CP 0 , CP 1 , CP 2 , CP 3 to new blocks BK-B, respectively, and old blocks BK-A are withdrawn.
First, as a fifth step, two logical pages LP 20 , LP 21 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 2 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 2 .
Next, as a sixth step, two logical pages LP 22 , LP 23 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 3 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 3 .
Next, as a seventh step, two logical pages LP 24 , LP 25 of physical page PP 5 (lower page L) and physical page PP 6 (upper page U) in block BK-A in flash chip CP 0 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 0 .
Next, as an eighth step, two logical pages LP 26 , LP 27 of physical page PP 5 (lower page L) and physical page PP 6 (upper page U) in block BK-A in flash chip CP 1 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 1 .
Thereafter, logical pages LP 28 , LP 29 . . . LP 510 , LP 511 and logical pages LP 0 , LP 1 to LP 10 , LP 11 are sequentially written like the fifth to eighth steps.
Finally, as a ninth step, logical page LP 12 written to temporary memory T in flash chip CP 2 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 2 , and logical page LP 14 written to temporary memory T in flash chip CP 3 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 3 .
Further, logical page LP 16 written to temporary memory T in flash chip CP 0 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 0 , and logical page LP 18 written to temporary memory T in flash chip CP 1 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 1 .
›DETAILED DESCRIPTION · 11 of 13
Blocks BK-B in flash chips CP 0 , CP 1 , CP 2 , CP 3 , to which logical data LP 0 to LP 511 have been written, become blocks being used (old blocks).
According to the writing procedure described above, even if a logical page is repeatedly overwritten from any of logical pages by the page shift operation, an order of the logical pages in the same flash chip is not disturbed. In other words, the order of the logical pages only shifts in the same flash chip each time a block changes.
Accordingly, when an old block is withdrawn, since the data of the logical page moves only in the same flash chip, the high speed writing can be realized by reducing a withdrawal time making use of a high speed moving function of data between blocks mounted on the flash chip.
Overwrite from Odd-Numbered Logical Pages (LP) in Flash Chip CP 0
A writing procedure of the overwrite is as shown in FIG. 21 .
It is assumed that the overwrite is executed to logical pages LP 9 to LP 15 .
In the overwrite, temporary memories T in flash chip CP 1 , CP 2 , CP 3 are used, and logical pages are written to new blocks BK-B in flash chips CP 0 , CP 1 , CP 2 , CP 3 using two logical pages in pairs in the following order.
As a first step, logical page LP 9 as overwriting data is written to physical page PP 0 (lower page L) in block BK-B in flash chip CP 0 .
Next, as a second step, two logical pages LP 10 , LP 11 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 1 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a third step, two logical pages LP 12 , LP 13 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 2 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a fourth step, two logical pages LP 14 , LP 15 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 3 and to physical page PP 0 (lower page L) in block BK-B.
Thereafter, logical pages LP 16 , LP 17 to LP 510 , LP 511 and logical pages LP 0 , LP 1 to LP 6 , LP 7 are moved from old blocks BK-A in flash chips CP 0 , CP 1 , CP 2 , CP 3 to new blocks BK-B, and old blocks BK-A are withdrawn.
First, as a fifth step, two logical pages LP 16 , LP 17 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 0 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 0 .
Next, as a sixth step, two logical pages LP 18 , LP 19 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 1 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 1 .
Next, as a seventh step, two logical pages LP 20 , LP 21 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 2 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 2 .
Next, as an eighth step, two logical pages LP 22 , LP 23 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 3 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 3 .
Thereafter, logical pages LP 24 , LP 25 . . . LP 510 , LP 511 and logical pages LP 0 , LP 1 to LP 6 , LP 7 , LP 8 are sequentially written like the fifth to eighth steps.
Finally, as a ninth step, logical page LP 10 written to temporary memory T in flash chip CP 1 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 1 .
Further, logical page LP 12 written to temporary memory T in flash chip CP 2 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 2 , and logical page LP 14 written to temporary memory T in flash chip CP 3 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 3 .
Blocks BK-B in flash chips CP 0 , CP 1 , CP 2 , CP 3 , to which logical data LP 0 to LP 511 have been written, become blocks being used (old blocks).
According to the writing procedure described above, even if a logical page is repeatedly overwritten from any of logical pages by the page shift operation, an order of the logical pages in the same flash chip is not disturbed. In other words, the order of the logical pages only shifts in the same flash chip each time a block changes.
Accordingly, when an old block is withdrawn, since the data of the logical page moves only in the same flash chip, the high speed writing can be realized by reducing a withdrawal time making use of a high speed moving function of data between blocks mounted on the flash chip.
Overwrite from Odd-Numbered Logical Pages (LP) in Flash Chip CP 2
A writing procedure of the overwrite is as shown in FIG. 22 .
It is assumed that the overwrite is executed to logical pages LP 13 to LP 19 .
In the overwrite, temporary memories T in flash chips CP 0 , CP 1 , CP 3 are used, and logical pages are written to new blocks BK-B in flash chips CP 0 , CP 1 , CP 2 , CP 3 using two logical pages as pairs in the following order.
As a first step, logical page LP 13 as overwriting data is written to physical page PP 0 (lower page L) in block BK-B in flash chip CP 2 .
Next, as a second step, two logical pages LP 14 , LP 15 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 3 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a third step, two logical pages LP 16 , LP 17 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 0 and to physical page PP 0 (lower page L) in block BK-B.
Next, as a fourth step, two logical pages LP 18 , LP 19 as overwriting data are continuously written in pairs to temporary memory T in flash chip CP 1 and to physical page PP 0 (lower page L) in block BK-B.
›DETAILED DESCRIPTION · 12 of 13
Thereafter, logical pages LP 20 , LP 21 to LP 510 , LP 511 and logical pages LP 0 , LP 1 to LP 10 , LP 11 , L 12 are moved from old blocks BK-A in flash chips CP 0 , CP 1 , CP 2 , CP 3 to new blocks BK-B, and old blocks BK-A are withdrawn.
First, as a fifth step, two logical pages LP 20 , LP 21 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 2 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 2 .
Next, as a sixth step, two logical pages LP 22 , LP 23 of physical page PP 3 (lower page L) and physical page PP 4 (upper page U) in block BK-A in flash chip CP 3 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 3 .
Next, as a seventh step, two logical pages LP 24 , LP 25 of physical page PP 5 (lower page L) and physical page PP 6 (upper page U) in block BK-A in flash chip CP 0 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 0 .
Next, as an eighth step, two logical pages LP 26 , LP 27 of physical page PP 5 (lower page L) and physical page PP 6 (upper page U) in block BK-A in flash chip CP 1 are continuously written in pairs to physical page PP 1 (lower page L) and physical page PP 2 (upper page U) in block BK-B in flash chip CP 1 .
Thereafter, logical pages LP 28 , LP 29 . . . LP 510 , LP 511 and logical pages LP 0 , LP 1 to LP 10 , LP 11 , LP 12 are sequentially written like the fifth to eighth steps.
Finally, as a ninth step, logical page LP 14 written to temporary memory T in flash chip CP 3 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 3 .
Further, logical page LP 16 written to temporary memory T in flash chip CP 0 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 0 , and logical page LP 18 written to temporary memory T in flash chip CP 1 is copied to uppermost physical page PP 127 (upper page U) of block BK-B in flash chip CP 1 .
Blocks BK-B in flash chips CP 0 , CP 1 , CP 2 , CP 3 , to which logical data LP 0 to LP 511 have been written, become blocks being used (old blocks).
According to the writing procedure described above, even if a logical page is repeatedly overwritten from any of logical pages by the page shift operation, an order of the logical pages in the same flash chip is not disturbed. In other words, the order of the logical pages only shifts in the same flash chip each time a block changes.
Accordingly, when an old block is withdrawn, since the data of the logical page moves only in the same flash chip, the high speed writing can be realized by reducing a withdrawal time making use of a high speed moving function of data between blocks mounted on the flash chip.
8. Application Examples
A NAND flash memory, for example, is available as application examples.
An example of a memory system using the NAND flash memory of Embodiments will be explained below.
In the application examples, it is assumed that the NAND flash memory is a packaged product.
(1) Interleave Operation in One NAND Flash Memory
FIG. 23 shows an example of the NAND flash memory.
NAND flash memory 21 comprises one memory controller 11 and eight NAND flash chips CP 0 to CP 7 .
An interleave operation of Embodiments is controlled by memory controller 11 .
Memory controller (controller chip) 11 is mounted on one surface of package board 10 . Eight NAND flash chips CP 0 to CP 7 are mounted on memory controller 11 .
Memory controller 11 and eight NAND flash chips CP 0 to CP 7 are electrically connected to each other by, for example, bonding wires, TSVs (through-silicon-vias), and the like and covered with resin 12 .
Bumps 13 as external terminals are mounted on the other surface of package board 10 .
FIG. 24 shows an example of memory controller 11 .
Memory controller 11 comprises CPU (Central Processing Unit) 31 , HOST interface (HOST-I/F) 32 , RAM (Random Access Memory) 33 , ECC interface (ECC-I/F) 34 , and NAND interface 35 .
These elements are connected to each other through bus 36 .
HOST interface 32 is composed of, for example, a USB (Universal Serial Bus) interface and controls data transmission and reception to and from host 14 based on the USB Standard as a data transfer standard.
CPU 31 controls the memory system using, for example, firmware.
Further, CPU 31 receives write/read/erase commands from host 14 and controls write/read/erase operations to 8 NAND flash chips CP 0 to CP 7 .
RAM 33 is used as a work area of CPU 31 and temporarily stores data and a conversion table.
ECC interface 34 executes an error correction process to data from, for example, bus 36 . NAND interface 35 controls data transmission and reception to and from 8 NAND flash chips CP 0 to CP 7 .
(2) Interleave Operation Between NAND Flash Memories
FIG. 25 shows an example of memory controller 11 .
In the system, an inter-channel interleave is executed. One channel corresponds to one NAND flash memory. An interleave operation of Embodiments is executed between channels and controlled by memory controller 11 .
Memory controller 11 comprises CPU 31 , HOST interface (HOST-I/F) 32 , RAM 33 , ECC interface (ECC-I/F) 34 , and NAND interface 35 .
These elements are connected to each other through bus 36 .
HOST interface 32 is composed of, for example, a USB interface and controls data transmission and reception to and from host 14 based on the USB Standard as a data transfer standard.
CPU 31 controls the memory system using, for example, firmware.
Further, CPU 31 receives write/read/erase commands from host 14 and controls write/read/erase operations to NAND flash memories (two NAND flash memories in the example) 21 - 1 , 21 - 2 .
Each of NAND flash memories 21 - 1 , 21 - 2 is composed of one product shown in, for example, FIG. 23 .
RAM 33 is used as a work area of CPU 31 and temporarily stores data and a conversion table.
›DETAILED DESCRIPTION · 13 of 13
ECC interface 34 executes an error correction process to data from, for example, bus 36 . NAND interface 35 controls data transmission and reception to and from 8 NAND flash chips CP 0 to CP 7 .
9. Conclusion
According to the embodiments described above, a high speed writing to a flash memory can be realized by the interleave operation.
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 methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems 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 as granted
6 claimsLog in to read the claims of this application.
Log in to unlockClassifications
6 codes- G06F5/01
- G06F12/04
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock