USRE44052EExpiredUtilityPatentIndex 71
Flash memory management method
Est. expiryJun 4, 2021(expired)· nominal 20-yr term from priority
Inventors:KIM BUM-SOOLEE GUI-YONGKIM JONG MININ JI-HYUNKIM JESUNGNOH SAM HYUKMIN SANG-IYULLEE DONG HEEJEONG JAE-YONGCHO YOO-KUNCHOI JONG MOO
G06F 3/0679G06F 12/00G06F 2212/7203G06F 13/4239G06F 12/0246G06F 2212/2022
71
PatentIndex Score
4
Cited by
41
References
27
Claims
Abstract
A flash memory management method is provided. According to the method, when a request to write the predetermined data to a page to which data has been written is made, the predetermined data is written to a log block corresponding to a data block containing the page. When a request to write the predetermined data to the page again is received, the predetermined data is written to an empty free page in the log block. Even if the same page is requested to be continuously written to, the management method allows this to be processed in one log block, thereby improving the effectiveness in the use of flash memory resources.
Claims
exact text as granted — not AI-modified1. A method for writing predetermined data to a flash memory, the method comprising the steps of:
(a) receiving a request to write the predetermined data to a page to which data has been written; (b) writing the predetermined data to a log block corresponding to a data block containing the page; (c) receiving a request to write the predetermined data to the page again; and (d) writing the predetermined data to an empty free page in the log block.
2. The method of claim 1 , wherein the step (b) comprises the step (b11) of writing the predetermined data to an empty free page.
3. The method of claim 1 A method for writing predetermined data to a flash memory, the method comprising the steps of:
(a) receiving a request to write the predetermined data to a page to which data has been written;
(b) writing the predetermined data to a log block corresponding to a data block containing the page;
(c) receiving a request to write the predetermined data to the page again; and
(d) writing the predetermined data to an empty free page in the log block,
wherein the step (b) comprises the steps of:
(b21) allocating the log block; and
(b22) writing the predetermined data to an empty page at the same position as the requested page in the data block.
4. The method of claim 1 , wherein the data block is configured to store data and the log block is configured to store data which has been modified.
5. A method for writing predetermined data to a flash memory, the method comprising the steps of:
(a) receiving a request to write the predetermined data to a page; (b) allocating a log block 1 - 1 corresponding to a first data block containing the page; (c) writing the predetermined data to an empty page in the log block 1 - 1 ; (d) receiving a request to write the predetermined data to the page again; and (e) writing the predetermined data to an empty free page in the log block 1 - 1 .
6. The method of claim 5 A method for writing predetermined data to a flash memory, the method comprising the steps of:
(a) receiving a request to write the predetermined data to a page;
(b) allocating a log block 1-1 corresponding to a first data block containing the page;
(c) writing the predetermined data to an empty page in the log block 1-1;
(d) receiving a request to write the predetermined data to the page again; and
(e) writing the predetermined data to an empty free page in the log block 1-1,
wherein the step (b) comprises the steps of:
(b1) performing a block merge to create a third data block based on a second data block and a second log block corresponding to the second data block; and
(b2) allocating a free block obtained by performing an erase operation on the second data block as the log block 1 - 1 .
7. The method of claim 6 , wherein the step (b1) is performed when a free block to be allocated as the log block 1 - 1 does not exist.
8. The method of claim 6 , wherein the step (b1) is performed when all pages of the existing log block corresponding to the first data block have been used.
9. The method of claim 6 , wherein the step (b1) comprises the step of (b11) performing a switch merge to change the second log block to the third data block when pages of the second log block are arranged in the same order that pages of the second data block are arranged, and the pages of the second log block correspond one-to-one to the pages of the second data block.
10. The method of claim 6 , wherein the step (b1) comprises the step of (b12) performing a copy merge to copy corresponding pages of the second data block to free pages in the second log block and create the third data block when the pages in the second log block are requested to be written only once.
11. The method of claim 6 , wherein the step (b1) comprises the step of (13) performing a simple merge to copy the latest pages in the second log block to free pages of a free block to which data has not been written and copy a corresponding page of the second data block to the remaining free pages thereof, thereby creating the third data block.
12. The method of claim 5 , wherein thestep (e) comprises the steps of:
(e1) allocating a new log block 1 - 2 if a free page does not exist in the log block 1 - 1 and (e2) writing the predetermined data to a free page in the log block 1 - 2 .
13. The method of claim 12 A method for writing predetermined data to a flash memory, the method comprising the steps of:
(a) receiving a request to write the predetermined data to a page;
(b) allocating a log block 1-1 corresponding to a first data block containing the page;
(c) writing the predetermined data to an empty page in the log block 1-1;
(d) receiving a request to write the predetermined data to the page again; and
(e) writing the predetermined data to an empty free page in the log block 1-1,
wherein the step (e) comprises the steps of:
(e1) allocating a new log block 1-2 if a free page does not exist in the log block 1-1, and
(e2) writing the predetermined data to a free page in the log block 1-2,
wherein the step (e1) comprises the steps of:
(e11) performing a switch merge to change the log block to a second data block when pages of the log block 1 - 1 are arranged in the order in which 5 pages of the first data block are arranged and the pages of the log block 1 - 1 correspond one-to-one to the pages of the first data block, and
(e12) allocating a free block obtained by performing an erase operation on the first data block as the log block 1 - 2 .
14. The method of claim 12 , wherein the step (e1) comprises the steps of: (e21) performing a copy merge to copy corresponding pages in the first data block to a free page in the log block 1 - 1 when pages in the log block 1 - 1 are requested to be written only once; and
(e22) allocating a free block obtained by performing an erase operation on the first data block as the log block 1 - 2 .
15. The method of claim 12 , A method for writing predetermined data to a flash memory, the method comprising the steps of:
(a) receiving a request to write the predetermined data to a page;
(b) allocating a log block 1-1 corresponding to a first data block containing the page;
(c) writing the predetermined data to an empty page in the log block 1-1;
(d) receiving a request to write the predetermined data to the page again; and
(e) writing the predetermined data to an empty free page in the log block 1-1,
wherein the step (e) comprises the steps of:
(e1) allocating a new log block 1-2 if a free page does not exist in the log block 1-1, and
(e2) writing the predetermined data to a free page in the log block 1-2, and
wherein the step (e1) comprises the steps of:
(e31) performing a simple merge to copy the latest pages in the log block 1 - 1 to free pages of a free block and copy a corresponding page of the first data block to the remaining free pages thereof, thereby creating a second data block; and
(e32) allocating a free block obtained by performing an erase operation on the first data block or the log block 1 - 1 as the log block 1 - 2 .
16. The method of claim 12 , A method for writing predetermined data to a flash memory, the method comprising the steps of:
(a) receiving a request to write the predetermined data to a page;
(b) allocating a log block 1-1 corresponding to a first data block containing the page;
(c) writing the predetermined data to an empty page in the log block 1-1;
(d) receiving a request to write the predetermined data to the page again; and
(e) writing the predetermined data to an empty free page in the log block 1-1,
wherein the step (e) comprises the steps of:
(e1) allocating a new log block 1-2 if a free page does not exist in the log block 1-1, and
(e2) writing the predetermined data to a free page in the log block 1-2, and
wherein the step (e2) comprises the step of (e21) writing the predetermined data to a free page at the same position as the requested page in the data block.
17. The method of claim 5 , wherein the first data block is configured to store data and the log block 1 - 1 is configured to store data which has been modified.
18. A method for writing predetermined data to a flash memory comprising a plurality of data blocks and a plurality of log blocks, the method comprising:
(a) receiving a request to write the predetermined data to a page of a first data block, among the data blocks, to which data has been written; (b) writing the predetermined data to a first log block, among the log blocks, corresponding to the first data block containing the page; (c) receiving a request to write the predetermined data which has been modified, to the page again; and (d) writing the predetermined data, which has been modified, to an empty page in the first log block, wherein at least one of the steps (b) and (d) comprises writing the predetermined data to an empty page of the first log block, and wherein the predetermined data is written to an empty page at the same position as the requested page in the first data block.
19. A method for writing predetermined data to a flash memory comprising a plurality of data blocks and a plurality of log blocks, the method comprising:
(a) receiving a request to write the predetermined data to a page of a first data block, among the data blocks, to which data has been written; (b) writing the predetermined data to a first log block, among the log blocks, corresponding to the first data block containing the page; (c) receiving a request to write the predetermined data which has been modified, to the page again; and (d) writing the predetermined data, which has been modified, to an empty page in the first log block, wherein the log block, in at least one of the steps (b) and (d), is obtained by allocating a free block as the first log block, and wherein the first log block in the writing step (d) can be the same log block used in the step (b) or a newly allocated log block, and wherein the allocating the free block comprises:
performing a block merge of a pre-existing data block and a pre-existing log block, corresponding to the pre-existing data block, to create a new data block;
performing an erase operation of the pre-existing data block; and
allocating the erased, pre-existing block as the free block.
20. The method of claim 19, wherein the block merge is performed when a free block to be allocated as the first log block does not exist or when all pages of a pre-existing log block corresponding to the first data block have been used.
21. The method of claim 19, wherein the block merge is a switch merge comprising:
changing the pre-existing log block to a new data block, when pages of the pre-existing log block are arranged in the same order as and correspond one-to-one with pages of the preexisting data block.
22. The method of claim 21, wherein the pre-existing log block is the first log block and the pre-existing data block is the first data block.
23. The method of claim 19, wherein the block merge is a copy merge comprising:
copying corresponding pages of the pre-existing data block to empty pages in the corresponding pre-existing log block to create the new data block, when the pages in the pre-existing log block are requested to be written only once.
24. The method of claim 23, wherein the pre-existing data block is the first data block and the pre-existing log block is the first log block.
25. The method of claim 19, wherein the block merge is a simple merge comprising:
copying the latest pages in the pre-existing log block to empty pages of a free block, to which data has not been written, and copying corresponding pages of the pre-existing data block to the remaining empty pages thereof thereby creating the new data block.
26. The method of claim 25, wherein the performing an erase operation step is performed on either the pre-existing log block or the pre-existing data block, and wherein the allocating the free block step is performed all either the pre-existing log block or the pre-existing data block.
27. The method of claim 25, wherein the pre-existing data block is the first data block and the pre-existing log block is the first log block.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.