CN101872318B - Data access method for flash memory and storage system and controller thereof - Google Patents

Data access method for flash memory and storage system and controller thereof Download PDF

Info

Publication number
CN101872318B
CN101872318B CN200910133685A CN200910133685A CN101872318B CN 101872318 B CN101872318 B CN 101872318B CN 200910133685 A CN200910133685 A CN 200910133685A CN 200910133685 A CN200910133685 A CN 200910133685A CN 101872318 B CN101872318 B CN 101872318B
Authority
CN
China
Prior art keywords
data
flash memory
sub
fast
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200910133685A
Other languages
Chinese (zh)
Other versions
CN101872318A (en
Inventor
朱健华
郑国义
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phison Electronics Corp
Original Assignee
Phison Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to CN200910133685A priority Critical patent/CN101872318B/en
Publication of CN101872318A publication Critical patent/CN101872318A/en
Application granted granted Critical
Publication of CN101872318B publication Critical patent/CN101872318B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

The invention relates to a data access method for a flash memory and a storage system and a controller thereof. The data access method is used for accessing data in the flash memory, wherein the data is provided with at least one piece of subdata. The data access method comprises the following steps of: generating an error correcting code for the data to be written; and writing the data to be written and the generated error correcting code in the flash memory. In addition, the data access method also comprises a step of: generating corresponding bit check codes for each piece of subdata of the data, and writing the generated bit check codes in the flash memory. Due to the scheme, when the subdata is about to be read from the flash memory, whether an error bit is present in the read subdata is judged only according to a bit check unit corresponding to the read subdata so as to improve the data access speed.

Description

The data access method and stocking system and the controller that are used for fast flash memory bank
Technical field
The present invention relates to a kind of fast flash memory bank stocking system and fast-flash memory body controller that is used for the data access method of fast flash memory bank and uses the method.
Background technology
Digital camera, mobile phone and MP3 are very rapid in growth over the years, make the storage requirements of consumer's logarithmic code content also increase rapidly.Because fast flash memory bank (Flash Memory) has that data is non-volatile, power saving, volume is little and the characteristic of no mechanical structure etc., suitable user carries the Storage Media as digital archives transmission and exchange.(Solid StateDrive is exactly with the example of fast flash memory bank as Storage Media SSD), and has been widely used in the computer host system as Primary Hard Drive solid hard disc.
When in using the fast flash memory bank stocking system of fast flash memory bank as Storage Media, carrying out data access, the fast flash memory bank stocking system can be carried out an error-correcting routine through an Error-Correcting Circuit and verify whether the data of institute's access is correct.Specifically, when the user desired to write data to fast flash memory bank stocking system, system's data for this reason produced an error-correcting code and data of desiring to write and the error-correcting code that is produced is write in the fast flash memory bank.Afterwards, when the user desires to read this data, system can from fast flash memory bank, read this data and error-correcting code thereof and according to the error-correcting code inspection of being read with proofread and correct the data that is read, guarantee the correctness of the data that reads thus.Particularly, Error-Correcting Circuit and error-correcting code can be according to different calibration capabilities and are different.That is to say; Less wrong bit can checked and proofread and correct to the Error-Correcting Circuit of lower-order and error-correcting code only; And more wrong bit can checked and proofread and correct to the Error-Correcting Circuit of higher-order and error-correcting code, and the required storage area of error-correcting code that wherein stores higher-order can be greater than the required storage area of error-correcting code that stores lower-order.
In the design of fast flash memory bank stocking system; In general; The fast flash memory bank of fast flash memory bank stocking system comprises a plurality of physical blocks (physical block), and each physical blocks has a plurality of pages (page), and data is to be that unit writes in the fast flash memory bank with the page.Each page is made up of data bit district and redundant bit district, the data that the data bit district desires to write in order to storage, and redundant bit district in order to store relevant control information of this page and error-correcting code (Error Correction Code, ECC).For example; When the page with 1 sector (promptly; 512 bit groups) when disposing; The data bit district of this page can dispose and redundant bit district can dispose with 16 bit groups with 512 bit groups, and wherein 10 bit groups are used for the error-correcting code of this page in order to storage to 6 bit groups in redundant bit district in order to the control information that stores this page, that is to say that 10 bit groups promptly enough store the error-correcting code of 512 bit group data of correspondence.
Along with the development of fast-flash memory body technique, the capacity of each page constantly increases.For example, developed at present and the fast flash memory bank that 1 page has 4 sectors (that is 2048 bit groups).Along with the number increase of storable bit group in 1 page, the calibration capability that therefore is used for this page fault correcting code also need promote, and can effectively guarantee the correctness of data in the page.Therefore, disposing in the page in data bit district with 2048 bit groups, redundant bit district can dispose with 61 bit groups, wherein 8 bit groups in order to store the control information 53 bit groups in order to the error-correcting code of the data that stores corresponding 2048 bit groups.
In general; Computer system is that the unit comes the access data with the sector; Therefore in the example of the fast flash memory bank stocking system that the page of fast flash memory bank is made up of 4 sectors; Because the error-correcting code in the page produces according to the data of 4 sectors; So when both having made computer system only read the data of 1 sector in this page, the fast flash memory bank stocking system still must read complete information in this page (that is the data in 4 sectors) and come the execution error correction program with its corresponding error-correcting code.The base this, read in the example of a small amount of data in computer system, this kind access mode will have a strong impact on the access speed of fast flash memory bank stocking system.
Summary of the invention
A purpose of the present invention provides a kind of data access method, and it can be lifted at the speed of the data that reads in the fast flash memory bank effectively.
Another object of the present invention provides a kind of fast-flash memory body controller, and it can be lifted at the speed of the data that reads in the fast flash memory bank effectively.
A purpose more of the present invention provides a kind of fast flash memory bank stocking system, and it can be lifted at the speed of the data that reads in the fast flash memory bank effectively.
For realizing above-mentioned purpose, the present invention proposes a kind of data access method, is used in a fast flash memory bank access one data.This data access method comprises reception data from a host computer system, and the data that is wherein received comprises a plurality of sub-data.This data access method also is included as the data that is received and produces an error-correcting code (Error Correction Code ECC), and writes data that is received and the error-correcting code that produced in the fast flash memory bank.And this data access method also is included as each sub-data and produces a corresponding bit check code, and the bit check code that is produced is written in the fast flash memory bank.
For realizing above-mentioned purpose; The present invention also proposes a kind of fast-flash memory body controller; In order to access one data in a fast flash memory bank, this fast-flash memory body controller comprises microprocessor unit and connects the main frame boundary element of this microprocessor unit, fast flash memory bank boundary element, memory body operating unit, error correction unit and bit inspection unit.The main frame boundary element in order to connect a host computer system and from host computer system the reception data, the data that is wherein received comprises a plurality of sub-data.Fast flash memory bank boundary element and in order to connect fast flash memory bank.Error correction unit is with thinking that the data that is received produces an error-correcting code, and wherein the memory body operating unit can write data that is received and the error-correcting code that is produced in the fast flash memory bank.The bit inspection unit is with thinking that each sub-data produces a bit check code, and wherein the memory body operating unit can write the bit check code that is produced in the fast flash memory bank.
The present invention proposes a kind of fast flash memory bank stocking system, and it comprises fast flash memory bank and the fast-flash memory body controller that is connected this fast flash memory bank.The fast-flash memory body controller is in order to receive the data with a plurality of sub-data from a host computer system; The fast-flash memory body controller can produce an error-correcting code for the data that is received, and data that is received and the error-correcting code that is produced are write in the fast flash memory bank.In addition, the fast-flash memory body controller can produce a bit check code for each sub-data, and the bit check code that is produced is write in the fast flash memory bank.
Can know by technique scheme; The present invention can be when host computer system desires to read the facts on file that is less than a page; Only need whether check the access errors bit and need not read data and the error-correcting code thereof in the full page, promote the speed of data access thus to the facts on file desiring to read.
For letting the above-mentioned feature and advantage of the present invention can be more obviously understandable, hereinafter is special lifts embodiment, and cooperates appended graphic elaborating as follows.
Description of drawings
Fig. 1 is the general block diagram of the fast flash memory bank stocking system that one exemplary embodiment is illustrated according to the present invention;
Fig. 2 is the general block diagram of the physical blocks that exemplary embodiment illustrates according to the present invention;
Fig. 3 is the process flow diagram of the data write step that illustrates according to this exemplary embodiment;
Fig. 4 is the data flow diagram that writes example that exemplary embodiment illustrated according to the present invention;
Fig. 5 is the example that one exemplary embodiment illustrate stores bit check code table in physical blocks according to the present invention;
Fig. 6 is the process flow diagram of the data read step that illustrates according to this exemplary embodiment.
Accompanying drawing main element symbol description
110: the fast-flash memory body controller; 110a: microprocessor unit;
110b: memory body operating unit; 110c: fast flash memory bank boundary element;
110d: main frame boundary element; 110e: error correction unit;
110f: bit inspection unit; 120: the fast flash memory bank wafer;
120-0~120-N: physical blocks; D: data bit district;
R: redundant bit district; 400: bit inspection code table;
S301, S303, S305, S307, S309: data write step;
S601, S603, S605, S607, S609, S611, S613, S615, S617, S619, S621: data read step.
Embodiment
Fig. 1 is the general block diagram of the fast flash memory bank stocking system that one exemplary embodiment is illustrated according to the present invention.
Please with reference to Fig. 1, fast flash memory bank stocking system 100 uses with host computer system 200 usually, so that host computer system 200 can write data fast flash memory bank stocking system 100 or from fast flash memory bank stocking system 100, read data.In this exemplary embodiment, fast flash memory bank stocking system 100 be solid hard disc (Solid State Drive, SSD).But it must be appreciated that fast flash memory bank stocking system 100 also can be memory card or carry-on dish in another embodiment of the present invention.
Fast flash memory bank stocking system 100 comprises fast-flash memory body controller 110 and fast flash memory bank wafer 120.
Fast-flash memory body controller 110 can be carried out a plurality of logic locks or the steering order with hardware pattern or the design of solidification software pattern, and in fast flash memory bank wafer 120, carries out the runnings such as writing, read and erase of data according to the instruction of host computer system 200.Fast-flash memory body controller 110 comprises microprocessor unit 110a, memory body operating unit 110b, fast flash memory bank boundary element 110c, main frame boundary element 110d, error correction unit 110e and bit inspection unit 110f.
Microprocessor unit 110a is in order to the overall operation of control fast-flash memory body controller 110.Specifically, microprocessor unit 110a operates to carry out the runnings such as writing, read, erase of fast flash memory bank stocking system 100 with bit inspection unit 110f etc. with memory body operating unit 110b, fast flash memory bank boundary element 110c, main frame boundary element 110d, error correction unit 110e.
Memory body operating unit 110b connects microprocessor unit 110a, and in order to carry out block management mechanism.Particularly, memory body operating unit 110b is in order to carry out the data access mechanism according to this exemplary embodiment.
In the present embodiment, memory body operating unit 110b designs in controller 110 with a solidification software pattern.For example; To comprise that a plurality of steering orders (for example are burned onto a formula memory body; ROM (Read Only Memory; ROM)) be embedded in the fast-flash memory body controller 110 to design memory body operating unit 110b in and with this formula memory body, wherein when fast flash memory bank stocking system 100 started, a plurality of machine instructions of memory body operating unit 110b can be carried out to accomplish the block management mechanism and data writing mechanism according to the embodiment of the invention by microprocessor unit 110a.
In another embodiment of the present invention, the steering order of memory body operating unit 110b also can the software pattern be stored in the specific region of fast flash memory bank wafer 120.Same, when fast flash memory bank stocking system 100 started, the steering order of memory body operating unit 110b can be carried out by microprocessor unit 110a.In addition, in another embodiment of the present invention, memory body operating unit 110b also can a hardware pattern design in fast-flash memory body controller 110.
Fast flash memory bank boundary element 110c connects microprocessor unit 110a and in order to access flash memory chip 120.That is to say that the data of desiring to write fast flash memory bank wafer 120 can convert 120 receptible forms of fast flash memory bank wafer into via fast flash memory bank boundary element 110c.
The instruction that main frame boundary element 110d connects microprocessor unit 110a and transmitted in order to reception and identification host computer system 200.That is to say that instruction that host computer system 200 is transmitted and data can see through main frame boundary element 110d and be sent to microprocessor unit 110a.In this exemplary embodiment, main frame boundary element 110d is the SATA interface.Yet; It must be appreciated to the invention is not restricted to this that main frame boundary element 110d also can be USB interface, IEEE 1394 interfaces, PCIExpress interface, MS interface, MMC interface, SD interface, CF interface, IDE interface or other data transport interface that is fit to.
Error correction unit 110e connects microprocessor unit 110a and in order to carry out an error-correcting routine.Specifically; When input one data in error correction unit 110e; Error correction unit 110e can produce an error-correcting code according to this data; And when importing a data and an error-correcting code at error correction unit 110e, error correction unit 110e can come to carry out bug check and correction for the data that is received according to the error-correcting code that is received.Error-correcting routine is a technology common in the data storage medium, is not described in detail at this.What deserves to be mentioned is that the error correction capability of error correction unit 110e must be able to be supported the specification of fast flash memory bank wafer 120.In this exemplary embodiment, error correction unit 110e has inspection and the ability of proofreading and correct 48 wrong bits.Yet, it must be appreciated, the invention is not restricted to this, all can be applicable to the present invention as long as can support the error correction unit of fast flash memory bank wafer 120 specifications.
Bit inspection unit 110f connects microprocessor unit 110a and in order to carry out an error detection program.Specifically; When input one data in bit inspection unit 110f; Bit inspection unit 110f can produce a bit check code according to this data; And when importing a data and a bit check code at bit inspection unit 110f, bit inspection unit 110f can come to carry out bug check for the data that is received according to the bit check code that is received.For example, in this exemplary embodiment, bit inspection unit 110f designs with error detection circuit (error detecting circuit), and bit inspection unit 110f can produce error detection sign indicating number (error detection code) as the bit check code.Yet; In another embodiment of the present invention; Bit inspection unit 110f also can design by cyclic redundancy check (cyclic redundancy check circuit), and bit inspection unit 110f can produce Cyclical Redundancy Check (cyclic redundancy check) sign indicating number as the bit check code.Perhaps; In another embodiment of the present invention; Bit inspection unit 110f also can design by low order Error-Correcting Circuit (error correcting circuit); And bit inspection unit 110f can produce the low order error-correcting code as the bit check code, is meant Error-Correcting Circuit and the error-correcting code that tool hangs down error correction capability for error correction unit 110e and its error-correcting code at this low order Error-Correcting Circuit and low order error-correcting code.
In addition, though be not illustrated in this exemplary embodiment, fast-flash memory body controller 110 comprises that also buffer memory, PMU etc. are used to control the general utility functions module of fast flash memory bank.
Fast flash memory bank wafer 120 connects fast-flash memory body controller 110 and has a plurality of physical blocks 120-0~120-N to store data.In this exemplary embodiment, fast flash memory bank wafer 120 is multilayer mnemon (Multi Level Cell, MLC) a NAND fast flash memory bank.Yet, it must be appreciated, the invention is not restricted to this.In another embodiment of the present invention, (Single Level Cell, SLC) the NAND fast flash memory bank also can be applicable to the present invention to individual layer mnemon.
Fig. 2 is the general block diagram of the physical blocks that exemplary embodiment illustrates according to the present invention.The structure of each physical blocks 120-1~120-N is identical in this exemplary embodiment, and the general block diagram of Fig. 2 is applicable to each physical blocks 120-0~120-N.
Please with reference to Fig. 2, physical blocks comprises 128 pages, and each page can store the data of 4 sectors.Specifically; The data bit district D of each page is 2048 bit groups; And the redundant bit district R of each page is 61 bit groups, and 8 bit groups are used to store the control information relevant with the page and 53 bit groups are used to store the error-correcting code that is used for the page among the wherein redundant bit district R.
Fig. 3 is the process flow diagram of the data write step that illustrates according to this exemplary embodiment.
Please with reference to Fig. 2 and Fig. 3, when host computer system 200 desired to write data to fast flash memory bank stocking system 100, in step S301, fast-flash memory body controller 110 can receive the data of desiring to write from host computer system 200.In this exemplary embodiment, the data that is received has at least one sub-data, and the size of these a plurality of sub-data is the minimum access unit (that is sector) of host computer system 200.For example, when the access unit of host computer system 200 was 512 bit groups, the size of sub-data also was 512 bit groups.Specifically, fast-flash memory body controller 110 can receive to write to instruct from host computer system 200 and write the sub-data of instruction with corresponding this through main frame boundary element 110d.
Then, in step S303, fast-flash memory body controller 110 can produce corresponding error-correcting code for the data that is received.Specifically, the received data of main frame boundary element 110d can be sent to error correction unit 110e, and produces corresponding error-correcting code by error correction unit 110e.
Afterwards; In step S305, the memory body operating unit 110b of fast-flash memory body controller 110 can write data of desiring to write and corresponding error-correcting code thereof among the physical blocks 120-0~120-N of fast flash memory bank wafer 120 through fast flash memory bank boundary element 110c.
Then, in step S307, fast-flash memory body controller 110 can produce corresponding bit check code for each sub-data.Specifically, each sub-data can be transferred into bit inspection unit 110f, and bit inspection unit 110f can produce corresponding bit check code for each sub-data.
At last, in step S309, memory body operating unit 110b can see through fast flash memory bank boundary element 110c with the bit check code that is produced and write among the physical blocks 120-0~120N of fast flash memory bank wafer 120.What deserves to be mentioned is; Because redundant bit district only enough stores the error-correcting code of corresponding this data when in the page, writing data, therefore the bit check code of the corresponding sub-data that produces is stored in the data bit district of another physical blocks in the meeting of this exemplary embodiment.That is to say that memory body operating unit 110b is regarded as physical data with said a plurality of bit check codes and writes in the fast flash memory bank wafer 120.What deserves to be mentioned is that in exemplary embodiment of the present invention, memory body operating unit 110b can set up bit inspection code table 400 and write down the bit check code that is produced.
Fig. 4 be that exemplary embodiment illustrated according to the present invention one write example the data flow diagram.
Please with reference to Fig. 4, if fast-flash memory body controller 110 receives the data DATA that data quantity is 2048 bit groups from host computer system 200, fast-flash memory body controller 110 can produce error-correcting code ECC for data DATA.In addition, fast-flash memory body controller 110 can be divided into sub-data DATA1, sub-data DATA2, sub-data DATA3 and sub-data DATA4 and corresponding bit check code BCC1, bit check code BCC2, bit check code BCC3 and the bit check code BCC4 of generation in regular turn with data DATA.Afterwards, can write in the page 0 of physical blocks 120-0 with error-correcting code ECC by the data DATA that sub-data DATA1, sub-data DATA2, sub-data DATA3 and sub-data DATA4 formed.Simultaneously, fast-flash memory body controller 110 bit that can will write down bit check code BCC1, bit check code BCC2, bit check code BCC3 and bit check code BCC4 checks that code table 400 can be written in the page 0 of physical blocks 120-N.
Fig. 5 is the example that one exemplary embodiment illustrate stores bit check code table in physical blocks according to the present invention.
Please with reference to Fig. 2 and Fig. 5, for example, the bit inspection code table 400 of record physical blocks 120-0~120-127 bit check code is stored among the physical blocks 120-N.In this exemplary embodiment, be 4 bit groups because sub-data is the required storage area of bit check code of 512 bit groups and each sub-data, therefore 1 physical blocks can store the bit check code of corresponding 128 physical blocks.Particularly, because memory body operating unit 110b stores bit check code table 400 with the mode that stores physical data, so can there be the error-correcting code of corresponding bit check code in the redundant bit district of physical blocks.In addition; In another exemplary embodiment of the present invention; Memory body operating unit 110b can set up a bit check code bitmap with the corresponding relation between bit check code and the sub-data in the record bit check code table, is beneficial to from bit inspection code table, read the bit check code of corresponding sub-data thus.
What deserves to be mentioned is; Need bigger storage area owing to set up 400 meetings of bit inspection code table for all physical blocks in the fast flash memory bank wafer 120; Therefore in another exemplary embodiment of the present invention; Memory body operating unit 110b only can be to often carrying out the physical blocks of access and set up bit inspection code table 400 to read the facts on file data quantity of a page (that is, less than) mode.For example, host computer system 200 can (File Allocation Table reads facts on file in physical blocks FAT), can reduce thus to store the required memory body space of bit check code table 400 through the save File allocation list of being everlasting.
In addition; Because bit check code table 400 can constantly be updated in access procedure; Therefore during the running of fast flash memory bank stocking system 100; Bit inspection code table 400 can be written into from fast flash memory bank wafer 120 in the buffer memory (not illustrating) in order to renewal, and when 100 shutdown of fast flash memory bank stocking system, bit checks that code table 400 can be written back to fast flash memory bank wafer 120.
Fig. 6 is the process flow diagram of the data read step that illustrates according to this exemplary embodiment.Please with reference to Fig. 2, Fig. 5 and Fig. 6, when host computer system 200 desires read data from fast flash memory bank stocking system 100, in step S601, fast-flash memory body controller 110 can judge that whether data quantity that host computer system 200 desires to read is less than 1 page.Specifically; Fast-flash memory body controller 110 can see through main frame boundary element 110d receive reading command from host computer system 200, and memory body operating unit 110b can judge that whether data quantity that host computer system 200 desires to read is less than 1 page according to the address of desiring in the reading command to read.
For example; Store with sub-data DATA 1, sub-data DATA2, sub-data DATA3 and sub-data DATA4 at the page 0 of said physical blocks 120-0 and to be formed in the example of data DATA; If when host computer system 200 only desires to read some but not the whole data DATA of sub-data DATA1, sub-data DATA2, sub-data DATA3 and sub-data DATA4, represent that then the data quantity that host computer system 200 is desired to read is less than 1 page.
If judge that in step S601 data quantity that host computer system 200 desires to read is non-during less than 1 page; Then memory body operating unit 110b can see through fast flash memory bank boundary element 110c and from fast flash memory bank wafer 120, read data and corresponding error-correcting code thereof in step S603, and error correction unit 110e can be according to data that is read and error-correcting code execution error correction program in step S605.Afterwards, in step S607, memory body operating unit 110b can see through main frame boundary element 110d and give host computer system 200 with the data transmission of executed error-correcting routine.For example; When if host computer system 200 desires to read the data DATA of the page 0 of physical blocks 120-0; Fast-flash memory body controller 110 can read data DATA and error-correcting code ECC thereof; And the execution error correction program, and then the data DATA of executed error-correcting routine is sent to host computer system 200.
If when judging that in step S601 data quantity that host computer system 200 desires to read is less than 1 page; Then memory body operating unit 110b can see through fast flash memory bank boundary element 110c and from fast flash memory bank wafer 120, read the sub-data desiring to read in step S609; And memory body operating unit 110b can check from bit and obtain corresponding bit check code the code table 400 in step S611; When wherein if bit inspection code table 400 is not written into buffer memory (not illustrating), memory body operating unit 110b can read bit inspection code table 400 from fast flash memory bank wafer 120.
Afterwards, bit inspection unit 110f can judge in the sub-data that is read whether have wrong bit according to sub-data that is read and corresponding bit check code in step S613.If the sub-data that is read does not have when having wrong bit, then memory body operating unit 110b can be with sub-data transmission to the host computer system 200 that is read in step S615.
If when the sub-data that is read has wrong bit; Then in step S617, can see through fast flash memory bank boundary element 110c and from fast flash memory bank wafer 120, read complete information and corresponding error-correcting code thereof, and error correction unit 110e can be according to data that is read and error-correcting code execution error correction program in step S619.At last, memory body operating unit 110b can obtain sub-data that host computer system 200 desires to read and give host computer system 200 with the sub-data transmission that is obtained from the data of having proofreaied and correct in step S621.
For example; When if host computer system 200 desires to read the sub-data DATA1 of the page 0 of physical blocks 120-0; Fast-flash memory body controller 110 can read sub-data DATA1 and bit check code BCC1, and judges among the sub-data DATA1 that is read whether have wrong bit according to bit check code BCC1.If do not have among the sub-data DATA1 that is read when having wrong bit, then fast-flash memory body controller 110 can directly send the sub-data DATA1 that is read to host computer system 200.Otherwise; If when having wrong bit among the sub-data DATA1 that is read; Then fast-flash memory body controller 110 can read data DATA and error-correcting code ECC thereof again from fast flash memory bank wafer 120; And the execution error correction program, and then obtain sub-data DATA1 and the sub-data DATA1 that is obtained is sent to host computer system 200 from the data DATA of executed error-correcting routine.
It must be appreciated, the described execution sequence of Fig. 3 and Fig. 6 and unrestricted the present invention, these those skilled in the art can be according to carrying out above-mentioned steps to be different from the described order of Fig. 3 and Fig. 6 under the spirit of the present invention.
In sum; The present invention is divided into several sub-data with the access unit of data respective hosts system when in the page to fast flash memory bank, writing data; And for each data produces a bit check code; Thus when host computer system reads sub-data from the page of fast flash memory bank; Can see through corresponding bit check code and carry out the bit inspection, and the data that only when the bit mistake takes place, just from fast flash memory bank, reads full page carries out error recovery, can promote the reading speed of fast flash memory bank thus.
What should explain at last is: above embodiment is only in order to technical scheme of the present invention to be described but not limit it; Although the present invention has been carried out detailed explanation with reference to preferred embodiment; Those of ordinary skill in the art is to be understood that: it still can make amendment or be equal to replacement technical scheme of the present invention, also can not make amended technical scheme break away from the spirit and the scope of technical scheme of the present invention and these are revised or be equal to replacement.

Claims (22)

1. a data access method is characterized in that, is used in a fast flash memory bank access one data, and said data access method comprises:
Receive said data from a host computer system, wherein said data comprises a plurality of sub-data;
For said data produces an error-correcting code;
Said data and said error-correcting code are write in the said fast flash memory bank;
For each said a plurality of sub-data produces a corresponding bit check code, to generate a plurality of bit check codes of corresponding said a plurality of sub-data;
Said a plurality of bit check codes are write in the said fast flash memory bank
From said fast flash memory bank, read said a plurality of sub-data;
From said fast flash memory bank, read the bit check code of the corresponding said a plurality of sub-data that read;
Judge according to the bit check code of the said a plurality of sub-data that read whether the said a plurality of sub-data that read have mistake; And
Do not have when having mistake when the said a plurality of sub-data that read, give said host computer system the said a plurality of sub-data transmissions that read.
2. data access method according to claim 1; It is characterized in that; Also comprise set up bit inspection code table and in said bit inspection code table the said a plurality of bit check codes of record, wherein will said a plurality of bit check codes write step in the said fast flash memory bank and comprise said bit is checked that code table writes in the said fast flash memory bank.
3. data access method according to claim 2 is characterized in that, also comprises setting up a bit check code bitmap to write down the mapping relation between a plurality of bit check codes described in the said bit inspection code table and the said a plurality of sub-data.
4. data access method according to claim 2; It is characterized in that; Also comprise from said fast flash memory bank, being written in said bit inspection code table to a buffer memory, and from said buffer memory, read said a plurality of bit check codes of corresponding said a plurality of sub-data.
5. data access method according to claim 1 is characterized in that, when the said a plurality of sub-data that read had mistake, then said data access method also comprised:
From said fast flash memory bank, read said data and said error-correcting code;
Said error-correcting code according to being read is proofreaied and correct the said data that is read;
From the said data of being proofreaied and correct, obtain said a plurality of sub-data of having proofreaied and correct; And
Give said host computer system with said a plurality of sub-data transmissions of having proofreaied and correct.
6. data access method according to claim 1 is characterized in that, each said a plurality of bit check code is an error detection sign indicating number or a Cyclical Redundancy Check sign indicating number.
7. data access method according to claim 1 is characterized in that, the size of each said a plurality of sub-data is a minimum access unit of said host computer system.
8. a fast-flash memory body controller is characterized in that, in order to access one data in a fast flash memory bank, said fast-flash memory body controller comprises:
One microprocessor unit;
One main frame boundary element connects said microprocessor unit, and said main frame boundary element is in order to connect a host computer system and from said host computer system, to receive said data, and wherein said data comprises a plurality of sub-data;
One fast flash memory bank boundary element connects said microprocessor unit and in order to connect said fast flash memory bank;
One memory body operating unit connects said microprocessor unit, said main frame boundary element and said fast flash memory bank boundary element;
One error correction unit; Connect said microprocessor unit and said memory body operating unit and with thinking that said data produces an error-correcting code, wherein said memory body operating unit can see through said fast flash memory bank boundary element said data and said error-correcting code are write in the said fast flash memory bank; And
One bit inspection unit; Connect said microprocessor unit and said memory body operating unit and with thinking that each said a plurality of sub-data produces a bit check code; To generate a plurality of bit check codes of corresponding said a plurality of sub-data; Wherein said memory body operating unit can see through said fast flash memory bank boundary element said a plurality of bit check codes are write in the said fast flash memory bank
Wherein said memory body operating unit is also in order to reading said a plurality of sub-data from said fast flash memory bank, and from said fast flash memory bank, reads the bit check code of the corresponding said a plurality of sub-data that read,
Wherein said bit inspection unit can judge whether the said a plurality of sub-data that read have mistake according to the bit check code of the said a plurality of sub-data that read,
Wherein working as the said a plurality of sub-data that read does not have when having mistake, and said memory body operating unit sees through said main frame boundary element and gives said host computer system with the said a plurality of sub-data transmissions that read.
9. fast-flash memory body controller according to claim 8 is characterized in that, also in order to set up bit inspection code table, wherein said a plurality of bit check codes are recorded in the said bit inspection code table said memory body operating unit.
10. fast-flash memory body controller according to claim 9; It is characterized in that said memory body operating unit is also in order to set up a bit check code bitmap to write down the mapping relation between a plurality of bit check codes described in the said bit inspection code table and the said a plurality of sub-data.
11. fast-flash memory body controller according to claim 9; It is characterized in that; Said memory body operating unit is also checked in code table to a buffer memory in order to from said fast flash memory bank, to be written into said bit, and from said buffer memory, is read said a plurality of bit check codes of corresponding said a plurality of sub-data.
12. fast-flash memory body controller according to claim 8; It is characterized in that; When the said a plurality of sub-data that read have mistake; Then said memory body operating unit can read said data and said error-correcting code from said fast flash memory bank, and said error correction unit can be proofreaied and correct the said data that is read according to the said error-correcting code that is read
Wherein said memory body operating unit can obtain said a plurality of sub-data of having proofreaied and correct from the said data of being proofreaied and correct, and gives said host computer system through said a plurality of sub-data transmissions that said main frame boundary element will have been proofreaied and correct.
13. fast-flash memory body controller according to claim 8 is characterized in that, said bit inspection unit is that an error detection circuit and each said a plurality of bit check code are an error detection sign indicating number.
14. fast-flash memory body controller according to claim 8 is characterized in that, said bit inspection unit is that a cyclic redundancy check and each said a plurality of bit check code are a Cyclical Redundancy Check sign indicating number.
15. fast-flash memory body controller according to claim 8 is characterized in that, the size of each said a plurality of sub-data is a minimum access unit of said host computer system.
16. a fast flash memory bank stocking system is characterized in that, comprising:
One fast flash memory bank;
One fast-flash memory body controller connects said fast flash memory bank, and in order to from a host computer system, to receive a data, wherein said data has a plurality of sub-data,
Wherein said fast-flash memory body controller can produce an error-correcting code for said data, and said data and said error-correcting code are write in the said fast flash memory bank,
Wherein said fast-flash memory body controller can produce a bit check code for each said a plurality of sub-data, generating a plurality of bit check codes of corresponding said a plurality of sub-data, and said a plurality of bit check codes write in the said fast flash memory bank,
Wherein said fast-flash memory body controller is also in order to reading said a plurality of sub-data from said fast flash memory bank, and from said fast flash memory bank, reads the bit check code of the corresponding said a plurality of sub-data that read,
Wherein said fast-flash memory body controller can judge whether the said a plurality of sub-data that read have mistake according to the bit check code of the said a plurality of sub-data that read,
Wherein working as the said a plurality of sub-data that read does not have when having mistake, and said fast-flash memory body controller can be given said host computer system with the said a plurality of sub-data transmissions that read.
17. fast flash memory bank stocking system according to claim 16 is characterized in that, said fast flash memory bank also comprises bit inspection code table, and wherein said a plurality of bit check codes are recorded in the said bit inspection code table.
18. fast flash memory bank stocking system according to claim 17; It is characterized in that said fast-flash memory body controller is also in order to set up a bit check code bitmap to write down the mapping relation between a plurality of bit check codes described in the said bit inspection code table and the said a plurality of sub-data.
19. fast flash memory bank stocking system according to claim 17 is characterized in that, also comprises a buffer memory,
Wherein said fast-flash memory body controller is also checked in code table to the said buffer memory in order to from said fast flash memory bank, to be written into said bit, and from said buffer memory, is read said a plurality of bit check codes of corresponding said a plurality of sub-data.
20. fast flash memory bank stocking system according to claim 16; It is characterized in that; When the said a plurality of sub-data that read have mistake; Then said fast-flash memory body controller can read said data and said error-correcting code from said fast flash memory bank, and proofreaies and correct the said data that is read according to the said error-correcting code that is read
Wherein said fast-flash memory body controller can obtain said a plurality of sub-data of having proofreaied and correct from the said data of being proofreaied and correct, and the said a plurality of sub-data transmissions that will proofread and correct are given said host computer system.
21. fast flash memory bank stocking system according to claim 16 is characterized in that, each said a plurality of bit check code is an error detection sign indicating number or a Cyclical Redundancy Check sign indicating number.
22. fast flash memory bank stocking system according to claim 16 is characterized in that, the size of each said a plurality of sub-data is a minimum access unit of said host computer system.
CN200910133685A 2009-04-22 2009-04-22 Data access method for flash memory and storage system and controller thereof Active CN101872318B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910133685A CN101872318B (en) 2009-04-22 2009-04-22 Data access method for flash memory and storage system and controller thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910133685A CN101872318B (en) 2009-04-22 2009-04-22 Data access method for flash memory and storage system and controller thereof

Publications (2)

Publication Number Publication Date
CN101872318A CN101872318A (en) 2010-10-27
CN101872318B true CN101872318B (en) 2012-10-24

Family

ID=42997188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910133685A Active CN101872318B (en) 2009-04-22 2009-04-22 Data access method for flash memory and storage system and controller thereof

Country Status (1)

Country Link
CN (1) CN101872318B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201337936A (en) * 2012-03-06 2013-09-16 Innodisk Corp Flash memory device capable of raising data correction capability
TWI497511B (en) * 2012-11-08 2015-08-21 Ind Tech Res Inst Chip with embedded non-volatile memory and testing method therefor
TWI544490B (en) * 2015-02-05 2016-08-01 慧榮科技股份有限公司 Data storage device and data maintenance method thereof
CN106021035A (en) * 2016-05-25 2016-10-12 浪潮电子信息产业股份有限公司 Method for improving stability of module strips by fault check of memory particles

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1279482A (en) * 1999-06-28 2001-01-10 株式会社东芝 Flash memory
CN1848296A (en) * 2005-04-11 2006-10-18 海力士半导体有限公司 Flash memory device with reduced access time
CN101082872A (en) * 2006-06-02 2007-12-05 上海思必得通讯技术有限公司 Method for error protecting and error correcting of flash memory data in products

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1279482A (en) * 1999-06-28 2001-01-10 株式会社东芝 Flash memory
CN1848296A (en) * 2005-04-11 2006-10-18 海力士半导体有限公司 Flash memory device with reduced access time
CN101082872A (en) * 2006-06-02 2007-12-05 上海思必得通讯技术有限公司 Method for error protecting and error correcting of flash memory data in products

Also Published As

Publication number Publication date
CN101872318A (en) 2010-10-27

Similar Documents

Publication Publication Date Title
CN102549554B (en) Stripe-based memory operation
CN101576853B (en) Data access method and controller and memory system using same
US8589619B2 (en) Data writing method, memory controller, and memory storage apparatus
US20090248961A1 (en) Memory management method and controller for non-volatile memory storage device
CN101944386B (en) Control circuit and storage system and method for identifying error data in flash memory
US20110145481A1 (en) Flash memory management method and flash memory controller and storage system using the same
CN104699413A (en) Data management method, memorizer saving device and memorizer control circuit unit
US8301981B2 (en) Data access method for flash memory and storage system and controller thereof
CN101567220A (en) Bad block identifying method, storage system and controller thereof for flash memory
CN102890645B (en) Memorizer memory devices, Memory Controller and method for writing data
CN103678162B (en) System data storage method, memory controller and memory storage device
TW202040370A (en) Data writing method, memory controlling circuit unit and memory storage device
US8943289B2 (en) Data moving method for flash memory module, and memory controller and memory storage apparatus using the same
CN101872318B (en) Data access method for flash memory and storage system and controller thereof
CN102567221B (en) Data management method, memory controller and memory storage device
CN103106148B (en) Block management method, storage controller and storage storing device
CN109273033B (en) Memory management method, memory control circuit unit and memory storage device
CN101566969B (en) Method and controller capable of enhancing management efficiency of nonvolatile storage
CN102467459B (en) Data write method, memory controller and memory device
CN108108118B (en) Data writing method and storage controller
CN102841853B (en) Memory management table disposal route, Memory Controller and memorizer memory devices
CN113138720B (en) Data storage method, memory control circuit unit and memory storage device
CN108664350B (en) Data protection method, memory storage device and memory control circuit unit
TWI785571B (en) Data storing method, memory controlling circuit unit and memory storage device
US9009389B2 (en) Memory management table processing method, memory controller, and memory storage apparatus

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant