WO2010139131A1 - 闪存的控制器以及于闪存存取数据的方法 - Google Patents

闪存的控制器以及于闪存存取数据的方法 Download PDF

Info

Publication number
WO2010139131A1
WO2010139131A1 PCT/CN2009/073146 CN2009073146W WO2010139131A1 WO 2010139131 A1 WO2010139131 A1 WO 2010139131A1 CN 2009073146 W CN2009073146 W CN 2009073146W WO 2010139131 A1 WO2010139131 A1 WO 2010139131A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
mapping data
flash memory
cross
optimal
Prior art date
Application number
PCT/CN2009/073146
Other languages
English (en)
French (fr)
Inventor
杨宗杰
Original Assignee
慧帝科技(深圳)有限公司
慧荣科技股份有限公司
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 慧帝科技(深圳)有限公司, 慧荣科技股份有限公司 filed Critical 慧帝科技(深圳)有限公司
Publication of WO2010139131A1 publication Critical patent/WO2010139131A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Definitions

  • Flash controller and method for accessing data in flash
  • the present invention relates to the field of data communication technologies, and more particularly to a controller for a flash memory and a method for accessing data by flash memory. Background technique
  • Flash memory is a non-volatile memory that can be programmed electrically and erased. Flash memory is primarily used as a memory card and Universal Serial Bus (USB) device for general data storage of computers and other digital products.
  • the flash memory contains a plurality of memory cells, each of which is used to store data. Flash memory can be divided into two categories according to the number of data bits stored in its memory unit.
  • a single memory unit of a single level cell (SLC) flash can store only one bit of data.
  • a single memory unit of a multi-level cell (MLC) flash memory can store multiple bits of data.
  • Flash memory usually writes or reads data in units of pages.
  • the controller wants to store data in the flash memory, the stability of the data stored in the adjacent pages of the flash memory varies with the bit content of the data stored in the adjacent pages.
  • 1A is a partial circuit diagram of a single layer unit flash memory 100.
  • the single layer unit flash memory 100 includes a plurality of columns of memory cells 101-104, 111-114, 121-124, ..., 1N1 ⁇ 1N4. Only one bit of data can be stored per memory unit. It is assumed that the controller first stores an N-bit data on the first page 11 of the flash memory 100, and then stores an N-bit data on the second page 12 of the flash memory 100.
  • the memory cells 101, 111, 121, ..., 1N1 of the first page 11 have an adjacent relationship with the memory cells 102, 112, 122, ..., 1N2 of the second page, respectively.
  • 1N1 and 1N2 store different numbers of data bits (0 and 1), since the electrical properties of the data bits stored in adjacent memory cells are attracted to each other, Has high data stability.
  • adjacent memory cells 101 and 102, 111 and 112, 1N1 and 1N2 store data bits of the same value (0 and 0 or 1 and 1), the data bits stored by adjacent memory cells are Sex will be mutually exclusive and therefore have lower data stability.
  • FIG. 1B is a schematic diagram showing a probability voltage distribution of a memory cell of a multi-cell flash memory.
  • the memory unit of the multi-level cell flash memory can store two bits. When the two bits are (0, 0), the threshold voltage of the memory cell is approximately when the two bits are (0, 1), (1, 0), (1, 1), respectively, and the threshold voltage of the memory cell is approximately They are t 2 , t 3 , t 4 , respectively .
  • the controller stores data
  • the corresponding data bits of the adjacent page for example, the 3rd bit on page 1 and the 3rd bit on page 2 are stored in the same memory unit of the multi-level cell flash memory. As can be seen from FIG.
  • the technical problem to be solved by the present invention is to provide a controller for a flash memory and a method for accessing data in a flash memory in view of the above-mentioned drawbacks of the prior art.
  • One of the technical solutions adopted by the present invention to solve the technical problem is: constructing a controller for a flash memory, comprising a selective mapper and an error correction code encoder;
  • the first image data is processed by the image mapper according to a plurality of random sequences to generate a plurality of first map data, and the first map data and the previous data are respectively calculated.
  • a cross correlation value selecting an optimal mapping data from the first mapping data according to the cross correlation values, and generating an output mapping data according to the optimal mapping data;
  • the error correction code encoder A first error correction code is encoded according to the output mapping data for storage in the flash memory.
  • the controller of the present invention wherein the selective mapper generates a first incidental information for identifying a random sequence for generating the optimal mapping data and appends the first incidental information to the optimal mapping data to generate This output maps the data.
  • the selective mapper comprises: And the plurality of scramblers respectively process the first original data according to one of the plurality of random sequences to generate the first mapping data;
  • a cross-correlation evaluation module respectively calculating the cross-correlation values of the first mapping data and the previous data, and selecting an optimal cross-correlation value from the cross-correlation values according to a selection rule
  • a selector that selects first mapping data corresponding to the optimal cross-correlation value from the first mapping data to output the optimal mapping data.
  • the selective mapper further comprises: an incidental information applier, generating the first incidental information about a random sequence corresponding to the optimal cross-correlation value, and appending the first incidental information
  • the output map data is generated after the optimal mapping data.
  • the controller of the present invention wherein the scramblers respectively perform an XOR operation on the corresponding bits of the first original data and one of the random sequences to generate the first mapping data.
  • the controller of the present invention wherein the flash memory is a multi-level cell flash memory, and the bit of the first error correction code and the bit of the previous data are stored in the same memory unit of the flash memory, and the cross-correlation evaluation module is A maximum cross-correlation value is selected as the optimal cross-correlation value among the cross-correlation values.
  • the controller of the present invention wherein the flash memory is a single-layer unit flash memory, and a bit of the first error correction code and a bit of the previous data are stored in an adjacent memory unit of the flash memory, and the cross-correlation evaluation
  • the module selects a minimum cross-correlation value from the cross-correlation values as the optimal cross-correlation value.
  • controller of the present invention wherein the controller further comprises:
  • An error correction code decoder receiving a second error correction code from the flash memory, and decoding the second error correction code to obtain an input mapping data
  • a selective demapper extracting a second mapping data and a second additional information from the input mapping data, selecting a demapped random sequence from the plurality of random sequences according to the second incidental information, and according to the solution
  • the image random sequence processes the second mapping data to restore a second raw data for transmission to the host.
  • the controller of the present invention, wherein the selective demapper comprises:
  • An incidental information separator, the second mapping data and the second incidental information are extracted from the input mapping data
  • a solution scrambler processes the second mapping data according to the de-image random sequence to restore the second original data.
  • the controller of the present invention wherein the de-scrambler performs an XOR operation on the second mapping data and corresponding bits of the de-image random sequence to generate the second original data.
  • the second technical solution adopted by the present invention to solve the technical problem is: constructing a method for accessing data in flash memory, comprising the steps of: receiving a first original data; separately processing the data according to a plurality of random sequences First first data to generate a plurality of first mapping data; respectively calculating a plurality of cross correlation values of the first mapping data and a previous data; according to the cross correlation values from the first An optimal mapping data is selected from the mapping data; an output mapping data is generated according to the optimal mapping data for storage in the flash memory.
  • the method for accessing data in a flash memory wherein the method further comprises: encoding a first error correction code according to the output mapping data for storage in the flash memory.
  • the method for accessing data in a flash memory wherein the generating of the output mapping data comprises: generating a first incidental information for identifying a random sequence for generating the optimal mapping data; and appending the first additional information
  • the output map data is generated after the optimal mapping data.
  • the method for accessing data in a flash memory wherein the processing of the first original data comprises: performing an X0R operation on a corresponding bit of the first original data and one of the random sequences, respectively, to generate the Wait for the first mapping data.
  • the method for accessing data in a flash memory wherein the flash memory is a multi-level cell flash memory, and the bit of the first error correction code and the bit of the previous data are stored in the same memory unit of the flash memory, and the The selection of the best mapping data includes:
  • the first mapping data corresponding to the maximum cross-correlation value is selected from the first mapping data as the optimal mapping data.
  • the method for accessing data in a flash memory wherein the flash memory is a single-layer unit flash memory, and a bit of the first error correction code and a bit of the previous data are stored in an adjacent memory unit of the flash memory.
  • the selection of the best mapping data includes: Selecting a minimum cross-correlation value from the cross-correlation values;
  • the first mapping data corresponding to the minimum cross-correlation value is selected from the first mapping data as the optimal mapping data.
  • the method for accessing data in a flash memory further comprises: receiving an input mapping data; extracting a second mapping data and a second additional information from the input mapping data; Selecting a demapping random sequence from the plurality of random sequences; and processing the second mapping data according to the demapping random sequence to restore a second original data for transmission to a flash memory access according to a main invention
  • the method of data wherein the method further comprises: receiving a second error correction code from the flash memory; and decoding the second error correction code to obtain the input mapping data.
  • the method for accessing data in a flash memory wherein the processing of the second mapping data comprises: performing an XOR operation on the second mapping data and corresponding bits of the demapping random sequence to generate the second original data .
  • the third technical solution adopted by the present invention to solve the technical problem is: constructing a controller coupled to a flash memory and a host, the controller including an error correction code encoder and an optional a selector mapper (received mapper); the error correction code encoder receives a first original data, and encodes a first error correction code according to the first original data; the selective mapper is respectively configured according to a plurality of random sequences Processing the first error correction code to generate a plurality of first mapping data, respectively calculating a plurality of cross correlation values of the first mapping data and a previous data, according to the cross correlation values An optimal mapping data is selected from the first mapping data, and an output mapping data is generated according to the optimal mapping data for storage in the flash memory.
  • the controller of the present invention wherein the selective mapper generates a first incidental information for identifying a random sequence for generating the optimal mapping data, and attaching the first incidental information to the optimal mapping data to This output map data is generated.
  • the controller of the present invention, wherein the selective mapper comprises:
  • the plurality of scramblers respectively process the first error correction code according to one of the plurality of random sequences to generate the first mapping data
  • a cross-correlation evaluation module respectively calculating the first mapping data and the mutual data of the previous data Correlation value, and selecting an optimal cross-correlation value from the cross-correlation values according to a selection rule;
  • a selector selecting first mapping data corresponding to the optimal cross-correlation value from the first mapping data to output The best mapping data;
  • An accompanying information appender generates the first additional information about the random sequence corresponding to the optimal cross-correlation value and appends the first incidental information to the optimal mapping data to generate the output mapping data.
  • the controller of the present invention wherein the scramblers respectively perform X0R operations on the first error correction code and corresponding bits of one of the random sequences to generate the first mapping data.
  • controller of the present invention wherein the controller further comprises:
  • a selective demapper receiving an input mapping data from the flash memory, extracting a second mapping data and a second additional information from the input mapping data, and selecting one of the plurality of random sequences according to the second additional information Demap the random sequence, and process the second mapping data according to the de-image random sequence to restore a second error correction code;
  • An error correction code decoder is configured to decode the second error correction code to obtain a second original data for transmission to the host.
  • the controller of the present invention, wherein the selective demapper comprises:
  • An incidental information separator, the second mapping data and the second incidental information are extracted from the input mapping data
  • a selector that selects the demapping random sequence from the plurality of random sequences according to the second incidental information
  • a solution scrambler processes the second mapping data according to the demapping random sequence to restore the second error correction code.
  • the controller of the present invention wherein the de-scrambler performs an XOR operation on the second mapping data and corresponding bits of the de-image random sequence to generate the second error correction code.
  • the controller of the present invention wherein the flash memory is a multi-level cell flash memory, and the bit of the output mapping data and the bit of the previous data are stored in the same memory unit of the flash memory, and the cross-correlation evaluation module is A maximum cross-correlation value is selected as the optimal cross-correlation value among the cross-correlation values.
  • the controller of the present invention wherein the flash memory is a single layer unit flash memory, and the output map data
  • the bits of the previous data are stored in adjacent memory cells of the flash memory, and the cross-correlation evaluation module selects a minimum cross-correlation value from the cross-correlation values.
  • the technical solution of the present invention has the following beneficial effects: By changing the correlation of data stored in the flash memory, the interference of the write/read data can be reduced, thereby improving the stability of the data stored in the flash memory. DRAWINGS
  • 1A is a partial circuit diagram of a single-layer cell flash memory
  • FIG. 1B is a schematic diagram showing a probability voltage distribution of a memory cell of a multi-cell flash memory
  • FIG. 2 is a block diagram of a flash memory device of the present invention
  • Figure 3 is a block diagram of a selective mapper in the present invention.
  • FIG. 4 is a flow chart of a method for converting raw data into output map data in the present invention
  • FIG. 5 is a block diagram of a selective demapper in the present invention
  • FIG. 6 is a flow chart of a method for restoring input mapping data to original data in the present invention
  • FIG. 7 is a schematic diagram of a process for generating data for writing to a flash memory generated by a controller in the present invention
  • 101-104, 111-114, 121-124, 1N1-1N4 are memory units; 202 is a host; 204 is a flash memory device; 206 is a controller; 208 is a flash memory; 212 is a selective mapper; Is an error correction code encoder; 216 is an error correction code decoder; 218 is a selective demapper; 300 is a selective mapper; 301-30N is a scrambler; 312 is a cross correlation evaluation module; 314 is a selector; Is an optional information appender; 500 is a selective demapper; 502 is an accompanying information separator; 504 is a de-scrambler; 506 is a selector; 802 is a host; 804 is a flash memory device; 806 is a controller; Flash memory; 812 is an error correction code encoder; 814 is a selective mapper; 816 is a selective demapper; 818 is an error correction code decoder.
  • FIG. 2 is a block diagram of a flash memory device 204 in accordance with the present invention.
  • the flash memory device 204 is coupled to The host 202 is configured to store data.
  • the flash memory device 204 includes a controller 206 and a flash memory 208.
  • Controller 206 manages data access of flash memory 208.
  • the controller 206 coupled to the host 202 receives data from the host 202 and writes the data to the flash memory 208.
  • the controller 206 reads the data from the flash memory 208 and passes the data to the host 202.
  • the controller 206 includes a selective mapper 212, an error correction code encoder 214, an error correction code decoder 216, and a selection. Selective demapper 218.
  • the controller 206 receives the original data.
  • the selective mapper 212 converts the original data into an output map data, wherein the output map data and a previous save data.
  • the cross correlation value varies from the cross-correlation value between the original data and the previous stored data.
  • the error correction code encoder 214 encodes the output map data into the error correction code d for storage in the flash memory 208.
  • the error correction code encoder 214 encodes a check code only according to the output map data at the time of encoding, the check code is appended to the output map data to obtain the error correction code d, and the check code only accounts for the error correction code d- The length of the small portion, so the cross-correlation value between the error correction code d and the previous stored data can still be largely determined by the selective mapper 212.
  • the controller 206 can change the cross-correlation value between the error correction code d to be stored and the previous stored data to improve the stability of the data stored in the flash memory 208.
  • the controller 206 increases the cross-correlation value between the error correction code to be stored and the previous stored data to increase the storage of the flash memory 208.
  • the stability of the data Assuming that the flash memory 208 is a single level cell (SLC) flash memory, the controller 206 reduces the cross-correlation value between the error correction code to be stored and the previous stored data to increase the stability of the data stored in the flash memory 208. .
  • the controller 206 When the host 202 the data to be extracted from the flash memory device 204, the controller 206 first reads from the flash memory 208 error correction code C 2. Next, the error correction code decoder 216 decodes the error correction code C 2 to obtain input map data M 2 . Next, the selective demapper 218 restores the input mapping data ⁇ 1 2 to the original data D 2 and delivers the original data D 2 to the host 202 to complete the reading of the data.
  • 3 is a block diagram of a selective mapper 300 in the present invention.
  • the selective mapper 300 includes a plurality of scramblers 301, 302 30N, a cross-correlation evaluation module 312, and a selector.
  • the selective mapper 300 operates in accordance with the method 400 of converting the raw data to the output map data Mi of FIG.
  • the selective mapper 300 receives a raw data (step 402).
  • the scramblers 301, 302 30N respectively process the original data according to one of a plurality of different random sequences, P 2 P N to generate a plurality of different mapping data S 2 , ..., S N (step 404).
  • the scramblers 301, 302, ..., 30N respectively pair the original data with the random sequences P 2 ?
  • the corresponding bits of ⁇ are XORed to generate bits of the mapped data Si, S 2 S N , respectively.
  • the cross-correlation evaluation module 312 calculates a plurality of cross correlation values of the mapping data Si, S 2 S N and a previous data, respectively (step 406).
  • the cross-correlation evaluation module 312 performs X0R operations on the mapping data Si, S 2 , ..., S N and the corresponding bits of the previous data to obtain a plurality of X0R values, and then corresponding to the same mapping data. A plurality of X0R values are added to generate the cross-correlation values.
  • the cross-correlation evaluation module 312 performs an X0R operation on the first bit of the mapping data Si and the first bit of the previous data C Q to obtain a first X0R value, a second bit of the mapping data Si, and The second bit of the previous data C Q is subjected to the X0R operation to obtain the second X0R value, and the Nth bit of the mapping data Si and the Nth bit of the previous data C Q are performed.
  • the X0R operation is performed to obtain the Nth X0R value, and then the first to Nth X0R values are added to generate a cross-correlation value of the mapping data Si, and the cross-correlation values of the remaining mapping data are also generated in a similar manner. Let me repeat.
  • the cross-correlation evaluation module 312 selects an optimal cross-correlation value J from the cross-correlation values according to a selection rule (step 408).
  • the flash memory 208 is a multi-level cell flash memory, and the cross-correlation evaluation module 312 selects a maximum cross-correlation value from the cross-correlation values as the optimal cross-correlation value K to enhance the data stored in the flash memory 208. Stability.
  • the flash memory 208 is a single-layer cell flash memory
  • the cross-correlation evaluation module 312 selects a minimum cross-correlation value from the cross-correlation values as the optimal cross-correlation value L to enhance the data stored in the flash memory 208. stability.
  • the selector 314 selects the mapping data of the optimal cross-correlation value (for example, the best cross-correlation value K or J) output by the corresponding cross-correlation evaluation module 312 from the mapping data S 2 S N to output the optimal mapping data S ( Step 409).
  • the incidental information appender 316 generates information about the optimal cross-correlation value J corresponding to The side information of the random sequence is appended to the best mapping data S to generate output mapping data (step 410).
  • FIG. 5 is a block diagram of a selective demapper 500 in the present invention.
  • the selective demapper 500 includes an accompanying information separator 502, a selector 506, and a de-scrambler 504.
  • Selective demapper 500 operates according to the input line 6 is reduced to the map data M 2 Method 02 600 raw data.
  • the selective demapper 500 receives an input mapping data M 2 (step 602).
  • the incidental information separator 502 extracts one of the map data S contained therein and an incidental information 1 from the input map data ⁇ 1 2 (step 604).
  • the selector 506 selects a demapping random sequence P* from the plurality of random sequences Pi, P 2 , P 3 P N according to the incidental information I (step 606), and the demapping random sequence P* is the original mapping The random sequence on which the data S is based.
  • the descrambler 504 processes the map data S according to the de-mapped random sequence P* to restore the map data S to the original data D 2 (step 608).
  • the controller delivers the raw data D 2 generated by the selective demapper 500 to the host to complete the data reading action.
  • Figure 7 is a diagram showing the process of data generated by the controller for writing to the flash memory in the present invention.
  • the controller 206 receives a raw data D.
  • the selective mapper 212 converts the original data into the mapped data in Fig. 7(b) (which already contains the accompanying information).
  • the error correction code encoder 214 generates a check code K according to the map data, and adds a check code K to the back end of the map data to generate the coded data in FIG. 7(b) - in general, the original data 0 and the map data
  • the size of the data is about one sector of the host or one page of the flash memory, and can be any size.
  • the selective mapper 300 would need to store the scramblers 301, 302 in multiple buffers.
  • mapping data Si, S 2 S N generated multiple mapping data Si, S 2 S N .
  • the size of the mapping data Si, S 2 S N is too large, the production cost of the buffer of the selective mapper 300 is increased.
  • the controller 206 after receiving the original data from the host 202, the controller 206 first divides the original data 0 into a plurality of original data Dn, D 12 , D 13 D 1N of FIG. 7(c), and then the original The data D n , D 12 , D 13 D 1N are sequentially sent to the selective mapper 300 to sequentially generate the map
  • mapping data M u , M 12 , M 13 M 1N are sequentially encoded by the error correction code encoder 214 into the coded data C u , C 12 , C 13 of Fig. 7(e). .., C 1N . Since the size of the original data D u , D 12 , D 13 , ..., D 1N has been reduced, This can reduce the size of the buffer of the selective mapper 300, thereby reducing the production cost of the buffer of the selective mapper 300.
  • FIG. 8 is a block diagram of another embodiment of a flash memory device 804 in accordance with the present invention.
  • the flash memory device 804 includes a controller 806 and a flash memory 808.
  • the controller 806 includes an error correction code encoder 812, a selectivity mapper 814, a selective demapper 816, and an error correction code decoder 818.
  • the controller 806 receives a raw data from the host 802
  • the error correction code encoder 812 first encodes the original data 0 1 as the error correction code d'.
  • the selectivity mapper 814 converts the error correction code C into output map data ⁇ for storage in the flash memory 808.
  • the selective mapper 814 has the same circuit structure as the selective mapper 300 of FIG.
  • the error correction code encoder 812 encodes the original data D1 into an error correction code d' containing the check code K.
  • the selectivity mapper 814 converts the error correction code C of FIG. 7(f) into the output map data of FIG. 7(g). Therefore, compared to the controller 206 of FIG. 2, the controller 806 of FIG. 8 can change the cross-correlation value of the overall stored data including the check code K and the previous stored data to improve the stability of the stored data.
  • controller 806 first reads input mapping data M 2 ' from flash memory 808.
  • the selective demapper 816 converts the mapping data M 2 ' into an error correction code C 2 '.
  • the circuit structure of the selective demapper 816 is similar to the selective demapper 500 of FIG.
  • the error correction code decoder 818 decodes the error correction code C 2 ' to restore the original data D 2 .
  • the controller 806 then deliver the original data D 2 to the host 802 to complete the data read operation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)

Description

闪存的控制器以及于闪存存取数据的方法 技术领域
本发明涉及数据通信技术领域, 更具体地说, 涉及一种闪存的控制器以 及于闪存存取数据的方法。 背景技术
闪存为一种可由电编程及清除其数据的非挥发性内存。 闪存主要用来作 记忆卡及通用序列总线 (Universal Serial Bus, USB ) 装置, 以供计算机及其 它数字产品的一般性数据储存。闪存包含多个记忆单元, 每一记忆单元用以储 存数据。 闪存可依其记忆单元储存的数据位数目分为两类。 单层单元 (single level cell, SLC)闪存的单一记忆单元仅能储存一位数据。 多层单元 (multi-level cell, MLC)闪存的单一记忆单元可储存多位数据。
闪存通常系以页 (page)为单位进行数据写入或读取。当控制器欲储存数据 于闪存时,闪存的相邻页所储存的数据的稳定度会随着该等相邻页所储存的数 据的位内容而变化。 图 1A是一单层单元闪存 100的部分电路图。 单层单元闪 存 100包括多列记忆单元 101-104, 111-114, 121-124,..., 1N1~1N4。 每一记忆 单元仅可储存一位数据。 假设控制器先储存一笔 N位的数据于闪存 100的第 一页 11, 继而再储存一笔 N位的数据于闪存 100的第二页 12。 第一页 11的 记忆单元 101、 111、 121、 ...、 1N1分别与第二页的记忆单元 102、 112、 122、…、 1N2具有相邻关系。 当相邻的记忆单元 101与 102、 111与 112、 1N1与 1N2 系储存不同数值的数据位 (0 与 1)时, 由于相邻的记忆单元所储存的数据位的 电性会互相吸引, 因此具有较高的数据稳定性。 反之, 当相邻的记忆单元 101 与 102、 111与 112、 1N1与 1N2系储存相同数值的数据位 (0与 0或 1与 1)时, 由于相邻的记忆单元所储存的数据位的电性会互相排斥,因此具有较低的数据 稳定性。
图 1B是一多层单元闪存的一记忆单元的临界电压机率分布示意图。假设 多层单元闪存的记忆单元可储存两位。 当此两位为 (0, 0)时, 记忆单元的临界 电压大致为 当此两位分别为 (0, 1)、 (1, 0)、 (1, 1)时, 记忆单元的临界电压 大致分别为 t2、 t3、 t4。 当控制器储存数据时, 相邻页的对应数据位 (例如第 1 页的第 3位及第 2页的第 3位)会被储存于多层单元闪存的同一记忆单元。 由 图 1B中可见, 当相邻页的对应数据位为 (0, 0)及 (1, 1)时, 由于多层单元闪存的 记忆单元的临界电压分别为最低值 及最高值14,因此具有较高的数据稳定性。 相反的, 当相邻页的对应数据位为 (0, 1)及 (1,0)时, 由于多层单元闪存的记忆单 元的临界电压分别为中等值 ί2及 t3, 因此具有较低的数据稳定性。
由图 1A及图 1B的实例,可知不同型态的闪存由于具有不同的电路结构, 会需要储存不同位内容的数据, 以提高数据的稳定度。 因此, 需要一种闪存的 控制器, 可更动欲储存至闪存的数据位的内容, 以提高闪存所储存的数据的稳 定度。 发明内容
本发明要解决的技术问题在于, 针对现有技术的上述缺陷, 提供闪存的 控制器以及于闪存存取数据的方法。
本发明解决其技术问题所采用的技术方案之一是: 构造一种闪存的控制 器, 其包括一选择性映像器 (selective mapper)以及一错误修正码编码器 (error correction code encoder); 该选择性映像器接收一第一原始数据, 依据多个随机 序列 (random sequence)分别处理该第一原始数据以产生多个第一映射数据, 分 别计算该等第一映射数据与一前次数据的多个互相关值 (cross correlation value), 依据该等互相关值自该等第一映射数据中选取一最佳映射数据, 并依 据该最佳映射数据产生一输出映射数据;该错误修正码编码器依据该输出映射 数据编码一第一错误修正码, 以供储存于该闪存中。
本发明所述的控制器, 其中该选择性映射器产生用以辨识供产生该最佳 映射数据的随机序列的一第一附带信息并附加该第一附带信息于该最佳映射 数据之后以产生该输出映射数据。
本发明所述的控制器, 其中该选择性映射器包括: 多个搅乱器, 分别依据该等多个随机序列其中之一以处理该第一原始数 据, 以产生该等第一映射数据;
一互相关评估模块, 分别计算该等第一映射数据与该前次数据的该等互 相关值, 并依据一选取规则自该等互相关值中选取一最佳互相关值; 以及
一选择器, 自该等第一映射数据中选取对应该最佳互相关值的第一映射 数据以输出该最佳映射数据。
本发明所述的控制器, 其中该选择性映射器更包括: 一附带信息附加器, 产生关于对应于该最佳互相关值的随机序列的该第一附带信息,并附加该第一 附带信息于该最佳映射数据之后以产生该输出映射数据。
本发明所述的控制器, 其中该等搅乱器分别对该第一原始数据与该等随 机序列其中之一的对应位进行 XOR运算, 以产生该等第一映射数据。
本发明所述的控制器, 其中该闪存系一多层单元闪存, 该第一错误修正 码的位与该前次数据的位系储存于该闪存的同一记忆单元,且该互相关评估模 块自该等互相关值中选取一最大互相关值作为该最佳互相关值。
本发明所述的控制器, 其中该闪存系一单层单元闪存, 该第一错误修正 码的位与该前次数据的位系储存于该闪存的相邻的记忆单元,且该互相关评估 模块自该等互相关值中选取一最小互相关值作为该最佳互相关值。
本发明所述的控制器, 其中该控制器更包括:
一错误修正码解码器, 自该闪存接收一第二错误修正码, 并解码该第二 错误修正码以得到一输入映射数据; 以及
一选择性解映像器, 自该输入映射数据取出一第二映射数据以及一第二 附带信息, 依据该第二附带信息自该等多个随机序列中选取一解映射随机序 列, 并依据该解映像随机序列处理该第二映射数据以还原一第二原始数据, 以 供传送至该主机。
本发明所述的控制器, 其中该选择性解映射器包括:
一附带信息分离器, 自该输入映射数据取出该第二映射数据以及该第二 附带信息;
一选择器, 依据该第二附带信息自该等多个随机序列中选取该解映射随 机序列;
一解搅乱器, 依据该解映像随机序列处理该第二映射数据以还原该第二 原始数据。
本发明所述的控制器, 其中该解搅乱器对该第二映射数据与该解映像随 机序列的对应位进行 XOR运算, 以产生该第二原始数据。
本发明解决其技术问题所采用的技术方案之二是: 构造一种于闪存存取 数据的方法, 其包括下列步骤: 接收一第一原始数据; 依据多个随机序列 (random sequence)分别处理该第一原始数据, 以产生多个第一映射数据; 分别 计算该等第一映射数据与一前次数据的多个互相关值 (cross correlation value); 依据该等互相关值自该等第一映射数据中选取一最佳映射数据;依据该最佳映 射数据产生一输出映射数据, 以供储存于该闪存中。
本发明所述的于闪存存取数据的方法, 其中该方法更包括: 依据该输出 映射数据编码一第一错误修正码, 以供储存于该闪存中。
本发明所述的于闪存存取数据的方法,其中该输出映射数据的产生包括: 产生用以辨识供产生该最佳映射数据的随机序列的一第一附带信息;以及附加 该第一附带信息于该最佳映射数据之后以产生该输出映射数据。
本发明所述的于闪存存取数据的方法, 其中该等该第一原始数据的处理 包括: 分别对该第一原始数据与该等随机序列其中之一的对应位进行 X0R运 算, 以产生该等第一映射数据。
本发明所述的于闪存存取数据的方法, 其中该闪存系一多层单元闪存, 该第一错误修正码的位与该前次数据的位系储存于该闪存的同一记忆单元,且 该最佳映射数据的选取包括:
自该等互相关值中选取一最大互相关值; 以及
自该等该等第一映射数据中选取对应于该最大互相关值的第一映射数据 作为该最佳映射数据。
本发明所述的于闪存存取数据的方法, 其中该闪存系一单层单元闪存, 该第一错误修正码的位与该前次数据的位系储存于该闪存的相邻的记忆单元, 且该最佳映射数据的选取包括: 自该等互相关值中选取一最小互相关值; 以及
自该等该等第一映射数据中选取对应于该最小互相关值的第一映射数据 作为该最佳映射数据。
本发明所述的于闪存存取数据的方法, 其中该方法更包括: 接收一输入 映射数据; 自该输入映射数据取出一第二映射数据以及一第二附带信息; 依据 该第二附带信息自该等多个随机序列中选取一解映射随机序列;以及依据该解 映像随机序列处理该第二映射数据以还原一第二原始数据, 以供传送至一主 本发明所述的于闪存存取数据的方法, 其中该方法更包括: 自该闪存接 收一第二错误修正码; 以及解码该第二错误修正码以得到该输入映射数据。
本发明所述的于闪存存取数据的方法, 其中对该第二映射数据的处理包 括: 对该第二映射数据与该解映像随机序列的对应位进行 XOR运算, 以产生 该第二原始数据。
本发明解决其技术问题所采用的技术方案之三是: 构造一种控制器, 耦 接至一闪存与一主机, 该控制器包括一错误修正码编码器 (error correction code encoder)以及一选择性映像器 (selective mapper);该错误修正码编码器接收一第 一原始数据, 并依据该第一原始数据编码一第一错误修正码; 该选择性映像器 依据多个随机序列 (random sequence)分别处理该第一错误修正码以产生多个 第一映射数据, 分别计算该等第一映射数据与一前次数据的多个互相关值 (cross correlation value), 依据该等互相关值自该等第一映射数据中选取一最佳 映射数据,并依据该最佳映射数据产生一输出映射数据,以供储存于该闪存中。
本发明所述的控制器, 其中该选择性映射器产生用以辨识供产生该最佳 映射数据的随机序列的一第一附带信息,并附加该第一附带信息于该最佳映射 数据之后以产生该输出映射数据。
本发明所述的控制器, 其中该选择性映射器包括:
多个搅乱器, 分别依据该等多个随机序列其中之一处理该第一错误修正 码, 以产生该等第一映射数据;
一互相关评估模块, 分别计算该等第一映射数据与该前次数据的该等互 相关值, 并依据一选取规则自该等互相关值中选取一最佳互相关值; 一选择器, 自该等第一映射数据中选取对应该最佳互相关值的第一映射 数据以输出该最佳映射数据; 以及
一附带信息附加器, 产生关于对应于该最佳互相关值的随机序列的该第 一附带信息,并附加该第一附带信息于该最佳映射数据之后以产生该输出映射 数据。
本发明所述的控制器, 其中该等搅乱器分别对该第一错误修正码与该等 随机序列其中之一的对应位进行 X0R运算, 以产生该等第一映射数据。
本发明所述的控制器, 其中该控制器更包括:
一选择性解映像器, 自该闪存接收一输入映射数据, 自该输入映射数据 取出一第二映射数据以及一第二附带信息,依据该第二附带信息自该等多个随 机序列中选取一解映射随机序列,并依据该解映像随机序列处理该第二映射数 据以还原一第二错误修正码; 以及
一错误修正码解码器, 解码该第二错误修正码以得到一第二原始数据, 以供传送至该主机。
本发明所述的控制器, 其中该选择性解映射器包括:
一附带信息分离器, 自该输入映射数据取出该第二映射数据以及该第二 附带信息;
一选择器, 依据该第二附带信息自该等多个随机序列中选取该解映射随 机序列;
一解搅乱器, 依据该解映像随机序列处理该第二映射数据以还原该第二 错误修正码。
本发明所述的控制器, 其中该解搅乱器对该第二映射数据与该解映像随 机序列的对应位进行 XOR运算, 以产生该第二错误修正码。
本发明所述的控制器, 其中该闪存系一多层单元闪存, 该输出映射数据 的位与该前次数据的位系储存于该闪存的同一记忆单元,且该互相关评估模块 自该等互相关值中选取一最大互相关值作为该最佳互相关值。
本发明所述的控制器, 其中该闪存系一单层单元闪存, 该输出映射数据 的位与该前次数据的位系储存于该闪存的相邻的记忆单元,且该互相关评估模 块自该等互相关值中选取一最小互相关值作
实施本发明的技术方案, 具有以下有益效果: 可通过改变储存于闪存中 的数据的相关性, 降低写入 /读取数据的干扰, 从而增进闪存所储存的数据的 稳定度。 附图说明
下面将结合附图及实施例对本发明作进一步说明, 附图中:
图 1A是一单层单元闪存的部分电路图;
图 1B是一多层单元闪存的一记忆单元的临界电压机率分布示意图; 图 2是本发明中快闪记忆装置的方块图;
图 3是本发明中选择性映射器的方块图;
图 4是本发明中将原始数据转换为输出映射数据的方法的流程图; 图 5是本发明中选择性解映射器的区块图;
图 6是本发明中将输入映射数据还原为原始数据的方法的流程图; 图 7是本发明中控制器所产生的供写入闪存的数据的过程的示意图; 图 8是本发明中快闪记忆装置的另一实施例的方块图。
图中, 101-104, 111-114, 121-124, 1N1-1N4是记忆单元; 202是主机; 204 是快闪记忆装置; 206是控制器; 208是闪存; 212是选择性映射器; 214是错 误修正码编码器; 216是错误修正码解码器; 218是选择性解映射器; 300是 选择性映射器; 301-30N是搅乱器; 312是互相关评估模块; 314是选择器; 316是附带信息附加器; 500是选择性解映射器; 502是附带信息分离器; 504 是解搅乱器; 506是选择器; 802是主机; 804是快闪记忆装置; 806是控制器; 808是闪存; 812是错误修正码编码器; 814是选择性映射器; 816是选择性解 映射器; 818是错误修正码解码器。 具体实施方式
图 2是本发明中快闪记忆装置 204的方块图。 快闪记忆装置 204耦接至 主机 202,用以储存数据。于一实施例中,快闪记忆装置 204包括一控制器 206 及一闪存 208。 控制器 206管理闪存 208的数据存取。 当主机 202欲储存数据 至快闪记忆装置 204时, 耦接于主机 202的控制器 206自主机 202接收数据, 再将数据写入闪存 208。 当主机 202欲自快闪记忆装置 204提取数据时, 控制 器 206自闪存 208读取数据, 再将数据传递至主机 202。
于一实施例中, 控制器 206包括选择性映射器 (selective mapper)212、 错 误修正码编码器 (error correction code encoder)214、 错误修正码角早码器 (error correction code decoder)216、 以及选择性角早映像器 (selective demapper)218。 当 主机 202欲储存原始数据 至快闪记忆装置 204时, 控制器 206接收原始数 据 首先, 选择性映像器 212将原始数据 0工转换为一输出映射数据 其中该输出映射数据 与一前次储存数据间的互相关值 (cross correlation value)较原始数据 与前次储存数据间的互相关值有所变化。接着, 错误修正 码编码器 214再将该输出映射数据 编码为错误修正码 d, 以供储存于闪存 208中。 由于错误修正码编码器 214于编码时仅依据输出映射数据 编码一 检查码 (parity),再将检查码附加于输出映射数据 之后以得到错误修正码 d, 而检查码仅占错误修正码 d—小部分的长度, 因此错误修正码 d与前次储存 数据间的互相关值仍可大幅度地被选择性映像器 212所决定。
因此,控制器 206可改变所欲储存的错误修正码 d与前次储存数据间的 互相关值, 以提升闪存 208所储存的数据的稳定度。 举例来说, 假设闪存 208 为多层单元 (multi-level cell, MLC)闪存, 则控制器 206提升所欲储存的错误修 正码 与前次储存数据间的互相关值, 以增加闪存 208所储存的数据的稳定 度。 假设闪存 208为单层单元 (single level cell, SLC)闪存, 则控制器 206减低 所欲储存的错误修正码 与前次储存数据间的互相关值, 以增加闪存 208所 储存的数据的稳定度。当主机 202欲自快闪记忆装置 204提取数据时,控制器 206首先自闪存 208读取错误修正码 C2。接着, 错误修正码解码器 216将错误 修正码 C2解码, 以得到输入映射数据 M2。 接着, 选择性解映像器 218再将输 入映射数据 ^12还原为原始数据 D2, 并将原始数据 D2递送至主机 202, 以完 成数据的读取。 图 3是本发明中选择性映射器 300的方块图。 于一实施例中, 选择性映 射器 300包括多个搅乱器 301、 302 30N, 互相关评估模块 312, 选择器
314, 以及附带信息附加器 316。 选择性映像器 300系依据图 4的将原始数据 转换为输出映射数据 Mi的方法 400进行运作。 首先, 选择性映像器 300接 收一原始数据 (步骤 402)。 接着, 搅乱器 301、 302 30N分别依据多个不 同的随机序列 、 P2 PN其中之一处理原始数据, 以产生多个不同的映 射数据 S2、 ...、 SN (步骤 404)。 于一实施例中, 搅乱器 301、 302、 ...、 30N 分别对原始数据与该等随机序列 P2 ?^^其中之一的对应位进行 XOR 运算, 以分别产生该等映射数据 Si、 S2 SN的位。
接着, 互相关评估模块 312分别计算该等映射数据 Si、 S2 SN与一 前次数据的多个互相关值 (cross correlation value)(步骤 406)。 于一实施例中, 互相关评估模块 312对映射数据 Si、 S2、 ...、 SN与前次数据的对应位进行 X0R 运算以得到多个 X0R值, 随后再将对应同一映射数据的多个 X0R值相加, 以产生该等互相关值。 在一实施例中, 互相关评估模块 312对映射数据 Si的 第一位及前次数据 CQ的第一位进行进行 X0R运算以得到第一个 X0R值、 对 映射数据 Si的第二位及前次数据 CQ的第二位进行进行 X0R运算以得到第二 个 X0R值 对映射数据 Si的第 N位及前次数据 CQ的第 N位进行进行
X0R运算以得到第 N个 X0R值, 随后再将第一到第 N个 X0R值相加, 以产 生映射数据 Si的互相关值, 其余映射数据的互相关值亦以类似方式产生, 在 此不再赘述。接着, 互相关评估模块 312依据一选取规则自该等互相关值中选 取一最佳互相关值 J (步骤 408)。 于一实施例中, 闪存 208系一多层单元闪存, 而互相关评估模块 312 自该等互相关值中选取一最大互相关值作为该最佳互 相关值 K, 以提升闪存 208所储存数据的稳定度。 于一实施例中, 闪存 208系 一单层单元闪存,而互相关评估模块 312自该等互相关值中选取一最小互相关 值作为该最佳互相关值 L 以提升闪存 208所储存数据的稳定度。 接着, 选择 器 314 自映射数据 S2 SN中选取对应互相关评估模块 312输出的最 佳互相关值 (例如最佳互相关值 K或 J) 的映射数据以输出为最佳映射数据 S (步骤 409)。最后, 附带信息附加器 316产生关于对应于该最佳互相关值 J的 随机序列的附带信息 (side information), 并附加该附带信息于最佳映射数据 S 之后以产生输出映射数据 (步骤 410)。
图 5是本发明中选择性解映射器 500的方块图。 于一实施例中, 选择性 解映像器 500包括附带信息分离器 502、 选择器 506、 以及解搅乱器 504。 选 择性解映像器 500系依据图 6的将输入映射数据 M2还原为原始数据02的方法 600进行运作。首先,选择性解映像器 500接收一输入映射数据 M2 (步骤 602)。 接着, 附带信息分离器 502 自输入映射数据^12取出其所包含之一映射数据 S 以及一附带信息 1(步骤 604)。接着, 选择器 506依据该附带信息 I自多个随机 序列 Pi、 P2、 P3 PN中选取一解映射随机序列 P* (步骤 606), 该解映像随 机序列 P*即为当初产生映射数据 S所依据的随机序列。 接着, 解搅乱器 504 依据解映像随机序列 P*处理该映射数据 S 以将映射数据 S 还原为原始数据 D2 (步骤 608)。最后, 控制器将选择性解映像器 500所产生的原始数据 D2递送 至主机, 以完成数据读取动作。
图 7是本发明中控制器所产生的供写入闪存的数据的过程的示意图。 于 图 7(a)中, 假设控制器 206收到一原始数据 D 接着, 选择性映像器 212将 原始数据 0工转换为图 7(b)中的映射数据 (已包含附带信息) 。 接着, 错误 修正码编码器 214依据映射数据 产生检查码 K, 并附加检查码 K于映射数 据 的后端以产生图 7(b)中的编码数据 —般而言, 原始数据0工及映射 数据 的大小约为主机的一个数据区段 (sector)或闪存的一页, 亦可为任意大 小。 然而, 选择性映像器 300会需要以多个缓存器储存搅乱器 301、 302
30N所产生的多笔映射数据 Si、 S2 SN。 当映射数据 Si、 S2 SN的 大小过大时, 会增加选择性映像器 300的缓存器的生产成本。
因此, 于一实施例中, 控制器 206自主机 202接收原始数据 后, 会先 将原始数据 0 分割成图 7(c)的多个原始数据 Dn、 D12、 D13 D1N, 再将 原始数据 Dn、 D12、 D13 D1N依序送至选择性映射器 300, 以依序产生图
7(d)的多个映射数据 Mu、 M12、 M13 M1N。 接着, 再由错误修正码编码 器 214依序将映射数据 Mu、 M12、 M13、 ...、 M1N编码为图 7(e)的编码数据 Cu、 C12、 C13、 ...、 C1N。 由于原始数据 Du、 D12、 D13、 ...、 D1N的大小已缩减, 因 此可减少选择性映像器 300的缓存器的容量大小, 进而减少选择性映像器 300 的缓存器的生产成本。
图 2的控制器 206中,错误修正码编码器 214系耦接于选择性映射器 212 的后端。于另一实施例中,错误修正码编码器亦可耦接于选择性映射器的前端。 图 8是本发明中快闪记忆装置 804的另一实施例的方块图。快闪记忆装置 804 包括一控制器 806及一闪存 808。 控制器 806包括错误修正码编码器 812、 选 择性映射器 814、 选择性解映像器 816、 以及错误修正码解码器 818。 当控制 器 806 自主机 802接收一原始数据 D 错误修正码编码器 812首先将原始数 据01编码为错误修正码 d'。 接着, 选择性映射器 814将错误修正码 C 转换 为输出映射数据 ΜΛ 以供储存于闪存 808中。 选择性映像器 814的电路结构 同于图 3的选择性映像器 300。
如图 7(f)所示,错误修正码编码器 812将原始数据 D1编码为包含检查码 K的错误修正码 d'。 接着, 选择性映射器 814再将图 7(f)的错误修正码 C 转换为图 7(g)的输出映射数据 。 因此, 相较于图 2的控制器 206, 图 8的 控制器 806可改变包含检查码 K的整体储存数据与前次储存数据的互相关值, 以增进储存数据的稳定度。当主机 802欲自快闪记忆装置 804读取数据,控制 器 806首先自闪存 808读取输入映射数据 M2'。 接着, 选择性解映像器 816将 映射数据 M2 '转换为错误修正码 C2'。 选择性解映像器 816的电路结构类似于 图 5 的选择性解映像器 500。 最后, 错误修正码解码器 818解码错误修正码 C2'以还原原始数据 D2。 控制器 806接着将原始数据 D2递送至主机 802, 以完 成数据读取动作。
虽然本发明已以较佳实施例揭露如上, 然其并非用以限定本发明, 任何 熟习此项技术者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰, 因此本发明的保护范围当视后附的申请专利范围所界定者为准。

Claims

权 利 要 求
1、 一种控制器, 耦接至一闪存与一主机, 其特征在于, 包括: 一选择性映像器, 接收一第一原始数据, 依据多个随机序列分别处理该 第一原始数据以产生多个第一映射数据,分别计算该等第一映射数据与一前次 数据的多个互相关值,依据该等互相关值自该等第一映射数据中选取一最佳映 射数据, 并依据该最佳映射数据产生一输出映射数据; 以及
一错误修正码编码器, 依据该输出映射数据编码一第一错误修正码, 以 供储存于该闪存中。
2、 根据权利要求 1所述的控制器, 其特征在于, 其中该选择性映射器 产生用以辨识供产生该最佳映射数据的随机序列的一第一附带信息并附加该 第一附带信息于该最佳映射数据之后以产生该输出映射数据。
3、 根据权利要求 2所述的控制器, 其特征在于, 其中该选择性映射器 包括:
多个搅乱器, 分别依据该等多个随机序列其中之一以处理该第一原始数 据, 以产生该等第一映射数据;
一互相关评估模块, 分别计算该等第一映射数据与该前次数据的该等互 相关值, 并依据一选取规则自该等互相关值中选取一最佳互相关值; 以及 一选择器, 自该等第一映射数据中选取对应该最佳互相关值的第一映射 数据以输出该最佳映射数据。
4、 根据权利要求 3所述的控制器, 其特征在于, 其中该选择性映射器 更包括:
一附带信息附加器, 产生关于对应于该最佳互相关值的随机序列的该第 一附带信息,并附加该第一附带信息于该最佳映射数据之后以产生该输出映射 数据。
5、 根据权利要求 3所述的控制器, 其特征在于, 其中该等搅乱器分别 对该第一原始数据与该等随机序列其中之一的对应位进行 X0R运算, 以产生 该等第一映射数据。
6、 根据权利要求 3所述的控制器, 其特征在于, 其中该闪存系一多层 单元闪存,该第一错误修正码的位与该前次数据的位系储存于该闪存的同一记 忆单元,且该互相关评估模块自该等互相关值中选取一最大互相关值作为该最 佳互相关值。
7、 根据权利要求 3所述的控制器, 其特征在于, 其中该闪存系一单层 单元闪存,该第一错误修正码的位与该前次数据的位系储存于该闪存的相邻的 记忆单元,且该互相关评估模块自该等互相关值中选取一最小互相关值作为该 最佳互相关值。
8、 根据权利要求 2所述的控制器, 其特征在于, 其中该控制器更包括: 一错误修正码解码器, 自该闪存接收一第二错误修正码, 并解码该第二 错误修正码以得到一输入映射数据; 以及
一选择性解映像器, 自该输入映射数据取出一第二映射数据以及一第二 附带信息, 依据该第二附带信息自该等多个随机序列中选取一解映射随机序 列, 并依据该解映像随机序列处理该第二映射数据以还原一第二原始数据, 以 供传送至该主机。
9、 根据权利要求 8所述的控制器, 其特征在于, 其中该选择性解映射 器包括:
一附带信息分离器, 自该输入映射数据取出该第二映射数据以及该第二 附带信息;
一选择器, 依据该第二附带信息自该等多个随机序列中选取该解映射随 机序列;
一解搅乱器, 依据该解映像随机序列处理该第二映射数据以还原该第二 原始数据。
10、 根据权利要求 9所述的控制器, 其特征在于, 其中该解搅乱器对该 第二映射数据与该解映像随机序列的对应位进行 XOR运算, 以产生该第二原 始数据。
11、 一种于闪存存取数据的方法, 其特征在于, 包括下列步骤: 接收一第一原始数据; 依据多个随机序列分别处理该第一原始数据以产生多个第一映射数据; 分别计算该等第一映射数据与一前次数据的多个互相关值;
依据该等互相关值自该等第一映射数据中选取一最佳映射数据; 以及 依据该最佳映射数据产生一输出映射数据, 以供储存于该闪存中。
12、 根据权利要求 11所述的于闪存存取数据的方法, 其特征在于, 其 中该方法更包括:
依据该输出映射数据编码一第一错误修正码, 以供储存于该闪存中。
13、 根据权利要求 11所述的于闪存存取数据的方法, 其特征在于, 其 中该输出映射数据的产生包括:
产生用以辨识供产生该最佳映射数据的随机序列的一第一附带信息; 以 及
附加该第一附带信息于该最佳映射数据之后以产生该输出映射数据。
14、 根据权利要求 11所述的于闪存存取数据的方法, 其特征在于, 其 中该等该第一原始数据的处理包括:
分别对该第一原始数据与该等随机序列其中之一的对应位进行 XOR运 算, 以产生该等第一映射数据。
15、 根据权利要求 12所述的于闪存存取数据的方法, 其特征在于, 其 中该闪存系一多层单元闪存,该第一错误修正码的位与该前次数据的位系储存 于该闪存的同一记忆单元, 且该最佳映射数据的选取包括:
自该等互相关值中选取一最大互相关值; 以及
自该等该等第一映射数据中选取对应于该最大互相关值的第一映射数据 作为该最佳映射数据。
16、 根据权利要求 12所述的于闪存存取数据的方法, 其特征在于, 其 中该闪存系一单层单元闪存,该第一错误修正码的位与该前次数据的位系储存 于该闪存的相邻的记忆单元, 且该最佳映射数据的选取包括:
自该等互相关值中选取一最小互相关值; 以及
自该等该等第一映射数据中选取对应于该最小互相关值的第一映射数据 作为该最佳映射数据。
17、 根据权利要求 13所述的于闪存存取数据的方法, 其特征在于, 其 中该方法更包括:
接收一输入映射数据;
自该输入映射数据取出一第二映射数据以及一第二附带信息;
依据该第二附带信息自该等多个随机序列中选取一解映射随机序列; 以 及
依据该解映像随机序列处理该第二映射数据以还原一第二原始数据, 以 供传送至一主机。
18、 根据权利要求 17所述的于闪存存取数据的方法, 其特征在于, 其 中该方法更包括:
自该闪存接收一第二错误修正码; 以及
解码该第二错误修正码以得到该输入映射数据。
19、 根据权利要求 17所述的于闪存存取数据的方法, 其特征在于, 其 中对该第二映射数据的处理包括:
对该第二映射数据与该解映像随机序列的对应位进行 XOR运算,以产生 该第二原始数据。
20、 一种控制器, 耦接至一闪存与一主机, 其特征在于, 包括: 一错误修正码编码器, 接收一第一原始数据, 并依据该第一原始数据编 码一第一错误修正码; 以及
一选择性映像器, 依据多个随机序列分别处理该第一错误修正码以产生 多个第一映射数据, 分别计算该等第一映射数据与一前次数据的多个互相关 值, 依据该等互相关值自该等第一映射数据中选取一最佳映射数据, 并依据该 最佳映射数据产生一输出映射数据, 以供储存于该闪存中。
21、 根据权利要求 20所述的控制器, 其特征在于, 其中该选择性映射 器产生用以辨识供产生该最佳映射数据的随机序列的一第一附带信息,并附加 该第一附带信息于该最佳映射数据之后以产生该输出映射数据。
22、 根据权利要求 21所述的控制器, 其特征在于, 其中该选择性映射 器包括: 多个搅乱器, 分别依据该等多个随机序列其中之一处理该第一错误修正 码, 以产生该等第一映射数据;
一互相关评估模块, 分别计算该等第一映射数据与该前次数据的该等互 相关值, 并依据一选取规则自该等互相关值中选取一最佳互相关值;
一选择器, 自该等第一映射数据中选取对应该最佳互相关值的第一映射 数据以输出该最佳映射数据; 以及
一附带信息附加器, 产生关于对应于该最佳互相关值的随机序列的该第 一附带信息,并附加该第一附带信息于该最佳映射数据之后以产生该输出映射 数据。
23、 根据权利要求 22所述的控制器, 其特征在于, 其中该等搅乱器分 别对该第一错误修正码与该等随机序列其中之一的对应位进行 X0R运算, 以 产生该等第一映射数据。
24、 根据权利要求 20所述的控制器, 其特征在于, 其中该控制器更包 括:
一选择性解映像器, 自该闪存接收一输入映射数据, 自该输入映射数据 取出一第二映射数据以及一第二附带信息,依据该第二附带信息自该等多个随 机序列中选取一解映射随机序列,并依据该解映像随机序列处理该第二映射数 据以还原一第二错误修正码; 以及
一错误修正码解码器, 解码该第二错误修正码以得到一第二原始数据, 以供传送至该主机。
25、 根据权利要求 24所述的控制器, 其特征在于, 其中该选择性解映 射器包括:
一附带信息分离器, 自该输入映射数据取出该第二映射数据以及该第二 附带信息;
一选择器, 依据该第二附带信息自该等多个随机序列中选取该解映射随 机序列;
一解搅乱器, 依据该解映像随机序列处理该第二映射数据以还原该第二 错误修正码。
26、 根据权利要求 25所述的控制器, 其特征在于, 其中该解搅乱器对 该第二映射数据与该解映像随机序列的对应位进行 XOR运算, 以产生该第二 错误修正码。
27、 根据权利要求 22所述的控制器, 其特征在于, 其中该闪存系一多 层单元闪存,该输出映射数据的位与该前次数据的位系储存于该闪存的同一记 忆单元,且该互相关评估模块自该等互相关值中选取一最大互相关值作为该最 佳互相关值。
28、 根据权利要求 22所述的控制器, 其特征在于, 其中该闪存系一单 层单元闪存,该输出映射数据的位与该前次数据的位系储存于该闪存的相邻的 记忆单元,且该互相关评估模块自该等互相关值中选取一最小互相关值作为该 最佳互相关值。
29、 一种于闪存存取数据的方法, 其特征在于, 包括下列步骤: 接收一第一原始数据;
依据该第一原始数据编码一第一错误修正码;
依据多个随机序列分别处理该第一错误修正码以产生多个第一映射数 据;
分别计算该等第一映射数据与一前次数据的多个互相关值;
依据该等互相关值自该等第一映射数据中选取一最佳映射数据; 以及 依据该最佳映射数据产生一输出映射数据, 以供储存于该闪存中。
PCT/CN2009/073146 2009-06-02 2009-08-07 闪存的控制器以及于闪存存取数据的方法 WO2010139131A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US18316309P 2009-06-02 2009-06-02
US61/183,163 2009-06-02

Publications (1)

Publication Number Publication Date
WO2010139131A1 true WO2010139131A1 (zh) 2010-12-09

Family

ID=43263810

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/073146 WO2010139131A1 (zh) 2009-06-02 2009-08-07 闪存的控制器以及于闪存存取数据的方法

Country Status (3)

Country Link
CN (1) CN101908378B (zh)
TW (1) TWI415130B (zh)
WO (1) WO2010139131A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147200A (zh) * 2018-02-13 2019-08-20 矽创电子股份有限公司 闪存的控制器及控制方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064755B (zh) * 2013-01-25 2015-03-25 珠海全志科技股份有限公司 Nand闪存写数据处理方法和装置
CN104102587A (zh) * 2014-07-09 2014-10-15 昆腾微电子股份有限公司 Nvm数据处理方法和装置
CN104679448B (zh) * 2015-02-05 2017-10-03 深圳市硅格半导体有限公司 数据比特流转换的方法和装置
CN107918571B (zh) * 2016-10-08 2021-04-30 上海宝存信息科技有限公司 测试储存单元的方法以及使用该方法的装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050270855A1 (en) * 2004-06-03 2005-12-08 Inphase Technologies, Inc. Data protection system
US20070208905A1 (en) * 2006-03-06 2007-09-06 Ramot At Tel-Aviv University Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US20080151621A1 (en) * 2006-12-26 2008-06-26 Samsung Electronics Co., Ltd. Multi-level cell memory devices and methods of storing data in and reading data from the memory devices
US20080184006A1 (en) * 2007-01-29 2008-07-31 Min-Soo Moon Method and System for Preloading Page Using Control Flow

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6987693B2 (en) * 2002-09-24 2006-01-17 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
JP2004361986A (ja) * 2003-04-08 2004-12-24 Sharp Corp スクランブル回路
CN103280239B (zh) * 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
US8127200B2 (en) * 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
CN100468576C (zh) * 2007-05-30 2009-03-11 忆正存储技术(深圳)有限公司 闪存数据读写处理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050270855A1 (en) * 2004-06-03 2005-12-08 Inphase Technologies, Inc. Data protection system
US20070208905A1 (en) * 2006-03-06 2007-09-06 Ramot At Tel-Aviv University Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US20080151621A1 (en) * 2006-12-26 2008-06-26 Samsung Electronics Co., Ltd. Multi-level cell memory devices and methods of storing data in and reading data from the memory devices
US20080184006A1 (en) * 2007-01-29 2008-07-31 Min-Soo Moon Method and System for Preloading Page Using Control Flow

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147200A (zh) * 2018-02-13 2019-08-20 矽创电子股份有限公司 闪存的控制器及控制方法

Also Published As

Publication number Publication date
CN101908378B (zh) 2013-03-27
CN101908378A (zh) 2010-12-08
TWI415130B (zh) 2013-11-11
TW201044404A (en) 2010-12-16

Similar Documents

Publication Publication Date Title
US8935589B2 (en) Controller and data access method for flash memories
US9425828B2 (en) Memory device and memory system
TWI533304B (zh) 用於儲存資料於具有跨頁區段、多頁編碼及每頁編碼之多位準單元快閃記憶體器件中之方法及裝置
US7900118B2 (en) Flash memory system and method for controlling the same
JP5785330B2 (ja) メモリエンデュランスのために動作させる装置および方法
KR101466695B1 (ko) 멀티 비트 레벨 데이터의 부호화 및 복호화 방법
US8656263B2 (en) Trellis-coded modulation in a multi-level cell flash memory device
CN1350369A (zh) 存储装置、访问存储装置的方法和里德索罗门解码器
CN102110481A (zh) 具有ecc电路的半导体存储系统及其控制方法
JP6016952B2 (ja) エラーコード化スキームと変調スキームを組合せるための装置及び方法
TW201230055A (en) System and method of interleaving data according to an adjustable parameter
CN110444240B (zh) 存储器系统的编码器和解码器及其方法
WO2010139131A1 (zh) 闪存的控制器以及于闪存存取数据的方法
CN111352765A (zh) 控制器及存储器系统
KR102204394B1 (ko) 메모리 시스템에서의 코딩 방법 및 디코딩 방법
US10855314B2 (en) Generating and using invertible, shortened Bose-Chaudhuri-Hocquenghem codewords
US20160342466A1 (en) Data encoding in solid-state storage apparatus
JP2018520410A5 (zh)
CN103227693B (zh) 增压码
US10951238B1 (en) Memory system and method for controlling non-volatile memory
CN108242249B (zh) 数据映射系统、方法及其存储介质
TW201526013A (zh) 儲存裝置及其存取方法
JPH11212876A (ja) 符号化方法およびそれを利用したメモリ装置
EP3968163B1 (en) Storage device and operating method of memory controller
CN113422612B (zh) 编码方法、译码方法及相关装置、电子设备和存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09845411

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09845411

Country of ref document: EP

Kind code of ref document: A1