对要存储在非易失性存储器阵列上的数据进行编码的电路、系统和方法

文档序号:6756083阅读:158来源:国知局
专利名称:对要存储在非易失性存储器阵列上的数据进行编码的电路、系统和方法
技术领域
本发明总体上涉及非易失性存储器(“NVM”)器件。更具体地说,本发明涉及对要写入NVM阵列的位进行编码或重新排列。
背景技术
非易失性存储器(“NVM”)单元通用的有多种单元结构,包括“浮置栅”和“氮化物只读存储器”(“NROM”)。NVM单元一般由具有可编程阈值电压的晶体管形成。这些晶体管具有阈值电压(“Vt”),通过对位于晶体管中控制栅和沟道之间的电荷存储区进行充电或放电来对该阈值电压进行编程或将其擦除。通过对存储单元的电荷存储区进行充电或放电将数据写入这种存储单元中,以获得与数据对应的阈值电压。NVM单元可以适于在单个电荷存储区中存储单个位、在多个电荷存储区中存储多个位、或者使用多级编程(“MLC”)在单个或多个电荷存储区中存储多个位。
NVM单元组可被构造成多种阵列结构,这些结构通常具有在每个交叉点处具有至少一个单元的列和行的网格。不同的NVM阵列结构可以工作在不同的操作模式下。例如,NVM单元可以(但是不限于)形成并作为可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、和快速EEPROM存储器阵列工作。
NVM单元阵列一般制作在半导体衬底上,与适于编程阵列和向其及从其读取数据的电路相邻。编程和读取电路一般可被称为编码器/解码器的控制器。控制器一般具有允许该控制器与需要存取NVM阵列的设备或数字装置互连的接口线。不同的控制器遵照与外部设备或数字装置通信的不同标准,例如控制器可以适于使用智能卡或MMC标准进行通信。
由于基于NVM的器件在操作时具有一定的位读取或写入错误的可能性,因此控制器可以包括“错误检测”和/或“纠错编码”(“ECC”)功能。具有内置检错的NVM芯片或器件一般使用通常所说的奇偶校验法检查错误。奇偶校验的问题在于它发现错误但是并不纠正它们。重要的设备可能需要更高的容错水平,并由此当在NVM阵列上存储数据时,控制器可以产生与正在存储的数据相关联的ECC并且可以将该ECC与初始数据存储在一起。当从阵列读取数据时,控制器可以用数据的相关联ECC来恢复由于编程或读取数据时产生的错误而丢失的数据。
控制器还可以包括当将数据写入NVM阵列或从其中读取数据时临时存储数据的存储缓冲器。要存储在NVM阵列上的数据可以首先与数据的相关联的ECC一起存储在存储缓冲器上。存储缓冲器的每片可以被复制到NVM阵列中的行的一部分。
在包括双或多电荷存储区单元和/或MLC的存储器阵列中,其中多个位可以存储在单个单元上,存储缓冲器的片中的两个或更多相邻位可以被复制到NVM阵列上的单个存储单元上。在单个NVM单元上存储来自数据流或数据块的多个相邻位在单元失效的情况下可能具有与数据恢复有关的缺点。

发明内容
本发明是用于重新排列要存储在NVM阵列上的数据块的数据位的电路、系统和方法。作为本发明的一些实施例的部分,可以在产生ECC之前或期间重新排列这些位(即加扰),而在本发明的其它实施例中,可以在根据初始位产生ECC之后重新排列位。根据本发明的一些实施例,位可以按照重新排列的次序存储在NVM阵列上,而在本发明的其它实施例中,位可以按照它们的初始次序存储在NVM上。
根据其中位按照重新排列的次序存储在NVM阵列上的本发明实施例,当从NVM阵列读取位时,可以以与存储前重新排列数据位相反的方式再次重新排列读取位(即解扰的)以便恢复初始数据位。初始位可用于对读取位执行ECC检验和校正功能。
根据本发明的实施例,其中位按照它们的初始次序存储在NVM阵列上,当从NVM阵列读取位时,可以以与产生ECC前重新排列数据位相同的方式再次重新排列读取位。所述重新排列的位可以用于对读取位执行ECC检验和校正功能。


在说明书的结束部分具体指出并且清楚地要求了本发明的主题。然而,通过阅读附图时参考以下详细描述,关于本发明的结构和操作方法及其包含物、特征和优点可以得到最佳理解,其中图1是示出根据本发明的一些实施例的具有位加扰器和纠错编码块的NVM阵列控制器的方框图,通过该控制器数据可以以加扰的方式存储在NVM阵列上;图2是示出根据本发明的一些实施例的具有位加扰器和纠错编码块以及临时存储缓冲器的NVM阵列控制器的方框图,通过该控制器数据可以以加扰的方式存储在NVM阵列上;图3是示出根据本发明的一些实施例的具有位加扰器和纠错编码块以及临时存储缓冲器的NVM阵列控制器的方框图,通过该控制器数据可以按照未加扰的次序存储在NVM阵列上;图4是示出临时缓冲器(例如SRAM)的一列中的位可以如何映射到NVM阵列的一行上的实例的方框图;图5是示出临时缓冲器(例如SRAM)的多列中的位可以如何映射到NVM阵列的多行上的实例的方框图,其中NVM阵列的每个单元可以存储两个位;图6是示出根据本发明的多个实施例的数据加扰器&ECC块的特写的方框图;图7是示出根据本发明的一些实施例的可以如何重新排列位或对位加扰的一个实例的图示;图8是示出根据本发明的多个实施例的用于存储和恢复位的两种独立方法的步骤的流程图。
应当认识到,为了图解的简单和清楚起见,图中示出的元件没有必要按比例绘制。例如,为了清楚一些元件的尺寸可以相对于其它元件进行了放大。另外,在被认为适当的地方,参考标号可以在图之间重复以表示相应或类似的元件。
具体实施例方式
本发明是用于重新排列要存储在NVM阵列上的数据块的数据位的电路、系统和方法。按照本发明的一些实施例的部分,可以在产生ECC之前或期间依照一种分散模式(spreading pattern)重新排列这些位(即加扰),而在本发明的其它实施例中,可以在根据初始位产生ECC之后重新排列位。根据本发明的一些实施例,位可以按照重新排列的次序存储在NVM阵列上,而在本发明的其它实施例中,位可以按照它们的初始次序存储在NVM上。
根据其中位按照重新排列的次序存储在NVM阵列上的本发明实施例,当从NVM阵列读取位时,可以以与存储前重新排列数据位的方式相反的方式再次重新排列读取位(即解扰的),以便恢复初始数据位。初始位可由ECC来操作并可对读取的位执行校正功能。
根据其中位按照它们的初始次序存储在NVM阵列上的本发明实施例,当从NVM阵列读取位时,可以按照所述分散模式以与产生ECC前重新排列数据位所采取的方式相同的方式再次重新排列读取的位。重新排列的位可由ECC来操作并可对读取的位执行校正功能。
现在转到图1,其示出了根据本发明的一些实施例的NVM阵列控制器100的方框图,包括位次序加扰器块110、纠错编码/解码块130、位次序解扰器块120、数据写入/编程电路140、和数据读取电路150。根据涉及图1的方框图的本发明的实施例,数据块可以存储在NVM阵列200上,它的位按照位分散模式被加扰或重新排列。图2示出基本上与图1所示的相同的控制器结构,以及附加的元件—存储缓冲器160。
图1和2都可以依照在图8的流程图中概述的方法中的一些步骤来工作。输入数据块可以进入控制器100,以准备被复制或存储到NVM阵列200上。对于该实例,数据块可以是八个连续的字节(即64位),即涉及NVM阵列时的标准大小。然而,本领域的技术人员当然能理解数据块大小的选择是任意的并且本发明并不局限于任何预定的数据块大小。
作为准备复制到NVM阵列200的部分,数据块可以由纠错编码块130检查或操作,该纠错编码块能够根据初始数据块产生ECC(步骤2000B)。纠错编码在本领域中是众所周知的,并且目前已知的或以后将要设计的任何纠错编码电路或方法都可应用于本发明。在根据初始数据块产生ECC码(步骤2000B)之前或之后,可以通过位次序加扰器块110产生数据块的已加扰版本(步骤1000)。
可以使用几乎无数多种加扰模式。然而,所使用的加扰模式的一个总体标准可以是该模式将数据块的位分散开。即,位次序加扰器110所使用的加扰或分散模式可以使得初始数据块中的相邻位被彼此远离地分散开。查看图4,示出了输入数据块中的位在没有受到加扰或分散时可以如何映射到存储缓冲器160上的实例。数据块中的相邻位在存储缓冲器内可以保持彼此相邻,并且几个相邻字节中的每一个的相同数字位(例如0位)可以映射到存储缓冲器160的相同列和相邻行上。
图5示出位可以如何从存储缓冲器复制到NVM阵列。缓冲器160的每一列可以被复制到NVM阵列200上的一行存储单元。如果NVM阵列200适于将多个位存储在相同存储单元上,那么来自存储缓冲器160上的相同列的几个位可以存储在NVM阵列200的相同存储单元上。
图7示出存储已经按照某一分散模式被加扰或分散的数据块的位的存储缓冲器160的实例。在本发明的各实施例之间,分散数据块的位所采用的具体模式可以不同。
暂时转向图6,示出了根据本发明的一些实施例的数据加扰器&纠错编码/解码块135的组合。当数据块进入时,该数据块的八个字节的每一个都可以进入单独的位检查和/或操作机器,其中每个字节可以被加扰、检验以为该块计算纠错码,或两者都进行。根据本发明的一些实施例,每个单独字节的每个数字位(例如位0或位1)用于产生单独的ECC(有时被称为dq)。即,对八个位中的每一个的所有0位进行统一分析以确定该位组(即0位组)的ECC值,对八个位中的每一个的所有1位进行统一分析以确定该位组(即1位组)的ECC等等。根据本发明的其它实施例,首先对每个字节的位加扰,其后根据加扰或分散的位产生ECC。
回到图1和2,以及其中示出的本发明的实施例,我们看到,在加扰或分散后,数据块连同与其相关联的ECC一起可以通过数据写入/编程电路140复制到NVM阵列200(步骤3000B)。在本发明的一些实施例中(图2),已加扰的数据块在被复制到NVM阵列200之前可以首先被复制到存储缓冲器160上。
当试图读取按照加扰或分散模式存储在NVM阵列上的数据时,根据以上描述的本发明的实施例,可以使用与存储数据块相反的步骤。已加扰的位及其相关联的ECC可以从NVM阵列中读取(步骤4000B)。可以通过位次序解扰器120、利用与用于加扰位的模式相反的模式,对已加扰的位解扰或解分散(步骤5000B)。可根据数据块的相关联ECC,通过纠错编码解码块130操作已解扰的数据位块(例如错误位调整的)(步骤5000B和6000B),由此产生应当与初始输入数据块相类似的输出数据块。根据图2所示的本发明的实施例,从NVM阵列中读取的数据也可以在存储缓冲器160中缓冲。
现在转向图3,示出了根据本发明的一些实施例的NVM阵列控制器100的方框图,包括位次序加扰器块110a和110b、纠错编码&解码块130、存储缓冲器160、数据写入/编程电路140和数据读取电路150。根据与图3相关联的本发明的实施例,数据块可以按照它们的初始未加扰的次序存储在NVM阵列200上。根据与图3相关联的本发明的实施例,可以通过如上所述的位次序加扰器110a对输入数据块的位进行加扰或分散(步骤1000),并且可以根据已加扰的数据块通过纠错编码&解码块130产生ECC(步骤2000A)。尽管数据块被加扰并且根据已加扰的块产生了ECC,但是初始数据块可以按照未加扰的次序复制到存储缓冲器160,数据写入/编程电路140可以将数据块连同它的相关联的ECC一起从该缓冲器160复制到NVM阵列200上(步骤3000A)。
简单查看图6所示的根据本发明的一些实施例的数据加扰器&纠错编码/解码块135,应当明白,输入数据块可以已经分解为子块(例如字节),每个子块可被加扰并且被加扰的子块可以用于计算或确定该块的ECC。根据其中数据块的初始版本将要存储在NVM阵列200上的本发明实施例,数据加扰器&纠错编码/解码块135的输出可以是基于数据块的已加扰版本的ECC。正如从图3和6中应当明白的,数据块的初始版本或其拷贝可以绕过数据加扰器&纠错编码/解码块135并且可以连同基于数据块的已加扰版本的相关联ECC一起存储在NVM阵列200上。在上述本发明的可供选择的实施例中,数据加扰器&纠错编码/解码块135可以根据初始未加扰的数据块产生ECC,并且可以产生或输出数据块的已加扰版本以存储在NVM阵列200上。
回到图3,可以看出,按照未加扰的次序存储在NVM阵列200上的数据块及其相关联的ECC可以通过数据读取电路150来读取(步骤4000A)并且可以在存储缓冲器160中缓冲。从NVM存储器阵列读取位以及将位写入NVM存储器阵列的电路、和NVM阵列一起使用的存储缓冲器以及控制器在本领域中是众所周知的。目前已知的或以后将要设计的任何这种电路都可应用于本发明。
由于和未加扰的数据块一起存储的ECC基于数据块的已加扰版本,因此纠错编码&解码块130可能需要读取数据块的已加扰版本以执行所需的错误位调整。类似在初始输入数据块上所使用的位次序加扰器110a或与其相同的位次序加扰器110b可用于产生从NVM阵列读取的数据块的加扰版本(步骤5000A)。在本发明的一些实施例中,位加扰器110a和110b可以是相同的电路。根据本发明的一些实施例,纠错编码&解码块130可以使用读取数据块的已加扰版本以及相关联的ECC来产生用于从NVM阵列读取的数据块的位的位调整指令(步骤6000A),由此产生输出数据块。
本领域的技术人员应当认识到,本发明并不限于上面所具体示出的和描述的。更确切地说,本发明的范围由下述权利要求来限定。
权利要求
1.一种将位存储在非易失性存储器(“NVM”)阵列上的方法,包括接收特定次序的位块;根据分散模式重新排列所接收的块中的位的次序;基于位的初始块或基于位的重新排列的块产生纠错码(“ECC”);以及将ECC和不是从其得到ECC的位块存储在所述NVM阵列中。
2.一种读取根据分散模式以重新排列的次序存储在非易失性存储器(“NVM”)阵列上的位块的方法,包括利用相反的分散模式重新排列所存储的块,并利用在根据分散模式重新排列并存储块之前产生的纠错码(“ECC”)来操作该块。
3.一种读取与纠错码(“ECC”)一起存储在非易失性存储器(“NVM”)阵列上的位块的方法,该ECC基于通过分散模式重新排列之后的位块,所述方法包括利用分散模式重新排列存储的块,并利用所存储的(“ECC”)来操作被重新排列的块;以及利用相反的分散模式重新排列已操作的数据块。
4.一种用于将数据块的位存储在非易失性存储器(“NVM”)阵列上的控制电路,所述电路包括位加扰块,适于根据分散模式重新排列数据块的位;纠错编码(“ECC”)块,适于基于初始数据块或基于重新排列的数据块产生ECC;以及NVM存储电路,适于将ECC和不是从其得到ECC的位块存储在所述NVM阵列中。
5.根据权利要求4的控制电路,进一步包括适于从NVM阵列中读取所存储的位块的读取电路。
6.根据权利要求5的控制电路,进一步包括适于根据分散模式重新排列所存储的位块的解扰器。
7.根据权利要求6的控制电路,其中ECC块适于根据基于加扰前的初始数据块的ECC操作已解扰的数据块。
8.根据权利要求5的控制电路,其中如果数据块被未加扰地存储,则所述位加扰块适于对读取的数据块进行加扰,并且其中ECC块适于根据基于存储到NVM上之前的初始数据块的已加扰版本的ECC来操作已加扰的块。
全文摘要
本发明是用于将位存储在非易失性存储器(“NVM”)阵列上的方法、电路和系统。根据本发明的一些实施例,位加扰块可以按照分散模式重新排列所接收的位块。纠错码块可以根据初始位块或根据重新排列的位块产生纠错码(ECC),以及数据存储电路可以将ECC和位块存储在NVM阵列中,该ECC不是从该位块中得出的。
文档编号G11BGK1898657SQ200480034661
公开日2007年1月17日 申请日期2004年8月30日 优先权日2003年9月23日
发明者M·拉茨, Z·科亨, A·马库 申请人:英飞凌科技弗拉斯有限责任两合公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1