When system data is written to a flash memory, first and second ECCs are generated in correspondence with the system data and its copied data. The system data and the copied data are written to the same page. The first and second ECCs are stored in the redundant area of the page. In this data storage format, even when an uncorrectable bit error occurs in one of the system data and the copied data, correct data can be read out using the other data in which the error does not occur. Since the system data and the copied data are stored in the same page, they can be read out by one operation and thus the operation performance does not deteriorate.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A data storage device for storing data, comprising: a nonvolatile semiconductor memory, including a plurality of pages each having a data area and a redundant area, for allowing a data read/write operation to be performed in units of page; means for generating a first error correcting code and a second error correcting code from first data and second data, respectively, the first data being to be written and the second data being a copy of the first data; a write control unit configured to write the first data and the second data to the data area in one page of the nonvolatile semiconductor memory and write the first and second error correcting codes, which are generated by the error correcting code generating means, to the redundant area of the one page to which the first data and the second data are written; a read control unit configured to read the first and second data and the first and second error correcting codes from the one page of the nonvolatile semiconductor memory in accordance with a data read request from a host system; and means for detecting an error in the read first and second data using the read first and second error correcting codes, and selecting one of the read first data and the read second data as data to be supplied to the host system in accordance with a result of error detection.
2. The data storage device according to claim 1 , wherein the error detecting means includes: means for generating third and fourth error correcting codes from the read first and second data, respectively; and means for comparing the generated third and fourth error correcting codes with the read first and second error correcting codes, and detecting an error in each of the read first and second data based on a comparison result.
3. A memory card comprising: a card-like housing; and the data storage device according to claim 1 , provided in the housing.
4. The data storage device according to claim 1 , wherein the first data to be written is system data necessary for securing data stored in the nonvolatile semiconductor memory, and the first data has a data size half or smaller than that of the data area of the page.
5. A data storage device for storing digital contents and system data necessary for securing the digital contents, comprising: a nonvolatile semiconductor memory, including a plurality of pages each having a data area and a redundant area, for allowing a data read/write operation to be performed in units of page; means for generating a first error correcting code and a second error correcting code from the system data to be written and copied data thereof, respectively; write control unit configured to write the system data and the copied data to the data area in one page of the nonvolatile semiconductor memory and write the first and second error correcting codes, which are generated by the error correcting code generating means, to the redundant area of the ore page to which the system data and the copied data are written; a read control unit configured to read the system and copied data and the first and second error correcting codes from the one page of the nonvolatile semiconductor memory in accordance with a data read request from a host system; and means for detecting an error in the read system data and the read copied data using the read first and second error correcting codes, and selecting one of the read system data and the read copied data as data to be supplied to the host system in accordance with a result of error detection.
6. The data storage device according to claim 5 , wherein the error detecting means includes: means for generating third and fourth error correcting codes from the read system and copied data, respectively; and means for comparing the generated third and fourth error correcting codes with the read first and second error correcting codes, and detecting an error in each of the read system and copied data based on a comparison result.
7. A memory card comprising: a card-like housing; and the data storage device according to claim 5 , provided in the housing.
8. The data storage device according to claim 5 , wherein the system data has a data size half or smaller than that of the data area of the page.
9. A method of controlling a data storage device for storing data in a nonvolatile semiconductor memory, the nonvolatile semiconductor memory including a plurality of pages each having a data area and a redundant area and performing a data read/write operation in units of page, the method comprising: generating a first error correcting code and a second error correcting code from first data and second data, respectively, the first data being to be written and the second data being a copy of the first data; writing the first data and the second data to the data area in one page of the nonvolatile semiconductor memory, and writing the generated first and second error correcting codes to the redundant area of the one page to which the first data and the second data are written; reading the first and second data and the first and second error correcting codes from the one page of the nonvolatile semiconductor memory in accordance with a data read request from a host system; detecting an error in the read first and second data using the read first and second error correcting codes; and selecting one of the read first data and the read second data as data to be supplied to the host system in accordance with a result of error detection.
10. The method according to claim 9 , wherein the error detecting includes: generating third and fourth error correcting codes from the read first and second data, respectively; and comparing the generated third and fourth error correcting codes with the read first and second error correcting codes, and detecting an error in each of the read first and second data based on a comparison result.
11. A method of controlling a data storage device for storing digital contents and system data necessary for securing the digital contents in a nonvolatile semiconductor memory, the nonvolatile semiconductor memory including a plurality of pages each having a data area and a redundant area and performing a data read/write operation in units of page, the method comprising: generating a first error correcting code and a second error correcting code from the system data to be written and copied data thereof, respectively; writing the system data and the copied data to the data area in one page of the nonvolatile semiconductor memory, and writing the generated first and second error correcting codes to the redundant area of the one page to which the system data and the copied data are written; reading the system and copied data and the first and second error correcting codes from the one page of the nonvolatile semiconductor memory in accordance with a data read request from a host system; detecting an error in the read system data and the read copied data using the read first and second error correcting codes; and selecting one of the read system data and the read copied data as data to be supplied to the host system in accordance with a result of error detection.
12. The method according to claim 11 , wherein the error detecting includes: generating third and fourth error correcting codes from the read system and copied data, respectively; and comparing the generated third and fourth error correcting codes with the read first and second error correcting codes, and detecting an error in each of the read first and second data based on a comparison result.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
April 9, 2001
July 27, 2004
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.