本申请要求2015年6月30日提交的申请号为10-2015-0092972的韩国专利申请的优先权,其全部公开通过引用整体合并于此。
技术领域
本公开的各种实施例涉及一种电子设备,更具体地说,涉及一种用于通过多个通道来控制半导体存储器件的存储系统。
背景技术:
半导体存储器件通过使用诸如硅(Si)、锗(Ge)、砷化镓(GaAs)、磷化铟(InP)的半导体来实现。半导体存储器件通常分为易失性存储器件和非易失性存储器件。
在易失性存储器件中,当电力被阻断时,所存储的数据消失。易失性存储器件包括静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)等。另一方面,非易失性存储器件即使在未通电时仍保留所存储的数据。非易失性存储器件包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。快闪存储器通常划分为NOR型和NAND型。
多个半导体存储器件可以包括在存储系统中。半导体存储器件通过多个通道来控制以便由控制器高效地操作。
技术实现要素:
本发明的各个实施例涉及一种具有改善的操作速度的存储器件。本公开的实施例可以包括存储系统,该存储系统包括:多个通道;连接到通道的多个半导体存储器件;以及控制器,其通过通道来控制半导体存储器件,其中,控制器将程序数据写入到多个半导体存储器件的第一半导体存储器件中,以及其中,当程序数据的写入失败时,程序数据被暂时储存在多个半导体存储器件的第二半导体存储器件的页缓冲单元中,第二半导体存储器件连接到除与第一半导体存储器件相对应的通道以外的通道。
本公开的实施例可包括存储系统,该存储系统包括:多个通道;多个半导体存储器件,连接到通道;以及控制器,其通过通道来控制半导体存储器件并且通过使原始数据随机化来生成随机数据,其中,控制器将随机数据写入到多个半导体存储器件的第一半导体存储器件 中,以及其中,当随机数据的写入失败时,随机数据被去随机化,并且被去随机化了的数据被暂时储存在多个半导体存储器件的第二半导体存储器件的页缓冲单元中,第二半导体存储器件连接到除与第一半导体存储器件相对应的通道以外的通道。
本公开的实施例可包括存储系统,该存储系统包括:多个通道;多个半导体存储器件,连接到通道;以及控制器,其通过通道来控制半导体存储器件,其中控制器包括分别连接到通道的通道控制器和将通道控制器彼此连接的直接总线,以及通道控制器中的每个通道控制器命令将数据写入至连接到对应通道的半导体存储器件中,并且在数据的写入失败时通过与该数据相关的直接总线来与另一通道控制器通信。
前面的概述仅仅是说明性的并且无意以任何方式进行限制。除以上描述的说明性方面、实施例和特征之外,通过参考附图和下面的详细描述,进一步的方面、实施例和特征将变得明显。
附图说明
通过参考附图详细描述其实施例,对于本领域的普通技术人员而言,本公开的以上的和其它的特征和优点将变得更加明显,在附图中:
图1是示出了根据本公开的实施例的存储系统的框图;
图2是图1中所示的半导体存储器件的详细示图;
图3是图1中所示的存储器控制器的详细示图;
图4是图3中所示的通道控制器的详细示图;
图5是图1所示的控制器的操作的流程图;
图6、图7和图8是描述图1中所示的控制器的操作的示图;
图9是通道控制器和直接总线的示图;
图10是示出图1中所示的控制器的操作的流程图;以及
图11、图12和图13是描述图1中所示的控制器的操作的示图。
具体实施方式
在下文中,将参考附图来详细描述本发明的实施例。在下面的描述中,应当注意的是,将仅仅对理解本公开的操作所必需的部分进行说明,而将省略对其他部分的说明以便不使本 发明的要点模糊。然而,本公开不限于本文中描述的示例性实施例,并且可以以其他形式来指定。然而,当前示例性实施例被提供以用于详细描述本公开,使得本领域的技术人员可以容易地领会本发明的技术精神。
贯穿本说明书和所附权利要求书中,当描述一个元件“耦接”到另一元件时,该元件可以“直接耦接”到另一元件或通过第三元件“电耦接”到另一元件。贯穿说明书和权利要求书中,除非明确说明与此相反,否则词语“包括”和其变型(诸如“包含”或“包含有”)将被理解为暗示包括所陈述的元件但不排除任何其他元件。
图1是示出根据本公开的实施例的存储系统的框图。
参考图1,存储系统可以包括多个半导体存储器件SMD11至SMDk4以及控制器1000。
该半导体存储器件SMD11至SMDk4被划分为第一存储器组至第k存储器组。例如,第一存储器组包括半导体存储器件SMD11至SMD14。此外,第k存储器组包括半导体存储器件SMDk1至SMDk4。
包括在单个存储器组中的半导体存储器件通过对应的通道与控制器1000连接。例如,包括在第一存储器组中的半导体存储器件SMD11至SMD14通过第一通道CH1与控制器1000相连。此外,包括在第k存储器组中的半导体存储器件SMDk1至SMDk4通过第k通道CHk与控制器1000连接。
半导体存储器件SMD11至SMDk4中的每个包括页缓冲单元。例如,连接到第一通道CH1的第一半导体存储器件SMD11至第四半导体存储器件SMD14分别包括第一页缓冲单元PB11至第四页缓冲单元PB14。此外,连接到第k通道CHk的第一半导体存储器件SMDk1至第四半导体存储器件SMDk4分别包括第一页缓冲单元PBk11至第四页缓冲单元PBk14。
图2是示出图1中所示的半导体存储器件的详细示图。
参考图2,半导体存储器件50可以包括存储单元阵列100和包含页缓冲单元140的外围电路110。
存储单元阵列100包括多个存储块BLK1至BLKz。存储块BLK1至BLKz通过字线WL连接到地址解码器120,并通过位线BL1至BLm连接到页缓冲单元140。存储块BLK1至BLKz中的每个包括多个页。页分别连接到字线WL。每个页包括多个存储单元。存储单元可以是非易失性存储单元。
半导体存储器件50的编程操作和读取操作以页为单位来执行。半导体存储器件50的擦 除操作以存储块为单位来执行。
外围电路110可包括地址解码器120、电压发生器130、页缓冲单元140、数据输入/输出电路150、控制逻辑160以及检测器170。
地址解码器120通过字线WL连接到存储单元阵列110。地址解码器120可以在控制逻辑160的控制下操作。
地址解码器120通过控制逻辑160接收地址ADDR。半导体存储器件50的编程操作以字线为单位来执行。在编程操作期间,地址ADDR可以包括块地址和行地址。
地址解码器120可对接收到的地址ADDR中的块地址进行解码。地址解码器120根据所解码的块地址选择存储块BLK1至BLKz之中的一个存储块。
地址解码器120可对接收到的地址ADDR中的行地址进行解码。地址解码器120根据所解码的行地址来选择被选中的存储块中的一个字线。从而,一个页被选中。
地址解码器120可以包括地址缓冲器、块解码器以及行解码器。
电压发生器130可以通过使用提供给半导体存储器件50的外部电源电压来产生多个电压。电压发生器130可以在控制逻辑160的控制下操作。
电压发生器130可以通过调节外部电源电压来产生内部电源电压。由电压发生器130所产生的内部电源电压被用作半导体存储器件50的工作电压。
页缓冲单元140包括第一页缓冲电路PC1至第m页缓冲电路PCm。第一页缓冲电路PC1至第m页缓冲电路PCm分别通过第一位线BL1至第m位线BLm连接到存储单元阵列110。第一页缓冲电路PC1至第m页缓冲电路PCm通过数据线DL连接到数据输入/输出电路150。第一页缓冲电路PC1至第m页缓冲电路PCm响应于控制逻辑160的控制而操作。
在编程操作期间,第一页缓冲电路PC1至第m页缓冲电路PCm通过数据输入/输出电路150来接收程序数据。第一页缓冲电路PC1至第m页缓冲电路PCm可以通过位线BL1至BLm将程序数据DATA传输到选中页。连接到被施加了编程允许电压(例如,接地电压)的位线的存储单元可以具有增大的阈值电压。连接到被施加了编程禁止电压(例如,电源电压)的位线的存储单元的阈值电压可以被保持。在编程操作的验证期间,第一页缓冲电路PC1至第m页缓冲电路PCm通过位线BL1至BLm来从选中页读取页数据。
控制逻辑160连接到地址解码器120、电压发生器130、页缓冲单元140、数据输入/输出电路150以及检测器170。控制逻辑160从控制器1000接收命令CMD和地址ADDR。控 制逻辑160可以响应于命令CMD来控制地址解码器120、电压发生器130、页缓冲单元140、数据输入/输出电路150以及检测器170。控制逻辑160将地址ADDR传输到地址解码器120。
检测器170连接到页缓冲单元140和控制逻辑160。检测器170在控制逻辑160的控制下操作。
在编程操作的验证期间,从选中存储单元读取的页数据可以暂时储存在第一页缓冲电路PC1至第m页缓冲电路PCm中。第一页缓冲电路PC1至第m页缓冲电路PCm可以在控制逻辑160的控制下生成通过/失败位(pass/fail bit),通过/失败位指示该页数据的数据位是否分别对应于程序数据DATA的数据位,通过/失败位可以指示选中存储单元是否达到期望的电压的状态以及编程操作是否完成。所生成的通过/失败位被发送到检测器170。
当通过/失败位之中的与编程通过相对应的数据位的数目大于预定数时,检测器170使能检测信号DS。当通过/失败位之中的与编程通过相对应的数据位的数目小于或等于该预定数时,检测器170禁止检测信号DS。
当检测信号DS被禁止时,控制逻辑160控制外围电路110使得编程操作被重新执行。可以重复地执行编程操作和编程验证直到检测信号DS被使能。当编程操作和编程验证构成一个编程循环(program loop)时,多个编程循环可以被执行。检测信号DS的使能表示编程操作完成。控制逻辑160可以输出指示编程操作通过的状态信号SF。当即使编程循环被执行该预定数目的次数检测信号DS仍被禁用时,控制逻辑160可以输出指示编程操作失败的状态信号SF。状态信号SF可以通过对应的通道而被提供给控制器1000。
作为示例性实施例,半导体存储器件50可以是快闪存储器件。
回到图1,控制器1000控制半导体存储器件SMD11至SMD14和SMDk1至SMDk4。当控制器1000命令读取数据时,被选中的半导体存储器件执行读取操作。当控制器1000命令写入操作时,被选中的半导体存储器件执行编程操作。当控制器1000命令擦除操作时,被选中的半导体存储器件执行擦除操作。
控制器1000可以包括处理器1100、缓冲存储器1200、主机接口(I/F)1300以及存储器控制器1400。
处理器1100连接到主总线1500。处理器1100可以控制控制器1000的常规操作。处理器1100执行快闪转换层(flash translation layer,FTL)的功能。当处理器1100通过主机接口1300接收到来自主机的请求(未示出)时,处理器1100可以生成与对应请求相对应的物理块地址。
处理器1100可将包含在该请求中的逻辑块地址转换为物理块地址。当来自主机的请求是编程请求,可以另外从主机接收程序数据。处理器1100可以将与编程请求相对应的物理块地址、程序数据以及写入命令储存在缓冲存储器1200中。储存在缓冲存储器1200中的写入命令、物理块地址以及程序数据可以通过存储器控制器1400而被传输到半导体存储器件SMD11至SMD14和SMDk1至SMDk4之中的选中的半导体存储器件。所选中的半导体存储器件可通过物理块地址来指定。写入命令被提供作为图2中的命令CMD。物理块地址被提供作为图2中的地址ADDR。程序数据被提供作为图2中的程序数据DATA。
处理器1100可以在没有来自主机的请求的情况下自主地生成写入命令、物理块地址以及程序数据,并将所生成的写入命令、物理块地址以及程序数据传输到半导体存储器件SMD11至SMD14和SMDk1至SMDk4之中的所选中的半导体存储器件。例如,处理器1100可以生成用于后台操作(例如用于磨损均衡的程序操作和用于垃圾收集的程序操作)的写入命令、物理块地址以及程序数据,并且命令写入该程序数据。
缓冲存储器1200连接到主总线1500。缓冲存储器1200响应于处理器1100的控制来操作。缓冲存储器1200可以被用作处理器1100的操作存储器,半导体存储器件SMD11至SMD14和SMDk1至SMDk4与主机之间的高速缓冲存储器和/或半导体存储器件SMD11至SMD14和SMDk1至SMDk4与主机之间的数据缓冲器。
主机接口1300包括用于执行主机与控制器1000之间的通信的协议。主机接口1300可通过诸如通用串行总线(USB)协议、多媒体卡(MMC)协议,外围组件互连(PCI)协议、PCI-Express(PCI-E)协议、高级技术附件(ATA)协议、串行ATA协议、并行ATA协议、小型计算机小接口(SCSI)协议、增强型小型磁盘接口(ESDI)协议以及集成驱动电路(IDE)协议和/或私人协议的各种接口协议中的至少一种来与主机通信。
存储器控制器1400连接到主总线1500。存储器控制器1400在处理器1100的控制下操作。存储器控制器1400可以通过第一通道CH1至第k通道CHk来控制半导体存储器件。存储器控制器1400在处理器1100的控制下将储存在缓冲存储器1200中的写入命令、物理块地址以及程序数据传输到半导体存储器件SMD11至SMDk4之中的选中的存储器件以命令写入该程序数据。
当程序数据至对应的半导体存储器件中的写入失败时,存储器控制器1400可以将程序数据暂时储存在连接到另一通道(即,除与该半导体存储器件相对应的通道之外的通道)的半导体存储器件的页缓冲单元中。然后,当物理块地址由处理器1100重新生成时,存储器控制器1400收集暂时存储的程序数据,并且将所收集到的程序数据写入到与重新生成的物理块地址相对应的半导体存储器件中。
图3是图1中示出的存储器控制器1400的详细示图。为了说明起见,半导体存储器件SMD11至SMDk4与存储控制器1400一起被示出。
参考图3,存储器控制器1400可以包括第一通道控制器211至第k通道控制器21k和失败控制器230。
第一通道控制器211至第k通道控制器21k分别连接到第一通道CH1至第k通道CHk。第一通道控制器211至第k通道控制器21k可以通过主总线1500与缓冲存储器1200(参见图1)通信。第一通道控制器211至第k通道控制器21k中的每个通道控制器响应于处理器1100的控制而通过对应的通道将储存在缓冲存储器1200中的写入命令、物理块地址以及程序数据传输到所选中的半导体存储器件。此外,每个通道控制器通过对应的通道向失败控制器230和处理器1100(参见图1)通知根据状态信号SF的程序数据的写入被接收。
根据实施例,直接总线220被设置。直接总线220可以将第一通道控制器211至第k通道控制器21k彼此连接。例如,直接总线220可以用将第一通道控制器211至第k通道控制器21k彼此连接的多个线路来限定。
第一通道控制器211至第k通道控制器21k可以在失败控制器230的控制下通过直接总线220来传送程序数据。
失败控制器230可以控制第一通道控制器211至第k通道控制器21k。失败控制器230控制第一通道控制器211至第k通道控制器21k,使得第一通道控制器211至第k通道控制器21k在程序数据的写入失败时通过直接总线220来传送程序数据。
失败控制器230通过每个通道控制器来识别出程序数据的写入失败。当在该半导体存储器件中程序数据的写入失败时,失败控制器230可以控制对应的通道控制器以便传输取回命令以取回保留在对应的半导体存储器件的页缓冲单元中的程序数据。
然后,失败控制器230选择连接到另一通道(例如,除与包括程序数据的失败写入的该半导体存储器件相对应的通道之外的通道),并控制通道控制器211至21k使得程序数据暂时存储在所选中的半导体存储器件中。失败控制器230可以控制通道控制器211至21k使得该半导体存储器件(在其中程序数据的写入失败)的通道控制器将程序数据传输到所选中的半导体存储器件的通道控制器。此外,失败控制器230可以控制所选中的半导体存储器件的通道控制器以便传输高速缓冲命令和程序数据,以将程序数据暂时储存在所选中的半导体存储器件的页缓冲单元中。此外,失败控制器230可以存储关于所选中的存储器件的信息。
图4是图3中示出的通道控制器211至21k的详细示图。图4示出了第一通道控制器211的详细配置作为示例。本领域技术人员将理解的是,其余通道控制器212至21k中的每 个可以与第一通道控制器211的配置相同的方式来配置。
参考图4,第一通道控制器211可以包括读取直接存储器存取(direct memory access,DMA)311,使用错误校正码(ECC)的ECC编码模块312、输入/输出接口313、使用ECC的ECC解码模块314以及写入DMA 315。
读取DMA 311可以读取储存在缓冲存储器1200(参见图1)中的程序数据。读取DMA 311将读取的程序数据传输到ECC编码模块312。
ECC编码模块312可以通过根据ECC对程序数据进行编码来生成奇偶校验位(parity bit),并且通过将所生成的奇偶校验位增加到程序数据来生成处理过的程序数据。ECC编码模块312将处理过的程序数据传输到输入/输出接口313。
可以使用各种方案的ECC来作为ECC。例如,如本领域技术人员从本文中的公开将理解的,可以使用诸如Bose-Chaudhri-Hocquenghem(BCH)码、reed solomon码、汉明码、低密度奇偶校验(LDPC)码的各种方案的ECC。
输入/输出接口313将从ECC编码模块312接收到的程序数据通过第一通道CH1传输到所选中的半导体存储器件。在这种情况下,还可以传输对应的写入命令和物理块地址。
输入/输出接口313包括用于与连接到第一通道CH1的半导体存储器件SMD11至SMD14通信的协议。例如,输入/输出接口313包括NAND接口或NOR接口。
此外,输入/输出接口313通过第一通道CH1接收从半导体存储器件SMD11至SMD14读取的数据。
当该数据通过输入/输出接口313而被接收时,ECC解码模块通过根据ECC对对应的数据进行解码来检测和校正包括在数据中的错误。
写入DMA 315可以将来自ECC解码模块314的该数据写入到缓冲存储器1200。
输入/输出接口313通过直接总线220来与其他通道控制器212至21k的输入/输出接口连接。也就是说,通道控制器211至21k可以通过直接总线220相互通信。
图5是用于描述图1中示出的控制器1000的操作的流程图。
参考图1至图5,在步骤S110处,控制器1000将程序数据写入到被选中通道的所选中的存储器件中。
在步骤S120处,控制器1000判断程序数据的写入是否失败。可以从在其中程序数据的 写入失败的半导体存储器件接收状态信号SF。状态信号SF可以指示程序数据的写入通过还是失败。
在步骤S130处,控制器1000将程序数据暂时储存到连接至另一通道的半导体存储器件的页缓冲单元中。假设程序数据至连接到第一通道CH1的第一半导体存储器件SMD11中的写入失败。控制器1000可以将程序数据暂时储存到连接至另一通道(例如通道CHk)的半导体存储器件(例如半导体存储器件SMDk1)的页缓冲单元PBk1中。连接到第一通道CH1的输入/输出接口313可以通过直接总线220将程序数据传输到另一通道的输入/输出接口。另一通道的输入/输出接口可以将程序数据暂时储存到对应的半导体存储器件的页缓冲单元中。
在步骤S140处,控制器1000从对应的半导体存储器件取回暂时储存的程序数据并且再次写入所取回的程序数据。
假设当程序数据的写入失败时未提供将程序数据暂时储存在连接到另一通道的半导体存储器件的页缓冲单元中的功能。为了再次写入对应的程序数据,该程序数据需要被再次储存在缓冲存储器1200中。保留在对应的半导体存储器件的页缓冲单元中的程序数据可以通过对应的通道CH1、输入/输出接口313以及ECC解码模块314而被传输到写入DMA 315。写入DMA可以向处理器1100询问程序数据在缓冲存储器1200中的写入,并且根据询问的结果来将程序数据写入到缓冲存储器1200中。解码模块对程序数据执行使用ECC的解码。通过写入DMA将程序数据写入到缓冲存储器1200中表示处理器1100需要中断由处理器1100当前执行的操作。
然后,对应的程序数据可以从缓冲存储器1200传输到读取DMA 311(参见图4)、ECC编码模块312(参见图4)以及输入/输出接口313(参见图4)并且被写入。经过编码模块表示对程序数据的使用ECC的解码被执行。
该系列操作需要较长长度的时间而且增大功耗和控制器1000的负载。处理器1100的操作的中断次数的增加导致处理器1100的吞吐量的增加。
当程序数据的写入失败时,控制器1000将程序数据暂时储存在连接到另一通道的半导体存储器件的页缓冲单元中。由用于将程序数据传输到缓冲存储器1200的负载引起的时间和功耗可以减少。处理器1100的处理量可以减少。因此,提供了具有改进的操作速度的控制器和包括其的存储系统。
图6至图8是用于描述图1中示出的控制器的操作的示图。
图6示出了当程序数据的写入失败时程序数据被暂时储存的情况。在图6中,示出了第 一通道控制器211至第三通道控制器213,而省略其余的通道控制器214至21k。在图6中,假设程序数据至连接到第一通道CH1的第一半导体存储器件SMD11中的写入失败。
参考图6,第一输入/输出接口313在失败控制器230(参见图3)的控制下通过第一通道CH1从第一半导体存储器件SMD11取回该程序数据。例如,第一输入/输出接口313可以通过将取回命令传输到第一半导体存储器件SMD11来获得保留在第一半导体存储器件SMD11的页缓冲单元PB11中的程序数据。
失败控制器230选择连接到除第一通道CH1以外的剩余通道CH2至CHk中的一个通道的半导体存储器件。假设选中连接到第二通道CH2的第一半导体存储器件SMD21。第一输入/输出接口313可以在失败控制器230的控制下通过直接总线220将程序数据传输到第二输入/输出接口323。第二输入/输出接口323可以在失败控制器230的控制下将该程序数据暂时储存在连接到第二通道CH2的第一半导体存储器件SMD21的页缓冲单元PB21中。
也就是说,当程序数据的写入失败时,从第一半导体存储器件SMD11取回到第一输入/输出接口313中的程序数据通过直接总线220、第二输入/输出接口323以及第二通道CH2(参见FL1)而被暂时储存在第一半导体存储器件SMD21的页缓冲单元PB21中。
图7示出了暂时储存的程序数据被重新写入的情况。
参考图7,可以选中连接到另一通道(例如,除与暂时储存用于重新写入的程序数据的半导体存储器件SMD21相对应的第二通道CH2之外的通道)的半导体存储器件。在对于图7的说明中,假设选中连接到第三通道CH3的第一半导体存储器件SMD31。处理器1100可以在程序数据的写入失败时生成指示连接到第三通道CH3的第一半导体存储器件SMD31的物理块地址。失败控制器230(参见图3)可以基于物理块地址控制第二输入/输出接口323和第三输入/输出接口333使得程序数据被写入至连接到第三通道CH3的第一半导体存储器件SMD31中。
第二输入/输出接口323在失败控制器230的控制下通过第二通道CH2从第一半导体存储器件SMD21取回该程序数据。此外,第二输入/输出接口323可以通过直接总线220将该程序数据传输到第三输入/输出接口333。第三输入/输出接口333可以通过将该程序数据传输至连接到第三通道CH3的第一半导体存储器件SMD31来命令写入该程序数据。
也就是说,第二输入/输出接口323中的从连接到第二通道CH2的第一半导体存储器件SMD21取回的程序数据通过直接总线220、第三输入/输出接口333以及第三通道CH3(参见FL2)而被传输到第一半导体存储器件SMD31。
图8示出了暂时储存的程序数据被重新写入的情况。
参考图8,可以选中连接到与暂时储存用于重新写入的程序数据的半导体存储器件SMD21的通道相同的通道的半导体存储器件。在关于图8的描述中,假设选中连接到第二通道CH2的第四半导体存储器件SMD24。处理器1100可以在程序数据写入失败时生成指示连接到第二通道CH2的第四半导体存储器件SMD24的物理块地址。失败控制器230(参见图3)可以控制第二输入/输出接口323,使得程序数据基于物理块地址而被写入到连接至第二通道CH2的第四半导体存储器件SMD24中。
第四半导体存储器件SMD24连接到与第一半导体存储器件SMD21的通道相同的通道CH2。需要用于在其中程序数据通过第二通道CH2而被取回的数据流和在其中程序数据通过第二通道CH2而被提供到第四半导体存储器件SMD24的数据流的数据缓冲器。输入/输出接口313至333分别包括数据缓冲器301至303。数据缓冲器301至303中的每个可以包括移位寄存器。
第二输入/输出接口323在失败控制器230的控制下通过第二通道CH2而从第一半导体存储器件SMD21取回程序数据。所取回的程序数据被缓存在数据缓冲器302中。此外,第二输入/输出接口323可以通过经由第二通道CH2将所缓存的程序数据传输到第四半导体存储器件SMD24来命令写入该程序数据(参见FL3)。
图9示出了通道控制器420至4k0和直接总线520的详细配置的另一示例。图9仅示出了第一通道控制器410的详细配置。要理解的是,剩余通道控制器420至4k0中的每个以与第一通道控制器410的配置相同的方式来配置。
参考图9,设置了两个子直接总线521和522。子直接总线521和522构成直接总线520。子直接总线521和522将第一通道控制器410至第k通道控制器4k0彼此连接。
第一通道控制器410可以包括读取DMA 411、ECC编码模块412、输入/输出接口(I/F)413、ECC解码模块414、写入DMA 415、随机性发生器416和去随机性发生器417。
输入/输出接口413经由输入线INL1连接到第一子直接总线521。输入/输出接口413经由输出线ONL1连接到第二子直接总线522。
随机性发生器416连接在ECC编码模块412与输入/输出接口413之间。随机性发生器416从ECC编码模块412接收数据。随机性发生器416使接收到的数据随机化。输入到随机性发生器416中的数据可以被定义为原始数据。被随机化了的数据可以被定义为随机数据。输入/输出接口413可以接收该随机数据。输入/输出接口413可以利用通道CH1来传送随机数据。
众所周知的是,半导体存储器件储存该随机数据,使得改善包括在半导体存储器件中的 存储单元的阈值电压分布从而提高半导体存储器件的可靠性。
随机性发生器416可以通过计算随机种子和原始数据来生成随机数据。随机种子可以对于每个半导体存储器件是不同的。随机种子可以对于每个存储块是不同的。随机种子可以对于每个页是不同的。
随机性发生器416连接到第二子直接总线522。随机性发生器416经由第二子直接总线522连接到通道控制器410至4k0的输入/输出接口。随机性发生器416可以从读取DMA 411接收原始数据,并且可以经由第二子直接总线522接收原始数据。
去随机性发生器417连接在输入/输出接口413与ECC解码模块414之间。去随机性发生器417经由输入/输出接口413接收随机数据。去随机性发生器417可以通过使随机数据去随机化来生成原始数据。所生成的原始数据被传输到写入DMA 415。传输到写入DMA 415的原始数据可以被提供到缓冲存储器1200(参见图1)。
去随机性发生器417可以与同一通道控制器410的随机性发生器416共享随机种子。由第一通道控制器410的随机性发生器416所生成的随机数据可以通过第一通道控制器410的去随机性发生器417而被去随机化。
随机性发生器416连接到第一子直接总线521。随机性发生器416经由第一子直接总线521连接到通道控制器410至4k0的输入/输出接口。从去随机性发生器417输出的原始数据可以被传输到ECC解码模块414,且也可以经由第一子直接总线521来传输。
作为与图9的实施例不同的实施例,随机性发生器416可以连接在读取DMA 411与ECC编码模块412之间,而去随机性发生器417可以连接在ECC解码模块414与写入DMA 415之间。
图10是用于描述图1中示出的控制器1000的操作的流程图。
参考图1和图10,在步骤S210处,控制器1000通过使原始数据随机化来生成第一随机数据。在步骤S220处,控制器1000将第一随机数据写入到选中通道的所选中的半导体存储器件中。
在步骤S230处,控制器1000判断第一随机数据的写入是否失败。如果否,则控制器1000可以在处步骤S240处使第一随机数据去随机化。被去随机化了的数据可以对应于原始数据。接下来,在步骤S250处,控制器1000将原始数据暂时储存在连接到另一通道的半导体存储器件的页缓冲单元中。也就是说,原始数据未被再次加载到缓冲存储器1200,而被暂时储存在连接到另一通道的半导体存储器件的页缓冲单元中。
在步骤S260处,控制器1000通过使暂时储存的原始数据再次随机化来生成第二随机数据。原始数据的随机化可以通过与在其中原始数据的写入被命令了的半导体存储器件相对应的通道控制器来执行。然后,在步骤S270处,控制器1000再次写入第二随机数据。
图11至图13是用于描述图1中示出的控制器的操作的示图。
图11示出了原始数据在程序数据写入失败时被暂时储存的情况。在图11中,示出了第一通道控制器410至第三通道控制器430,而省略剩余通道控制器440至4k0。在图11中,假设随机数据至连接到第一通道CH1的第一半导体存储器件SMD11中的写入失败。
参考图11,第一输入/输出接口413经由第一通道CH1从第一半导体存储器件SMD11取回该随机数据,并且将所取回的随机数据传输到第一去随机性发生器417。第一去随机性发生器417通过使随机数据去随机化来生成原始数据,并且通过第一子直接总线521来传输所生成的原始数据。
第二输入/输出接口423可以经由第一子直接总线521和第二输入线INL2来获取原始数据,并且通过第二通道CH2将原始数据暂时储存到第一半导体存储器件SMD21的页缓冲单元PB21中。
也就是说,从第一半导体存储器件SMD11取回到第一输入/输出接口413中的随机数据被传输到第一去随机性发生器417,而通过第一去随机性发生器417而生成的原始数据经由第一子直接总线521、第二输入/输出接口423以及第二通道CH2而被传输到第一半导体存储器件SMD21的页缓冲单元PB21(参见FL5)。
图12示出了暂时储存的原始数据被重新写入的情况。
参考图12,可以选中连接到另一通道(即,除与在重新写入期间暂时储存原始数据的半导体存储器件SMD21相对应的第二通道CH2之外的通道)的半导体存储器件。在关于图12的描述中,假设选中连接到第三通道CH3的第一半导体存储器件SMD31。
第二输入/输出接口423经由第二通道CH2而从第一半导体存储器件SMD21的页缓冲单元PB21取回原始数据,并且经由第二输出线ONL2将所取回的原始数据传输到第二子直接总线522。第三随机性发生器436经由第二子直接总线522获取原始数据,并且通过使原始数据随机化来生成随机数据。第三输入/输出接口433可以通过将随机数据传输至连接到第三通道CH3的第一半导体存储器件SMD31来命令写入随机数据。
也就是说,第二输入/输出接口423中的从第一半导体存储器件SMD21取回的原始数据经由第二输出线ONL2和第二子直接总线522而被传输到第三随机性发生器436,并且通过 第三随机性发生器436生成的随机数据经由第三输入/输出接口433和第三通道CH3而被传输到第一半导体存储器件SMD31(参见FL6)。
图13示出了暂时储存的程序数据被重新写入的情况。
参考图13,可以选中连接到与暂时储存用于重新写入的原始数据的半导体存储器件SMD21的通道相同的通道的半导体存储器件。在关于图13的描述中,假设选中连接到第二通道CH2的第四半导体存储器件SMD24。
第四半导体存储器件SMD24与第一半导体存储器件SMD21共享同一通道CH2。可以需要用于在其中程序数据通过第二通道CH2而被取回的数据流和在其中程序数据通过第二通道CH2而被提供到第四半导体存储器件SMD24的数据流的数据缓冲器。输入/输出缓冲器413至433分别包括数据缓冲器401至403。数据缓冲器401至403中的每个可以包括连接在对应的输入/输出接口与对应的随机性发生器之间的移位寄存器。
第二输入/输出接口423经由第二通道CH2从第一半导体存储器件SMD21的页缓冲单元PB21取回原始数据,并且将所取回的原始数据缓存在数据缓冲器402中。第二随机性发生器426可以通过获取并随机化所缓存的原始数据来生成随机数据。第二输入/输出接口423可以通过将随机数据传输至连接到第二通道CH2的第四半导体存储器件SMD31来命令写入随机数据。
第二输入/输出接口423可以经由第二通道CH2来从第一半导体存储器件SMD21的页缓冲单元PB21取回原始数据,并且第二随机性发生器426可以通过使所取回的原始数据随机化来生成随机数据。所生成的随机数据被缓存在数据缓冲器402中。第二输入/输出接口423可以通过将缓存的随机数据传输至连接到第二通道CH2的第四半导体存储器件SMD24来命令写入随机数据。
根据本公开的实施例,对应的数据被暂时储存在连接到另一通道(即,除与包含失败的数据写入的半导体存储器件相对应的通道之外的通道)的半导体存储器件的页缓冲单元中。在数据写入失败时,可以降低由将对应的数据传输到缓冲存储器的负载而引起的时间消耗和功耗。因此,提供了具有改进的操作速度的控制器和包含其的存储系统。
如上所述,已经在附图和说明书中公开了该实施例。在本文中所使用的特定名词是为了说明起见,并不限制在权利要求中所限定的本公开的范围。因此,本领域技术人员将理解的是,在不脱离本公开的范围和精神的情况下可以作出各种修改和其他等效示例。因此,本公开的唯一技术保护范围将由所附权利要求的技术精神来限定。