具有错误校正的复合半导体存储设备的制作方法

文档序号:6738339阅读:183来源:国知局
专利名称:具有错误校正的复合半导体存储设备的制作方法
具有错误校正的复合半导体存储设备
背景技术
诸如数字音频/视频播放器、蜂窝电话、便携式通用串行总线(USB)驱动和固态驱动(SSD)之类的消费者电子设备的数据存储需要已经明显增长了。结合了闪存(一般称为闪存设备)的非易失性半导体存储设备能够以相对低的成本来满足该密度需求。目前,有两种主要类型的闪存,即NOR闪存和NAND闪存,而且在这两种闪存中,NAND闪存已经被证明尤其受欢迎。然而,随着闪存设备变得更密集和更便宜,期望它们提供的存储量进一步增加。该期望继而施加了进一步的压力以便以甚至更低的成本来使得这些设备更为密集。

发明内容
根据本发明的一个方面,提供一种复合半导体存储设备,包括多个非易失性存储 设备;以及接口设备,其连接到所述多个非易失性存储设备并用于连接到存储控制器,该接口设备包括纠错编码(ECC)引擎。根据本发明的另一方面,提供一种存储系统,包括存储控制器;以及至少一个复合半导体存储设备,其被配置为由所述存储控制器写入和读取并包括内置的纠错编码(ECC)引擎。根据本发明的另一方面,提供一种存储系统,包括复合半导体存储设备,其包括多个非易失性存储设备;以及存储控制器,其连接到至少一个复合半导体存储设备,用于向所述复合半导体存储设备发布读取和写入命令以促使数据被写入所述非易失性存储设备中的特定一些非易失性存储设备或者被从所述非易失性存储设备中的特定一些非易失性存储设备中读取;从存储控制器的角度,该复合半导体存储设备提供数据的无错误写入和读取。在阅读了下面结合附图对本发明具体实施方式
的描述之后,本发明的其他方面和特征对本领域普通技术人员而言将变得显而易见。


现在将参照附图、仅通过示例的方式描述本发明的实施方式,其中图I是示出了根据非限制性实施方式的非易失性存储系统的框图;图2是示出了根据非限制性实施方式的使用单个复合半导体存储设备的非易失性存储系统的框图;图3-5是示出了根据非限制性实施方式的使用多个复合半导体存储设备的非易失性存储系统的框图;图6是示出了根据非限制性实施方式的复合半导体存储设备的某些部件的框图;图7A、7B、8A和SB描绘了根据非限制性实施方式的复合半导体存储设备的截面视图;图9是示出了 NAND闪存功能块的框图10是示出了 NAND闪存单元阵列结构的框图;图11是示出了 NAND闪存块结构的框图;图12是示出了 NAND闪存页结构的框图;图13是示出了 NAND闪存中的基于页的读取操作的框图;图14是示出了 NAND闪存中的基于页的编程操作的框图;图15是示出了 NAND闪存中的基于块的擦除操作的框图;图16是示出了根据非限制性实施方式的复合半导体存储设备的内部功能架构的框图,其中多个非易失性半导体存储设备以多分支(multi-drop)的方式互连;
图17是示出了图16中的到多个非易失性半导体存储设备的多分支互连的更多细节的框图;图18是示出了根据非限制性实施方式的复合半导体存储设备的内部功能架构的框图,其中多个非易失性存储设备使用专用接口通道进行互连;图19是示出了根据非限制性实施方式的复合半导体存储设备的内部功能架构的框图,其中多个非易失性存储设备使用基于组的接口通道进行互连;图20、21和22是示出了根据非限制性实施方式的复合半导体存储设备的不同内部配置的框图;图23是示出了纠错编码过程的框图;图24是示出了纠错解码过程的框图;图25-26突出显示了根据非限制性实施方式的被写入接口设备的数据与由接口设备写入非易失性存储设备的数据之间的差异;以及图27是根据非限制性实施方式的存储控制器的功能框图。
具体实施例方式图I示出了根据非限制性实施方式的非易失性存储系统100的框图。非易失性存储系统100包括存储控制器102,该存储控制器102用于经由通信链路104与主系统或处理器98通信。非易失性存储系统100还包括经由通信链路108连接到存储控制器102的至少一个复合半导体存储设备106。存储控制器102可以是闪存控制器。在非限制性实施方式中,如图2所示,在非易失性存储系统100中可以存在单个复合半导体存储设备106。在其他非限制性实施方式中,如图3、4和5所示,在非易失性存储系统100中可以存在多个半导体存储设备106。虽然示出了四个(4)半导体存储设备106,但是应当理解,对能够被包括在非易失性存储系统100中的复合半导体设备106的数量没有特别的限制。在在非易失性存储系统100中有多个复合半导体设备106的实施方式中,通信链路108可以采取各种形式。特别地,根据图3中所示的非限制性实施方式,通信链路108可以包括公共接口通道(例如,多分支并行总线)302。另外,专用芯片使能信号304能够被提供给各个复合半导体存储设备106。能够通过断言(assert)相应的专用芯片使能信号304来选择单独的复合半导体存储设备106。根据图4中所示的非限制性实施方式,通信链路108能够在存储控制器102与复合半导体存储设备106之间应用多个专用接口通道406。在这种情况中,每个复合半导体存储设备106具有其自己的专用接口通道406。根据图5中所示的非限制性实施方式,通信链路108能够在存储控制器102与复合半导体存储设备106之间应用多个专用接口通道506。在这种情况中,每个公共接口通道506由一组两个(2)或更多个复合半导体存储设备106所共享。在非限制性实施方式中并参照图6,复合半导体存储设备106包括多个非易失性存储设备602A、602B、602C、602D和接口设备604。虽然示出了四个(4)非易失性存储设备602A、602B、602C、602D,但是应当理解,对可以连接到接口设备604的非易失性存储设备602A、602B、602C、602D的数量没有特别限制。通过使用接口通道来实现接口设备604与非易失性存储设备602A、602B、602C、602D之间的通信,这将在后面参照图16-19来描述。接口设备604能够包括纠错编码(ECC)引擎606。ECC引擎606允许复合存储设备106呈现向非易失性存储设备602A、602B、602C、602D的无错误数据写入(如从存储控制器102的角度所判断的)以及从非易失性存储设备602A、602B、602C、602D的无错误数据读取(如从存储 控制器102的角度所判断的)。参照图7A、7B、8A和8B,接口设备604和非易失性存储设备602A、602B、602C、602D能够被封装在单个壳体704中,诸如多芯片封装(MCP)。具体地,非易失性存储设备602A、602B、602C、602D —起堆叠到基底706上。在图7A和8A中,接口设备604被示为放置在非易失性存储设备602D的顶部,而在图7B和8B中,接口设备604被示为位于非易失性存储设备的堆叠的底部。在不背离本发明的范围的情况下,其他配置也是可能的。还示出了附设到基底706上以允许复合半导体存储设备106与其外部的其他部件之间的电连接的焊盘708。也提供在接口设备604与非易失性存储设备602A、602B、602C、602D中的每个非易失性存储设备之间的连接。而且,在图7A和7B的实施方式中,通过基底706在接口设备604与非易失性存储设备602A、602B、602C、602D中的每个非易失性存储设备之间建立引线键合702。相反地,在图8A和8B的实施方式中,在接口设备604与非易失性存储设备602A、602B、602C、602D中的每个非易失性存储设备之间建立直接连接802。将接口设备604与非易失性存储设备602A、602B、602C、602D中的每个非易失性存储设备互连的其他方式也是可能的。而且,虽然示出了堆叠的管芯(die)配置,但是这不应被解释为是限制性的。非易失件存储设备602A、602B、602C、602D非易失性存储设备602A、602B、602C、602D可以是NAND闪存设备、NOR闪存设备或相变存储设备,这仅给出了几个非限制性的可能性。非易失性存储设备602A、602B、602C、602D能够异步或同步地操作,这仅给出了几个非限制性的可能性。而且,非易失性存储设备602A、602B、602C、602D能够作为单数据速率(SDR)设备或双数据速率(DDR)设备进行操作,这仅给出了几个非限制性的可能性。在特定的非限制性实施方式中,非易失性存储设备602A、602B、602C、602D能够遵守工业规范,诸如三星的针对产品K9GAG08U0D、K9LBG08U1D、K9HCG08U5D的16Gb多级别单元NAND闪存规范(其在能够从三星电子获得的名称为“2Gx8Bit/4Gx8Bit/8Gx8BitNAND Flash Memory”的文档中描述),其提供了设备操作和时序细节且通过引用而被合并到本文。当然,可获得的闪存的其他制备或模型能够用作非易失性存储设备602A、602B、602C、602D。图9概念性地示出了被实现为NAND闪存设备的非易失性存储设备(诸如,在该示例中,设备602A)的各种功能部件。设备602A使用下面的端口和信号
输入/输出(I/O)端口(1/00至1/07):1/0端口被用于传输去向和来自设备602A的地址、命令和输入/输出数据。特别地,要被写入设备602A的数据到达I/O端口 1/00至1/07并在被存储到存储单元阵列902之前被临时放置在一组全局缓冲器916中。要从设备602A中读取的数据被从存储单元阵列902中提取,并在在I/O端口 1/00至1/07上被释放之前被放置在这组全局缓冲器916中。·写使能端口(WE#):该WE#端口接收WE#信号,该WE#信号用于控制从I/O端口的数据的获取;·命令锁存使能(CLE)端口该CLE端口接收CLE信号,该CLE信号用于控制操作模式命令向命令寄存器910的加载。在CLE信号被断言时,该命令在WE#信号的上升沿被从I/O端口锁存到命令寄存器910中;·地址锁存使能(ALE)端口 该ALE端口接收ALE信号,该ALE信号用于控制地址信息向内部地址寄存器912的加载。在ALE信号被断言时,该地址信息在WE#信号的上升沿被从I/O端口锁存到地址寄存器912中; ·准备就绪/忙(R/B#)端口该R/B#端口是开漏引脚而且输出R/B#信号由设备602用来指示其操作状态。具体地,该R/B#信号指示该设备是准备就绪还是忙。设备602A中的R/B#电路914将在设备602A处于忙状态(诸如在读取、编程和擦除操作期间)中时解除断言(de-assert)该R/B#信号。在操作完成之后,该R/B#电路914将重新断言R/B#信号,从而指示设备602A处于准备就绪状态中。·芯片使能(CE#)端口 该CE#端口接收CE#信号。当CE#信号在设备602A处于准备就绪状态中(当R/B#信号被断言时)被解除断言时,设备602A进入低功率待机模式。然而,当设备602A处于忙状态中时(当R/B#信号被解除断言时),诸如在读取、编程或擦除操作期间,该CE#信号被忽略。也就是说,如果设备602A处于忙状态,则设备602A不会进入待机模式,而不管CE#信号是否被解除断言。·读使能(RE#)端口 该RE#端口接收用于控制串行数据输出的RE#信号。具体地,在RE#信号的下降沿之后(即当RE#信号被断言时),将由设备602A输出的数据放置在I/O端口 1/00至1/07上。内部列地址计数器也在RE#信号的下降沿处被递增(地址=地址+1 )。·写保护(WP#)端口 该WP#端口接收用于避免设备602A意外编程或擦除的WP#信号。内部电压调节器(高电压生成器918,其在读取、编程和擦除操作期间提供必要的高电压和参考电压)在WP#信号被断言时被复位。WP#信号能够用于在输入信号无效的加电/断电序列期间保护存储在存储单元阵列902中的数据。图10示出了存储单元阵列902的单元阵列结构,该单元阵列结构包括η个可擦除块1002-0至1002-(η-I)。每个块被再分成m个可编程页1102-0至1102-(m_l),如图11所示。继而,每个页被再分成(j+k)个8比特的字节,如图12所示。具体地,每页的字节被划分成j字节的数据存储区域(数据字段1202)和k字节的数据存储区域(备用字段1204)。因此,存储单元阵列902的总大小是η个块,这对应于(n*m)个页并因此等于(n*m* (j+k))个字节。备用字段1204能够用于错误管理功能(例如,存储错误控制编码奇偶校验位)。而且,依赖于实施方式,每一页和/或块的元数据(诸如擦除周期的数量、地址信息、坏块信息等)能够存储在数据字段1202中或备用字段1204中。NAND闪存中的备用字段1204的所需要的大小取决于页大小、工艺技术、每单元比特的数量(即每单元一个比特、每单元两个比特、每单元三个比特等等)和误码率。早期时代的NAND闪存中的页大小对于数据字段1202而言是512字节以及对于备用字段1204而言是16字节。随着工艺技术的演进,页大小已经增长了,这允许实现更大的存储密度。然而,该增长也带来了更高的误码率,因此需要使用更强的纠错编码。当前的页大小的示例对于数据字段1202而言是8K字节以及对于备用字段1204而言是436字节。而且,数据字段1202和备用字段1204的大小在闪存的制造商之间也会不同。然而,本领域技术人员应当意识到,本发明的实施方式并没有对数据字段1202的绝对或相对大小或对备用字段1204施加特定的限制。 再次参照图9,除了存储单元阵列902之外,设备602A的存储器核还包括行解码器920、读出放大器/页缓冲器904和列解码器922。行解码器920用于为读取操作或编程操作选择页,或者用于为擦除操作选择块。更具体地,在读取操作期间,存储单元阵列902中所选页上的数据被感测并锁存到读出放大器/页缓冲器904中。之后,通过列解码器922和全局缓冲器916顺序地读出存储在读出放大器/页缓冲器904中的数据。在编程操作期间,来自全局缓冲器916的输入数据经由列解码器922被顺序地加载到读出放大器/页缓冲器904中。被锁存到读出放大器/页缓冲器904中的输入数据之后被编程到存储单元阵列902的所选页中。设备602A还包括状态寄存器928,该状态寄存器在读取、编程或擦除操作期间跟踪设备602A的状态。该状态能够被编码以反映操作是已经通过还是失败以及设备602A是忙还是准备就绪。设备602A进一步包括控制电路930,该控制电路是具有状态机的中央单元,该状态机用于在各种操作模式期间控制设备602A。例如,前述的命令寄存器910解码来自全局缓冲器916的输入命令,并且解码后的命令被输入到控制电路930。另外,设备602A包括控制缓冲器932,该控制缓冲器基于输入端口即CE#、CLE、ALE、WE#、RE#和WP#端口上的当前信号组合来确定当前的操作模式(诸如命令输入、地址输入、数据输入、数据输出和状态输出)。而且,设备602A包括前述的地址寄存器912,该地址寄存器存储多路复用后的列地址和行地址。该地址由地址寄存器解复用并被传输到行预解码器934和列预解码器936中。在操作时,读取、编程和擦除操作由命令驱动。读取和编程操作以页为基础执行,而擦除操作以块为基础执行。对于本示例,假设j=4096(=4K)、k=218、m=128和n=4096。因此,页、块、平面(plane)和设备的容量如下给出I 页=(4K+218)字节;I 块=128 页=(4Κ+218)字节 χ128= (512Κ+27. 25Κ)字节;I 平面=2048 块=(512Κ+27· 25Κ)字节 x2048= (8G+436M)比特;I 设备=2 平面=(8G+436M)比特 *2= (16G+872M)比特。现在考虑以页为基础(每页具有(4K+218)字节=4314字节的大小)执行的读取操作。该操作在将经由公共I/o引脚(1/00至1/07)到达的读取命令锁存到命令寄存器910之后开始,然后将经由公共I/o引脚(1/00至1/07)到达的地址锁存到地址寄存器912。参照图13,所识别页中的4314字节的数据被感测并在少于tR (数据传输时间)的时间内被传输到读出放大器/页缓冲器904中。一旦4314字节的数据被感测并从存储单元阵列902中的所选页传输到读出放大器/页缓冲器904,读出放大器/页缓冲器904中的数据就能够从设备602A中顺序地读取。接下来,考虑也是以页为基础执行的编程操作。该操作在将经由公共I/O引脚(I/00至1/07)到达的编程命令锁存到命令寄存器910之后开始,然后将经由公共I/O引脚(I/00至1/07)到达的地址锁存到地址寄存器912,再然后将经由公共I/O引脚(1/00至1/07)到达的4314字节的数据锁存到读出放大器/页缓冲器904。参照图14,这4314字节的数据在少于tPROG (页编程时间)的时间内被编程到存储单元阵列902的所选页中。现在考虑以块为基础执行的擦除操作。该操作在将经由公共I/O引脚(1/00至I/07)到达的擦除命令锁存到命令寄存器910之后开始,然后将经由公共I/O引脚(1/00至I/07)到达的地址锁存到地址寄存器912。参照图15,在少于tBERS (块擦除时间)的时间内擦除了(512K+27. 25K)字节的数据。 与设各602A、602B、602C、602D 的通信现在参照图16和17,复合半导体存储设备106能够采用公共内部接口通道1602来支持在接口设备604与非易失性存储设备602A、602B、602C、602D之间的通信。公共接口通道1602可以被实现为用于所有信号CLE、ALE、WE#、RE#、WP#、R/B#和公共I/O引脚1/00至1/07的多分支并行总线。另外,专用芯片使能信号CE#_1604A、CE#_1604B、CE#_1604C、CE#_1604D被分别提供给非易失性存储设备602A、602B、602C、602D,从而允许选择要在其上执行读取、编程或擦除操作的单独非易失性存储设备。例如,通过断言CE#_1604A能够选择和访问非易失性半导体设备602A。通过解除断言CE#_1604B、CE#_1604C和CE#_1604D,剩余设备(即设备602B、602C、602D)没有被选择,这使得来自存储控制器102的任意输入(命令、地址或数据)被忽略。而且,未被选择的设备的输出信号处于高阻(即Hi-Z)状态。参照图18,复合半导体存储设备106能够采用多个专用接口通道1802AU802B、1802C、1802D,它们分别连接到非易失性存储设备602A、602B、602C、602D。参照图19,复合半导体存储设备106能够采用多个专用接口通道1902、1904来支持接口设备604与非易失性存储设备602A、602B、602C、602D之间的通信。在这种情况中,第一组两个非易失性存储设备(例如,设备602A和602B)共享公共接口通道1902,而第二组两个非易失性存储设备(例如,设备602C、602D)共享公共接口通道1904。然而,应当理解,组的数量(以及因此公共接口通道的数量)以及每个公共接口通道的非易失性存储设备的数量并不受到特别限制。图20示出了根据非限制性实施方式的接口设备604的某些功能元件。根据该非限制性实施方式,接口设备604可以包括外部接口块2004,该外部接口块通过之前描述的通信链路108与存储控制器102双向连接。除了其他功能之外,外部接口块2004缓冲/生成来自/用于存储控制器102的控制信号,以及来自/去向存储控制器102的输入/输出数据。外部接口块2004可以具有被表征为异步NAND闪存、异步双数据速率(DDR)或同步DDR的行为或功能,这仅举出了几个非限制性的可能性。接口设备604还可以包括内部接口块2002,该内部接口块通过一个或多个接口通道(即1602或1802A、1802B、1802C、1802D或1902、1904)与非易失性存储设备602A、602B、602C、602D双向连接,如之前已经描述的。除了其他功能之外,内部接口块2002缓冲/生成来自/用于非易失性存储设备602A、602B、602C、602D的控制信号以及来自/去向存储控制器102的输入/输出。内部接口块2002可以具有被表征为异步NAND闪存、异步双数据速率(DDR)或同步DDR的行为或功能,这仅举出了几个非限制性的可能性。另外,接口设备604包括前述的ECC引擎606。该ECC引擎606在接收自存储控制器102的数据被写入非易失性存储设备602A、602B、602C、602D中的任意一个中之前提供该数据的纠错编码,以及在从非易失性存储设备602A、602B、602C、602D中的任意一者中读取的数据被发送给存储控制器102之前提供该数据的纠错解码。另外,接口设备604可以包括缓冲存储器2006(诸如静态随机存取存储器-SRAM),该缓冲存储器在ECC编码之前临时存储来自存储控制器102的输入数据并在ECC解码之后向存储控制器102输出数据。
接口设备604还包括控制块和时序控制信号生成器2008,其用于生成包括控制外部接口块2004、内部接口块2002、缓冲存储器2006和ECC引擎606所需的时序控制信号在内的各种控制信号。图20的实施方式的变形如图21所示。这里,ECC引擎被实现为第一 ECC引擎2102和第二 ECC引擎2104,它们被配置为并行操作以分担错误控制编码和解码工作量。应当意识到,能够被实现以组合地执行ECC引擎606的总工作量的ECC引擎2102、2104的数量不受到特别限制。虽然在该非限制性实施方式中将ECC引擎2102、2104中的每个ECC引擎分配给非易失性存储设备602A、602B、602C、602D的各个预定子集是可能的,但是这不是必需的。特别地,借助于经由公共接口通道1602提供至所有非易失性存储设备602A、602B、602C、602D的访问的内部接口块2002,能够提供在需要时将ECC引擎2102、2104中的每个引擎动态地分配给非易失性存储设备602A、602B、602C、602D中的不同的一个设备的灵活性。在图21的实施方式中,还应注意,缓冲存储器被实现为与第一 ECC引擎2102相关联的第一存储贮存器2106和与第二 ECC引擎2104相关联的第二存储贮存器2108。然而,使用在ECC引擎2102、2104之间共享的单个更大的存储贮存器也是可行的。图20的实施方式的第二变形如图22所示。这里,ECC引擎被再次实现为第一 ECC引擎2102和第二 ECC引擎2104,它们被配置为并行操作以分担错误控制编码和解码工作量。而且,在图21的实施方式中,应注意,缓冲存储器被实现为与第一 ECC引擎2102相关联的第一存储贮存器2106和与第二 ECC引擎2104相关联的第二存储贮存器2108。再次,能够被实现以组合地执行ECC引擎606的总工作量的ECC引擎2102的数量不受到特别限制,而且如上文所述,使用在ECC引擎2102、2104之间共享的单个更大的存储贮存器是可行的。在该实施方式中,每个ECC引擎2102、2104被分配给非易失性存储设备602A、602B、602C、602D的各个预定子集。该分配由内部接口块的配置确定,所述内部接口块被实现为第一内部接口块2202 (通过公共接口通道1902与非易失性存储设备602A、602B通信)和第二内部接口块2204 (通过公共接口通道1904与非易失性存储设备602C、602D通信)。ECC 引擎 606
在编程操作期间,ECC引擎606生成ECC控制数据,诸如对应于来自存储控制器102的输入数据的奇偶校验数据(下文中称为奇偶校验位),将该输入数据与ECC奇偶校验数据相组合并之后将两者编程到非易失性存储设备602A、602B、602C、602D中的所选择的一个。更具体地,参照图23且仅通过非限制性示例的方式,示出了使用BCH ECC码和4kB页大小的输入数据的ECC编码过程。ECC引擎606配备有奇偶校验生成器2304。该奇偶校验生成器2304使用以例如非易失性存储设备602A中的目标页为目的的4kB输入数据2302来生成奇偶校验数据2306。该奇偶校验数据2306可以由输入数据2302的片段(例如4kB中的1KB)或通过使用整个输入数据2302生成(请见Robert Pierce,“Mr. NAND’ s WildRide: Warning一Surprises Ahead”, Denali Software Inc.,2009 年,其通过引用合并到本申请中)。输入数据2302被编程到目标页的数据字段1202中,而奇偶校验数据2306被编 程到目标页的备用字段1204中。在读取操作期间,ECC引擎606从非易失性存储设备602A、602B、602C、602D中所选的一个中读取具有奇偶校验数据的输出数据,并之后执行ECC操作以生成与该输出数据相对应的ECC奇偶校验数据。ECC引擎606之后将所提取的和所生成的ECC奇偶校验数据进行比较,并且如果需要的话,在将该输出数据提供给存储控制器102之前对其进行校正。更具体地,参照图24且仅通过非限制性示例的方式,示出了使用BCH ECC码和4kB页大小的输出数据的ECC解码过程。ECC引擎606配备有校正子生成器2406、伯利坎普(Berlekamp)块2408、Chien块2410和数据校正器2412。校正子生成器2406使用从例如非易失性存储设备602A中读出的4Kb的输出数据2402和奇偶校验数据2404来计算并生成校正子,以确定是否存在着任何错误。这些校正子被输入伯利坎普块2408中,该伯利坎普块确定错误定位多项式和错误的数量。Chien块2410找到由伯利坎普块2408输出的错误定位多项式中的多项式根(其是错误位置)。最后,如果基于Chien块2410的输出而确实找到任意错误,则输出数据2402由数据校正器块2412进行校正。数据校正器块2412的输出因此是之后被提供给存储控制器102的校正后数据2414。简单起见,上述的实施方式已经假设经历纠错编码和解码的输入数据和输出数据占据了整个数据字段1202。在期望包括元数据的情况下,该元数据能够被存储在备用字段1204中。在可替换的实施方式中,元数据能够占据数据字段1202的一部分,而且经历纠错编码/解码的输入数据/输出数据能够占据数据字段1202的不包括元数据的那部分。应当意识到,上面描述的ECC操作被简化且不以任何方式进行限制。本领域技术人员将理解,存在着多种可能的方式来在读取数据和向非易失性存储设备中写入数据的环境中实现纠错编码和解码,而且这些可能的方式能够在本发明的环境中使用。纠错编码(ECC)算法校正强度(能够被校正的比特错误的数量)依赖于用于校正这些错误的ECC算法(这些算法可以以硬件或软件实现)。简单的汉明码能够校正单个比特错误。里德-索罗门码能够校正更多的错误且被广泛使用。BCH (Bose, Ray-Chaudhuri, Hocquenghem)码也能够校正多个比特错误且因它们优于里德-索罗门码的改进的效率而广受欢迎。还存在其他非限制性示例,诸如低密度奇偶校验码(LDPC)、turbo码、格雷(Golay)码以及各种其他的并置、卷积和块代码。从存储控制器102的角度来看,并参照图25中的非限制性实施方式,最终的页格式(即在存储控制器102与复合存储设备106之间交换的数据的大小)能够仅包括数据字段1202中的数据,而不管备用字段1204中的数据。也就是说,存储控制器102并不向备用字段1204写入数据或从备用字段1204读取数据。相反地,是接口设备604使用由ECC引擎606生成的奇偶校验位来填充备用字段1204。在这种实施方式中,备用字段1204对用户而言是隐藏的(而且对于存储控制器102而言实际也是如此),而且存储控制器102并不需要使自己关心纠错编码或解码。这允许存储控制器102在具有禁用的ECC功能或在根本没有任何ECC功能的情况下运行。在上面描述的图25的实施方式中,应当意识到,或者元数据没有由存储控制器102提供给复合半导体设备106,或者这些元数据已经被嵌入到了数据字段1202中。还存在着在数据字段1202外部单独提供元数据的实施方式。具体地,在图26中所示的非限制性实施方式中,最终的页格式(即在存储控制器102与复合存储设备106之间交换的数据的大小)能够不仅包括数据字段1202中的数据,而且包括一个小的添加的备用字段2602 (例如,16或20字节,但不对此进行限制),该小的添加的备用字段2602小于备用字段1204的 大小。所添加的备用字段2602能够用于存储针对页的元数据(诸如擦除周期的数量、地址 信息、坏块信息等)。在该实施方式中,接口设备604向备用字段1204中填充(i)由ECC引擎606生成的奇偶校验位;以及(ii )来自备用字段2602的元数据。在这种实施方式中,仅被添加的备用字段2602对用户是可见的,而备用字段1204仍然保持对用户以及对存储控制器102而言是隐藏的。这里再次地,存储控制器102并不需要使其自己考虑纠错编码或解码,从而允许存储控制器102在具有禁用的ECC功能的情况下或在根本没有任意ECC功能的情况下运行。存储控制器102现在参照图27,其示出了根据非限制性实施方式的存储控制器102的功能框图。存储控制器102包括晶体2702,该晶体2702提供被馈送给时钟生成器与控制块2704的基础时钟信号。时钟生成器与控制块2704向中央处理单元(CPU) 2706、设备管理块2710和物理层收发器2740 (在该示例中,为串行ΑΤΑ PHY)提供各种时钟信号。CPU 2706 (其可以是微处理器控制器)通过公共总线2742与其他子系统通信。另外,可以提供包含随机存取存储器(RAM)和只读存储器(ROM)的存储贮存器2708 ;RAM被用作缓冲存储器以及ROM存储可由CPU 2706执行的计算机可读代码(指令)。设备管理块2710包括物理接口 2714和文件与存储管理块2712。通过物理接口2714可以访问至少一个复合半导体存储设备106。文件与存储管理块2712提供逻辑到物理地址的转换并应用耗损均衡算法。在一个非限制性实施方式中,设备管理块2710包括ECC (纠错码)引擎2716,在接收到来自CPU 2706的禁用信号2718时,该ECC引擎2716能够被可控地禁用。在另一非限制性实施方式中,ECC引擎2716以硬件方式被禁用。在再一非限制性实施方式中,设备存储控制器102不包括ECC引擎或纠错电路。如果提供了 ECC引擎2716,则该ECC引擎2716能够检查和校正从至少一个复合半导体存储设备106访问的数据。应当意识到,日益更大数量的复合半导体存储设备106到存储控制器102的连接并不改变存储控制器102的ECC处理负载。这是因为ECC需求在复合半导体存储设备106之间分布。实际上,由于接口设备604中的ECC引擎606确保了非易失性存储设备602A、602B、602C、602D的无错误性能(从存储控制器102的角度来判断),因此根本不需要存储控制器102来执行任何纠错编码或解码。而且,接口设备604能够被设计成针对并行的多个读取和/或写入来并行地执行ECC,从而导致潜在改善的存储访问时间。另外,由于每个复合半导体存储设备106具有其自己的ECC引擎606,所以存储控制器102在某一时刻并不限制于单个读取或写入。相反地,存储控制器102能够发布两个(或可能更多的)命令来促使与这些命令相关的数据(例如针对每个命令的读取数据或写入数据)同时流过存储控制器102。而且,应当意识到,由于ECC引擎606位于接口设备604中,所以将由接口设备604的设计发展来跟踪演进的ECC需求,但是同时同一存储控制器102能够继续被使用。有利地,存储控制器的同一存货的再次使用能够潜在地持续多个不同代的闪存设备而且还能够跨越多个制造商和工艺技术。另外,备用字段1204大小的改变(其能够由演进的ECC需求驱动)不会对存储控制器102的设计产生影响。 另外,从用户的角度,隐藏备用字段1204简化了在设计和使用存储控制器102时开发者的努力。而且,如果备用字段2602由用户使用,则其能够保持小的且具有恒定大小,从而存储用于页管理的必要元数据(例如,擦除周期的数量、地址信息、坏块信息等)。在上面描述的实施方式中,出于简单起见,设备元件和电路如图所示那样彼此连接。在本发明的实际应用中,元件、电路等可以直接彼此连接。而且,元件、电路等可以通过恰当操作所需的其他元件、电路等彼此间接连接。这样,在实际配置中,电路元件和电路彼此直接或间接耦合或连接。本发明的上述实施方式旨在仅仅作为示例。在不背离由所附权利要求所唯一定义的本发明范围的情况下,本领域技术人员能够对特定实施方式进行替换、修改和变形。
权利要求
1.一种复合半导体存储设备,包括 多个非易失性存储设备;以及 连接到所述多个非易失性存储设备并用于连接到存储控制器的接口设备,该接口设备包括纠错编码(ECC)引擎。
2.根据权利要求I所述的复合半导体存储设备,其中,在从所述存储控制器接收到的数据被写入任一所述非易失性存储设备之前所述ECC引擎提供该数据的纠错编码;并且其中,在从任一所述非易失性存储设备中读取的数据被发送给所述存储控制器之前所述ECC弓I擎还提供该数据的纠错解码。
3.根据权利要求2所述的复合半导体存储设备,其中,所述接口设备包括 连接到所述ECC引擎的缓冲存储器; 连接在所述ECC引擎与所述非易失性存储设备之间的第一接口 ; 连接到所述缓冲存储器并用于连接到所述存储控制器的第二接口 ;以及 用于控制所述ECC引擎、所述缓冲存储器、所述第一接口和所述第二接口的控制信号产生器。
4.根据权利要求3所述的复合半导体存储设备,还包括用于将所述第一接口连接到所述非易失性存储设备中的每个非易失性存储设备的并行总线。
5.根据权利要求3所述的复合半导体存储设备,其中,所述第一接口包括第一内部接口电路和第二内部接口电路,其中所述复合半导体存储设备还包括用于将所述第一内部接口电路连接到所述非易失性存储设备的第一子集中的每个设备的第一并行总线,并且其中所述复合半导体存储设备还包括用于将所述第二内部接口电路连接到所述非易失性存储设备的第二子集中的每个设备的第二并行总线。
6.根据权利要求3所述的复合半导体存储设备,其中,所述复合半导体存储设备还包括在所述第一接口与所述非易失性存储设备中的每个非易失性存储设备之间的专用连接。
7.根据权利要求2所述的复合半导体存储设备,其中,所述ECC引擎包括第一ECC引擎和第二 ECC引擎,所述第一 ECC引擎和所述第二 ECC引擎并行操作以提供所述纠错编码和所述纠错解码。
8.根据权利要求7所述的复合半导体存储设备,其中,所述接口设备包括 连接到所述ECC引擎的缓冲存储器; 连接在所述ECC引擎与所述非易失性存储设备之间的第一接口 ;以及连接到所述缓冲存储器并用于连接到所述存储控制器的第二接口 ;以及用于控制所述第一 ECC引擎、所述第二 ECC引擎、所述缓冲存储器、所述第一接口和所述第二接口的控制信号产生器。
9.根据权利要求8所述的复合半导体存储设备,还包括用于将所述第一接口连接到所述非易失性存储设备中的每个非易失性存储设备的并行总线。
10.根据权利要求8所述的复合半导体存储设备,其中,所述第一接口包括第一内部接口电路和第二内部接口电路,其中所述复合半导体存储设备还包括用于将所述第一内部接口电路连接到所述非易失性存储设备的第一子集中的每个设备的第一并行总线,并且其中所述复合半导体存储设备还包括用于将所述第二内部接口电路连接到所述非易失性存储设备的第二子集中的每个设备的第二并行总线。
11.根据权利要求8所述的复合半导体存储设备,其中,所述复合半导体存储设备还包括在所述第一接口与所述非易失性存储设备中的每个非易失性存储设备之间的专用连接。
12.根据权利要求2所述的复合半导体存储设备,其中,所述ECC引擎包括第一ECC引擎和第二 ECC引擎,其中在从所述存储控制器接收到的写入数据被写入所述非易失性存储设备的第一子集中的任一设备之前所述第一 ECC引擎提供该写入数据的纠错编码并且还在从所述非易失性存储设备的所述第一子集中的任一设备接收到的读取数据被发送给所述存储控制器之前提供该读取数据的纠错解码,并且其中在从所述存储控制器接收到的写入数据被写入所述非易失性存储设备的第二子集中的任一设备之前所述第二 ECC引擎提供该写入数据的纠错编码并且还在从所述非易失性存储设备的所述第二子集中的任一设备接收到的读取数据被发送给所述存储控制器之前提供该读取数据的纠错解码。
13.根据权利要求12所述的复合半导体存储设备,其中,所述接口设备包括 连接到所述ECC引擎的缓冲存储器; 连接在所述ECC引擎与所述非易失性存储设备之间的第一接口 ;以及 连接到所述缓冲存储器并用于连接到所述存储控制器的第二接口 ;以及 用于控制所述第一 ECC引擎、所述第二 ECC引擎、所述缓冲存储器、所述第一接口和所述第二接口的控制信号产生器。
14.根据权利要求13所述的复合半导体存储设备,还包括用于将所述第一接口连接到所述非易失性存储设备中的每个非易失性存储设备的并行总线。
15.根据权利要求13所述的复合半导体存储设备,其中,所述第一接口包括第一内部接口电路和第二内部接口电路,其中所述复合半导体存储设备还包括用于将所述第一内部接口电路连接到所述非易失性存储设备的所述第一子集中的每个设备的第一并行总线,并且其中所述复合半导体存储设备还包括用于将所述第二内部接口电路连接到所述非易失性存储设备的所述第二子集中的每个设备的第二并行总线。
16.根据权利要求13所述的复合半导体存储设备,其中,所述复合半导体存储设备还包括在所述第一接口与所述非易失性存储设备中的每个非易失性存储设备之间的专用连接。
17.根据权利要求13所述的复合半导体存储设备,其中,所述缓冲存储器包括连接在所述第一 ECC引擎与所述第二接口之间的第一存储贮存器和连接在所述第二 ECC引擎与所述第二接口之间的第二存储贮存器。
18.根据权利要求2所述的复合半导体存储设备,其中,从所述存储控制器接收到的并以所述非易失性存储设备中的特定非易失性存储设备为目的地的某些数据的所述纠错编码产生控制数据,并且其中所述接口设备促使所述某些数据和所述控制数据被写入所述特定存储设备。
19.根据权利要求18所述的复合半导体存储设备,其中,所述控制数据包括奇偶校验位。
20.根据权利要求18所述的复合半导体存储设备,其中,所述非易失性存储设备中的每个非易失性存储设备包括多个页,每个页具有数据字段和备用字段,其中所述接口设备促使所述某些数据被写入所述特定存储设备的特定页的所述数据字段中并促使所述控制数据被写入所述特定存储设备的所述特定页的所述备用字段中。
21.根据权利要求20所述的复合半导体存储设备,其中,从所述存储控制器接收到的所述某些数据伴随有元数据。
22.根据权利要求21所述的复合半导体存储设备,其中,所述元数据包括擦除周期的数量、地址信息和坏块信息中的至少一个。
23.根据权利要求21所述的复合半导体存储设备,其中,所述接口设备促使所述元数据被写入所述特定存储设备的所述特定页的所述数据字段中。
24.根据权利要求21所述的复合半导体存储设备,其中,所述接口设备促使所述元数据被写入所述特定存储设备的所述特定页的所述备用字段中。
25.根据权利要求18所述的复合半导体存储设备,其中,从所述存储控制器接收到的所述某些数据不包括之前对所述某些数据的任一部分执行纠错编码所得到的控制数据。
26.根据权利要求2所述的复合半导体存储设备,其中,从所述非易失性存储设备中的特定非易失性存储设备中读取的某些数据的所述纠错解码包括 根据所述某些数据产生控制数据; 读取与所述某些数据相关联的之前生成的控制数据;以及 在所产生的控制数据与之前生成的控制数据不匹配的情况下,在将所述某些数据传送给所述存储控制器之前修改所述某些数据。
27.根据权利要求26所述的复合半导体存储设备,其中,所述特定存储设备包括多个页,每个页具有数据字段和备用字段,其中所述某些数据驻留在所述页中的特定页的数据字段中,并且其中读取与所述某些数据相关联的之前生成的控制数据包括从所述特定页的所述备用字段中读取所述之前生成的控制数据。
28.根据权利要求27所述的复合半导体存储设备,还包括从所述非易失性存储设备中的特定非易失性存储设备中读取元数据,并向所述存储控制器传送所述元数据。
29.根据权利要求28所述的复合半导体存储设备,其中,所述元数据包括擦除周期的数量、地址信息和坏块信息中的至少一个。
30.根据权利要求28所述的复合半导体存储设备,其中,所述元数据驻留在所述特定页的所述数据字段中。
31.根据权利要求28所述的复合半导体存储设备,其中,所述元数据驻留在所述特定页的所述备用字段中。
32.根据权利要求2所述的复合半导体存储设备,其中,所述非易失性存储设备堆叠在一起。
33.根据权利要求2所述的复合半导体存储设备,其中,所述接口设备和所述非易失性存储设备一起堆叠在基底上。
34.根据权利要求33所述的复合半导体存储设备,还包括在所述接口设备与所述非易失性存储设备中的每个非易失性存储设备之间的电气连接。
35.根据权利要求34所述的复合半导体存储设备,其中,所述连接通过所述基底实现。
36.根据权利要求2所述的复合半导体存储设备,其中,所述非易失性存储设备中的至少一个非易失性存储设备包括多芯片封装,该多芯片封装包括多个堆叠的非易失性存储设备。
37.根据权利要求I所述的复合半导体存储设备,其中,所述非易失性存储设备是闪存设备。
38.根据权利要求I所述的复合半导体存储设备,其中,所述非易失性存储设备是相变存储设备。
39.根据权利要求I所述的复合半导体存储设备,其中,所述ECC引擎促使所述复合半导体存储设备执行从所述存储控制器的角度所认为的无错误写入和读取。
40.一种存储系统,包括 存储控制器;以及 至少一个复合半导体存储设备,其被配置为由所述存储控制器写入和读取,并包括内置纠错编码(ECC)引擎。
41.根据权利要求40所述的存储系统,其中,所述存储控制器包括错误控制编码电路,该错误控制编码电路被配置为通过施加控制信号而被禁用。
42.根据权利要求40所述的存储系统,其中,所述存储控制器没有错误控制编码电路。
43.根据权利要求40所述的存储系统,其中,所述至少一个复合半导体存储设备中的至少一个复合半导体存储设备包括 多个非易失性存储设备;以及 接口设备,用于连接在所述存储控制器与所述非易失性存储设备之间,所述接口设备包括所述内置ECC引擎。
44.根据权利要求43所述的存储系统,其中,在从所述存储控制器接收到的数据被写入任一所述非易失性存储设备之前所述内置ECC引擎提供该数据的纠错编码;并且其中,在从任一所述非易失性存储设备中读取的数据被发送给所述存储控制器之前所述内置ECC弓I擎还提供该数据的纠错解码。
45.根据权利要求43所述的存储系统,其中,所述多个非易失性存储设备和所述接口设备一起堆叠在基底上。
46.根据权利要求45所述的存储系统,其中,所述多个非易失性存储设备是闪存设备。
47.根据权利要求46所述的存储系统,其中,所述存储控制器是闪存控制器。
48.根据权利要求40所述的存储系统,其中,所述至少一个复合半导体存储设备包括多个复合半导体存储设备,每个所述复合半导体存储设备被配置为由所述存储控制器写入和读取并包括各自的内置ECC引擎。
49.一种存储系统,包括 复合半导体存储设备,其包括多个非易失性存储设备;以及 连接到所述复合半导体存储设备的存储控制器,其用于向所述复合半导体存储设备发布读取和写入命令,以促使数据被写入所述非易失性存储设备中的特定一些非易失性存储设备或者被从所述非易失性存储设备中的特定一些非易失性存储设备中读取; 从所述存储控制器的角度,所述复合半导体存储设备提供所述数据的无错误写入和读取。
50.根据权利要求49所述的存储系统,其中,所述存储控制器被配置为发布至少两个命令,用于促使与各个命令相关的数据同时流过所述存储控制器。
51.根据权利要求50所述的存储系统,其中,所述复合半导体存储设备包括 多个非易失性存储设备;以及接口设备,其用于连接在所述存储控制器与所述非易失性存储设备之间,所述接口设备包括ECC引擎。
52.根据权利要求51所述的存储系统,其中,在从所述存储控制器接收到的数据被写入任一所述非易失性存储设备之前所述ECC引擎提供该数据的纠错编码;并且其中在从任一所述非易失性存储设备中读取的数据被发送给所述存储控制器之前所述ECC引擎还提供该数据的纠错解码。
53.根据权利要求51所述的存储系统,其中,所述至少两个命令包括(i)用于从所述非易失性存储设备中的给定的第一非易失性存储设备中读取数据或向该给定的第一非易失性存储设备中写入数据的第一命令以及(ii)用于从所述非易失性存储设备中的与所述非易失性存储设备中的所述给定的第一非易失性存储设备不同的给定的第二非易失性存储设备中读取数据或向该给定的第二非易失性存储设备中写入数据的第二命令。
54.根据权利要求51所述的存储系统,其中,所述多个非易失性存储设备和所述接口设备一起堆叠在基底上。
55.根据权利要求51所述的存储系统,其中,所述多个非易失性存储设备是闪存设备。
56.根据权利要求55所述的存储系统,其中,所述存储控制器是闪存控制器。
57.根据权利要求49所述的存储系统,其中,所述存储控制器包括错误控制编码电路,该错误控制编码电路被配置为通过施加控制信号而被禁用。
58.根据权利要求49所述的存储系统,其中,所述存储控制器没有错误控制编码电路。
全文摘要
一种复合半导体存储设备,其包括多个非易失性存储设备;以及接口设备,其连接到所述多个非易失性存储设备并用于连接到存储控制器,该接口设备包括纠错编码(ECC)引擎。另外,一种存储系统,其包括存储控制器;以及至少一个复合半导体存储设备,其被配置为由所述存储控制器写入和读取并包括内置纠错编码(ECC)引擎。另外,一种存储系统,其包括复合半导体存储设备,其包括多个非易失性存储设备;以及存储控制器,其连接到至少一个复合半导体存储设备,用于向复合半导体存储设备发布读取和写入命令,以促使数据被写入所述非易失性存储设备中的特定一些或者被从所述非易失性存储设备中的特定一些中读取;该复合半导体存储设备提供数据的无错误写入和读取。
文档编号G11C29/42GK102812519SQ201180014974
公开日2012年12月5日 申请日期2011年3月2日 优先权日2010年3月22日
发明者金镇祺 申请人:莫塞德技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1