Control circuit capable of identifying error data in flash memory and storage system and method thereof
First Claim
1. A flash memory control circuit, comprising:
- a microprocessor unit;
a first interface unit, coupled to the microprocessor unit, and used to connect a flash memory, wherein the flash memory has a plurality of physical blocks, and each of the physical blocks has a plurality of pages;
a second interface unit, coupled to the microprocessor unit, and used to connect a computer host;
an error correcting unit, coupled to the microprocessor unit;
a memory management unit, coupled to the microprocessor unit, and used to divide each of the pages into at least one data bit area, and at least one redundancy bit area and at least one error correcting bit area corresponding to the data bit area, wherein the data bit area has a plurality of sectors to store a plurality of sector data; and
a marking unit, coupled to the microprocessor unit,wherein when the computer host writes a plurality of sector data into one of the data bit areas, the error correcting unit generates an error correcting code according to the sector data, the memory management unit writes the sector data into one of the data bit areas and the error correcting code into the corresponding error correcting bit area, and the marking unit records the data accuracy marks as a normal status in the corresponding redundancy bit area, wherein each of the data accuracy marks is corresponding to one of the sector data,wherein when the memory management unit copies the sector data stored in one of the data bit areas to another one of the data bit areas, the error correcting unit determines whether the sector data cannot be corrected according to the error correcting code in the corresponding error correcting bit area,wherein when the sector data cannot be corrected, the marking unit records the data accuracy marks in the corresponding redundancy bit area as an error status.
1 Assignment
0 Petitions
Accused Products
Abstract
A flash memory control circuit including a microprocessor unit, a first interface unit for connecting a flash memory, a second interface unit for connecting a computer host, an error correcting unit, a memory management unit, and a marking unit is provided. The memory management unit divides each page in the flash memory into a plurality of data bit areas, and a plurality of redundancy bit areas and a plurality of error correcting bit areas corresponding to the data bit areas, wherein each of the data bit areas has a plurality of sectors for respectively storing a sector data. The marking unit stores a data accuracy mark corresponding to each sector data in the corresponding redundancy bit area to record the status of the sector data. Thereby, the flash memory controller can effectively identify error data in the flash memory by using the error correcting codes and the data accuracy marks.
12 Citations
24 Claims
-
1. A flash memory control circuit, comprising:
-
a microprocessor unit; a first interface unit, coupled to the microprocessor unit, and used to connect a flash memory, wherein the flash memory has a plurality of physical blocks, and each of the physical blocks has a plurality of pages; a second interface unit, coupled to the microprocessor unit, and used to connect a computer host; an error correcting unit, coupled to the microprocessor unit; a memory management unit, coupled to the microprocessor unit, and used to divide each of the pages into at least one data bit area, and at least one redundancy bit area and at least one error correcting bit area corresponding to the data bit area, wherein the data bit area has a plurality of sectors to store a plurality of sector data; and a marking unit, coupled to the microprocessor unit, wherein when the computer host writes a plurality of sector data into one of the data bit areas, the error correcting unit generates an error correcting code according to the sector data, the memory management unit writes the sector data into one of the data bit areas and the error correcting code into the corresponding error correcting bit area, and the marking unit records the data accuracy marks as a normal status in the corresponding redundancy bit area, wherein each of the data accuracy marks is corresponding to one of the sector data, wherein when the memory management unit copies the sector data stored in one of the data bit areas to another one of the data bit areas, the error correcting unit determines whether the sector data cannot be corrected according to the error correcting code in the corresponding error correcting bit area, wherein when the sector data cannot be corrected, the marking unit records the data accuracy marks in the corresponding redundancy bit area as an error status. - View Dependent Claims (2, 3, 4)
-
-
5. A flash memory storage system, comprising:
-
a connector, used to connect a computer host; a flash memory, having a plurality of physical blocks, wherein each of the physical blocks has a plurality of pages; and a flash memory controller, coupled to the connector and the flash memory, and used to divide each of the pages into at least one data bit area, and at least one redundancy bit area and at least one error correcting bit area corresponding to the data bit area, wherein the data bit area has a plurality of sectors for storing a plurality of sector data, wherein when the computer host writes a plurality of sector data into one of the data bit areas, the flash memory controller generates an error correcting code according to the sector data, writes the sector data into one of the data bit areas, writes the error correcting code into the corresponding error correcting bit area, and records the data accuracy marks in the corresponding redundancy bit area as a normal status, wherein each of the data accuracy marks is corresponding to one of the sector data, wherein when the flash memory controller copies the sector data stored in one of the data bit areas to another one of the data bit areas, the flash memory controller determines whether the sector data cannot be corrected according to the error correcting code in the corresponding error correcting bit area, wherein when the sector data cannot be corrected, the flash memory controller records the data accuracy marks in the corresponding redundancy bit area as an error status. - View Dependent Claims (6, 7, 8)
-
-
9. A method for identifying error data in a flash memory, wherein the flash memory has a plurality of physical blocks, and each of the physical blocks has a plurality of pages, the method comprising:
-
dividing each of the pages into at least one data bit area, and at least one redundancy bit area and at least one error correcting bit area corresponding to the data bit area, wherein the data bit area has a plurality of sectors; configuring a plurality of data accuracy marks in each of the redundancy bit areas by using a marking unit; when a computer host writes a plurality of sector data into one of the data bit areas, writing an error correcting code corresponding to the sector data in the corresponding error correcting bit area, and recording the data accuracy marks in the corresponding redundancy bit area as a normal status by using the marking unit, wherein each of the data accuracy marks is corresponding to one of the sector data; when the sector data stored in one of the data bit areas is copied to another one of the data bit areas, determining whether the sector data cannot be corrected according to the error correcting code in the corresponding error correcting bit area; and when the sector data cannot be corrected, recording the data accuracy marks in the corresponding redundancy bit area as an error status. - View Dependent Claims (10, 11, 12)
-
-
13. A method for identifying error data in a flash memory, wherein the flash memory has a plurality of physical blocks, and each of the physical blocks has a plurality of pages, the method comprising:
-
dividing each of the pages into at least one data bit area, and at least one redundancy bit area and at least one error correcting bit area corresponding to the data bit area, wherein the data bit area has a sector; configuring a data accuracy mark in each of the redundancy bit areas by using a marking unit; when a computer host writes a sector data into one of the data bit areas, writing an error correcting code corresponding to the sector data into the corresponding error correcting bit area, and recording the data accuracy mark in the corresponding redundancy bit area as a normal status by using the marking unit; when the sector data stored in one of the data bit areas is copied to another one of the data bit areas, determining whether the sector data cannot be corrected according to the error correcting code in the corresponding error correcting bit area; and when the sector data cannot be corrected, recording the data accuracy marks in the corresponding redundancy bit area as an error status. - View Dependent Claims (14, 15, 16)
-
-
17. A flash memory storage system, comprising:
-
a connector, used to connect a computer host; a flash memory, having a plurality of physical blocks, wherein each of the physical blocks has a plurality of pages; and a flash memory controller, coupled to the connector and the flash memory, and used to divide each of the pages into at least one data bit area, and at least one redundancy bit area and at least one error correcting bit area, wherein if the computer host writes sector data into the data bit area of a first page among the pages, the flash memory controller generates an error correcting code according to the sector data, writes the sector data into the data bit area, writes the error correcting code into the error correcting bit area of the first page, and records a data accuracy mark in the redundancy bit area of the first page as a normal status, wherein if the flash memory controller reads the sector data stored in the data bit area of the first page, the flash memory controller determines whether the sector data stored in the data bit area of the first page cannot be corrected according to the error correcting code in the corresponding error correcting bit area, wherein if the sector data stored in the data bit area of the first page cannot be corrected, the flash memory controller writes the sector data stored in the data bit area of the first page among the pages into the data bit area of a second page among the pages and records the data accuracy mark in the redundancy bit area of the second page as an error status. - View Dependent Claims (18, 19, 20)
-
-
21. A method for identifying error data in a flash memory, wherein the flash memory has a plurality of physical blocks, and each of the physical blocks has a plurality of pages, the method comprising:
-
dividing each of the pages into at least one data bit area, and at least one redundancy bit area and at least one error correcting bit area; configuring a data accuracy mark in the redundancy bit area; if a computer host writes sector data into the data bit area of a first page among the pages, writing an error correcting code corresponding to the sector data in the error correcting bit area of the first page, and recording the data accuracy mark in the redundancy bit area of the first page as a normal status; if the sector data stored in the data bit area of the first page is read, determining whether the sector data stored in the data bit area of the first page cannot be corrected according to the error correcting code in the corresponding error correcting bit area; and if the sector data stored in the data bit area of the first page cannot be corrected, writing the sector data stored in the data bit area of the first page into the data bit area of a second page among the pages and recording the data accuracy mark in the redundancy bit area of the second page as an error status. - View Dependent Claims (22, 23, 24)
-
Specification