CN104126204A - 多级存储器、多级存储器写入方法和多级存储器读取方法 - Google Patents
多级存储器、多级存储器写入方法和多级存储器读取方法 Download PDFInfo
- Publication number
- CN104126204A CN104126204A CN201380010233.3A CN201380010233A CN104126204A CN 104126204 A CN104126204 A CN 104126204A CN 201380010233 A CN201380010233 A CN 201380010233A CN 104126204 A CN104126204 A CN 104126204A
- Authority
- CN
- China
- Prior art keywords
- data
- transformation rule
- write
- cell
- slot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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
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
一种存储器包括:包括多个数据单元的存储器阵列单元,以及控制器。控制器被配置为:接收数据;使用用于将数据片段转换成另一数据片段的转换规则,将数据转换成转换数据,其中,转换规则是基于所接收的数据来选择的而与写入数据单元中的当前数据无关;以及将转换数据和对应于转换规则的转换规则标识符写入数据单元。
Description
技术领域
本公开涉及在一个存储器单元中存储两个或更多个比特的信息的多级存储器、多级存储器写入方法以及多级存储器读取方法。
引用列表
专利文献
PTL1:日本专利No.4134637
PTL2:美国专利申请公开No.2011/0213995的说明书
背景技术
过去,随着用于信息处理设备、特别是移动终端等的小型电子装置的迅速分布,对于这种电子装置中包括的存储器元件、逻辑元件等已经提出了更高性能的要求,包括更高的集成度、更高的速度、更低的能量损耗等。在这种小型装置中,非易失存储器被视为用于实现电子装置的更高功能的不可缺少的部件。作为非易失存储器,半导体闪存、FeRAM(铁电随机存取存储器)、MRAM(磁阻随机存取存储器)等已经投入实际使用,并且已经实际进行了研究和开发以获得更高性能。
另外,在半导体闪存等中,为了增大存储容量,存在使用存储器单元来存储两个或更多个比特的信息作为一个存储器单元中的数据值的情况。这种存储器单元称为MLC(多级单元)。另一方面,在一个存储器单元中存储一个比特的信息的存储器单元被称为SLC(单级单元)。使用MLC的存储器被称为多级存储器。
在非易失存储器中写入信息损耗能量。为此,已经提出了各种写入方法以减小写入其间的能量损耗。
例如,在PTL1中,公开了一种在MRAM上写入信息的方法。在该写入方法中,将输入数据与已经写入在该输入数据被假定写入的区域中的数据相比较,并然后执行编码,从而使要重新写入的比特数减少至一半或更小。以这种方式,在写操作期间,可减少要重新写入的比特数,并且因此可减小能量损耗。
另外,在PTL 2公开的写入方法中,将输入数据与已经写入在该输入数据假定被写入的区域中的数据相比较,并且如果要重新写入的比特数是一半或更多,则利用输入数据的“0”或“1”代替该数据。因此,仅重写需要重新被写入的比特。此外,添加用于存储关于“0”和“1”是否已经替代了输入数据的信息的比特,并且还同时写入该比特。
发明内容
技术问题
使用MLC的多级存储器在一个存储器单元中存储两个或更多个比特的信息。让我们假设其中存储了两个比特的信息的情况。在该情况下,要写入的数据包括“00”、“01”、“10”和“11”。在写入数据时损耗的能量(以下称为写入能量)根据要写入的数据而有所不同。当写入“00”时的写入能量被设置为E(00)等。当假设写入能量按上述数据的顺序增大时,满足E(00)<E(01)<E(10)<E(11)。为此,相比写入大量“00”时,例如在写入大量“11”时损耗更多的写入能量。
应注意,写入能量的这种量化关系式是用于进行说明的假设,并且还存在其他量化关系的情况。
另外,非易失存储器存在存储器在能够重写的次数方面具有上限的问题。一般地,在能够重写的次数方面的上限与写入能量相关。这是因为,根据写入能量的量,对存储器单元施加了应力(stress)。例如,在电流写入型MRAM的情况下,当执行写入时,对构成存储器单元的通道阻挡膜(tunnel barrier film)施加电场应力。随着重复写入,电场应力累积,并且最终,通道阻挡膜引起静电击穿。随后,难以进一步地在存储器单元上写入新的信息。换句话说,在能够重写的次数方面存在上限。由于随着写入能量变得更大,电场应力增加,因此能够重写的次数随着写入能量变大而减少。换句话说,当比较其中连续地写入“00”的情况和其中在同一存储器单元中连续地写入“11”的情况时,在连续地写入“11”的情况下,能够重写的次数进一步减少。如上所述,在多级存储器中,具有在写入期间的能量损耗和能够重写的次数不利的数据,并且期望尽可能少地写入这种数据。
随着写入能量变得更大,期望减少使用在能够重写的次数方面不利的使用大量写入能量的写入数据的次数。
问题的技术方案
一种根据本公开的存储器包括:包括多个数据单元的存储器阵列单元;以及控制器。控制器被配置为:接收数据;使用用于将数据片段转换成另一数据片段的转换规则将数据转换成转换数据,其中,转换规则是基于所接收的数据来选择的而与写入数据单元中的当前数据无关;以及将转换数据和对应于转换规则的转换规则标识符写入数据单元。
一种根据本公开的将数据写入包括具有多个数据单元的存储器阵列单元的存储器的方法包括:接收数据;使用用于将数据片段转换成另一数据片段的转换规则将数据转换成转换数据,其中,转换规则是基于所接收的数据来选择的而与写入数据单元中的当前数据无关;以及,将转换数据和对应于转换规则的转换规则标识符写入数据单元。另外,一种根据本公开的从包括具有多个数据单元的存储器阵列单元的存储器读取数据的方法包括:从数据单元读取转换数据和转换规则标识符;确定对应于转换规则标识符的转换规则;使用转换规则将转换数据反向转换成反向转换数据;以及传输反向转换数据。
以这种方式,可以减少在能量损耗和能够重写的次数方面不利的数据的写入次数。
本发明的有益效果
根据本公开,由于可以减少在能量损耗和能够重写的次数方面不利的数据的写入次数,因此有减小写入期间的能量损耗以及增加能够重写的次数的效果。
附图说明
图1是根据本公开的实施方式的多级存储器的框图。
图2是根据本公开的实施方式的数据单元的示意图。
图3是示出存储器单元的存储状态的概念图。
图4是示出转换规则的实例的图表。
图5是根据本公开的实施方式的写入处理的流程图。
图6是根据本公开的实施方式的读取处理的流程图。
图7是示出根据第一实施方式的转换规则的图表。
图8是用于描述根据第一实施方式的转换规则确定单元的操作的流程图。
图9是示出根据第二实施方式的转换规则的图表。
图10是用于描述根据第二实施方式的转换规则确定单元的操作的流程图。
图11是示出根据第三实施方式的转换规则的图表。
图12是用于描述根据第三实施方式的转换规则确定单元的操作的流程图。
具体实施方式
在下文中,将参照附图详细描述本公开的优选实施方式。应注意,在说明书和附图中,具有大致相同功能和结构的结构元件用相同的参考标号来表示,并且省略了这些结构元件的重复说明。
下文中,将按如下顺序描述本公开的实施方式。
<1.实施方式的多级存储器的概述>
<2.第一实施方式>
<3.第二实施方式>
<4.第三实施方式>
<1.实施方式的多级存储器的概述>
图1示出了根据实施方式的多级存储器的配置。图1的多级存储器10包括存储器控制单元10、存储器阵列单元20以及内部总线3。另外,多级存储器1经由系统总线2与附图中未示出的主机通信。存储器控制单元1处理从主机传输的写入和读取请求。当存在写请求时,经由系统总线2接收地址和写数据,并且经由内部总线3在存储器阵列单元20中的对应位置写入该信息。当存在读请求时,通过系统总线2接收地址,经由内部总线3读取保持在存储器阵列单元2的对应位置中的数据,并且经由系统总线2将数据传输到主机。
存储器控制单元10包括在附图中未示出但是对于执行处理而言是必要的输入和输出缓冲器、写入/读取电路等。存储器控制单元10进一步包括数据转换部11、转换规则保持部12、转换规则确定部13以及数据反向转换部14。后面将详细描述这些部件的功能。
存储器阵列单元20包括用于存储数据的多个存储器单元。每个存储器单元保持两个或更多个比特的信息。在每个预定数量的单元中将存储器单元作为数据单元21管理。在图1中,存在B1至Bk数据单元21,并且存储器阵列单元20包括k个数据单元。
图2示出了数据单元21的配置。
每个数据单元21被划分成用户数据区和转换规则区。在图2中,用户数据区包括存储器单元D1至Dn,并且转换规则区包括存储器单元T1至Tm。结果,每个数据单元21具有(n+m)个存储器单元。
图3示出了存储器单元的存储状态的概念图。水平轴表示任意特征值。例如,在闪存的情况下,横轴表示存储器单元的阈值电压。在电阻变化型存储器的情况下,横轴表示存储器单元的电阻值。曲线31至34是指示相对于横轴的特征值在多级存储器1中存在多少对应于特征值的存储器单元(元件的数量)的分布曲线。在图3的实例中,存在四个特征值的分布。作为两比特的数据值,可从特征值的下侧为每个分布分配“00”、“01”、“10”和“11”。由于以这种方式,一个存储器单元可具有四个状态(数据部分)中的任一个,因此存储器单元可存储两比特的信息作为数据值。
为了读取存储了哪个数据,将设置在分布之间的参考值R1、R2和R3与存储器单元的特征值相比较。例如,当特征值大于参考值R1且小于R2时,可确定其存储器单元存储了“01”。
接着,当要在存储器单元上写数据时,根据存储器单元的操作原理执行写操作。例如,在闪存和电阻变化型存储器的情况下,在固定的写入时间周期内向存储器单元的写入端子施加固定的写入电压。在此,写入电压、写入时间或者这两个值根据写入数据而改变。利用该操作,可在存储器单元上写入不同的数据片段。
在此,损耗写入能量(基于写入电压和写入时间来确定其量)。由于写入电压、写入时间或者这两个值根据待写入的数据片段而有所不同,因此写入能量的量也根据要写入的数据片段而具有不同的值。
图3的直线35示意性示出了这种关系。当写入“00”时,写能量被假设为E(00)等。在图3的实例中,设置E(00)<E(01)<E(10)<E(11)。由此,与写入大量“00”时相比,在写入大量“11”时损耗更多的写入能量。换句话说,写入“11”损耗最大量的能量。另外,当利用写入能量重复写入时,能够重写的次数减少。
出于上述原因,当写入“11”的次数可减小至尽可能少时,可获得低能量损耗以及重写次数的增加。
以下的描述以关系E(00)<E(01)<E(10)<E(11)为前提,但并不限于E(11)损耗最大能量的事实,并且当适当地应用其他关系时,同样的原则也适用。
另外,存储器单元能够存储的比特数并不限于两个,并且更高的比特数也是可以的。
如到目前所描述的,多级存储器具有其写入次数被期望减少的数据。然而,当写入数据完全是随机的时,所有数据片段段自然地以相同的比例被写入。因此,根据本公开,通过使用图1中示出的数据转换部11、转换规则保持部12、转换规则确定部13以及数据反向转换部14,实现其写入次数被期望减少的数据的写入次数的减少。
以下,将描述其方法。
为了减少其写入次数被期望减少的特定数据片段(例如,“11”)的写入次数,可通过将数据片段转换成另一数据片段(例如,“00”)来执行写入。利用该操作,可以不写入理想地减小其写入次数的数据片段(例如,“11”)。
然而,如果执行该转换,当原始写入数据包括“00”时,发生数据冲突。因此,“00”被进一步转换成另一数据片段以被写入。以这种方式,定义了被设计为在没有冲突的情况下写入所有数据片段的转换规则。当存储器单元可分别存储两个比特的数据时,可考虑的转换规则的总数是4*3*2*1=24。
图4示出了这种转换规则的实例。箭头指示数据的转换,并且在每个箭头的根部的数据被转换成在每个箭头顶端的数据。在转换规则A中,所有箭头都指向其自己的数据片段。换句话说,不执行转换。在转换规则B中,以循环的方式转换“00”、“01”、“10”和“11”。在转换规则C中,在“00”与“11”之间以及“10”与“01”之间执行转换。
当执行转换时,需要在存储器单元上存储哪个规则被用于转换。否则,当要读取转换之后的数据时,不能恢复原始数据。为了存储转换规则,为每个转换规则分配唯一的转换规则标识符。在该实例中,转换规则的总数是24。因此,转换规则标识符是从“00.00.00”到“01.01.11”,并且其中,每个转换规则占用它们之中的一个唯一的转换规则标识符。由于存储器单元是2比特单元,因此,需要三个存储器单元来存储转换规则标识符。
为了使用存储器单元来存储转换规则,减少存储原始写入数据的区域。为了降低其影响,可使用相同的转换规则来转换多个写入数据片段。利用该操作,可减小被配置为存储转换规则的存储器单元的相对比例。下面,使用相同转换规则转换的多个写入数据片段的集合将被称为用户数据。以上已经描述了转换规则的数量是24,但是没有必要使用全部的转换规则。可能存在仅使用图4中示出的三种转换规则A、B和C的情况。
在该情况下,转换规则标识符“00”、转换规则标识符“01”以及转换规则标识符“10”可分别被分配给转换规则A、转换规则B和转换规则C。利用该操作,转换规则标识符可存储在一个存储器单元中。
在此,将描述当使用图4中示出的三种转换规则A、B和C时的用户数据的转换实例。返回图1,存储器控制单元10包括数据转换部11、转换规则保持部12、转换规则确定部13以及数据反向转换部14。将通过用户数据的转换实例来描述其功能。应注意,为了便于描述,假设用户数据的宽度是四个存储器单元。
首先,作为准备步骤,将转换规则A、B和C以及其转换规则标识符存储在转换规则保持部12中。
作为第一实例,考虑存在要写入用户数据“00.00.01.11”的请求的情况。当存储器控制单元10经由系统总线2接收到用户数据时,数据被传输到转换规则确定部13。转换规则确定部13检查所接收的用户数据,并且从存储在转换规则保持部12中的多个转换规则中选择通过其可以不写入“11”的转换规则。
换句话说,转换规则确定部13可根据写入数据改变要选择的转换规则。
在该实例中,可使用转换规则B。数据转换部11使用所选择的转换规则B将“11”转换成“01”、将“01”转换成“00”、将“00”转换成“10”。转换规则B还包括将“10”转换成“11”的规则,但是由于该用户数据不包括“10”,因此该规则不适用。然后,存储器控制单元10将转换的用户数据与作为转换规则B的转换规则标识符的“01”相匹配,并且将用户数据写入存储器阵列单元20的相应数据单元21中。用户数据与转换规则标识符一一对应。
此时,要写入数据单元21的数据是“10.10.00.01,01”。在该情况下,“,”的前面部分对应于用户数据,并且其后面部分对应于转换规则标识符。然后,如图3所示,用户数据被写入数据单元21的用户数据区中,并且转换规则标识符被写入数据单元21的转换规则区中。在整个数据单元中,对五个存储器单元执行写入,但是没有存储器单元被写入了“11”。利用该操作,可在不写入“11”(其不期望被写入)的情况下将用户数据存储在存储器单元中。
当存在读请求时,可以相反的方式执行处理。存储器控制单元10从相应的数据单元21中读取用户数据(“10.10.00.01”)和转换规则标识符(“01”)。由于用户数据和转换规则标识符彼此一一对应,因此参照转换规则保持部12,转换规则确定部13从读取的转换规则标识符为“01”的事实确定已经使用了转换规则B。通过反向使用转换规则B,数据反向转换部14将“01”反向转换成“11”、将“00”反向转换成“01”以及将“10”反向转换成“00”。因此,在反向转换之后的用户数据是“00.00.01.11”。存储器控制单元10经由系统总线2将反向转换后的用户数据传输到请求源。
在第一实例中,由于在用户数据中不包括“10”,因此可使用转换规则B。作为另一情况,当在用户数据中包括“11”但是不包括“00”时,可使用转换规则C。
接着,作为第二实例,考虑存在要写入用户数据“00.01.10.11”的请求的情况。在该情况下,由于在用户数据中包括所有数据片段(“00”、“01”、“10”和“11”),因此不管执行何种转换,都发生写入“11”。因为这个原因,转换规则确定部13选择作为“将不执行转换”的转换规则的转换规则A。其他操作与第一实施方式中的那些相同。要写入数据单元21的数据是“00.01.10.11,00”。
以这种方式,尽管当用户数据中包括所有数据片段时发生“11”的写入,但是这种情况实际上很少。换句话说,当用户数据的宽度是四个存储器单元并且每个存储器单元都是2比特单元时,数据模式(pattern)的总数是44=256,但是当在用户数据包括所有数据片段时,该数量是24。这就是根据本公开可减少不期望被写入的数据的写入次数的原因。
将使用流程图描述上述写入和读取处理。
图5是根据本公开的实施方式的写入处理的流程图。
在步骤S11,存储器控制单元10经由系统总线2接收来自请求元的写数据。在步骤S12,转换规则确定部13检查写数据,并且从保持在转换规则保持部12中的转换规则中确定要使用的转换规则。在步骤S13,数据转换部11根据所选择的转换规则转换用户数据。在步骤S14,存储器控制单元10在存储器阵列单元20中写入转换用户数据和所选择的转换规则的转换规则标识符。
图6是根据本公开的实施方式的读取处理的流程图。
在步骤S21,存储器控制单元10从存储器阵列单元20读取用户数据和转换规则标识符。在步骤S22,转换规则确定部13参考转换规则保持部12确定对应于读取转换规则标识符的转换规则。在步骤S23,数据反向转换部14使用所选择的转换规则反向转换用户数据。在步骤S24,存储器控制单元10经由系统总线将反向转换的用户数据传输到请求源。
<2.第一实施方式>
接着,将描述第一实施方式。
在此,将呈现根据第一实施方式的具体转换规则,并且将详细描述通过应用该转换规则而获得的效果。应注意,假设存储器单元以与前一实例相同的方式存储两个比特并且用户数据的宽度是四个存储器单元。在该情况下,每个数据单元21的用户数据区包括四个存储器单元D1、D2、D3和D4。
图7是示出根据第一实施方式的转换规则的示意图。在第一实施方式中,使用了四个转换规则。根据第一实施方式的四个转换规则统称为转换规则集(set)1。由于转换规则的数量是四个,因此用于存储转换规则标识符所需的存储器单元的数量是1。在该情况下,图2中的数据单元21的转换规则区包括一个存储器单元T1。
在由转换规则标识符“00”指示的转换规则中,数据未被转换。在由转换规则标识符“01”指示的转换规则中,“11”被转换成“00”,“01”和“10”未被转换。“00”最初被设置成转换成“11”,但是由于存在最初不对包括“00”的用户数据应用转换规则的前提,因此在图7中没有描述该规则。在由转换规则标识符“10”指示的转换规则和由转换规则标识符“11”指示的转换规则中,“11”分别以相同的方式被转换成“01”和“10”,并且其他数据片段不被转换。
图8是用于描述根据第一实施方式的转换规则确定部13的操作的流程图。
在步骤S31,确定用户数据是否包括“11”。当不包括“11”时,选择由转换规则标识符“00”指示的转换规则(步骤S32)。
在步骤S33,确定用户数据是否包括“00”。当不包括“00”时,选择由转换规则标识符“01”指示的转换规则(步骤S34)。
在步骤S35,确定用户数据是否包括“01”。当不包括“01”时,选择由转换规则标识符“10”指示的转换规则(步骤S36)。
在步骤S37,确定用户数据是否包括“10”。当不包括“10”时,选择由转换规则标识符“11”指示的转换规则(步骤S38)。
最后,还存在用户数据包括所有数据片段的其余一种情况,并且在该情况下,选择由转换规则标识符“00”指示的转换规则(步骤S39)。
表1
为了描述使用转换规则集1时的效果,首先,计算当不执行转换时(比较例)的写入频率。表1示出了根据比较例的数据的写入频率。如前面描述的,包括四个2比特存储器单元的用户数据的模式数量是256。在每个模式中执行写入。然后,计算在每个存储器单元中写入每个数据片段(“00”、“01”、“10”、“11”)的次数。当然,当不执行转换时,每个数据片段的写入次数一律是64,并且基于百分比的比例是25%。
表2
接着,计算当使用转换规则1时的写入频率。结果在表2中示出。
由于已经执行了转换,为用户数据D1、D2、D3和D4以及转换规则标识符T1中的每一个执行计算。结果,确定用户数据D1、D2、D3和D4以及转换规则标识符T1的写入次数满足“00”>“01”>“10”>“11”,并且“11”(其是特别不希望被写入的数据)的写入次数显著减少。特别地,只关注用户数据区,写入“11”的比例减小至2%。
<3.第二实施方式>
接着,将描述第二实施方式。
在第一实施方式中,存在转换规则标识符是“11”的情况。最初,由于目的是减少写入“11”的次数,因此即使在数据单元21的转换规则区中写入“11”也是与最初目标相悖的操作。
为了这种操作的目的,如图9所示,第二实施方式改变了转换规则。即,其中省略了其中转换规则标识符是“11”(其最初包括在转换规则集1中)的转换规则。其他转换规则与转换规则集1相同。
根据第二实施方式的三种转换规则统称为转换规则集2。由于转换规则的数量是3,因此,用于存储转换规则标识符所需的存储器单元的数量是1。在该情况下,如同在第一实施方式中,数据单元21的用户数据区包括四个存储器单元D1、D2、D3和D4,并且数据单元21的转换规则区包括一个存储器单元T1。
图10是用于描述根据第二实施方式的转换规则确定部13的操作的流程图。
在步骤S41,确定用户数据是否包括“11”。当不包括“11”时,选择由转换规则标识符“00”指示的转换规则(步骤S42)。
在步骤S43,确定用户数据是否包括“00”。当不包括“00”时,选择由转换规则标识符“01”指示的转换规则(步骤S44)。
在步骤S45,确定用户数据是否包括“01”。当不包括“01”时,选择由转换规则标识符“10”指示的转换规则(步骤S46)。
最后,还存在其中用户数据包括“11”、“00”和“01”全部的其余一种情况,并且在该情况下,选择由转换规则标识符“00”指示的转换规则(步骤S47)。
表3
为了描述使用转换规则集2时的效果,计算写入频率。结果在表3中示出。对用户数据D1、D2、D3和D4以及转换规则标识符T1执行计算。结果,确定写入用户数据D1、D2、D3和D4以及转换规则标识符T1的次数满足“00”>“01”>“10”>“11”,并且写入“11”(其是特别不希望被写入的数据)的次数显着减少。另外,从未在转换规则区中写入“11”。然而,作为副面影响,在用户数据区中写入“11”的次数是18,这是当使用转换规则集1时的6的三倍。尽管如此,相比于比较例中的写入次数的25%,该比例显著减小。
<4.第三实施方式>
接着,将描述第三实施方式。
在第一实施方式中,存在转换规则标识符是“11”的情况。另一方面,在第二实施方式中,尽管不存在转换规则标识符是“11”的情况,但是在用户数据区中写入“11”的次数大于在第一实施方式中的写入次数。
因此,在第三实施方式中,示出了其中不存在转换规则标识符为“11”的情况的转换规则,并且同时,在用户数据区中写入“11”的次数等于第一实施方式中的写入次数。
图11示出了根据第三实施方式的转换规则。转换规则本身与第一实施方式中的那些相同。根据第三实施方式的四种转换规则统称为转换规则集3。由于转换规则的数量是四,因此用于存储转换规则标识符所需的存储器单元的数量是1,但是在第三实施方式中,特别地使用两个存储器单元。在该情况下,数据单元21的用户数据区包括四个存储器单元D1、D2、D3和D4,并且数据单元21的转换规则区包括两个存储器单元T1和T2。
在第一实施方式中,转换规则标识符是“00”、“01”、“10”和“11”。在该情况下,由于存储器单元的数量是一个(两比特),因此如果要表示四种转换规则标识符,则应当使用转换规则标识符“11”。为了避免这种情况,准备了两个存储器单元T1和T2。
在第三实施方式中,转换规则标识符利用“00.00”、“00.01”、“01.00”、和“01.01”按该顺序替代。其中,在句点“.”之前的转换规则标识符对应于转换规则区中的存储器单元T1,并且其之后的转换规则标识符对应于转换规则区中的存储器单元T2。换句话说,有可能写入T1和T2的数据片段仅仅是“00”和“01”。
图12是用于描述根据第三实施方式的转换规则确定部13的操作的流程图。除了所选择的转换规则标识符是“00.00”、“00.01”、“01.00”和“01.01”中的任一个,该流程图与图8中示出的示出根据第一实施方式的转换规则确定部13的操作的流程图相同。
在步骤S51,确定用户数据是否包括“11”。当不包括“11”时,选择由转换规则标识符“00.00”指示的转换规则(步骤S52)。
在步骤S53,确定用户数据是否包括“00”。当不包括“00”时,选择由转换规则标识符“00.01”指示的转换规则(步骤S54)。
在步骤S55,确定用户数据是否包括“01”。当不包括“01”时,选择由转换规则标识符“01.00”指示的转换规则(步骤S56)。
在步骤S57,确定用户数据是否包括“10”。当不包括“10”时,选择由转换规则标识符“01.01”指示的转换规则(步骤S58)。
最后,存在其中用户数据包括全部数据片段的其余一种情况,并且在该情况下,选择由转换规则标识符“00.00”指示的转换规则(步骤S59)。
表4
为了描述使用转换规则集3时的效果,计算写入频率。结果在表4中示出。由于已经执行了转换,因此对用户数据D1、D2、D3和D4以及转换规则标识符T1和T2进行计算。由于转换规则本身与第一实施方式中的那些相同,因此,写入用户数据D1、D2、D3和D4的次数与第一实施方式中的写入次数相同。另外,不同于第一实施方式,在转换规则标识符T1和T2中仅写入“00”或“01”。
以这种方式,在第三实施方式中,在用户数据区中写入“11”的比例是2%,并且在转换规则区中从未写入“11”。
根据如上所述的本公开的实施方式,确定通过选择适当的数据转换规则,可以显著减少不希望被写入的数据(在上述实例中,“11”)的写入次数。
在本公开的实施方式中示例的转换规则仅仅是实例,并且可使用其他转换规则。
另外,期望转换规则保持部12中存储的转换规则的副本还存储在存储器阵列单元20中,从而即使在断开至多级存储器的电源时,转换规则也不会丢失。
此外,数据单元21中的用户数据区和转换规则区的布置不是固定的,而是可以改变。换句话说,可执行其中将分配给在一个点处的用户数据区的存储器单元分配给在另一点处的转换规则区的所谓平滑操作。
另外,本技术还可以如下配置。
(1)一种多级存储器,包括:
存储器阵列单元,包括多个存储器单元,每个存储器单元都存储两个或更多个比特的数据值;以及
存储器控制单元,根据要写入存储器阵列单元的数据,基于转换规则,将要写入一个存储器单元的数据值中的特定数据值转换成不同于特定数据值的数据值,并且执行将转换的写入数据和指示转换的转换规则的转换规则标识符写入存储器阵列单元的处理。
(2)根据(1)所述的多级存储器,其中,在存储器阵列单元中,存储转换的写入数据的存储器单元区和存储转换规则标识符的存储器单元区彼此一一对应。
(3)根据(1)或(2)所述的多级存储器,其中,存储器控制单元包括:转换规则保持部,保持用于转换写入数据的多个转换规则;转换规则确定部,根据写入数据从转换规则保持部中选择一个转换规则;以及数据转换部,依照由转换规则确定部选择的转换规则转换写入数据。
(4)根据(3)所述的多级存储器,其中,在存储在转换规则保持部中的多个转换规则中,其中一个转换规则是不执行写入数据的转换的转换规则。
(5)根据(1)至(4)中的任一项所述的多级存储器,其中,在有可能写入一个存储器单元的所有数据值中,特定数据值是在写入期间消耗最大量能量的数据值。
(6)根据(1)至(5)中的任一项所述的多级存储器,其中,存储器控制单元包括:数据反向转换部,基于从存储器阵列单元读取的转换规则标识符,将从存储器阵列单元读取的数据的数据值恢复成转换之前的原始数据值,并且其中,将在数据反向转换部中反向转换的数据输出为读取数据。
(7)根据(1)至(6)中的任一项所述的多级存储器,其中,用作转换规则标识符的值不包括在特定数据值中。
(8)一种存储器,包括:包括多个数据单元的存储器阵列单元;以及控制器,被配置为:接收数据;使用用于将数据片段转换成另一数据片段的转换规则,将数据转换成转换数据,其中,转换规则是基于所接收的数据来选择的而与写入数据单元中的当前数据无关;以及将转换数据和对应于转换规则的转换规则标识符写入数据单元。
(9)根据(7)所述的存储器,其中,多个数据单元具有用于存储两个或更多个比特的信息的多级单元。
(10)根据(7)和(9)中的任一项所述的存储器,进一步包括:存储单元,被配置为存储至少一个转换规则和至少一个对应的转换规则标识符。
(11)根据(10)所述的存储器,其中,控制器进一步2配置为:从存储在存储单元中的至少一个转换规则中选择转换规则。
(12)根据(10)和(11)中的任一项所述的存储器,其中,存储单元配置为存储将转换数据保持为与接收数据相同的转换规则并且存储对应的转换规则标识符。
(13)根据(8)、(9)、(10)、(11)和(12)中的任一项所述的存储器,其中,选择需要最少的写入能量来写入转换数据的转换规则。
(14)根据(8)、(9)、(10)、(11)、(12)和(13)中的任一项所述的存储器,其中,选择通过其在所有可能的数据片段中的消耗最多写入能量的数据片段被最少地写入到数据单元中的转换规则。
(15)根据(8)、(9)、(10)、(11)、(12)、(13)和(14)中的任一项所述的存储器,其中,选择满足以下条件的转换规则:相比消耗第二最少写入能量的数据片段,消耗最少写入能量的数据片段被写入更多的次数,相比消耗第二最多写入能量的数据片段,消耗第二最少写入能量的数据片段被写入更多的次数,相比消耗最多写入能量的数据片段,消耗第二最多写入能量的数据片段被写入更多的次数。
(16)根据(8)、(9)、(10)、(11)、(12)、(13)、(14)和(15)中的任一项所述的存储器,其中,每个数据单元具有数据区和转换规则区,并且控制器进一步被配置为:将转换数据写入到数据单元的数据区中,并且将转换规则标识符写入到数据单元的转换规则区中。
(17)根据(8)、(9)、(10)、(11)、(12)、(13)、(14)、(15)和(16)中的任一项所述的存储器,其中,在不使用消耗最多写入能量的数据片段的情况下,将转换规则写入到数据单元中。
(18)根据(8)、(9)、(10)、(11)、(12)、(13)、(14)、(16)和(17)中的任一项所述的存储器,其中,仅使用消耗最少写入能量的数据片段、仅使用消耗第二最少写入能量的数据片段、或者仅使用消耗最少写入能量的数据片段和消耗第二最少写入能量的数据片段,将转换规则写入到数据单元中。
(19)根据(8)、(9)、(10)、(11)、(12)、(13)、(14)、(15)、(16)、(17)和(18)中任一项所述的存储器,其中,控制器进一步被配置为:从数据单元种读取转换数据和转换规则标识符;确定对应于转换规则标识符的转换规则;使用转换规则将转换数据反向转换成反向转换数据;以及传输反向转换数据。
(20)一种设备,包括:存储器,该存储器包括:包括多个数据单元的存储器阵列单元;以及控制器,被配置为:接收数据;使用用于将数据片段转换成另一数据片段的转换规则,将数据转换成转换数据,其中,转换规则是基于所接收的数据来选择的而与写入数据单元中的当前数据无关;以及将转换数据和对应于转换规则的转换规则标识符写入数据单元。
(21)一种将数据写入包括具有多个数据单元的存储器阵列的存储器的方法,该方法包括:接收数据;使用用于将数据片段转换成另一数据片段的转换规则,将数据转换成转换数据,其中,转换规则是基于所接收的数据来选择的而与写入数据单元中的当前数据无关;以及将转换数据和对应于转换规则的转换规则标识符写入数据单元。
(22)一种从包括具有多个数据单元的存储器阵列的存储器读取数据的方法,该方法包括:从数据单元中读取转换数据和转换规则标识符;确定对应于转换规则标识符的转换规则;使用转换规则将转换数据反向转换成反向转换数据;以及传输反向转换数据。
本领域技术人员应当理解,根据设计需求和其他因素,可出现各种修改、组合、子组合和替换,只要它们在所附权利要求及其等价物的范围内。
参考符号列表
1 多级存储器
2 系统总线
3 内部总线
10 存储器控制单元
11 数据转换部
12 转换规则保持部
13 转换规则确定部
14 数据反向转换部
20 存储器阵列单元
21 数据单元
Claims (15)
1.一种存储器,包括:
存储器阵列单元,包括多个数据单元;以及
控制器,被配置为:
接收数据;
使用用于将数据片段转换成另一数据片段的转换规则,将所述数据转换成转换数据,其中,所述转换规则是基于所接收的数据来选择的而与写入数据单元中的当前数据无关;以及
将所述转换数据和对应于所述转换规则的转换规则标识符写入所述数据单元。
2.根据权利要求1所述的存储器,其中,多个所述数据单元具有用于存储两个或更多个比特的信息的多级单元。
3.根据权利要求1所述的存储器,进一步包括:
存储单元,被配置为存储至少一个转换规则和至少一个对应的转换规则标识符。
4.根据权利要求3所述的存储器,其中,所述控制器进一步被配置为:
从存储在所述存储单元中的所述至少一个转换规则中选择所述转换规则。
5.根据权利要求3所述的存储器,其中,所述存储单元被配置为存储将所述转换数据保持为与所述接收数据相同的转换规则,并且存储对应的转换规则标识符。
6.根据权利要求1所述的存储器,其中,选择需要最少写入能量来写入所述转换数据的转换规则。
7.根据权利要求1所述的存储器,其中,选择所有可能的数据片段中的消耗最多写入能量的数据片段被最少地写入所述数据单元所利用的转换规则。
8.根据权利要求1所述的存储器,其中,选择满足以下条件的转换规则:相比消耗第二最少写入能量的数据片段,消耗最少写入能量的数据片段被写入更多的次数,相比消耗第二最多写入能量的数据片段,所述消耗第二最少写入能量的数据片段被写入更多的次数,相比消耗最多写入能量的数据片段,所述消耗第二最多写入能量的数据片段被写入更多的次数。
9.根据权利要求1所述的存储器,其中,每个数据单元具有数据区和转换规则区,并且
所述控制器进一步被配置为:
将所述转换数据写入所述数据单元的所述数据区中,并且将所述转换规则标识符写入所述数据单元的所述转换规则区中。
10.根据权利要求1所述的存储器,其中,在不使用消耗最多写入能量的数据片段的情况下,将所述转换规则写入到所述数据单元中。
11.根据权利要求1所述的存储器,其中,仅使用消耗最少写入能量的数据片段、仅使用消耗第二最少写入能量的数据片段、或者仅使用所述消耗最少写入能量的数据片段和所述消耗第二最少写入能量的数据片段,将所述转换规则写入到所述数据单元中。
12.根据权利要求1所述的存储器,其中,所述控制器进一步被配置为:
从所述数据单元读取所述转换数据和所述转换规则标识符;
确定对应于所述转换规则标识符的所述转换规则;
使用所述转换规则将所述转换数据反向转换成反向转换数据;以及
传输所述反向转换数据。
13.一种设备,包括:
存储器,包括:
存储器阵列单元,包括多个数据单元;以及
控制器,被配置为:
接收数据;
使用用于将数据片段转换成另一数据片段的转换规则,将所述数据转换成转换数据,其中,所述转换规则是基于所接收的数据来选择的而与写入数据单元中的当前数据无关;以及
将所述转换数据和对应于所述转换规则的转换规则标识符写入所述数据单元。
14.一种将数据写入存储器的方法,所述存储器包括具有多个数据单元的存储器阵列,所述方法包括:
接收数据;
使用用于将数据片段转换成另一数据片段的转换规则,将所述数据转换成转换数据,其中,所述转换规则是基于所接收的数据来选择的而与写入数据单元中的当前数据无关;以及
将所述转换数据和对应于所述转换规则的转换规则标识符写入所述数据单元。
15.一种从存储器读取数据的方法,所述存储器包括具有多个数据单元的存储器阵列,所述方法包括:
从数据单元中读取转换数据和转换规则标识符;
确定对应于所述转换规则标识符的转换规则;
使用所述转换规则将所述转换数据反向转换成反向转换数据;以及
传输所述反向转换数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012039947A JP2013175258A (ja) | 2012-02-27 | 2012-02-27 | 多値メモリ、多値メモリ書き込み方法及び多値メモリ読み出し方法 |
JP2012-039947 | 2012-02-27 | ||
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 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104126204A true CN104126204A (zh) | 2014-10-29 |
Family
ID=47833326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380010233.3A Pending CN104126204A (zh) | 2012-02-27 | 2013-02-13 | 多级存储器、多级存储器写入方法和多级存储器读取方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20150019799A1 (zh) |
EP (1) | EP2820650A1 (zh) |
JP (1) | JP2013175258A (zh) |
CN (1) | CN104126204A (zh) |
WO (1) | WO2013128814A1 (zh) |
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 (ja) * | 2015-10-16 | 2020-03-04 | 富士通株式会社 | 情報変換方法、情報処理装置、及び情報変換プログラム |
Family Cites Families (7)
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 (ja) | 2002-08-27 | 2008-08-20 | 株式会社日立製作所 | 半導体装置 |
KR100736103B1 (ko) * | 2006-06-27 | 2007-07-06 | 삼성전자주식회사 | 비휘발성 메모리, 상기 비휘발성 메모리의 데이터 유효성을판단하는 장치 및 방법 |
US7644225B2 (en) * | 2006-10-17 | 2010-01-05 | Intel Corporation | Performance or power-optimized code/data storage for nonvolatile memories |
US7692949B2 (en) * | 2006-12-04 | 2010-04-06 | Qimonda North America Corp. | Multi-bit resistive memory |
US8014196B2 (en) * | 2008-08-28 | 2011-09-06 | Agere Systems Inc. | Reduced-power programming of multi-level cell (MLC) memory |
US8942035B2 (en) * | 2011-03-23 | 2015-01-27 | Seagate Technology Llc | Non-sequential encoding scheme for multi-level cell (MLC) memory cells |
-
2012
- 2012-02-27 JP JP2012039947A patent/JP2013175258A/ja active Pending
-
2013
- 2013-02-13 WO PCT/JP2013/000761 patent/WO2013128814A1/en active Application Filing
- 2013-02-13 US US14/377,752 patent/US20150019799A1/en not_active Abandoned
- 2013-02-13 EP EP13707926.5A patent/EP2820650A1/en not_active Withdrawn
- 2013-02-13 CN CN201380010233.3A patent/CN104126204A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP2820650A1 (en) | 2015-01-07 |
WO2013128814A1 (en) | 2013-09-06 |
JP2013175258A (ja) | 2013-09-05 |
US20150019799A1 (en) | 2015-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101283145B1 (ko) | 멀티레벨 데이터 저장 셀용 관리 동작 | |
CN106409344B (zh) | 数据储存设备及其操作方法 | |
US9639462B2 (en) | Device for selecting a level for at least one read voltage | |
KR101618677B1 (ko) | 플래시 메모리 제어기와 플래시 메모리 어레이 사이의 인터페이싱 방법 및 인터페이스 | |
CN103688247A (zh) | 混合slc/mlc存储器中的块管理方案 | |
CN102171767A (zh) | 用于存储装置的基于性能因素调节的软数据生成方法装置 | |
WO2010024027A1 (ja) | 仮想サーバシステム及び物理サーバ選択方法 | |
US20140325124A1 (en) | Memory system and method for operating a memory system | |
CN102063931A (zh) | 闪烁存储器系统控制方案 | |
CN104126204A (zh) | 多级存储器、多级存储器写入方法和多级存储器读取方法 | |
US10782914B2 (en) | Buffer systems and methods of operating the same | |
KR102001572B1 (ko) | 분산 파일 시스템 및 이의 데이터 관리 방법 | |
US7894258B2 (en) | Flash memory device for determining most significant bit program | |
KR101934517B1 (ko) | 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 시스템 | |
US9940983B2 (en) | Channel controlling device for improving data reading efficiency | |
CN102236584B (zh) | 用来抑制数据错误的方法以及相关的记忆装置及其控制器 | |
KR101261052B1 (ko) | 멀티레벨 셀 메모리 장치 및 그 데이터 저장 방법 | |
US20130254434A1 (en) | Semiconductor device and information processing apparatus | |
CN101350219B (zh) | 存储器存取方法 | |
Qiu et al. | NoC-aware Adaptive Loop Tiling for Explicit Data Transfers in Many Core Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141029 |