Semiconductor memory device and method for writing data into flash memory
First Claim
1. A semiconductor memory apparatus comprising:
- (A) a flash memory device comprising more than one block, each of which includes more than one page, and a page-offset storage area in which a page offset of each of said blocks is stored, and configured to write data into a blank block from its top page in sequence;
(B) a page buffer in which the substantially same amount of data as the data storage capacity of one of said pages is temporarily stored;
(C) an address conversion section for receiving from a host a logical address that specifies a write target page, and converting the logical address into a pair of a physical address of a source block to which said write target page belongs, and a logical page number of said write target page; and
(D) a memory control section for(a) reading the physical address of said source block and the logical page number of said write target page,(b) selecting the blank block as a destination block,(c) determining a page offset of said destination block based on the logical page number of said write target page, and writing the page offset into said page-offset storage area as the page offset of said destination block,(d) reading a page offset of said source block from said page-offset storage area,(e) obtaining a physical page number of said write target page based on the page offset of said source block and the logical page number of said write target page,(f) writing a data object to be written, which is transferred from said host to said page buffer, into said destination block from its top page in sequence,(g) obtaining a physical page number of a transfer start page of said source block based on the number of pages of said data objects and the physical page number of said write target page, and(h) transferring data stored in said source block, from said transfer start page in a sequential and cyclic manner, via said page buffer, to a page next to or after a page area of said destination block into which said data object is written.
2 Assignments
0 Petitions
Accused Products
Abstract
A source block (B0) and the logical page number (“8”) of a write target page are identified from the logical address of the write target page. Data objects (DN8, DN9, . . . , DN12) to be written, which a host stores in a page buffer (2), are written into the data areas (DA) of the pages (Q0, Q1, . . . , Q4) of a destination block (Bn), starting from the top page (Q0) in sequence. The logical page number (“8”) of the write target page is written into the redundant area (RA) of the top page (Q0). The physical page number (“6=8−2”) of the write target page is identified, based on the logical page number (“8”) of the write target page and the page offset (“2”) of the source block (B0). When notified by the host of the end of the sending of the data objects (DN8, . . . , DN12), the data items (D13, . . . , D31, D0, D1, . . . , D7) in the source block (B0) are transferred to the pages (Q5, Q6, . . . , Q31) in the destination block (Bn) via the page buffer (2) sequentially and cyclically, starting from the page (P11) situated cyclically behind the write target page (P6) by the number (“5”) of pages of the data objects (DN8, . . . , DN12).
-
Citations
8 Claims
-
1. A semiconductor memory apparatus comprising:
-
(A) a flash memory device comprising more than one block, each of which includes more than one page, and a page-offset storage area in which a page offset of each of said blocks is stored, and configured to write data into a blank block from its top page in sequence; (B) a page buffer in which the substantially same amount of data as the data storage capacity of one of said pages is temporarily stored; (C) an address conversion section for receiving from a host a logical address that specifies a write target page, and converting the logical address into a pair of a physical address of a source block to which said write target page belongs, and a logical page number of said write target page; and (D) a memory control section for (a) reading the physical address of said source block and the logical page number of said write target page, (b) selecting the blank block as a destination block, (c) determining a page offset of said destination block based on the logical page number of said write target page, and writing the page offset into said page-offset storage area as the page offset of said destination block, (d) reading a page offset of said source block from said page-offset storage area, (e) obtaining a physical page number of said write target page based on the page offset of said source block and the logical page number of said write target page, (f) writing a data object to be written, which is transferred from said host to said page buffer, into said destination block from its top page in sequence, (g) obtaining a physical page number of a transfer start page of said source block based on the number of pages of said data objects and the physical page number of said write target page, and (h) transferring data stored in said source block, from said transfer start page in a sequential and cyclic manner, via said page buffer, to a page next to or after a page area of said destination block into which said data object is written. - View Dependent Claims (2)
-
-
3. A semiconductor memory apparatus comprising:
-
(A) a flash memory device comprising more than one block, each of which includes more than one page, and configured to write data into a blank block from its top page in sequence; (B) a page-offset storage section for storing a page offset of each of said blocks; (C) a page buffer in which the substantially same amount of data as the data storage capacity of one of said pages is temporarily stored; (D) an address conversion section for receiving from a host a logical address that specifies a write target page, and converting the logical address into a pair of a physical address of a source block and a logical page number of said write target page; and (E) a memory control section for (a) reading the physical address of said source block and the logical page number of said write target page, (b) selecting the blank block as a destination block, (c) determining a page offset of said destination block based on the logical page number of said write target page, and writing the page offset into said page-offset storage section as the page offset of said destination block, (d) reading a page offset of said source block from said page-offset storage section, (e) obtaining a physical page number of said write target page based on the page offset of said source block and the logical page number of said write target page, (f) writing a data object to be written, which is transferred from said host to said page buffer, into said destination block from its top page in sequence, (g) obtaining a physical page number of a transfer start page of said source block based on the number of pages of said data objects and the physical page number of said write target page, and (h) transferring data stored in said source block, from said transfer start page in a sequential and cyclic manner, via said page buffer, to a page next to or after a page area of said destination block into which said data object is written. - View Dependent Claims (4)
-
-
5. A method of writing data into a flash memory device, which is the method of writing data into a flash memory device comprising more than one block, each of which includes more than one page, and writing data into a blank block from its top page in sequence;
-
the method comprising the steps of; (A) receiving from a host a logical address specifying a write target page; (B) converting said logical address into a pair of a physical address of a source block and a logical page number of said write target page; (C) selecting the blank block as a destination block; (D) determining a page offset of said destination block based on the logical page number of said write target page, and writing the page offset into a page-offset storage area in said flash memory device as a page offset of said destination block; (E) reading a page offset of said source block from said page-offset storage area; (F) determining a physical page number of said write target page based on the page offset of said source block and the logical page number of said write target page; (G) writing a data object to be written, which is transferred from said host to a page buffer, into said destination block from its top page in sequence; and (H) obtaining a physical page number of a transfer start page of said source block based on the number of pages of said data objects and the physical page number of said write target page, and transferring data stored in said source block, from said transfer start page in a sequential and cyclic manner, via said page buffer, to a page next to or after a page area of said destination block into which said data object is written. - View Dependent Claims (6)
-
-
7. A method of writing data into a flash memory device, which is the method of writing data into a flash memory device comprising more than one block, each of which includes more than one page, and writing data into a blank block from its top page in sequence;
-
the method comprising the steps of; (A) receiving from a host a logical address specifying a write target page; (B) converting said logical address into a pair of a physical address of a source block and a logical page number of said write target page; (C) selecting the blank block as a destination block; (D) determining a page offset of said destination block based on the logical page number of said write target page, and writing the page offset into a page-offset storage section as a page offset of said destination block; (E) reading a page offset of said source block from said page-offset storage section; (F) determining a physical page number of said write target page based on the page offset of said source block and the logical page number of said write target page; (G) writing a data object to be written, which is transferred from said host to a page buffer, into said destination block from its top page in sequence; and (H) obtaining a physical page number of a transfer start page of said source block based on the number of pages of said data objects and the physical page number of said write target page, and transferring data stored in said source block, from said transfer start page in a sequential and cyclic manner, via said page buffer, to a page next to or after a page area of said destination block into which said data object is written. - View Dependent Claims (8)
-
Specification