后台存储器系统接口的动态优化的制作方法

文档序号:11459459阅读:249来源:国知局
后台存储器系统接口的动态优化的制造方法与工艺

本申请是申请号为201180043790.6、申请日为2011年07月12日、发明名称为“后台存储器系统接口的动态优化”的发明专利申请的分案申请。

本申请涉及诸如半导体闪存的可再编程非易失性存储器系统的操作,更具体地,涉及存储器系统的控制器和存储器电路之间的内部接口。



背景技术:

能够非易失性存储电荷的固态存储器、特别是被封装为小型规格卡的eeprom和快闪eeprom形式的固态存储器最近成为各种移动和手持设备、特别是信息装置和消费电子产品中的存储选择。不同于也是固态存储器的ram(随机存取存储器),快闪存储器是非易失性的,并且即使在切断电源之后仍保持它所存储的数据。而且,不像rom(只读存储器),快闪存储器类似于盘存储设备而可重写。尽管成本更高,但是快闪存储器正被更多地用于大容量存储应用中。基于诸如硬盘驱动器和软盘的旋转磁介质的传统大容量存储不适合于移动和手持环境。这是因为盘驱动器倾向于体积大,易出现机械故障,并且具有高等待时间和高功率要求。这些不希望的属性使得基于盘的存储在大部分移动和便携式应用中不实用。另一方面,嵌入式和可移动卡形式这两种的快闪存储器由于其小尺寸、低功耗、高速和高可靠性特征而理想地适合于移动和手持环境。

快闪eeprom类似于eprom(电可擦除可编程只读存储器)在于其是可被擦除并且使新数据被写到或“编程”到其存储器单元中的非易失性存储器。在场效应晶体管结构中,两者利用在源极和漏极区域之间的、位于半导体衬底中的沟道区之上的浮置(未连接的)导电栅极。然后在浮置栅极之上提供控制栅极。由被保留在浮置栅极上的电荷量来控制晶体管的阈值电压特性。也就是,对于浮置栅极上给定水平的电荷,存在必须在“导通”晶体管之前施加到控制栅极以允许在其源极和漏极区之间导电的相应电压(阈值)。具体地,诸如快闪eeprom的快闪存储器允许同时擦除整个块的存储器单元。

浮置栅极可以保持一个范围的电荷,因此可以被编程到在阈值电压窗内的任何阈值电压电平。由器件的最小和最大阈值电平来界定(delimit)阈值电压窗的大小,该最小和最大阈值电平又对应于可以被编程到浮置栅极上的电荷的范围。阈值窗通常取决于存储器器件的特性、工作条件和历史。在该窗内的每个不同的可分辨的阈值电压电平范围原则上可以用于指定单元的明确的存储器状态。

通常通过两种机制之一来将充当存储器单元的晶体管编程到“已编程”状态。在“热电子注入”中,施加到漏极的高电压加速了穿过衬底沟道区的电子。同时,施加到控制栅极的高电压拉动热电子经过薄栅极电介质到浮置栅极上。在“隧穿注入”中,相对于衬底,高电压被施加到控制栅极。以此方式,将电子从衬底拉到中间的(intervening)浮置栅极。尽管历史上已经使用术语“编程”来描述通过将电子注入到存储器单元的初始被擦除的电荷存储单元以便更改存储器状态的向存储器的写入,但是现在已经可与诸如“写入”或“记录”的更常用的术语互换使用。

可以通过多种机制来擦除存储器器件。对于eeprom,可通过相对于控制栅极向衬底施加高电压以便诱导浮置栅极中的电子遂穿过薄氧化物到衬底沟道区(即,fowler-nordheim隧穿)而电擦除存储器单元。通常,eeprom可逐字节擦除。对于快闪eeprom,该存储器可一次性全部电擦除或一次一个或多个最小可擦除块地电擦除,其中最小可擦除块可以由一个或多个扇区组成,并且每个扇区可以存储512字节或更多的数据。

存储器器件通常包括可以被安装在卡上的一个或多个存储器芯片。每个存储器芯片包括由诸如解码器和擦除、写和读电路的外围电路支持的存储器单元的阵列。更复杂的存储器器件还与进行智能和更高级的存储器操作和接口的外部存储器控制器一起工作。

存在现今正使用的许多商业上成功的非易失性固态存储器器件。这些存储器器件可以是快闪eeprom,或可以使用其他类型的非易失性存储器单元。在美国专利no.5,070,032、5,095,344、5,315,541、5,343,063和5,661,053、5,313,421和6,222,762中给出了闪存和系统及其制造方法的例子。具体地,在美国专利no.5,570,315、5,903,495、6,046,935中描述了具有nand串结构的闪存器件。而且,还由具有用于存储电荷的介电层的存储器单元制造非易失性存储器器件。取代先前描述的导电浮置栅极元件,使用介电层。由eitan等人的“nrom:anovellocalizedtrapping,2-bitnonvolatilememorycell”,ieeeelectrondeviceletters,vol.21,no.11,2000年11月,543-545页描述了利用介电存储元件的这种存储器器件。ono介电层延伸穿过在源极和漏极扩散之间的沟道。用于一个数据位的电荷被定位在与漏极相邻的介电层中,且用于另一数据位的电荷被定位在与源极相邻的电介质层中。例如,美国专利no.5,768,192和6,011,725公开了具有夹在两个二氧化硅层之间的俘获(trapping)电介质的非易失性存储器单元。通过分别读取该电介质内的空间上分离的电荷存储区域的二进制状态来实现多状态数据存储。

为了提高读取和编程性能,并行地读取或编程阵列中的多个电荷存储元件或者存储器晶体管。因此,一“页”存储器元件一起被读取或编程。在现有的存储器架构中,行通常包含几个交织的页或者其可以构成一页。一页的所有存储器元件将被一起读取或编程。

在快闪存储器系统中,擦除操作可能花费比读取和编程操作长几乎一个数量级。因此,期望具有充分大小的擦除块。以此方式,擦出时间可以分摊在大群的存储器单元上。

快闪存储器的本性预示着数据必须被写到被擦除的存储器位置。如果来自主机的某个逻辑地址的数据要被更新,则一种方式是在相同的网络存储器位置中重写更新数据。也就是,逻辑到物理地址映射不改变。但是,这将意味着包含该物理位置的整个擦除块将需要首先被擦除,然后用被更新的数据重写。此更新方法效率低,因为其需要擦出并重写整个擦除块,尤其是如果要被更新的数据仅占据了擦除块的一小部分的情况。还将导致存储器块的更高频率的擦除再循环,考虑到此类型的存储器期间的有效的耐久性,这是不希望的。

通过主机系统、存储器系统和其他电子系统的外部接口传送的数据被寻址并映射到快闪存储器系统的物理位置。通常,由系统产生或接收的数据文件的地址按照数据的逻辑块被映射到为系统建立的不同范围的连续逻辑地址空间中(下文中称为“lba接口”)。地址空间的广度通常足够覆盖系统能够处理的地址的全部范围。在一个例子中,磁盘存储驱动器通过这样的逻辑地址空间与计算机或者其他主机系统通信。此地址空间具有足够寻址盘驱动器的全部数据存储容量的广度。

正在努力通过降低功耗以及增加器件速度来提高存储器器件的性能。如上所述,非易失性存储器器件通常由控制器电路以及通过总线结构彼此连接的一个或多个存储器芯片形成。诸如所使用的电压值和频率的控制器/存储器器件接口的的设置通常根据预期最差情况的情形来设置以便具有足够的安全余量从而避免设备故障。因而,在大多数情况下,接口以未达最佳的条件而操作。因此该接口可能是器件性能方面的限制因素,因此这是用于对此接口的设计的改进的空间。



技术实现要素:

根据本发明的一般方面,给出了操作非易失性存储器系统的方法。该非易失性存储器系统包括:控制器电路,具有存储器接口;存储器电路,具有非易失性存储器单元的阵列和控制器接口;以及总线结构,连接到所述控制器电路的存储器接口以及所述存储器电路的控制器接口,用于在所述控制器电路和所述存储器电路之间传输数据和命令。所述存储器系统能够容忍从数据从控制器传输以写到存储器阵列直到数据在随后从存储器阵列被读回之后在控制器处被接收为止的第一非零量的累积错误。该方法包括:所述控制器电路向所述控制器电路和所述存储器电路之间的经由总线结构的数据传输分配第一错误量的第一非零部分,所述第一错误量的剩余被分配给所述存储器电路上的数据的写入、存储和读取。所述控制器电路设置所述控制器电路和所述存储器电路之间的传输特性以操作来允许达第一部分的错误。

在其他方面,给出了操作具有控制器电路和存储器电路的非易失性存储器系统的方法。所述控制器电路通过对连接控制器与所述存储器电路的总线结构的一个或多个操作参数的每个的多个值的每个进行处理来进行传输错误校准。此处理包括:将已知数据样式的数据集从所述控制器经过所述控制器上的传输电路传输到所述总线结构;以及通过所述存储器电路上的接收电路接收来自所述总线结构的数据集。将接收的数据集存储在所述存储器电路上的缓冲存储器中,然后将存储在所述存储器电路上的所述缓冲存储器中的数据集通过所述存储器电路上的传输电路传输到所述总线结构而不写到所述阵列中。通过所述控制器上的接收电路接收来自所述总线结构的数据集;并且进行接收的数据集与已知样式的比较。基于该比较,确定对于所使用的一个或多个参数的与传输处相关联的错误量。随后操作所述存储器系统以允许在所述控制器电路和存储器电路之间的数据传输中的第一非零错误量,其中所述控制器电路根据基于所确定的相关联的错误量的传输错误校准处理来选择操作参数的值。

根据本发明的另一一般方面,非易失性存储器系统具有:控制器电路,包括存储器接口和逻辑电路;以及存储器电路,包括非易失性存储器单元的阵列、控制器接口和逻辑电路。该存储器系统还包括总线结构,连接到所述控制器电路的存储器接口以及所述存储器电路的控制器接口用于在控制器和存储器电路之间传输数据和命令。反馈处理电路在所述控制器和所述存储器电路之间的数据传输期间连接到所述控制器电路和所述存储器电路上的逻辑电路以接收关于由于传输而产生的错误量的信息,并且连接到所述存储器接口和所述控制器接口之一或两者以响应于所述错误量而调整在所述控制器电路和所述存储器电路之间的传输的特性。

在其他方面,给出了操作包括非易失性存储器电路和控制器电路的非易失性存储器系统的方法。在所述控制器电路和存储器电路中的第一个上的逻辑电路中从数据集产生第一哈希值。通过所述控制器电路和存储器电路中的第一个上的接口向总线结构传输所述数据集和第一哈希值,并通过所述控制器电路和存储器电路中的第二个上的接口从所述总线结构接收所述数据集和所述第一哈希值。然后在所述控制器电路和存储器电路中的第二个上的逻辑电路中从接收的数据集产生第二哈希值,然后在所述控制器电路和存储器电路中的第二个上比较接收的第一哈希值和所述第二哈希值。基于所述控制器电路和存储器电路中的第二个上的逻辑电路对接收的第一哈希值和所述第二哈希值的比较,所述系统确定是否更改所述控制器电路和所述存储器电路之间的数据传输的特性。

本发明的各个方面、优点、特征和实施例被包括在其示例例子的以下描述中,该描述应该结合附图考虑。在此引用的所有专利、专利申请、文章、其他出版物、文献和事物为了所有目的通过对其全部的此引用而合并于此。至于在任意所并入的出版物、文献或事物与本申请之间的术语的定义或使用的任何不一致或者矛盾之处,应以本申请的定义或使用为准。

附图说明

图1示意性例示适合于实现本发明的存储器系统的主要硬件组件。

图2示意性例示非易失性存储器单元。

图3例示对于浮置栅极可以在任意一个时间选择性存储的四个不同的电荷q1-q4的源极-漏极电流id和控制栅极电压vcg之间的关系。

图4a示意性例示被组织为nand串的存储器单元的串。

图4b例示由诸如图4a所示的nand串50构成的存储器单元的nand阵列210的例子。

图5例示被并行感测或编程的例如按nand配置组织的一页存储器单元。

图6(0)-6(2)例示编程一群4-状态存储器单元的例子。

图7a-7e例示用给定的2位代码编码的4-状态存储器的编程或读取。

图8例示存储器由作为存在于控制器中的软件组件的存储器管理器来管理。

图9例示后台系统的软件模块。

图10a(i)-10a(iii)示意性例示逻辑组和元块之间的映射。

图10b示意性例示逻辑组和元块之间的映射。

图11是示出用于基于现有构造确定接口完整性的反馈机制的框图。

图12是例示其中反馈机制使用散列引擎来确定接口完整性的实施例的框图。

图13是示出通过总线接口传输数据和产生的散列值的例子的图。

图14示意性例示对存储器系统中的位错误的贡献者。

图15可以用于例示后台接口中的伪回送方法的操作。

图16和图17分别对应于图15的块705和709。

图18是示出传输ber相对数据总线电压和数据传送速率的模拟图。

图19是例示总线结构使用多存储器数据总线的存储器系统中的此串扰的框图。

具体实施方式

存储器系统

图1到图7提供其中可以实现或例示本发明的各个方面的示例存储器系统。

图8到图10例示用于实现本发明的各个方面的优选的存储器和块架构。

图11-13例示控制器和一个或多个存储器电路之间的适应性内部接口的使用。

图1示意性例示适合于实现本发明的存储器系统的主要硬件组件。存储器系统90通常通过主机接口与主机80一起操作。存储器系统通常是存储卡或者嵌入的存储器系统的形式。存储器系统90包括其操作由控制器100控制的存储器200。存储器200包括分布在一个或多个集成电路芯片上的非易失性存储器单元的一个或多个阵列。控制器100包括接口110、处理器120、可选的协处理器121、rom122(只读存储器)、ram130(随机存取存储器)和可选的可编程非易失性存储器124。接口110具有将控制器与主机相接口的一个组件以及接口到存储器200的另一组件。存储在非易失性rom122和/或可选的非易失性存储器124中的固件为处理器120提供代码以实现控制器100的功能。错误校正码可以由处理器120或者可选的协处理器121来处理。在一个替换实施例中,控制器100由状态机(未示出)实现。在另一实施例中,控制器100实现在主机内。

物理存储器结构

图2示意性例示非易失性存储器单元。存储器单元10可以由具有诸如浮置栅极或者电介质层的电荷存储单元20的场效应晶体管实现。存储器单元10还包括源极14、漏极16和控制栅极30。

存在许多现今正使用的商业上成功的非易失性固态存储器。这些存储器器件可以采用不同类型的存储器单元,每种类型具有一个或多个电荷存储元件。

典型的非易失性存储器单元包括eeprom和快闪eeprom。在美国专利no.5,595,924中给出了eeprom单元及其制造方法的例子。在美国专利no.5,070,032、5,095,344、5,315,541、5,343,063、5,661,053、5,313,421和6,222,762中给出了快闪eeprom单元、其在存储器系统中的使用及其制造方法的例子。具体地,在美国专利no.5,570,315、5,903,495和6,046,935中描述了具有nand单元结构的存储器器件的例子。而且,已经由eitan等人在“norm:anovellocalizedtrapping,2-bitnonvolatilememorycell”,ieeeelectrondeviceletters,vol.21,no.11,2000年11月,543-545页中以及在美国专利no.5,768,192和6,011,725中描述了利用电介质存储元件的存储器器件的例子。

实际上,通常通过在向控制栅极施加参考电压时感测跨过单元的源极和漏极电极的导电电流来读取该单元的存储器状态。因此,对于在单元的浮置栅极上的每个给定电荷,可以检测关于固定的参考控制栅极电压的相应导电电流。类似地,可编程到浮置栅极上的电荷的范围定义了相应的阈值电压窗或相应的导电电流窗。

或者,取代检测在划分的电流窗之间的导电电流,能够在控制栅极处为处于测试下的给定存储器状态设置阈值电压,并检测导电电流是低于还是高于阈值电流。在一个实施方式中,通过检查导电电流经过位线的电容放电的速率来实现相对于阈值电流对导电电流的检测。

图3例示对于在任何一个时间时浮置栅极可以选择性存储的四个不同的电荷q1-q4的源极-漏极电流id和控制栅极电压vcg之间的关系。四个实线的id相对vcg曲线表示分别对应于四个可能的存储器状态的、可以被编程在存储器单元的浮置栅极上的四个可能的电荷水平。作为例子,一群单元的阈值电压窗范围可以从0.5v到3.5v。通过将阈值窗以每个0.5v的间隔划分为五个区域,可以划界分别表示一个已擦除和六个已编程的状态的七个可能的存储器状态“0”、“1”、“2”、“3”、“4”、“5”、“6”。例如,如果如所示使用2μa的参考电流iref,则用q1编程的单元可以被认为处于存储器状态“1”,因为其曲线在由vcg=0.5v和1.0v划界的阈值窗的区域中与iref相交。类似地,q4处于存储器状态“5”。

如从以上描述可以看出,使得存储器单元存储的状态越多,其阈值窗划分得越精细。例如,存储器器件可以具有含有范围从-1.5v到5v的阈值窗的存储器单元。这提供了6.5v的最大宽度。如果存储器单元要存储16个状态,则每个状态可以占据阈值窗中的从200mv到300mv。这将要求在编程和读取操作中的更高的精确度以便能够实现要求的分辨率。

图4a示意性例示被组织为nand串的存储器单元的串。nand串50包括通过其源极和漏极菊链连接的一系列存储器晶体管m1、m2、……mn(例如n=4,8,16或更大)。一对选择晶体管s1、s2控制存储器晶体管链分别经由nand串的源极端54和漏极端56与外部的连接。在存储器阵列中,当源极选择晶体管s1导通时,源极端耦接到源极线(见图4b)。类似地,当漏极选择晶体管s2导通时,nand串的漏极端耦接到存储器阵列的位线。该链中的每个存储器晶体管10担当存储器单元。其具有用于存储给定量的电荷以便表示意图的存储器状态的电荷存储元件20。每个存储器晶体管的控制栅极30允许对读和写操作的控制。如将从图4b中可见,一行nand串的相应存储器晶体管的控制栅极30全部连接到相同的字线。类似地,每个选择晶体管s1、s2的控制栅极32提供分别经由其源极端54和漏极端56对nand串的控制访问。同样,一行nand串的相应选择晶体管的控制栅极32全部连接到相同的选择线。

当在编程期间读取或验证nand串内的被寻址的存储器晶体管10时,为其控制栅极30提供适当的电压。同时,nand串50中的其余未被寻址的存储器晶体管通过施加在其控制栅极上的充分的电压而完全导通。以此方式,从各个存储器晶体管的源极到nand串的源极端有效地建立了导电路径,且同样从各个存储器晶体管的漏极到该单元的漏极端56有效地建立了导电路径。在美国专利no.5,570,315、5,903,495、6,046,935中描述了具有这种nand串结构的存储器器件。

图4b例示由诸如图4a所示的nand串50构成的存储器单元的nand阵列210的例子。沿着nand串的每列,诸如位线36的位线耦接到每个nand串的漏极端56。沿着每排nand串,诸如源极线34的源极线耦接到每个nand串的源极端54。而且,沿着一排nand串中的一行存储器单元的控制栅极连接到诸如字线42的字线。沿着一排nand串中的一行选择晶体管的控制栅极连接到诸如选择线44的选择线。可以通过在一排nand串的字线和选择线上的适当的电压来寻址该排nand串中的整行存储器单元。当nand串内的存储器晶体管正被读取时,该串中的剩余的存储器晶体管经由其相关的字线而硬导通(turnonhard),以便流经该串的电流实质上依赖于被读取的单元中存储的电荷的水平。

图5例示被并行感测或编程的例如按nand配置组织的一页存储器单元。图5主要示出图4b的存储器阵列210中的一堆nand串50,其中每个nand串的细节如图4a中明确示出。诸如页60的“页”是被使得能够被并行感测或编程的存储器单元的组。这通过相应页的感测放大器212来实现。感测的结果被锁存在相应组的锁存器214中,每个感测放大器可以经由位线耦接到nand串。通过共同连接到字线42的页的单元的控制栅极使能页,并且可由感测放大器访问的每个单元可经由位线36访问。作为例子,当分别感测或编程单元的页60时,感测电压或者编程电压与位线上的适当的电压一起分别被施加到公共字线wl3。

存储器的物理组织

快闪存储器和其他类型的存储器之间的一个重要差别是单元必须从被擦除状态编程。即,浮置栅极首先必须没有电荷。然后编程将希望量的电荷添加回到浮置栅极。其不支持从浮置栅极移除一部分电荷以从较多编程状态来到较少编程状态。这意味着,更新数据不能盖写(overwrite)现有数据并且必须被写到先前未被写入的位置。

此外,擦除要从浮置栅极清空所有电荷并通常花费可观的时间。为此原因,逐个单元或甚至逐页擦除将是令人厌烦并且非常慢的。实践中,存储器单元的阵列被划分为大量的存储器单元的块。如对于快闪eeprom普遍的,块是擦除的单位。即,每块包含一起被擦除的最少数量的存储器单元。尽管在块中聚集大量单元以并行被擦除将提高擦除性能,但是大尺寸的块也使得必须应对大量的更新和废弃数据。就在块被擦除之前,需要垃圾回收以挽救块中的非废弃的数据。

每个块通常被划分为多页。页是编程或读取的单位。在一个实施例中,各个页可以被划分为段并且段可以包含作为基本编程操作一次被写入的最少数量的单元。一页或多页数据通常存储在一行存储器单元中。一页可以存储一个或多个扇区。扇区包括用户数据和开销数据。跨越多个阵列分布的多个块和页也可以作为元块和元页一起操作。如果它们分布在多个芯片上,则它们可以作为元块和元页一起操作。

多级单元(“mlc”)存储器划分的例子

已经结合图3描述了其中每个存储器单元存储多位数据的非易失性存储器。具体例子是由场效应晶体管的阵列形成的存储器,每个场效应晶体管具有在其沟道区和其控制栅极之间的电荷存储层。电荷存储层或单元可以存储一个范围的电荷,引起对于每个场效应晶体管的一个范围的阈值电压。可能的阈值电压的范围跨度是阈值窗。当阈值窗被划分为阈值电压的多个子范围或者区域时,每个可分辨的区域用于表示存储器单元的不同存储器状态。可以通过一个或多个二进制位来编码多个存储器状态。例如,被划分为四个区域的存储器单元可以支持可以被编码为2位数据的四个状态。类似地,被划分为八个区域的存储器单元可以支持可以被编码为3位数据的八个存储器状态,等等。

所有位,全序列mlc编程

图6(0)-6(2)例示编程一群4状态存储器单元的例子。图6(0)例示可编程为分别表示存储器状态“0”、“1”、“2”和“3”的四个不同的阈值电压分布的该群存储器单元。图6(1)例示对于被擦除的存储器的“被擦除”阈值电压的初始分布。图6(2)例示在许多存储器单元已经被编程之后存储器的例子。实质上,单元初始具有“被擦除”阈值电压并且编程会将其移动到更高的值而进入由验证电平vv1、vv2和vv3划界的三个区域之一。以此方式,每个存储器单元可以被编程到三个被编程状态“1”、“2”和“3”之一或者在“被擦除”状态中保持未被编程。随着存储器得到更多编程,如图6(1)所示的“被擦除”状态的初始分布将变得更窄并且被擦除状态由“0”状态表示。

可以使用具有较低位和较高位的2-位码来表示四个存储器状态的每个。例如,“0”、“1”、“2”和“3”状态分别由“11”、“01”、“00”和“10”表示。可以通过在“全序列”模式下感测而从存储器读取2-位数据,在该“全序列”模式中,通过分别在三个子遍中相对于读取划界阈值rv1、rv2和rv3进行感测来一起感测两位。

逐位mlc编程和读取

图7a-7e例示用给定的2位码编码的4状态存储器的编程和读取。图7a例示当每个存储器单元使用2-位码存储两位数据时4状态存储器阵列的阈值电压分布。这样的2位码已经在美国专利no.7,057,939中公开。

图7b例示使用2位码的2遍编程方案的较高页编程(较高位)。在将较高页位编程到“0”的第二遍中,如果较低页位处于“1”,则如通过将“未被编程的”存储器状态“0”编程到“1”所表示的,逻辑状态(1,1)转变到(0,1)。如果较低页位处于“0”,则通过从“中间”状态编程到“3”,获得逻辑状态(0,0)。类似地,如果较高页要保持在“1”,而较低页已经被编程到“0”,则如通过将“中间”状态编程到“2”所表示的,将需要从“中间”状态到(1,0)的变换。

图7c例示使用2位码的2遍编程方案中的较高页编程(较高位)。在将较高位编程到“0”的第二遍中,如果较低页位处于“1”,则如通过将“未被编程的”存储器状态“0”编程到“1”而表示的,逻辑状态(1,1)转变到(0,1)。如果较低页位处于“0”,则通过从“中间”状态编程到“3”获得逻辑状态(0,0)。类似地,如果较高页要保持在“1”,而较低页已经被编程到“0”,则如通过将“中间”状态编程到“2”所表示的,将需要从“中间”状态到(1,0)的转变。

图7d例示辨别用2位码编码的4状态存储器的较低位所需的读操作。首先进行读取b操作以确定是否可以读取lm标志。如果可以,较高页已经被编程并且读取b操作将正确地产生较低页数据。另一方面,如果较高页还没有被编程,则较低页数据将通过读取a操作被读取。

图7e例示辨别用2位码编码的4状态存储器的较高位所需的读操作。如从图中清楚的,较高页读取将需要分别相对于分界阈值电压da、db和dc的读取a、读取b和读取c的3遍读取。

在对于2位存储器的逐位方案中,存储器单元的物理页将存储两个逻辑数据页:对应于较低位的较低数据页和对应于较高位的较高数据页。

二进制和mlc存储器划分

图6和图7例示2位(也称为“d2”)存储器的例子。如可见,d2存储器具有被划分为四个区域的其阈值范围或者阈值窗,指定4个状态。类似地,在d3中,每个单元存储3位(较低、之间和较高位),并且存在8个区域。在d4中,存在4位和16个区域,等等。随着存储器的有限的阈值窗被划分为更多的区域,编程和读取的分辨率必然将变得更精细。随着存储器单元配置为存储更多位,出现两个问题。

首先,当单元的阈值必须更准确地编程或读取时,编程或读取将更慢。事实上,在实践中,(编程和读取中所需的)感测时间将随着划分的级别的数量的平方而增加。

第二,快闪存储器随着使用老化而具有耐用性问题。当电源重复地被编程和擦除时,通过跨过电介质的隧穿,电荷来回进出浮置栅极20(见图2)。每次一些点和可能变得被俘获在电介质中并将修改单元的阈值。事实上,随着使用,阈值窗将逐渐缩窄。因此,mlc存储器通常被设置为在容量、性能和可靠性之间具有折衷。

相反,将看出对于二进制存储器,存储器的阈值窗仅被划分为两个区域。这将允许错误的最大余量。因此,尽管二进制划分在存储容量上减少但是将提供最大的性能和可靠性。

结合图7所述的多遍、逐位编程和读取技术提供了mlc和二进制划分之间的顺利转变。在此情况下,如果仅用较低位编程存储器,则其有效地成为二进制划分的存储器。尽管此方法没有向在单级单元(“slc”)存储器的情况下那样完全优化阈值窗的范围,但是其具有使用与在mlc存储器的较低位的操作中系统的分界或感测电平的优点。如稍后将描述的,此方法允许mlc存储器被“征用”以用作二进制存储器,或者反之依然。但是,应该理解mlc存储器趋向于具有更严格的使用规范。

二进制存储器和部分页编程

被编程到要个存储器单元的电荷存储元件中的电荷产生干扰相邻存储器单元的电场的电场。这将影响实际上是具有电荷存储元件的场效应晶体管的相邻存储器单元的特性。具体地,当被感测时,存储器单元将看起来具有比其更少被干扰时更高的阈值水平(或更多被编程)。

通常,如果存储器单元在第一场环境下被编程验证并且稍后由于相邻的单元随后被编程有不同的电荷而在不同的场环境下再次被读取,由于在被称为“yupin效应”的现象中的相邻浮置栅极之间的耦合,读取准确性可能受影响。随着半导体存储器中不断更高的集成,随着内部蜂窝间距收缩,存储器单元之间的由于存储的电荷引起的电场的微扰(yupin效应)变得日益可观。

以上结合图7所述的逐位mlc编程技术被设计为最小化来自沿着相同字线的队员的编程干扰。如从图7b可见,在两遍编程的第一遍中,单元的阈值最多移动在阈值窗以上的一半路程。第一遍的影响被最终遍压制(overtake)。在最终遍,阈值仅移动路程的四分之一。换句话说,对于d2,相邻单元之间的电荷差被限制到其最大的四分之一。对于d3,通过三遍,最终遍将把电荷差限制到其最大的八分之一。

但是,逐位多遍编程技术将被部分页编程损害。页是通常沿着一行字线的存储器单元的组,其作为单位一起被编程。能够分别通过多遍编程来编程一页的不重叠的部分。但是,由于不是该页的所有单元都在最终遍中一起被编程,可能在一页完成之后创建在单元之间的在被编程的电荷中的大的差别。因此,部分页编程将导致更大的编程干扰,并且将需要更大的余量用于感测准确性。

在存储器被配置为二进制存储器的情况下,操作的余量与mlc的操作的余量更宽。在优选实施例中,二进制存储器配置为支持部分页编程,在该部分页编程中,可以分别在队一页的多遍编程的一遍中编程该页的不重叠的部分。通过以大尺寸的页操作,可以提高编程和读取性能。但是,当页尺寸比主机的写单位(通常512字节的扇区)大得多时,其使用将是低效的。以比一页更精细的粒度操作允许这样的页的更有效的使用。

已经在二进制相对mlc之间给出例子。应该理解,通常,相同的原理适用于具有第一数量的等级的存储器和具有比第一存储器多得第二数量的等级的存储器之间。

逻辑和物理块结构

图8例示存储器单元由作为存在于控制器中的软件组件的存储器管理器来管理。存储器200被组织为块,每块单元是擦除的最小单位。依赖于实现方式,存储器系统可以利用通过将块聚合为“元块”以及还有“多个元块”而形成的甚至大量的擦除的单位来操作。为了方便,此描述将把擦除的单位称为元块,尽管将理解一些系统利用诸如通过元块的聚合而形成的“元块”的甚至更大的擦出单位而操作。

主机80在运行在操作系统的文件系统下得应用时访问存储器200。通常,主机系统寻址其中录入每个扇区存储512字节的数据的逻辑扇区的单元中的数据。而且,主机通常按逻辑簇的单位向存储器系统读取或写入,每个逻辑簇由一个或多个逻辑扇区组成。在一些主机系统中,可以存在可选的主机侧存储器管理器以进行主机处的较低级存储器管理。在大多数情况下,在读取或写入操作期间,主机80实际上向存储器系统90发出命令来读取或写入包含具有连续地址的一串逻辑扇区的数据的段。

存储器侧的存储器管理器300实现在存储器系统90的控制器100中以管理在快闪存储器200的元块之间的主机逻辑扇区的数据的存储和取回。存储器管理器包括前台系统310和后台系统320。前台系统310包括主机接口312。后台系统320包括用于管理元块的擦除、读取和写入操作的多个软件模块。存储器管理器还维持与其在快闪存储器200和控制器ram130之间的操作相关联的系统控制数据和目录数据。

图9例示后台系统的软件模块。后台系统主要包括两个功能模块:媒体管理层330以及数据流和排序层340。

媒体管理层330负责组织快闪存储器元块结构内的逻辑数据存储。稍后将在关于“媒体管理层”的部分中提供更多细节。

数据流和排序层340负责在前台系统和快闪存储器之间的数据的扇区的排序和传送。该层包括命令排序器342、低级排序器344和快闪控制层346。稍后将在关于“低级系统说明”的部分中提供更多细节。

存储器管理器300优选实现在控制器100中。其将从主机接收的逻辑地址翻译为其中实际存储数据的存储器阵列内的物理地址,然后掌握这些地址翻译。

图10a(i)-10a(iii)示意性例示逻辑组和元块之间的映射。物理存储器的元块具有用于存储逻辑组的n个逻辑扇区的数据的n个物理扇区。图10a(i)示出来自逻辑组lgi的数据,其中逻辑扇区按连续的逻辑顺序0、1、……、n-1。图10a(ii)示出相同的数据按相同的逻辑顺序被存储在元块中。元块在按此方式存储时被称为是“顺序的”。通常,元块可以具有按不同顺序存储的数据,在此情况下,元被称为是“非顺序的”或者“混乱的”。

在逻辑组的最低地址和其被映射到的元块的最低地址之间可能存在偏移。在此情况下,逻辑扇区地址回绕作为从元块内的逻辑组的底部回到逻辑组的顶部的循环。例如,在图10a(iii)中,元块在以逻辑扇区k的数据开始的其第一位置进行存储。当达到最后的逻辑扇区n-1时,其绕回到扇区0并最终在其最后的物理扇区中存储与逻辑扇区k-1相关联的数据。在优选实施例中,使用页标签来标识任何偏移,比如标识元块的第一物理扇区中存储的数据的开始的逻辑扇区地址。当两个块仅页标签不同时,将认为它们具有以类似顺序存储的其逻辑扇区。

图10b示意性例示逻辑组和元块之间的映射。除了其中数据当前正被更新的少量逻辑组之外,每个逻辑组380被映射到唯一的元块370。在逻辑组已经被更新之后,其可以被映射到不同的元块。映射信息被维持在逻辑到物理目录集中,这将在稍后更详细地描述。

适应性的控制器-存储器接口

此部分给出反馈机制和处理单元的使用,其监视存储器系统的内部控制器-存储器接口的传送完整性,并且可以因此调整接口设置。这允许该系统优化接口性能。例如,该系统的功率能够降低或者该接口的总线时钟能够加速,因为这通常是内部性能瓶颈,所以从存储器系统的外部(即从主机)来看,这允许性能的增加。在传输错误的情况下,通过接口完整性反馈的帮助并且依赖于实施例通过其他传感器或参数的帮助,反馈处理单元可以决定是否调整接口设置、进行传输重试或者忽略该错误。以下的讨论也将在如图4a、4b和图5中所示的对于存储器阵列使用nand型架构的存储卡的上下文中给出,但是很容易扩展到对于其他架构的类似的内部接口、其他形式的存储器以及非卡得使用,比如嵌入式系统、ssd、等等。

尽管以下讨论可以基于各个示例实施例以提供具体例子,但是在此的技术和结构通常完全可以适用于具有控制器和可以独立地操作的多个堆的存储器系统,其中堆包括一些量的可以用于存储系统数据的无论是快闪的还是其他种类的非易失性存储器,控制器可以使用该系统数据来管理存储器系统。除了以上列出的其他参考之外,这些可以包括在以下美国专利、专利公开和专利号中给出的各种存储器系统:7,840,766;us-2005-0154819-a1;us-2007-0061581-a1;us-2007-0061597-a1;us-2007-0113030-a1;us-2008-0155178-a1;us-2008-0155228-a1;us-2008-0155176-a1;us2008-0155177-a1;us-2008-0155227-a1;us-2008-0155175a1;12/348,819;12/348,825;12/348,891;12/348,895;12/348,899;12/642,584;12/642,611;us12/642,649;12/642,728;12/642,740和61/142,620。

在讨论示例实施例之前,此部分将通过进一步考虑以上克服的问题而开始。使用控制器-存储器器件接口来在控制器(100,图1)和一个或多个nand(示例实施例中)器件(200,图1)之间传送数据。(注意,此讨论涉及在控制器100和快闪存储器200之间的在存储器系统90上的内部接口,而接口110是控制使用来与存储器系统的外部通信的主机接口。)已经开发了不同的nand接口模式来增加对速度、功耗等等折衷的接口性能。由于此接口通常是性能瓶颈,所以这些接口被推到了对于最大化系统性能的限制。为了避免数据错误,接口设置(比如电压、频率、驱动强度和转换速率控制)正被设置为用于最差情况的情形(极端温度、极端负载电容、极端电压等等)。从而,器件通常被设计为具有最差情况安全余量,其变为通常条件下的大的余量。在这样的通常条件下,接口设置可以被优化到高得多的接口性能而不损害产品可靠性。不用诸如在以下给出的机制,存储器器件将继续操作在最差情况性能设置。

例如,在以33mhz到加速的40mh到过加速的50mhz和超级过加速的60mhz的标定总线频率时对于16位正常模式的突发数据传送时间之间的简单比较分别得到大约17%、33%和45%的极大的等待时间降低。这示出在表1中,其中列是频率、对应的周期(tcyc)、传送2142字节数据的时间以及相对于在33mhz时的速度的速度比率。

在现有技术中,对于给定的产品,快闪接口性能通常被设置为固定性能。然后,设计考虑到最差情况设计。在一些产品中,快闪接口被设置用于“接近最差情况”,允许一些接口性能优化,但是冒着一些较低的器件产出或者增加的数据错误的风险。

此部分给出反馈机制和处理单元,该反馈机制和处理单元监视接口性能完整性并且据此调整接口设置以便优化接口性能。在传输错误的情况下,反馈处理单元(通过接口完整性反馈以及可能通过其他传感器或者参数的帮助)可以决定是否调整接口设置、进行传输重试或者忽略该错误。在没有传输错误的情况下,该反馈处理单元可以决定照原样留下接口设置或者修改接口设置以便增加接口性能。另外,可以以这样的方式设计接口完整性反馈机制:反馈处理单元可以得到不同等级的信息,比如二进制的通过/失败指示、通过/失败加上错误的数量或者通过/失败加上错误的数量加上错误位置。

根据该实施例,反馈机制可以利用现有期间基础结构或者可以通过诸如哈希引擎的专用机制进一步被优化。这样的专用机制可以以硬件、软件或者它们的组合来实现。还可以通过能够校正传输错误的错误校正引擎来补充哈希引擎。这样的方法将允许接口应对一个级别的位错误率,同时仍达到最佳性能。传输校正能力是有价值的,因为在现有技术中对于nand位故障的ecc的设计仅考虑了存储器本身上的错误,并且未考虑在数据在控制器和存储器器件之间传送时可能发生的接口错误。随着接口性能升高,传输错误的可能性升高。使遗留ecc来应对接口错误降低了遗留ecc在性能以及对于不可恢复的错误的概率方面的能力。设计专用接口错误校正引擎可以允许“分而治之”,让遗留ecc仅关注于nand产生的错误。(关于ecc的另外的背景细节可以在以下美国专利、专利公开和专利申请号中找到:2009/0094482;7,502,254;2007/0268745;2007/0283081;7,310,347;7,493,457;7,426,623;2007/0065119;2007/0061502;2007/0091677;2007/0180346;2008/0181000;2007/0260808;2005/0213393;6,510,488;7,058,818;2008/0244338;2008/0244367;2008/0250300以及2008/0104312。)

图11是示出这样的反馈机制但是基于通常的现有技术已有的nand/控制器基础结构的框图。这将帮助进一步例示所涉及的概念中的一些以及提供适应性接口的替换实施例。在图11中,仅明确示出了与本讨论有关的元件,并且删除了其他元件以简化本讨论。在控制器100上的是asic核411、ecc电路413、输出缓冲器415、输入缓冲器425、传输电路417和接收电路427。尽管在此示出为分离的,但是在实际的实现中可以不这样:输入或输出缓冲器可以重叠或者可以相同;传输和接收可以是共享的元件或者甚至可以相同;ecc电路可以实现为asic核中的软件;等等。在存储器侧200,示出的元件是读电路431和传送电路441(它们再次可以部分或完全重叠)、输入数据缓冲器433和输出数据缓冲器443(类似地,它们可以是单个缓冲器)以及nand核435。然后控制器100和存储器电路通过总线结构401连接。

用于一旦在控制器100处接收到主机数据集的一般流程是从asic核411经过传输电路417并到总线结构401之上而到输出数据缓冲器415。在存储器200上,数据由接收电路431从总线传送到输入数据缓冲器433中,然后被写到nand核435中。随后,当主机想要访问该数据时,该数据被从nand核435读出到输出数据缓冲器443,由传输电路441传送到总线结构401上,然后由接收电路427从总线读出到控制器的输入数据缓冲器425中.存储器系统通常使用错误校正码(ecc)来检测并矫正可能进入数据的错误,其中控制器产生相应的ecc,该相应的ecc与数据一起传输并写到nand核中,然后与数据一起读回。然后ecc引擎413具有对该数据及其相应的ecc的访问,如需要,允许数据在被传递到主机上之前被检验并校正。

尽管ecc可以用于校正数据错误,但是其仅可以校正有限量的错误,其中该量是设计选择。在这些能力内,ecc引擎413可以叫正在来回行程期间累积的任意错误,包括传输错误以及与nand核435本身相关联的错误,比如写错误、读错误和干扰以及在存储时的数据的其他损失;但是,ecc的选择通常仅基于对与nand核435有关的错误的考虑。在一些布置中,比如在对于ecc的以上列出的参考文献的一些中公开的具有“强ecc”的布置中,代码是基于存储器的特性以及数据状态如何映射到存储器中。控制器和存储器之间的传输远被忽视并被认为没有添加错误。因而,接口需要据此设置,导致根据最差情况或者接近最差情况设置参数,如上所述。

第一实施例集是基于图11的元件以提供用于优化接口特性的反馈。数据集与相应的ecc一起在来回行程中从控制器发送到存储器并回到控制器,很像以上所述的标准写入后跟随读取,除了数据(和相应的ecc)实际上不写入到存储器核中。在写入传送正从控制器100发出到存储器电路200时,控制器可以使用缓冲器锁存器433和443来读回该数据。这由路径437表示,尽管如果输入和输出缓冲器系统,则将没有实际的传送。由于此来回行程移除了与435本身的阵列相关联的错误,所以这隔离了传输的影响并且允许ecc引擎413确定存储器接口的完整性。然后可以修改接口参数并且可以重新发出处理。这样,可以优化读和写接口参数两者。

图12是例示另一实施例集的框图,但是其中反馈机制使用哈希引擎和可选的对于接口特定的数据校正引擎。不是涉及控制器和存储器芯片,在发送器侧520和接收器侧530上的电路方面给出图12,因为如以下进一步描述的,依赖于是读处理还是写处理以及两侧是否需要对称,这些的任意一个可以是控制器并且另一个是存储器。

发送器侧520将再次包括写数据缓冲器521和传输接口电路529。还将包括哈希值发生器525和复用器527。在传送处理中,要写入的数据(523)从写缓冲器520传送到哈希值发生器525以及mux527两者。哈希值发生器525从该数据相应地产生哈希值,该哈希值然后被传递到mux527。然后该复用器将其后跟随着其哈希值的数据提供给传输接口电路529,然后提高到总线结构550上。

接收器侧再次包括接收器接口电路和读数据缓冲器535加上一些另外的元件。在读接口电路532从总线550取得数据和相应的哈希值之后,解复用电路533将哈希值与数据分离,读取的数据被发送到缓冲器535,并并且还发送到接收器侧哈希值发生器539,该接收器侧哈希值发生器539从该数据集产生哈希值。然后在比较电路541中将接收器侧产生的哈希值与接收的哈希值比较。依赖于实施例,比较的结果可以仅确定这些值是否匹配或者进一步确定由于传送处理引起的错误量。数据校正引擎537也可以被包括在一些实施例中以矫正接口错误而无需进行数据重传。在示例实施例中,哈希发生器(和在接收器侧的可选的数据校正引擎)与用于使用的nand核错误的ecc分离,尽管在电路中可以存在一些重叠;并且,事实上,两者可以实现在控制器的相同逻辑电路上,但是通过不同的固件代码实现。(尽管对于此讨论认为是分离的,但是如下所述在更普遍的实施例中两个错误检测/叫这部分也可以交互。)通常,将基于被发送的信息的整体(用户数据、相应的ecc、头部信息、等等)而产生哈希值,但是在替换实施例中,可以通过比如除去各种开销并且仅使用用于产生哈希值的用户数据本身而今从一部分产生哈希值。

图12还包括连接以接收哈希比较电路541的输出的反馈处理单元560。然后在561分析此反馈,依赖于实施例,这可以考虑温度、供应电压电平以及nand核的预处理有关的性质中的一个或多个。在563,然后此反馈的结果可以用于调整传输处理并且相应地连接到传输接口电路529和读取接口电路531之一或两者。对于写操作(其中控制器是发送器侧),在从控制器向存储器器件发出写传送之后,反馈处理单元可以仅读回产生的哈希值的比较并通过此确定写方向存储器接口完整性。基于此,可以修改接口写参数并且如希望可以重新发出处理。对称地,可以对其中存储器是发送器侧的读方向采用相同的操作。

图13是示出用于通过总线接口传输数据和产生的哈希值的例子的图。如上部所示,相应的哈希值自动附于数据,以便当器件工作在此模式时它们将一起传输。在下部所示的第二选项中,传输数据有效负荷,接收侧请求相应的哈希值,然后产生并传输该哈希值。该数据有效负荷可以是预定长度或者随机长度。如果数据有效负荷长度是预定的,则如在第一选项中那样,哈希值可以被附于该数据,或者,该哈希值可以经请求而发送。如果数据有效负荷长度是随机的,则可以在发出具体命令之后发送该哈希值。

多个变化对于关于图12所述的技术和相应的电路是可能的。关于哈希值引擎和哈希值,哈希引擎可以是奇偶校验码(循环冗余检验或crc)、ecc、等等。例如,可以使用将返回通过/失败的“二进制”实施例,其可以基于错误位计数(crc)而建立并且具有用于实现的低门计数的益处。或者,“软”实施例可以返回错误位计数(ebc),并且可以选地返回失败位的位置,并且其可以基于诸如bch或里德-所罗门码的ecc码而建立,提供更多信息来帮助系统进行准确的决定。哈希引擎可选地还具有例如校正接口故障的补充特征,类似于校正来自存储器核的翻转位,如图12的数据校正引擎537所表示的。基于来自传送的反馈,系统可以重复传送。可以基于二进制传送状态或者基于软传送状态决定传送重试。此外,可以基于传送状态和nand为翻转的数量的组合来决定传送重试;例如,如果接口引入了n个错误并且nand引入了m个错误并且控制器错误校正能力是p,并且p>n+m,则系统可以决定不重新传输。

该系统还可以按各种其它方式配置。配置可以是对称的,其中在控制器和存储器侧的哈希引擎相同或者对称。在对称配置中,对于不同的传输方向使用不同的配置;例如,可以涉及更快的机制用于读传输,而设计更可靠的机制用于写传输。而且,应该注意,即使接口对称地配置,因为在数据的初始写入和随后的读取之间的间隔期间设置可能改变,所以关于给定的数据集其可能不对称地运作。

反馈处理单元530可以不同地位于控制器100上、位于存储器200上、在这两者上或者分布在两者之间。其还可以形成在分离的电路上。在许多应用中,在控制器上实现反馈处理单元将是最实际的,因为控制器电路通常包括更高级的处理能力并且还因为存储器系统经常由多个存储器芯片形成,但是在此给出的技术不限于这样。在这些变化的任意一个中,对于数据传送状态阶段的检查是反馈处理单元的责任。

进一步考虑其中反馈处理单元位于控制器侧的例子:在读方向,在空中其读取数据和哈希值之后,它们将经过反馈机制传递,并且控制器将确定通过/设备状态并且可以据此调整(或不调整)接口设置。因为控制器已经读取了数据和哈希值,所以没有对于来自快闪侧的信息以确定状态的进一步需要,因为这可以在控制器的逻辑中完成。在写方向,数据有效负荷和相应的哈希值被发送到存储器侧,并且控制器然后可以按几种不同的方式操作:从存储器侧读取通过/失败状态;读回哈希值并确定通过/失败;从存储器读回错误位计数(ebc);从nand读回ebc和错误位置;或者从存储器侧读取通过/失败状态以及校正的位的数量。

反馈处理单元可以决定修改接口设置。例如,可以修改以下接口设置:驱动强度;总线频率或其他定时参数;接口电压;接口模式(例如从正常/传统模式切换到触发模式);等等。然后可以按适应性反馈方式修改这些接口设置。因为诸如处理变化、供应电压电平和温度的因素影响接口错误的可能性,这些因素也可以作为对图12上的反馈分析561的输入而被包括。

总线频率和其他参数设置可以基于较早前的缓解(remission),标定参数设置也可按各种方式设置。例如,可以使用具有用于不同的总线容量/nand配置的不同值的查找表(lut)。这样的查找表(lut)还可以具有用于不同的操作处理参数、电压供应电平、温度等等的不同值。代替在lut中预定,处理参数、电压供应电平和温度也可以是按函数(公式)可变的。

可以在后台操作接口设置优化任务。诸如电压供应或者温度改变的特殊事件也可以用于触发接口设置训练任务。接口训练任务还可以使用跨过nand核传输而不写到nand核的已知的样式,比如以上关于图11所述的以及路径437。接口设置也可以不同,并且可以基于读方向和写方向,或者基于不同的数据保持要求。

以上讨论主要将存储器系统考虑为具有控制器和单个存储器器件电路。更普遍地,该系统可以包括可以使用各种总线拓扑连接到控制器(和反馈处理单元-如果其是分离的电路)的几个存储器芯片。例如,所有存储器芯片可以共享单个系统总线;或者每个存储器电路可以具有其自己的控制器-存储器总线;或者可以使用各种混合布置。然后不同的接口设置可以应用于此多个nand器件(例如,如果与几个器件相接口,则这可以并行地完成)。基于被访问的具体nand器件,也可以使用不同的接口设置,因为接口性质可以是具体nanf器件的负载和/或单元/块性质的函数)。此外,在给定的存储器器件内,不同的接口设置也可以应用于nand核内的块,因为接口性质可以是具体块的性质的函数。

关于以上部分的技术的更多细节可以在2010年7月13日提交的美国专利申请号12/835,292中找到。

后台存储器系统接口的动态优化

此部分将进一步考虑存储器系统的控制器-存储器(或者“后台”)接口并给出用于动态地优化适合于高速存储器系统、包括具有多个存储器数据总线的那些系统的后台读和写性能的一些方法。如上所讨论的,存储器系统通常被设计为具有某个量的错误容限;并且尽管此错误可能出现在控制器-存储器传输处理以及实际的存储器上存储处理两者中,但是传统上对于ecc处理仅考虑两者中的后一者,并且后台接口通常被优化为消除或者至少尽可能最小化传输信道错误。不过,在许多情况下,从存储处理得到的数据错误(包括读和写错误)可能很好地在系统的ecc能力以下。例如,尽管大量循环过的器件可能需要完全的可用数据校正,但是新的器件可能具有相对很少的错误,为系统留下过剩的错误校正能力。此部分给出通过其存储器系统将此错误校正能力的非零部分内部地分配给传输信道的方法。这允许接口以例如较高速度或者较低功率而操作,即使这将很可能导致传输路径错误。当存储器部分需要更高量的错误校正时,可以动态地调整分配。在补充的方面中,该系统可以校准传输路径以确定对于不同的操作参数的得到的传输错误量,然后基于多少被允许而选择参数。

进一步考虑控制器和存储器部分之间的后台接口,通常的存储器系统由存储器控制器和诸如nand快闪存储器模块的存储器器件构成。后台接口是存储器及其控制器之间的数据总线。该接口通常按两种方式之一而建立。在第一方式中,如果控制器和存储器器件是离散的组件,则通过在印刷电路板(pcb)上进行布线(trace)来建立后台接口,其中这些组件布置在该印刷电路板上。在第二方式中,控制器和存储器可以封装在单个包装中,比如包装的系统(sip)或者多芯片包装(mcp)。在此第二情况下,通过包装基板建立后台接口。

如在先前部分中所讨论的,存储器系统中的整体位错误率(ber)可以由两个主要因素贡献:诸如nand快闪存储器的存储器器件中的数据保持的可靠性;以及后台接口的缺陷,这可能导致传输错误。然后可以在存储器系统中采用错误校正编码(ecc)以应对此整体ber。图14示意性例示对于存储器系统中的位错误有贡献者。

如图14所示,整体位错误率ber605的主要源之一。由于(来自电荷泄漏、干扰等等的)存储的数据的数据损失引起的此错误以及在读和写处理中引入的任何错误的影响示出在nand保持601。传统上,使用数据校正来仅解决此因素,当数据被读取时观察到此因素。由于信道缺陷引起的错误示出在603,并且该错误影响数据读和写两者,但是在读取时将再次观察到影响。信道影响错误的源可以包括码间干扰(isi)、相同数据总线(总线内)串扰、总线间串扰(在多数据总线设计上)、印刷电路板(pcb)噪声、硅晶片噪声、包装噪声等等。在另一侧,ecc607可以校正错误达某个水平的错误。

随着控制器和存储器之间的数据传输率增加,后台接口变得更易受到对603有贡献的与信号完整性有关的问题,比如相同数据总线内的信号之间的串扰(存储器数据总线内串扰)以及码间干扰(isi)。另外,其中控制器可以同时访问多个存储器器件的存储器拓扑(多存储器数据总线设计)的引入使后台接口经历数据总线之间的同时切换噪声和串扰(存储器数据总线间串扰)。除了总线速度之外,诸如数据总线的电压幅值以及温度(pcb线路的周围温度以及包转的系统(sip)或者多芯片包装(mcp)的接合处温度)的因素也可能影响后台接口的信号完整性。因此,后台接口的固有缺陷变为确定高速存储器系统的整体系统性能的瓶颈。存储器器件的管脚电容随着存储器晶片的数量而增加。以多个存储器晶片构成的高容量存储器器件在其数据输入/输出(i/o)上呈现高电容,中将进一步有损数据总线结构的边缘速率以及信号完整性。

可以通过增加信号线路彼此相分离的间隔来最小化在信号线路上的与信号完整性有关的问题以最小化串扰;但是此方法受到在pcb或者基板上的可用面积的限制。这也可以通过选择具有低介电常数和低耗散因数(损耗角正切)的pcb材料来降低。因此尽管存在用于以降低总线速度或者损害操作总线参数的输出来减小此错误的方式,但是这些方式都承受着缺点。

此部分给出用于应对后台接口中的这些信号完整性问题以及还解决控制器和存储器器件之间的处理变化的动态优化技术。除了处理变化之外,存储器系统在其之下操作的电压设置和温度也可能变化。静态方案不解决处理、电压和温度中的变化,因此可能不是最佳方法。

此部分使用伪回送方式来动态地优化存储器系统的后台性能,包括具有多个存储器数据总线的存储器系统的后台性能。这可以通过使用预定的数据样式通过于在之前的部分中所述类似的分类机制来完成。示例实施例将使用伪随机位样式(prbs)。动态优化数据总线设置可以帮助最大化控制器和存储器器件之间的数据传输的可靠性。这可以允许存储器系统来区别传输错误与在存储器器件上引起的错误。这些方面对于装配有高速后台存储器接口和多个存储器数据总线的产品是特别有利的。

在pcb或者包装基板上布线(trace)具有有限的带宽,这导致码间干扰(isi)。isi的影响依赖于边缘速率(上升时间和下降时间)、数据速率和数据样式。在数字通信中,伪随机位样式(prbs)样式有时用于开发数据链接的最差情况isi影响,因为这样的样式在频率分量方面是丰富的。prbs样式是具有与随机序列类似的属性并且用于测量电学数据链接中的传输的数据的抖动和眼图遮罩(eyemask)的重复样式。prbs通常表示为2x-1prbs或者prbs-x,其中幂(x)表示用于创建该样式的移位寄存器长度。希望使用实用的最长的prbs样式,因为其对信号链接施加了最大的压力并且提供了随机数据的更好的表示。

尽管示例实施例使用伪随机位样式,但是可以使用其他样式,只要系统知道被使用以便可以与在回送处理的结尾处回来的数据相比较的数据集的样式即可。示例实施例使用prbs样式,因为其类似随机的字符可以最大化信号链接的isi影响。除了prbs样式之外,在本发明中可以利用其它类型的数据样式,并且每个各自的样式可以产生不同的结果。

prbs样式可以应用于并行后台接口中的每个信号链接。理想地,尽管样式将无限地重复,这在存储器系统中实际上不可行,但是如果通过使用短的样式将该样式重复足够的次数,这应该不是主要缺点。例如,如果nand快闪存储器的页大小是16kb,具有127b的样式长度的prbs-7样式可以在8位数据总线的每个信号链接上完整地重复129次。剩余位(16384b-127bx129=1b)构成prbs-7的不完全复制本。在结尾处的此不完全的prbs样式应该不会导致严重问题,因为大多数传输连接影响已经由完整的prbs样式的129次循环而解决。

图15可以用于例示在后台接口中的回送方法的操作。在图15中,左侧是流程,右侧示意性例示相应的控制器-存储器交互。在701,控制器关闭其数据加扰和错误校正编码(ecc)能力,其中在右侧,这由被打x的这些要素示出。从而,从控制器传送出的以及传输到控制器的所有数据都处于其原始格式而没有任何加扰或校正。在703,控制器向存储器器件发送命令,告知存储器器件将要接收的数据存储并保持在其数据锁存检测器中而不将它们传送到存储器单元。也就是,不将此数据集编程到存储器单元中。在705,控制器将数据总线结构中的每个数据链接上的已知的数据样式(在此是独立的prbs-7样式)发送到存储器器件。存储器器件将该数据保持在该数据锁存寄存器中直到其变满。

在707,控制器向存储器器件发送命令,告知存储器器件将存储在其数据锁存寄存器中的数据连续地发送回,直到控制器指示其停止。也就是,在数据锁存寄存器已经清空了每个链接上的所有的16kb的数据之后,其将开始再次发送回相同的数据。因此,prbs-7样式在数据总线的每个信号链接上重复。示例实施例使用prbs样式传送的连续操作的原因是由信号链接引入的位错误是概率事件。跨过链接传送的数据量越大,作为固有连接性能的统计测量的传输位错误率(ber)越准确并且越有代表性。在709,控制器接收在数据总线的每个信号链接上的重复的prbs-7样式(或者其他所使用的数据样式)。

在711,控控制器将接收的数据与发送的数据样式(在此是标准的prbs-7样式)相比较并将任何错误报告为传输ber。然后控制器向存储器器件发送命令以停止发送prbs-7样式(713)并且退出伪回送模式(715)。

图16对应于图15的块705,其中控制器向存储器器件发送数据样式,图17对应于块709。在这两幅图上,示出了总线结构811的一个具体例子,其中在上部示出了几条线用于命令和控制信号,并且在下面示出了多条数据线。再次,cle=命令锁存使能,ale=地址锁存使能,re=读使能,we=写使能,dqs=数据选通,并且存在八条输入/输出线(io0-io7)。为了此讨论的目的简化了这些框图,在存储器控制器上仅示出了ecc块805和prbs产生器803,在存储器器件831上仅表示出数据寄存器reg833,其他元件(包括831上的非易失性存储器阵列)未明确示出。当控制器801向图16中的存储器器件831发送数据样式时,写使能信号和是精选同将被赋值并且每条信号线将携带数据样式。再次,每条io线携带独立的样式。再次,这些是prbs的所有各个复制本,但是可以具有不同的定时,如图中其相对偏移所示。在存储器831上,数据样式然后在接收时被存储在寄存器833中,在图17中,数据从寄存器833跨过数据结构811被发送回到控制器801,以便读使能信号和数据选通被赋值。一旦数据样式已经完成往返(而不被写到非易失性存储器中)并且回到控制器801上,就可以针对其原始形式对其进行检查并且查看发生了多少讹误。尽管总线结构811是具有多条信号线的并行总线接口,但是这仅仅是具体例子,并且其他总线结构可以用于传输信道,比如串行数据布置。

存储器系统的性能由数据传输率(总线操作频率)相对于功耗来特征化,功耗直接与数据总线电压有关。通过变化数据总线的电压幅值(由驱动数据总线的器件的i/o确定)和数据传输率,可以创建作为模拟图(shmooplot)的3维表示,传输率沿x轴绘出,数据总线电压沿y轴绘出,并且传输ber沿z轴绘出。再次,数据传输率可以指当数据从控制器电路传送到存储器电路时在写操作期间应用的数据传输率,如图15的705中那样,或者指当数据从存储器传送到控制器时在读操作期间应用的数据传输率,如709中那样。可以在各个输出驱动阻抗(驱动强度)和温度时测量在这样的模拟图中表示的数据已覆盖最差情况、通常情形和最佳情形。因此,对于给定量的可允许传输错误,最佳操作点可以确定在诸如数据总线电压、输出驱动阻抗、转换速率、线电容、传输速率、温度和功耗的参数的给定组合处。模拟图的例子示出在图18中。

图18是示出对于存储器系统的具体例子的在固定的输出驱动阻抗、转换速率、线电容和温度时传输ber相对数据总线电压和数据传输速率的模拟图的例子。数据总线电压是垂直轴上的vdd,并且传输速率在水平轴上。传输ber的量由图上的颜色表示,对照(key)在图的右侧。在此黑白表示中,非常低和非常高的错误量的表示看起来相同,但是主图中的较低错误区域朝向浅色划分区域的左侧,而较高错误区域朝向右侧。基于此类数据,对于允许的传输数据量,可以选择操作参数的组合,其中像通常那样,这将通常涉及折衷。例如,如果希望量的可允许ber是10-5,如果最大速度是主要考虑,则vdd将取为大约3.1-3.2v,允许大约170-180mb/s的传输率。如果功耗是更重要的考虑,则可以使用更低的vdd值,比如2.8v,然后对于相同的传输ber将允许大约150mb/s的传输率。如果基于例如存储器已经循环了多少或者只是对ber的组合的贡献正接近系统的最大能力,分配给传输信号的ber被重新分配了不同的值,则然后可以基于此数据由控制器调整总线系统的操作参数。

从而,在通过捕捉在模拟图中表示的在各个输出驱动阻抗、转换速率、线电容、温度等处的数据而校准系统之后,存储器系统可以根据各种情况而操作。例如,给出希望的传输ber,则存储器系统查找并选择最佳数据总线电压、数据传输速率、输出驱动阻抗和转换速率。(来自校准处理的此数据可以保持在非易失性存储器中或者控制器电路中的存储器空间(ram)中。)例如,其可以选择得到希望的传输ber的最低的数据总线电压、最高的数据传输率以及最到的输出驱动阻抗。在另一例子中,给出数据总线电压、数据传输速率、输出驱动阻抗、转换速率、线电容和温度的具体组合,存储器系统直到起可以预期什么样的ber。或者,存储器系统可以选择平衡所有因素——数据总线电压、数据传输速率、输出驱动强度和传输ber——的操作条件。

因为控制器和存储器器件中的i/o缓冲器的设计可能不同,所以存储器系统的最佳读和写性能可以分别确定。除了由于不同的存储器系统设计得到的差别之外,由于工艺变化以及操作条件的差别,对于相同器件的各个例子也将存在差别。为了解决器件老化、操作条件的改变等等,也可以重复校准处理。例如,可以在测试时在器件出厂之前进行初始校准,然后控制器可以周期地或者响应于诸如期间循环、错误结果、操作条件的明显改变等等而重新校准系统。因此,除了分配给传输信号的总错误的比例的改变之外,对于给定分配的相应操作参数可以动态地改变。

如上所述,可以在读和写处理两者期间优化性能。回到图15,对于存储器读期间的性能优化,在705,系统加满正被写到存储器器件的数据锁存寄存器中的数据样式的传输速率以最大化该数据样式的传送的完整性。例如,以10mhz的传输速率,将花费1.6ms来填满16kb的数据锁存寄存器。在709和711,系统测量在读操作期间引起的传输ber,其中存储器器件的i/o是驱动器,并且控制器是接收器。然后模拟图数据示出存储器器件的i/o电压和读频率之间的关系。

对于在存储器写期间的性能优化,在705,该系统变化电压和正被写到存储器器件的数据锁存寄存器中的数据样式的传输速率。在709,系统然后将减慢从存储器器件到控制器的数据的传输速率以防止通过信号链接注入另外的位错误。然后测量的传输ber是在705中的写操作期间引起的传输ber。从而模拟图数据江表示控制器的i/o电压和写频率之间的关系。

到目前为止,已经在其中这仅仅是控制器电路和单个存储器电路之间的单个总线的上下文中给出了在此给出的各个方面。但是,存储器系统可以包括具有多个数据拓扑的多个器件,并且当存在多条总线时,这些总线之间的交互可能导致另外的错误源。在此的技术可以提供将后台接口中的数据总线内的每个信号链接偏移到指定分辨率、例如100ps的能力。可以通过驱动器或者接收器中的控制器或者存储器引入这样的偏移能力。向数据总线中引入偏移允许系统补偿pcb或者包装基板中的信号线的长度不匹配。引入偏移可以降低后台接口中的近端和远端串扰的影响,从而降低传输ber。涉及两种类型的串扰:存储器数据总线内串扰;以及存储器数据总线间串扰。这样的串扰导致数据总线中的抖动。通常的存储器系统使用由驱动器发送的时钟来在相同的时刻在并行数据总线中采样每个单独的信号。因此,数据总线中的每个信号上的抖动的增加将导致传输ber的增加。通过偏移跨过多条存储器数据总线的数据以便它们相对彼此不对准,可以降低存储器数据总线间串扰。

图19是例示起总线结构使用多条存储器数据总线的存储器系统中的此串扰的框图。该存储器系统包括控制器901和通过各自的总线911-1、911-2、911-3、911-4连接到控制器的多个、在此是四个存储器器件931-1、931-2、932-3、931-4。对于每条总线911,它们将具有如详细示出为io1到iox的一条或多条io线。入职前,这些各条总线可以是并行、串行或者按这些组合而操作用于传送数据的各种数量的io线。这类的多总线布置通常实现在ssd类型器件中(例如参见美国专利7,376,034、美国专利7,763,339或者论文“ahighperformancecontrollerfornandflash-basedsolidsatedisk(nssd)”park等人,samsung,非易失性半导体研讨会,2006,ieee,nvsmw2000,第21,vol.no.,17-20页,2006年2月12-16日)以便改进性能,但是也在一些存储卡和其他的存储器系统中发现这类的多总线布置。除了给定总线的io线之间的这类存储器数据总线内串扰之外,现在在不同的字线上还将存在存储器数据总线间串扰信号。当与上述的prbs样式和伪回送模式的使用组合时,给出数据总线电压、传输速率、温度、输出驱动阻抗、转换速率、线电容和功耗的某个组合,可以确定产生最少串扰并从而产生最低传输ber的最佳偏移。

在此给出的各个方面提供了在存在各种信号完整性问题之下优化后台接口性能的最低成本解决方案。通过将“未使用的”ecc能力动态地分配给传输处理,如所述可以提高性能。如上所述,一些存储器系统使用开发多状态存储器器件的属性的一种类型的“强”ecc,在此情况下,被传送用于使用传输信道的错误校正能力可能不能以1对1的方式传送。还应该注意,尽管存储器系统并入ecc来补偿数据错误,但是对于命令通常没有相同的配备,并且存储器器件通常将不接受有错误的命令,以便尽管可能在数据传输中有意地允许错误,对于命令也将不存在这种情况。从而,尽管提供这些机制可能允许对于数据的更高的传输速率,但是可以并入对于传输速率(或其它参数)的较慢的、更安全的设置以便对于控制信号不引起错误。

结论

为了例示和描述的目的已经给出本发明的以上详细描述。不意图穷尽或者将本发明限制到所公开的精确形式。根据以上教导,许多修改和变化是可能的。选取所述实施例以便最佳地说明本发明的原理及其实际应用,由此使得本领域技术人员能够在各个实施例中以及通过适合于意欲的具体使用的各种修改最佳地利用本发明。意图本发明的范围由附于此的权利要求限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1