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

文档序号:24157308发布日期:2021-03-05 12:41阅读:117来源:国知局
存储系统及操作其的方法与流程
存储系统及操作其的方法
[0001]
对相关申请的交叉引用
[0002]
本申请要求于2019年8月27日在韩国知识产权局提交的第10-2019-0105004号韩国专利申请的优先权的权益,其全部内容通过引用合并于此。


背景技术:

[0003]
本发明构思的各种示例实施例涉及存储系统、存储设备,并且更具体地,涉及具有改善的阈值电压分布特性的存储系统、具有改善的阈值电压分布特性的存储设备和/或操作其的方法。
[0004]
存储系统可以包括存储器控制器和存储设备。存储设备可以包括非易失性存储设备。作为非易失性存储器(nvm)设备的示例,闪存设备可以用在便携式电话、数码相机、个人数字助理(pda)、便携式计算机设备、固定计算机设备以及其他设备中。闪存设备可以包括多个块,每个块可以包括多个页。在闪存设备中,在对块执行擦除操作之后直到对块执行编程操作的时间段可以被定义为擦除编程间隔(epi)。由于闪存设备的特性,当在数据写入操作期间epi较长(例如,具有长持续时间)时,闪存设备的阈值电压分布特性可能会降低,因此,闪存设备上存储的数据的可靠性可能会降级。


技术实现要素:

[0005]
根据本发明构思的至少一个示例实施例的一方面,提供一种操作存储系统的方法,所述存储系统包括非易失性存储器。所述方法包括:使用处理电路测量存储器组的擦除编程间隔(epi),所述epi是从存储器组的擦除时间点到编程时间点的时间段,所述存储器组被包括在非易失性存储器中;使用处理电路,基于存储在存储器组的每个存储单元中的数据位数确定多个编程模式;使用处理电路,基于测量的存储器组的epi,从多个编程模式中选择存储器组的编程模式;以及使用处理电路对应于选择的编程模式来对存储器组执行编程操作,对存储器组执行编程操作包括基于选择的编程模式调整编程操作的至少一个电压电平。
[0006]
根据本发明构思的至少一个示例实施例的另一方面,提供一种操作存储系统的方法,所述存储系统包括非易失性存储器。所述方法包括:使用处理电路,响应于从主机接收的写入请求,测量非易失性存储器的存储块的擦除编程间隔(epi),epi是从存储块的擦除时间点到编程时间点的时间段;以及使用处理电路,基于epi的持续时间在第一编程模式或第二编程模式下对存储块执行编程操作,第一编程模式包括将n位数据写入存储块的每个存储单元,并且第二编程模式包括将m位数据写入存储块的每个存储单元,对存储块执行编程操作包括基于第一编程模式或第二编程模式调整编程操作的至少一个电压电平。在此,n和m是正整数,并且m小于n。
[0007]
根据本发明构思的至少一个示例实施例的另一方面,提供一种存储系统,包括:非易失性存储器,包括多个存储器组;以及存储器控制器,被配置为:测量多个存储器组的第一存储器组的擦除编程间隔(epi),epi是从存储器组的擦除时间点到编程时间点的时间
段,基于在存储器组的每个存储单元中存储的数据位数确定多个编程模式,基于测量的epi,从多个编程模式中选择用于第一存储器组的编程模式,以及基于选择的第一存储器组的编程模式控制对第一存储器组执行编程操作,控制编程操作包括基于选择的编程模式调整与编程操作相关联的至少一个电压电平。
附图说明
[0008]
通过以下结合附图的详细描述,将更清楚地理解本发明构思的各种示例实施例,在附图中:
[0009]
图1是根据至少一个示例实施例的存储系统的框图;
[0010]
图2是示出根据至少一个示例实施例的由于图1的非易失性存储器(nvm)的擦除编程间隔(epi)引起的阈值电压分布特性的示例图;
[0011]
图3是根据至少一个示例实施例的操作存储系统的方法的流程图;
[0012]
图4a至图4d是示出根据一些示例实施例的分别被编程为单级单元(slc)模式、多级单元(mlc)模式、三级单元(tlc)模式和四级单元(qlc)模式的存储单元的阈值电压的分布的示例图;
[0013]
图5是根据至少一个示例实施例的图1的存储器控制器的框图;
[0014]
图6是根据至少一个示例实施例的图1的非易失性存储器(nvm)的框图;
[0015]
图7示出根据至少一个示例实施例的epi表;
[0016]
图8是根据至少一个示例实施例的操作存储系统的方法的流程图;
[0017]
图9是根据至少一个示例实施例的在图8的操作方法中用于存储块的编程操作的概念图;
[0018]
图10是根据至少一个示例实施例的操作存储系统的方法的流程图;
[0019]
图11是根据至少一个示例实施例的在图10的操作方法中用于存储块的编程操作的概念图;
[0020]
图12是根据至少一个示例实施例的操作存储系统的方法的流程图;
[0021]
图13是根据至少一个示例实施例的在图12的操作方法中用于存储块的编程操作的概念图;
[0022]
图14是根据至少一个示例实施例的操作存储系统的方法的流程图;
[0023]
图15是根据至少一个示例实施例的在图14的操作方法中用于存储块的编程操作的概念图;
[0024]
图16a和图16b示出根据一些示例实施例的编程模式表;
[0025]
图17示出根据至少一个示例实施例的被配置为存储epi信息的存储块;
[0026]
图18a和图18b分别示出根据一些示例实施例的epi表和编程模式表;
[0027]
图19是根据至少一个示例实施例的存储块的局部截面图;
[0028]
图20是根据至少一个示例实施例的用于堆栈的编程操作的概念图;
[0029]
图21是根据至少一个示例实施例的用于堆栈的编程操作的概念图;
[0030]
图22a和图22b分别示出根据一些示例实施例的epi表和编程模式表;
[0031]
图23是根据至少一个示例实施例的用于子块的编程操作的概念图;
[0032]
图24是根据至少一个示例实施例的用于子块的编程操作的概念图;
[0033]
图25是根据至少一个示例实施例的在主机、存储器控制器和nvm之间的数据写入操作的流程图;
[0034]
图26是根据至少一个示例实施例的在主机、存储器控制器和nvm之间的数据读取操作的流程图;
[0035]
图27是根据至少一个示例实施例的在存储器控制器和nvm之间的垃圾收集操作的流程图;
[0036]
图28至图30是根据一些示例实施例的图1的存储系统的修改示例的框图;以及
[0037]
图31是将根据至少一个示例实施例的存储系统应用于固态驱动器(ssd)系统的示例的框图。
具体实施方式
[0038]
在下文中,将参照附图详细描述各种示例实施例。
[0039]
图1是根据至少一个示例实施例的存储系统10的框图。
[0040]
参考图1,存储系统10可以包括存储器控制器100和/或非易失性存储器(nvm)200等,但是示例实施例不限于此,并且可以在该存储系统10中包括更多或更少数量的组成元件。在至少一个示例实施例中,nvm 200可以被实现为存储芯片,并且存储系统10可以包括多个存储芯片等。在至少一个示例实施例中,存储器控制器100可以通过多个通道或单个通道分别连接到多个芯片。例如,存储系统10可以被实现为诸如固态驱动器(ssd)等的存储设备。
[0041]
存储器控制器100可以响应于来自主机host的写入/读取请求控制nvm 200将数据编程到nvm 200,读取存储在nvm 200中的数据,或者响应于来自主机host的擦除请求擦除存储在nvm 200中的数据。例如,存储器控制器100可以向nvm 200提供命令cmd和地址addr,并控制对nvm 200的编程、读取和擦除操作。此外,要编程的数据data和读取的数据data可以在存储器控制器100和nvm 200之间发送和接收。在至少一个示例实施例中,命令cmd和地址addr可以使用与数据data相同的输入/输出(i/o)通道从存储器控制器100发送到nvm 200。在至少一个示例实施例中,命令cmd和地址addr可以使用第一i/o通道从存储器控制器100发送到nvm 200,而数据data可以使用第二i/o通道从存储器控制器100发送到nvm 200,但是示例实施例不限于此。此外,存储器控制器100还可以将控制信号ctrl提供给nvm 200。
[0042]
nvm 200可以包括存储单元阵列210和/或控制电路220(例如,控制逻辑、控制器等)等,但不限于此。存储单元阵列210可以包括多个存储单元。例如,多个存储单元可以是闪存单元。在下文中,将基于多个存储单元是nand闪存单元的假设来详细描述示例实施例。然而,本发明构思的示例实施例不限于此,并且多个存储单元可以是电阻性存储单元,诸如电阻性ram(reram)单元、相变ram(pram)单元和/或磁性ram(mram)等。存储单元阵列210可以包括多个块,每个块可以包括多个页。每个页可以包括多个存储单元。在存储单元阵列210中,可以以块为单位执行数据擦除操作,并且可以以页为单位执行数据写入/读取操作,但是它们不限于此。
[0043]
控制电路220可以关于存储器操作来控制nvm 200的整体操作。控制电路220可以基于从存储器控制器100接收的命令cmd和地址add,输出各种控制信号,用于将数据编程到存储单元阵列210、从存储单元阵列210读取数据和/或擦除存储在存储单元阵列210中的数
据。根据至少一个示例实施例,控制电路220可以包括:包含逻辑电路的硬件;以及硬件/软件组合(诸如执行软件的处理器);或其组合。例如,控制电路更具体地可以包括但不限于中央处理单元(cpu)、算术逻辑单元(alu)、数字信号处理器、微型计算机、现场可编程门阵列(fpga)、片上系统(soc)、可编程逻辑单元、微处理器、专用集成电路(asic)等。
[0044]
在闪存设备中,从块的擦除时间点到块的编程时间点的时间段可以被定义为块的擦除编程间隔(erase program interval,epi)。由于闪存设备的特性,尤其是包括三维(3d)块的垂直nand(vnand)闪存,但不限于此,当epi被扩展和/或延长时,存储在闪存设备中的数据的可靠性可能会降低和/或减少等。例如,在执行擦除操作之后直到执行另一编程操作(例如,编程操作、写入操作等)为止的时段期间,空穴可能会扩散到相邻存储单元之间的空间区域。当在epi相对较长的状态下对数据进行编程时,在执行编程操作之后,电子和空穴可能会重新结合。因此,如参照图2详细描述的,存储单元的阈值电压的分布可能偏移。
[0045]
图2是示例性示出根据至少一个示例实施例的由于图1的nvm 200的epi引起的阈值电压分布特性的曲线图。
[0046]
参考图2,横坐标表示阈值电压,且纵坐标表示存储单元的数量。在第一种情况21下,在擦除块之后立即执行编程操作(例如,编程操作等),也就是说,当epi几乎为0时,存储单元可以根据(和/或基于)阈值电压而具有擦除状态e和第一至第n编程状态p1至pn中的一个。例如,第一编程状态p1和第二编程状态p2的读取电压电平可以分别被设置为期望的、定义的和/或先前定义为vr1和vr2。
[0047]
在第二种情况22下,在擦除块之后的第一时段期间执行编程操作,也就是说,当与第一种情况21相比时,当epi相对短时,阈值电压的分布通常可以向左偏移(或在阈值电压电平减小的方向上)。在第三种情况23下,在擦除块之后的第二时段期间执行编程操作,也就是说,当与第二情况22相比时,当epi相对长时,阈值电压的分布通常可以进一步向左偏移(或在阈值电压电平减小的方向上)。在此,第二时段可以长于第一时段,但是示例实施例不限于此。
[0048]
如上所述,当在epi相对长(和/或与期望或默认epi相比更长)的状态下对数据进行编程时,与在epi相对短(和/或与期望或默认epi相比更短)的状态下对数据进行编程的情况相比,阈值电压分布特性可能劣化。在这种情况下,当使用期望的、定义的和/或先前定义的读取电压电平vr1,vr2,...和vrn对存储单元执行读取操作时,可能发生读取错误,并且因此,存储在存储单元中的数据的可靠性可能会劣化和/或降低。另外,当被检测为具有长epi的块没有用于减少和/或防止由于epi引起的可靠性劣化时,nvm 200的存储空间可能没有被有效地使用,并且可能导致频繁执行、期望和/或要求垃圾收集操作,因此,nvm 200的寿命会缩短。
[0049]
返回参照图1,为了克服上述缺点,存储器控制器100可以包括epi检查器电路110和/或编程模式控制电路120等。epi检查器电路110可以在写入数据、诸如用户数据或元数据的操作期间检测存储器组的epi,但不限于此。例如,epi检查器电路110可以在垃圾收集操作、存储器擦除操作等期间检测存储器组的epi。另外,存储器组可以是存储块、存储堆栈和/或包括在存储单元阵列210中的子存储块。然而,本发明构思的示例实施例不限于此,并且epi检查器电路110可以在期望和/或需要用于存储器组的编程操作的各种情况下检测存储器组的epi。根据至少一个示例实施例,epi检查器电路110可以包括:包含逻辑电路的硬
件;以及硬件/软件组合(诸如执行软件的处理器);或其组合。例如,epi检查器电路更具体地可以包括但不限于中央处理单元(cpu)、算术逻辑单元(alu)、数字信号处理器、微型计算机、现场可编程门阵列(fpga)、片上系统(soc),可编程逻辑单元、微处理器、专用集成电路(asic)等。
[0050]
编程模式控制电路120可以基于检测的epi将多个编程模式中的一个确定为存储器组的编程模式。可以根据(和/或基于)存储在每个存储单元中的数据位数来设置、定义和/或预先定义多个编程模式。例如,多个编程模式可以包括四级单元(qlc)模式、三级单元(tlc)模式、多级单元(mlc)模式和单级单元(slc)模式等中的至少一个,但不限于此。下面将参照图4a至图4d描述多个编程模式。此外,编程模式控制电路120可以在确定的编程模式下控制用于存储器组的编程操作。因此,即使将数据写入具有长epi的存储器组中,也可以减少和/或防止数据可靠性的劣化。根据至少一个示例实施例,编程模式控制电路120可以包括:包含逻辑电路的硬件;以及硬件/软件组合(诸如执行软件的处理器);或其组合。例如,编程模式控制电路更具体地可以包括但不限于中央处理单元(cpu)、算术逻辑单元(alu)、数字信号处理器、微型计算机、现场可编程门阵列(fpga)、片上系统(soc)、可编程逻辑单元、微处理器、专用集成电路(asic)等。此外,根据至少一个示例实施例,epi检查器电路110和编程模式控制电路120可以被实现为和/或组合为单个电路。
[0051]
在一些示例实施例中,存储系统10可以是嵌入在电子设备中的内部存储器。例如,存储系统10可以是ssd、嵌入式通用闪存(ufs)存储设备和/或嵌入式多媒体卡(emmc)等,但不限于此。在一些示例实施例中,存储系统10是可拆卸地附接到电子设备的外部存储器。例如,存储系统10可以包括ufs存储卡、紧凑型闪存(cf)存储器、安全数字(sd)存储器、微型sd存储器、迷你sd存储器、极限数字(xd)存储器和/或记忆棒等
[0052]
存储系统10和主机host可以构成存储系统,但是示例实施例不限于此。存储系统可以被实现为例如个人计算机(pc)、数据服务器、网络耦合存储、物联网(iot)设备和/或便携式电子设备等。便携式电子设备可以是膝上型计算机、移动电话、智能手机、平板电脑、个人数字助理(pda)、企业数字助理(eda)、数字静态相机、数字摄像机、音频设备、便携式多媒体播放器(pmp)、个人导航设备(pnd)、mpeg-1音频第3层(mp3)播放器、手持游戏机、电子书(e-book)、虚拟现实设备、增强现实设备、自动驾驶车辆和/或可穿戴设备等。
[0053]
图3是根据至少一个示例实施例的操作存储系统的方法的流程图。参照图3,根据本示例实施例的操作方法可以是对存储系统进行编程以改善阈值电压分布特性的方法。例如,根据本示例实施例的操作方法可以包括在图1的存储系统10中按时间顺序执行的操作。
[0054]
在操作s110中,存储器控制器100可以检测存储器组的epi。例如,epi检查器电路110可以包括定时器(未示出),该定时器可以检测从对存储器组执行擦除操作或其他操作的时间点到对存储器组执行编程操作的时间点的时间段(例如,持续时间),作为存储器组的epi。在操作s120中,存储器控制器100可以基于检测的epi将编程模式确定为多个编程模式中的一个,包括例如qlc模式、tlc模式、mlc模式和/或slc模式等。例如,编程模式控制电路120可以将检测的epi与期望的和/或(先前)定义的参考时间进行比较,并选择多个编程模式中的一个。换句话说,可以基于检测的epi和期望的参考时间来选择编程模式。在操作s130中,存储器控制器100可以在确定的编程模式下对存储器组执行编程操作,包括基于确定的编程模式调整与编程操作相关联的至少一个电压电平(例如,调整与写入操作相关联
的一个或多个写入电压)。
[0055]
图4a至图4d是示出分别被编程为slc模式、mlc模式、tlc模式和qlc模式的存储单元的阈值电压的分布的曲线图的示例,然而示例实施例不限于此,并且例如,存储单元可以在其他nand/闪速存储器编程模式下操作。在图4a至图4d中,横坐标表示阈值电压,并且纵坐标表示存储单元的数量。
[0056]
参照图4a,单级单元(slc)模式可以是在每个存储单元中存储1位数据的编程模式,并且每个存储单元可以被编程为其中存储单元可以取决于(例如,基于)阈值电压的分布具有两个状态中的一个的slc模式。例如,被配置为存储数据“1”的存储单元可以处于擦除状态e,并且被配置为存储数据“0”的存储单元可以处于编程状态p,然而示例实施例不限于此,并且数据值可以对应于其他编程模式。
[0057]
参照图4b,多级单元(mlc)模式可以是其中在每个存储单元中存储2位数据的编程模式,并且每个存储单元可以被编程为其中存储单元可以取决于阈值电压的分布具有四个状态中的一个的mlc模式。例如,被配置为存储数据“11”的存储单元可以处于擦除状态e,并且被配置为分别存储数据“10”、“01”和“00”的存储单元可以处于第一至第三编程状态p1至p3。然而示例实施例不限于此,并且数据值可以对应于其他编程模式。
[0058]
参照图4c,三级单元(tlc)模式可以是其中在每个存储单元中存储3位数据的编程模式,并且每个存储单元可以被编程为其中存储单元可以取决于阈值电压的分布具有八个状态中的一个的tlc模式。例如,被配置为存储数据“111”的存储单元可以处于擦除状态e,并且被配置为分别存储数据“110”、“101”、“100”、“011”、“010”、“001”和“000”的存储单元可以分别处于第一至第七编程状态p1至p7,然而示例实施例不限于此,并且数据值可以对应于其他编程模式。
[0059]
参照图4d,四级单元(qlc)模式可以是其中在每个存储单元中存储4位数据的编程模式,并且每个存储单元可以被编程为其中存储单元可以取决于阈值电压的分布具有十六个状态中的一个的qlc模式。例如,被配置为存储数据“1111”的存储单元可以处于擦除状态e,并且被配置为分别存储数据“1110”、“1101”、“1100”、“1011”、“1010”、“1001”、“1000”、“0111”、“0110”、“0101”、“0100”、“0011”、“0010”、“0001”和“0000”的存储单元可以处于第一至第十五编程状态p1至p15。然而示例实施例不限于此,并且数据值可以对应于其他编程模式。
[0060]
参照图4a至图4d,两个相邻状态(即,两个谷)之间的间隔可以被定义为“谷值余量(valley margin)”。在被编程为slc模式的存储单元中,在擦除状态e和编程状态p之间可以存在第一谷值余量vm1。在被编程为mlc模式的存储单元中,在第一编程状态p1和第二编程状态p2之间可以存在小于第一谷值余量vm1的第二谷值余量vm2,但不限于此。在被编程为tlc模式的存储单元中,在第一编程状态p1和第二编程状态p2之间可以存在小于第二谷值余量vm2的第三谷值余量vm3,但不限于此。在被编程为qlc模式的存储单元中,在第一编程状态p1和第二编程状态p2之间可以存在小于第三谷值余量vm3的第四谷值余量vm4,但不限于此。如上所述,根据至少一个示例实施例,谷值余量可以从slc模式向qlc模式逐渐减小,然而示例性实施例不限于此,例如,谷值余量可以等于或大于先前谷值余量。
[0061]
如以上参照图2所描述的,根据至少一个示例实施例,由于epi而被编程的存储单元的阈值电压的分布可以向左偏移,或者换句话说,阈值电压的分布基于epi被减小和/或
调整。因此,可以在与其他编程模式的谷值余量相比、具有相对小的谷值余量的编程模式(例如,qlc模式等)中对具有短epi的块执行编程操作,而可以在与其他编程模式的谷值余量相比、具有相对大的谷值余量的编程模式(例如,slc模式等)中对具有长epi的块执行编程操作。下面将参照图8至图13对此进行描述。
[0062]
图5是根据至少一个示例实施例的图1的存储器控制器100的示例的框图。
[0063]
参照图5,存储器控制器100a可以包括epi检查器电路110、编程模式控制电路120、处理电路130、主机接口140、缓冲器150和/或nvm接口160等,但是不限于此。另外,存储器控制器100a还可以包括总线170,存储器控制器100a的组件可以通过总线170彼此通信。参照图1至图5呈现的以上描述可以应用于一个或多个其他示例实施例,并且将省略其重复描述。然而,示例实施例不限于此,并且示例实施例可以具有除了图1和图5的硬件结构之外的替代硬件结构。
[0064]
epi检查器电路110可以包括至少一个定时器,并且检测包括在nvm200的存储单元阵列210中的每个存储器组的epi。在至少一个示例实施例中,可以在多个存储器组之间共享包括在epi检查器电路110中的至少一个定时器。在至少一个示例实施例中,epi检查器电路110可以包括分别对应于多个存储器组的定时器。然而,本发明构思不限于此,并且epi检查器电路110可以被定义为包括能够测量时间的各种其他电路、组件和/或计算机可读指令。例如,当epi检查器电路110基于对由时钟发生器(未示出)产生的时钟信号的周期进行计数来测量时间时,epi检查器电路110也可以包括计数器等。
[0065]
编程模式控制电路120可以基于epi检查器电路110的检测结果将存储器组的编程模式确定为多个编程模式中的一个,包括qlc模式、tlc模式、mlc模式和slc模式中的至少一个。在至少一个示例实施例中,编程模式控制电路120可以被实现为软件或固件(例如,计算机可读指令等),被加载到存储器控制器100a的存储器中,并且由处理电路130执行。在至少一个示例实施例中,编程模式控制电路120可以被实现为硬件。
[0066]
处理电路130可以包括中央处理单元(cpu)、微处理器(mp)、算术逻辑单元(alu)、数字信号处理器、微型计算机、现场可编程门阵列(fpga)、片上系统(soc)、可编程逻辑单元、专用集成电路(asic)等,和/或可以是包括逻辑电路的硬连线电路,或其组合,但是示例实施例不限于此。处理电路130可以控制存储器控制器100a的整体操作。在至少一个示例实施例中,处理电路130可以被实现为多核处理器,例如,双核处理器、四核处理器等。根据至少在示例实施例中,处理电路130可以包括、替换和/或执行epi检查器电路110和编程模式控制电路120中的至少一个的功能。
[0067]
主机接口140可以在主机(例如,外部设备,计算设备等)和存储器控制器100之间提供物理连接。例如,主机接口140可以包括各种接口方法,诸如高级技术附件(ata)、串行ata(sata)、外部sata(e-sata)、小型计算机系统接口(scsi)、串行连接的scsi(sas)、外围组件互连(pci)、pci express(pci-e)、ieee 1394、通用串行总线(usb)、安全数字(sd)卡、多媒体卡(mmc)、嵌入式多媒体卡(emmc)和/或紧凑型闪存(cf)卡接口,但不是限于此。
[0068]
nvm接口160可以在存储器控制器100和nvm 200之间提供物理连接。例如,可以通过nvm接口160在存储器控制器100和nvm 200之间发送和/或接收命令cmd、地址addr和/或数据data等信号。可以将请求从主机写入的数据和从nvm 200读取的数据临时存储在缓冲器150中。
[0069]
图6是根据至少一个示例实施例图1的nvm 200的示例的框图。
[0070]
参照图6,nvm 200a可以包括存储单元阵列210、控制电路220、电压发生器230、行译码器240和/或页缓冲器250。尽管在图6中未示出,但是nvm 200a还可以包括与存储器操作(或多个)有关的各种其他组件,诸如数据i/o电路、i/o接口等。
[0071]
存储单元阵列210可以包括多个块blk1至blkz,并且块blk1至blkz的存储单元可以连接到字线wl、串选择线ssl、接地选择线gsl和/或位线bl等。存储单元阵列210可以通过字线wl、串选择线ssl和/或接地选择线gsl等连接到行译码器240,并且可以通过位线bl连接到页缓冲器250。每个存储单元可以存储至少一个位。在至少一个示例实施例中,每个存储单元可以对应于slc、mlc、tlc或qlc。
[0072]
在至少一个示例实施例中,存储单元阵列210可以包括二维(2d)存储单元阵列,其包括沿行方向和列方向布置的多个单元串,但是示例实施例不限于此,并且例如,存储单元阵列可以具有其他布置,诸如包括多个单元串的三维(3d)存储单元阵列等。每个单元串可以包括分别连接到字线的、沿例如垂直方向堆叠在基板上的存储单元。通过引用并入本文的以下专利文献公开了3d存储单元阵列的合适配置,其中,3d存储单元阵列被配置为多个级别,其中字线和/或位线在级别之间共享:美国专利no.7,679,133;no.8,553,466;no.8,654,587;no.8,559,235;和美国专利公开2011/0233648。
[0073]
控制电路220可以基于从存储器控制器100接收的命令cmd、地址addr和/或控制ctrl等信号输出各种内部控制信号,用于将数据编程到存储单元阵列210或从存储单元阵列210读取数据。例如,控制电路220可以输出电压控制信号ctrl_vol以控制由电压产生器230产生的各种电压的电平,将行地址x-addr提供给行译码器240,并且将列地址y-addr提供给页缓冲器250等。
[0074]
电压产生器230可以基于电压控制信号ctrl_vol产生用于对存储单元阵列210执行编程、读取和/或擦除操作等的各种类型的电压。例如,电压产生器230可以产生字线电压vwl,例如,编程电压、读取电压和编程验证电压等。响应于行地址x-addr,行译码器240可以选择多个字线wl中的一个并选择多个串选择线ssl中的一个。页缓冲器250可以响应于列地址y-addr从位线bl中选择一些位线。例如,取决于操作模式等,页缓冲器250可以操作为写入驱动器和/或读出放大器。
[0075]
在至少一个示例实施例中,控制电路220可以根据和/或基于与存储器组相对应的编程模式来产生用于对存储器组执行编程操作的电压控制信号ctrl_vol。例如,当编程模式是mlc模式时,如图4b所示,控制电路220可以产生用于产生编程电压和编程验证电压的电压控制信号ctrl_vol,使得存储单元被编程为例如第一至第三编程状态p1至p3中的一个,但是不限于此。例如,当编程模式是qlc模式时,如图4d所示,控制电路220可以产生用于产生编程电压和编程验证电压的电压控制信号ctrl_vol,使得存储单元被编程为第一至第十五编程状态p1至p15中的一个,等等。
[0076]
在至少一个示例实施例中,控制电路220可以根据和/或基于与存储器组相对应的编程模式产生用于对存储器组执行读取操作的电压控制信号ctrl_vol。例如,当编程模式是tlc模式时,如图4c所示,控制电路220可以产生与用于读取第一至第七编程状态p1至p7的读取电压相对应的电压控制信号ctrl_vol,但是示例实施例不限于此。例如,当编程模式是qlc模式时,如图4d所示,控制电路220可以产生与用于读取第一至第十五编程状态p1至
p15的读取电压相对应的电压控制信号ctrl_vol等。
[0077]
图7示出根据至少一个示例实施例的epi表et1。
[0078]
参照图7,epi表et1可以存储与多个存储块中的每一个相对应的epi信息。在下文中,为了简洁起见,将存储块称为块。例如,关于第一块blk1的epi信息可以被存储为t1,并且关于第二块blk2的epi信息可以被存储为t2等。在至少一个示例实施例中,epi表et1可以被存储在nvm 200的元区域中,但不限于此,并且存储单元可以被存储在其他存储区域和/或存储设备中。在至少一个示例实施例中,epi表et1可以被存储在存储系统10的动态随机存取存储器(dram)中。在至少一个示例实施例中,epi表et1可以被存储在存储系统10的静态ram中。在下文中,将主要参照图8至图16描述对每个块管理epi信息的至少一个示例实施例。
[0079]
图8是根据至少一个示例实施例的操作存储系统的方法的流程图。图9是根据至少一个示例实施例的在图8的操作方法中用于存储块的编程操作的概念图。
[0080]
参照图1、图8和图9,在操作s200中,存储系统10可以检测存储块的epi。例如,当接收到对第一块blk1的数据写入请求时,存储系统10可以检测第一块blk1的epi。在操作s210中,存储系统10可以确定检测的epi是否等于或短于参考时间tref。如果确定检测的epi等于或短于参考时间tref,则可以执行操作s240;否则,可以执行操作s250。换句话说,存储系统10可以基于检测的epi的长度来确定是否执行操作s240。
[0081]
当检测的epi等于或短于参考时间tref时,在操作s240中,存储系统10可以在其中将n位数据写入存储单元(n为正整数)的第一编程模式下执行编程操作。例如,n可以是4,并且第一编程模式可以是qlc模式,但是示例实施例不限于此。例如,当第一块blk1的epi等于或短于参考时间tref时,存储系统10可以在qlc模式下对第一块blk1的一些页执行编程操作,等等。
[0082]
否则,如果检测的epi超过参考时间tref,则在操作s250中,存储系统10可以在其中将m位数据写入存储单元(m是小于n的正整数)的第二编程模式下执行编程操作。例如,m可以是3,并且第二编程模式可以是tlc模式,但是示例实施例不限于此。例如,当第一块blk1的epi超过参考时间tref时,存储系统10可以在tlc模式下对第一块blk1的其余页中的一些页执行编程操作,等等。
[0083]
在至少一个示例实施例中,在qlc模式下对第一块blk1的一些页的编程操作之后,可以在已经经过期望的和/或预定的时间之后再次请求写入第一块blk1。因此,可以再次检测到第一块blk1的epi,并且epi可能在再次检测第一块blk1的epi的时间点超过参考时间tref。在这种情况下,可以在tlc模式下对第一块blk1的其余页中的一些页执行编程操作。
[0084]
图10是根据至少一个示例实施例的操作存储系统10的方法的流程图。
[0085]
图11是根据至少一个示例实施例的在图10的操作方法中用于存储块的编程操作的概念图。
[0086]
参照图1、图10和图11,根据本示例实施例的操作方法可以对应于图8所示的操作方法的修改示例,将省略其重复描述。在操作s210a中,存储系统10可以确定检测的epi是否等于或短于第一参考时间tref1。例如,第一参考时间tref1可以是大约25分钟,但是不限于此,并且参考时间可以被设置为任何期望的时间。如果确定检测的epi超过第一参考时间tref1,则在操作s220中,存储系统10可以确定检测的epi是否等于或短于第二参考时间
tref2。例如,第二参考时间tref2可以是三个小时等。如果确定检测的epi等于或短于第二参考时间tref2,则可以执行操作s250;否则,可以执行操作s260。
[0087]
在操作s250中,存储系统10可以在其中将m位数据写入存储单元的第二编程模式下执行编程操作。在操作s260中,存储系统10可以在其中将l位数据写入存储单元的第三编程模式下执行编程操作。(在此,l是小于m的正整数)。例如,l可以是2,并且第三编程模式可以是mlc模式,但是示例实施例不限于此。例如,当第一块blk1的epi超过第二参考时间tref2时,可以在mlc模式下对第一块blk1的其余页中的一些页执行编程操作,等等。
[0088]
图12是根据至少一个示例实施例的操作存储系统的方法的流程图。图13是根据至少一个示例实施例的在图12的操作方法中用于存储块的编程操作的概念图。
[0089]
参照图1、图12和图13,根据图1、图12和图13的示例实施例的操作方法可以对应于图10所示的操作方法的修改示例实施例,将省略其重复描述。在操作s220中,存储系统10可以确定检测的epi是否等于或短于第二参考时间tref2。如果确定检测的epi超过第二参考时间tref2,则在操作s230中,存储系统10可以确定检测的epi是否等于或短于第三参考时间tref3。例如,第三参考时间tref3可以是24小时,但是不限于此。如果确定检测的epi等于或短于第三参考时间tref3,则可以执行操作s260;否则,可以执行操作s270。
[0090]
在操作s260中,存储系统10可以在其中将l位数据写入存储单元的第三编程模式下执行编程操作。在操作s270中,存储系统10可以在其中将k位数据写入存储单元的第四编程模式下执行编程操作(k是小于l的正整数)。例如,k可以是1,并且第四编程模式可以是slc模式,但是示例实施例不限于此。例如,当第一块blk1的epi超过第三参考时间tref3时,存储系统10可以在slc模式下对第一块blk1的其余页中的一些页执行编程操作,但是示例实施例不限于此。
[0091]
图14是根据至少一个示例实施例的操作存储系统的方法的流程图。图15是根据至少一个示例实施例的在图14的操作方法中用于存储块的编程操作的概念图。
[0092]
参照图1、图14和图15,根据至少一个示例实施例的操作方法可以对应于图8所示的操作方法的修改示例,并且参照图8和图9呈现的描述也可以应用于当前示例实施例。例如,与图8的操作方法相比,根据图1、图14和图15的操作方法还可以包括操作s280和s290。然而,本发明构思的示例实施例不限于此。在一些示例实施例中,与图10或图12的操作方法相比,操作方法还可以包括操作s280和s290,等等。
[0093]
在操作s290中,存储系统10可以在默认编程模式下执行编程操作。例如,在对第一块blk1的编程操作期间发生突然断电(spo)事件之后,当再次通电时,可以在默认编程模式(例如,slc模式等)下对第一块blk1的其余页中的一些页执行编程操作。
[0094]
由于spo的发生,可以重置用于检测存储器组的epi的定时器和/或可以删除指示存储器组的擦除时间点的信息。由于这些原因,可能降低存储设备的epi信息的准确性。因此,当在发生spo之后对存储器组执行编程操作时,可以假设在自对应存储块的擦除时间点起已经经过大量时间,在默认编程模式下对对应存储块执行编程操作。例如,默认编程模式可以是具有相对大的谷值余量的slc模式或mlc模式,但是示例实施例不限于此。
[0095]
图16a和图16b示出根据一些示例实施例的编程模式表pmt1和pmt1'。
[0096]
参照图16a,编程模式表pmt1可以存储分别与多个逻辑页号(lpn)相对应的编程模式。在一些示例实施例中,编程模式表pmt1可以存储用于描述开始lpn和结束lpn的每个lpn
组的编程模式。例如,可以将用于第一lpn lpn1的编程模式确定为qlc模式,并且可以将用于第二lpn lpn2的编程模式确定为mlc模式,但是示例实施例不限于此。
[0097]
参照图16b,编程模式表pmt1'可以存储分别与多个物理页号(ppn)相对应的编程模式。在一些示例实施例中,编程模式表pmt1'可以存储用于描述开始ppn和结束ppn的每个ppn组的编程模式。例如,可以将用于第一ppn ppn1的编程模式确定为qlc模式,并且可以将用于第二ppn ppn2的编程模式确定为mlc模式,但是示例实施例不限于此。
[0098]
参照图1、图16a和图16b,在基于epi确定编程模式之后或者在确定的编程模式下对nvm 200执行编程操作之后,存储器控制器100可以更新编程模式表pmt1和/或pmt2。在至少一个示例实施例中,存储器控制器100可以将编程模式表pmt1和/或pmt2存储在nvm 200的元区域中。在至少一个示例实施例中,存储器控制器100可以将编程模式表pmt1和/或pmt2存储在存储器控制器100的存储器(例如,sram)和/或存储系统10的存储器(例如,dram)中等。
[0099]
图17示出根据至少一个示例实施例的被配置为存储epi信息的存储块blkz。
[0100]
参照图17,关于块blkz的第一至第三页page1至page3的epi信息和/或编程模式信息可以被存储在与块blkz的第一至第三页page1至page3有关的元区域中,但是示例实施例不限于此。此外,关于块blkz的其他页page(k-1)至page(k)的epi信息和/或编程模式信息可以被存储在与块blkz的页page(k-1)至page(k)有关的元区域中,但是示例实施例不限于此。
[0101]
作为第一示例,当接收到数据写入请求时,存储器控制器100可以读取存储在块blkz的元区域中的epi信息,并基于读取的epi信息等来确定块blkz的编程模式等。作为第二示例,当接收到数据读取请求时,存储器控制器100可以读取存储在块blkz的元区域中的编程模式信息,并基于读取的编程模式信息等调整块blkz的读取条件(例如,一个或多个读取电压电平)。
[0102]
图18a和图18b分别示出根据一些示例实施例的epi表et2和编程模式表pmt2。
[0103]
参照图18a,epi表et2可以存储与多个存储器堆栈中的每一个相对应的epi信息。在下文中,为了简洁起见,将子存储器堆栈称为堆栈。例如,可以将第一堆栈stk1的epi信息存储为t1',并且可以将第二堆栈stk2的epi信息存储为t2'等。
[0104]
参照图18b,编程模式表pmt2可以存储分别与多个堆栈相对应的编程模式。在一些示例实施例中,编程模式表pmt2可以存储描述开始堆栈和结束堆栈的每个堆栈组的编程模式。例如,可以将第一堆栈stk1的编程模式确定为qlc模式,并且可以将第二堆栈stk2的编程模式确定为mlc模式,但是示例实施例不限于此。在下文中,将参照图19描述堆栈的结构和定义。
[0105]
图19是根据至少一个示例实施例的存储块blk的局部截面图。
[0106]
参照图19,在根据至少一个示例实施例的垂直存储设备中,可以执行用于形成沟道孔的蚀刻工艺以在具有3d结构的存储块blk中形成沟道结构,并且沟道孔的直径可以根据存储块blk的高度而变化。然而示例实施例不限于此。例如,从具有3d结构的存储块blk的上部到其下部,沟道孔的直径可以减小。为了在具有3d结构的存储块blk中减小沟道孔的直径和/或防止沟道孔的直径减小得比期望的更大和/或过度减小,可以执行用于形成沟道孔的蚀刻工艺至少两次。具体地,在基板上形成第一堆栈stk1(即,第一堆栈结构)之后,可以
执行蚀刻工艺,并且可以在第一堆栈sk1上形成第二堆栈stk2(即,第二堆栈结构)。另外,可以在第二堆栈stk2上执行蚀刻工艺等。
[0107]
在至少一个示例实施例中,在具有3d结构的存储块blk中,第一堆栈stk1可以包括在垂直方向上交替设置的栅极电极310和/或绝缘膜320等,但是实施例不限于此。另外,堆叠在第一堆栈stk1上的第二堆栈stk2可以包括在垂直方向上交替设置的栅极电极340和/或绝缘膜350等,但是示例实施例不限于此。根据至少一个示例实施例,结构间层330可以位于第一堆栈stk1和第二堆栈stk2之间。此外,沟道结构360可以包括沟道362、围绕沟道362的外侧壁的介电膜结构363和/或位于沟道362内部的沟道掩埋膜图案361等。上述结构可以仅是至少一个示例实施例,并且根据一个或多个示例实施例的具有3d结构的存储块blk可以具有其中执行蚀刻工艺至少两次的各种其他结构。
[0108]
图20是根据至少一个示例实施例的用于堆栈的编程操作的概念图。
[0109]
参照图1和图18a至图20,存储器组可以对应于堆栈,并且存储系统10可以以堆栈为单元管理epi并确定编程模式。例如,块blk可以包括在垂直方向上堆叠在基板上的至少第一堆栈stk1和第二堆栈stk2,但是示例实施例不限于此。例如,第一堆栈stk1和第二堆栈stk2可以分别具有图19所示的第一堆栈stk1和第二堆栈stk2的简化结构。图8至图15所示的操作方法可以应用于本示例实施例。
[0110]
在至少一个示例实施例中,当接收到对块blk的数据写入请求时,存储系统10可以基于epi表et2来检测第一堆栈stk1的第一epi t1'。此后,存储系统10可以确定检测的第一epi t1'是否等于或短于第一参考时间(例如,图12的tref1)。如果确定检测的第一epi t1'等于或短于第一参考时间tref1,则存储系统10可以在其中将n位数据写入存储单元的第一编程模式下对第一堆栈stk1执行编程操作。例如,n可以是4,并且第一编程模式可以是qlc模式,但是示例实施例不限于此。
[0111]
在至少一个示例实施例中,存储系统10可以基于epi表et2来检测第二堆栈stk2的第二epi t2'。此后,存储系统10可以将检测的第二epi t2'与第一到第三参考时间(例如,图12的tref1,tref2和tref3)进行比较,但是示例实施例不限于此。当检测的第二epi t2'超过第二参考时间tref2时,存储系统10可以在其中将l位数据写入存储单元的第三编程模式下对第二堆栈stk2执行编程操作。例如,l可以是2,并且第三编程模式可以是mlc模式,但是示例实施例不限于此。
[0112]
图21是根据至少一个示例实施例的用于堆栈的编程操作的概念图。
[0113]
参照图1和图21,根据图1和图21的编程操作可以对应于图20所示的编程操作的修改示例实施例。在至少一个示例实施例中,当用于第一堆栈stk1的第一epi t1'等于或短于第一参考时间(例如,图12的tref1)时,存储系统10可以在例如qlc模式下对第一堆栈stk1的一些页执行编程操作,但是示例实施例不限于此。在对第一堆栈stk1的一些页执行编程操作之后,当第一epi t1'超过第一参考时间tref1时,存储系统10可以对第一堆栈stk1的其余页执行写入哑(dummy)数据的哑编程操作,但是示例实施例不限于此。如上所述,可以仅一个编程模式被应用于一个堆栈,而不是多个编程模式。
[0114]
此外,根据一些示例实施例,当在第一堆栈stk1的编程操作期间与第一堆栈stk1相对应的epi超过第一参考时间tref1时,可以将第二堆栈stk2的编程模式确定为qlc模式、tlc模式、mlc模式和slc模式等中的至少一个。在这种情况下,可以不对第二堆栈stk2执行
写入哑数据的哑编程操作。因此,可以对每个子块有效地执行编程操作,子块是比存储块更小的单元。
[0115]
图22a和图22b分别示出根据一些示例实施例的epi表et3和编程模式表pmt3。
[0116]
参照图22a,epi表et3可以存储与多个子存储块中的每一个相对应的epi信息。在下文中,为了简洁起见,将子存储块称为子块。例如,关于第一子块sblk1的epi信息可以被存储为t1",而关于第二子块sblk2的epi信息可以被存储为t2"。
[0117]
参照图22b,编程模式表pmt3可以存储分别与多个子块相对应的编程模式。在一些示例实施例中,编程模式表pmt3可以存储用于描述开始子块和结束子块的每个子块组的编程模式。例如,可以将第一子块sblk1的编程模式确定为qlc模式,并且可以将第二子块sblk2的编程模式确定为mlc模式,但是示例实施例不限于此。在下文中,将参照图23和图24主要描述对每个子块管理epi信息的至少一个示例实施例。
[0118]
图23是根据至少一个示例实施例的用于子块的编程操作的概念图。
[0119]
参照图1和图22a至图23,存储器组可以对应于子块,并且存储系统10可以以子块为单位管理epi并确定编程模式。在此,子块可以是独立可擦除单元,并且可以被称为部分块。例如,块blk'可以至少包括第一子块sblk1和第二子块sblk2,但不限于此。
[0120]
第一子块sblk1可以包括第0字线wl0至第i字线wli,并且第二子块sblk2可以包括第i+1字线wli+1至第m字线wlm。当块blk'的尺寸增加时,块blk'可以被划分成包括第一子块sblk1和第二子块sblk2等的多个子块,以促进块的管理。在这种情况下,可以对每个子块执行擦除操作,并且存储块blk'可以是可以同时被擦除的期望和/或最大存储单元。
[0121]
在至少一个示例实施例中,当接收到对块blk'的数据写入请求时,存储系统10可以基于epi表et3来检测第一子块sblk1的第一epi t1"。此后,存储系统10可以确定检测的第一epi t1"是否等于或短于第一参考时间(例如,图12的tref1等)。如果确定检测的第一epi t1"等于或短于第一参考时间tref1,则存储系统10可以在其中将n位数据写入存储单元的第一编程模式下对第一子块sblk1执行编程操作。例如,n可以是4,并且第一编程模式可以是qlc模式,但是示例实施例不限于此。
[0122]
在至少一个示例实施例中,存储系统10可以基于epi表et3来检测第二子块sblk2的第二epi t2"。此后,存储系统10可以将检测的第二epi t2"与第一至第三参考时间(例如,图12的tref1、tref2和tref3等)进行比较。当检测的第二epi t2"超过第二参考时间tref2时,存储系统10可以在其中将l位数据写入存储单元的第三编程模式下对第二子块sblk2执行编程操作。例如,l可以是2,并且第三编程模式可以是mlc模式,但是示例实施例不限于此。
[0123]
图24是根据至少一个示例实施例的用于子块的编程操作的概念图。
[0124]
参照图1和图24,根据图1和图24的编程操作可以对应于图23所示的编程操作的修改示例。在至少一个示例实施例中,当第一子块sblk1的第一epi t1'等于或短于第一参考时间(例如,图12的tref1)时,存储系统10可以在例如qlc模式下对第一子块sblk1的一些页执行编程操作,但是示例实施例不限于此。在对第一子块sblk1的一些页执行编程操作之后,当第一epi t1'超过第一参考时间tref1时,存储系统10可以对第一子块sblk1的其余页执行写入哑数据的哑操作,但是示例实施例不限于此。如上所述,可以仅一个编程模式被应用于一个子块,而不是多个编程模式。
[0125]
此外,根据一些示例实施例,当在第一子块sblk1的编程操作期间与第一子块sblk1相对应的epi超过第一参考时间tref1时,第二子块sblk2的编程模式可以被确定qlc模式、tlc模式、mlc模式和slc模式等中的至少一个。在这种情况下,可以不对第二子块sblk2执行写入哑数据的哑编程操作。因此,可以对每个子块有效地执行编程操作,子块是比存储块小的单元。
[0126]
图25是根据至少一个示例实施例的在主机400、存储器控制器100和/或nvm 200等之间的数据写入操作的流程图。
[0127]
参照图25,在操作s310中,主机400可以发出数据写入请求。在操作s320中,主机400可以将数据写入请求和地址addr发送到存储器控制器100。在操作s330中,存储器控制器100可以检测与接收的地址addr相对应的存储器组的epi。例如,存储器控制器100可以基于epi表来检测存储器组的epi(参考图7的et1、图18a的et2和图22a的et3,但是示例实施例不限于此)
[0128]
在操作s340中,存储器控制器100可以基于检测的epi确定存储器组的编程模式。在操作s350中,存储器控制器100可以在确定的编程模式下发布编程命令(例如,编程命令,诸如写入命令等)。在操作s360中,存储器控制器100可以将编程命令连同编程模式一起发送到nvm 200。在这种情况下,存储器控制器100还可以将要写入的用户数据和/或元数据发送到nvm 200。在操作s370中,nvm 200可以在编程模式下对存储器组执行编程操作,诸如基于检测的epi使用调整的写入电压电平来执行写入命令。在操作s380中,nvm 200可以将指示编程操作已经完成的响应消息发送到存储器控制器100。在操作s390中,存储器控制器100可以将指示数据写入操作已经完成的响应消息发送到主机400。
[0129]
图26是根据至少一个示例实施例的在主机400、存储器控制器100和/或nvm 200等之间的数据读取操作的流程图。
[0130]
参照图26,在操作s410中,主机400可以发出数据读取请求。在操作s420中,主机400可以向存储器控制器100发送数据读取请求和/或地址addr。在操作s430中,存储器控制器100可以检测与接收的地址addr相对应的epi和/或编程模式。例如,存储器控制器100可以基于epi表来检测存储器组的epi(参考图7的et1、图18a的et2和图22a的et3,但是示例实施例不限于此)。例如,存储器控制器100可以基于编程模式表来检测存储器组的epi(参考图16a的pmt1、图16b的pmt1'、图18b的pmt2和图22b的pmt3,但是示例实施例不限于此)。
[0131]
在操作s440中,存储器控制器100可以基于检测的epi和/或编程模式来调整对存储器组的读取条件。例如,读取条件可以包括读取电压电平和/或读取时间。在操作s450中,存储器控制器100可以通过基于检测的epi和/或编程模式调整读取电压来发出具有调整的读取条件的读取命令。在操作s460中,存储器控制器100可以将读取命令与读取条件一起发送到nvm 200。在操作s470中,nvm 200可以在调整的读取条件下对存储器组执行读取操作。在操作s480中,nvm 200可以将读取数据发送到存储器控制器100。在操作s490中,存储器控制器100可以将读取数据发送到主机400。
[0132]
图27是根据至少一个示例实施例的在存储器控制器100和/或nvm 200等之间的垃圾收集操作的流程图。
[0133]
参照图27,在操作s510中,存储器控制器100可以开始垃圾收集操作。垃圾收集操作可以是指通过将包括在源块中的有效数据编程到目标块来使源块成为空闲块的操作。例
如,存储器控制器100可以执行垃圾收集操作作为后台操作。在操作s520中,存储器控制器100可以检测目标块的epi。在操作s530中,存储器控制器100可以基于检测的epi来确定用于目标块的编程模式。在操作s540中,存储器控制器100可以在确定的编程模式下发出编程命令。
[0134]
在操作s550中,存储器控制器100可以将编程命令与编程模式一起发送到nvm200,或者换言之,编程命令可以包括指示编程模式的编程模式信息。在操作s560中,nvm 200可以基于编程模式信息对目标块执行编程操作。在操作s570中,nvm 200可以将指示对目标块的编程操作已经完成的响应消息发送到存储器控制器100。
[0135]
图28是根据至少一个示例实施例的图1的存储系统的修改示例的框图。
[0136]
参照图28,存储系统10a可以包括存储器控制器100a和/或nvm 200等,并且存储器控制器100a可以包括epi检查器电路110a和/或编程模式控制电路120等。此外,nvm 200可以包括存储单元阵列210,该存储单元阵列210包括多个块blk1至blkz和/或控制电路220等。根据至少一个示例实施例的存储系统10a可以对应于图1的存储系统10的修改示例,并且参照图1至图27呈现的上述描述可以被应用于修改示例实施例。
[0137]
epi检查器电路110a可以包括多个定时器(例如,第一定时器111和第二定时器112等),并且定时器的数量(例如,第一定时器111和第二定时器112等)可以对应于块blk1至blkz的数量。存储器控制器100a可以确定被请求从主机写入数据的块的位置。epi检查器电路110a可以参考与所确定的块相对应的定时器的值,并检测该块的epi。第一定时器111和第二定时器112中的每一个可以确定在与其对应的块的擦除时间点和写入时间点之间的时段,并且检测和/或测量块的epi。在示例中,与第一块blk1相对应的第一定时器111可以确定从第一块blk1的擦除时间点到第一块blk1的编程时间点的时间流逝,并检测和/或测量第一块blk1的epi。
[0138]
图29是根据至少一个示例实施例的图1的存储系统的修改示例的框图。
[0139]
参考图29,存储系统10b可以包括存储器控制器100b和/或nvm 200等。存储器控制器100b可以包括epi检查器电路110b、编程模式控制电路120和/或擦除时间存储电路180等。根据至少一个示例实施例的存储系统10b可以对应于图1的存储系统10的修改示例,并且参照图1至图27呈现的上述描述可以被应用于示例实施例,但是示例实施例不限于此。
[0140]
epi检查器电路110b可以包括定时器111,其可以在至少两个块之间共享。例如,包括在epi检查器电路110b中的定时器111可以检测第一块blk1和第二块blk2等的epi。定时器111可以确定对第一块blk1执行擦除操作的时间点,以及对第二块blk2执行擦除操作的时间点。在示例中,第一块blk1的擦除时间点可以与第二块blk2的擦除时间点不同,并且确定的擦除时间点可以被存储在擦除时间存储电路180和/或存储单元阵列210的元区域中等。
[0141]
随后,定时器111可以连续地确定时间的流逝,并且当接收到对第一块blk1的写入请求时确定第一块blk1的写入时间点。基于检测的epi,根据上述示例性实施例中的一个或多个,epi检查器电路110b可以确认指示先前存储的第一块blk1的擦除时间点的信息,检测和/或测量指示从写入时间点到擦除时间点的时段的epi,并且在多个编程模式中的任何一个下对第一块blk1执行编程操作。类似地,定时器111可以确定第二块blk2的写入时间点,并且基于指示先前存储的第二块blk2的擦除时间点和第二块blk2的写入时间点的信息来
检测和/或测量第二块blk2的epi。
[0142]
图30是根据至少一个示例实施例的图1的存储系统的修改示例的框图。
[0143]
参照图30,存储系统10c可以包括存储器控制器100c和/或nvm 200c等。nvm 200c可以包括存储单元阵列210、控制电路220和/或epi检查器电路260等。nvm 200c可以基于与来自存储器控制器100c的编程命令一起提供和/或包括在其内的地址addr,确定其中要写入数据的块。在一个示例中,地址addr可以包括指示存储单元阵列210的多个块blk1至blkz中的任何一个的块地址。
[0144]
epi检查器电路260可以检测由块地址选择的块的epi。如在上述示例实施例中,epi检查器电路260可以包括至少一个定时器261。作为示例,epi检查器电路260可以包括数量与在存储单元阵列210中包括的块blk1至blkz的数量相同的定时器,或者数量小于块blk1至blkz的数量的定时器,等等。
[0145]
例如,第一块blk1可以响应于从存储器控制器100c接收的擦除命令执行擦除操作,或者由于nvm 200c的内部操作(例如,垃圾收集操作)而执行擦除操作。epi检查器电路260可以确定第一块blk1的擦除时间点,并通过确定在执行擦除操作之后直到执行编程操作为止的经过时间来检测和/或测量第一块blk1的epi。
[0146]
控制电路220可以从epi检查器电路260接收epi信息,基于接收的epi信息确定编程模式,并且根据确定的编程模式来控制对存储单元阵列210的编程操作。另外,控制电路220可以从epi检查器电路260接收epi信息,基于接收的epi信息来确定读取条件(例如,读取电压电平等),并且在确定的读取条件下控制对存储单元阵列210的读取操作。
[0147]
图31是将根据至少一个示例实施例的存储系统应用于ssd系统1000的示例的框图。
[0148]
参考图31,ssd系统1000可以包括主机1100和/或ssd 1200等。ssd 1200可以通过信号连接器向主机1100发送信号sig和从主机1100接收信号sig,并通过电源连接器接收电力pwr。ssd 1200可以包括ssd控制器1210、辅助电力设备1220和/或多个存储设备1230、1240和1250等,但是示例实施例不限于此。多个存储设备1230、1240和1250可以分别通过多个通道ch1、ch2和chn连接到ssd控制器1210。
[0149]
ssd控制器1210可以使用上面参照图1至图30描述的多个存储器控制器100、100a,100b和100c等来实现,但不限于此。例如,ssd控制器1210可以基于存储器组的epi来确定与存储器组相对应的编程模式。此外,ssd控制器1210可以基于与存储器组相对应的epi信息和/或编程模式来调整与存储器组相对应的读取条件,包括基于epi信息和/或编程模式调整至少一个电压电平(例如,读取电压阈值电平等)。
[0150]
可以使用以上参照图1至图30描述的多个nvm 200、200a,200b和200c来实现存储设备1230、1240和1250,但不限于此。例如,每个存储设备1230、1240和1250可以在确定的编程模式下对存储器组执行编程操作和/或在调整的读取条件下对存储器组执行读取操作,包括基于epi信息和/或编程模式调整与编程操作和/或读取操作相关联的至少一个电压电平。
[0151]
尽管已经参考本发明示例实施例具体示出和描述了本发明构思的各种示例实施例,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,可以在形式和细节上进行各种改变。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1