WO2013128814A1 - Multi-level memory, multi-level memory writing method, and multi-level memory reading method - Google Patents
Multi-level memory, multi-level memory writing method, and multi-level memory reading method Download PDFInfo
- Publication number
- WO2013128814A1 WO2013128814A1 PCT/JP2013/000761 JP2013000761W WO2013128814A1 WO 2013128814 A1 WO2013128814 A1 WO 2013128814A1 JP 2013000761 W JP2013000761 W JP 2013000761W WO 2013128814 A1 WO2013128814 A1 WO 2013128814A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- conversion rule
- memory
- conversion
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5647—Multilevel memory with bit inversion arrangement
Definitions
- the present disclosure relates to a multi-level memory that stores two or more bits of information in one memory cell, a multi-level memory writing method, and a multi-level memory reading method.
- a non-volatile memory is regarded as an indispensible component for achieving higher functions of electronic devices.
- a non-volatile memory a semiconductor flash memory, a FeRAM (Ferroelectric Random Access Memory), an MRAM (Magnetoresistive Random Access Memory), and the like have been put into practical use, and research and development have been actively conducted in order to attain even higher performance.
- a memory cell is used to store two or more bits of information as a data value in one memory cell, in order to increase the storage capacity.
- Such a memory cell is called an MLC (Multi Level Cell).
- MLC Multi Level Cell
- SLC Single Level Cell
- a memory using an MLC is called a multi-level memory.
- a method for writing information on an MRAM is disclosed.
- input data is compared to data that has already been written in a region in which the input data is supposed to be written, and then encoding is performed so that the number of bits to be rewritten is decreased to half or lower thereof.
- the number of bits to be rewritten can be decreased during a writing operation, and therefore consumption energy can be reduced.
- a multi-level memory using an MLC stores two or more bits of information in one memory cell.
- data to be written includes "00,” “01,” “10,” and "11.”
- Energy to be consumed when the data is written (hereinafter referred to as writing energy) is different depending on data to be written.
- Writing energy of when "00" is written is set to be E(00), or the like.
- E(00) ⁇ E(01) ⁇ E(10) ⁇ E(11) is satisfied. For this reason, writing energy is consumed more, for example, when a large quantity of "11” is written than when a large quantity of "00” is written. Note that this quantitative relationship of writing energy is an assumption for explanation, and there are also cases of other quantitative relationships.
- a non-volatile memory has a problem in that the memory has an upper limit in the number of times capable of rewriting.
- the upper limit in the number of times capable of rewriting is related to writing energy. This is because stress is imposed on a memory cell according to the amount of writing energy.
- a current writing type MRAM when writing is performed, electric field stress is imposed on a tunnel barrier film constituting a memory cell. The electric field stress accumulates as writing is repeated, and finally, the tunnel barrier film causes electrostatic breakdown. Then, it is difficult to write new information on the memory cell any further. In other words, there is an upper limit in the number of times capable of rewriting.
- a memory comprises a memory array unit including a plurality of data units, and a controller.
- the controller is configured to receive data; convert the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and write the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
- a method of writing data into a memory including a memory array unit having a plurality of data units includes receiving data; converting the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and writing the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
- a method of reading data from a memory including a memory array unit having a plurality of data units includes reading converted data and a conversion rule identifier from a data unit; determining a conversion rule corresponding to the conversion rule identifier; reverse converting the converted data into reversely converted data using the conversion rule; and transmitting the reversely converted data.
- Fig. 1 is a block diagram of a multi-level memory according to an embodiment of the disclosure.
- Fig. 2 is an illustrative diagram of a data unit according to an embodiment of the disclosure.
- Fig. 3 is a conceptual diagram showing a storage state of a memory cell.
- Fig. 4 is a diagram showing an example of conversion rules.
- Fig. 5 is a flowchart of a writing process according to an embodiment of the disclosure.
- Fig. 6 is a flowchart of a reading process according to an embodiment of the disclosure.
- Fig. 7 is a diagram showing conversion rules according to a first embodiment.
- Fig. 8 is a flowchart for describing an operation of a conversion rule determination unit according to the first embodiment.
- Fig. 1 is a block diagram of a multi-level memory according to an embodiment of the disclosure.
- Fig. 2 is an illustrative diagram of a data unit according to an embodiment of the disclosure.
- Fig. 3 is a conceptual diagram
- FIG. 9 is a diagram showing conversion rules according to a second embodiment.
- Fig. 10 is a flowchart for describing an operation of a conversion rule determination unit according to the second embodiment.
- Fig. 11 is a diagram showing conversion rules according to a third embodiment.
- Fig. 12 is a flowchart for describing an operation of a conversion rule determination unit according to the third embodiment.
- Fig. 1 shows a configuration of a multi-level memory according to an embodiment.
- the multi-level memory 10 of Fig. 1 includes a memory control unit 10, a memory array unit 20, and an internal bus 3.
- the multi-level memory 1 performs communication with a host not shown in the drawing via a system bus 2.
- the memory control unit 1 processes writing and reading requests transmitted from the host. When there is a writing request, an address and writing data are received via the system bus 2, and the information is written in a corresponding location in the memory array unit 20 via the internal bus 3.
- an address is received through the system bus 2, data retained in a corresponding location of the memory array unit 20 is read via the internal bus 3, and the data is transmitted to the host via the system bus 2.
- the memory control unit 10 includes an input and output buffer, a writing/reading circuit, and the like not shown in the drawing but necessary for executing the processes.
- the memory control unit 10 further includes a data conversion section 11, a conversion rule holding section 12, a conversion rule determination section 13, and a data reverse conversion section 14. The functions of the components will be described in detail later.
- the memory array unit 20 includes a plurality of memory cells for storing data. Each memory cell holds two or more bits of information.
- the memory cells are managed as data units 21 in each predetermined number of units. In Fig. 1, there are B1 to Bk data units 21, and the memory array unit 20 includes k data units.
- Fig. 2 shows a configuration of the data units 21.
- Each data unit 21 is divided into a user data region and a conversion rule region.
- the user data region includes memory cells D1 to Dn
- the conversion rule region includes memory cells T1 to Tm.
- each data unit 21 has (n+m) memory cells.
- Fig. 3 shows a conceptual diagram of a storage state of a memory cell.
- the horizontal axis represents arbitrary characteristic values.
- the horizontal axis represents threshold voltage of a memory cell.
- the horizontal axis represents resistance values of a memory cell.
- Curves 31 to 34 are distribution curves indicating how many memory cells (the number of elements) corresponding to the characteristic values there are in the multi-level memory 1, with regard to the characteristic values on the horizontal axis.
- memory cells can store two bits of information as a data value.
- reference values R1, R2, and R3 set between the distributions are compared to the characteristic values of the memory cells. For example, when a characteristic value is greater than the reference value R1 and smaller than R2, it can be determined that the memory cell thereof stores "01."
- a writing operation is performed according to the operation principle of the memory cells. For example, in the cases of a flash memory and a resistance change type memory, a fixed writing voltage is applied to a writing terminal of the memory cells for a fixed period of writing time. Here, the writing voltage, the writing time, or both values are changed according to the writing data. With this operation, different data pieces can be written on the memory cells. Here, writing energy of which the amount is decided based on the writing voltage and the writing time is consumed. Since the writing voltage, the writing time, or both values are different depending on the data pieces to be written, the amount of writing energy also has different values depending on the data pieces to be written.
- the number of bits that the memory cell can store is not limited to two, and a higher number of bits is also possible.
- a multi-level memory has data of which the number of times of writing is desired to be decreased.
- all data pieces are naturally written at the same ratio. Therefore, according to this disclosure, a decrease in the number of times of writing of data of which the number of times of writing is desired to be decreased is realized by using the data conversion section 11, the conversion rule holding section 12, the conversion rule determination section 13, and the data reverse conversion section 14 shown in Fig. 1.
- Fig. 4 shows an example of such conversion rules.
- Arrows indicate the conversion of data, and the data in the root of each arrow is converted into data at the tip of each arrow.
- a conversion rule A all arrows points to the data pieces of their own. In other words, no conversion is performed.
- a conversion rule B "00,” “01,” “10,” and “11” are converted in a circulating manner.
- conversion rule C conversion is performed between “00” and "11” and between "10” and "01.”
- a conversion rule identifier "00,” a conversion rule identifier "01,” and a conversion rule identifier "10" can be respectively assigned to the conversion rule A, the conversion rule B, and the conversion rule C. With this operation, the conversion rule identifiers can be stored in one memory cell.
- the memory control unit 10 includes the data conversion section 11, the conversion rule holding section 12, the conversion rule determination section 13, and the data reverse conversion section 14. The functions thereof will be described through the conversion examples of user data. Note that, for convenience of description, the width of the user data is assumed to be four memory cells.
- the conversion rules A, B, and C, and the conversion rule identifiers thereof are stored in the conversion rule holding section 12.
- the conversion rule determination section 13 checks the received user data, and selects a conversion rule by which "11" may not be written from a plurality of conversion rules stored in the conversion rule holding section 12. In other words, the conversion rule determination section 13 can change a conversion rule to be selected according to writing data.
- the conversion rule B can be used.
- the data conversion section 11 converts "11” into “01,” “01” into “00,” and "00” into “10” using the selected conversion rule B.
- the conversion rule B also includes a rule of converting "10" into “11,” but since this user data does not include “10,” the rule is not applied. Then the memory control unit 10 matches the converted user data with "01" that is a conversion rule identifier of the conversion rule B, and writes the user data in a corresponding data unit 21 of the memory array unit 20. The user data corresponds to the conversion rule identifiers one to one.
- data to be written in the data unit 21 is "10.10.00.01, 01.”
- the front portion of ",” corresponds to user data
- the rear portion thereof corresponds to a conversion rule identifier.
- the user data is written in the user data region in the data unit 21 and the conversion rule identifier is written in the conversion rule region in the data unit 21.
- writing is performed for five memory cells, but none of the memory cells is written with "11.” With this operation, user data can be stored in the memory cells without writing "11" that is not desired to be written.
- the memory control unit 10 reads the user data ("10.10.00.01") and the conversion rule identifier ("01") from the corresponding data unit 21. Since the user data and the conversion rule identifier correspond to each other one to one, the conversion rule determination section 13 determines that the conversion rule B has been used from the fact that the read conversion rule identifier is "01,” referring to the conversion rule holding section 12. The data reverse conversion section 14 reversely converts "01” into “11,” “00” into “01,” and “10” into “00” by reversely using the conversion rule B. As a result, the user data after the reverse conversion is "00.00.01.11." The memory control unit 10 transmits the user data after the reverse conversion to the request source via the system bus 2.
- the conversion rule B since “10” is not included in the user data, the conversion rule B can be used. As another case, when “11” is included but “00" is not included in user data, the conversion rule C can be used.
- Fig. 5 is a flowchart of a writing process according to an embodiment of the disclosure.
- the memory control unit 10 receives writing data from a request source via the system bus 2.
- the conversion rule determination section 13 checks the writing data, and decides a conversion rule to be used among conversion rules retained in the conversion rule holding section 12.
- the data conversion section 11 converts user data according to the selected conversion rule.
- the memory control unit 10 writes the converted user data and the conversion rule identifier of the selected conversion rule in the memory array unit 20.
- Fig. 6 is a flowchart of a reading process according to an embodiment of the disclosure.
- the memory control unit 10 reads user data and a conversion rule identifier from the memory array unit 20.
- the conversion rule determination section 13 decides the conversion rule corresponding to the read conversion rule identifier referring to the conversion rule holding section 12.
- the data reverse conversion section 14 reversely converts the user data using the selected conversion rule.
- the memory control unit 10 transmits the reversely converted user data to the request source via the system bus.
- Fig. 7 is a diagram showing conversion rules according to the first embodiment.
- the four conversion rules according to the first embodiment are collectively referred to as a conversion rule set 1. Since the number of conversion rules is four, the number of memory cells necessary for storing a conversion rule identifier is 1. In this case, the conversion rule region of the data unit 21 in Fig. 2 includes one memory cell T1.
- Step S31 it is determined whether the user data includes "11" or not. When “11” is not included, the conversion rule indicated by the conversion rule identifier "00" is selected (Step S32). In Step S33, it is determined whether the user data includes “00" or not. When “00" is not included, the conversion rule indicated by the conversion rule identifier "01” is selected (Step S34). In Step S35, it is determined whether the user data includes "01" or not. When “01” is not included, the conversion rule indicated by the conversion rule identifier "10” is selected (Step S36).
- Step S37 it is determined whether the user data includes "10" or not.
- the conversion rule indicated by the conversion rule identifier "11” is selected (Step S38).
- Step S39 there is a remaining case in which the user data includes all data pieces, and in this case, the conversion rule indicated by the conversion rule identifier "00" is selected (Step S39).
- Table 1 shows a writing frequency of data according to the comparative example.
- the number of patterns of user data including four 2-bit memory cells is 256. Writing was performed in each of the patterns. Then, the number of times of writing each data piece ("00,” “01,” “10,” “11") in each memory cell was calculated. Of course, when conversion is not performed, the number of times of writing each of the data pieces is uniformly 64, and the ratio is 25% on a percentage basis.
- the three conversion rules according to the second embodiment are collectively referred to as a conversion rule set 2. Since the number of conversion rules is 3, the number of memory cells necessary for storing the conversion rule identifiers is 1.
- the user data region of the data unit 21 includes four memory cells D1, D2, D3, and D4, and the conversion rule region of the data unit 21 includes one memory cell T1.
- Step S41 it is determined whether the user data includes "11” or not. When “11” is not included, the conversion rule indicated by the conversion rule identifier "00" is selected (Step S42). In Step S43, it is determined whether the user data includes “00” or not. When “00” is not included, the conversion rule indicated by the conversion rule identifier "01” is selected (Step S44). In Step S45, it is determined whether the user data includes "01” or not. When “01” is not included, the conversion rule indicated by the conversion rule identifier "10” is selected (Step S46). Finally, there is a remaining case in which the user data includes all of "11,” “00,” and “01,” and in this case, the conversion rule indicated by the conversion rule identifier "00” is selected (Step S47).
- the number of times of writing "11" in the user data region is 18, which is three times greater than 6 of when the conversion rule set 1 is used. Nonetheless, the ratio is drastically decreased in comparison to 25% of the number of times of writing in the comparative example.
- Fig. 11 is a diagram showing conversion rules according to the third embodiment.
- the conversion rules themselves are the same as those in the first embodiment.
- the four conversion rules according to the third embodiment are collectively referred to as a conversion rule set 3. Since the number of conversion rules is four, the number of memory cells necessary for storing conversion rule identifiers is 1, but two memory cells are used particularly in the third embodiment.
- the user data region of the data unit 21 includes four memory cells of D1, D2, D3, and D4, and the conversion rule region of the data unit 21 includes two memory cells of T1 and T2.
- the conversion rule identifiers are "00,” “01,” “10,” and “11.” In this case, since the number of memory cells is one (two bits), if four conversion rule identifiers are to be expressed, the conversion rule identifier of "11" should be used. In order to avoid this situation, two memory cells T1 and T2 are prepared. In the third embodiment, the conversion rule identifiers are replaced with "00.00,” “00.01,” “01.00,” and "01.01” in that order.
- the conversion rule identifier before the period ".” corresponds to the memory cell T1 in the conversion rule region, and the conversion rule identifier after that corresponds to the memory cell T2 in the conversion rule region. In other words, data pieces that are likely to be written in T1 and T2 are only "00” and "01."
- Fig. 12 is a flowchart for describing an operation of the conversion rule determination section 13 according to the third embodiment.
- the flowchart is the same as that showing the operation of the conversion rule determination section 13 according to the first embodiment shown in Fig. 8 except that a selected conversion rule identifier is any one of "00.00,” “00.01,” “01.00,” and "01.01.”
- Step S51 it is determined whether the user data includes "11” or not. When “11” is not included, the conversion rule indicated by the conversion rule identifier "00.00” is selected (Step S52).
- Step S53 it is determined whether the user data includes "00” or not. When “00" is not included, the conversion rule indicated by the conversion rule identifier "00.01” is selected (Step S54).
- Step S55 it is determined whether the user data includes "01" or not. When “01” is not included, the conversion rule indicated by the conversion rule identifier "01.00" is selected (Step S56). In Step S57, it is determined whether the user data includes "10" or not. When “10” is not included, the conversion rule indicated by the conversion rule identifier "01.01” is selected (Step S58). Finally, there is a remaining case in which the user data includes all data pieces, and in this case, the conversion rule indicated by the conversion rule identifier "00.00” is selected (Step S59).
- the writing frequency was calculated. The result is shown in Table 4. Since conversion had been performed, calculation was performed for the user data D1, D2, D3, and D4, and the conversion rule identifiers T1 and T2. Since the conversion rules themselves are the same as those in the first embodiment, the number of times of writing the user data D1, D2, D3, and D4 is the same as that of the first embodiment. In addition, unlike the first embodiment, only "00" or "01” are written in the conversion rule identifiers T1 and T2. In this way, in the third embodiment, the ratio of writing "11" in the user data region is 2%, and "11" is never written in the conversion rule region.
- the conversion rules exemplified in the embodiments of the disclosure are merely examples, and other conversion rules may be used.
- the arrangement of the user data region and the conversion rule region in the data unit 21 is not fixed, but can be changed. In other words, a so-called smoothing operation in which a memory cell allocated to a user data region at one point is allocated to a conversion rule region at another point may be performed.
- a multi-level memory including: a memory array unit that includes a plurality of memory cells, each of which stores two or more bits of data values; and a memory control unit that converts a specific data value among data values to be written in one memory cell to a data value other than the specific data value based on a conversion rule according to data to be written in the memory array unit, and performs a process of writing the converted writing data and a conversion rule identifier indicating a conversion rule of the conversion in the memory array unit.
- the memory control unit includes a conversion rule holding part that holds a plurality of conversion rules for converting the writing data, a conversion rule determination part that selects one conversion rule from the conversion rule holding part according to the writing data, and a data conversion part that converts the writing data in compliance with the conversion rule selected by the conversion rule determination part.
- the memory control unit includes a conversion rule holding part that holds a plurality of conversion rules for converting the writing data, a conversion rule determination part that selects one conversion rule from the conversion rule holding part according to the writing data, and a data conversion part that converts the writing data in compliance with the conversion rule selected by the conversion rule determination part.
- the memory control unit includes a conversion rule holding part that holds a plurality of conversion rules for converting the writing data, a conversion rule determination part that selects one conversion rule from the conversion rule holding part according to the writing data, and a data conversion part that converts the writing data in compliance with the conversion rule selected by the conversion rule determination part.
- the memory control unit includes a data reverse conversion part that restores the data value of data read from the memory array unit to the original data value before the conversion based on the conversion rule identifier read from the memory array unit, and wherein data reversely converted in the data reverse conversion part is output as reading data.
- a value used as the conversion rule identifier is not included in the specific data value.
- a memory comprising: a memory array unit including a plurality of data units; and a controller configured to receive data; convert the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and write the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
- An apparatus comprising: a memory including: a memory array unit including a plurality of data units; and a controller configured to: receive data; convert the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and write the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
- a method of writing data into a memory including a memory array unit having a plurality of data units comprising: receiving data; converting the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and writing the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
- a method of reading data from a memory including a memory array unit having a plurality of data units comprising: reading converted data and a conversion rule identifier from a data unit; determining a conversion rule corresponding to the conversion rule identifier; reverse converting the converted data into reversely converted data using the conversion rule; and transmitting the reversely converted data.
- Multi-level memory 1 Multi-level memory 2 System bus 3 Internal bus 10 Memory control unit 11 Data conversion section 12 Conversion rule holding section 13 Conversion rule determination section 14 Data reverse conversion section 20 Memory array unit 21 Data unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
Abstract
A memory comprising a memory array unit including a plurality of data units, and a controller. The controller is configured to receive data; convert the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and write the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
Description
The present disclosure relates to a multi-level memory that stores two or more bits of information in one memory cell, a multi-level memory writing method, and a multi-level memory reading method.
In the past, as small-sized electronic devices which are used in information processing apparatuses, particularly in mobile terminals, and the like have been rapidly distributed, demand for higher performance including higher integration, higher speed, lower energy consumption, and the like has been made on memory elements, logic elements, and the like included in such electronic devices.
In such small-sized devices, a non-volatile memory is regarded as an indispensible component for achieving higher functions of electronic devices. As a non-volatile memory, a semiconductor flash memory, a FeRAM (Ferroelectric Random Access Memory), an MRAM (Magnetoresistive Random Access Memory), and the like have been put into practical use, and research and development have been actively conducted in order to attain even higher performance.
In such small-sized devices, a non-volatile memory is regarded as an indispensible component for achieving higher functions of electronic devices. As a non-volatile memory, a semiconductor flash memory, a FeRAM (Ferroelectric Random Access Memory), an MRAM (Magnetoresistive Random Access Memory), and the like have been put into practical use, and research and development have been actively conducted in order to attain even higher performance.
In addition, in a semiconductor flash memory, and the like, there is a case that a memory cell is used to store two or more bits of information as a data value in one memory cell, in order to increase the storage capacity. Such a memory cell is called an MLC (Multi Level Cell). On the other hand, a memory cell storing one bit of information in one memory cell is called an SLC (Single Level Cell). A memory using an MLC is called a multi-level memory.
Writing information on a non-volatile memory consumes energy. For this reason, various kinds of writing methods have been proposed in order to reduce consumption energy during writing.
For example, in PTL 1, a method for writing information on an MRAM is disclosed. In this writing method, input data is compared to data that has already been written in a region in which the input data is supposed to be written, and then encoding is performed so that the number of bits to be rewritten is decreased to half or lower thereof. In this manner, the number of bits to be rewritten can be decreased during a writing operation, and therefore consumption energy can be reduced.
In addition, in the writing method disclosed in PTL 2, input data is compared to data that has already been written in a region in which the input data is supposed to be written, and if the number of bits to be rewritten is the half or more, the data is replaced with "0" and "1" of the input data. Thus, only bits that need to be rewritten are rewritten. Further, a bit for storing information of whether "0" and "1" have replaced the input data or not is added, and the bit is also simultaneously written.
A multi-level memory using an MLC stores two or more bits of information in one memory cell. Let us assume a case in which two bits of information are stored. In this case, data to be written includes "00," "01," "10," and "11." Energy to be consumed when the data is written (hereinafter referred to as writing energy) is different depending on data to be written. Writing energy of when "00" is written is set to be E(00), or the like. When it is assumed that writing energy increases in the order of the above-described data, E(00) < E(01) < E(10) < E(11) is satisfied. For this reason, writing energy is consumed more, for example, when a large quantity of "11" is written than when a large quantity of "00" is written.
Note that this quantitative relationship of writing energy is an assumption for explanation, and there are also cases of other quantitative relationships.
Note that this quantitative relationship of writing energy is an assumption for explanation, and there are also cases of other quantitative relationships.
In addition, a non-volatile memory has a problem in that the memory has an upper limit in the number of times capable of rewriting. Generally, the upper limit in the number of times capable of rewriting is related to writing energy. This is because stress is imposed on a memory cell according to the amount of writing energy. For example, in the case of a current writing type MRAM, when writing is performed, electric field stress is imposed on a tunnel barrier film constituting a memory cell. The electric field stress accumulates as writing is repeated, and finally, the tunnel barrier film causes electrostatic breakdown. Then, it is difficult to write new information on the memory cell any further. In other words, there is an upper limit in the number of times capable of rewriting. Since the electric field stress increases as writing energy becomes greater, the number of times capable of rewriting decreases as writing energy becomes greater. In other words, when the case in which "00" is continuously written and the case in which "11" is continuously written in the same memory cell are compared, the number of times capable of rewriting further decreases in the case in which "11" is continuously written.
As above, in a multi-level memory, there is data that is disadvantageous in consumption energy and the number of times capable of rewriting during writing, and it is desirable that such data be written as little as possible.
As above, in a multi-level memory, there is data that is disadvantageous in consumption energy and the number of times capable of rewriting during writing, and it is desirable that such data be written as little as possible.
It is desirable to decrease the number of times of writing data using a large amount of writing energy that is disadvantageous in the number of times capable of rewriting as consumption energy becomes greater.
A memory according to the disclosure comprises a memory array unit including a plurality of data units, and a controller. The controller is configured to receive data; convert the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and write the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
A method of writing data into a memory including a memory array unit having a plurality of data units according to the disclosure includes receiving data; converting the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and writing the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit. In addition, a method of reading data from a memory including a memory array unit having a plurality of data units according to the disclosure includes reading converted data and a conversion rule identifier from a data unit; determining a conversion rule corresponding to the conversion rule identifier; reverse converting the converted data into reversely converted data using the conversion rule; and transmitting the reversely converted data.
In this way, it is possible to decrease the number of writing times of data that is disadvantageous in consumption energy and the number of times capable of rewriting.
According to this disclosure, since it is possible to decrease the number of writing times of data that is disadvantageous in consumption energy and the number of times capable of rewriting, there are effects of reducing consumption energy during writing and increasing the number of times capable of rewriting.
Hereinafter, preferred embodiments of the present disclosure will be described in detail with reference to the appended drawings. Note that, in this specification and the appended drawings, structural elements that have substantially the same function and structure are denoted with the same reference numerals, and repeated explanation of these structural elements is omitted.
Hereinafter, embodiments of the disclosure will be described in the following order.
<1. Overview of Multi-Level Memory of Embodiment>
<2. First Embodiment>
<3. Second Embodiment>
<4. Third Embodiment>
Hereinafter, embodiments of the disclosure will be described in the following order.
<1. Overview of Multi-Level Memory of Embodiment>
<2. First Embodiment>
<3. Second Embodiment>
<4. Third Embodiment>
<1. Overview of Multi-Level Memory of Embodiment>
Fig. 1 shows a configuration of a multi-level memory according to an embodiment.
Themulti-level memory 10 of Fig. 1 includes a memory control unit 10, a memory array unit 20, and an internal bus 3. In addition, the multi-level memory 1 performs communication with a host not shown in the drawing via a system bus 2.
Thememory control unit 1 processes writing and reading requests transmitted from the host. When there is a writing request, an address and writing data are received via the system bus 2, and the information is written in a corresponding location in the memory array unit 20 via the internal bus 3. When there is a reading request, an address is received through the system bus 2, data retained in a corresponding location of the memory array unit 20 is read via the internal bus 3, and the data is transmitted to the host via the system bus 2.
Fig. 1 shows a configuration of a multi-level memory according to an embodiment.
The
The
The memory control unit 10 includes an input and output buffer, a writing/reading circuit, and the like not shown in the drawing but necessary for executing the processes. The memory control unit 10 further includes a data conversion section 11, a conversion rule holding section 12, a conversion rule determination section 13, and a data reverse conversion section 14. The functions of the components will be described in detail later.
The memory array unit 20 includes a plurality of memory cells for storing data. Each memory cell holds two or more bits of information. The memory cells are managed as data units 21 in each predetermined number of units. In Fig. 1, there are B1 to Bk data units 21, and the memory array unit 20 includes k data units.
Fig. 2 shows a configuration of the data units 21.
Eachdata unit 21 is divided into a user data region and a conversion rule region. In Fig. 2, the user data region includes memory cells D1 to Dn, and the conversion rule region includes memory cells T1 to Tm. As a result, each data unit 21 has (n+m) memory cells.
Each
Fig. 3 shows a conceptual diagram of a storage state of a memory cell. The horizontal axis represents arbitrary characteristic values. In the case of a flash memory, for example, the horizontal axis represents threshold voltage of a memory cell. In the case of a resistance change type memory, the horizontal axis represents resistance values of a memory cell. Curves 31 to 34 are distribution curves indicating how many memory cells (the number of elements) corresponding to the characteristic values there are in the multi-level memory 1, with regard to the characteristic values on the horizontal axis. In the example of Fig. 3, there are four distributions for the characteristic values. As two-bit data values, "00," "01," "10," and "11" can be assigned to each of the distributions from the lower side of the characteristic values. Since one memory cell can have any one of the four states (data portions) in this manner, memory cells can store two bits of information as a data value.
In order to read which data has been stored, reference values R1, R2, and R3 set between the distributions are compared to the characteristic values of the memory cells. For example, when a characteristic value is greater than the reference value R1 and smaller than R2, it can be determined that the memory cell thereof stores "01."
In order to read which data has been stored, reference values R1, R2, and R3 set between the distributions are compared to the characteristic values of the memory cells. For example, when a characteristic value is greater than the reference value R1 and smaller than R2, it can be determined that the memory cell thereof stores "01."
Next, when data is to be written on the memory cells, a writing operation is performed according to the operation principle of the memory cells. For example, in the cases of a flash memory and a resistance change type memory, a fixed writing voltage is applied to a writing terminal of the memory cells for a fixed period of writing time. Here, the writing voltage, the writing time, or both values are changed according to the writing data. With this operation, different data pieces can be written on the memory cells.
Here, writing energy of which the amount is decided based on the writing voltage and the writing time is consumed. Since the writing voltage, the writing time, or both values are different depending on the data pieces to be written, the amount of writing energy also has different values depending on the data pieces to be written.
Here, writing energy of which the amount is decided based on the writing voltage and the writing time is consumed. Since the writing voltage, the writing time, or both values are different depending on the data pieces to be written, the amount of writing energy also has different values depending on the data pieces to be written.
For the above reason, when the number of times of writing "11" can be decreased to be as low as possible, low energy consumption and an increase in the number of times of rewriting can be attained.
Description below is on the premise of the relationship E(00) < E(01) < E(10) < E(11), but it is not limited to the fact that E(11) consumes the maximum energy, and the same principle is true when other relationships are appropriately applied.
In addition, the number of bits that the memory cell can store is not limited to two, and a higher number of bits is also possible.
As described hitherto, a multi-level memory has data of which the number of times of writing is desired to be decreased. However, when writing data is completely at random, all data pieces are naturally written at the same ratio. Therefore, according to this disclosure, a decrease in the number of times of writing of data of which the number of times of writing is desired to be decreased is realized by using thedata conversion section 11, the conversion rule holding section 12, the conversion rule determination section 13, and the data reverse conversion section 14 shown in Fig. 1.
As described hitherto, a multi-level memory has data of which the number of times of writing is desired to be decreased. However, when writing data is completely at random, all data pieces are naturally written at the same ratio. Therefore, according to this disclosure, a decrease in the number of times of writing of data of which the number of times of writing is desired to be decreased is realized by using the
Hereinbelow, a method thereof will be described.
In order to decrease the number of times of writing a specific data piece (for example, "11") of which the number of times of writing is desired to be decreased, writing may be performed by converting the data piece into another data piece (for example, "00"). With this operation, the data piece ("11") of which the number of times of writing is desired to be decreased may not be written.
If this conversion is performed, however, when the original writing data includes "00," data collision occurs. Thus, "00" is further converted to another data piece for writing. In this manner, a conversion rule is defined which is designed for writing all data pieces without collision. When memory cells can respectively store two bits of data, the total number of conversion rules that can be considered is 4*3*2*1= 24.
In order to decrease the number of times of writing a specific data piece (for example, "11") of which the number of times of writing is desired to be decreased, writing may be performed by converting the data piece into another data piece (for example, "00"). With this operation, the data piece ("11") of which the number of times of writing is desired to be decreased may not be written.
If this conversion is performed, however, when the original writing data includes "00," data collision occurs. Thus, "00" is further converted to another data piece for writing. In this manner, a conversion rule is defined which is designed for writing all data pieces without collision. When memory cells can respectively store two bits of data, the total number of conversion rules that can be considered is 4*3*2*1= 24.
Fig. 4 shows an example of such conversion rules. Arrows indicate the conversion of data, and the data in the root of each arrow is converted into data at the tip of each arrow. In a conversion rule A, all arrows points to the data pieces of their own. In other words, no conversion is performed. In a conversion rule B, "00," "01," "10," and "11" are converted in a circulating manner. In a conversion rule C, conversion is performed between "00" and "11" and between "10" and "01."
When conversions are performed, it is necessary to store which rules are used for the conversions on the memory cells. Otherwise, when data after conversion is to be read, the original data is unable to be restored. In order to store the conversion rules, unique conversion rule identifiers are assigned to each of the conversion rules. In this example, the total number of conversion rules is 24. Thus, the conversion rule identifiers are from "00.00.00" to "01.01.11" and each conversion rule takes one unique conversion rule identifier among them. Since a memory cell is a 2-bit cell, three memory cells are necessary for storing the conversion rule identifiers.
In order to use the memory cells for storing the conversion rules, regions storing the original writing data are reduced. In order to lower the effect thereof, a plurality of writing data pieces may be converted using the same conversion rule. With this operation, the relative ratio of the memory cells configured to store the conversion rules can be lowered. Hereinbelow, a gathering of the plurality of writing data pieces converted using the same conversion rule will be referred to as user data.
It has been described above that the number of conversion rules is 24, but it is not necessary to use all of the conversion rules. There may be a case in which only three conversion rules A, B, and C shown in Fig. 4 are used.
In this case, a conversion rule identifier "00," a conversion rule identifier "01," and a conversion rule identifier "10" can be respectively assigned to the conversion rule A, the conversion rule B, and the conversion rule C. With this operation, the conversion rule identifiers can be stored in one memory cell.
It has been described above that the number of conversion rules is 24, but it is not necessary to use all of the conversion rules. There may be a case in which only three conversion rules A, B, and C shown in Fig. 4 are used.
In this case, a conversion rule identifier "00," a conversion rule identifier "01," and a conversion rule identifier "10" can be respectively assigned to the conversion rule A, the conversion rule B, and the conversion rule C. With this operation, the conversion rule identifiers can be stored in one memory cell.
Herein, conversion examples of user data when the three conversion rules A, B, and C shown in Fig. 4 are used will be described. Returning to Fig. 1, the memory control unit 10 includes the data conversion section 11, the conversion rule holding section 12, the conversion rule determination section 13, and the data reverse conversion section 14. The functions thereof will be described through the conversion examples of user data. Note that, for convenience of description, the width of the user data is assumed to be four memory cells.
First, as a preparation step, the conversion rules A, B, and C, and the conversion rule identifiers thereof are stored in the conversionrule holding section 12.
First, as a preparation step, the conversion rules A, B, and C, and the conversion rule identifiers thereof are stored in the conversion
As a first example, a case in which there is a request to write user data "00.00.01.11" is considered. When the memory control unit 10 receives the user data via the system bus 2, the data is transmitted to the conversion rule determination section 13. The conversion rule determination section 13 checks the received user data, and selects a conversion rule by which "11" may not be written from a plurality of conversion rules stored in the conversion rule holding section 12.
In other words, the conversionrule determination section 13 can change a conversion rule to be selected according to writing data.
In this example, the conversion rule B can be used. Thedata conversion section 11 converts "11" into "01," "01" into "00," and "00" into "10" using the selected conversion rule B. The conversion rule B also includes a rule of converting "10" into "11," but since this user data does not include "10," the rule is not applied. Then the memory control unit 10 matches the converted user data with "01" that is a conversion rule identifier of the conversion rule B, and writes the user data in a corresponding data unit 21 of the memory array unit 20. The user data corresponds to the conversion rule identifiers one to one.
In other words, the conversion
In this example, the conversion rule B can be used. The
At this moment, data to be written in the data unit 21 is "10.10.00.01, 01." In this case, the front portion of "," corresponds to user data, and the rear portion thereof corresponds to a conversion rule identifier. Then, as shown in Fig. 3, the user data is written in the user data region in the data unit 21 and the conversion rule identifier is written in the conversion rule region in the data unit 21. In the entire data units, writing is performed for five memory cells, but none of the memory cells is written with "11." With this operation, user data can be stored in the memory cells without writing "11" that is not desired to be written.
When there is a reading request, the process may be performed in a reverse manner. The memory control unit 10 reads the user data ("10.10.00.01") and the conversion rule identifier ("01") from the corresponding data unit 21. Since the user data and the conversion rule identifier correspond to each other one to one, the conversion rule determination section 13 determines that the conversion rule B has been used from the fact that the read conversion rule identifier is "01," referring to the conversion rule holding section 12. The data reverse conversion section 14 reversely converts "01" into "11," "00" into "01," and "10" into "00" by reversely using the conversion rule B. As a result, the user data after the reverse conversion is "00.00.01.11." The memory control unit 10 transmits the user data after the reverse conversion to the request source via the system bus 2.
In the first example, since "10" is not included in the user data, the conversion rule B can be used. As another case, when "11" is included but "00" is not included in user data, the conversion rule C can be used.
Next, as a second example, a case in which there is a request to write user data "00.01.10.11" is considered. In this case, since all data pieces ("00," "01," "10," and "11") are included in the user data, writing "11" occurs no matter what conversion is performed. For this reason, the conversion rule determination section 13 selects the conversion rule A that is a conversion rule of "conversion will not be performed." Other operations are the same as those in the first example. Data to be written in the data unit 21 is "00.01.10.11,00."
In this manner, although writing of "11" occurs when all data pieces are included in user data, such cases are rare in reality. In other words, when the width of user data is four memory cells and each memory cell is a 2-bit cell, the total number of data patterns is 44=256, but when all data pieces are included in the user data, the number is 24. This is the reason that the number of times of writing of data which is not desired to be written can be decreased according to this disclosure.
The above-described writing and reading processes will be described using a flowchart.
In this manner, although writing of "11" occurs when all data pieces are included in user data, such cases are rare in reality. In other words, when the width of user data is four memory cells and each memory cell is a 2-bit cell, the total number of data patterns is 44=256, but when all data pieces are included in the user data, the number is 24. This is the reason that the number of times of writing of data which is not desired to be written can be decreased according to this disclosure.
The above-described writing and reading processes will be described using a flowchart.
Fig. 5 is a flowchart of a writing process according to an embodiment of the disclosure.
In Step S11, thememory control unit 10 receives writing data from a request source via the system bus 2. In Step S12, the conversion rule determination section 13 checks the writing data, and decides a conversion rule to be used among conversion rules retained in the conversion rule holding section 12. In Step S13, the data conversion section 11 converts user data according to the selected conversion rule. In Step S14, the memory control unit 10 writes the converted user data and the conversion rule identifier of the selected conversion rule in the memory array unit 20.
In Step S11, the
Fig. 6 is a flowchart of a reading process according to an embodiment of the disclosure.
In Step S21, thememory control unit 10 reads user data and a conversion rule identifier from the memory array unit 20. In Step S22, the conversion rule determination section 13 decides the conversion rule corresponding to the read conversion rule identifier referring to the conversion rule holding section 12. In Step S23, the data reverse conversion section 14 reversely converts the user data using the selected conversion rule. In Step S24, the memory control unit 10 transmits the reversely converted user data to the request source via the system bus.
In Step S21, the
<2. First Embodiment>
Next, a first embodiment will be described.
Herein, a specific conversion rule according to the first embodiment will be present, and an effect obtained by applying the conversion rule will also be described in detail. Note that it is assumed that a memory cell stores two bits and the width of user data is four memory cells in the same manner as in the previous example. In this case, in Fig. 2, the user data region of eachdata unit 21 includes four memory cells D1, D2, D3, and D4.
Next, a first embodiment will be described.
Herein, a specific conversion rule according to the first embodiment will be present, and an effect obtained by applying the conversion rule will also be described in detail. Note that it is assumed that a memory cell stores two bits and the width of user data is four memory cells in the same manner as in the previous example. In this case, in Fig. 2, the user data region of each
Fig. 7 is a diagram showing conversion rules according to the first embodiment. In the first embodiment, four conversion rules are used. The four conversion rules according to the first embodiment are collectively referred to as a conversion rule set 1. Since the number of conversion rules is four, the number of memory cells necessary for storing a conversion rule identifier is 1. In this case, the conversion rule region of the data unit 21 in Fig. 2 includes one memory cell T1.
In the conversion rule indicated by the conversion rule identifier "00," data is not converted. In the conversion rule indicated by the conversion rule identifier "01," "11" is converted into "00." "01" and "10" are not converted. "00" is originally set to be converted into "11," but since there is the premise that the conversion rule is not applied to user data including "00" in the first place, the rule is not described in Fig. 7. In the conversion rule indicated by the conversion rule identifier "10" and the conversion rule indicated by the conversion rule identifier "11," "11" is converted into "01" and "10" respectively in the same manner, and other data pieces are not converted.
Fig. 8 is a flowchart for describing an operation of the conversion rule determination section 13 according to the first embodiment.
In Step S31, it is determined whether the user data includes "11" or not. When "11" is not included, the conversion rule indicated by the conversion rule identifier "00" is selected (Step S32).
In Step S33, it is determined whether the user data includes "00" or not. When "00" is not included, the conversion rule indicated by the conversion rule identifier "01" is selected (Step S34).
In Step S35, it is determined whether the user data includes "01" or not. When "01" is not included, the conversion rule indicated by the conversion rule identifier "10" is selected (Step S36).
In Step S37, it is determined whether the user data includes "10" or not. When "10" is not included, the conversion rule indicated by the conversion rule identifier "11" is selected (Step S38).
Finally, there is a remaining case in which the user data includes all data pieces, and in this case, the conversion rule indicated by the conversion rule identifier "00" is selected (Step S39).
In Step S31, it is determined whether the user data includes "11" or not. When "11" is not included, the conversion rule indicated by the conversion rule identifier "00" is selected (Step S32).
In Step S33, it is determined whether the user data includes "00" or not. When "00" is not included, the conversion rule indicated by the conversion rule identifier "01" is selected (Step S34).
In Step S35, it is determined whether the user data includes "01" or not. When "01" is not included, the conversion rule indicated by the conversion rule identifier "10" is selected (Step S36).
In Step S37, it is determined whether the user data includes "10" or not. When "10" is not included, the conversion rule indicated by the conversion rule identifier "11" is selected (Step S38).
Finally, there is a remaining case in which the user data includes all data pieces, and in this case, the conversion rule indicated by the conversion rule identifier "00" is selected (Step S39).
In order to describe an effect when the conversion rule set 1 is used, first, a writing frequency when conversion is not performed (comparative example) was calculated. Table 1 shows a writing frequency of data according to the comparative example. As previously described, the number of patterns of user data including four 2-bit memory cells is 256. Writing was performed in each of the patterns. Then, the number of times of writing each data piece ("00," "01," "10," "11") in each memory cell was calculated. Of course, when conversion is not performed, the number of times of writing each of the data pieces is uniformly 64, and the ratio is 25% on a percentage basis.
Next, a writing frequency when the conversion rule set 1 is used was calculated. The result is shown in Table 2.
Since conversion had been performed, calculation was performed for each of the user data D1, D2, D3, and D4, and the conversion rule identifier T1. As a result, it is ascertained that the number of times of writing the user data D1, D2, D3, and D4, and the conversion rule identifier T1 satisfies "00" > "01" > "10" > "11," and the number of times of writing "11" that is data particularly not desired to be written drastically decreases. Particularly focusing only on the user data region, the ratio of writing "11" decreases to as little as 2%.
Since conversion had been performed, calculation was performed for each of the user data D1, D2, D3, and D4, and the conversion rule identifier T1. As a result, it is ascertained that the number of times of writing the user data D1, D2, D3, and D4, and the conversion rule identifier T1 satisfies "00" > "01" > "10" > "11," and the number of times of writing "11" that is data particularly not desired to be written drastically decreases. Particularly focusing only on the user data region, the ratio of writing "11" decreases to as little as 2%.
<3. Second Embodiment>
Next, a second embodiment will be described.
In the first embodiment, there is a case in which a conversion rule identifier is "11." Originally, since the goal is to decrease the number of times of writing "11," even writing "11" in the conversion rule region of thedata unit 21 is an operation at odds with the original goal.
For the purpose of such an operation, the second embodiment changes the conversion rules as shown in Fig. 9. That is, the conversion rule in which the conversion rule identifier is "11" that is originally included in the conversion rule set 1 is omitted. Other conversion rules are the same as the conversion rule set 1.
Next, a second embodiment will be described.
In the first embodiment, there is a case in which a conversion rule identifier is "11." Originally, since the goal is to decrease the number of times of writing "11," even writing "11" in the conversion rule region of the
For the purpose of such an operation, the second embodiment changes the conversion rules as shown in Fig. 9. That is, the conversion rule in which the conversion rule identifier is "11" that is originally included in the conversion rule set 1 is omitted. Other conversion rules are the same as the conversion rule set 1.
The three conversion rules according to the second embodiment are collectively referred to as a conversion rule set 2. Since the number of conversion rules is 3, the number of memory cells necessary for storing the conversion rule identifiers is 1. In this case, as in the first embodiment, the user data region of the data unit 21 includes four memory cells D1, D2, D3, and D4, and the conversion rule region of the data unit 21 includes one memory cell T1.
Fig. 10 is a flowchart for describing an operation of the conversion rule determination section 13 according to the second embodiment.
In Step S41, it is determined whether the user data includes "11" or not. When "11" is not included, the conversion rule indicated by the conversion rule identifier "00" is selected (Step S42).
In Step S43, it is determined whether the user data includes "00" or not. When "00" is not included, the conversion rule indicated by the conversion rule identifier "01" is selected (Step S44).
In Step S45, it is determined whether the user data includes "01" or not. When "01" is not included, the conversion rule indicated by the conversion rule identifier "10" is selected (Step S46).
Finally, there is a remaining case in which the user data includes all of "11," "00," and "01," and in this case, the conversion rule indicated by the conversion rule identifier "00" is selected (Step S47).
In Step S41, it is determined whether the user data includes "11" or not. When "11" is not included, the conversion rule indicated by the conversion rule identifier "00" is selected (Step S42).
In Step S43, it is determined whether the user data includes "00" or not. When "00" is not included, the conversion rule indicated by the conversion rule identifier "01" is selected (Step S44).
In Step S45, it is determined whether the user data includes "01" or not. When "01" is not included, the conversion rule indicated by the conversion rule identifier "10" is selected (Step S46).
Finally, there is a remaining case in which the user data includes all of "11," "00," and "01," and in this case, the conversion rule indicated by the conversion rule identifier "00" is selected (Step S47).
In order to describe an effect of when the conversion rule set 2 is used, the writing frequency was calculated. The result is shown in Table 3. Calculation was performed for the user data D1, D2, D3, and D4, and the conversion rule identifier T1. As a result, it is ascertained that the number of times of writing the user data D1, D2, D3, and D4, and the conversion rule identifier T1 satisfies "00" > "01" > "10" > "11," and the number of times of writing "11" that is data that is particularly not desired to be written drastically decreases. In addition, "11" is never written in the conversion rule region. However, as a side effect, the number of times of writing "11" in the user data region is 18, which is three times greater than 6 of when the conversion rule set 1 is used. Nonetheless, the ratio is drastically decreased in comparison to 25% of the number of times of writing in the comparative example.
<4. Third Embodiment>
Next, a third embodiment will be described.
In the first embodiment, there is a case in which the conversion rule identifier is "11." On the other hand, in the second embodiment, while there is no case in which the conversion rule identifier is "11," the number of times of writing "11" in the user data region is greater than that in the first embodiment.
Thus, in the third embodiment, conversion rules are shown in which there is no case in which the conversion rule identifier is "11," and at the same time, the number of times of writing "11" in the user data region is equal to that of the first embodiment.
Next, a third embodiment will be described.
In the first embodiment, there is a case in which the conversion rule identifier is "11." On the other hand, in the second embodiment, while there is no case in which the conversion rule identifier is "11," the number of times of writing "11" in the user data region is greater than that in the first embodiment.
Thus, in the third embodiment, conversion rules are shown in which there is no case in which the conversion rule identifier is "11," and at the same time, the number of times of writing "11" in the user data region is equal to that of the first embodiment.
Fig. 11 is a diagram showing conversion rules according to the third embodiment. The conversion rules themselves are the same as those in the first embodiment.
The four conversion rules according to the third embodiment are collectively referred to as a conversion rule set 3. Since the number of conversion rules is four, the number of memory cells necessary for storing conversion rule identifiers is 1, but two memory cells are used particularly in the third embodiment. In this case, the user data region of thedata unit 21 includes four memory cells of D1, D2, D3, and D4, and the conversion rule region of the data unit 21 includes two memory cells of T1 and T2.
The four conversion rules according to the third embodiment are collectively referred to as a conversion rule set 3. Since the number of conversion rules is four, the number of memory cells necessary for storing conversion rule identifiers is 1, but two memory cells are used particularly in the third embodiment. In this case, the user data region of the
In the first embodiment, the conversion rule identifiers are "00," "01," "10," and "11." In this case, since the number of memory cells is one (two bits), if four conversion rule identifiers are to be expressed, the conversion rule identifier of "11" should be used. In order to avoid this situation, two memory cells T1 and T2 are prepared.
In the third embodiment, the conversion rule identifiers are replaced with "00.00," "00.01," "01.00," and "01.01" in that order. Herein, the conversion rule identifier before the period "." corresponds to the memory cell T1 in the conversion rule region, and the conversion rule identifier after that corresponds to the memory cell T2 in the conversion rule region. In other words, data pieces that are likely to be written in T1 and T2 are only "00" and "01."
In the third embodiment, the conversion rule identifiers are replaced with "00.00," "00.01," "01.00," and "01.01" in that order. Herein, the conversion rule identifier before the period "." corresponds to the memory cell T1 in the conversion rule region, and the conversion rule identifier after that corresponds to the memory cell T2 in the conversion rule region. In other words, data pieces that are likely to be written in T1 and T2 are only "00" and "01."
Fig. 12 is a flowchart for describing an operation of the conversion rule determination section 13 according to the third embodiment. The flowchart is the same as that showing the operation of the conversion rule determination section 13 according to the first embodiment shown in Fig. 8 except that a selected conversion rule identifier is any one of "00.00," "00.01," "01.00," and "01.01."
In Step S51, it is determined whether the user data includes "11" or not. When "11" is not included, the conversion rule indicated by the conversion rule identifier "00.00" is selected (Step S52).
In Step S53, it is determined whether the user data includes "00" or not. When "00" is not included, the conversion rule indicated by the conversion rule identifier "00.01" is selected (Step S54).
In Step S55, it is determined whether the user data includes "01" or not. When "01" is not included, the conversion rule indicated by the conversion rule identifier "01.00" is selected (Step S56).
In Step S57, it is determined whether the user data includes "10" or not. When "10" is not included, the conversion rule indicated by the conversion rule identifier "01.01" is selected (Step S58).
Finally, there is a remaining case in which the user data includes all data pieces, and in this case, the conversion rule indicated by the conversion rule identifier "00.00" is selected (Step S59).
In Step S51, it is determined whether the user data includes "11" or not. When "11" is not included, the conversion rule indicated by the conversion rule identifier "00.00" is selected (Step S52).
In Step S53, it is determined whether the user data includes "00" or not. When "00" is not included, the conversion rule indicated by the conversion rule identifier "00.01" is selected (Step S54).
In Step S55, it is determined whether the user data includes "01" or not. When "01" is not included, the conversion rule indicated by the conversion rule identifier "01.00" is selected (Step S56).
In Step S57, it is determined whether the user data includes "10" or not. When "10" is not included, the conversion rule indicated by the conversion rule identifier "01.01" is selected (Step S58).
Finally, there is a remaining case in which the user data includes all data pieces, and in this case, the conversion rule indicated by the conversion rule identifier "00.00" is selected (Step S59).
In order to describe an effect of when the conversion rule set 3 is used, the writing frequency was calculated. The result is shown in Table 4. Since conversion had been performed, calculation was performed for the user data D1, D2, D3, and D4, and the conversion rule identifiers T1 and T2. Since the conversion rules themselves are the same as those in the first embodiment, the number of times of writing the user data D1, D2, D3, and D4 is the same as that of the first embodiment. In addition, unlike the first embodiment, only "00" or "01" are written in the conversion rule identifiers T1 and T2.
In this way, in the third embodiment, the ratio of writing "11" in the user data region is 2%, and "11" is never written in the conversion rule region.
In this way, in the third embodiment, the ratio of writing "11" in the user data region is 2%, and "11" is never written in the conversion rule region.
According to the embodiments of the disclosure as above, it is ascertained that the number of times of writing data that is not desired to be written ("11" in the above examples) can be drastically decreased by selecting an appropriate data conversion rule.
The conversion rules exemplified in the embodiments of the disclosure are merely examples, and other conversion rules may be used.
In addition, it is desirable that a copy of the conversion rules stored in the conversionrule holding section 12 also be stored in the memory array unit 20 so that the conversion rules are not lost even when power supply to the multi-level memory is disconnected.
Further, the arrangement of the user data region and the conversion rule region in thedata unit 21 is not fixed, but can be changed. In other words, a so-called smoothing operation in which a memory cell allocated to a user data region at one point is allocated to a conversion rule region at another point may be performed.
The conversion rules exemplified in the embodiments of the disclosure are merely examples, and other conversion rules may be used.
In addition, it is desirable that a copy of the conversion rules stored in the conversion
Further, the arrangement of the user data region and the conversion rule region in the
Additionally, the present technology may also be configured as below.
(1)
A multi-level memory including:
a memory array unit that includes a plurality of memory cells, each of which stores two or more bits of data values; and
a memory control unit that converts a specific data value among data values to be written in one memory cell to a data value other than the specific data value based on a conversion rule according to data to be written in the memory array unit, and performs a process of writing the converted writing data and a conversion rule identifier indicating a conversion rule of the conversion in the memory array unit.
(2)
The multi-level memory according to (1), wherein, in the memory array unit, a memory cell region storing the converted writing data and a memory cell region storing the conversion rule identifier correspond to each other one to one.
(3)
The multi-level memory according to (1) or (2), wherein the memory control unit includes a conversion rule holding part that holds a plurality of conversion rules for converting the writing data, a conversion rule determination part that selects one conversion rule from the conversion rule holding part according to the writing data, and a data conversion part that converts the writing data in compliance with the conversion rule selected by the conversion rule determination part.
(4)
The multi-level memory according to (3), wherein, among the plurality of conversion rules stored in the conversion rule holding part, one conversion rule is a conversion rule in which conversion of the writing data is not performed.
(5)
The multi-level memory according to any one of (1) to (4), wherein, among all data values that are likely to be written in one memory cell, the specific data value is a data value when the maximum amount of energy is consumed during writing.
(6)
The multi-level memory according to any one of (1) to (5), wherein the memory control unit includes a data reverse conversion part that restores the data value of data read from the memory array unit to the original data value before the conversion based on the conversion rule identifier read from the memory array unit, and
wherein data reversely converted in the data reverse conversion part is output as reading data.
(7)
The multi-level memory according to any one of (1) to (6), wherein a value used as the conversion rule identifier is not included in the specific data value.
(8)
A memory comprising: a memory array unit including a plurality of data units; and a controller configured to receive data; convert the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and write the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
(9)
A memory of (7), wherein the plurality of data units have multi-level cells used to store two or more bits of information.
(10)
A memory of any one of (7) and (9), further comprising: a storage unit configured to store at least one conversion rule and at least one corresponding conversion rule identifier.
(11)
A memory of (10), wherein the controller is further configured to: select the conversion rule from among the at least one conversion rule stored in the storage unit.
(12)
A memory of any one of (10) and (11), wherein the storage unit is configured to store a conversion rule that keeps the converted data the same as the received data, and to store a corresponding conversion rule identifier.
(13)
A memory of any one of (8), (9), (10), (11), and (12), wherein a conversion rule requiring the least write energy to write the converted data is selected.
(14)
A memory of any one of (8), (9), (10), (11), (12), and (13), wherein a conversion rule is selected by which a data piece consuming a maximum write energy among all possible data pieces is written into the data unit the least.
(15)
A memory of any one of (8), (9), (10), (11), (12), (13), and (14), wherein a conversion rule is selected that satisfies a data piece consuming a least write energy is written a larger number of times than a data piece consuming a second least write energy which is written a larger number of times than a data piece consuming a second most write energy which is written a larger number of times than a data piece consuming a maximum write energy.
(16)
A memory of any one of (8), (9), (10), (11), (12), (13), (14), and (15), wherein each data unit has a data region and a conversion rule region, and
the controller is further configured to: write the converted data into the data region of the data unit, and write the conversion rule identifier into the conversion rule region of the data unit.
(17)
A memory of any one of (8), (9), (10), (11), (12), (13), (14), (15), and (16), wherein the conversion rule is written into the data unit without using a data piece consuming a maximum write energy.
(18)
A memory of any one of (8), (9), (10), (11), (12), (13), (14), (16), and (17), wherein the conversion rule is written into the data unit using only a data piece consuming a least write energy, only a data piece consuming a second least write energy, or only the data piece consuming the least write energy and the data piece consuming the second least write energy.
(19)
A memory of any one of (8), (9), (10), (11), (12), (13), (14), (15), (16), (17), and (18), wherein the controller is further configured to: read the converted data and the conversion rule identifier from the data unit; determine the conversion rule corresponding to the conversion rule identifier; reverse convert the converted data into reversely converted data using the conversion rule; and transmit the reversely converted data.
(20)
An apparatus comprising: a memory including: a memory array unit including a plurality of data units; and a controller configured to: receive data; convert the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and write the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
(21)
A method of writing data into a memory including a memory array unit having a plurality of data units, the method comprising: receiving data; converting the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and writing the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
(22)
A method of reading data from a memory including a memory array unit having a plurality of data units, the method comprising: reading converted data and a conversion rule identifier from a data unit; determining a conversion rule corresponding to the conversion rule identifier; reverse converting the converted data into reversely converted data using the conversion rule; and transmitting the reversely converted data.
(1)
A multi-level memory including:
a memory array unit that includes a plurality of memory cells, each of which stores two or more bits of data values; and
a memory control unit that converts a specific data value among data values to be written in one memory cell to a data value other than the specific data value based on a conversion rule according to data to be written in the memory array unit, and performs a process of writing the converted writing data and a conversion rule identifier indicating a conversion rule of the conversion in the memory array unit.
(2)
The multi-level memory according to (1), wherein, in the memory array unit, a memory cell region storing the converted writing data and a memory cell region storing the conversion rule identifier correspond to each other one to one.
(3)
The multi-level memory according to (1) or (2), wherein the memory control unit includes a conversion rule holding part that holds a plurality of conversion rules for converting the writing data, a conversion rule determination part that selects one conversion rule from the conversion rule holding part according to the writing data, and a data conversion part that converts the writing data in compliance with the conversion rule selected by the conversion rule determination part.
(4)
The multi-level memory according to (3), wherein, among the plurality of conversion rules stored in the conversion rule holding part, one conversion rule is a conversion rule in which conversion of the writing data is not performed.
(5)
The multi-level memory according to any one of (1) to (4), wherein, among all data values that are likely to be written in one memory cell, the specific data value is a data value when the maximum amount of energy is consumed during writing.
(6)
The multi-level memory according to any one of (1) to (5), wherein the memory control unit includes a data reverse conversion part that restores the data value of data read from the memory array unit to the original data value before the conversion based on the conversion rule identifier read from the memory array unit, and
wherein data reversely converted in the data reverse conversion part is output as reading data.
(7)
The multi-level memory according to any one of (1) to (6), wherein a value used as the conversion rule identifier is not included in the specific data value.
(8)
A memory comprising: a memory array unit including a plurality of data units; and a controller configured to receive data; convert the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and write the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
(9)
A memory of (7), wherein the plurality of data units have multi-level cells used to store two or more bits of information.
(10)
A memory of any one of (7) and (9), further comprising: a storage unit configured to store at least one conversion rule and at least one corresponding conversion rule identifier.
(11)
A memory of (10), wherein the controller is further configured to: select the conversion rule from among the at least one conversion rule stored in the storage unit.
(12)
A memory of any one of (10) and (11), wherein the storage unit is configured to store a conversion rule that keeps the converted data the same as the received data, and to store a corresponding conversion rule identifier.
(13)
A memory of any one of (8), (9), (10), (11), and (12), wherein a conversion rule requiring the least write energy to write the converted data is selected.
(14)
A memory of any one of (8), (9), (10), (11), (12), and (13), wherein a conversion rule is selected by which a data piece consuming a maximum write energy among all possible data pieces is written into the data unit the least.
(15)
A memory of any one of (8), (9), (10), (11), (12), (13), and (14), wherein a conversion rule is selected that satisfies a data piece consuming a least write energy is written a larger number of times than a data piece consuming a second least write energy which is written a larger number of times than a data piece consuming a second most write energy which is written a larger number of times than a data piece consuming a maximum write energy.
(16)
A memory of any one of (8), (9), (10), (11), (12), (13), (14), and (15), wherein each data unit has a data region and a conversion rule region, and
the controller is further configured to: write the converted data into the data region of the data unit, and write the conversion rule identifier into the conversion rule region of the data unit.
(17)
A memory of any one of (8), (9), (10), (11), (12), (13), (14), (15), and (16), wherein the conversion rule is written into the data unit without using a data piece consuming a maximum write energy.
(18)
A memory of any one of (8), (9), (10), (11), (12), (13), (14), (16), and (17), wherein the conversion rule is written into the data unit using only a data piece consuming a least write energy, only a data piece consuming a second least write energy, or only the data piece consuming the least write energy and the data piece consuming the second least write energy.
(19)
A memory of any one of (8), (9), (10), (11), (12), (13), (14), (15), (16), (17), and (18), wherein the controller is further configured to: read the converted data and the conversion rule identifier from the data unit; determine the conversion rule corresponding to the conversion rule identifier; reverse convert the converted data into reversely converted data using the conversion rule; and transmit the reversely converted data.
(20)
An apparatus comprising: a memory including: a memory array unit including a plurality of data units; and a controller configured to: receive data; convert the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and write the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
(21)
A method of writing data into a memory including a memory array unit having a plurality of data units, the method comprising: receiving data; converting the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and writing the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit.
(22)
A method of reading data from a memory including a memory array unit having a plurality of data units, the method comprising: reading converted data and a conversion rule identifier from a data unit; determining a conversion rule corresponding to the conversion rule identifier; reverse converting the converted data into reversely converted data using the conversion rule; and transmitting the reversely converted data.
It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and alterations may occur depending on design requirements and other factors insofar as they are within the scope of the appended claims or the equivalents thereof.
1 Multi-level memory
2 System bus
3 Internal bus
10 Memory control unit
11 Data conversion section
12 Conversion rule holding section
13 Conversion rule determination section
14 Data reverse conversion section
20 Memory array unit
21 Data unit
2 System bus
3 Internal bus
10 Memory control unit
11 Data conversion section
12 Conversion rule holding section
13 Conversion rule determination section
14 Data reverse conversion section
20 Memory array unit
21 Data unit
Claims (15)
- A memory comprising:
a memory array unit including a plurality of data units; and
a controller configured to:
receive data;
convert the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and
write the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit. - A memory of Claim 1, wherein the plurality of data units have multi-level cells used to store two or more bits of information.
- A memory of Claim 1, further comprising:
a storage unit configured to store at least one conversion rule and at least one corresponding conversion rule identifier. - A memory of Claim 3, wherein the controller is further configured to:
select the conversion rule from among the at least one conversion rule stored in the storage unit. - A memory of Claim 3, wherein the storage unit is configured to store a conversion rule that keeps the converted data the same as the received data, and to store a corresponding conversion rule identifier.
- A memory of Claim 1, wherein a conversion rule requiring the least write energy to write the converted data is selected.
- A memory of Claim 1, wherein a conversion rule is selected by which a data piece consuming a maximum write energy among all possible data pieces is written into the data unit the least.
- A memory of Claim 1, wherein a conversion rule is selected that satisfies a data piece consuming a least write energy is written a larger number of times than a data piece consuming a second least write energy which is written a larger number of times than a data piece consuming a second most write energy which is written a larger number of times than a data piece consuming a maximum write energy.
- A memory of Claim 1, wherein each data unit has a data region and a conversion rule region, and
the controller is further configured to:
write the converted data into the data region of the data unit, and write the conversion rule identifier into the conversion rule region of the data unit. - A memory of Claim 1, wherein the conversion rule is written into the data unit without using a data piece consuming a maximum write energy.
- A memory of Claim 1, wherein the conversion rule is written into the data unit using only a data piece consuming a least write energy, only a data piece consuming a second least write energy, or only the data piece consuming the least write energy and the data piece consuming the second least write energy.
- A memory of Claim 1, wherein the controller is further configured to:
read the converted data and the conversion rule identifier from the data unit;
determine the conversion rule corresponding to the conversion rule identifier;
reverse convert the converted data into reversely converted data using the conversion rule; and
transmit the reversely converted data. - An apparatus comprising:
a memory including:
a memory array unit including a plurality of data units; and
a controller configured to:
receive data;
convert the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and
write the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit. - A method of writing data into a memory including a memory array unit having a plurality of data units, the method comprising:
receiving data;
converting the data into converted data using a conversion rule for converting a data piece into another data piece, wherein the conversion rule is selected based on the data received and independent of current data written in a data unit; and
writing the converted data and a conversion rule identifier corresponding to the conversion rule into the data unit. - A method of reading data from a memory including a memory array unit having a plurality of data units, the method comprising:
reading converted data and a conversion rule identifier from a data unit;
determining a conversion rule corresponding to the conversion rule identifier;
reverse converting the converted data into reversely converted data using the conversion rule; and
transmitting the reversely converted data.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13707926.5A EP2820650A1 (en) | 2012-02-27 | 2013-02-13 | Multi-level memory, multi-level memory writing method, and multi-level memory reading method |
CN201380010233.3A CN104126204A (en) | 2012-02-27 | 2013-02-13 | Multi-level memory, multi-level memory writing method, and multi-level memory reading method |
US14/377,752 US20150019799A1 (en) | 2012-02-27 | 2013-02-13 | Multi-level memory, multi-level memory writing method, and multi-level memory reading method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012-039947 | 2012-02-27 | ||
JP2012039947A JP2013175258A (en) | 2012-02-27 | 2012-02-27 | Multi-level memory, multi-level memory writing method, and multi-level memory reading method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013128814A1 true WO2013128814A1 (en) | 2013-09-06 |
Family
ID=47833326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/000761 WO2013128814A1 (en) | 2012-02-27 | 2013-02-13 | Multi-level memory, multi-level memory writing method, and multi-level memory reading method |
Country Status (5)
Country | Link |
---|---|
US (1) | US20150019799A1 (en) |
EP (1) | EP2820650A1 (en) |
JP (1) | JP2013175258A (en) |
CN (1) | CN104126204A (en) |
WO (1) | WO2013128814A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114984B2 (en) * | 2015-09-04 | 2018-10-30 | Xerox Corporation | Symmetric bit coding for printed memory devices |
US9680799B2 (en) * | 2015-09-21 | 2017-06-13 | Bank Of America Corporation | Masking and unmasking data over a network |
JP6657764B2 (en) * | 2015-10-16 | 2020-03-04 | 富士通株式会社 | Information conversion method, information processing device, and information conversion program |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907855A (en) * | 1996-10-15 | 1999-05-25 | Micron Technology, Inc. | Apparatus and method for reducing programming cycles for multistate memory system |
WO2008048580A1 (en) * | 2006-10-17 | 2008-04-24 | Intel Corporation | Performance or power-optimized code/data storage for nonvolatile memories |
US20080130351A1 (en) * | 2006-12-04 | 2008-06-05 | Thomas Nirschi | Multi-bit resistive memory |
JP4134637B2 (en) | 2002-08-27 | 2008-08-20 | 株式会社日立製作所 | Semiconductor device |
US20100057977A1 (en) * | 2008-08-28 | 2010-03-04 | Agere Systems Inc. | Reduced-power programming of multi-level cell (mlc) memory |
US20120243311A1 (en) * | 2011-03-23 | 2012-09-27 | Seagate Technology Llc | Non-Sequential Encoding Scheme for Multi-Level Cell (MLC) Memory Cells |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100736103B1 (en) * | 2006-06-27 | 2007-07-06 | 삼성전자주식회사 | Nonvolatile memory, apparatus and method for deciding data validity for the same |
-
2012
- 2012-02-27 JP JP2012039947A patent/JP2013175258A/en active Pending
-
2013
- 2013-02-13 CN CN201380010233.3A patent/CN104126204A/en active Pending
- 2013-02-13 US US14/377,752 patent/US20150019799A1/en not_active Abandoned
- 2013-02-13 WO PCT/JP2013/000761 patent/WO2013128814A1/en active Application Filing
- 2013-02-13 EP EP13707926.5A patent/EP2820650A1/en not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907855A (en) * | 1996-10-15 | 1999-05-25 | Micron Technology, Inc. | Apparatus and method for reducing programming cycles for multistate memory system |
JP4134637B2 (en) | 2002-08-27 | 2008-08-20 | 株式会社日立製作所 | Semiconductor device |
WO2008048580A1 (en) * | 2006-10-17 | 2008-04-24 | Intel Corporation | Performance or power-optimized code/data storage for nonvolatile memories |
US20080130351A1 (en) * | 2006-12-04 | 2008-06-05 | Thomas Nirschi | Multi-bit resistive memory |
US20100057977A1 (en) * | 2008-08-28 | 2010-03-04 | Agere Systems Inc. | Reduced-power programming of multi-level cell (mlc) memory |
US20120243311A1 (en) * | 2011-03-23 | 2012-09-27 | Seagate Technology Llc | Non-Sequential Encoding Scheme for Multi-Level Cell (MLC) Memory Cells |
Also Published As
Publication number | Publication date |
---|---|
JP2013175258A (en) | 2013-09-05 |
EP2820650A1 (en) | 2015-01-07 |
US20150019799A1 (en) | 2015-01-15 |
CN104126204A (en) | 2014-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101116512B1 (en) | Maintenance operations for multi-level data storage cells | |
US8332578B2 (en) | Method and system to improve the performance of a multi-level cell (MLC) NAND flash memory | |
US9489294B2 (en) | Data encoding for non-volatile memory | |
US20100332775A1 (en) | Hybrid interleaving in memory modules | |
WO2007134319A2 (en) | Multi-chip package for a flash memory | |
WO2007134316A2 (en) | Off-die charge pump that supplies multiple flash devices | |
US20090307418A1 (en) | Multi-channel hybrid density memory storage device and control method thereof | |
US11188245B2 (en) | Data storage device, system, and data writing method | |
US20140325124A1 (en) | Memory system and method for operating a memory system | |
US11720493B2 (en) | Cache management based on memory device over-provisioning | |
US20200234786A1 (en) | Data reading method, storage controller and storage device | |
CN110609657A (en) | Memory controller and method | |
WO2013128814A1 (en) | Multi-level memory, multi-level memory writing method, and multi-level memory reading method | |
KR20190128498A (en) | Memory system, operating method thereof and electronic device | |
US20220004491A1 (en) | Performing a media management operation based on changing a write mode of a data block in a cache | |
CN108376051B (en) | Data storage device | |
KR101934517B1 (en) | Memory controller, method thereof, and system having the memory controller | |
KR20220099639A (en) | Dbi circuit and memory device including the same | |
CN110704369B (en) | Memory and control method thereof | |
US12099725B2 (en) | Code rate as function of logical saturation | |
TW202326732A (en) | Solid state storage device and associated write control method |
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: 13707926 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14377752 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2013707926 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |