首页> 中国专利> 输出NAND接口的NAND闪存控制器

输出NAND接口的NAND闪存控制器

摘要

公开了一种制作在控制器管芯上的用于在主机设备和闪存设备(例如,NAND闪存设备)之间连接的NAND控制器(130)。在一些实施例中,当前公开的NAND控制器包括制作在控制器管芯上的电子电路,控制器管芯与闪存管芯是不同的,第一接口(例如主机类型接口,如NAND接口)(144,142)用于在电子电路和闪存设备之间连接,和第二接口(例如闪存类型接口)用于在控制器和主机设备之间连接,其中第二接口是NAND接口。根据一些实施例,第一接口是管芯间接口。根据一些实施例,第一接口是NAND接口。包括当前公开的NAND控制器的系统也被公开。组合上述系统和用于利用NAND控制器读写数据的方法也被公开。

著录项

  • 公开/公告号CN101366182A

    专利类型发明专利

  • 公开/公告日2009-02-11

    原文格式PDF

  • 申请/专利权人 晟碟以色列有限公司;

    申请/专利号CN200680035631.0

  • 发明设计人 M·拉瑟;

    申请日2006-09-20

  • 分类号H03M13/00(20060101);G11C29/00(20060101);G06F11/00(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人赵冰

  • 地址 以色列卡法萨巴

  • 入库时间 2023-12-17 21:27:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    专利权的转移 IPC(主分类):H03M13/00 变更前: 变更后: 登记生效日:20150429 申请日:20060920

    专利申请权、专利权的转移

  • 2012-04-18

    授权

    授权

  • 2009-04-08

    实质审查的生效

    实质审查的生效

  • 2009-02-11

    公开

    公开

说明书

技术领域

本发明涉及一种NAND(与非)闪存控制器,其向主计算机输出与标准NAND(与非)闪存设备输出的接口相同类型的接口。

背景技术

单比特与多比特闪存单元

多年来,闪存设备已经成为众所周知的。通常,闪存设备中的每个闪存单元存储一比特的信息。通过支持存储器单元的两种状态是传统的在闪存单元中存储比特的方法。一种状态代表逻辑“0”,另外一种状态代表逻辑“1”。

在闪存单元中,所述两种状态通过具有位于单元通道(连接单元晶体管的源极和漏极元件之处)上的浮动门,以及表示在浮动门中存储的电荷数量的有效状态实现。通常,一种状态是在浮动门中有零电荷并且在单元被擦除后为未写入状态(通常定义为表示“1”的状态),另一种状态是在浮动门中含有一定数量的负电荷(通常定义为表示“0”的状态)。在门中具有负电荷使单元晶体管的临界电压(也就是为了能够使晶体管导电而加载于晶体管控制门的电压)增高。可以通过检查单元的临界电压读取到所存储的比特。如果临界电压处于较高状态,则比特值为0,如果临界电压位于较低状态则比特值为1。实际上没有必要精确地读取单元的临界电压。所需要的就是正确地识别单元当前正处于两种状态中的哪一种。为了这个目的,必须将本单元的临界电压与一个处于两种状态之间的参考电压相比较,从而判断本单元的临界电压是否低于或高于参考值。

图1A(现有技术)图示了工作原理。特别地,图1A示出了大量单元的临界电压的分布情况。因为闪存设备中的单元在其特性以及性能上并不是完全相同(例如,由于杂质的浓度的不同,或者硅结构的缺陷),对所有的单元应用同样的编程操作不会使所有的单元具有完全相同的临界电压。作为替代的是,临界电压的分布如图1A所示。存储值为“1”的单元通常具有负的临界电压,使得大多数单元的临界电压接近图1A的左波峰(标注为1)的中心电压,而少数单元的临界电压高于或低于左波峰的中心电压。类似地,存储值为“0”的单元通常具有正的临界电压,使得大多数单元的临界电压接近图1A的右波峰(标注为0)的中心电压,而少数单元的临界电压高于或低于右波峰的中心电压。

近年来,市场上出现了一种使用“多级单元”(MLC)的新的闪存设备。术语“多级单元”容易被误解,因为如上文所述,每单元单比特的闪存使用多级,也就是两级。因此,术语“单比特单元”(SBC)在下文中用于指两级存储单元,而术语“多比特单元”(MBC)在下文中用于指多于两级的、也就是每单元多于一个比特的存储单元。现在最普通的MBC闪存是每单元两个比特的,因此以下的举例使用这样的MBC存储器。然而,应当理解的是本发明同样适用于支持每单元超过两个比特的闪存设备。单个的存储两比特信息的MBC单元处于四种不同状态中的一种状态。因为单元的状态由单元的临界电压表示,MBC单元支持用于单元的临界电压的四种不同的有效范围。图1B(现有技术)显示了典型的每单元两比特的MBC单元的临界电压的分布。正如所预料的,图1B有四个波峰,每个波峰对应于一个状态。至于SBC,每个状态实际上是一个电压的范围而不是一个单独的电压。当读取单元内容时,单元的临界电压必须在明确的电压范围内被正确地识别。MBC闪存设备的现有技术的实例参见Harari的专利号为US5434825的美国专利申请,包括其全部内容作为参考,其实际上如同在这里完全被阐述。

设计用于MBC操作的、例如处于四种状态的单元通常可如两种状态的SBC单元操作。例如,其实际上如同在这里完全被阐述的,引用的Conley等人在申请号为6,426,893的美国专利作为参考,其公开了在同样设备中使用MBC与SBC模式,并且选择设备的某一部分在MBC模式下进行最高密度的操作,而其他部分在SBC模式下使用以提供更好的性能。

MBC设备提供重要的成本优势。一个每单元两比特的MBC设备只需要一个类似容量的SBC设备的硅晶片一半的空间。然而,使用MBC闪存存在缺点。MBC存储器的平均读写时间长于SBC存储器,导致了比较差的性能。并且,MBC的可靠性也低于SBC。MBC的临界电压范围之间的差别比SBC要小很多。从而,临界电压的干扰(例如,所存储的电荷的泄露导致临界电压的偏移或者来自操作相邻单元的干扰)在SBC中是可以忽略的,因为两种状态的区别非常大,但却可以导致一个MBC单元从一种状态转移至另一种状态,将导致错误的比特。最终的结果是,从数据保持时间或者设备的擦、写循环的耐久性的方面来说,MBC单元的性能规格比较差。

NAND(与非)闪存设备

闪存设备通常分为NOR(或非)设备和NAND(与非)设备,名字来源于单独的存储单元在单元序列中的互联方式。NOR设备是随机访问的-访问NOR闪存设备的主计算机可以提供给该设备在它的地址指针上的任意地址,并且立即取回存储于设备数据指针上的那个地址中的数据。这与SRAM或者EPROM存储器的操作很相似。另一方面,NAND设备并非随机访问的而是顺序访问的。它不可能以上述用于NOR的方式去访问任何随机地址-而是主机必须写入字节序列到设备中,其定义了所要求的指令的类型(如,读,写,擦除,等等)和用于那个指令的地址。地址识别页面(单个操作中可以写入的闪存设备的最小的块)或者块(单个操作中可以擦除的闪存设备的最小的块),而并非单独的字节或单词。读和写指令序列的确含有单个字节或者单词的地址,但是事实上NAND闪存经常从存储单元中读出完整的页面或者把完整的页面写入到存储单元中。当页面的数据从队列中被读出并放入至设备内的缓冲区之后,主机可以通过使用选通信号连续地时钟输出它们一个接一个地访问数据字节或单词。

由于NAND设备的非随机访问,其不能被用于直接从闪存中运行代码。这与支持直接代码执行(通常称为“在适当的位置执行(eXecution in place)”或者“XIP”)的NOR设备相反。因此NOR设备是通常用于代码存储的。然而,NAND设备的优势使其作为数据存储非常有用。NAND设备比同样比特容量的NOR设备便宜,或者说-在同样的成本下NAND设备比NOR设备提供更多的存储的比特。而且,NAND设备的写入和擦除的性能比NOR设备快许多。这些优点使得NAND闪存技术成为用于存储数据的技术选择。

NAND接口协议

典型的SBC NAND设备是提供2G比特存储的东芝(Toshiba)TC58NVG1S3B。典型的MBC NAND设备是提供4G比特存储的东芝(Toshiba)TC58NVG2D4B。引用两种设备的数据单作为参考,其实际上如同在这里完全被阐述。

正如可以从前面提到的数据单中看出的,那两种NAND设备有着类似的接口。这些NAND设备利用同样的电信号进行NAND闪存设备和主设备之间的命令谐调和数据传输。那些信号包括数据线和一些控制信号——ALE(允许地址锁存),CLE(允许命令锁存),WE\(允许写入)等等。SBC设备和MBC设备在它们的性能上并不是完全相同的——用于写MBC页所需要的时间远远多于用于写SBC页的时间。然而,两种设备使用的电信号和它们的功能是相同的。现有技术中这种接口协议的类型是“NAND接口”。尽管到目前为止,标准化组织还没有对“NAND接口协议”制定正式地标准化,但NAND闪存设备的生产商们都遵循同样的协议以支持NAND闪存功能的基本子集。这样做就使用户在将NAND设备应用到他们的电子产品时可以使用任何生厂商的NAND设备,而不用因为使用个别厂家的设备修改他们的硬件或软件。需要注意的是,即使NAND厂商提供超出此功能基本子集的额外功能,为了与其他厂商使用的协议相兼容也要确保提供了基本功能,至少是某种程度上。

本申请中的术语“NAND接口协议”(或者是简写“NAND接口”)是指发起设备和相应设备之间的接口协议,即使它不与定时参数完全兼容,不与NAND设备支持的其他命令完全兼容,或者包括NAND设备不支持的额外命令,但它一般都遵循主机设备和NAND闪存设备之间的基本读、写和擦除操作的协议。换句话说,术语“NAND接口”是指任何接口协议,其所使用的传输字节序列与当接口连接于东芝(Toshiba)TC58NVG1S3B NAND设备时用于读(操作码00H)、写(操作码80H)和擦除(操作码60H)的字节序列功能相同,并且也使用与上述NAND设备的CLE、ALE、CE、WE和RE信号功能相同的控制信号。

需要注意的是,“NAND接口协议”不是相对称的。因此,经常是由主机设备发起于NAND接口上的交互,而不是由闪存设备。

如果给定设备包括用于支持NAND接口协议(例如,利用NAND接口协议与其他设备交互)所需的元件(例如,硬件,软件,固件或者它们的任何形式的结合),那么给定设备(例如,控制器,闪存设备,主机设备,等等)被称为包含,包括或者具有一个“NAND接口”。

一个给定设备(如,控制器设备)的接口(例如,NAND接口或者与其他协议相关联的接口)可以是个“主机端接口”(如给定设备适于利用主机端接口与主机设备进行交互)或者给定设备的接口可以是“闪存设备端接口”(如,给定设备适于利用闪存设备端接口与闪存设备进行交互)。术语“闪存设备端接口”、“闪设备端接口”和“闪端接口”在此互相交换地使用。

这些术语(即“主机端接口”和“闪存设备端接口”)不能与术语“主机类型接口”和“闪存类型接口”相混淆,在这里使用该术语以区分NAND接口协议的两侧,因为这个协议不是对称性的。此外,由于经常是主机发起交互,我们需要注意,如果一个给定设备包括用于实现NAND接口协议的主机端(即,用于标识一个NAND主机,和发起NAND协议交互)的必要的硬件和/或者软件,则该设备被称为具有“主机类型接口”。类似地,由于闪存设备从来不会发起交互,我们需要注意,如果一个给定设备包括用于实现NAND接口协议的闪存端(即用于表示NAND闪存设备)的必要的硬件和/或者软件,则该设备被称为具有“闪存类型接口”。

通常,“主机类型接口”(即那些扮演主机角色的)是“闪存设备端接口”(即他们与闪存设备或者效仿闪存设备的硬件进行交互)而“闪存类型接口”(即那些扮演闪存设备角色的)通常是“主机端接口”(即他们与主机设备或者效仿主机设备的硬件进行交互)。在这种应用中的术语“主机设备”(或者简写为“主机”)是指任何具有处理能力并且有与闪存设备进行接口的能力的设备。主机设备可以是个人电脑、PDA、移动电话、游戏控制台等等。

通常,NAND设备相对较难接口和用其来工作。一个原因是如上述的用于访问它们的相对复杂的协议(与NOR设备相比较而言)。另一个难题是当从NAND设备读取的数据存在误差。相反,NOR设备可以被假设总是返回正确的数据。NAND设备与生俱来的不可靠性需要利用误差侦查码(EDC)和误差纠正码(ECC)。

SBC NAND闪存的制造商通常建议用户应用误差纠正码,其能够纠正每个含有512字节数据的页面中1比特误差。但是MBC NAND闪存设备数据单通常建议应用能够修正每个含有512字节数据的页面中的4个比特误差的ECC。对于一个大小是2048字节的页面,如同在上述NSND设备中提及的(即的“大区块设备”),建议是在页面的512字节的每个区域中应用误差纠正。在此应用中,术语“N-比特ECC”指能够在512字节数据中修正N比特误差的ECC方案,而不考虑512字节是一页的大小、少于一页、还是多于一页。

NAND控制器

由于NAND设备的复杂性,通常会使用“NAND控制器”用于控制电子系统中的NAND设备的使用。确实可以通过没有插入NAND控制器的主机设备直接操作和利用NAND设备,而且存在如此操作的系统。但是,这种结构存在很多弊病。第一,主机必须单独地操作NAND设备的每个控制信号(例如,CLE或者ALE),这对于主机来说繁琐并且耗时。第二,支持EDC和ECC给主机带来沉重的负担-主机必须为每个页面的写操作计算奇偶比特,并且执行误差检测计算(以及一些误差纠正计算)。所有的这些使得这样的“无控制器”架构相对缓慢和低效。

使用NAND控制器显著地简化当利用NAND设备时主机的任务。处理器与控制器通过更方便使用的协议进行交互——写入页面的请求可以作为单个跟随着地址和数据的命令代码发出,而无需去为复杂的控制行序列和NAND命令码烦恼。控制器然后将主机控制协议转换为等价的NAND协议序列,当主机无需去做其他的任务的时候(或者就是等待着NAND操作结束,如果是这样要求的)。

现有技术中有些观点是关于NAND控制器在系统中所处何处。第一种方法如图2所示。图中NAND控制器114物理上备置于主机设备110A的主机处理器112A中。如果主机处理器112A是通过单管芯实现的,则控制器114被集成于同一管芯上。例如在一些由德克萨斯(Texas)工厂生产和销售的OMAP处理器的情形中。利用这种结构的制造系统,主机处理器与NAND控制器通常使用一些私有协议进行交互。因为交互位于主机处理器中,使用标准协议没有益处。

第二种现有技术方法如图3A-3B中所示。图中NAND控制器116是个分离的物理元件,处于主机110B的主机处理器112B和NAND设备120A之间。例如一些便携USB闪存设备(UFDs)中的情形,例如DiskOnKey制造的并由M-Systems闪存磁碟先锋销售的产品,其中有NAND控制器116被封装于UFD中,并且使用设备端NAND接口124与在一端的NAND设备120A进行交互并且与在另一端的主机处理器112B进行交互(使用利用USB协议主机端的USB接口122)。在使用这种结构的系统中,主机处理器通常使用标准协议例如USB或ATA与NAND控制器进行交互,由于交互是位于处理器外的,使用为其他目的由处理器支持的标准协议就非常方便。

需要注意的是,根据之前定义的术语,NAND接口124是一个“闪存设备端NAND接口”(即适用于与NAND闪存设备120A交互)但是同时,NAND接口124也是主机类型NAND接口(即适用于发起NAND协议交互)。

第三个现有技术方法如图4所示。图中NAND控制器118物理上置于NAND设备120B中。闪存设备和控制器甚至可以被封装于同一管芯上。例如在一些由MDOC存储设备制造厂生产由M-system闪存磁碟先锋销售的以及在由三星电子销售及生产的OneNAND设备的情形中。在使用这种结构架构的系统中,主机处理器112B通常与NAND控制器使用像USB的标准协议或者使用像上述MOC和OneNAND例子情形中的半标准协议进行交互。

我们可以从以上推论出现有技术中独立的NAND控制器(既不与NAND设备集成也不与主机处理器集成)通常在它的主机端具有一些标准的接口,在其闪存设备端具有NAND接口(例如,参见图3B)。实际上,在市场上可以找到输出多种接口类型-USB,SD(安全数码),MMC(多媒体卡)以及更多的NAND控制器。但是目前还找不到向主机输出NAND接口的独立的NAND控制器。实际上,有理由期望——没有内建NAND支持并且为此目的需要外部控制器的主机处理器,通常不具有NAND接口并且不能直接与输出NAND接口的设备相连,因此,控制器具有主机端NAND接口没有用处。另一方面,具有内建NAND支持的主机处理器通常还包括内建的NAND控制器,并且可以与NAND设备直接相连,因此不需要一个外部NAND控制器。

以上描述的现有技术遗留了一个未解决的问题。如图2所示,假设存在集成内建NAND控制器和NAND接口的主机处理器。该内建的控制器被设计与在某种可靠级别上的NAND设备一起工作。这是因为NAND控制器提供一定级别的误差检测和纠正,因此不能支持低可靠性的NAND设备。例如,具有一个比特ECC的NAND控制器可以与其生产厂家指定的仅要求该误差纠正级别的SBC NAND设备一起工作。这种控制器不能与每单元两个比特的MBCNAND设备一起工作,因为它们需要4个比特ECC,因此一些数据可能不会被正确地读入处理器中。同样,提供4比特ECC的NAND控制器可以与当前的每单元两比特的MBC NAND一起工作,但是不能与很可能要求更高级别ECC容量的下一代MBC NAND设备一起工作。

这是因为未来的MBC NAND设备被期望具有比当前的MBC设备更低的可靠性和更强的ECC容量。减少可靠性和增加误差率的原因有两部分:

a.制造NAND设备的流程的持续的改进以生产更小型的存储单元。几年前NAND设备使用0.4微米流程,当前它们使用90纳米和70纳米技术,并且这种缩小的趋势可期望还在继续。随着存储单元尺寸的缩小带来的是低可靠性,因为小尺寸使得单元对在以前是不重要的物理作用和现象更加敏感。

b.当每个单元有多于两个比特每单元的MBC单元成为在商业上可用时,其肯定比SBC单元和每单元两比特MBC单元具有更低的可靠性。大量的状态必须由阈值电压区代表,这意味着状态之间的余量更小,即使更小的干扰和偏移导致数据读取的错误。当对ECC的要求从1比特ECC增长至4比特ECC时,在对SLC和每单元两比特MBC的比较中这种影响已经被证明。

现在回到带有内建NAND控制器114的主机处理器112A,假定控制器114只支持1比特ECC。那么这个处理器也许不能够使用MBC NAND,即使由于MBC NAND的低价格这是非常值得的。假如MBC NAND被连接到处理器内建的控制器的NAND接口,这可能是唯一连接到处理器的方法,那么MBCNAND给内建控制器有限容量的ECC产生了太多的误差以至于不能修正。

类似地,假如内建控制器支持4比特ECC,其可以利用SLC和每单元两比特MBC NAND。但是当在市场上出现有着低可靠性的NAND设备时,处理器不能从它们的低价格中受益,因为内建控制器不能够提供所要求的误差修正级别。

因此我们可以了解,每当使用包括设计成支持上一代NAND设备的内建NAND控制器的主机处理器的时候,现有技术的状态不能够为从新NAND设备的成本优势中受益的问题提供一个很好的解决方案。

对提供具有机械NAND控制器的主机设备和连续几代NAND闪存设备之间的兼容性的设备和方法有一个持续的需求。

发明内容

可以通过本发明的几个方面来满足前述的需求。

现在第一次公开用于连接主机设备和制作在闪存管芯上的闪存设备(例如,NAND闪存设备)的控制器。当前公开的控制器包括(a)制作在控制器管芯上的电子电路,控制器的管芯与闪存管芯不同,(b)用于在电子电路和闪存设备之间连接(例如,NAND闪存设备)第一接口(例如主机类型接口),和(c)用于在控制器和主机设备之间连接第二接口(例如闪存类型接口),其中第二接口是NAND接口。

根据一些实施例,第一接口是管芯之间接口,

根据一些实施例,第一接口是NAND接口,

根据一些实施例,当前公开的控制器还包括(d)用于提供从第一和第二接口中的一个接收的数据的误差修正的误差修正模型。

根据一些实施例,本发明公开的控制器还包括(d)至少一个附加的用于与主机设备交互的主机端接口。

现在第一次公开一种数据存储系统,包括(a)制造在闪存管芯上的闪存设备,以及(b)当前公开的NAND控制器,其中控制器通过第一接口可以有效地与闪存设备通信。

根据一些实施例,当前公开的系统还包括(c)共同的封装,其中闪存设备和控制器都在这个共同的封装中提供。

根据一些实施例,当前公开的系统还包括(c)分开的各自的封装,其中每个闪存设备和控制器都在各自的封装中提供。

根据一些实施例,当前公开的系统还包括(c)印刷电路板,其上安装闪存设备和控制器,其中闪存管芯直接把安装在印刷电路板上而不需要封装。

根据一些实施例,当前公开的系统可以还包括(c)印刷电路板,其上安装有闪存设备和控制器,其中控制器管芯直接安装在印刷电路板上而不需要封装。

现在第一次公开一种数据存储系统,包括(a)主机设备,(b)制作在闪存管芯上的闪存设备,以及(c)当前公开的NAND控制器可以通过第一接口有效地与闪存设备通信,并通过第二接口与主机设备通信。

现在公开一种从主机设备写入数据的方法,包括以下步骤:

(a)提供制作在闪存管芯上的闪存设备和制作在控制器管芯上的控制器,闪存管芯不同控制器管芯,(b)根据NAND接口协议从主机设备向控制器发布写命令,以及(c)根据NAND接口协议从控制器向闪存设备发布写命令。

根据一些实施例,当前公开的方法还包括(d)通过控制器进行奇偶比特计算的步骤。

现在公开一种向主机设备读出数据的方法,包括以下步骤:

(a)提供制作在闪存管芯上的闪存设备和制作在控制器管芯上的控制器,闪存管芯不同于控制器管芯,(b)根据NAND接口协议从主机设备向控制器发布读命令,并且(c)根据NAND接口协议从控制器向闪存设备发送读命令。

根据一些实施例,当前公开的方法还包括以下步骤(d)把数据从闪存设备中取回到控制器,(e)把与所取回的数据相关的奇偶比特从闪存设备中取回到控制器,(f)根据所取回的奇偶比特修正所取回的数据,从而生成修正过的数据,以及(g)把修正过的数据从控制器中取回到主机设备。

现在第一次公开一种创建数据存储系统的方法,其包括以下步骤(a)提供制作在闪存管芯上的闪存设备,(b)提供当前公开的NAND控制器,以及(c)在闪存设备中配置闪存控制器使得闪存控制器通过第一接口能有效地与闪存设备进行通信。

根据一些实施例,当前公开的方法还包括以下步骤(d)在单个封装中封装闪存控制器和闪存设备。

根据一些实施例,闪存设备和闪存控制器位于分开的各自的封装中,并且这种配置包括彼此连接各自的封装。

根据一些实施例,当前公开的方法还包括以下步骤(d)安装闪存设备和控制器到印刷电路板上,其中安装包括直接将闪存设备管芯安装到印刷电路板上而不经过封装。

根据一些实施例,当前公开的方法还包括以下步骤(d)安装闪存设备和控制器到印刷电路板上,其中安装包括直接将控制器管芯冲压到印刷电路板上而不经过封装。

根据一些实施例,当前公开的方法还包括以下步骤(d)将数据存储系统配置到主机设备上使得闪存控制器通过第二接口能有效地与主机设备进行通信。

从下面的详细描述以及例子中,这些和其它的实施例将更加明显。

附图说明

图1A-1B提供大量存储单元的阈值电压的分布的图示说明(现有技术)。

图2提供了包含主机设备和NAND闪存设备的现有技术的系统的框图。

图3A提供了包含主机设备、NAND控制器和NAND闪存设备的现有技术的系统的框图。

图3B提供了包含具有主机端USB接口和闪存设备端NAND接口的现有技术的NAND控制器的框图。

图4提供了包含主机机设备和NAND闪存设备的现有技术的系统的框图。

图5A提供了根据本发明的示例性实施例的包含在主机端的NAND接口和在闪存设备端的NAND接口的NAND控制器的框图。

图5B提供了根据本发明示例性实施例的,包括主机设备、图5A的NAND控制器以及NAND闪存设备的系统的框图。

图6A描述了图5B中描述的示例性系统的示例性管芯配置。

图6B描述了图5B中描述的示例性系统的示例性配置,其中NAND控制器和NAND闪存设备位于一个单独的多管芯封装中。

图6C描述了图5B中描述的示例性系统的示例性配置,其中NAND控制器和NAND闪存设备处于分开的各自的封装中。

图7示出了描述其中主机通过扩展NAND控制器将数据写入NAND存储设备的方法的流程图。

图8示出了描述其中主机通过扩展NAND控制器将数据从NAND存储设备读出的方法的流程图。

具体实施方式

现在,本发明以特别的示例性实施例的方式进行描述。可以理解的是本发明不限于这里公开的示例性实施例。也可以理解的是,并不是如任何特别的一条附加的权利要求中要求的控制器、包括控制器的系统以及所描述的读取的方法和所描述的数据的每一个特征都是对于实现本发明必要的。描述设备的各种各样的元素和特征,以使发明完整。也可以理解的是贯穿整个公开,每当流程或方法被示出或被描述时,可以任何次序或者同步的方式来执行方法的步骤,除非根据上下文很清楚地得知一个步骤依赖于其他先执行的步骤。

本发明第一次公开了一种新型的NAND控制器,其特征在于输出给主机端的接口是NAND接口。在一些实施例中,本发明公开的控制器在闪存设备两端都有NAND接口,其中控制器相对NAND设备扮演着主机的角色,而在主机设备端,其中控制器相对主机扮演NAND设备的角色。

为了本公开的目的,“NAND闪存设备”被定义为电子电路,包括多个NAND闪存单元以及用于在NAND闪存单元中存储数据的任何的必要的控制电路(例如:提供闪存类型接口的电路),其用于在闪存单元中存储数据。需要注意“NAND闪存设备”不是必须有其自己专有的处所,其可以与其他“设备”例如控制器安置在一起。在一些实例中,“NAND闪存设备”直接安装在印刷电路板上而不经过任何的封装。

此外,在一些实施例中,控制器包括误差修正的能力,其可以充分修正NAND设备低可靠性的许多错误。由于这些误差可以由控制器修正,控制器可以向主机呈示完全没有误差的闪存设备,或者有极少数量的误差-少到足以由主机的内置的NAND控制器的误差修正能力来处理。

注意图5A,其提供了根据本发明的一些实施例的控制器的示意性的框图。控制器130包括用于连接到NAND闪存设备的闪存设备端NAND接口142,。此外,需要注意闪存设备端NAND接口142也是主机类型NAND接口(即,适合于在NAND接口上发起交互行为,并且向NAND闪存设备呈现一个主机设备)。

控制器130还包括用于连接到支持NAND接口协议的主设备的主机端的NAND接口144。这个主机端的NAND接口也是闪存类型的NAND接口(例如,控制器130适用于为主机呈现一个NAND闪存存储设备)。控制器可以选择性地包括一个或多个附加的主机端接口146,用于利用非NAND接口连接控制器到主机,例如USB或者MMC接口。

如图5A所示,控制器还包括ECC模块132,用于检测和纠正通过设备端接口142从NAND设备取回的数据中的所有或者一些误差。ECC模块132可以包括硬件、软件、固件或者它们的组合。在NAND控制器130向主机输出无误差NAND设备的情况下,ECC模块132可以纠正所有的误差。可选择地,ECC模块132可以只修正通过闪存设备端NAND接口142从NAND设备取回的数据中发现的一些误差。

在一个例子中,NAND设备可以具有需要4比特ECC的可靠性,并且ECC模块142纠正了足够多的误差以把数据的可靠性提高到一个使得主机的内建NAND控制器中的1比特ECC模块可以处理该数据的级别。

需要注意NAND控制器130还可以选择性地包括用于提供其他功能的一个或多个模块134(例如包括硬件、软件、固件或者它们的组合),如加密功能或者地址映射,其把从主机取回的逻辑闪存地址映射到发送到闪存设备的物理闪存地址。

注意图5B,其示出了图5A中描述的包括外部NAND控制器130(例如从主机设备分离出来的控制器)的示例性系统的示意性框图。通过设备端的NAND接口142,外部NAND控制器130与NAND闪存设备120A连接。通过主机端NAND接口144,NAND控制器130与主机设备110A连接。

需要注意的是,外部控制器130接口通过两个NAND接口142和144的连接是不同的。NAND接口协议是不对称的——存在发起方,其发起交互(根据之前定义术语的“主机类”),和响应方,其只响应发起信号(根据之前定义术语的“闪存类”)。

利用设备端的NAND接口142,外部NAND控制器130担当NAND接口协议的主机类部分,并且NAND设备130担当NAND接口协议的闪存类部分。利用主机端接口144,外部控制器130担当NAND接口协议的闪存类的部分,并且主机110A担当NAND接口协议中的主机类部分。

注意图6A,其示出了图5A中描述的示例性系统的管芯的示例性配置。这样,需要注意的是,NAND控制器130包括制作在控制器管芯131上的电子电路135,而NAND闪存设备120A包括制作在闪存管芯133上的电子电路137,控制器管芯131和闪存管芯133是截然不同的管芯。

需要注意的是,如图5A中描述的在NAND控制器130中的元件(即ECC模块132、闪存类NAND接口144、主机类NAND接口)至少一部分是由位于控制器管芯上的控制器电子电路135实现的。

位于控制器电子电路135和闪存电路137之间的接口142是“管芯内”接口。如在此处用到的,“管芯间接口”(例如管芯间NAND接口)能够有效地与两个处于不同管芯上的电子电路的不同的单元之间连接(如,为电子电路的不同的单元提供必要的物理以及逻辑构造以例如利用一个或多个特殊的协议进行互相通信)。这样,管芯间接口包括必要的物理元件(衰减器,输出输入驱动器等等),用于在处于分开的管芯上的电子电路的两个不同单元之间连接。

根据一些实施例,管芯间接口可以在制作在两个不同的以共同封装包封装中的管芯上的电子电路间连接。这个例子在图6B中说明,其中NAND控制器130和NAND闪存设备120A都位于共同的多管芯封装包139中。

可选地,管芯间接口可以在制作在以不同的封装包封装的两个不同的管芯的电子电路之间连接(例如,每个管芯都封装在其自己的封装包中)。这个例子在图6C说明,其中NAND控制器130和NAND闪存设备120A位于分开的各自的封装包中。特别地,NAND控制器130处于控制器封装包141中,而NAND闪存设备120A处于闪存封装包143中。这样,如图6C中所说明的,接口142是“封装包间接口”。

需要注意的是,处于共同封装包中的管芯(例如,如图6A中所示)以及处于分开的封装包中的管芯(例如,如图6B中所示)并非唯一可能的配置。

这样,可选地,在一些实例中,管芯间接口可以在制作在两个不同管芯上的电子电路之间连接,其中一个或者两个都根本没有封装。例如,在许多应用中,由于需要保存空间,主板上提供了(如安装,例如直接安装)完全未经封装的存储管芯。这样在一个例子中,需要注意是,在新一代电话的存储卡上,存储管芯经常完全未经封装就安装在主板上。如此处所用的,“直接安装”到印刷电路板上的管芯是事先未经封装就安装到印刷电路板上的。

图7示出了描述主机110A(例如在设备中包括NAND控制器114的主机)通过外部NAND控制器130向NAND存储设备120A写数据(例如一页数据)的方法的流程图。如图7所示,主机110A发布写命令410给外部控制器130(例如利用NAND接口协议发布的写命令,包括命令字节、地址字节和数据字节)。主机110A不必得知发布命令给控制器130的事实,并可以假定主机正与它有能力处理的标准NAND闪存存储设备的类型连接。

NAND控制器130接收到主机发布的写命令(例如通过主机端NAND接口144)。在接收到了写命令之后,控制器计算与数据字节相对应的ECC奇偶比特420(例如利用ECC模块132),并且发布写命令430给NAND设备(例如,通过闪存设备一侧接口142)。再一次,根据NAND接口协议发布命令,包括含有主机数据字节和相应的ECC奇偶比特的命令字节、地址字节和数据字节。NAND闪存设备不必得知其间接通过NAND控制器130而不是直接从主机设备110A中接收命令。在步骤440,NAND闪存设备120A存储接收到的数据字节的非易失性存储单元,这样实现了主机110A的请求。

图8示出描述其中主机110A(例如在设备中包括NAND控制器114的主机)通过外部NAND控制器130从NAND存储设备120A中读数据(例如数据页)的方法的流程图。这样主机110A发布读命令410到外部控制器130(例如利用NAND接口协议发布的读命令,包括命令字节和地址字节)。如同上面的写命令一样,主机110A不必得知它发布命令给外部控制器130的事实,并可以假定主机正与它有能力处理的标准NAND设备类型连接。

外部NAND控制器130接收主机发布的读命令(例如通过主机端的NAND接口144)。在接收了读命令之后,外部控制器130发布读命令520(例如,通过设备端NAND接口142)给NAND设备120A。还是根据NAND接口协议发布命令,包括命令字节和地址字节。在步骤530,NAND闪存设备120A从非易失性单元序列中取回所请求的数据,其中当存储数据时,主机数据伴随着计算出来的ECC奇偶比特。在步骤540,将数据字节以及伴随的奇偶比特发送给外部NAND控制器。该发送根据NAND接口协议通过一系列由控制器生成的一系列该选通脉冲完成,每个依次读入控制器一个字节或者一个字(依据使用的NAND接口是8比特宽度还是16比特宽度)。在步骤550,外部NAND控制器130利用奇偶比特纠正数据字节中的误差(例如通过ECC模块132)。在步骤560,所修正的数据字节通过主机端的NAND接口144被发送给主机。发送还是根据NAND接口协议通过一系列由主机生成的读选通脉冲完成。主机110A现在具有了原来在闪存中存储的相同的数据字节。

现在可以看到,当利用集成设计为支持上一代NAND设备的内建NAND控制器的主机处理器时,本发明允许从新的NAND设备的低成本优势中受益。

在本申请的说明书和权利要求中,每个动词“包含”“包括”和“具有”以及其结合被用来表明动词的对象或者对象们并不必是成员、组件、元件或动词的主题或者主题们的部分的完整列表。

本发明通过实施例的详细描述来说明,其作为示例而不是去限制发明的范围。描述的实施例包括不同的特征,但不要求它们在发明的所有实施例中都要出现。本发明中的一些实施例只利用一些特征或特征的可能的组合。已经描述了本发明的实施例的变化,本领域技术人员可以想到,包括在描述的实施例中提及特征的不同组合的本发明的实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号