CN102455975A - Method for data shaping and memory device and controller thereof - Google Patents

Method for data shaping and memory device and controller thereof Download PDF

Info

Publication number
CN102455975A
CN102455975A CN2010105224693A CN201010522469A CN102455975A CN 102455975 A CN102455975 A CN 102455975A CN 2010105224693 A CN2010105224693 A CN 2010105224693A CN 201010522469 A CN201010522469 A CN 201010522469A CN 102455975 A CN102455975 A CN 102455975A
Authority
CN
China
Prior art keywords
data
shaping
controller
sign indicating
information
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.)
Granted
Application number
CN2010105224693A
Other languages
Chinese (zh)
Other versions
CN102455975B (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to CN201010522469.3A priority Critical patent/CN102455975B/en
Publication of CN102455975A publication Critical patent/CN102455975A/en
Application granted granted Critical
Publication of CN102455975B publication Critical patent/CN102455975B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The invention relates to a method for data shaping, which is applied to a controller of a flash memory comprising multiple blocks. The method comprises the following steps of: performing program optimization operation based on original data and multiple shaping codes to generate trace back information corresponding to a trellis diagram as side information; and dynamically selecting at least one shaping code from the shaping codes based on the side information to perform data shaping on the original data. The invention also provides a related memory device and a controller thereof. The invention also relates to a related memory device and a controller thereof. By properly designing a data shaping module/data recovery module and with the aid of related data flow control, the method for data shaping provided by the invention can perform appropriate data pattern management aiming at data accessed by the controller, thus reducing the occurrence of error. In addition, the invention can not increase much additional cost and even saves more cost than the correlation technique.

Description

The method that is used for carrying out data shaping with and memory storage and controller
Technical field
The present invention relates in the access (Access) of flash memory (Flash Memory), more particularly, relate to a kind of be used for the carrying out method of data shaping (Data Shaping) and relevant memory storage and controller thereof.
Background technology
Technology owing to flash memory constantly develops in recent years; Various Portable memory storages (for example: the memory card that meets SD/MMC, CF, MS, XD standard) or possess the solid state hard disc of flash memory (Solid State Drive SSD) is implemented in many application widely.Therefore, the access control of the flash memory in these memory storages becomes quite popular subject under discussion then.
With NAND type flash memory commonly used, it mainly can divide into the single-order cell, and (Single Level Cell is SLC) with multistage cell (Multiple Level Cell, MLC) two big types flash memory.The transistor that in the single-order cell flash memory each is taken as mnemon has only two kinds of charge values, is used for presentation logic value 0 and logical value 1 respectively.In addition; The transistorized storage capacity that in the multistage cell flash memory each is taken as mnemon then is fully utilized; Adopt higher voltage to drive, in a transistor, write down two groups of (or more than) information (00,01,11,10) with the voltage that sees through different stage; In theory, the recording density of multistage cell flash memory can reach the twice of the recording density of single-order cell flash memory, and this is extraordinary message for once for the related industry of the NAND type flash memory that runs into bottleneck in the evolution.
Compared to single-order cell flash memory, because the price of multistage cell flash memory is more cheap, and can provide bigger capacity in limited space, so multistage cell flash memory becomes the main flow that Portable memory storage on the market competitively adopts soon.Yet the problem that instability caused of multistage cell flash memory is also appeared in one's mind one by one.Can meet related specifications in order to ensure memory storage to the access control of flash memory, the controller of flash memory has some administrative mechanism usually with the properly access of management data.
According to correlation technique, there has been the memory storage of these administrative mechanisms that weak point is still arranged.For instance, the user possibly constantly write the data with some particular data type appearance based on its use habit, and these particular data type appearance make the mistake especially easily (for example: write error, read error ... etc.); Adjust data in the hope of solving such problem though in memory storage, be provided with randomizer (Randomizer), because the design of traditional low cost, consequently adjusted data inadequately at random.In addition, in case the data storing appearance attitude of flash memory has specific restriction, the problem of the choice (Trade-off) between hardware resource deficiency and the increase cost possibly take place.Therefore, need a kind of method of novelty to carry out appropriate data type appearance management, to reduce wrong generation to the data of this controller institute access.
Summary of the invention
The technical matters that the present invention will solve is; The defective that is prone to make the mistake when in multistage cell flash memory, constantly writing the data of particular data type appearance to prior art above-mentioned; Provide a kind of being used for to carry out the method for data shaping (Data Shaping) and relevant memory storage and controller thereof, to address the above problem.
Another object of the present invention is to provide a kind of be used for the carrying out method of data shaping and relevant memory storage and controller thereof, to suppress error in data.
Another object of the present invention is to provide a kind of be used for the carrying out method of data shaping and relevant memory storage and controller thereof; So that under a lot of situation of the quantity of the shaping sign indicating number that can supply to be used for carrying out data shaping (Shaping Code); Still suitable shaping sign indicating number can be promptly screened, and huge hardware structure need not be implemented.
One of the technical solution adopted for the present invention to solve the technical problems is: construct a kind of method that is used for carrying out data shaping; This method is applied to the controller of a flash memory (Flash Memory); This flash memory comprises a plurality of blocks; This method includes: carry out one according to raw data and a plurality of shaping sign indicating number and write optimization (Program Optimization) running, to produce (Trace Back) information of reviewing corresponding to a trellis diagram (Trellis Diagram) as other information (Side Information); And dynamically select at least one shaping sign indicating number in those shaping sign indicating numbers according to this side information, so that this raw data is carried out data shaping.
The described method of the invention described above, wherein the level of each in (Stage) at different levels of this trellis diagram comprises a plurality of subpaths; And those subpaths of each grade are represented those shaping sign indicating numbers respectively.
The described method of the invention described above, wherein carry out this and write optimization running and comprise in addition to produce corresponding to the information of reviewing of this trellis diagram step as this side information according to this raw data and those shaping sign indicating numbers:
Seek the optimization path in this trellis diagram; And produce in this optimization path and review information at least a portion as this side information with respect to the subpath of each sub-paths at different levels; Wherein the terminal point in this optimization path is the optimum condition in each result phase of afterbody of this trellis diagram, and this side information comprises the endpoint information of representing this optimum condition.
The described method of the invention described above, wherein carry out this and write optimization running and comprise in addition to produce corresponding to the information of reviewing of this trellis diagram step as this side information according to this raw data and those shaping sign indicating numbers:
At different levels to this trellis diagram; Carry out corresponding to Viterbi (Viterbi) algorithm addition, comparison, with select (Add Compare Select; ACS) running; With the reviewing indicator (Trace Back Indicator) and seek this optimum condition in those result phases of this afterbody of this trellis diagram of each result phase of producing the one-level at least in those grades, wherein this subpath information of reviewing in this side information comprises those and reviews at least a portion in the indicator.
The described method of the invention described above, wherein this raw data comprises the partial data (Partial Data) of (Stage) at different levels that correspond respectively to this trellis diagram; And carry out this according to this raw data and those shaping sign indicating numbers and write optimization running and comprise in addition to produce corresponding to the information of reviewing of this trellis diagram step as this side information:
To specific part data, calculate at least two the branch metric values (Branch Metric) that correspond respectively at least two shaping sign indicating numbers corresponding to an a specific order; And
At least a portion in a plurality of branch metric values of those grades of accumulative total writes the optimization running to carry out this.
The described method of the invention described above, wherein dynamically select this at least one shaping sign indicating number in those shaping sign indicating numbers to comprise in addition with the step of this raw data being carried out data shaping according to this side information:
Carry out data shaping to the highest significant position about the mnemon in this flash memory in this raw data, but not data shaping is carried out in the whole positions about this mnemon in this raw data.
The described method of the invention described above; Wherein in the middle of (Stage) at different levels of this trellis diagram, the subpath of changing corresponding to equal state in a subpath of changing corresponding to particular state in arbitrary level and another grade is all represented the same shaping sign indicating number in the middle of those shaping sign indicating numbers.
The described method of the invention described above, wherein this raw data comprises the partial data (Partial Data) of (Stage) at different levels that correspond respectively to this trellis diagram; And dynamically select this at least one shaping sign indicating number in those shaping sign indicating numbers to comprise in addition with the step of this raw data being carried out data shaping according to this side information:
To specific part data, in those shaping sign indicating numbers, select a specific shaping sign indicating number according at least a portion in this side information, to carry out data shaping corresponding to these specific part data corresponding to an a specific order.
The described method of the invention described above, it includes in addition:
At least a portion in this side information or its representative information are stored in this flash memory, for the usefulness of recapturing (Recovery) of this raw data.
The described method of the invention described above, it includes in addition:
In one read running during, this flash memory is obtained this at least a portion or its representative information in this side information certainly, and recaptures (Recover) this raw data according to this.
Two of the technical solution adopted for the present invention to solve the technical problems is: construct a kind of memory storage, it includes: a flash memory, and this flash memory comprises a plurality of blocks; And a controller, be used for this flash memory of access (Access) and management this a plurality of blocks, and the data that are directed against the access of the institute of this controller own are in addition carried out data shaping.In addition, this controller carries out one according to raw data and a plurality of shaping sign indicating number and writes optimization running, to produce the information of reviewing corresponding to a trellis diagram as other information.In addition, this controller includes at least one data shaping module/data retrieval (Recovery) module, is used for dynamically selecting at least one shaping sign indicating number in those shaping sign indicating numbers according to this side information, so that this raw data is carried out data shaping.
The described memory storage of the invention described above, wherein the level of each in (Stage) at different levels of this trellis diagram comprises a plurality of subpaths; And those subpaths of each grade are represented those shaping sign indicating numbers respectively.
The described memory storage of the invention described above, wherein this controller is sought the optimization path in this trellis diagram, and produces in this optimization path and review information at least a portion as this side information with respect to the subpath of each sub-paths at different levels; And the terminal point in this optimization path is the optimum condition in each result phase of afterbody of this trellis diagram, and this side information comprises the endpoint information of representing this optimum condition.
The described memory storage of the invention described above; Wherein be directed against the at different levels of this trellis diagram; This controller carry out corresponding to the addition of Viterbi (Viterbi) algorithm, comparison, with select (Add Compare Select; ACS) running, reviewing indicator (Trace Back Indicator) and seeking this optimum condition in those result phases of this afterbody of this trellis diagram with each result phase of producing the one-level at least in those grades; And this subpath information of reviewing in this side information comprises those and reviews at least a portion in the indicator.
The described memory storage of the invention described above, wherein this raw data comprises the partial data (Partial Data) of (Stage) at different levels that correspond respectively to this trellis diagram; To the specific part data corresponding to an a specific order, this controller calculates at least two the branch metric values (Branch Metric) that correspond respectively at least two shaping sign indicating numbers; And at least a portion in a plurality of branch metric values of these those grades of controller accumulative total, write the optimization running to carry out this.
The described memory storage of the invention described above, wherein this controller carries out data shaping to the highest significant position about the mnemon in this flash memory in this raw data, but not data shaping is carried out in the whole positions about this mnemon in this raw data.
The described memory storage of the invention described above; Wherein in the middle of (Stage) at different levels of this trellis diagram, the subpath of changing corresponding to equal state in a subpath of changing corresponding to particular state in arbitrary level and another grade is all represented the same shaping sign indicating number in the middle of those shaping sign indicating numbers.
The described memory storage of the invention described above, wherein this raw data comprises the partial data (Partial Data) of (Stage) at different levels that correspond respectively to this trellis diagram; And to the specific part data corresponding to an a specific order, this data shaping module/data retrieval module is selected a specific shaping sign indicating number according at least a portion in this side information in those shaping sign indicating numbers, to carry out the data shaping corresponding to these specific part data.
The described memory storage of the invention described above, wherein at least a portion or its representative information of this controller in will this side information is stored in this flash memory, recaptures usefulness for this raw data.
The described memory storage of the invention described above; Wherein in one read running during; This controller is obtained this at least a portion or its representative information in this side information from this flash memory, and this data shaping module/data retrieval module is recaptured (Recover) this raw data according to this.
Three of the technical solution adopted for the present invention to solve the technical problems is: the controller of constructing a kind of memory storage; This controller is used for access one flash memory; This flash memory comprises a plurality of blocks; This controller includes: (Read Only Memory ROM), is used for storing a program code to a ROM (read-only memory); One microprocessor is used for carrying out this program code with control access and these a plurality of blocks of management to this flash memory, and wherein under the control of this microprocessor, this controller carries out data shaping to the data of the institute of this controller access own.In addition, this controller carries out one according to raw data and a plurality of shaping sign indicating number and writes optimization running, to produce the information of reviewing corresponding to a trellis diagram as other information.In addition, this controller includes at least one data shaping module/data retrieval module in addition, is used for dynamically selecting at least one shaping sign indicating number in those shaping sign indicating numbers according to this side information, so that this raw data is carried out data shaping.
The described controller of the invention described above, wherein the level of each in (Stage) at different levels of this trellis diagram comprises a plurality of subpaths; And those subpaths of each grade are represented those shaping sign indicating numbers respectively.
The described controller of the invention described above, wherein this controller is sought the optimization path in this trellis diagram, and produces in this optimization path and review information at least a portion as this side information with respect to the subpath of each sub-paths at different levels; And the terminal point in this optimization path is the optimum condition in each result phase of afterbody of this trellis diagram, and this side information comprises the endpoint information of representing this optimum condition.
The described controller of the invention described above; Wherein be directed against the at different levels of this trellis diagram; This controller carry out corresponding to the addition of Viterbi (Viterbi) algorithm, comparison, with select (Add Compare Select; ACS) running, reviewing indicator (Trace Back Indicator) and seeking this optimum condition in those result phases of this afterbody of this trellis diagram with each result phase of producing the one-level at least in those grades; And this subpath information of reviewing in this side information comprises those and reviews at least a portion in the indicator.
The described controller of the invention described above, wherein this raw data comprises the partial data (Partial Data) of (Stage) at different levels that correspond respectively to this trellis diagram; To the specific part data corresponding to an a specific order, this controller calculates at least two the branch metric values (Branch Metric) that correspond respectively at least two shaping sign indicating numbers; And at least a portion in a plurality of branch metric values of these those grades of controller accumulative total, write the optimization running to carry out this.
The described controller of the invention described above, wherein this controller carries out data shaping to the highest significant position about the mnemon in this flash memory in this raw data, but not data shaping is carried out in the whole positions about this mnemon in this raw data.
The described controller of the invention described above; Wherein in the middle of (Stage) at different levels of this trellis diagram, the subpath of changing corresponding to equal state in a subpath of changing corresponding to particular state in arbitrary level and another grade is all represented the same shaping sign indicating number in the middle of those shaping sign indicating numbers.
The described controller of the invention described above, wherein this raw data comprises the partial data (Partial Data) of (Stage) at different levels that correspond respectively to this trellis diagram; And to the specific part data corresponding to an a specific order, this data shaping module/data retrieval module is selected a specific shaping sign indicating number according at least a portion in this side information in those shaping sign indicating numbers, to carry out the data shaping corresponding to these specific part data.
The described controller of the invention described above, wherein at least a portion or its representative information of this controller in will this side information is stored in this flash memory, recaptures usefulness for this raw data.
The described controller of the invention described above; Wherein in one read running during; This controller is obtained this at least a portion or its representative information in this side information from this flash memory, and this data shaping module/data retrieval module is recaptured (Recover) this raw data according to this.
The technical scheme of embodiment of the present invention; Has following beneficial effect: through design data Shaping Module/data retrieval module suitably; Be aided with relevant data flow con-trol, the present invention can carry out appropriate data type appearance management to the data of controller institute access, to reduce wrong generation.
In addition, the present invention can not increase many extra costs, even more can save cost than correlation technique.
Description of drawings
To combine accompanying drawing and embodiment that the present invention is described further below, in the accompanying drawing:
Figure 1A is the synoptic diagram according to a kind of memory storage of the present invention one first embodiment;
Figure 1B and Fig. 1 C are the implementation detail of the memory storage shown in Figure 1A in an embodiment;
Fig. 1 D and Fig. 1 E are about the implementation detail of the shaping sign indicating number shown in Figure 1A (Shaping Code) generator in the various embodiment;
Fig. 2 is the process flow diagram of the method that is used for carrying out data shaping (Data Shaping) according to one embodiment of the invention a kind of;
Fig. 3 A to Fig. 3 C be method shown in Figure 2 in an embodiment about writing the implementation detail of optimization (Program Optimization) running, wherein Fig. 3 C illustrates the shaping sign indicating number that the data shaping module shown in Figure 1A is adopted in addition when carrying out data shaping;
Fig. 4 A to Fig. 4 E be method shown in Figure 2 in another embodiment about writing the implementation detail of optimization running;
Fig. 5 illustrates among the embodiment about the position information of the mnemon in the flash memory shown in Figure 1A and each relevant rank thereof.
[primary clustering symbol description]
Figure BSA00000321752400081
Figure BSA00000321752400101
Embodiment
Please refer to Figure 1A, Figure 1A is that wherein the memory storage 100 of present embodiment especially can be the Portable memory storage according to the synoptic diagram of a kind of memory storage 100 of the present invention one first embodiment; For example: the memory card that meets SD/MMC, CF, MS, XD standard; Or universal serial bus flash (Universal Serial Bus Flash Drive, USB Flash Drive also is called USB Flash Disk); Be so-called carry-on dish, but not as limit.Memory storage 100 includes: a flash memory (Flash Memory) 120; And a controller, be used for access flash memory 120, wherein this controller Memory Controller 110 for example.According to present embodiment, Memory Controller 110 comprise a microprocessor 112, a ROM (read-only memory) (Read Only Memory, ROM) 112M, a steering logic 114, a memory buffer 116, with an interface logic 118.In addition; Steering logic 114 comprises at least one data shaping module/data retrieval (Recovery) module; Such as a data shaping module 114DS; And comprise a scrambler 114E and a front processor 114P in addition, wherein data shaping module 114DS comprise an adjustment unit 114A, an extra cell 114AP, with a shaping sign indicating number (Shaping Code) generator 114G.On real the work, adjustment unit 114A can be an XOR (Exclusive OR, XOR) a logic lock or a totalizer.Note that be example at this with the Portable memory storage; This is not a limitation of the present invention just for illustrative purposes.According to a variant of present embodiment, memory storage 100 can be solid state hard disc (Solid State Drive, SSD).
In present embodiment, ROM (read-only memory) 112M is used for storing a program code 112C, and microprocessor 112 then is used for executive routine code 112C with the access (Access) of control to flash memory 120.Under typical situation, flash memory 120 comprises a plurality of blocks (Block), and this controller (for example: the Memory Controller 110 that sees through microprocessor 112 executive routine code 112C) the erase running of data is that unit erases with the block to flash memory 120.In addition, a block can write down the page or leaf (Page) of specific quantity, and wherein above-mentioned controller is that unit writes with the page or leaf to the running that flash memory 120 writes data.
On real the work; The Memory Controller 110 that sees through microprocessor 112 executive routine code 112C can utilize itself inner assembly to carry out many control runnings, for example: utilize steering logic 114 to control the access running of flash memory 120 (especially at least one block or the access running of one page at least), utilize memory buffer 116 to carry out required buffered and utilize an interface logic 118 and a main device (Host Device) to link up.According to present embodiment, except ability access flash memory 120, Memory Controller 110 can also properly be managed these a plurality of blocks.
In addition, Memory Controller 110 also can be to the data of itself institute's access (for example: data D1) carry out data shaping (Data Shaping).Especially; Under the control of microprocessor 112; To the data of Memory Controller 110 institutes access own, (for example: running data shaping module 114DS) is carried out data shaping to suppress error in data to Memory Controller 110 through utilizing above-mentioned at least one data shaping module/data retrieval module.Clearer and more definite; This controller (in present embodiment especially the front processor 114P in it) carries out one according to a plurality of shaping sign indicating numbers with raw data such as data D1 and writes optimization (Program Optimization) running, with generation corresponding to (Trace Back) information of reviewing of a trellis diagram (Trellis Diagram) as other information (Side Information) I SIDE, above-mentioned at least one data shaping module/data retrieval module (for example: data shaping module 114DS) then according to other information I SIDEDynamically select at least one shaping sign indicating number in those shaping sign indicating numbers, so that this raw data is carried out data shaping.
In present embodiment, front processor 114P can be according to data D1 and past data information I PD(be the information of past data, for example the stored information of last memory page or leaf in the flash memory) produces other information I SIDE, wherein this controller can one write/utilize during reading order other information I in receiving SIDEIn the running of being correlated with of at least a portion or its representative information, and this writes/reading order is used for indicating this controller to write/reading of data in flash memory 120.For example: represent at above-mentioned writing/reading order under the situation of a write command, this controller can use other information I immediately SIDECarry out data shaping.Clearer and more definite, shaping sign indicating number generator 114G can be according to other information I SIDEIn at least a portion or its representative information produce at least one shaping sign indicating number, such as corresponding one or more shaping sign indicating number 114SPC, for a plurality of positions that are used for when this controller receives this write command, adjusting this raw data (such as data D1).In addition, adjustment unit 114A adjusts data D1 to produce adjusted data D according to above-mentioned at least one shaping sign indicating number RND1In addition, extra cell 114AP can be with other information I SIDEIn at least a portion or its representative information be additional to data D RND1, as its additional information I ASo, scrambler 114E can be to data D RND1Together with additional information I AEncode.Therefore, in one write running during, this controller not only with data storing in flash memory 120, also with other information I SIDEIn at least a portion or its representative information be stored in flash memory 120, recapture usefulness for this raw data.So, represent at above-mentioned writing/reading order under the situation of a reading order, in one read running during, this controller can be obtained other information I from flash memory 120 SIDEIn this at least a portion or its representative information, and above-mentioned at least one data shaping module/data retrieval module is (for example: data shaping module 114DS) can recapture (Recover) this raw data according to this such as data D1.
Note that the special case according to present embodiment, data shaping module 114DS can be used to be used as a data retrieval module, its can in one read running during retrieving data.Especially; Adjustment unit 114A among the data shaping module 114DS and shaping sign indicating number generator 114G can be used for retrieving data during reading running in one, and wherein extra cell 114AP can switch through the path of commutation circuit and temporarily broken off and be not electrically connected to adjustment unit 114A.Another special case according to present embodiment; Except data shaping module 114DS; Above-mentioned at least one data shaping module/data retrieval module can comprise a data retrieval module in addition; It can in one read running during retrieving data, thus, Memory Controller 110 can write and read running simultaneously.For example: this data retrieval module can be switched through the path of commutation circuit and utilizes adjustment unit 114A and/or shaping sign indicating number generator 114G.Again for example: the data retrieval module can comprise the adjustment unit of itself.Again for example: this data retrieval module can comprise the shaping sign indicating number generator of itself.
According to present embodiment, represent at above-mentioned writing/reading order under the situation of this write command, when representing a write paths through the data routing of adjustment unit 114A, on behalf of this controller, data D1 can desire to write this raw data of flash memory 120, and data D RND1Can represent adjusted data, and data D RND1And additional information I ASent and given scrambler 114E; So; Scrambler 114E encodes according to this, and (Error Correction Code ECC) encodes to produce coded data especially to carry out error correcting code; And this coded data write flash memory 120, wherein this coded data can comprise parity check code (Parity Code).This is not a limitation of the present invention just for illustrative purposes.Special case according to present embodiment; Can be used to be used as the special case of data retrieval module such as above-mentioned data shaping module 114DS; Represent at above-mentioned writing/reading order under the situation of this reading order; When representing a read path through the data routing of adjustment unit 114A, this read path can be coupled to a demoder 114D (not being shown among Figure 1A), and wherein demoder 114D decodes to reading from the coded data of flash memory 120; Especially carry out the error correcting code decoding to produce decoded data, such as data D RND1And additional information I A(promptly other information I SIDEIn at least a portion or its representative information).Under this situation, input and the output of adjustment unit 114A are exchanged; And adjustment unit 114A such as corresponding one or more shaping sign indicating number 114SPC, adjusts data D according at least one shaping sign indicating number RND1With retrieving data D1, for further processing.
According to a variant of present embodiment, this writes at least one program module that optimization operates among the program code 112C capable of using and realizes; So, front processor 114P replaceable is carried out the Memory Controller 110 of this program module for seeing through microprocessor 112.
Figure 1B and Fig. 1 C are the implementation detail of memory storage 100 in an embodiment shown in Figure 1A.Shown in Figure 1B, represent at above-mentioned writing/reading order under the situation of this write command, front processor 114P reads past data information I from memory buffer 116 PD, and according to data D1 and past data information I PDCarry out this and write the optimization running to produce other information I SIDEIn addition, data shaping module 114DS is then from memory buffer 116 sense data D1 and according to other information I SIDEDynamically select at least one shaping sign indicating number in those shaping sign indicating numbers, produce data D so that data D1 is carried out data shaping RND1So, data shaping module 114DS is according to other information I SIDEProduce at least one shaping sign indicating number, such as corresponding one or more shaping sign indicating number 114SPC, and a plurality of position of adjusting data D1 according to this is to produce adjusted data D RND1Data shaping module 114DS is in addition with additional information I ABe additional to data D RND1(in Figure 1B, illustrate to produce data splitting to having added additional information I AData D RND1).In addition, scrambler 114E carries out error correcting code coding to this data splitting and (illustrates to having added additional information I in the upper right corner of Figure 1B to produce coded data AData D with parity check code P1 RND1), and this coded data write flash memory 120.
Shown in Fig. 1 C, to represent at above-mentioned writing/reading order under the situation of this reading order, the coded data that Memory Controller 110 is read from flash memory 120 (illustrates to having added additional information I in the upper right corner of Fig. 1 C AData D with parity check code P1 RND1) be transferred into demoder 114D and memory buffer 116 respectively, wherein under the control of Memory Controller 110,116 of memory buffer are storage data D temporarily RND1With additional information I ABut not parity check code P1.Read retry controller 114RR and be used for when demoder 114D decodes, reading retry control.In addition, demoder 114D decodes to reading from the coded data of flash memory 120; In case the mistake of detecting just produces correction data more with the data D in the corrigendum memory buffer 116 RND1And/or additional information I ASo data retrieval module 114DR is according to additional information I A(be above-mentioned other information I SIDEIn at least a portion or its representative information) retrieving data D1.According to present embodiment, data retrieval module 114DR can be according to additional information I AProduce at least one shaping sign indicating number,, and adjust data D according to this such as corresponding one or more shaping sign indicating number 114SPC RND1A plurality of position with retrieving data D1, for further processing.
According to a variant of present embodiment, data shaping module 114DS and data retrieval module 114DR can be same assembly, and therefore can be called data shaping module/data retrieval module in the lump.
Fig. 1 D is about the implementation detail of the shaping sign indicating number generator 114G shown in Figure 1A among the embodiment.The shaping sign indicating number generator 114G of present embodiment comprises a control module 114C and a lookup table (Look-upTable) 114T, and wherein lookup table 114T stores this a plurality of shaping sign indicating numbers.Because these a plurality of shaping sign indicating numbers comprise above-mentioned one or more shaping sign indicating number 114SPC, so any one of these one or more shaping sign indicating number 114SPC is selected from this a plurality of shaping sign indicating numbers.
In present embodiment, control module 114C can be according to other information I SIDEProduce corresponding controlling signal C 1, and through utilizing lookup table 114T to come to check according to this to produce these one or more shaping sign indicating number 114SPC.This is not a limitation of the present invention just for illustrative purposes.According to a variant of present embodiment, shaping sign indicating number generator 114G can directly use other information I SIDE(or additional information I A) at least a portion as controlling signal C 1, and above-mentioned control module 114C need be set in this variant.According to another variant of present embodiment, above-mentioned control module 114C is a selected cell by replacement, in order to select other information I SIDE(or additional information I A) at least a portion as controlling signal C 1
The shaping sign indicating number generator 114G that note that present embodiment also can be applicable to the data retrieval module in the embodiment shown in Figure 1A to Fig. 1 C or its variant.
Fig. 1 E be among another embodiment about the implementation detail of the shaping sign indicating number generator 114G shown in Figure 1A, wherein present embodiment is the variant of Fig. 1 D illustrated embodiment.Except above-mentioned control module 114C and lookup table 114T; The shaping sign indicating number generator 114G of present embodiment comprises a randomizer (Randomizer)/separate randomizer (Derandomizer) 114R in addition; And comprise a multiplexer 114M in addition; Wherein lookup table 114T stores the part in these a plurality of shaping sign indicating numbers, and randomizer/separate arbitrary shaping sign indicating number that randomizer 114R can produce the another part in these a plurality of shaping sign indicating numbers.
In present embodiment, control module 114C can be according to other information I SIDEProduce corresponding controlling signal C 0, and through utilizing controlling signal C 0Select output or the randomizer of lookup table 114T/separate the output of randomizer 114R, as the output of shaping sign indicating number generator 114G.For example: at control module 114C through utilizing controlling signal C 0Select under the situation of output as the output of shaping sign indicating number generator 114G of lookup table 114T, control module 114C can be according to other information I SIDEProduce corresponding controlling signal C 1, and through utilizing lookup table 114T to check to produce at least a portion of these one or more shaping sign indicating number 114SPC.Again for example: at control module 114C through utilizing controlling signal C 0Select randomizer/separate under the situation of output as the output of shaping sign indicating number generator 114G of randomizer 114R, control module 114C can be according to other information I SIDEProduce corresponding controlling signal C 2As randomizer/the separate input seed (Seed) of randomizer 114R; Make randomizer/separate randomizer 114R to produce at least one random function (Random Function) according to this; The sequence (it can be described as random series) of this random function of randomizer/separate randomizer 114R output wherein is as at least a portion of these one or more shaping sign indicating number 114SPC.This is not a limitation of the present invention just for illustrative purposes.According to the different variant of present embodiment, shaping sign indicating number generator 114G can directly use other information I SIDE(or additional information I A) at least a portion as controlling signal C 0, C 1, and/or C 2, and above-mentioned control module 114C need be set in those variant.According to other variant of present embodiment, above-mentioned control module 114C is replaced is at least one selected cell, in order to select other information I SIDE(or additional information I A) at least a portion as controlling signal C 0, C 1, and/or C 2
The shaping sign indicating number generator 114G that note that present embodiment also can be applicable to the data retrieval module in the embodiment shown in Figure 1A to Fig. 1 C or its variant.
According to one embodiment of the invention; Variant such as Fig. 1 D and Fig. 1 E illustrated embodiment; Shaping sign indicating number generator 114G comprises randomizer/separate randomizer 114R; Above-mentioned lookup table 114T and multiplexer 114M wherein need be set in this variant, need not produce controlling signal C yet 0With C 1In present embodiment; Randomizer/separate randomizer 114R can produce the arbitrary shaping sign indicating number in these a plurality of shaping sign indicating numbers; And randomizer/separate the sequence (i.e. this random series) of this random function of randomizer 114R output, as these one or more shaping sign indicating number 114SPC.This is not a limitation of the present invention just for illustrative purposes.According to a variant of present embodiment, shaping sign indicating number generator 114G can directly use other information I SIDE(or additional information I A) at least a portion as controlling signal C 2, and above-mentioned control module 114C need be set in this variant.According to another variant of present embodiment, above-mentioned control module 114C is a selected cell by replacement, in order to select other information I SIDE(or additional information I A) at least a portion as controlling signal C 2
Based on the framework in each embodiment/variant of above exposure, the present invention can give multistage cell, and (Multiple Level Cell, MLC) the splendid operational effectiveness of flash memory especially give three rank cell flash memories splendid operational effectiveness.The correlative detail that Memory Controller 110 carries out data shaping can further specify with reference to figure 2.
Fig. 2 is the process flow diagram of the method 910 that is used for carrying out data shaping according to one embodiment of the invention a kind of.This method can be applicable to the memory storage 100 shown in Figure 1A, and especially above-mentioned controller (for example: the Memory Controller 110 that sees through microprocessor 112 executive routine code 112C).In addition, this method can be implemented through utilizing the memory storage 100 shown in Figure 1A, especially through utilizing above-mentioned controller to implement.This method is explained as follows:
Step 912: this controller (in present embodiment especially the front processor 114P in it) according to raw data (for example: data D1) carry out one with a plurality of shaping sign indicating numbers and write the optimization running and write the optimization running such as above-mentioned, to produce the information of reviewing corresponding to a trellis diagram as other information I SIDEPlease note; Variant according to present embodiment; Write optimization such as this and operate the variant that this program module among the program code 112C capable of using realizes, front processor 114P replaceable is carried out the Memory Controller 110 of this program module for seeing through microprocessor 112.
Step 914: above-mentioned at least one data shaping module/data retrieval module (for example: data shaping module 114DS) according to other information I SIDEDynamically select at least one shaping sign indicating number in those shaping sign indicating numbers, such as above-mentioned one or more shaping sign indicating number 114SPC, so that this raw data is carried out data shaping.For example: the running of above-mentioned data shaping can be embodied as carries out XOR (XOR) computing at least a portion of this raw data and above-mentioned at least one shaping sign indicating number; Especially XOR is carried out in the corresponding position of both (this at least a portion of this raw data and above-mentioned at least one shaping sign indicating numbers), wherein such XOR can be described as " position XOR " (Bitwise XOR) computing.
According to present embodiment, this trellis diagram comprise multistage (Stage) 360-1,360-2 ..., 360-(K-1) and 360-K.Each level such as k level 360-k among this trellis diagram at different levels (k=1,2 ..., (K-1) or K, wherein K is a positive integer) comprise a plurality of subpath { P X1 (k), X2 (k).For example: X1 (k) and X2 (k) can be the integer of arbitrary integer, especially nonnegative number in the set of same integer.At this, a subpath P X1 (k), X2 (k)Be by state S at the beginning in the middle of the k level 360-k X1 (k)To a result phase S X2 (k)The path of state exchange, wherein if having next stage (i.e. (k+1) grade 360-(k+1)), then result phase S X2 (k)State at the beginning for next stage.For brevity, above-mentioned initial state S X1 (k)With result phase S X2 (k)Can be write as state S respectively X(k) and S X(k+1).For example: at this trellis diagram is under the situation of four condition trellis diagram, X=0,1,2 or 3.Again for example: at this trellis diagram is under the situation of eight state trellis diagrams, X=0,1 ... or 7.This is not a limitation of the present invention just for illustrative purposes.According to the different variant of present embodiment, the quantity of the probable value of state index X can be the positive integer except four and eight, and the representative value of this quantity is greater than one.According to other variant of present embodiment, state index X needs not to be integer.
In addition, those subpaths of each grade are represented those shaping sign indicating numbers respectively.For example: in each the level such as k level 360-k in the middle of, those subpaths { P X1 (k), X2 (k)In a certain subpath P X1 (k), X2 (k)Represent the shaping sign indicating number SPC in those shaping sign indicating numbers X1 (k), X2 (k)Especially, be under the situation of same group of described those shaping sign indicating numbers of shaping sign indicating number such as step 912 shaping sign indicating number SPC at candidate's shaping sign indicating number relevant in the middle of each grade X1 (k), X2 (k)Can be rewritten into SPC X1, X2No matter, make the value of index k be 1,2 ..., (K-1) or K, subpath P X1 (k), X2 (k)Always represent the same shaping sign indicating number SPC in those shaping sign indicating numbers X1, X2That is to say, under this situation, shaping sign indicating number SPC X1, X2Irrelevant with the index k of k level 360-k.So, in the middle of those levels of this trellis diagram, the subpath of changing corresponding to equal state in a subpath of changing corresponding to particular state in arbitrary level and another grade is all represented the same shaping sign indicating number in the middle of those shaping sign indicating numbers.
In present embodiment, this controller is sought the optimization path in this trellis diagram, and produces in this optimization path with respect at different levels that (for example: each sub-paths k level 360-k) (for example: those subpaths { P X1 (k), X2 (k)) subpath review information as other information I SIDEAt least a portion, wherein the terminal point in this optimization path is each result phase S of the afterbody 360-K of this trellis diagram X(K+1) (for example: X=0,1,2 ... etc.) in an optimum condition S X0And other information I (K+1), SIDEComprise and represent optimum condition S X0(K+1) endpoint information is such as the binary value of X0.Especially; At different levels to this trellis diagram; This controller carry out corresponding to the addition of Viterbi (Viterbi) algorithm, comparison, with select (Add Compare Select; ACS) running, reviewing indicator (Trace Back Indicator) and seeking those result phases S of the afterbody 360-K of this trellis diagram with each result phase of producing one-level at least in those grades (for example: in those grades whole) X(K+1) the optimum condition S in X0(K+1), wherein other information I SIDEIn this subpath information of reviewing comprise those and review at least a portion in the indicator.For example: this controller can produce each result phase S such as k level 360-k at different levels of this trellis diagram X(k+1) review indicator TBI X(k).So, this controller can be according to this endpoint information (for example: the binary value of X0) (for example: review indicator TBI review information with this subpath X(k) at least a portion in) find this optimization path, and determine according to this in this optimization path corresponding to arbitrary grade of shaping sign indicating number, so that the part corresponding to the k0 level in this raw data is carried out data shaping such as the subpath representative of k0 level.For example: the subpath corresponding to the k0 level in this optimization path is subpath P X1 (k0), X2 (k0)Situation under because subpath P X1 (k0), X2 (k0)Candidate's shaping sign indicating number of representative is shaping sign indicating number SPC X1, X2, this controller is just through utilizing shaping sign indicating number SPC X1, X2, the part corresponding to the k0 level in this raw data is carried out data shaping.
Fig. 3 A to Fig. 3 C be method 910 shown in Figure 2 in an embodiment about writing the implementation detail of optimization running; Wherein Fig. 3 C illustrates the shaping sign indicating number 310 that the data shaping module 114DS shown in Figure 1A is adopted in addition when carrying out data shaping; Such as shaping sign indicating number 310-1,310-2 ..., 310-(K-1) and 310-K, and each shaping sign indicating number 310-k (k=1,2 ..., (K-1) or K) all be selected from described those shaping sign indicating numbers of step 912.Please note; Described this raw data of step 912; Raw data 308 shown in Fig. 3 C; Comprise the 360-1 at different levels that correspond respectively to this trellis diagram, 360-2 ..., partial data (Partial Data) 308-1 with 360-K, 308-2 ... with 308-K, promptly correspond respectively in the raw data 308 the 1st grade of 360-1, the 2nd grade of 360-2 ..., with the part of K level 360-K.
Shown in Fig. 3 A, each level among this trellis diagram at different levels comprises 8 sub-paths { P such as k level 360-k 0,0, P 0,1, P 1,2, P 1,3, P 2,0, P 2,1, P 3,2, P 3,3, and this 8 sub-paths is respectively in the middle of the k level 360-k by state { S 0(k), S 1(k), S 2(k), S 3(k) } to state { S 0(k+1), S 1(k+1), S 2(k+1), S 3The path of state exchange (k+1) }.In addition, this 8 sub-paths { P 0,0, P 0,1, P 1,2, P 1,3, P 2,0, P 2,1, P 3,2, P 3,3Represent 8 shaping sign indicating number { SPC respectively 0,0, SPC 0,1, SPC 1, 2, SPC 1,3, SPC 2,0, SPC 2,1, SPC 3,2, SPC 3,3.In present embodiment, by state S 0(k) point to state S 0(k+1) and S 1(k+1) path can be recorded as 0,1 respectively.Similarly, by state S 1(k) point to state S 2(k+1) and S 3(k+1) path can be recorded as 0,1 respectively.In addition, by state S 3(k) point to state S 3(k+1) and S 2(k+1) path can be recorded as 0,1 respectively.Similarly, by state S 2(k) point to state S 1(k+1) and S 0(k+1) path can be recorded as 0,1 respectively.
Shown in Fig. 3 B, in the process of seeking the optimization path 390 of this optimization path shown in Fig. 3 C, this controller can calculate each result phase S of each grade such as k level 360-k X(k+1) measurement value (Metric) Met X(k+1), wherein this controller can be with each initial state S of the 1st grade of 360-1 X(1) measurement value Met X(1) be set at same numerical value, especially zero.In present embodiment, to partial data 308-k corresponding to k level 360-k, this controller calculate correspond respectively at least two shaping sign indicating numbers at least two branch metric values (Branch Metric) (for example: correspond respectively to shaping sign indicating number SPC 0,0With SPC 2,0Branch metric value BM 0,0(k) and BM 2,0(k)).To correspond respectively to those grades 360-1,360-2 ..., the partial data 308-1 with 360-K, 308-2 ... with 308-K; Through similarly calculating; This controller can add up at least a portion in a plurality of branch metric values of those grades, writes the optimization running to carry out this.
For example: at the initial state S that obtains k level 360-k 0(k) measurement value Met 0(k) with initial state S 2(k) measurement value Met 2(k) under the situation, this controller can be obtained subpath P earlier 0,0With P 2,0Respectively the representative shaping sign indicating number SPC 0,0With SPC 2,0, again according to shaping sign indicating number SPC 0,0With SPC 2,0Calculate and correspond respectively to this two shaping sign indicating number SPC 0,0With SPC 2,0(or correspond respectively to this two sub-paths P 0,0With P 2,0) branch metric value BM 0,0(k) and BM 2,0And calculate and to correspond respectively to this two sub-paths P (k), 0,0With P 2,0Aggregate-value (Met 0(k)+BM 0,0(k)) with (Met 2(k)+BM 2,0(k)).Especially, this controller can be to partial data 308-k and shaping sign indicating number SPC 0,0(upper left corner in Fig. 3 B is denoted as in computing to carry out " position XOR "
Figure BSA00000321752400191
) to produce shaping data SPD 0,0(k), Branch Computed measurement value BM and according to this 0,0(k).Similarly, this controller can be to partial data 308-k and shaping sign indicating number SPC 2,0(lower left corner in Fig. 3 B is denoted as in computing to carry out " position XOR "
Figure BSA00000321752400192
) to produce shaping data SPD 2,0(k), Branch Computed measurement value BM and according to this 2,0(k).On real the work, past data information I PDCan be loaded with at least a portion or its representative information of past data, so this controller can be through comparing SPD 0,0(k) with past data information I PDIn the dependent part Branch Computed measurement value BM that assigns to 0,0(k), and through SPD relatively 2,0(k) with past data information I PDIn the dependent part Branch Computed measurement value BM that assigns to 2,0(k).
In present embodiment, this controller can be selected aggregate-value (Met according at least one pre-defined rule 0(k)+BM 0,0(k)) with (Met 2(k)+BM 2,0(k)) a certain aggregate-value in is state S as a result of 0(k+1) measurement value Met 0And the state S that bears results (k+1), 0(k+1) review indicator TBI 0(k) and keep in, wherein review indicator TBI 0(k) value is pointed out the pairing subpath of the selected aggregate-value of this controller.For example: point out that at this pre-defined rule this controller should select under the situation of maximum aggregate-value, then this controller can be selected this two aggregate-value (Met 0(k)+BM 0,0(k)) with (Met 2(k)+BM 2,0The aggregate-value of the maximum (k)) is state S as a result of 0(k+1) measurement value Met 0(k+1).This is not a limitation of the present invention just for illustrative purposes.According to a variant of present embodiment, point out that at this pre-defined rule this controller should select under the situation of minimum aggregate-value, then this controller can be selected this two aggregate-value (Met 0(k)+BM 0,0(k)) with (Met 2(k)+BM 2,0The aggregate-value of the minimum (k)) is state S as a result of 0(k+1) measurement value Met 0(k+1).According to another variant of present embodiment, comprise a plurality of pre-defined rules at above-mentioned at least one pre-defined rule.
On real the work, in case this controller has been selected this two aggregate-value (Met 0(k)+BM 0,0(k)) with (Met 2(k)+BM 2,0(k)) the some aggregate-values in are just given up another aggregate-value to reduce the workload of this controller.This is not a limitation of the present invention just for illustrative purposes.Variant according to present embodiment; Comprise at alternative aggregate-value under the situation of at least three aggregate-values; In case this controller has been selected the some aggregate-values at least three above-mentioned aggregate-values, just give up other aggregate-value to reduce the workload of this controller.
According to present embodiment, this controller is according to above-mentioned at least one pre-defined rule or other pre-defined rule, in each result phase S of afterbody 360-K X(K+1) select optimum condition S in X0(K+1), especially through comparing each result phase S of afterbody X(K+1) measurement value Met X(K+1), such as Met 0(K+1), Met 1(K+1), Met 2(K+1) and Met 3(K+1), select optimum condition S X0(K+1).So, review indicator TBI according to those X(k) at least a portion is by optimum condition S X0(K+1) rise, this controller can be found out each sub-paths in the optimization path 390 of this optimization path shown in Fig. 3 C one by one.For example: front processor 114P can write down and review indicator TBI according to the simple and easy sign of subpath shown in Fig. 3 A X(k).Under this situation, front processor 114P can be recorded as 10...01 with the subpath information of reviewing, and can endpoint information X0 such as binary value 00 and subpath to be reviewed information 10...01 merge record be other information I SIDE, i.e. 10...0100.This is not a limitation of the present invention just for illustrative purposes.According to a variant of present embodiment, the simple and easy sign of the subpath shown in Fig. 3 A can change.For example: point to same state S X(k+1) top in two sub-paths, below subpath can be denoted as 0,1 respectively simply, and front processor 114P can write down according to the simple and easy sign of these subpaths and reviews indicator TBI X(k).So, reviewing indicator TBI X(k)=1 under the situation, review indicator TBI X(k) point out optimization path 390 in k level 360-k from state S X(k+1) return the below subpath; And reviewing indicator TBI X(k)=0 under the situation, review indicator TBI X(k) point out optimization path 390 in k level 360-k from state S X(k+1) return the top subpath.
With the situation shown in Fig. 3 C is example, is state S in above-mentioned optimum condition (the for example terminal point in optimization path 390) 0(K+1) under the situation, this controller is according to reviewing indicator TBI 0(K) find in the optimization path 390 subpath P with respect to the K level 2,0(K), again according to reviewing indicator TBI 2(K-1) find in the optimization path 390 subpath P with respect to (K-1) level 1,2(K-1), the rest may be inferred.Similarly, this controller is according to reviewing indicator TBI 2(2) find the subpath P with respect to the 2nd grade in the optimization path 390 1,2(2), again according to reviewing indicator TBI 1(1) finds the subpath P with respect to the 1st grade in the optimization path 390 0,1(1).So, this controller (in present embodiment especially the front processor 114P in it) with in the optimization path 390 with respect to this trellis diagram at different levels (such as the 1st grade of 360-1, the 2nd grade of 360-2 ..., (K-1) level 360-(K-1), with K level 360-K) each sub-paths P 0,1(1), P 1,2(2) ..., P 1,2(K-1) and P 2,0(K) the subpath information of reviewing transmits gives above-mentioned data shaping module/data retrieval module; So, other information I SIDEComprise in the optimization path 390 each sub-paths P at different levels with respect to this trellis diagram 0,1(1), P 1,2(2) ..., P 1,2(K-1) and P 2,0(K) subpath is reviewed information.
So to the specific part data (for example: corresponding to the partial data 308-k of k level 360-k) corresponding to an a specific order, above-mentioned data shaping module/data retrieval module (for example: data shaping module 114DS) according to other information I SIDEIn at least a portion in those shaping sign indicating numbers, select a specific shaping sign indicating number, to carry out data shaping corresponding to these specific part data.With the situation shown in Fig. 3 C is example, and above-mentioned data shaping module/data retrieval module is according to other information I SIDEIn about each sub-paths P 0, 1(1), P 1,2(2) ..., P 1,2(K-1) and P 2,0(K) subpath is reviewed information, selects shaping sign indicating number SPC respectively 0,1, SPC 1,2..., SPC 1,2, and SPC 2,0As the shaping sign indicating number 310-1 shown in Fig. 3 C, 310-2 ..., 310-(K-1) and 310-K, with carry out respectively corresponding to partial data 308-1,308-2 ..., 308-(K-1), with the data shaping of 308-K.
Note that to be directed against each level, only have at alternative aggregate-value under the situation of two aggregate-values, review indicator TBI such as k level 360-k X(k) value can be one information; Because total K level in this trellis diagram, so other information I SIDEIn the subpath information of reviewing can only have the K position.In addition, be under four the situation in the quantity of the probable value of state index X, other information I SIDEIn the binary value of endpoint information such as X0 can only have 2.So, in present embodiment, other information I SIDECan only have (K+2) position, so the present invention is directed against additional information I in flash memory 120 ARequired storage area is minimum.Therefore, compared to the framework of any correlation technique, the present invention can provide splendid operational effectiveness under the situation of saving the storage area to heavens.
Fig. 4 A to Fig. 4 E be method 910 shown in Figure 2 in another embodiment about writing the implementation detail of optimization running.Please with reference to Fig. 4 A, Fig. 4 A illustrates the relation of raw data 400 and its partial data 400-1,400-2,400-3,400-4.In this embodiment, main device desire is that the raw data 400 of a memory page or leaf writes flash memory 120 with data length, and raw data 400 is divided into partial data 400-1 to 400-4.
At first, please with reference to Fig. 4 B, front processor 114P handles to partial data 400-1.Front processor 114P carries out data shaping, calculates and selects partial data 400-1 according to the mode shown in Fig. 3 B.Candidate's shaping sign indicating number that front processor 114P is different with 8 with partial data 400-1 respectively carries out an XOR and produces 8 different shaping data.These 8 different candidate's shaping sign indicating numbers correspond to the path P shown in Fig. 3 A respectively 0,0, P 0,1, P 1,2, P 1,3, P 2,0, P 2,1, P 3,2, P 3,3Front processor 114P calculates 8 different shaping data respectively.In one embodiment, front processor 114P can compare corresponding partial data in the last memory page or leaf in shaping data and the flash memory bit by bit, if identical (for example be all logical zero or be all logical one) then progression one minute, if different, and bonus point not then.In this embodiment, the mark of each shaping data gained (branch metric value) is shown on the corresponding path of Fig. 4 B.For example, with path P 0,0Corresponding shaping sign indicating number carries out a shaping data that XOR produced and obtains 102 fens (like Fig. 4 B path P 0,0On numeral shown in), i.e. BM 0,0(0)=102.With path P 0,1Corresponding shaping sign indicating number carries out a shaping data that XOR produced and obtains 79 fens, i.e. BM 0,1(0)=79.By that analogy.
Note that, front processor 114P when 8 different shaping data are carried out integral and calculating, also not with reference to corresponding part data in the last memory page.Front processor 114P must calculate the number of logical zero in each shaping data or logical one respectively, has top or the more person of logical one has higher integration or the more person of logical zero that higher integration is arranged so that logical zero or logical one number are immediate in the shaping data.And, to the shaping data that leave different memory pages or leaves in, different integral and calculating rules can be arranged also.For example, to the lower memory page or leaf of error rate, can make that the more person of logical one has higher integration in the shaping data.And to the higher memory page or leaf of error rate, can make that the more person of logical zero has higher integration in the shaping data.Carrying out the rule of integral and calculating can decide according to various flash memory characteristic.
And when selecting, front processor 114P can compare each path integral of pointing to each result phase.As previously mentioned, initial state S 0(0), S 1(0), S 2(0), S 3(0) measurement value all is preset as 0 (being shown in the circle top of each state respectively).For instance, point to result phase S 0(1) path is P 0,0With P 2,0Path P 0,0Integration be branch metric value BM 0,0(0) adds initial state S 0(0) measurement value Met 0(0), i.e. 102+0=102.Path P 2,0Integration be branch metric value BM 2,0(0) adds initial state S 2(0) measurement value Met 2(0), i.e. 95+0=95.In this embodiment, front processor 114P selects integration the greater as the survival path.For example, path P 0,0Integration (102) greater than path P 2,0Integration (95), so with path P 0,0As the survival path, and with result phase S 0(1) measurement value Met 0(1) is recorded as 102 and (is shown in state S 0(1) circle top is shown in Fig. 4 B rightmost side), the rest may be inferred.
Then, please refer to Fig. 4 C front processor 114P carries out data shaping, calculates and selects to partial data 400-2.Front processor 114P is similar to Fig. 4 B to the mode that partial data 400-2 carries out data shaping, calculates and selects, and for the sake of clarity, similarly part will not be given unnecessary details.Result phase S 0(1), S 1(1), S 2(1), S 3(1) measurement value and each branch metric value are shown in Fig. 4 C.Note that, among Fig. 4 B, initial state S 0(0), S 1(0), S 2(0), S 3(0) measurement value all is preset as 0.And among Fig. 4 C, initial state S 0(1), S 1(1), S 2(1), S 3(1) measurement value that (in Fig. 4 B, can be described as result phase) is respectively 102,80,90,105.Front processor 114P need consider the measurement value of each initial state (the for example result phase of previous stage) when carrying out routing.For instance, point to result phase S 1(2) path is P 0,1With P 2,1Path P 0,1Integration be branch metric value BM 0,1(1) adds initial state S 0(1) measurement value Met 0(1), i.e. 68+102=170.Path P 2,1Integration be branch metric value BM 2,1(1) adds initial state S 2(1) measurement value Met 2(1), i.e. 63+90=153.Front processor 114P selects integration the greater as the survival path.Path P 0,1Integration (170) greater than path P 2,1Integration (153), so with path P 0,1As the survival path, and with result phase S 1(2) measurement value Met 1(2) be recorded as 170, the rest may be inferred.
Please refer to 4D figure, treat that front processor 114P carries out data shaping, calculating and selection and finishes partial data 400-1 to 400-4 after, can obtain result phase S 0(4), S 1(4), S 2(4), S 3(4) measurement value is respectively 380,367,355,370.In this embodiment, front processor 114P selects the highest result phase S of measurement value 0(4) as optimum condition, and through its survival path find out optimal path 490.And at the other information I of record SIDEThe time, can be according to optimum condition S 0(4) endpoint information is recorded as 00.And the record subpath can be recorded as 0010 with the subpath information of reviewing according to the simple and easy sign of subpath of optimal path 490 and Fig. 3 A when reviewing information.So can endpoint information record and subpath be reviewed the information merge record is other information I SIDE, promptly 001000.Fig. 4 E is the data D that data shaping module 114DS is produced RND1And additional information I ASynoptic diagram, in this embodiment, additional information I ABe other information I SIDE, the present invention is as limit, additional information I AAlso must comprise out of Memory.
Fig. 5 illustrates among the embodiment about the position information 510 of the mnemon (cell) in the flash memory shown in Figure 1A 120 and each rank { L0, L1, the L2 that is correlated with thereof; L3; L4, L5, L6; L7}, its meta information 510 comprise highest significant position (Most Significant Bit) MSB, central significance bit (Central Significant Bit) CSB, with least significant bit (LSB) (Least Significant Bit) LSB.According to present embodiment, if highest significant position MSB be 1 and all the other CSB and LSB be 0, then the storage rank of this mnemon are the 4th rank L4.In addition, if highest significant position MSB and all the other CSB and LSB are 0, then the storage rank of this mnemon are the 0th rank L0.So, to each possible binary value of position information 510 000,001,010,011,100,101,110,111}, the storage rank of this mnemon are respectively corresponding each rank { L0, L1, L2, L3, L4, L5, L6, L7}.
In present embodiment, (for example: data shaping is carried out in a certain (a bit) position about this mnemon data D1) to this controller, but not data shaping is carried out in the whole positions about this mnemon in this raw data to this raw data.Especially, this controller carries out data shaping to the highest significant position MSB about this mnemon in this raw data, and data shaping is not carried out such as central significance bit CSB and least significant bit (LSB) LSB in all the other positions about this mnemon in this raw data.This is not a limitation of the present invention just for illustrative purposes.Variant according to present embodiment; This controller carries out data shaping to highest significant position MSB and the central significance bit CSB about this mnemon in this raw data, and data shaping is not carried out such as least significant bit (LSB) LSB in all the other positions about this mnemon in this raw data.Another variant according to present embodiment; This controller in this raw data about the highest significant position MSB of this mnemon and time high significance bit (for example: the high significance bit significance bit CSB of central authorities of this time in this variant) carry out data shaping, and data shaping is not carried out such as least significant bit (LSB) LSB in all the other positions about this mnemon in this raw data.Also can whether need carry out data shaping according to the probability decision that makes mistakes in variant position in this mnemon.For example, in this mnemon, the highest significant position MSB probability of makeing mistakes is minimum, and it only needs the error correcting code protection of lowest order digit to compare central significance bit CSB, least significant bit (LSB) LSB, thus can have unnecessary space store by information I SIDE, therefore, only highest significant position MSB is carried out data shaping.
One of benefit of the present invention is; Through suitably designing above-mentioned data shaping module/data retrieval module; (for example: the data flow con-trol of Figure 1A to Fig. 1 C) be aided with relevant data flow con-trol; The present invention can carry out appropriate data type appearance management to the data of this controller institute access, to reduce wrong generation.In addition, implement to increase many extra costs according to above each embodiment/variant, even more can save cost than correlation technique.Therefore, based on the content of above exposure, the problem of correlation technique is solved, and whole cost can not increase too much.
The above is merely preferred embodiment of the present invention, and all equalizations of doing according to claim of the present invention change and modify, and all should belong to covering scope of the present invention.

Claims (30)

1. method that is used for carrying out data shaping, this method is applied to the controller of a flash memory, and this flash memory comprises a plurality of blocks, it is characterized in that, and this method includes:
Carry out one according to raw data and a plurality of shaping sign indicating number and write optimization running, to produce the information of reviewing corresponding to a trellis diagram as other information; And
Dynamically select at least one shaping sign indicating number in those shaping sign indicating numbers according to this side information, so that this raw data is carried out data shaping.
2. method according to claim 1 is characterized in that, wherein the level of each among this trellis diagram at different levels comprises a plurality of subpaths; And those subpaths of each grade are represented those shaping sign indicating numbers respectively.
3. method according to claim 2 is characterized in that, wherein carries out this according to this raw data and those shaping sign indicating numbers and writes optimization running and comprise in addition to produce corresponding to the information of reviewing of this trellis diagram step as this side information:
Seek the optimization path in this trellis diagram; And produce in this optimization path and review information at least a portion as this side information with respect to the subpath of each sub-paths at different levels; Wherein the terminal point in this optimization path is the optimum condition in each result phase of afterbody of this trellis diagram, and this side information comprises the endpoint information of representing this optimum condition.
4. method according to claim 3 is characterized in that, wherein carries out this according to this raw data and those shaping sign indicating numbers and writes optimization running and comprise in addition to produce corresponding to the information of reviewing of this trellis diagram step as this side information:
At different levels to this trellis diagram; Carry out corresponding to viterbi algorithm addition, comparison, with select running; With the reviewing indicator and seek this optimum condition in those result phases of this afterbody of this trellis diagram of each result phase of producing the one-level at least in those grades, wherein this subpath information of reviewing in this side information comprises those and reviews at least a portion in the indicator.
5. method according to claim 1 is characterized in that, wherein this raw data comprises the partial data at different levels that corresponds respectively to this trellis diagram; And carry out this according to this raw data and those shaping sign indicating numbers and write optimization running and comprise in addition to produce corresponding to the information of reviewing of this trellis diagram step as this side information:
To specific part data, calculate at least two branch metric values that correspond respectively at least two shaping sign indicating numbers corresponding to an a specific order; And
At least a portion in a plurality of branch metric values of those grades of accumulative total writes the optimization running to carry out this.
6. method according to claim 1 is characterized in that, wherein dynamically selects this at least one shaping sign indicating number in those shaping sign indicating numbers to comprise in addition with the step of this raw data being carried out data shaping according to this side information:
Carry out data shaping to the highest significant position about the mnemon in this flash memory in this raw data, but not data shaping is carried out in the whole positions about this mnemon in this raw data.
7. method according to claim 1; It is characterized in that; Wherein in the middle of this trellis diagram at different levels, in arbitrary level corresponding to all representing the same shaping sign indicating number in the middle of those shaping sign indicating numbers corresponding to the subpath of equal state conversion in a subpath of particular state conversion and another grade.
8. method according to claim 1 is characterized in that, wherein this raw data comprises the partial data at different levels that corresponds respectively to this trellis diagram; And dynamically select this at least one shaping sign indicating number in those shaping sign indicating numbers to comprise in addition with the step of this raw data being carried out data shaping according to this side information:
To specific part data, in those shaping sign indicating numbers, select a specific shaping sign indicating number according at least a portion in this side information, to carry out data shaping corresponding to these specific part data corresponding to an a specific order.
9. method according to claim 1 is characterized in that it includes in addition:
At least a portion in this side information or its representative information are stored in this flash memory, for the usefulness of recapturing of this raw data.
10. method according to claim 9 is characterized in that it includes in addition:
In one read running during, this flash memory is obtained this at least a portion or its representative information in this side information certainly, and recaptures this raw data according to this.
11. a memory storage is characterized in that it includes:
One flash memory, this flash memory comprises a plurality of blocks; And
One controller; Be used for this flash memory of access and the management these a plurality of blocks; And carry out data shaping to the data of the institute of this controller access own in addition; Wherein this controller carries out one according to raw data and a plurality of shaping sign indicating number and writes optimization running, and producing the information of reviewing corresponding to a trellis diagram as other information, and this controller includes:
At least one data shaping module/data retrieval module is used for dynamically selecting at least one shaping sign indicating number in those shaping sign indicating numbers according to this side information, so that this raw data is carried out data shaping.
12. memory storage according to claim 11 is characterized in that, wherein the level of each among this trellis diagram at different levels comprises a plurality of subpaths; And those subpaths of each grade are represented those shaping sign indicating numbers respectively.
13. memory storage according to claim 12; It is characterized in that; Wherein this controller is sought the optimization path in this trellis diagram, and produces in this optimization path and review information at least a portion as this side information with respect to the subpath of each sub-paths at different levels; And the terminal point in this optimization path is the optimum condition in each result phase of afterbody of this trellis diagram, and this side information comprises the endpoint information of representing this optimum condition.
14. memory storage according to claim 13; It is characterized in that; Wherein be directed against the at different levels of this trellis diagram; This controller carry out corresponding to viterbi algorithm addition, comparison, with select running, reviewing indicator and seeking this optimum condition in those result phases of this afterbody of this trellis diagram with each result phase of producing the one-level at least in those grades; And this subpath information of reviewing in this side information comprises those and reviews at least a portion in the indicator.
15. memory storage according to claim 11 is characterized in that, wherein this raw data comprises the partial data at different levels that corresponds respectively to this trellis diagram; To the specific part data corresponding to an a specific order, this controller calculates at least two branch metric values that correspond respectively at least two shaping sign indicating numbers; And at least a portion in a plurality of branch metric values of these those grades of controller accumulative total, write the optimization running to carry out this.
16. memory storage according to claim 11; It is characterized in that; Wherein this controller carries out data shaping to the highest significant position about the mnemon in this flash memory in this raw data, but not data shaping is carried out in the whole positions about this mnemon in this raw data.
17. memory storage according to claim 11; It is characterized in that; Wherein in the middle of this trellis diagram at different levels, in arbitrary level corresponding to all representing the same shaping sign indicating number in the middle of those shaping sign indicating numbers corresponding to the subpath of equal state conversion in a subpath of particular state conversion and another grade.
18. memory storage according to claim 11 is characterized in that, wherein this raw data comprises the partial data at different levels that corresponds respectively to this trellis diagram; And to the specific part data corresponding to an a specific order, this data shaping module/data retrieval module is selected a specific shaping sign indicating number according at least a portion in this side information in those shaping sign indicating numbers, to carry out the data shaping corresponding to these specific part data.
19. memory storage according to claim 11 is characterized in that, wherein at least a portion or its representative information of this controller in will this side information is stored in this flash memory, recaptures usefulness for this raw data.
20. memory storage according to claim 19; It is characterized in that; Wherein in one read running during, this controller is obtained this at least a portion or its representative information in this side information from this flash memory, and this data shaping module/data retrieval module is recaptured this raw data according to this.
21. the controller of a memory storage, this controller are used for access one flash memory, this flash memory comprises a plurality of blocks, it is characterized in that, this controller includes:
One ROM (read-only memory) is used for storing a program code;
One microprocessor; Be used for carrying out this program code with control access and these a plurality of blocks of management to this flash memory; Wherein under the control of this microprocessor; This controller carries out data shaping to the data of the institute of this controller access own, and wherein this controller carries out one according to raw data and a plurality of shaping sign indicating number and writes the optimization running, with generation corresponding to the information of reviewing of a trellis diagram as other information; And
At least one data shaping module/data retrieval module is used for dynamically selecting at least one shaping sign indicating number in those shaping sign indicating numbers according to this side information, so that this raw data is carried out data shaping.
22. controller according to claim 21 is characterized in that, wherein the level of each among this trellis diagram at different levels comprises a plurality of subpaths; And those subpaths of each grade are represented those shaping sign indicating numbers respectively.
23. controller according to claim 22; It is characterized in that; Wherein this controller is sought the optimization path in this trellis diagram, and produces in this optimization path and review information at least a portion as this side information with respect to the subpath of each sub-paths at different levels; And the terminal point in this optimization path is the optimum condition in each result phase of afterbody of this trellis diagram, and this side information comprises the endpoint information of representing this optimum condition.
24. controller according to claim 23; It is characterized in that; Wherein be directed against the at different levels of this trellis diagram; This controller carry out corresponding to viterbi algorithm addition, comparison, with select running, reviewing indicator and seeking this optimum condition in those result phases of this afterbody of this trellis diagram with each result phase of producing the one-level at least in those grades; And this subpath information of reviewing in this side information comprises those and reviews at least a portion in the indicator.
25. controller according to claim 21 is characterized in that, wherein this raw data comprises the partial data at different levels that corresponds respectively to this trellis diagram; To the specific part data corresponding to an a specific order, this controller calculates at least two branch metric values that correspond respectively at least two shaping sign indicating numbers; And at least a portion in a plurality of branch metric values of these those grades of controller accumulative total, write the optimization running to carry out this.
26. controller according to claim 21; It is characterized in that; Wherein this controller carries out data shaping to the highest significant position about the mnemon in this flash memory in this raw data, but not data shaping is carried out in the whole positions about this mnemon in this raw data.
27. controller according to claim 21; It is characterized in that; Wherein in the middle of this trellis diagram at different levels, in arbitrary level corresponding to all representing the same shaping sign indicating number in the middle of those shaping sign indicating numbers corresponding to the subpath of equal state conversion in a subpath of particular state conversion and another grade.
28. controller according to claim 21 is characterized in that, wherein this raw data comprises the partial data at different levels that corresponds respectively to this trellis diagram; And to the specific part data corresponding to an a specific order, this data shaping module/data retrieval module is selected a specific shaping sign indicating number according at least a portion in this side information in those shaping sign indicating numbers, to carry out the data shaping corresponding to these specific part data.
29. controller according to claim 21 is characterized in that, wherein at least a portion or its representative information of this controller in will this side information is stored in this flash memory, recaptures usefulness for this raw data.
30. controller according to claim 29; It is characterized in that; Wherein in one read running during, this controller is obtained this at least a portion or its representative information in this side information from this flash memory, and this data shaping module/data retrieval module is recaptured this raw data according to this.
CN201010522469.3A 2010-10-15 2010-10-15 Method for data shaping and memory device and controller thereof Active CN102455975B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010522469.3A CN102455975B (en) 2010-10-15 2010-10-15 Method for data shaping and memory device and controller thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010522469.3A CN102455975B (en) 2010-10-15 2010-10-15 Method for data shaping and memory device and controller thereof

Publications (2)

Publication Number Publication Date
CN102455975A true CN102455975A (en) 2012-05-16
CN102455975B CN102455975B (en) 2014-08-27

Family

ID=46039181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010522469.3A Active CN102455975B (en) 2010-10-15 2010-10-15 Method for data shaping and memory device and controller thereof

Country Status (1)

Country Link
CN (1) CN102455975B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1257246A (en) * 1998-12-16 2000-06-21 明碁电脑股份有限公司 Method for preventing flash memory data loss or miswriting
US20090089506A1 (en) * 2007-09-28 2009-04-02 Bybell Anthony J Structure for cache function overloading
CN101436161A (en) * 2007-11-16 2009-05-20 创见资讯股份有限公司 Memory and data access thereof, and memory block management method
US20100161891A1 (en) * 2006-01-25 2010-06-24 Takashi Oshima Method of controlling card-shaped memory device
CN101809543A (en) * 2007-03-10 2010-08-18 罗德·布里特尼尔 Error tolerant or streaming storage device
WO2010092536A1 (en) * 2009-02-12 2010-08-19 Ramot At Tel Aviv University Ltd. Apparatus and method for enhancing flash endurance by encoding data
WO2010103760A1 (en) * 2009-03-13 2010-09-16 パナソニック株式会社 Access module, information recording module, controller, and information recording system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1257246A (en) * 1998-12-16 2000-06-21 明碁电脑股份有限公司 Method for preventing flash memory data loss or miswriting
US20100161891A1 (en) * 2006-01-25 2010-06-24 Takashi Oshima Method of controlling card-shaped memory device
CN101809543A (en) * 2007-03-10 2010-08-18 罗德·布里特尼尔 Error tolerant or streaming storage device
US20090089506A1 (en) * 2007-09-28 2009-04-02 Bybell Anthony J Structure for cache function overloading
CN101436161A (en) * 2007-11-16 2009-05-20 创见资讯股份有限公司 Memory and data access thereof, and memory block management method
WO2010092536A1 (en) * 2009-02-12 2010-08-19 Ramot At Tel Aviv University Ltd. Apparatus and method for enhancing flash endurance by encoding data
WO2010103760A1 (en) * 2009-03-13 2010-09-16 パナソニック株式会社 Access module, information recording module, controller, and information recording system

Also Published As

Publication number Publication date
CN102455975B (en) 2014-08-27

Similar Documents

Publication Publication Date Title
US10713178B2 (en) Mapping table updating method, memory controlling circuit unit and memory storage device
US7900118B2 (en) Flash memory system and method for controlling the same
US8782329B2 (en) Method for performing data shaping, and associated memory device and controller thereof
TWI441181B (en) Method for performing data shaping, and associated memory device and controller thereof
US9582224B2 (en) Memory control circuit unit, memory storage apparatus and data accessing method
US8417879B2 (en) Method for suppressing errors, and associated memory device and controller thereof
CN112579339A (en) Non-volatile memory with block reliability based selective interleave decoding
CN102543196B (en) Data reading method, memory storing device and controller thereof
US11809723B2 (en) Unbalanced plane management method, associated data storage device and controller thereof
CN102693758B (en) Data reading method, memory storage device and memory controller
CN105005450A (en) Data writing method, memory storage device, and memory control circuit unit
CN109857584B (en) Method for performing access control on memory device, memory device and controller thereof
US10042565B2 (en) All-flash-array primary storage and caching appliances implementing triple-level cell (TLC)-NAND semiconductor microchips
US20150149856A1 (en) Decoding with log likelihood ratios stored in a controller
TW201320090A (en) Data modification based on matching bit patterns
TWI698742B (en) Method for performing access control in a memory device, and associated memory device and controller thereof
CN104252317A (en) Data writing method, memory controller and memory storage device
US10546640B2 (en) Data protecting method and memory storage device
US11916569B2 (en) Flash memory apparatus and storage management method for flash memory
CN108664350B (en) Data protection method, memory storage device and memory control circuit unit
CN102455975B (en) Method for data shaping and memory device and controller thereof
CN105573662B (en) Data writing method, memory control circuit unit and memory storage device
CN113628655A (en) Method for accessing flash memory module, flash memory controller and electronic device
US20160117244A1 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN102236584B (en) Be used for suppressing the method for error in data and relevant memory storage and controller thereof

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