一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储系统的操作方法与流程

2021-06-11 21:44:00 来源:中国专利 TAG:韩国 专利申请 知识产权局 提交 引用
存储系统的操作方法与流程

相关申请的交叉引用

本申请要求于2019年11月26日在韩国知识产权局提交的韩国专利申请no.10-2019-0153551和于2020年6月5日在韩国知识产权局提交的韩国专利申请no.10-2020-0068602的权益,这些专利申请各自的公开内容通过引用整体并入本文。

本发明构思涉及半导体器件,更具体地,涉及用于当正在将数据编程到非易失性存储器件中时发生突然断电(spo)时有效地完成编程操作的存储系统的操作方法。



背景技术:

作为非易失性存储器件的示例的闪存器件包括根据编程状态具有不同阈值电压的存储单元。在单阶单元(single-levelcell,slc)模式下,存储单元可以被编程为具有与擦除状态和编程状态之一相对应的阈值电压。在多阶单元(multi-levelcell,mlc)模式下,存储单元可以被编程为具有与多个编程状态之一或擦除状态相对应的阈值电压。

当非易失性存储器件中发生spo时,可能希望对经历编程操作的存储单元进行数据备份。以mlc模式编程的存储单元要备份的数据量大于以slc模式编程的存储单元要备份的数据量,因此,用于数据备份的辅助电源所需的容量增加。



技术实现要素:

根据本发明的示例性实施例,一种包括存储控制器和非易失性存储器件的存储系统的操作方法,包括:将所述存储控制器中的多页面数据预编程到所述非易失性存储器件中的连接到一条字线的多个存储单元,其中,所述多页面数据包括多个多位数据,其中,所述多个存储单元中的每一个存储单元根据所述多个多位数据中的相应一个多位数据被预编程为具有阈值电压,并且其中,所述阈值电压对应于多个预编程状态之一;基于所述多页面数据中的所述多个多位数据生成状态组代码,其中,所述状态组代码包括多个状态组数据,并且其中,所述多个状态组数据中的每一个状态组数据的位数少于所述多页面数据中的所述多个多位数据中的相应一个多位数据的位数;将所述状态组代码备份到所述非易失性存储器件;在从所述突然断电恢复电力之后,通过基于所述状态组代码读取被预编程的所述多个存储单元来恢复所述多页面数据;将从被预编程的所述多个存储单元恢复的所述多页面数据重新编程到被预编程的所述多个存储单元;以及在所述状态组代码被备份之后未发生所述突然断电时,将所述存储控制器的所述多页面数据重新编程到被预编程的所述多个存储单元。

根据本发明的示例性实施例,一种包括存储控制器和非易失性存储器件的存储系统的操作方法,包括:将所述存储控制器中的多页面数据预编程到所述非易失性存储器件中的连接到一条字线的多个存储单元,其中,所述多页面数据包括多个多位数据,其中,所述多个存储单元中的每一个存储单元根据所述多个多位数据中的相应一个多位数据被预编程为具有阈值电压,并且其中,所述阈值电压对应于多个预编程状态之一;基于所述多页面数据中的所述多个多位数据生成状态组代码,其中,所述状态组代码包括多个状态组数据,并且其中,所述多个状态组数据中的每一个状态组数据的位数少于所述多页面数据中的所述多个多位数据中的相应一个多位数据的位数;将所述状态组代码备份到所述非易失性存储器件;在所述状态组代码备份之后,检测突然断电;在从所述状态组代码被备份之后发生的突然断电恢复电力之后,通过基于所述状态组代码读取被预编程的所述多个存储单元来恢复所述多页面数据;将从被预编程的所述多个存储单元恢复的所述多页面数据重新编程到所述多个存储单元;以及在所述状态组代码被备份之后未发生所述突然断电时,将所述存储控制器中的所述多页面数据重新编程到被预编程的所述多个存储单元。

根据本发明的示例性实施例,一种包括存储控制器和非易失性存储器件的存储系统的操作方法,所述非易失性存储器件包括存储单元区域和外围电路区域,所述存储单元区域包括第一金属焊盘,所述外围电路区域包括第二金属焊盘并且通过所述第一金属焊盘和所述第二金属焊盘在垂直方向上连接到所述存储单元区域,所述操作方法包括:将所述存储控制器中的多页面数据预编程到所述非易失性存储器件中的连接到第一字线的多个存储单元,其中,所述多页面数据包括多个多位数据,其中,所述多个存储单元中的每一个存储单元根据所述多个多位数据中的相应一个多位数据被预编程为具有阈值电压,并且其中,所述阈值电压对应于多个预编程状态之一;基于所述多页面数据中的所述多个多位数据生成状态组代码,其中,所述状态组代码包括多个状态组数据,并且其中,所述多个状态组数据中的每一个状态组数据的位数少于所述多页面数据中的所述多个多位数据中的相应一个多位数据的位数;当所述存储单元被预编程之后发生突然断电时,将所述状态组代码备份到所述非易失性存储器件;在从所述突然断电恢复电力之后,通过基于所述状态组代码读取被预编程的所述多个存储单元来恢复所述多页面数据;将从被预编程的所述多个存储单元恢复的所述多页面数据重新编程到被预编程的所述多个存储单元;以及在所述存储单元被预编程之后未发生所述突然断电时,将所述存储控制器中的所述多页面数据重新编程到被预编程的所述多个存储单元。

根据本发明的示例性实施例,一种包括存储控制器和非易失性存储器件的存储系统的操作方法,包括:将所述存储控制器中的多页面数据预编程到所述非易失性存储器件中的连接到第一字线的多个第一存储单元,其中,所述多页面数据包括多个多位数据,其中,所述多个第一存储单元中的每一个第一存储单元根据所述多个多位数据中的相应一个多位数据被预编程为具有阈值电压,并且其中,所述阈值电压对应于所述多个预编程状态之一;基于所述多页面数据中的所述多个多位数据生成状态组代码,其中,所述状态组代码包括多个状态组数据,并且其中,所述多个状态组数据中的每一个状态组数据的位数少于所述多页面数据中的所述多个多位数据中的相应一个多位数据的位数;将所述状态组代码备份到所述非易失性存储器件;在从所述突然断电恢复电力之后,通过基于所述状态组代码读取被预编程的所述多个第一存储单元,来恢复所述多页面数据;将从被预编程的所述多个第一存储单元恢复的所述多页面数据预编程到所述非易失性存储器件中的连接到第二字线的多个第二存储单元;将从被预编程的所述多个第一存储单元恢复的所述多页面数据重新编程到被预编程的所述多个第二存储单元;以及在所述状态组代码被备份之后未发生所述突然断电时,将所述存储控制器的所述多页面数据重新编程到被预编程的所述多个第一存储单元。

根据本发明的示例性实施例,一种包括存储器控制器和非易失性存储器件的存储系统的操作方法,包括:执行第一预编程操作以将所述存储控制器中的多页面数据预编程到所述非易失性存储器件中的连接到一条字线的多个存储单元,其中所述多页面数据包括多个多位数据,其中,所述多个存储单元中的每一个存储单元根据所述多个多位数据中的相应一个多位数据被预编程为具有阈值电压,并且其中,所述阈值电压对应于多个预编程状态之一;基于所述多页面数据中的所述多个多位数据生成第一状态组代码,其中,所述第一状态组代码包括多个第一状态组数据,并且其中,所述多个第一状态组数据中的每一个第一状态组数据的位数少于所述多位页面数据中的所述多个多位数据的相应一个多位数据的位数;将所述第一状态组代码备份到所述非易失性存储器件;在从突然断电恢复电力之后,通过读取经过所述第一预编程操作预编程的所述多个存储单元来恢复所述多页面数据;基于从经过所述第一预编程操作预编程的所述多个存储单元恢复的所述多页面数据,对经过所述第一预编程操作预编程的所述多个存储单元执行第二预编程操作;基于所述多页面数据中的所述多个多位数据生成第二状态组代码,其中,所述第二状态组代码包括多个第二状态组数据,并且其中,所述多个第二状态组数据中的每一个第二状态组数据的位数少于所述多页面数据中的所述多个多位数据中的相应一个多位数据的位数;将所述第二状态组代码备份到所述非易失性存储器件;在从所述突然断电恢复电力之后,通过读取经过所述第二预编程操作预编程的所述多个存储单元来恢复所述多页面数据;将从经过所述第二预编程操作预编程的所述存储单元恢复的所述多页面数据重新编程到经过所述第二预编程操作预编程的所述多个存储单元。

附图说明

通过以下结合附图的详细描述,将更清楚地理解本发明构思的实施例,在附图中:

图1是根据实施例的存储系统的框图;

图2是图1的存储系统在发生突然断电(spo)的状态下的示例编程操作的图;

图3示出了根据实施例的示出非易失性存储器件的阈值电压分布的曲线图;

图4是图1的存储控制器的示例框图;

图5是图1的非易失性存储器件的示例框图;

图6是示出根据实施例的存储块的电路图;

图7示出了根据实施例的生成状态组代码的示例;

图8是根据实施例的图1的存储系统的操作方法的流程图;

图9是根据实施例的当发生spo时在存储控制器与非易失性存储器件之间的操作的流程图;

图10是根据实施例的当发生spo时在存储控制器与非易失性存储器件之间的操作的流程图;

图11是根据实施例的当从spo恢复电力时在存储控制器与非易失性存储器件之间的操作的流程图;

图12是用于描述图5的非易失性存储器件的读取操作的图;

图13是根据实施例的页面缓冲器的框图;

图14示出了根据实施例的在正常读取模式下的读取电压和在恢复读取模式下的读取电压的示例的曲线图;

图15是示出根据实施例的在正常读取模式下的读取电压的示例的表;

图16是示出根据实施例的在恢复读取模式下的读取电压的示例的表;

图17a和图17b示出了根据实施例的调节恢复读取电压的示例;

图18是根据实施例的存储系统的操作方法的流程图;

图19是根据实施例的存储系统的操作方法的流程图;

图20是根据实施例的存储系统的操作方法的流程图;

图21示出了根据实施例的具有芯片对芯片(chip-to-chip)结构的存储器件;

图22是根据实施例的将存储系统应用于固态硬盘(ssd)系统的示例的框图;和

图23是根据实施例的使用存储系统的网络系统的框图。

具体实施方式

在下文中将清楚地详细描述实施例,以使本发明构思的本领域普通技术人员容易地实施实施例。

图1是根据实施例的存储系统的框图。参照图1,存储系统10可以包括存储控制器100和非易失性存储(nvm)器件200。例如,存储系统10可以被实现为诸如固态硬盘(ssd)的存储设备。

存储控制器100可以控制nvm器件200的操作。存储控制器100可以向nvm器件200提供控制信号ctrl、命令cmd和/或地址addr以控制nvm器件200。在示例实施例中,存储控制器100可以响应于来自外部主机器件的请求,控制nvm器件200以向其编程数据data或从其读取数据data。

在示例实施例中,可以使用与数据data相同的输入/输出通道,将命令cmd和地址addr从存储控制器100发送到nvm器件200。或者,可以使用第一输入/输出通道将命令cmd和地址addr从存储控制器100发送到nvm器件200,而可以使用第二输入/输出通道将数据data从存储控制器100发送到nvm器件200。

存储控制器100可以包括电力检测器110、编程管理器120和缓冲存储器130。电力检测器110可以检测存储控制器100的电力状态。例如,电力检测器110可以基于提供给存储控制器100的电压来检测意外发生的突然断电(spo)以及从spo的电力恢复。当提供给存储控制器100的电压小于参考电压时,电力检测器110可以确定发生spo。当提供给存储控制器100的电压大于参考电压时,电力检测器110可以确定电力恢复。

编程管理器120可以管理nvm器件200的编程操作。编程管理器120可以根据为编程操作预定的时间表(schedule),向nvm器件200提供控制信号ctrl、命令cmd、地址addr和/或数据data。在示例实施例中,当在编程操作期间发生spo时,编程管理器120可以根据预定时间表向nvm器件200提供控制信号ctrl、命令cmd、地址addr和/或数据data,以使得编程操作正常完成。

缓冲存储器130可以临时存储数据。在示例实施例中,缓冲存储器130可以在编程操作中临时存储要提供给nvm器件200的数据data,或者可以在读取操作中临时存储从nvm器件200提供的数据data。

nvm器件200可以在存储控制器100的控制下操作。在示例实施例中,在存储控制器100的控制下,nvm器件200可以输出存储在其中的数据data或者可以存储从存储控制器100提供的数据data。

nvm器件200可以包括存储单元阵列210。存储单元阵列210可以包括多个存储单元。例如,存储单元可以包括闪存单元。然而,实施例不限于此,并且存储单元可以包括电阻式随机存取存储(rram)单元、铁电ram(fram)单元、相变ram(pram)单元、晶闸管ram(tram)单元和磁性ram(mram)单元中的至少一种。在下文中,描述将集中于存储单元包括nand闪存单元的实施例。

在示例实施例中,存储单元阵列210的每个存储单元可以存储n位数据,其中n是正整数。当n为2或更大时,存储单元可以被称为多阶单元(mlc),并且n位数据可以被称为多位数据。例如,当n为3时,存储单元可以被称为三阶单元(tlc)。例如,当n为4时,存储单元可以被称为四阶单元(qlc)。然而,当n为2或更大时,在下文中n位数据将被称为“多位数据”。

根据实施例,当在对多位数据进行编程操作期间发生spo时,存储系统10可以对比多位数据少量的数据进行备份,并且在电力恢复后基于备份数据来恢复多位数据。因此,可以减少这种数据备份所需的辅助电源和存储容量。在下文中,将详细描述用于在编程操作期间发生spo时有效地完成对多位数据的编程操作的实施例。

图2是图1的存储系统10在发生spo的状态下的示例编程操作的图。图3示出了根据实施例的示出nvm存储器件的阈值电压分布的曲线图。

参照图2和图3,当编程开始时,存储系统10可以将多位数据预编程(或粗略编程)到nvm器件200的存储单元。例如,当多位数据是4位数据时,被预编程的存储单元可以具有与16个阈值电压分布(即,16个状态(例如,如图3所示,擦除状态e以及第一编程状态p1至第十五编程状态p15))当中的一个阈值电压分布(即,一个预编程状态)相对应的阈值电压。16种阈值电压分布可以分别对应于4位数据可以具有的16个值。根据多位数据值,被预编程的存储单元可以对应于16个阈值电压分布中的一个阈值电压分布。在预编程中,相邻存储单元的阈值电压可能由于相邻存储单元之间的电容耦合而改变,因此,每个阈值电压分布的宽度可能会增加。结果,相邻阈值电压分布可能彼此交叠。在将多位数据预编程到存储单元之后,被预编程的存储单元可以具有在十六个阈值电压分布(即,十六个预编程状态)中的相应一个阈值电压分布内的阈值电压,并且两个相邻的阈值电压分布(即,两个相邻的预编程状态)可能彼此交叠。预编程状态的阈值电压可能落入两个相邻的阈值电压分布之间的交叠区域。

被预编程的存储单元的阈值电压分布可以被分类为多个状态组。例如,如图3所示,分别对应于擦除状态e以及第一编程状态p1至第十五编程状态p15的阈值电压分布可以被分类为第一状态组group1和第二状态组group2。在示例实施例中,状态组可以包括彼此不同的阈值电压分布,并且每个状态组的阈值电压分布彼此不交叠。例如,第一状态组group1可以包括分别对应于擦除状态e、第二编程状态p2、第四编程状态p4、第六编程状态p6、第八编程状态p8、第十编程状态p10、第十二编程状态p12和第十四编程状态p14的阈值电压分布,而第二状态组group2可以包括分别对应于第一编程状态p1、第三编程状态p3、第五编程状态p5、第七编程状态p7、第九编程状态p9、第十一编程状态p11、第十三编程状态p13和第十五编程状态p15的阈值电压分布。在示例实施例中,擦除状态e以及编程状态p1至p15中的每个状态可以被映射为格雷码(graycode),并且可以表示4位的多位数据。在格雷码映射中,在擦除状态e以及第一编程状态(或预编程状态)p1至第十五编程状态(或预编程状态)p15当中,具有奇数个“1”位的编程状态(或预编程状态)和具有偶数个“1”位的编程状态(或预编程状态)可以交替排列。稍后将参照图14描述使用格雷码映射的编程状态(或预编程状态)。

每个状态组可以用状态组数据(即,状态组标识符)表示。例如,第一状态组group1和第二状态组group2可以由1位状态组数据表示。例如,表示第一状态组group1的状态组数据可以表示为“0”,而表示第二状态组group2的状态组数据可以表示为“1”。然而,实施例不限于此,并且状态组数据的位数可以随状态组的数量而变化。例如,当阈值电压分布被分类为四个状态组时,状态组数据可以是2位数据。在这种情况下,状态组数据的位数可以小于多位数据的位数,并且当多位数据包括n位时,状态组数据可以包括(n-1)位。

根据被预编程的多位数据的数据值,预编程的多位数据可以对应于表示多个状态组中的一个状态组的状态组数据。例如,如图3所示,对应于擦除状态e的多位数据可以对应于表示第一状态组group1的状态组数据,而对应于第一编程状态p1的多位数据可以对应于表示第二状态组group2的状态组数据。

当在预编程操作完成之后发生spo时,存储系统10可以将与被预编程的存储单元相对应的状态组数据备份到nvm器件200。例如,如图3所示,当对应于第一编程状态p1的多位数据被预编程时,存储系统10可以将与被预编程的存储单元相对应的、表示第二状态组group2的状态组数据备份到nvm器件200。

当从spo恢复电力时,存储系统10可以基于备份的状态组数据恢复多位数据。例如,存储系统10可以基于状态组数据从被预编程的存储单元读取多位数据。如图3所示,即使在被预编程的存储单元的阈值电压分布之间存在交叠区域,当基于状态组数据对每个状态组执行读取操作时,也可以识别出包括交叠区域的阈值电压分布。因此,可以提高恢复的多位数据的可靠性。

存储系统10可以基于恢复的多位数据将多位数据重新编程(或精细编程)到存储单元。通过重新编程操作可以完成对多位数据的编程操作。如图3所示,由于重新编程操作,可以减小存储单元的阈值电压分布的宽度。因为经由重新编程操作存储单元的阈值电压的增加小于经由预编程操作阈值电压的增加,所以在重新编程操作中涉及的阈值电压分布可以更少地被耦合影响。因此,在重新编程操作之后,与预编程操作之后相比,存储单元可以具有更窄的阈值电压分布,并且可以减小阈值电压分布之间的交叠区域。因此,当从被重新编程的存储单元读取多位数据时,可以提高多位数据的可靠性。

在示例实施例中,用于对多位数据进行重新编程的重新编程验证电压可以高于用于对多位数据进行预编程的预编程验证电压。例如,可以使用与低于期望阈值电压的阈值电压相对应的预编程验证电压来执行预编程操作,而在重新编程操作中可以使用高于预编程验证电压的重新编程验证电压将存储单元编程为期望阈值电压。

如上面参照图2所描述的,存储系统10可以在发生spo之后备份状态组数据,但是实施例不限于此。例如,存储系统10可以在发生spo之前备份状态组数据。

如上所述,在spo的情况下,存储系统10可以对与多位数据相对应的状态组数据进行备份,并且可以基于备份的状态组数据完成对多位数据的编程操作。在这种情况下,因为状态组数据的位数少于多位数据的位数,所以与直接备份多位数据的操作相比,可以减小备份操作所需的辅助电源和存储容量。

在下文中,将集中于如图3所示的多位数据为4位数据并且状态组数据为1位数据的实施例来描述实施例,但不限于此。

图4是图1的存储控制器100的示例框图。参照图4,存储控制器100可以包括电力检测器110、编程管理器120、缓冲存储器130、处理器140、纠错码(ecc)电路150、主机接口160、非易失性存储器(nvm)接口170和总线180。在下文中,将省略上面关于图1给出的重复描述。

电力检测器110可以通过感测提供给存储控制器100的电压来检测spo的发生或从spo的电力恢复。例如,电力检测器110可以包括电压传感器。

编程管理器120可以管理对多位数据的编程操作。例如,如上面参照图2所描述的,编程管理器120可以生成控制信号ctrl、命令cmd和/或地址addr,使得通过预编程和重新编程对多位数据执行编程操作。当在对多位数据的编程操作期间检测到spo时,编程管理器120可以根据预定时间表生成控制信号ctrl、命令cmd和/或地址addr,以便完成对多位数据的编程操作。

在示例实施例中,编程管理器120可以管理地址信息,该地址信息包括编程多位数据的第一地址信息和备份状态组数据的第二地址信息。地址信息可以存储在存储控制器100中的缓冲存储器130中或单独存储器中。当发生spo时,地址信息可以与状态组数据一起备份到nvm器件200。

在示例实施例中,编程管理器120可以由诸如闪存转换层(ftl)的软件或固件来实现。在这种情况下,编程管理器120可以被加载到存储控制器100中的存储器(例如,缓冲存储器130或单独存储器),并由处理器140执行。然而,实施例不限于此,并且编程管理器120可以由硬件实现。

缓冲存储器130可以临时存储从主机提供的数据、在存储控制器100中生成的数据或者从nvm器件200提供的数据。例如,缓冲存储器130可以在编程操作期间临时存储要提供给nvm器件200的多位数据。当在编程操作期间发生spo时,存储在缓冲存储器130中的多位数据可能会丢失。在从spo恢复电力之后,从nvm器件200读取的多位数据可以被临时存储在缓冲存储器130中。例如,缓冲存储器130可以包括动态ram(dram)或静态ram(sram),但是实施例不限于此。

处理器140可以控制存储控制器100的所有操作。例如,处理器140可以驱动编程管理器120。因此,可以对多位数据执行编程操作。

ecc电路150可以纠正从nvm器件200读取的数据中的错误。例如,当从spo恢复电力时,ecc电路150可以纠正从nvm器件200读取的多位数据中的错误。当基于纠错后的多位数据执行重新编程时,可以提高被编程到nvm器件200的多位数据的可靠性。

主机接口160可以在主机与存储控制器100之间提供物理连接。例如,主机接口160可以包括各种接口,例如,高级技术附件(ata)接口、串行ata(sata)接口、外部sata(e-sata)接口、小型计算机系统接口(scsi)接口、串行连接scsi(sas)接口、外围组件互连(pci)接口、快速pci(pci-e)接口、电气和电子工程师协会(ieee)1394、通用串行总线(usb)接口、安全数字(sd)卡接口、多媒体卡(mmc)接口、嵌入式mmc(emmc)接口和紧凑型闪存(cf)卡接口。

nvm接口170可以在存储控制器100与nvm器件200之间提供物理连接。例如,可以通过nvm接口170在存储控制器100与nvm器件200之间传送控制信号ctrl、命令cmd、地址addr和数据data。总线180可以被配置为在存储控制器100的元件之间提供通道。

图5是图1的nvm器件200的示例框图。参照图5,nvm器件200可以包括存储单元阵列210、页面缓冲单元220、控制逻辑电路230、电压发生器240和行译码器250。尽管未示出,但是nvm器件200还可以包括数据输入/输出电路或输入/输出接口。nvm器件200还可以包括列逻辑、预译码器、温度传感器、命令译码器或地址译码器。

存储单元阵列210可以包括多个存储块blk1至blkz(其中“z”是正整数)。存储块blk1至blkz中的每一个存储块可以包括多个存储单元。存储块blk1至blkz可以被包括在一个存储板(memoryplane)中,但是实施例不限于此。在示例实施例中,nvm器件200可以包括两个或更多个被独立控制的存储板。存储单元阵列210可以通过位线bl连接到页面缓冲单元220,并且可以通过字线wl、串选择线ssl和接地选择线gsl连接到行译码器250。

在示例实施例中,存储单元阵列210可以包括三维(3d)存储单元阵列,其可以包括多个nand串。每个nand串可以包括分别连接到垂直堆叠在衬底上的字线的存储单元。这些将在下面参照图6进行详细描述。美国专利公开no.7,679,133、美国专利公开no.8,553,466、美国专利公开no.8,654,587、美国专利公开no.8,559,235和美国专利申请no.2011/0233648的公开内容通过引用并入本文。在示例实施例中,存储单元阵列210可以包括二维(2d)存储单元阵列,其可以包括在行方向和列方向上的多个nand串。

页面缓冲单元220可以包括多个页面缓冲器,例如,第一页面缓冲器pb1至第n页面缓冲器pbn(其中“n”是3或更大的整数)。第一页面缓冲器pb1至第n页面缓冲器pbn可以分别通过位线bl连接到存储单元。页面缓冲单元220可以响应于列地址y-addr选择位线bl中的至少一条位线。页面缓冲单元220可以根据操作模式用作写入驱动器或读出放大器。例如,在编程操作期间,页面缓冲单元220可以将与要编程的数据相对应的位线电压施加到选定位线。在读取操作期间,页面缓冲单元220可以通过感测选定位线的电流或电压来感测存储在存储单元中的数据。下面将参照图13来详细描述第一页面缓冲器pb1至第n页面缓冲器pbn中的每一个页面缓冲器。

控制逻辑电路230可以控制nvm器件200的各种操作。控制逻辑电路230可以响应于控制信号ctrl、命令cmd和/或地址addr,输出用于将数据编程到存储单元阵列210、从存储单元阵列210读取数据或擦除存储在存储单元阵列210中的数据的各种控制信号。例如,控制逻辑电路230可以输出电压控制信号ctrl_vol、行地址x-addr和列地址y-addr。

在示例实施例中,控制逻辑电路230可以根据控制信号ctrl、命令cmd和/或地址addr输出用于对多位数据进行编程的控制信号。例如,控制逻辑电路230可以输出用于预编程操作和重新编程操作的控制信号、用于备份状态组数据的控制信号、或者用于读取预编程的多位数据的控制信号。

电压发生器240可以基于电压控制信号ctrl_vol生成用于执行编程、读取和擦除操作的各种电压。例如,电压发生器240可以生成编程电压、读取电压和编程验证电压作为字线电压vwl。例如,可以使用增量步进脉冲编程(ispp)来生成编程电压。

在对多位数据的编程操作中,电压发生器240可以生成用于预编程的预编程验证电压和用于重新编程的重新编程验证电压。在这种情况下,预编程验证电压可以小于重新编程验证电压。

行译码器250可以响应于行地址x-addr而选择字线wl之一和串选择线ssl之一。例如,行译码器250可以在编程操作期间将编程电压和编程验证电压施加到选定字线,以及可以在读取操作期间将读取电压施加到选定字线。

图6是示出根据实施例的存储块的电路图。参照图6,存储块blk可以对应于图5中的存储块blk1至blkz之一。存储块blk可以包括nand串ns11至ns33。每个串(例如,ns11)可以包括彼此串联连接的串选择晶体管sst、多个存储单元mc和接地选择晶体管gst。

nand串ns11、ns21和ns31可以位于第一位线bl1与公共源极线csl之间;nand串ns12、ns22和ns32可以位于第二位线bl2与公共源极线csl之间;nand串ns13、ns23和ns33可以位于第三位线bl3与公共源极线csl之间。串选择晶体管sst可以连接到串选择线ssl1至ssl3中的相应的一条串选择线。存储单元mc可以分别连接到相应的字线wl1至wl8。接地选择晶体管gst可以连接到接地选择线gsl1至gsl3中的相应的一条接地选择线。串选择晶体管sst可以连接到第一位线bl1至第三位线bl3中的相应的一条位线,并且接地选择晶体管gst可以连接到公共源极线csl。nand串、字线、位线、接地选择线和串选择线的数量可以随实施例而变化。

图7示出了根据实施例的生成状态组代码的示例。参照图7,多页面数据可以包括要编程到与一条字线连接的“n”个存储单元的第一多位数据md1至第n多位数据mdn。例如,当多位数据是4位数据时,多页面数据可以包括第一页面数据pd1至第四页面数据pd4。每个存储块可以包括多个页面。每个页面是用于slc模式下的编程操作或读取操作的最小单位。在qlc模式的编程操作中,可以将多位数据中的与四个页面相对应的4位数据存储在页面缓冲单元220中,然后可以经由包括预编程(即,粗略编程)和重新编程(即,精细编程)的至少两个编程操作将其编程为十六个编程状态(即,十六个阈值电压分布)当中的期望阈值电压。

状态组代码可以包括基于第一多位数据md1至第n多位数据mdn生成的第一状态组数据sd1至第n状态组数据sdn。例如,可以基于多位数据中的“1”位(或“0”位)的数量来生成状态组数据。例如,当存在奇数个“1”位时,状态组数据可以被生成为1,而当存在偶数个“1”位时,状态组数据可以被生成为0。例如,当基于多位数据生成1位状态组数据时,可以基于第一多位数据md1“1001”生成第一状态组数据sd1“0”,并且可以基于第二多位数据md2“1000”生成第二状态组数据sd2“1”。因此,可以根据多页面数据生成状态组代码。

状态组代码的位数可以小于多页面数据的位数。例如,当从4位的多位数据生成1位的状态组数据时,状态组代码的位数可以是多页面数据的位数的1/4。

在下文中,将基于多页面数据和状态组代码来描述图1的存储系统10的详细操作。

图8是根据实施例的图1的存储系统10的操作方法的流程图。参照图1和图8,在操作s110中,存储系统10可以将多页面数据预编程到存储单元。在操作s120中,存储系统10可以基于多页面数据生成状态组代码。状态组代码可以在存储控制器100或nvm器件200中生成。例如,状态组代码可以通过对多位数据中的位进行逻辑运算生成。

在操作s130中,存储系统10可以判定是否已经发生spo。当已经发生spo时,在操作s140中,存储系统10可以将状态组代码备份到nvm器件200。在这种情况下,状态组代码可以被备份到与已经预编程了多页面数据的存储板相同的存储板,但是实施例不限于此。

在操作s150中,在电力恢复之后,存储系统10可以基于备份的状态组代码从被预编程的存储单元读取多页面数据。为了基于状态组代码执行读取操作,nvm器件200可以以与正常读取操作不同的方式读取多页面数据。例如,nvm器件200可以使用与在正常读取操作中使用的读取电压电平不同的读取电压电平来读取多页面数据。

在操作s160中,存储系统10可以基于读取到的多页面数据将多页面数据重新编程到存储单元。在这种情况下,被重新编程的存储单元可以与被预编程的存储单元相同。

当在预编程之后未发生spo时,在操作s170中,存储系统10可以将多页面数据重新编程到存储单元,而无需备份状态组代码。当未发生spo时,可以保持缓冲存储器130的多页面数据,因此,存储系统10可以基于存储在存储控制器100的缓冲存储器130中的多页面数据来对多页面数据进行重新编程。

尽管已经参照图8描述了在对多页面数据进行预编程之后生成状态组代码的实施例,但是实施例不限于此。例如,可以在预编程操作之前或期间生成状态组代码。

根据图8的实施例,当在编程操作期间发生spo时,存储系统10可以备份状态组代码而不是多页面数据。存储系统10可以基于备份的状态组代码从被预编程的存储单元恢复原始多页面数据,而无需备份原始多页面数据。因此,可以减小数据备份所需的辅助电源的大小和容量,因此,还可以减小存储系统10的制造成本和大小。

下面将参照图9和图10详细描述在发生spo时存储系统10的操作方法。

图9是根据实施例的当发生spo时在存储控制器与nvm器件之间的操作的流程图。详细地,图9示出了由nvm器件200生成状态组代码的实施例。

参照图9,在操作s210中,存储控制器100可以向nvm器件200发送对多页面数据的预编程命令。存储控制器100还可以将多页面数据与预编程命令一起发送到nvm器件200。例如,当多页面数据包括四个页面时,存储控制器100可以向nvm器件200发送命令cmd和地址addr,使得以qlc模式对多页面数据进行预编程。

在操作s220中,nvm器件200可以响应于预编程命令对多页面数据进行预编程。例如,nvm器件200可以基于预编程验证电压将多页面数据预编程到由地址addr指示的存储单元。

在操作s230中,存储控制器100可以向nvm器件200发送状态组代码生成命令。例如,存储控制器100可以向nvm器件200发送用于生成状态组代码的命令cmd。在操作s240中,nvm器件200可以响应于状态组代码生成命令来生成状态组代码。nvm器件200可以基于多页面数据生成状态组代码。

在示例实施例中,nvm器件200可以基于加载到图5中的页面缓冲单元220的多页面数据中的每条多位数据来生成状态组数据。例如,nvm器件200可以通过对多位数据中的位进行逻辑运算来生成状态组数据。所生成的状态组数据可以被临时存储在页面缓冲单元220中。

在操作s250中,存储控制器100可以向nvm器件200发送状态组代码输出命令。在操作s260中,nvm器件200可以响应于状态组代码输出命令向存储控制器100发送状态组代码。例如,nvm器件200可以输出临时存储在页面缓冲单元220中的状态组代码。从nvm器件200提供的状态组代码可以被存储在存储控制器100的缓冲存储器130中。根据实施例,可以跳过操作s250。例如,响应于状态组代码生成命令,nvm器件200可以生成状态组代码并向存储控制器100发送状态组代码。

在操作s270中,存储控制器100可以检测spo。根据spo的检测,在操作s280中,存储控制器100可以向nvm器件200发送状态组代码备份命令。存储控制器100可以将状态组代码与状态组代码备份命令一起发送到nvm器件200。例如,存储控制器100可以向nvm器件200发送命令cmd和地址addr,使得以slc模式来编程状态组代码。在这种情况下,存储控制器100可以向nvm器件200发送另一命令cmd以将nvm器件200的模式改变为slc模式,但是实施例不限于此。

在操作s290中,nvm器件200可以响应于状态组代码备份命令来备份状态组代码。例如,nvm器件200可以以slc模式将状态组代码编程到与地址addr相对应的存储单元。然而,实施例不限于此,并且nvm器件200可以响应于来自存储控制器100的命令cmd以mlc模式来编程状态组代码。

尽管图9的操作方法包括通过存储控制器100的命令从nvm器件200输出状态组代码的操作s250和s260,但是可以跳过操作s250和s260。在这种情况下,可以根据存储控制器100的回写(copyback)命令将状态组代码备份到nvm器件200。

图10是根据实施例的当发生spo时在存储控制器与nvm器件之间的操作的流程图。详细地,图10示出了由存储控制器100生成状态组代码的实施例。

参照图10,在操作s310中,存储控制器100可以向nvm器件200发送对多页面数据的预编程命令。在操作s320中,nvm器件200可以响应于预编程命令将多页面数据预编程到存储单元。

在操作s330中,存储控制器100可以生成状态组代码。存储控制器100可以基于多页面数据来生成状态组代码。在示例实施例中,存储控制器100可以基于存储在缓冲存储器130中的多页面数据来生成状态组代码。例如,存储控制器100可以通过对多位数据中的位进行逻辑运算来生成状态组数据。所生成的状态组数据可以临时存储在缓冲存储器130中。

在操作s340中,存储控制器100可以检测spo。根据spo的检测,在操作s350中,存储控制器100可以向nvm器件200发送状态组代码备份命令。存储控制器100可以将所生成的状态组代码与状态组代码备份命令一起发送到nvm器件200。例如,存储控制器100可以向nvm器件200发送命令cmd和地址addr,使得以slc模式来编程状态组代码。

在操作s360中,nvm器件200可以响应于状态组代码备份命令来备份状态组代码。例如,nvm器件200可以以slc模式将状态组代码编程到与地址addr相对应的存储单元。

下面将参照图11至图17b来详细描述在从spo恢复电力时存储系统10的操作方法。

图11是根据实施例的当从spo恢复电力时在存储控制器与非易失性存储器件之间的操作的流程图。参照图11,在操作s401中,存储控制器100可以检测加电。当检测到加电时,存储控制器100可以确定存储控制器100的电力被恢复。

在操作s402中,存储控制器100可以向nvm器件200发送状态组代码读取命令。存储控制器100可以基于与被预编程的存储单元相对应的地址信息来发送状态组代码读取命令。例如,存储控制器100可以向nvm器件200发送命令cmd和地址addr,使得以slc模式读取状态组代码。在这种情况下,存储控制器100可以向nvm器件200发送另一命令cmd以将nvm器件200的模式改变为slc模式。

在操作s403中,nvm器件200可以响应于状态组代码读取命令来读取状态组代码。例如,nvm器件200可以以slc模式从与地址addr相对应的存储单元读取状态组代码。所读取的状态组代码可以被存储在图5中的页面缓冲单元220中。

尽管未在图11中示出,但是当状态组代码与多页面数据存储在不同的存储板中时,或者当请求对状态组代码进行纠错时,可以根据存储控制器100的输出命令向存储控制器100发送所读取的状态组代码。在这种情况下,提供给存储控制器100的状态组代码可以由图4中的ecc电路150进行纠错,然后被重新发送到nvm器件200。

在操作s404中,存储控制器100可以向nvm器件200发送恢复读取模式改变命令。例如,存储控制器100可以通过控制信号ctrl或命令cmd发送恢复读取模式改变命令。在操作s405中,nvm器件200可以响应于恢复读取模式改变命令而改变为恢复读取模式。nvm器件200可以在恢复读取模式下以与正常读取模式不同的方式执行读取操作。例如,nvm器件200可以在恢复读取模式下使用与在正常读取模式下不同的读取电压来执行读取操作。

在操作s406中,存储控制器100可以向nvm器件200发送多页面数据读取命令。例如,存储控制器100可以向nvm器件200发送命令cmd和地址addr,使得以qlc模式读取多页面数据。

在操作s407中,nvm器件200可以响应于多页面数据读取命令来读取预编程的多页面数据。在恢复读取模式下,nvm器件200可以基于状态组代码来执行读取操作。例如,nvm器件200可以使用与状态组数据相对应的读取电压从每个预编程的存储单元读取多页面数据。例如,所读取的多页面数据可以被存储在图5中的页面缓冲单元220中。下面将参照图12至图17b来详细描述基于状态组代码的读取操作。

在操作s408中,存储控制器100可以向nvm器件200发送多页面数据输出命令。在操作s409中,nvm器件200可以响应于多页面数据输出命令而输出所读取的多页面数据。例如,nvm器件200可以向存储控制器100发送存储在页面缓冲单元220中的多页面数据。根据实施例,可以跳过操作s408。例如,响应于多页面数据读取命令,nvm器件200可以执行读取操作,并且向存储控制器100发送所读取的多页面数据。

在操作s410中,存储控制器100可以纠正多页面数据中的错误。当多页面数据中没有错误时,存储控制器100不执行错误纠正。因此,多页面数据可以被恢复,并且可以提高所恢复的多页面数据的可靠性。在示例实施例中,可以跳过操作s410中的错误纠正。

在示例实施例中,可以对每个页面执行操作s406至s410。例如,存储控制器100可以针对四个页面中的每个页面向nvm器件200提供读取命令,并且可以针对四个页面中的每个页面向nvm器件200提供输出命令。

在操作s411中,存储控制器100可以向nvm器件200发送正常读取模式改变命令。例如,存储控制器100可以通过控制信号ctrl或命令cmd发送正常读取模式改变命令。在操作s412中,nvm器件200可以响应于正常读取模式改变命令而改变为正常读取模式。nvm器件200可以在正常读取模式下使用预定读取电压来执行读取操作,而不管状态组代码如何。

在操作s413中,存储控制器100可以向nvm器件200发送多页面数据重新编程命令。存储控制器100还可以将已在操作s410中恢复的多页面数据与多页面数据重新编程命令一起发送到nvm器件200。例如,当多页面数据包括四个页面时,存储控制器100可以向nvm器件200发送命令cmd和地址addr,使得以qlc模式对多页面数据进行重新编程。

在操作s414中,nvm器件200可以响应于多页面数据重新编程命令对多页面数据进行重新编程。例如,nvm器件200可以基于重新编程验证电压将多页面数据编程到由地址addr指示的存储单元。为重新编程提供的地址addr可以与为预编程提供的地址addr相同。

图12是用于描述图5的nvm器件200的读取操作的图。参照图12,nvm器件200可以包括nand串ss1至ssn以及第一页面缓冲器pb1至第n页面缓冲器pbn。nand串ss1至ssn可以分别通过位线bl1至bln连接到第一页面缓冲器pb1至第n页面缓冲器pbn。

nand串ss1至ssn可以包括接地选择晶体管gst1至gstn、存储单元mc10至mcnm以及串选择晶体管sst1至sstn。接地选择晶体管gst1至gstn可以连接到公共源极线csl和接地选择线gsl,并且存储单元mc10至mcnm可以连接到第零字线wl0至第m字线wlm。串选择晶体管sst1至sstn可以连接到串选择线ssl和位线bl1至bln。

存储单元mc10至mcnm当中的连接到第一字线wl1的存储单元mc11至mcn1可以处于预编程状态。如上面参照图8至图10所描述的,可以根据来自存储控制器100的预编程命令,将多页面数据预编程到存储单元mc11至mcn1。例如,当多页面数据包括第一多位数据md1至第n多位数据mdn时,如图7所示,可以将第一多位数据md1预编程到存储单元mc11,并且可以将第二多位数据md2预编程到存储单元mc21。

第一页面缓冲器pb1至第n页面缓冲器pbn可以存储包括第一状态组数据sd1至第n状态组数据sdn的状态组代码。第一状态组数据sd1至第n状态组数据sdn可以分别对应于已经被预编程的存储单元mc11至mcn1。当从存储控制器100接收到状态组代码读取命令或状态组代码时,状态组代码可以被存储在第一页面缓冲器pb1至第n页面缓冲器pbn中。例如,第一页面缓冲器pb1可以存储与存储单元mc11相对应的第一状态组数据sd1,并且第二页面缓冲器pb2可以存储与存储单元mc21相对应的第二状态组数据sd2。

当在正常读取模式下对已经被预编程的存储单元mc11至mcn1执行读取操作时,可以向第一字线wl1施加正常读取电压,并且可以从存储单元mc11至mcn1读取多页面数据。

当在恢复读取模式下对已经被预编程的存储单元mc11至mcn1执行读取操作时,可以向第一字线wl1施加恢复读取电压,并且可以从存储单元mc11至mcn1读取多页面数据。恢复读取电压的电平可以不同于正常读取电压的电平。例如,为了读取被预编程到存储单元mc11的多位数据,可以将与第一状态组数据sd1相对应的第一恢复读取电压施加到第一字线wl1。为了读取被预编程到存储单元mc21的多位数据,可以将与第二状态组数据sd2相对应的第二恢复读取电压施加到第一字线wl1。当第二状态组数据sd2与第一状态组数据sd1相同时,第二恢复读取电压可以与第一恢复读取电压相同。当第二状态组数据sd2与第一状态组数据sd1不同时,第二恢复读取电压可以与第一恢复读取电压不同。换句话说,当与第一状态组数据sd1至第n状态组数据sdn可以具有的每个值(例如,“0”和“1”)相对应的恢复读取电压被施加到第一字线wl1时,可以从存储单元mc11至mcn1读取多页面数据。

图13是根据实施例的页面缓冲器的框图。参照图13,页面缓冲器221可以包括连接到感测节点so的感测锁存器(例如,s锁存器)201、强制锁存器(例如,f锁存器)202、高阶位锁存器(例如,m锁存器)203、中间位锁存器(例如,u锁存器)204、低阶位锁存器(例如,l锁存器)205和高速缓存锁存器(例如,c锁存器)206。页面缓冲器221还可以包括连接在位线bl与感测节点so之间的第一晶体管tr1。

感测锁存器201可以在读取操作或编程验证操作中存储感测存储在存储单元中的数据的结果或感测存储单元的阈值电压的结果。感测锁存器201还可以用于在编程操作中向位线bl施加编程位线电压或编程禁止电压。

强制锁存器202可以用于改善编程操作中的阈值电压变化。强制锁存器202中存储的值可以在编程操作期间随存储单元的阈值电压而变化,并且在编程操作期间施加到位线bl的电压可以随强制锁存器202中存储的值而变化。

高阶位锁存器203、中间位锁存器204、低阶位锁存器205和高速缓存锁存器206可以用于在编程操作期间存储外部输入的数据,并且可以被称为数据锁存器。数据锁存器的数量可以随实施例而变化。例如,当将4位数据编程到单个存储单元时,4位数据中的4个位可以分别被存储在高阶位锁存器203、中间位锁存器204、低阶位锁存器205和高速缓存锁存器206中。例如,当将5位数据编程到单个存储单元时,页面缓冲器221还可以包括第二中间位锁存器,并且5位数据中的5个位可以分别被存储在高阶位锁存器203、中间位锁存器204、第二中间位锁存器、低阶位锁存器205和高速缓存锁存器206。然而,实施例不限于此,并且页面缓冲器221还可以包括至少两个数据锁存器。在编程完成之前,高阶位锁存器203、中间位锁存器204、低阶位锁存器205和高速缓存锁存器206可以保留存储在其中的数据。另外,高速缓存锁存器206可以在读取操作中从感测锁存器201接收从存储单元读取的数据,并且通过数据输出线dout将该数据输出到页面缓冲器221的外部。

在示例实施例中,数据锁存器(即,高阶位锁存器203、中间位锁存器204、低阶位锁存器205和高速缓存锁存器206)中的至少一个数据锁存器可以临时存储状态组数据。或者,页面缓冲器221还可以包括至少一个临时存储状态组数据的状态组数据锁存器。

第一晶体管tr1可以由控制位线bl与感测节点so之间的连接的位线截止(shut-off)信号blshf驱动,因此可以被称为“位线截止晶体管”。例如,当从存储单元读取数据时,第一晶体管tr1导通并且将位线bl电连接到感测锁存器201。另外,当存储在感测锁存器201中的数据被发送到高速缓存锁存器206时,或者,当存储在高速缓存锁存器206中的数据被发送到强制锁存器202时,第一晶体管tr1可以被关断。

图14示出了根据实施例的在正常读取模式下的读取电压和在恢复读取模式下的读取电压的示例的图。参照图12和图14,根据多位数据值,已经被预编程的存储单元mc11至mcn1中的每一个存储单元可以对应于多个阈值电压分布(例如,擦除状态e以及第一编程状态p1至第十五编程状态p15)中的一个阈值电压分布。例如,当多位数据“1111”被预编程到存储单元mc11时,存储单元mc11可以处于擦除状态e。当多位数据“1110”、“1010”、“1000”、“1001”、“0001”、“0000”、“0010”、“0110”、“0100”、“1100”、“1101”、“0101”、“0111”、“0011”或“1011”被预编程到存储单元mc11时,存储单元mc11可以处于第一编程状态p1至第十五编程状态p15之一。然而,实施例不限于此,并且可以改变与阈值电压分布(例如,擦除状态e以及第一编程状态p1至第十五编程状态p15)中的每个阈值电压分布对应的多位数据值。在示例实施例中,具有奇数个“1”位的状态(例如,状态p1、p3、p5、p7、p9、p11、p13和p15)和具有偶数个“1”位的状态(例如,擦除状态e以及状态p2、p4、p6、p8、p10、p12和p14)可以交替布置。

已经被预编程的存储单元mc11至mcn1中的每一个存储单元可以对应于:例如第一状态组group1中的擦除状态e以及第二编程状态p2、第四编程状态p4、第六编程状态p6、第八编程状态p8、第十编程状态p10、第十二编程状态p12和第十四编程状态p14的阈值电压分布之一,或者例如第二状态组group2中的第一编程状态p1、第三编程状态p3、第五编程状态p5、第七编程状态p7、第九编程状态p9、第十一编程状态p11、第十三编程状态p13和第十五编程状态p15的阈值电压分布之一。例如,用多位数据“1111”、“1010”、“1001”、“0000”、“0110”、“1100”、“0101”或“0011”预编程的存储单元mc11可以对应于第一状态组group1;而用多位数据“1110”、“1000”、“0001”、“0010”、“0100”、“1101”、“0111”或“1011”预编程的存储单元mc11可以对应于第二状态组group2。例如,第一状态组group1可以对应于状态组数据“0”,而第二状态组group2可以对应于状态组数据“1”。

在正常读取模式下,第一正常读取电压v1n至第十五正常读取电压v15n可以用于从已经被预编程的存储单元mc11至mcn1读取多页面数据。例如,如图14所示,第一正常读取电压v1n至第十五正常读取电压v15n可以用于从通过重新编程完成了编程操作的存储单元读取多页面数据。当在预编程之后并且在重新编程之前用第一正常读取电压v1n至第十五正常读取电压v15n从存储单元mc11至mcn1读取多页面数据时,由于两个相邻状态的阈值电压分布之间的交叠,可能无法准确识别已经被预编程的存储单元mc11至mcn1中的每一个存储单元的状态,并且所读取的多位数据值可能与存储在被预编程的存储单元中的数据值不同。所读取的多位数据的可靠性可能降低。因此,当继续进行重新编程时,在从spo恢复电力之后,基于在正常读取模式下读取的多页面数据,可能降低预编程的多页面数据的可靠性。

在恢复读取模式下,第一恢复读取电压v1、v3、v5、v7、v9、v11和v13以及第二恢复读取电压v2、v4、v6、v8、v10、v12和v14可以用于从已经被预编程的存储单元mc11至mcn1读取多页面数据。在示例实施例中,第一恢复读取电压v1、v3、v5、v7、v9、v11和v13以及第二恢复读取电压v2、v4、v6、v8、v10、v12和v14彼此不同。可以使用第一恢复读取电压v1、v3、v5、v7、v9、v11和v13从已经被预编程的存储单元mc11至mcn1当中的与第一状态组group1相对应的存储单元读取多页面数据。可以使用第二恢复读取电压v2、v4、v6、v8、v10、v12和v14从已经被预编程的存储单元mc11至mcn1当中的与第二状态组group2相对应的存储单元读取多页面数据。例如,当多位数据“1111”、“1010”、“1001”、“0000”、“0110”、“1100”、“0101”或“0011”之一已经被预编程到图12的存储单元mc11时,例如,可以基于第一恢复读取电压v1、v3、v5、v7、v9、v11和v13从存储单元mc11读取多位数据。例如,当多位数据“1110”、“1000”、“0001”、“0010”、“0100”、“1101”、“0111”或“1011”之一已经被预编程到存储单元mc11时,可以基于第二恢复读取电压v2、v4、v6、v8、v10、v12和v14从存储单元mc11读取多位数据。在示例实施例中,使用第一状态组数据sd1来确定是使用第一恢复读取电压还是使用第二恢复读取电压来读取存储单元mc11。例如,当第一状态组数据sd1为“0”时,存储单元mc1可以对应于第一状态组group1,并且在恢复读取模式下可以使用第一恢复读取电压v1、v3、v5、v7、v9、v11和v13读取预编程在存储单元mc11中的多位数据。第一状态组group1的存储单元mc11可以具有偶数编号的状态p2、p4、p6、p8、p10、p12和p14以及擦除状态e中的一种状态。擦除状态e以及偶数编号的状态p2、p4、p6、p8、p10、p12和p14当中的两个相邻状态可以彼此间隔开而没有交叠,因此可以使用第一恢复读取电压v1、v3、v5、v7、v9、v11和v13来读取存储单元mc11。例如,当第一状态组数据sd1为“1”时,存储单元mc11可以对应于第二状态组group2,并且在恢复读取模式下可以使用第二恢复读取电压v2、v4、v6、v8、v10、v12和v14读取预编程在存储单元mc11中的多位数据。第二状态组group2的存储单元mc11可以具有奇数编号的状态p1、p3、p5、p7、p9、p11和p13中的一种状态。奇数编号的状态p1、p3、p5、p7、p9、p11和p13当中的两个相邻状态可以彼此间隔开而没有交叠,因此可以使用第二恢复读取电压v2、v4、v6、v8、v10、v12和v14来读取存储单元mc11。

此时,对应于第一状态组group1的第一恢复读取电压v1、v3、v5、v7、v9、v11和v13可以不同于对应于第二状态组group2的第二恢复读取电压v2、v4、v6、v8、v10、v12和v14。另外,在恢复读取模式下使用的恢复读取电压(例如,第一恢复读取电压v1、v3、v5、v7、v9、v11和v13以及第二恢复读取电压v2、v4、v6、v8、v10、v12和v14)可以不同于在正常读取模式下使用的正常读取电压(例如,第一正常读取电压v1n至第十五正常读取电压v15n)。

如上所述,在恢复读取模式下可以使用与正常读取电压(例如,第一正常读取电压v1n至第十五正常读取电压v15n)不同的恢复读取电压(例如,第一恢复读取电压v1、v3、v5、v7、v9、v11和v13以及第二恢复读取电压v2、v4、v6、v8、v10、v12和v14)。已经被预编程的存储单元mc11至mcn1中的每个存储单元的状态可以被相对准确地识别,并且所读取的多位数据值可以与存储在被预编程的存储单元中的数据值相同。所读取的多位数据的可靠性可以得以提高。因此,当基于在恢复读取模式下读取的多页面数据执行重新编程时,可以提高被预编程的多页面数据的可靠性。

图15是示出根据实施例的在正常读取模式下的读取电压的示例的表。参照图12至图15,当从已经在正常读取模式下被预编程的存储单元mc11至mcn1读取多页面数据时,可以基于正常读取电压表nrvt将读取电压施加到第一字线wl1。可以为每个页面施加不同的读取电压。

例如,当阈值电压分布对应于如图14所示的多位数据值时,可以将第一正常读取电压v1n、第四正常读取电压v4n、第六正常读取电压v6n和第十一正常读取电压v11n施加到第一字线wl1以读取多页面数据中的第一页面数据。可以将第三正常读取电压v3n、第七正常读取电压v7n、第九正常读取电压v9n和第十三正常读取电压v13n施加到第一字线wl1以读取多页面数据中的第二页面数据。可以将第二正常读取电压v2n、第八正常读取电压v8n和第十四正常读取电压v14n施加到第一字线wl1以读取多页面数据中的第三页面数据。可以将第五正常读取电压v5n、第十正常读取电压v10n、第十二正常读取电压v12n和第十五正常读取电压v15n施加到第一字线wl1以读取多页面数据中的第四页面数据。在这种情况下,可以以电平升序的顺序施加读取电压,但是可以不同地改变施加读取电压的顺序。

图16是示出根据实施例的在恢复读取模式下的读取电压的示例的表。参照图12至图16,当从已经在恢复读取模式下被预编程的存储单元mc11至mcn1读取多页面数据时,可以基于恢复读取电压表rrvt将读取电压施加到第一字线wl1。在这种情况下,可以为每个页面施加不同的读取电压。

例如,当阈值电压分布对应于如图14所示的多位数据值时,可以将与第一状态组group1相对应的第一恢复读取电压v1、v3、v5和v11以及与第二状态组group2相对应的第二恢复读取电压v4、v6和v10施加到第一字线wl1以读取多页面数据中的第一页面数据。第一页面数据可以通过第一恢复读取电压v1、v3、v5和v11从与第一状态组group1相对应的存储单元读取,以及可以通过第二恢复读取电压v4、v6和v10从与第二状态组group2相对应的存储单元读取。可以将与第一状态组group1相对应的第一恢复读取电压v3、v7、v9和v13以及与第二状态组group2相对应的第二恢复读取电压v2、v6、v8和v12施加到第一字线wl1以读取多页面数据中的第二页面数据。第二页面数据可以通过第一恢复读取电压v3、v7、v9和v13从与第一状态组group1相对应的存储单元读取,以及可以通过第二恢复读取电压v2、v6、v8和v12从与第二状态组group2相对应的存储单元读取。类似地,可以将与第一状态组group1相对应的第一恢复读取电压v1、v7和v13以及与第二状态组group2相对应的第二恢复读取电压v2、v8和v14施加到第一字线wl1以读取多页面数据中的第三页面数据;以及可以将与第一状态组group1相对应的第一恢复读取电压v5、v9和v11以及与第二状态组group2相对应的第二恢复读取电压v4、v10、v12和v14施加到第一字线wl1以读取多页面数据中的第四页面数据。在这种情况下,可以以电平升序的顺序施加读取电压,但是可以不同地改变施加读取电压的顺序。

如上所述,在恢复读取模式下,可以将与每个状态组相对应的恢复读取电压施加到第一字线wl1以读取单个页面。

在示例实施例中,第一页面缓冲器pb1至第n页面缓冲器pbn中的每一个页面缓冲器可以仅输出通过与存储在其中的状态组数据相对应的恢复读取电压感测到的数据。例如,可以通过与第一状态组group1相对应的恢复读取电压从存储单元mc11感测第一数据,以及可以通过与第二状态组group2相对应的恢复读取电压从存储单元mc11感测第二数据。所感测的第一数据和第二数据可以存储在图13中的感测锁存器201、强制锁存器202、高阶位锁存器203、中间位锁存器204和低阶位锁存器205中。第一页面缓冲器pb1可以基于存储在感测锁存器201、强制锁存器202、高阶位锁存器203、中间位锁存器204和低阶位锁存器205当中的至少一个锁存器中的状态组数据,通过高速缓存锁存器206仅输出第一数据或第二数据。

在示例实施例中,第一页面缓冲器pb1至第n页面缓冲器pbn中的每一个页面缓冲器可以输出通过与所有状态组数据相对应的恢复读取电压感测到的数据。例如,可以通过与第一状态组group1相对应的恢复读取电压从存储单元mc11感测第一数据,并且可以通过与第二状态组group2相对应的恢复读取电压从存储单元mc11感测第二数据。所感测的第一数据和第二数据可以存储在图13中的感测锁存器201、强制锁存器202、高阶位锁存器203、中间位锁存器204和低阶位锁存器205中。第一页面缓冲器pb1可以通过高速缓存锁存器206输出第一数据和第二数据。在这种情况下,存储控制器100可以基于存储在其中的状态组数据选择从nvm器件200提供的第一数据和第二数据中的一者。

在示例实施例中,可以针对每个页面提供命令cmd和地址addr,以在恢复读取模式下读取多页面数据。例如,可以提供四个命令cmd以读取包括四个页面的所有多页面数据。在这种情况下,根据单个命令cmd施加的恢复读取电压电平的数量可以大于在正常读取模式下根据单个命令cmd施加的正常读取电压电平的数量。例如,可以根据用于在恢复读取模式下读取第一页面数据的命令cmd来施加与第一状态组group1相对应的第一恢复读取电压v1、v3、v5和v11以及与第二状态组group2相对应的第二恢复读取电压v4、v6和v10。可以根据用于在正常读取模式下读取第一页面数据的命令cmd来施加第一正常读取电压v1n、第四正常读取电压v4n、第六正常读取电压v6n和第十一正常读取电压v11n。在这种情况下,根据单个命令cmd施加的恢复读取电压电平的数量可以为七个,并且根据单个命令cmd施加的正常读取电压电平的数量可以为四个。

图17a和图17b示出了根据实施例的调节恢复读取电压的示例。参照图17a,nand串211可以包括第零存储单元mc0至第m存储单元mcm。在对第零存储单元mc0至第m存储单元mcm的编程操作中,可以从第m存储单元mcm开始向第零存储单元mc0顺序地执行编程。越靠近串选择晶体管sst的存储单元可以越早地被编程,而远离串选择晶体管sst的存储单元可以随后被编程。例如,在第一存储单元mc1被预编程之后,第零存储单元mc0可以被预编程。

当在与nand串211的第一字线wl1连接的第一存储单元mcl被预编程之后从spo恢复电力时,可以在恢复读取模式下基于恢复读取电压从第一存储单元mcl读取多位数据。可以根据与第一存储单元mc1相邻的第零存储单元mc0的状态来调节恢复读取电压。例如,当第零存储单元mc0处于预编程状态时,可以增大或减小施加到第一字线wl1的恢复读取电压。因此,将调节后的恢复读取电压施加到第一字线wl1,使得可以从第一存储单元mc1读取多位数据。

参照图17b,在对第零存储单元mc0至第m存储单元mcm的编程操作中,可以从第零存储单元mc0开始向第m存储单元mcm顺序地执行编程。越靠近接地选择晶体管gst的存储单元可以越早地被编程,而远离接地选择晶体管gst的存储单元可以随后被编程。例如,在第一存储单元mc1被预编程之后,第二存储单元mc2可以被预编程。

当在与nand串211的第一字线wl1连接的第一存储单元mc1被预编程之后从spo恢复电力时,可以在恢复读取模式下基于恢复读取电压从第一存储单元mc1读取多位数据。可以根据与第一存储单元mc1相邻的第二存储单元mc2的状态来调节恢复读取电压。例如,当第二存储单元mc2处于预编程状态时,可以增大或减小施加到第一字线wl1的恢复读取电压。因此,将调节后的恢复读取电压施加到第一字线wl1,使得可以从第一存储单元mc1读取多位数据。

如上所述,当第一存储单元mc1被预编程然后与第一存储单元mc1相邻的第零存储单元mc0或第二存储单元mc2被预编程时,可以通过施加到与相邻于第一存储单元mc1的第零存储单元mc0连接的第零字线wl0或者与相邻于第一存储单元mc1的第二存储单元mc2连接的第二字线wl2的编程电压来改变第一存储单元mc1的阈值电压。因此,根据相邻存储单元(例如,第零存储单元mc0或第二存储单元mc2)的预编程状态来调节恢复读取电压,以补偿第一存储单元mc1的阈值电压的变化。

图18是根据实施例的存储系统的操作方法的流程图。参照图1和图18,在操作s510中,存储系统10可以将多页面数据预编程到存储单元。在操作s520中,存储系统10可以基于多页面数据生成状态组代码。

在操作s530中,存储系统10可以将状态组代码备份到nvm器件200。在操作s540中,存储系统10可以判定是否已经发生spo。当已经发生spo时,在操作s550中,在电力恢复之后,存储系统10可以基于备份的状态组代码从被预编程的存储单元读取多页面数据。例如,存储系统10可以基于状态组代码来读取多页面数据,如上面参照图11至图17b所描述的。

在操作s560中,存储系统10可以基于读取到的多页面数据将多页面数据重新编程到存储单元。被重新编程的存储单元可以与被预编程的存储单元相同。

当在预编程之后未发生spo时,在操作s570中,存储系统10可以将多页面数据重新编程到存储单元。存储系统10可以基于存储在存储控制器100的缓冲存储器130中的多页面数据来对多页面数据进行重新编程。

根据图18的实施例,存储系统10可以生成和备份状态组代码,而不管是否发生spo。例如,可以在检查spo的发生的操作540之前生成并备份状态组代码。对于每个被预编程的多页面数据,可以将状态组代码备份到nvm器件200。因为在发生spo时不对状态组代码执行备份,所以与在发生spo之后执行备份状态组代码的操作s240的图8的实施例相比,可以进一步减小用于备份状态组代码的辅助电源的大小和容量。

图19是根据实施例的存储系统的操作方法的流程图。参照图1和图19,在操作s610中,存储系统10可以将多页面数据预编程到第一存储单元。在操作s620中,存储系统10可以基于多页面数据生成状态组代码。

在操作s630中,存储系统10可以判定是否已经发生spo。当已经发生spo时,在操作s640中,存储系统10可以将状态组代码备份到nvm器件200。在操作s650中,在电力恢复之后,存储系统10可以基于备份的状态组代码从被预编程的第一存储单元读取多页面数据。例如,存储系统10可以基于状态组代码来读取多页面数据,如上面参照图11至图17b所描述的。

代替对被预编程的第一存储单元进行重新编程,存储系统10可以使用在操作s650中读取到的多页面数据对不同于第一存储单元的第二存储单元进行预编程。例如,在操作s660中,存储系统10可以基于读取到的多页面数据将多页面数据预编程到第二存储单元。在操作s670中,存储系统10可以基于读取到的多页面数据将多页面数据重新编程到第二存储单元。第二存储单元可以被包括在与第一存储单元的存储块不同的存储块中,但是实施例不限于此。

当在预编程之后未发生spo时,在操作s680中,存储系统10可以将多页面数据重新编程到第一存储单元。存储系统10可以基于存储在存储控制器100的缓冲存储器130中的多页面数据对多页面数据进行重新编程。

根据图19的实施例,存储系统10可以在从spo恢复电力之后将多页面数据编程到与被预编程的第一存储单元不同的第二存储单元。例如,当无法再对第一存储单元执行编程操作时,存储系统10可以基于恢复的多页面数据对第二存储单元执行新的编程操作。

图20是根据实施例的存储系统的操作方法的流程图。参照图1和图20,在操作s701中,存储系统10可以执行第一预编程操作以将多页面数据预编程到存储单元。在操作s702中,存储系统10可以基于多页面数据生成第一状态组代码。

在操作s703中,存储系统10可以判定是否已经发生spo。当已经发生spo时,在操作s704中,存储系统10可以将第一状态组代码备份到nvm器件200。在操作s705中,在电力恢复之后,存储系统10可以基于备份的第一状态组代码,从已经经过第一预编程操作的存储单元读取多页面数据。在操作s706中,存储系统10可以基于读取到的多页面数据执行第二预编程操作以将多页面数据预编程到已经经过第一预编程操作的存储单元。例如,第二预编程操作的预编程验证电压可以高于第一预编程操作的预编程验证电压。

当在第一预编程操作之后未发生spo时,在操作s707中,存储系统10可以执行第二预编程操作以将多页面数据预编程到已经经过第一预编程操作的存储单元。存储系统10可以基于存储在存储控制器100的缓冲存储器130中的多页面数据来执行第二预编程操作。

在操作s708中,存储系统10可以基于多页面数据生成第二状态组代码。例如,与因第一预编程操作而产生的阈值电压分布之间的交叠区域相比,可以减小因第二预编程操作而产生的阈值电压分布之间的交叠区域。因此,用于分类因第二预编程操作而产生的阈值电压分布的状态组的数量可以小于用于分类因第一预编程操作而产生的阈值电压分布的状态组的数量。因此,第二状态组代码的位数可以少于第一状态组代码的位数。

在操作s709中,存储系统10可以判定是否已经发生spo。当已经发生spo时,在操作s710中,存储系统10可以将第二状态组代码备份到nvm器件200。在操作s711中,在电力恢复之后,存储系统10可以基于备份的第二状态组代码,从已经经过第二预编程操作的存储单元读取多页面数据。在操作s712中,存储系统10可以基于读取到的多页面数据将多页面数据重新编程到已经经过第二预编程操作的存储单元。例如,用于重新编程的重新编程验证电压可以高于用于第二预编程操作的预编程验证电压。

当在第二预编程操作之后未发生spo时,在操作s713中,存储系统10可以将多页面数据重新编程到已经经过第二预编程操作的存储单元。当在操作s703中已经发生spo时,存储系统10可以基于从已经经过第一预编程操作的存储单元读取到的多页面数据来执行重新编程。当在操作s703中未发生spo时,存储系统10可以基于存储在存储控制器100的缓冲存储器130中的多页面数据来执行重新编程。

如上所述,存储系统10可以执行多个预编程操作。存储系统10可以生成与每个预编程操作相对应的状态组代码(即,状态组数据)。状态组数据的位数可以随预编程操作而变化,并且与较早的预编程操作相对应的状态组数据的位数可以大于与较晚的预编程操作相对应的状态组数据的位数。

图21示出了根据实施例的具有芯片对芯片结构的存储器件。

参照图21,存储器件900可以具有芯片对芯片(chip-to-chip,c2c)结构。c2c结构可以指通过以下方式形成的结构:在第一晶片上制造包括单元区域(即,存储单元区域)cell的上芯片,在不同于第一晶片的第二晶片上制造包括外围电路区域peri的下芯片,然后以接合方式连接上芯片和下芯片。例如,接合方式可以包括将形成在上芯片的最上金属层上的接合金属与形成在下芯片的最上金属层上的接合金属电连接的方法。例如,当接合金属可以由铜(cu)形成时,接合方式可以是铜对铜(cu-cu)接合。然而,本发明不限于此。在示例实施例中,接合金属可以由铝或钨形成。

存储器件900的外围电路区域peri和单元区域cell均可以包括外部焊盘接合区域pa、字线接合区域wlba和位线接合区域blba。

外围电路区域peri可以包括:第一衬底710,层间绝缘层715,形成在第一衬底710上的多个电路元件720a、720b和720c,分别连接到多个电路元件720a、720b和720c的第一金属层730a、730b和730c,以及分别形成在第一金属层730a、730b和730c上的第二金属层740a、740b和740c。在示例实施例中,第一金属层730a、730b和730c可以由钨形成,而第二金属层740a、740b和740c可以由铜形成。钨的电阻率高于铜的电阻率。

在图21所示的示例实施例中,尽管示出并描述了第一金属层730a、730b和730c以及第二金属层740a、740b和740,但是它们不限于此,并且可以在第二金属层740a、740b和740c上进一步形成一个或更多个金属层。形成在第二金属层740a、740b和740c上的该一个或更多个金属层的至少一部分可以由诸如铝等的金属形成。该一个或更多个金属层的金属的电阻率可以低于形成第二金属层740a、740b和740c的铜的电阻率。

层间绝缘层715可以设置在第一衬底710上并且覆盖多个电路元件720a、720b和720c,第一金属层730a、730b和730c以及第二金属层740a、740b和740c。层间绝缘层715可以包括诸如氧化硅、氮化硅等的绝缘材料。

下接合金属771b和772b可以在字线接合区域wlba中形成在第二金属层740b上。在字线接合区域wlba中,外围电路区域peri中的下接合金属771b和772b可以以接合方式电连接到上接合金属871b和872b,并且下接合金属771b和772b以及上接合金属871b和872b可以由铝、铜、钨等形成。此外,单元区域cell中的上接合金属871b和872b可以被称为第一金属焊盘,而外围电路区域peri中的下接合金属771b和772b可以被称为第二金属焊盘。

单元区域cell可以包括至少一个存储块。单元区域cell可以包括第二衬底810和公共源极线820。在第二衬底810上,可以在垂直于第二衬底810的上表面的方向(z轴方向)上堆叠多条字线831至838(即,830)。至少一条串选择线和至少一条接地选择线可以分别布置在多条字线830上和多条字线830的下方,即,多条字线830可以设置在至少一条串选择线与至少一条接地选择线之间。

在位线接合区域blba中,沟道结构ch可以在垂直于第二衬底810的上表面的方向上延伸,并且穿过多条字线830、至少一条串选择线和至少一条接地选择线。沟道结构ch可以包括数据存储层、沟道层、掩埋绝缘层等,并且沟道层可以电连接到第一金属层850c和第二金属层860c。例如,第一金属层850c可以是位线接触,并且第二金属层860c可以是位线。在示例实施例中,位线860c可以在平行于第二衬底810的上表面的第一方向(y轴方向)上延伸。

在图21所示的示例实施例中,设置有沟道结构ch、位线860c等的区域可以被定义为位线接合区域blba。在位线接合区域blba中,位线860c可以电连接到在外围电路区域peri中提供页面缓冲器893的电路元件720c。例如,位线860c可以连接到单元区域cell中的上接合金属871c和872c,并且上接合金属871c和872c可以连接到与页面缓冲器893的电路元件720c连接的下接合金属771c和772c。

在字线接合区域wlba中,多条字线830可以在平行于第二衬底810的上表面的第二方向(x轴方向)上延伸,并且可以连接到多个单元接触插塞841至847(即,840)。多条字线830和多个单元接触插塞840可以在由在第二方向上以不同长度延伸的多条字线830的至少一部分提供的焊盘中彼此连接。第一金属层850b和第二金属层860b可以顺序地连接到与多条字线830连接的多个单元接触插塞840的下部。多个单元接触插塞840可以在字线接合区域wlba中通过单元区域cell的上接合金属871b和872b以及外围电路区域peri的下接合金属771b和772b连接到电路区域peri。

多个单元接触插塞840可以电连接到在外围电路区域peri中提供行译码器894的电路元件720b。在示例实施例中,提供行译码器894的电路元件720b的工作电压可以不同于提供页面缓冲器893的电路元件720c的工作电压。例如,提供页面缓冲器893的电路元件720c的工作电压可以大于提供行译码器894的电路元件720b的工作电压。

公共源极线接触插塞880可以设置在外部焊盘接合区域pa中。公共源极线接触插塞880可以由诸如金属、金属化合物、多晶硅等的导电材料形成,并且可以电连接到公共源极线820。第一金属层850a和第二金属层860a可以顺序地堆叠在公共源极线接触插塞880的下部上。例如,设置有公共源极线接触插塞880、第一金属层850a和第二金属层860a的区域可以被定义为外部焊盘接合区域pa。

输入输出焊盘705和805可以设置在外部焊盘接合区域pa中。参照图21,覆盖第一衬底710的下表面的下绝缘膜701可以形成在第一衬底710的下方,并且第一输入输出焊盘705可以形成在下绝缘膜701上。第一输入输出焊盘705可以通过第一输入输出接触插塞703连接到设置在外围电路区域peri中的多个电路元件720a、720b和720c中的至少一个电路元件,并且可以通过下绝缘膜701与第一衬底710分隔开。另外,侧绝缘膜可以设置在第一输入输出接触插塞703与第一衬底710之间,以将第一输入输出接触插塞703与第一衬底710电分隔开。

参照图21,覆盖第二衬底810的上表面的上绝缘膜801可以形成在第二衬底810上,并且第二输入输出焊盘805可以设置在上绝缘膜801上。第二输入输出焊盘805可以通过第二输入输出接触插塞803连接到设置在外围电路区域peri中的多个电路元件720a、720b和720c中的至少一个电路元件。例如,第二输入输出接触插塞803可以通过下接合金属771a和772a连接到电路元件720a。

根据实施例,第二衬底810和公共源极线820不设置在其中设置有第二输入输出接触插塞803的区域中。而且,第二输入输出焊盘805在第三方向(z轴方向)上不与字线830交叠。参照图21,第二输入输出接触插塞803可以在与第二衬底810的上表面平行的方向上与第二衬底810分隔开,并且可以穿过单元区域cell的层间绝缘层815以连接到第二输入输出焊盘805。

根据实施例,可以选择性地形成第一输入输出焊盘705和第二输入输出焊盘805。例如,存储器件900可以仅包括设置在第一衬底710上的第一输入输出焊盘705,或者可以仅包括设置在第二衬底810上的第二输入输出焊盘805。或者,存储器件900可以包括第一输入输出焊盘705和第二输入输出焊盘805二者。

在包括在单元区域cell中的外部焊盘接合区域pa和位线接合区域blba以及包括在外围电路区域peri中的外部焊盘接合区域pa和位线接合区域blba中的每一者中,可以将最上金属层中的金属图案设置为虚设图案或者可以不存在最上金属层。

在外部焊盘接合区域pa中,存储器件900可以在外围电路区域peri的最上金属层中包括下金属图案773a。下金属图案773a可以对应于形成在单元区域cell的最上金属层中的上金属图案872a,并且可以具有与作为单元区域cell的最上金属层的单元区域cell的上金属图案872a相同的形状。在外围电路区域peri中,形成在外围电路区域peri的最上金属层中的下金属图案773a不连接到接触。类似地,在外部焊盘接合区域pa中,与形成在外围电路区域peri的最上金属层中的下金属图案相对应并且具有与外围电路区域peri的下金属图案相同的形状的上金属图案可以形成在单元区域cell的最上金属层中。

下接合金属771b和772b可以形成在字线接合区域wlba中的第二金属层740b上。在字线接合区域wlba中,外围电路区域peri的下接合金属771b和772b可以通过cu-cu接合电连接到单元区域cell的上接合金属871b和872b。

此外,在位线接合区域blba中,与形成在外围电路区域peri的最上金属层中的下金属图案752相对应并且具有与外围电路区域peri的下金属图案752相同的形状的上金属图案892可以形成在单元区域cell的最上金属层中。不在形成在单元区域cell的最上金属层中的上金属图案892上形成接触。例如,下金属图案752可以通过下接合金属751连接到电路元件720c。

在示例实施例中,与形成在单元区域cell和外围电路区域peri中的一者中的最上金属层中的金属图案相对应并且具有与金属图案相同的形状的增强金属图案可以形成在单元区域cell和外围电路区域peri中的另一者中的最上金属层中,并且可以不在增强金属图案上形成接触。

图22是根据实施例的将存储系统应用于ssd系统的示例的框图。参照图22,ssd系统1000可以包括主机1100和ssd1200。ssd1200可以通过信号连接器与主机1100交换信号sig,并且可以通过电力连接器接收电力pwr。ssd1200可以包括ssd控制器1210、辅助电源1220以及存储器件(mem)1230、1240和1250。存储器件1230、1240和1250可以分别通过通道ch1、ch2和chn连接到ssd控制器1210。

ssd控制器1210可以响应于从主机1100接收的信号sig来控制存储器件1230、1240和1250。ssd控制器1210可以使用上面参照图1至图21所述的存储控制器100来实现。例如,当在对多位数据进行编程期间发生spo时,ssd控制器1210可以控制存储器件1230、1240和1250,以备份对应于多位数据的状态组数据。ssd控制器1210可以控制存储器件1230、1240和1250,使得在电力恢复之后基于备份的状态组数据来恢复多位数据。因此,即使在对多位数据进行编程操作期间发生spo时,也可以正常完成编程操作。

存储器件1230、1240和1250可以在ssd控制器1210的控制下进行操作。存储器件1230、1240和1250均可以使用上面参照图1至图21所述的nvm器件200来实现。例如,当发生spo时,存储器件1230、1240和1250均可以在ssd控制器1210的控制下备份状态组数据。在电力恢复之后,存储器件1230、1240和1250均可以在ssd控制器1210的控制下基于备份的状态组数据读取预编程的多位数据。

辅助电源1220可以通过电力连接器连接到主机1100。辅助电源1220可以从主机1100接收电力pwr并且可以被充电。当从主机1100不平稳地供电时,辅助电源1220可以向ssd1200供电。

图23是根据实施例的使用存储系统的网络系统的框图。参照图23,网络系统2000是保存各种数据并提供服务的设施,并且可以被称为数据中心或数据存储中心。网络系统2000可以包括应用服务器2100至2100n和存储服务器2200至2200m。应用服务器2100至2100n和存储服务器2200至2200m可以被称为计算节点。应用服务器2100至2100n的数量和存储服务器2200至2200m的数量可以随实施例而变化并且可以彼此不同。

应用服务器2100至2100n和存储服务器2200至2200m可以通过网络2300相互通信。网络2300可以使用光纤信道(fc)或以太网来实现。此时,fc是用于高速数据传输的介质,并且可以使用提供高性能和/或高可用性的光学开关。根据网络2300的接入方法,存储服务器2200至2200m可以被设置为文件存储器、块存储器或对象存储器。

在示例实施例中,网络2300可以仅用于存储,例如存储区域网络(san)。例如,san可以包括使用fc网络并且根据fc协议(fcp)实现的fc-san。在示例实施例中,san可以包括使用传输控制协议/互联网协议(tcp/ip)网络并且根据因特网小型计算机系统接口(iscsi)(或tcp/ip上的scsi)协议实现的ip-san。在示例实施例中,网络2300可以包括诸如tcp/ip网络的普通网络。例如,可以根据诸如以太网上的fc(fcoe)协议、网络附接存储(nas)协议、结构上的快速nvm(nvme-of)协议的协议来实现网络2300。

在下文中,描述将集中于应用服务器2100和存储服务器2200。对应用服务器2100的描述也可以应用于其他应用服务器2100n,并且对存储服务器2200的描述也可以适用于其他存储服务器2200m。

应用服务器2100可以包括处理器2110和存储器2120。处理器2110可以控制应用服务器2100的所有操作,并且可以访问存储器2120并执行加载到存储器2120的指令和/或数据。根据实施例,应用服务器2100中包括的处理器2110和存储器2120的数量可以变化。在示例实施例中,处理器2110和存储器2120可以形成处理器-存储器对。在示例实施例中,处理器2110的数量可以与存储器2120的数量不同。

应用服务器2100还可以包括存储装置2150。此时,应用服务器2100中包括的存储装置2150的数量可以随实施例而变化。处理器2110可以向存储装置2150提供命令,并且存储装置2150可以响应于从处理器2110接收的命令进行操作。然而,实施例不限于此,并且应用服务器2100可以不包括存储装置2150。

应用服务器2100还可以包括开关(即,开关逻辑电路)2130和网络接口卡(nic)2140。开关2130可以在处理器2110的控制下将处理器2110或nic2140选择性地连接到存储装置2150。nic2140可以包括有线接口、无线接口、蓝牙接口、光学接口等。在示例实施例中,处理器2110和nic2140可以彼此集成。在示例实施例中,存储装置2150和nic2140可以彼此集成。

应用服务器2100可以通过网络2300将用户或客户端请求存储的数据存储在存储服务器2200至2200m之一中。应用服务器2100还可以通过网络2300从存储服务器2200至2200m之一获取用户或客户端请求的数据。例如,应用服务器2100可以包括web服务器或数据库管理系统(dbms)。

应用服务器2100可以通过网络2300访问均包括在应用服务器2100n中的存储器2120n或存储装置2150n、均包括在存储服务器2200中的存储器2220或存储装置2250、或者均包括在存储服务器2200m中的存储器2220m或存储装置2250m。因此,应用服务器2100可以对存储在应用服务器2100和2100n和/或存储服务器2200和2200m中的数据执行各种操作。例如,应用服务器2100可以执行用于在应用服务器2100和2100n和/或存储服务器2200和2200m之间移动或复制数据的指令。在这种情况下,为了安全或隐私,数据可以通过网络2300以加密状态移动。

存储服务器2200可以包括处理器2210和存储器2220。处理器2210可以控制存储服务器2200的所有操作,并且可以访问存储器2220并执行加载到存储器2220的指令和/或数据。根据实施例,存储服务器2200中包括的处理器2210和存储器2220的数量可以变化。在示例实施例中,处理器2210和存储器2220可以形成处理器-存储器对。在示例实施例中,处理器2210的数量可以与存储器2220的数量不同。

处理器2210可以包括单核处理器或多核处理器。例如,处理器2210可以包括通用处理器、中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、微控制器单元(mcu)、微处理器、网络处理器、嵌入式处理器、现场可编程门阵列(fpga)、专用指令集处理器(asip)、专用集成电路(asic)处理器等。

存储服务器2200还可以包括至少一个存储装置2250。存储服务器2200中包括的存储装置2250的数量可以随实施例而变化。存储装置2250可以包括控制器(ctrl)2251、nand闪存(nand)2252、dram2253和接口(i/f)2254。下面将详细描述存储装置2250的配置和操作。下面对存储装置2250的描述也可以应用于其他存储装置2150、2150n和2250m。

接口2254可以提供处理器2210与控制器2251之间的物理连接以及nic2240与控制器2251之间的物理连接。例如,接口2254可以通过使用专用电缆直接连接存储装置2250的直接附接存储(das)方法实现。例如,接口2254可以通过诸如以下各种接口方法来实现:ata接口、sata接口、e-sata接口、scsi、sas、pci接口、pcie接口、nvme接口、ieee1394、usb接口、sd卡接口、mmc接口、emmc接口和cf卡接口。

控制器2251可以控制存储装置2250的所有操作。控制器2251可以响应于编程命令将数据编程到nand闪存2252,并且可以响应于读取命令从nand闪存2252读取数据。例如,可以通过处理器2110或直接从存储服务器2200的处理器2210、存储服务器2200m的处理器2210m、应用服务器2100的处理器2110或应用服务器2100n的处理器2110n提供编程命令和/或读取命令。

nand闪存2252可以包括多个nand闪存单元。然而,实施例不限于此。存储装置2250可以包括除nand闪存2252之外的例如rram、pram或mram的nvm、磁存储介质或光存储介质。

dram2253可以用作缓冲存储器。例如,dram2253可以包括双倍数据速率同步dram(ddrsdram)、低功率ddr(lpddr)sdram、图形ddr(gddr)sdram、rambusdram(rdram)或高带宽存储器(hbm)。然而,实施例不限于此,并且存储装置2250可以使用除dram或nvm之外的其他易失性存储器作为缓冲存储器。dram2253可以临时存储(或缓存)要被编程到nand闪存2252的数据或从nand闪存2252读取的数据。

存储服务器2200还可以包括开关2230和nic2240。开关2230可以在处理器2210的控制下将处理器2210或nic2240选择性地连接到存储装置2250。在示例实施例中,处理器2210和nic2240可以彼此集成。在示例实施例中,存储装置2250和nic2240可以彼此集成。

存储装置2150、2150n、2250和2250m均可以对应于上面参照图1至图20描述的存储系统10。例如,存储装置2250可以根据来自处理器2110、2110n、2210和2210m之一的多页面数据编程命令进行操作。当存储装置2250根据来自处理器2110、2110n、2210和2210m之一的编程命令进行操作时,存储装置2250可以通过处理器2210接收编程命令,或者可以直接从通过开关2230连接的处理器接收编程命令。控制器2251可以响应于编程命令来控制nand闪存2252以存储多页面数据。例如,当在对多页面数据的编程操作期间发生spo时(例如,当在存储服务器2200中发生spo时),存储装置2250可以将与该多页面数据相对应的状态组代码备份到nand闪存2252。当从spo恢复电力时,存储装置2250可以基于备份的状态组代码来恢复预编程的多页面数据。存储装置2250可以通过基于恢复的多页面数据执行重新编程操作来完成对多页面数据的编程操作。

尽管已经参照本发明构思的实施例具体示出和描述了本发明构思,但是应当理解的是,在不脱离所附权利要求的精神和范围的情况下,可以对本文进行形式和细节上的各种改变。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜