存储装置、存储控制器以及存储控制器的
操作方法
1.本技术基于并要求于2021年8月31日在韩国知识产权局提交的第10-2021-0115702号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
2.本公开涉及
存储器装置,并且更具体地,涉及存储控制器、包括存储控制器的存储装置以及存储控制器的操作方法。
背景技术:
3.作为非易失性存储器,即使当断电时,闪存也可保留存储的数据。最近,包括闪存(诸如,嵌入式多媒体卡(emmc)、通用闪存(ufs)、固态驱动器(ssd)和存储卡)的存储装置已被广泛使用,并且存储装置用于存储或移动大量数据。存在对能够提高存储装置的性能和可靠性的方法和设备的持续需求。
技术实现要素:
4.一个方面提供一种能够通过动态地调整存储历史读取
电平或历史读取电平偏移的历史
缓冲器来提高读取可靠性和性能的存储装置、存储控制器以及存储控制器的操作方法。
5.根据一个或多个实施例的一个方面,提供了一种存储装置,包括:非易失性存储器,包括多个存储器块;和存储控制器,包括历史缓冲器,历史缓冲器包括与所述多个存储器块对应的多个历史读取电平存储区域,存储控制器被配置为在所述存储装置的运行时间期间基于所述多个存储器块的可靠性来动态地调整分配给所述多个存储器块中的至少一个存储器块的所述多个历史读取电平存储区域的数量,其中,存储控制器被配置为:增加分配给所述多个存储器块中的第一存储器块的历史读取电平存储区域的数量,第一存储器块相对于所述多个存储器块之中的其余存储器块的可靠性具有相对低的可靠性。
6.根据一个或多个实施例的另一方面,提供了一种包括历史缓冲器的存储控制器的操作方法,所述操作方法包括:将包括在历史缓冲器中的多个历史读取电平存储区域分别分配给包括在非易失性存储器中的多个存储器块;和基于所述多个存储器块的可靠性执行历史缓冲器控制操作,历史缓冲器控制操作用于动态地调整分配给所述多个存储器块中的至少一个存储器块的历史读取电平存储区域的数量,其中,历史缓冲器控制操作包括:当所述多个存储器块之中的第一存储器块的可靠性大于第一阈值时,回收分配给第一存储器块的历史读取电平存储区域;和当第一存储器块的可靠性等于或小于第二阈值时,将附加历史读取电平存储区域分配给第一存储器块,第二阈值小于第一阈值。
7.根据一个或多个实施例的另一方面,提供了一种被配置为控制非易失性存储器的存储控制器,所述存储控制器包括:主机接口,被配置为与主机通信;非易失性存储器接口,被配置为与非易失性存储器通信;历史缓冲器,包括与包括在非易失性存储器中的多个存储器块对应的多个历史读取电平存储区域;块可靠性检测器,被配置为检测所述多个存储
器块的可靠性;和历史缓冲器控制器,被配置为:基于可靠性动态地调整分配给所述多个存储器块中的至少一个存储器块的历史读取电平存储区域的数量。
附图说明
8.根据下面的结合附图的详细描述,将更清楚地理解实施例,其中:
9.图1是根据实施例的存储系统的框图;
10.图2a示出根据图1的存储系统的非易失性存储器中包括的存储器单元的劣化的分布变化的示例,图2b示出根据实施例的与图2a的分布变化对应的历史缓冲器的示例,并且图2c示出根据实施例的与图2a的分布变化对应的历史缓冲器的另一示例;
11.图3a示出根据图1的存储系统的非易失性存储器中包括的存储器单元的劣化的分布变化的示例,图3b示出根据实施例的与图3a的分布变化对应的历史缓冲器的示例,并且图3c示出根据实施例的与图3a的分布变化对应的历史缓冲器的另一示例;
12.图4示出根据实施例的根据历史缓冲器的动态控制操作的历史缓冲器中的变化;
13.图5a示出根据实施例的图4的初始历史缓冲器的存储区域与存储器块之间的关系,并且图5b示出根据实施例的图4的变化历史缓冲器的存储区域与存储器块之间的关系;
14.图6和图7示出根据一些实施例的存储控制器;
15.图8是根据实施例的非易失性存储器的框图;
16.图9是示出根据实施例的存储器块的电路图;
17.图10a示出根据实施例的具有两堆叠结构的存储器块,并且图10b示出根据实施例的具有三堆叠结构的存储器块;
18.图11示出根据实施例的存储器块的横截面的一部分;
19.图12a和12b分别示出根据一些实施例的根据历史缓冲器的动态控制操作的历史缓冲器中的变化;
20.图13是根据实施例的存储控制器的操作方法的流程图;
21.图14是根据实施例的更详细地示出图13的存储控制器的操作方法的流程图;
22.图15是根据实施例的动态控制历史缓冲器的方法的流程图;
23.图16是根据实施例的更详细地示出动态控制图15的历史缓冲器的方法的流程图;
24.图17是根据实施例的根据图16的方法的存储控制器与非易失性存储器之间的操作的流程图;
25.图18示出根据实施例的后台读取操作的示例;
26.图19示出根据另一实施例的后台读取操作的示例;
27.图20是根据实施例的动态控制历史缓冲器的方法的流程图;
28.图21是根据实施例的更详细地示出动态控制图20的历史缓冲器的方法的流程图;
29.图22是根据实施例的根据图20的方法的主机、存储控制器和非易失性存储器之间的操作的流程图;
30.图23是根据实施例的动态控制历史缓冲器的方法的流程图;
31.图24是根据实施例的存储装置的框图;以及
32.图25是根据实施例的应用存储装置的系统的示例的框图。
具体实施方式
33.在下文中,将参照附图对各种实施例进行详细描述。
34.图1是根据实施例的存储系统10的框图。
35.参照图1,存储系统10可包括存储装置100和主机200,并且因此可被称为主机存储系统。存储装置100可包括存储控制器110和非易失性存储器(nvm)120,并且存储控制器110和nvm 120可通过通道ch被彼此连接。根据一个实施例,存储控制器110可被称为控制器、装置控制器或存储器控制器。根据一个实施例,nvm 120可以以多个存储器芯片或多个存储器裸片被实现。例如,多个存储器芯片中的每个可以是双裸片封装件(ddp)、四裸片封装件(qdp)或八裸片封装件(odp)。
36.主机200可包括主机控制器210和主机存储器220。主机存储器220可用作用于临时存储要发送到存储装置100的数据data或从存储装置100发送的数据data的缓冲存储器。例如,主机控制器210可以是包括在应用处理器(ap)中的多个模块中的一个,并且ap可被实现为片上系统(soc)。主机存储器220可以是设置在ap中的嵌入式存储器,或是被布置在ap外部的非易失性存储器或存储器模块。
37.存储控制器110可响应于来自主机200的请求req(例如,写入请求)而控制nvm 120将数据data写入nvm 120。此外,存储控制器110可响应于来自主机200的请求req(例如,读取请求)而控制nvm 120读取存储在nvm 120中的数据data。因此,存储装置100可包括用于根据来自主机200的请求req存储数据data的存储介质。
38.例如,存储装置100可包括固态驱动器(ssd)、嵌入式存储器和可拆卸外部存储器中的至少一个。例如,当存储装置100是ssd时,存储装置100可以是符合非易失性存储器快速(nvme)标准的装置。例如,当存储装置100是嵌入式存储器或外部存储器时,存储装置100可以是符合ufs或emmc标准的装置。主机200和存储装置100可各自根据各自采用的标准协议生成分组(或称为,包),并发送生成的分组。
39.nvm 120可包括包含存储器块blk的多个存储器块blks,并且多个存储器块blks中的每个可包括多个存储器单元。例如,存储器块blk可与图8的多个存储器块blk1至blkz中的一个对应。例如,多个存储器块blks中的至少一个可以是包括slc的单层单元(slc)块。例如,多个存储器块blks中的至少一个可以是包括mlc的多层单元(mlc)块。例如,多个存储器块blks中的至少一个可以是包括三层单元(tlc)的tlc块。例如,多个存储器块blks中的至少一个可以是包括四层单元(qlc)的qlc块。
40.存储控制器110可包括历史缓冲器hb。存储控制器110可以以存储器块blk为单位管理历史缓冲器hb。换言之,存储控制器110可每存储器块blk地管理历史缓冲器hb。例如,存储控制器110可在运行时间(runtime)期间针对每个存储器块blk将读取电平存储在历史缓冲器hb中,并且当从主机200接收到读取请求时,基于存储在历史缓冲器hb中的读取电平从请求读取的存储器块blk读取数据。在本说明书中,存储在历史缓冲器hb中的读取电平被称为“历史读取电平”,并且基于历史读取电平的读取操作被称为“历史读取操作”41.例如,存储控制器110可基于第一读取电平对存储器块blk执行读取操作,并且当读取操作成功时,将第一读取电平存储在历史缓冲器hb中作为存储器块blk的历史读取电平。此后,当从主机200接收到对存储器块的读取请求时,存储控制器110可基于存储在历史缓冲器hb中的存储器块blk的历史读取电平来执行历史读取操作。
42.当读取操作失败时,存储控制器110可执行读取重试操作。在本说明书中,当先前读取操作失败时,通过修改读取电平并且随后使用校正的读取电平而执行的读取操作被称为“读取重试操作”。例如,当历史读取操作失败时,存储控制器110可通过由固件执行恢复代码来得到校正的读取电平,并且可基于校正的读取电平来执行读取重试操作。当读取重试操作成功时,存储控制器110可通过将校正的读取电平作为历史读取电平存储在历史缓冲器hb中来更新历史读取电平。
43.在执行读取操作的情况下,当基于未反映存储器块blk的劣化程度的默认读取电平来执行读取操作时,读取操作将失败是高概率。然而,根据实施例的存储装置100以存储器块blk为单位管理历史读取电平。也就是说,存储装置100可管理每个存储器块blk的历史读取电平。因此,当对请求读取的存储器块blk执行读取操作时,存储装置100基于对应的存储器块blk的历史读取电平来执行历史读取,从而增加读取成功的概率。如上所述,当读取操作失败时,可执行恢复代码,并且在这种情况下,执行恢复代码可需要相当长的时间。根据实施例的存储装置100可最小化恢复代码的执行次数,并且因此,存储装置100的性能可被提高。
44.在图1示出的实施例中,历史缓冲器hb可包括多个存储区域s-ar。例如,多个存储区域s-ar可被称为多个历史读取电平存储区域。在下文中,“存储区域”被称为“历史读取电平存储区域”。在一个实施例中,历史缓冲器hb的容量可以是固定的,因此,包括在历史缓冲器hb中的存储区域s-ar的数量也可以是固定的。例如,多个存储区域s-ar可分别与包括在nvm 120中的多个存储器块对应。
45.在一个实施例中,存储控制器110可将多个存储区域s-ar分别分配给多个存储器块blks,并且在存储装置100的运行时间期间动态地调整分配给多个存储器块blks中的至少一个的存储区域s-ar的数量。例如,存储控制器110还可包括块可靠性检测器brd和历史缓冲器控制器hbc。块可靠性检测器brd可在存储装置100的运行时间期间检测多个存储器块blks的可靠性,并且将检测到的可靠性提供给历史缓冲器控制器hbc。历史缓冲器控制器hbc可通过基于检测到的可靠性动态地调整分配给多个存储器块blks中的至少一个的存储区域s-ar的数量,来动态地控制历史缓冲器hb。下面参照图6和图7描述块可靠性检测器brd和历史缓冲器控制器hbc的具体实施示例。
46.图2a示出根据包括在图1的存储系统的非易失性存储器中的存储器单元的劣化的分布变化的示例。
47.参照图2a,在初始分布21和变化分布22中,横轴指示阈值电压vth,并且纵轴指示存储器单元的数量。例如,当存储器单元是用2位编程的mlc时,存储器单元可具有擦除状态e、第一编程状态p1、第二编程状态p2以及第三编程状态p3中的一个。初始分布21可以是在存储器单元的编程完成之后的特定时间内的分布。存储装置100可使用第一默认读取电平drl1、第二默认读取电平drl2和第三默认读取电平drl3来分别确定第一编程状态p1至第三编程状态p3。
48.变化分布22可以是在存储器单元的编程完成之后的特定时间之后的分布。当保持时间增加时,存储单元的电荷俘获量减少,并且分布可被改变和移位。因此,与初始分布21相比,存储器单元的阈值电压可被改变。例如,当保持时间增加时,存储在存储器单元的电荷存储层中的电荷可泄漏到基底,并且因此,存储器单元的阈值电压可降低。分布变化和移
位可受到编程完成之后经过的时间(即,保持时间)和编程和/或擦除的重复(例如,编程/擦除(p/e)循环)的影响。例如,当第一字线的p/e周期和第二字线的p/e周期彼此不同时,即使在第一字线和第二字线的编程完成之后经过的时间相同,第一字线的分布的变化和移位也可与第二字线的分布的变化和移位不同。
49.在这种情况下,当通过分别使用第一默认读取电平drl1至第三默认读取电平drl3对存储器单元执行读取时,在以第一编程状态p1至第三编程状态p3编程的存储器单元中的一些存储器单元中可发生读取错误。这里,读取错误可与读取数据中的错误位的数量等于或大于可由纠错码(ecc)校正的参考数量的情况对应,因此,读取错误可被称为不可校正的ecc(uecc)。为了消除读取错误,需要通过执行读取重试操作来校正读取电平。
50.当在使用默认读取电平的正常读取操作期间发生读取错误时,存储装置100可校正读取电平并基于校正的读取电平执行读取重试,以获得读取操作可成功的适当的读取电平,例如,第一校正的读取电平crl1、第二校正的读取电平crl2和第三校正的读取电平crl3。为此,存储控制器110可通过固件执行恢复代码。在这种情况下,由于执行恢复代码可需要相当长的时间,所以存储装置100的性能可劣化。
51.图2b示出根据实施例的与图2a的分布变化对应的历史缓冲器的示例
52.参照图2b,历史缓冲器23可包括多个存储区域s_ar1至s_arz,并且多个存储区域s_ar1至s_arz可分别被分配给多个存储器块blk1至blkz(z是正整数)。历史缓冲器23可与图1中示出的历史缓冲器hb对应。例如,第一存储区域s_ar1可被分配给第一存储器块blk1,并且存储第一存储器块blk1的校正的读取电平crl1a至crl3a作为历史读取电平。例如,如图2b所示,第一存储器块blk1的第一历史读取电平hrl1可存储校正的读取电平crl1a,第二历史读取电平hrl2可存储校正的读取电平crl2a,并且第三历史读取电平hrl3可存储校正的读取电平crl3a。此外,例如,第二存储区域s_ar2可被分配给第二存储器块blk2,并且以与第一存储区域s_ar1类似的方式存储第二存储器块blk2的校正的读取电平crl1b至crl3b作为历史读取电平。
53.图2c示出根据实施例的与图2a的分布变化对应的历史缓冲器的另一示例
54.参照图2c,历史缓冲器24可包括多个存储区域s_ar1至s_arz,并且多个存储区域s_ar1至s_arz可分别被分配给多个存储器块blk1至blkz。历史缓冲器24可与图1中示出的历史缓冲器hb对应。例如,第一存储区域s_ar1可被分配给第一存储器块blk1,并且存储第一存储器块blk1的读取电平偏移os1a至os3a作为历史读取电平。例如,如图2c所示,第一存储器块blk1的第一历史读取电平偏移hrl_os1可存储偏移os1a,第二历史读取电平偏移hrl_os2可存储偏移os2a,并且第三历史读取电平偏移hrl_os3可存储偏移os3a。此外,例如,第二存储区域s_ar2可被分配给第二存储器块blk2,并且以与第一存储区域s_ar1类似的方式存储第二存储器块blk2的读取电平偏移os1b至os3b作为历史读取电平偏移。
55.图3a示出根据包括在图1的存储系统的非易失性存储器中的存储器单元的劣化的分布变化的示例。
56.参照图3a,在初始分布31和变化分布32中,横轴指示阈值电压vth,并且纵轴指示存储器单元的数量。例如,当存储器单元是用3位编程的tlc时,存储器单元可具有擦除状态e、第一编程状态p1、第二编程状态p2、第三编程状态p3、第四编程状态p4、第五编程状态p5、第六编程状态p6以及第七编程状态p7中的一个。上面参照图2a描述的相同构思可被应用于
图3a的实施例,并且为了简明,其冗余描述被省略。
57.初始分布31可为在存储器单元的编程完成之后的特定时间内的分布。存储装置100可使用第一默认读取电平drl1、第二默认读取电平drl2、第三默认读取电平drl3、第四默认读取电平drl4、第五默认读取电平drl5、第六默认读取电平drl6和第七默认读取电平drl7来分别确定第一编程状态p1至第七编程状态p7。变化分布32可以是在存储器单元的编程完成之后的特定时间之后的分布。当保持时间增加时,存储单元的电荷俘获量减少,并且分布可被改变和移位。因此,与初始分布31相比,存储器单元的阈值电压可被改变。在这种情况下,当通过分别使用第一默认读取电平drl1至第七默认读取电平drl7对存储器单元执行读取时,在以第一编程状态p1至第七编程状态p7编程的存储器单元中的一些可发生读取错误。当在使用默认读取电平的正常读取操作期间发生读取错误时,存储装置100可校正读取电平并且基于校正的读取电平执行读取重试,以获得读取操作可成功的适当的读取电平,例如,第一校正的读取电平crl1、第二校正的读取电平crl2、第三校正的读取电平crl3、第四校正的读取电平crl4、第五校正的读取电平crl5、第六校正的读取电平crl6和第七校正的读取电平crl7。
58.图3b示出根据实施例的与图3a的分布变化对应的历史缓冲器的示例。
59.参照图3b,历史缓冲器33可包括多个存储区域s_ar1至s_arz,并且多个存储区域s_ar1至s_arz可分别被分配给多个存储器块blk1至blkz。历史缓冲器33可与图1中示出的历史缓冲器hb对应。例如,第一存储区域s_ar1可被分配给第一存储器块blk1,并且存储第一存储器块blk1的校正的读取电平crl1a至crl7a分别作为历史读取电平hrl1至hrl7。此外,例如,第二存储区域s_ar2可被分配给第二存储器块blk2,并且存储第二存储器块blk2的校正的读取电平crl1b至crl7b分别作为历史读取电平hrl1至hrl7。
60.图3c示出根据实施例的与图3a的分布变化对应的历史缓冲器的另一示例。
61.参照图3c,历史缓冲器34可包括多个存储区域s_ar1至s_arz,并且多个存储区域s_ar1至s_arz可分别被分配给多个存储器块blk1至blkz。历史缓冲器34可与图1中示出的历史缓冲器hb对应。例如,第一存储区域s_ar1可被分配给第一存储器块blk1,并且存储第一存储器块blk1的读取电平偏移os1a至os7a分别作为历史读取电平hrl_os1至hrl_os7。此外,例如,第二存储区域s_ar2可被分配给第二存储器块blk2,并且存储第二存储器块blk2的读取电平偏移os1b至os7b分别作为历史读取电平偏移hrl_os1至hrl_os7。
62.如上面参照图2a至3c所描述,在使用历史读取电平或历史读取电平偏移的历史读取操作中,可减小读取错误的发生概率。然而,随着布置在存储器块中的字线的数量增加,存储器块中的字线之间的字线变化可增加。这里,短语“字线变化”可指由于存储器块中的字线之间的物理差异而在字线之间发生可靠性等差异的现象。例如,尽管在编程之后存储器块的劣化相同,但是存储器块的分布变化对于每个字线可以是不同的。因此,即使当以相同的历史读取电平对存储器块执行读取操作时,对于每个字线,错误位的数量也可以是不同的。因此,历史读取操作的可靠性可劣化,结果,存储装置100的可靠性可劣化。
63.因此,根据实施例,可通过动态地增加分配给具有相对低可靠性的存储器块的历史读取电平存储区域的数量,并且动态地减少分配给相对可靠的存储器块的历史读取电平存储区域的数量,来动态地控制历史缓冲器。通过历史缓冲器的这样的动态控制,可减小字线之间的可靠性差异而不管存储器块中的字线之间的物理差异如何。在下文中,参照图4和
图5详细描述历史缓冲器的动态控制操作。
64.图4示出根据实施例的根据历史缓冲器的动态控制操作的历史缓冲器中的变化。
65.同时参照图1和图4,存储控制器110可基于多个存储器块blk1至blkz的可靠性将初始历史缓冲器41更新为变化历史缓冲器42。例如,初始历史缓冲器41可与图2b、图2c、图3b和图3c中示出的历史缓冲器23、24、33和34中的一个对应。在这种情况下,初始历史缓冲器41可包括z个存储区域s_ar1至s_arz,变化历史缓冲器42也可包括z个存储区域s_ar1至s_arz。如上所述,初始历史缓冲器41和变化历史缓冲器42中的存储区域的数量可以是固定的。
66.图5a示出根据实施例的图4的初始历史缓冲器41的存储区域与存储器块之间的关系。
67.同时参照图4和5a,初始历史缓冲器41的第一存储区域至第三存储区域s_ar1、s_ar2和s_ar3可最初分别被分配给第一存储器块至第三存储器块blk1、blk2和blk3。例如,第一存储区域s_ar1可存储第一存储器块blk1的历史读取电平rl1至rl7,第二存储区域s_ar2可存储第二存储器块blk2的历史读取电平rl1至rl7,并且第三存储区域s_ar3可存储第三存储器块blk3的历史读取电平rl1至rl7。
68.图5b示出根据实施例的图4的变化历史缓冲器42的存储区域与存储器块之间的关系
69.同时参照图1、图4和图5b,块可靠性检测器brd可检测第一存储器块至第三存储器块blk1、blk2和blk3的可靠性。例如,第一存储器块blk1的可靠性可大于第一阈值(例如,图14的thv1),并且因此可被确定为具有相对高可靠性的“良好”块。例如,第二存储器块blk2可具有大于第二阈值(例如,图14的thv2)但小于或等于第一阈值的可靠性,并且因此可被确定为具有中间可靠性的“中间”块。第二阈值可小于第一阈值。例如,第三存储器块blk3的可靠性可小于或等于第二阈值,并且因此可被确定为具有相对低可靠性的“差”块。
70.历史缓冲控制器hbc可回收分配给第一存储器块blk1的第一存储区域s_ar1,因此,第一存储区域s_ar1可变为空闲存储区域。基于来自块可靠性检测器brd的检测到的可靠性,历史缓冲器控制器hbc可将分配给第一存储器块blk1的存储区域的数量从1减少到0,并且可不将存储区域分配给第一存储器块blk1。因此,存储控制器110可基于默认读取电平对第一存储器块blk1执行读取操作。
71.随后,基于来自块可靠性检测器brd的检测到的可靠性,历史缓冲器控制器hbc可附加地将最初分配给第一存储器块blk1的第一存储区域s_ar1(即,空闲存储区域)分配给第三存储器块blk3。换言之,历史缓冲控制器hbc可将分配给第三存储器块blk3的存储区域的数量从1增加到2,并且可将第一存储区域和第三存储区域s_ar1和s_ar3分配给第三存储器块blk3。因此,存储控制器110可基于存储在第一存储区域s_ar1和第三存储区域s_ar3中的历史读取电平对第三存储器块blk3执行读取操作。
72.图6示出根据实施例的存储控制器。
73.参照图6,存储控制器110a可包括处理器111、存储器112、缓冲存储器113、纠错码ecc引擎114、主机接口i/f 115和非易失性存储器接口nvmi/f 116,它们可经由总线117进行彼此通信。存储控制器110a可与图1的存储控制器110的实施示例对应,并且在下面同时参照图1和图6进行描述。
74.处理器111可包括中央处理器(cpu)或微处理器,并且可控制存储控制器110a的整体操作。在一个实施例中,处理器111可被实现为多核处理器,例如,双核处理器或四核处理器。可将闪存转换层(ftl)加载到存储器112中,并且可通过执行加载到存储器112中的ftl的处理器111来控制nvm 120的数据写入和读取操作。ftl可执行各种功能(诸如,地址映射、损耗均衡、垃圾收集等)。地址映射操作是将从主机200接收的逻辑地址改变为用于在nvm 120中实际存储数据的物理地址的操作。损耗均衡是用于通过均匀地使用非易失性存储器中的存储器块来防止特定块的过度劣化的技术,并且可示例性地通过平衡物理块的擦除计数的固件技术来实现。垃圾收集是用于通过将存储器块的有效数据复制到新块并且然后擦除当前块来确保nvm 120中的可用容量的技术。例如,存储器112可被实现为易失性存储器(诸如,静态随机存取存储器(sram)、动态ram(dram))或非易失性存储器(诸如,闪存或相位ram(pram))。
75.根据图6的实施例,历史缓冲器hb可被包括在存储器112中,并且图1的块可靠性检测器brd和历史缓冲器控制器hbc可被实现为ftl的一部分并被加载到存储器112中。在一个实施例中,历史缓冲器hb、块可靠性检测器brd和历史缓冲器控制器hbc可用同一芯片被实现。然而,实施例不限于此,并且历史缓冲器hb、块可靠性检测器brd和历史缓冲器控制器hbc中的至少一个可在不同的芯片中被实现。例如,历史缓冲器hb可被实现为单独的dram芯片的一部分。
76.缓冲存储器113可临时存储要写入nvm 120的数据或从nvm 120读取的数据。缓冲存储器113可被设置在存储控制器110a中,但可被布置在存储控制器110a的外部。
77.ecc引擎114可对从nvm 120读取的读取数据执行错误检测和校正功能。更具体地,ecc引擎114可生成要写入nvm 120的写入数据的奇偶校验位,并且生成的奇偶校验位可与写入数据一起被存储在nvm 120中。当从nvm 120读取数据时,ecc引擎114可通过使用从nvm 120读取的奇偶校验位和读取数据来校正读取数据中的错误,并且可输出纠错的读取数据。
78.主机接口i/f115可向主机200发送分组和从主机200接收分组。从主机200发送到主机接口115的分组可包括要写入nvm 120的数据或命令等,并且从主机接口115发送到主机200的分组可包括对从nvm 120读取的数据或命令的响应。
79.非易失性存储器接口nvm i/f 116可将要写入nvm 120的数据发送到nvm 120或从nvm 120接收数据。非易失性存储器接口116可被实现为符合标准协议(诸如,切换(toggle)或开放nand闪存接口(onfi))。
80.图7示出根据实施例的存储控制器。
81.参照图7,存储控制器110b可包括处理器111、历史缓冲器hb、块可靠性检测器brd、历史缓冲器控制器hbc、缓冲存储器113、ecc引擎114、主机接口i/f 115和非易失性存储器接口nvm i/f 116,它们可经由总线117进行彼此通信。存储控制器110b与图6的存储控制器110a的修改示例对应,并且为了简明,其冗余描述被省略。
82.在一个实施例中,块可靠性检测器brd和历史缓冲器控制器hbc可以以软件被实现。例如,nvm 120可存储程序代码,并且当电力被施加到存储装置100时,存储在nvm 120中的程序代码可被加载到存储控制器110的操作存储器中。处理器111可通过执行加载到操作存储器中的程序代码,如上面参照图1至图6所描述的基于多个存储器块的可靠性动态地控制历史缓冲器hb。
83.然而,实施例不限于此,并且在一个实施例中,块可靠性检测器brd和历史缓冲器控制器hbc可以以硬件被实现。此外,在一个实施例中,块可靠性检测器brd和历史缓冲器控制器hbc可被实现为软件和硬件的组合。此外,在一个实施例中,块可靠性检测器brd和历史缓冲器控制器hbc中的至少一个可被实现为包括在非易失性存储器接口nvm i/f 116中。
84.图8是根据实施例的nvm 120的框图。
85.参照图8,nvm 120可包括存储器单元阵列121、控制逻辑电路系统122、电压发生器123、行解码器124和页缓冲器电路125。尽管图8中未示出,但nvm 120还可包括存储器接口电路,并且还可包括列逻辑、预解码器、温度传感器、命令解码器、地址解码器等。
86.存储器单元阵列121可包括多个存储器块blk1至blkz,并且多个存储器块blk1至blkz中的每个可包括多个页pg1至pgm,其中,z和m是正整数,并且可根据实施例进行各种改变。例如,存储器块可以是擦除单位,并且页可以是写入和读取单位。存储器单元阵列121可通过位线bl连接到页缓冲器电路125,并且可通过字线wl、串选择线ssl和接地选择线gsl连接到行解码器124。
87.在一个实施例中,存储器单元阵列121可包括三维存储器单元阵列,并且三维存储器单元阵列可包括多个nand串。每个nand串可包括分别被连接到垂直堆叠于基底上的字线的存储器单元。第7679133号美国专利;第8553466号美国专利;第8654587号美国专利;第8559235号美国专利;和公开号为2011/0233648的美国专利申请的全部内容通过引用包含于此。在一个实施例中,存储器单元阵列121可包括二维存储器单元阵列,并且二维存储器单元阵列可包括在行和列方向上布置的多个nand串。在一些实施例中,存储器单元阵列121可包括其他各种类型的非易失性存储器,并且因此,nvm120可包括磁性ram(mram)、自旋转移矩mram、导电桥接ram(cbram)、铁电ram(feram)、pram、电阻式ram以及其他各种类型的存储器。
88.控制逻辑电路系统122通常可控制nvm 120中的各种操作。控制逻辑电路系统122可响应于命令cmd和/或地址addr而输出各种控制信号。例如,控制逻辑电路系统122可输出电压控制信号ctrl_vol、行地址x_addr以及列地址y_addr。
89.电压发生器123可基于电压控制信号ctrl_vol生成用于执行编程、读取和擦除操作的各种类型的电压。例如,电压发生器123可生成编程电压、读取电压、编程验证电压、擦除电压等作为字线电压vwl。
90.行解码器124可响应于行地址x_addr选择多条字线wl中的一条,并且可选择多条串选择线ssl中的一条。例如,在编程操作期间,行解码器124可将编程电压和编程验证电压施加到选择的字线,并且在读取操作期间,将读取电压施加到选择的字线。
91.页缓冲器电路125可响应于列地址y_addr而从位线bl之中选择至少一条位线。页缓冲器电路125可根据操作模式而作为写入驱动器或感测放大器进行操作。
92.图9是示出根据实施例的存储器块blk的电路图。
93.参照图9,存储器块blk可与图8的多个存储器块blk1至blkz中的一个对应。存储器块blk可包括nand串ns11至ns33,并且nand串ns11至ns33中的每个(例如,ns11)可包括串联连接的串选择晶体管sst、多个存储器单元mcs和接地选择晶体管gst。包括在nand串ns11至ns33中的每个中的晶体管sst和gst以及存储器单元mcs可在垂直方向上在基底上形成堆叠结构。
94.位线bl1至bl3可在第一方向上延伸,并且字线wl1至wl8可在第二方向上延伸。nand串ns11、ns21和ns31可位于第一位线bl1与公共源极线csl之间,nand串ns12、ns22和ns32可位于第二位线bl2与公共源极线csl之间,并且nand串ns13、ns23和ns33可位于第三位线bl3与公共源极线csl之间。
95.串选择晶体管sst可连接到对应的串选择线ssl1至ssl3。存储器单元mc可分别连接到对应的字线wl1至wl8。接地选择晶体管gst可被连接到对应的接地选择线gsl1至gsl3。串选择晶体管sst可被连接到对应的位线,并且接地选择晶体管gst可被连接到公共源极线csl。这里,nand串的数量、字线的数量、位线的数量、接地选择线的数量和串选择线的数量可根据实施例不同地改变。
96.图10a示出根据实施例的具有两堆叠结构的存储器块blka。参照图10a,存储器块blka可具有包括第一堆叠件stk1和第二堆叠件stk2的两堆叠结构,并且可与图9的多个存储器块blk1至blkz中的一个对应。在这种情况下,包括在第一堆叠件stk1中的字线与包括在第二堆叠件stk2中的字线之间的字线变化可相当大。因此,当通过使用根据包括在第一堆叠件stk1中的页的读取结果的历史读取电平对包括在第二堆叠件stk2中的页执行读取操作时,错误位的数量可增加,因此,存储器块blka的读取可靠性可劣化。
97.图10b示出根据实施例的具有三堆叠结构的存储器块blkb。参照图10b,存储器块blkb可具有包括第一堆叠件stk1、第二堆叠件stk2和第三堆叠件stk3的三堆叠结构,并且可与图9的多个存储器块blk1至blkz中的一个对应。上面参照图10a描述的实施例可被应用于图10b的实施例,并且为了简明,其冗余描述被省略。实施例不限于具有两堆叠结构或三堆叠结构的存储器块,并且在一些实施例中,存储器块blk可具有包括n个堆叠件的n堆叠结构,其中,n可以是4或更大的正整数。此外,在其他实施例中,存储器块可被实现为单堆叠结构。
98.图11示出根据实施例的存储器块的横截面的一部分。
99.同时参照图8和图11,当nvm 120是垂直存储器件时,为了在三维存储器块中形成沟道结构,可执行用于形成沟道孔的蚀刻工艺,并且沟道孔的直径可根据存储器块的高度而不同。例如,在具有三维结构的存储器块中,沟道孔的直径可从顶部至底部减小。为了防止沟道孔的直径在三维存储器块中极大减小,可执行至少两次用于形成沟道孔的蚀刻工艺。例如,在基底上形成第一堆叠件(即,第一堆叠结构)stk1之后,执行蚀刻工艺,并且此后,可在第一堆叠件stk1上形成第二堆叠件(即,第二堆叠结构)。此外,可对第二堆叠件stk2执行蚀刻工艺。
100.如图11中示出,存储器块300可具有三维结构。第一堆叠件stk1可包括在垂直方向上交替布置的栅极310和绝缘层320。此外,堆叠在第一堆叠件stk1上的第二堆叠件stk2可包括在垂直方向上交替布置的栅极340和绝缘层350。根据一个实施例,结构间层330可被布置在第一堆叠件stk1与第二堆叠件stk2之间。此外,沟道结构360可包括沟道362、围绕沟道362的外壁的介电膜结构363、以及布置在沟道362内部的沟道掩埋膜图案361。上面的结构仅是示例,并且实施例不限于此。在一些实施例中,存储器块300可具有在其中执行至少两次蚀刻工艺的其他各种结构。在图11中,w1表示stk1中的一个高度处沟道孔的直径,w2表示stk2中的一个高度处沟道孔的直径。
101.图12a示出根据实施例的根据历史缓冲器的动态控制操作的历史缓冲器中的变
120的存储器块blks。在这种情况下,历史缓冲器hb可包括多个存储区域s-ar。例如,如上所述,多个存储区域s-ar可被称为多个历史读取电平存储区域。历史缓冲器hb的容量可以是固定的,因此,历史读取电平存储区域s-ar的数量也可以是固定的。
111.在操作s120中,存储控制器110可基于存储器块blks的可靠性来执行动态地调整分配给存储器块blks的存储区域的数量的历史缓冲器控制操作。存储控制器110可以以不同的方式检测存储器块blks的可靠性。例如,在一个实施例中,存储控制器110可通过执行预防恢复代码(prevention recovery code)来检测存储器块blks的可靠性,如下面参照图15至图19所描述。在一个实施例中,存储控制器110可通过执行恢复代码来检测存储器块blks的可靠性,如下面参照图20至22所描述。在一个实施例中,存储控制器110可基于历史缓冲器hb的历史读取电平偏移来检测存储器块blk的可靠性,如下面参照图23所描述。
112.图14是根据实施例的更详细地示出图13的存储控制器的操作方法的流程图。
113.参照图14,图13的操作s120可包括操作s121至s125。在操作s121中,存储控制器110可检测存储器块blk的可靠性。在操作s122中,存储控制器110可确定检测到的可靠性是否大于第一阈值thv1。作为确定的结果,当检测到的可靠性大于第一阈值thv1时(s122,是),存储控制器110可将存储器块blk确定为良好块。随后,在操作s123中,存储控制器110可回收被分配给存储器块blk的存储区域。
114.在一个实施例中,最初分配给存储器块blk的存储区域的数量可以是1,并且通过操作s123分配给存储器块blk的存储区域的数量可以是零。因此,可不对具有相对高可靠性的存储器块blk执行使用历史读取电平的历史读取操作,并且此后,可对存储器块blk执行使用默认读取电平的正常读取操作。在一个实施例中,最初分配给存储器块blk的存储区域的数量可以是2,并且通过操作s123分配给存储器块blk的存储区域的数量可以是1。因此,针对可靠性比之前提高的存储器块blk,可通过使用比之前更少数量的历史读取电平执行历史读取操作。例如,当存储器块blk具有两堆叠结构时,可通过使用相同的历史读取电平来针对第一堆叠件和第二堆叠件执行历史读取操作。
115.当检测到的可靠性不大于第一阈值thv1时(s122,否),在操作s124中,存储控制器110可确定检测到的可靠性是否大于第二阈值thv2。在这种情况下,第二阈值thv2可被定义为小于第一阈值thv1的值。换言之,thv2《thv1。作为确定的结果,当检测到的可靠性大于第二阈值thv2时(s124,是),存储控制器110可将存储器块blk确定为中间块,并且在这种情况下,可终止历史缓冲器控制操作。当检测到的可靠性不大于第二阈值thv2时(s124,否),存储控制器110可将存储器块blk确定为差块。随后,在操作s125中,存储控制器110可将附加存储区域分配给存储器块blk。
116.在一个实施例中,最初分配给存储器块blk的存储区域的数量可以是1,并且通过操作s125分配给存储器块blk的存储区域的数量可以是2。例如,当存储器块blk具有两堆叠结构时,可通过使用彼此不同的历史读取电平来针对第一堆叠件和第二堆叠件执行历史读取操作。在一个实施例中,最初分配给存储器块blk的存储区域的数量可以是零,并且通过操作s125分配给存储器块blk的存储区域的数量可以是1。因此,通过使用比之前更多数量的历史读取电平,可对与先前历史读取操作相比具有劣化的可靠性的存储器块blk执行历史读取操作。
117.在一个实施例中,存储控制器110可包括机器学习模块。例如,机器学习模块可估
计存储器块blks的可靠性。例如,机器学习模块可基于来自存储器块的读取数据和/或对读取数据进行ecc操作的结果来估计存储器块的可靠性。例如,机器学习模块可动态地确定分配给存储器块blk的存储区域s-ar的数量。例如,机器学习模块可确定分配给存储器块blk的存储区域的恢复量。例如,机器学习模块可确定存储器块blk的附加配额。附加配额是分配给存储器块blk的附加存储区域s-ar的数量。
118.图15是根据实施例的动态控制历史缓冲器的方法的流程图。
119.参照图15,在操作s210中,存储控制器110可通过使用默认读取电平对存储器块blk执行后台读取操作。例如,后台读取操作可包括巡查读取(patrol read)操作,如下面参照图19所描述。例如,后台读取操作可包括媒体扫描(media scan)操作,如下面参照图20所描述。
120.在操作s220中,存储控制器110可根据后台读取操作的结果来检测存储器块blks的可靠性。例如,当储器块blks中的存储器块blk的后台读取操作失败时,可确定存储器块blk的可靠性相对低。在操作s230中,存储控制器110可动态地调整分配给存储器块blks中的至少一个存储器块的历史读取电平存储区域的数量。例如,存储控制器110可基于检测到的可靠性,动态地调整分配给存储器块blks中的至少一个存储器块的历史读取电平存储区域的数量。例如,当存储器块的可靠性相对低时,可增加分配给存储器块的历史读取电平存储区域的数量。
121.图16是根据实施例的更详细地示出动态控制图15的历史缓冲器的方法的流程图。
122.参照图16,在该方法中,存储装置可周期性地对nvm中包括的存储器块执行后台读取操作,并且根据后台读取操作的结果动态地控制历史缓冲器。例如,根据图16的实施例的操作方法可在图1的存储装置100中按时间序列执行。上面参照图1至图15提供的描述也可被应用于图16的实施例。
123.在操作s310中,存储装置100可以执行后台读取操作。存储装置100可通过使用nvm 120中包括的多个存储器块blks的默认读取电平来周期性地执行后台读取操作,而无需从主机200接收读取请求。在操作s220中,存储控制器110可确定后台读取操作是否失败。作为确定的结果,当后台读取操作失败时(s320,是),可执行操作s330。否则,当后台读取操作未失败时(s320,否),可对另一存储器块执行操作s310。
124.在操作s330中,存储装置100可执行读取重试操作。存储装置100可通过使用与默认读取电平不同的校正的读取电平来对相应的存储器块执行读取重试操作。在操作s340中,存储控制器110可确定读取重试操作是否失败。作为确定的结果,当读取重试操作未失败(即,成功)时(s340,否),可执行操作s350。当读取重试操作失败时(s340,是),可再次执行操作s330。
125.在操作s350中,存储控制器110可动态地调整历史缓冲器hb并更新历史缓冲器hb。存储装置100可通过将校正的读取电平存储为对应存储器块的历史读取电平来更新历史缓冲器hb。在操作s360中,存储装置100可执行主机读取操作。当从主机200接收到读取请求时,存储装置100可通过使用已经动态调整和更新的历史缓冲器hb来执行主机读取操作。
126.在一些实施例中,操作方法还可包括:在执行操作s310之前,为每个存储器块选择代表页。例如,在多个存储器块中的每个存储器块中,可基于编程和擦除的数量、读取的数量、经过的编程时间、读取干扰、编程干扰、每个存储器块的物理位置或每个页面的物理位
置中的至少一个来选择至少一个代表页。
127.图17是根据实施例的根据图16的方法的存储控制器与非易失性存储器之间的操作的流程图。
128.同时参照图1、图6和图17,在操作s410中,存储控制器110可发出针对第i存储器块blki的读取命令。这里,i可以是1和z之间的任何自然数。例如,存储控制器110可不从主机200接收读取请求,并且可自己发出读取命令。此外,存储控制器110可发出包括在第i存储器块blki中的代表页的地址,并将第i存储器块blki的读取电压确定为默认读取电平drl。在操作s415中,存储控制器110可向nvm 120发送读取命令。在一些实施例中,读取命令可包括第i存储器块blki的地址和/或读取电压。在其他实施例中,存储控制器110可将地址与读取命令一起发送到nvm 120,并且可将第i存储器块blki的读取电压作为控制信号与读取命令一起进行发送。
129.在操作s420中,nvm 120可响应于读取命令,通过使用默认读取电平来执行正常读取操作。在这种情况下,nvm 120可对第i存储器块blki的代表页执行正常读取操作。在操作s425中,nvm 120可将通过正常读取操作读取的数据发送到存储控制器110。
130.在操作s430中,存储控制器110可确定正常读取操作是否失败。例如,存储控制器110可基于在s425中接收的数据来确定正常读取操作是否失败。例如,ecc引擎114可对接收的数据执行ecc操作,并且确定在接收的数据中检测到的失败位的数量是否超过ecc引擎114的纠错能力。作为确定的结果,当失败位的数量超过纠错能力时,可确定正常读取操作失败(s430,是),并且可执行操作s440。当失败位的数量不超过纠错能力时或当数据不包括失败位时,可确定正常读取操作未失败(即,成功)(s430,否),并且可执行操作s450。在操作s450中,存储控制器110可将i增加1并且对第(i+1)存储器块执行后台读取操作。
131.在操作s440中,存储控制器110可向第i存储器块blki发出读取重试命令。例如,存储控制器110可不从主机200接收读取重试请求,并且可自己发出读取重试命令。在一些实施例中,存储控制器110可发出第i存储器块blki中包括的代表页之中的读取失败页的地址,并且可将第i存储器块blki的读取重试电压确定为校正的读取电平。在操作s460中,存储控制器110可将读取重试命令发送到nvm 120。在一些实施例中,读取重试命令可包括第i存储器块blki的地址和/或读取重试电压。在其他实施例中,存储控制器110可将地址与读取重试命令一起发送到nvm 120,并且可将第i存储器块blki的读取重试电压作为控制信号与读取重试命令一起进行发送。
132.在操作s470中,nvm 120可响应于读取重试命令,通过使用校正的读取电平来执行读取重试操作。在这种情况下,nvm 120可对第i存储器块blki的代表页执行读取重试操作。在操作s475中,nvm 120可将通过读取重试操作读取的数据发送到存储控制器110。
133.在操作s480中,存储控制器110可确定读取重试操作是否失败。例如,存储控制器110可基于在s475中接收的数据来确定读取重试操作是否失败。例如,ecc引擎114可对接收的数据执行ecc操作,并且确定在接收的数据中检测到的失败位的数量是否超过ecc引擎114的纠错能力。作为确定的结果,当失败位的数量超过纠错能力时,可确定读取重试操作失败(s480,是),并且可再次执行操作s440。当失败位的数量不超过纠错能力时或当数据不包括失败位时,可确定读取重试操作未失败(即,成功)(s480,否),并且可执行操作s490。在操作s490中,存储控制器110可动态地调整历史缓冲器hb并存储校正的读取电平,从而更新
历史缓冲器hb。
134.图18示出根据实施例的后台读取操作的示例。
135.同时参照图1和图18,存储器单元阵列mca1可包括第一存储器块blk1至第z存储器块blkz,并且可以是图8的存储器单元阵列121的示例。根据一个实施例,可从存储器块blk1至blkz中的每个存储器块中选择至少一个代表页rp,并且可对存储器块blk1至blkz的选择的代表页rp1至rpz执行后台读取操作。后台读取操作可被称为“巡查读取操作”。
136.存储控制器110可根据物理地址周期性地对第一存储器块blk1至第z存储器块blkz执行后台读取操作。在一个实施例中,可根据第一存储器块blk1至第z存储器块blkz的物理位置或劣化信息来改变后台读取操作的执行顺序。例如,可根据第一存储器块blk1至第z存储器块blkz的布置顺序来执行后台读取操作。例如,可对第一代表页rp1执行后台读取操作,可对第二代表页rp2执行后台读取操作,并且随后可对第三代表页rp3执行后台读取操作。在另一示例中,可对第一代表页rp1执行后台读取操作,可对第三代表页rp3执行后台读取操作,并且随后可对第二代表页rp2执行后台读取操作。
137.图19示出根据另一实施例的后台读取操作的示例。
138.同时参照图1和图19,存储器单元阵列mca2可包括第一逻辑块lbn1至第z逻辑块lbnz,并且可以是图8的存储器单元阵列121的示例。根据一个实施例,可根据逻辑地址对第一逻辑块lbn1至第z逻辑块lbnz周期性地执行后台读取操作。后台读取操作可被称为“后台媒体扫描(bms)”139.存储控制器110可根据逻辑地址周期性地对第一逻辑块lbn1至第z逻辑块lbnz执行后台读取操作。在一个实施例中,可根据劣化信息等来改变后台读取操作的执行顺序。例如,可对包括在第一逻辑块lbn1中的所有逻辑页面lpn1和lpn2顺序地执行后台读取操作,然后可对包括在第二逻辑块lbn2中的所有逻辑页面顺序地执行后台读取操作。根据一个实施例,存储装置100可选择性地执行巡查读取操作和bms操作。
140.图20是根据实施例的动态控制历史缓冲器的方法的流程图。
141.参照图20,在操作s510中,存储控制器110可响应于从主机200接收的读取请求,通过使用默认读取电平对选择的存储器块执行正常读取操作。在操作s520中,当正常读取操作失败时,存储控制器110可通过使用校正的读取电平对选择的存储器块执行读取重试操作。在操作s530中,存储控制器110可根据正常读取操作或读取重试操作的结果来检测选择的存储器块的可靠性。例如,存储器块的正常读取操作或读取重试操作操作失败时,可确定存储器块的可靠性相对低。在一个实施例中,正常读取操作失败并且读取重试操作失败的存储器块的可靠性比正常读取操作失败但读取重试操作成功的存储器块的可靠性低。在操作s540中,存储控制器110可动态地调整分配给存储器块blks中的至少一个存储器块的历史读取电平存储区域的数量。例如,可增加分配给可靠性低相对低的存储器块(例如,正常读取操作已经失败的存储器块,或者读取重试操作已经失败的存储器块)的历史读取电平存储区域的数量。
142.图21是根据实施例的更详细地示出动态控制图20的历史缓冲器的方法的流程图。
143.参照图21,所述方法可包括当从主机接收到读取请求时在存储装置中执行主机读取操作的方法。例如,根据图21的实施例的操作方法可在图1的存储装置100中按时间序列执行。上面参照图1至图14提供的描述也可被应用于图21的实施例。
144.在操作s610中,存储控制器110可接收读取请求。例如,存储控制器110可从主机200接收读取请求和地址。在操作s620中,存储控制器110可检查历史缓冲器hb区域。例如,存储控制器110可检查历史缓冲器hb以确定是否存在与地址对应的历史读取电平。在操作s630中,存储控制器110可确定历史缓冲器hb是否为空。作为确定的结果,当历史缓冲器hb为空时(s630,是),执行操作s640;否则,当历史缓冲器hg不为空时(s630,否),执行操作s650。
145.在操作s640中,存储控制器110可执行正常读取操作。例如,存储控制器110可通过使用默认读取电平来执行正常读取操作。在操作s650中,存储控制器110可执行历史读取操作。例如,存储控制器110可通过使用历史读取电平来执行历史读取操作。在操作s660中,存储控制器110可确定正常读取操作是否失败。作为确定的结果,当正常读取操作失败时(s660,是),可执行操作s670;否则,当正常读取操作未失败(即,成功)时(s660,否),方法可结束。在操作s670中,存储控制器110可执行读取重试操作。例如,存储控制器110可通过使用与默认读取电平不同的校正的读取电平或与历史读取电平不同的校正的读取电平来对相应的存储器块执行读取重试操作。在操作s680中,存储控制器110可动态地调整历史缓冲器hb并更新历史缓冲器hb。存储装置100可通过存储校正的读取电平作为对应存储器块的历史读取电平来更新历史缓冲器hb。
146.在操作s655中,存储控制器110可确定历史读取操作是否失败。作为确定的结果,当历史读取操作未失败(即,成功)时(s665,否),可执行操作s680,并且存储控制器110可通过减少分配的存储空间s-ar的数量来动态地调整历史缓冲器hb,并且可更新历史缓冲器hb。否则,当历史读取操作失败时(s655,是),可执行操作s665。在操作s665中,存储控制器110可执行读取重试操作。例如,存储控制器110可通过使用与历史读取电平不同的校正的读取电平来对相应的存储器块执行读取重试操作。在操作s680中,存储控制器110可动态地调整历史缓冲器hb并更新历史缓冲器hb。存储装置100可通过存储校正的读取电平作为对应存储器块的历史读取电平来更新历史缓冲器hb。
147.图22是根据实施例的根据图20的方法的主机、存储控制器和非易失性存储器之间的操作的流程图。
148.参照图22,在操作s710中,主机200可将读取请求和地址发送到存储控制器110。在这种情况下,从主机200发送的地址可以是逻辑地址。在操作s715中,存储控制器110可检查映射表。例如,存储控制器110可检查与接收的逻辑地址对应的物理地址。在操作s720中,存储控制器110可检查历史缓冲器hb区域。例如,存储控制器110可检查历史缓冲器hb以确定是否存在与包括检查出的物理地址的存储器块对应的历史读取电平。
149.在操作s725中,存储控制器110可将读取命令发送到nvm 120。在操作s730中,nvm 120可通过使用历史读取电平来执行历史读取操作。在操作s735中,nvm 120可将数据传输到存储控制器110。在操作s740中,存储控制器110可基于在s735中接收的数据来确定历史读取操作是否失败。作为确定的结果,当历史读取操作失败时(s740,是),执行操作s750。当读取操作未失败时(s740,否),在操作s745中,可将在s735中接收的数据从存储控制器110发送到主机200。
150.在操作s750中,存储控制器110可执行恢复代码。例如,存储控制器110可通过执行恢复代码来确定校正的读取电平。在操作s760中,存储控制器110可发出读取重试命令。在
操作s765中,存储控制器110可将读取重试命令发送到nvm 120。在操作s770中,nvm 120可通过使用校正的读取电平来执行读取重试操作。在操作s775中,nvm 120可将数据发送到存储控制器110。
151.在操作s780中,存储控制器110可基于在s775中接收的数据来确定读取重试操作是否失败。作为确定的结果,当读取重试操作未失败时(s780,否),执行操作s785。当读取重试操作失败时(s780,是),可再次执行操作s760。在一些实施例中,当读取重试操作失败时(s780,是),可再次执行如上所述的操作s750、随后的操作s760。例如,可执行与先前操作s750的恢复代码不同的恢复代码,并且因此可改变校正的读取电平。在操作s785中,存储控制器110可将在s775中接收的数据发送到主机200。在操作s790中,存储控制器110可通过将校正的读取电平存储在读取历史表中来更新历史缓冲器。在一个实施例中,可首先执行操作s790,然后可执行操作s785。在一个实施例中,操作s785和s790可基本上同时执行。在一个实施例中,当前操作方法还可包括从主机接收下一读取请求和下一地址,并且通过使用在操作s790中更新的更新后的历史缓冲器来对下一地址执行主机读取操作。
152.图23是根据实施例的动态控制历史缓冲器的方法的流程图。
153.参照图23,在操作s810中,存储控制器110可基于分别与存储器块blks对应的历史读取电平偏移来检测存储器块blks的可靠性。在操作s820中,存储控制器110可动态地调整分配给存储器块blks中的至少一个存储器块的历史读取电平存储区域的数量。
154.在一个实施例中,存储控制器110可基于根据第一参考值和第二参考值定义的参考范围来检测存储器块blks的可靠性。第一参考值可小于第二参考值。例如,存储控制器110可将具有小于第一参考值的存储在历史缓冲器hb中的历史读取电平偏移的存储器块确定为良好块。例如,存储控制器110可将具有大于或等于第一参考值且小于或等于第二参考值的存储在历史缓冲器hb中的历史读取电平偏移的存储器块确定为中间块。例如,存储控制器110可将具有大于第二参考值的存储在历史缓冲器hb中的历史读取电平偏移的存储器块确定为差块。如上所述,存储控制器110可确定:历史读取电平偏移越大,分布移动越大;并且因为存储器块的劣化增加,存储控制器110可确定存储器块的可靠性相当低。
155.在一个实施例中,存储控制器110可包括机器学习模块,并且通过使用机器学习模块来估计存储器块blks的可靠性。例如,机器学习模块可基于存储在历史缓冲器hb中的历史读取电平或历史读取电平偏移来从存储器块blks之中检测至少一个差块。例如,机器学习模块可基于来自存储器块blks的读取数据和/或对读取数据进行ecc操作的结果来估计存储器块blks的可靠性。
156.图24是根据实施例的存储装置20的框图。
157.参照图24,存储装置20可包括存储器控制器400和存储器装置500。存储装置20可支持多个通道ch1至chk,并且存储器装置500和存储器控制器400可通过多个通道ch1至chk(其中,k是正整数)连接。存储器控制器400可控制存储器装置500的整体操作。存储器控制器400可将信号发送到通道ch1至chk,以控制连接到通道ch1至chk的非易失性存储器装置nvm1、nvm2和nvmk中的每个。
158.存储器装置500可包括多个非易失性存储器装置nvm1、nvm2和nvmk。例如,多个非易失性存储器装置nvm1、nvm2和nvmk中的至少一个可与图1的nvm 120对应。非易失性存储器装置nvm1可连接到第一通道ch1,非易失性存储器装置nvm2可被连接到第二通道ch2,并
且非易失性存储器装置nvmk可连接到第k通道chk。在一个示例实施例中,非易失性存储器装置nvm1、nvm2和nvmk中的每个可被实现为能够根据来自存储器控制器400的单独命令进行操作的存储器单元。例如,非易失性存储器装置nvm1、nvm2和nvmk中的每个可被实现为芯片或裸片,但实施例不限于此。
159.存储器控制器400可通过多个通道ch1至chk向存储器装置500发送信号/从存储器装置500接收信号。例如,存储器控制器400可通过通道ch1至chk,将命令、地址以及数据发送到存储器装置500或从存储器装置500接收数据。存储器控制器400可通过每个通道选择连接到对应通道的非易失性存储器装置nvm1、nvm2和nvmk中的一个,并且向选择的非易失性存储器装置发送信号/从选择的非易失性存储器装置接收信号。此外,存储器控制器400可通过不同的通道并行地向存储器装置500发送信号/从存储器装置500接收信号。例如,存储器控制器400可通过第二通道ch2向存储器装置500发送命令,同时通过第一通道ch1向存储器装置500发送命令。
160.存储器控制器400可包括历史缓冲器hb、块可靠性检测器brd和历史缓冲器控制器hbc,并且历史缓冲器hb可包括多个历史读取电平存储区域s-ar。图24中的历史缓冲器hb、块可靠性检测器brd和历史缓冲器控制器hbc可与图1示出的历史缓冲器hb、块可靠性检测器brd和历史缓冲器控制器hbc对应,并且可基本上类似地被实现。因此,上面参照图1至图23描述的实施例可被应用于图24的实施例。
161.图25是根据实施例的应用存储装置的系统1000的图。图25的系统1000可以是移动系统(诸如,便携式通信终端(例如,移动电话)、智能电话、平板个人计算机(pc)、可穿戴装置、医疗保健装置或物联网(iot)装置等)。然而,图25的系统1000不一定限于移动系统,并且可为pc、膝上型计算机、服务器、媒体播放器或汽车装置(例如,导航装置)等。
162.参照图25,系统1000可包括主处理器1100、存储器(例如,1200a和1200b)和存储装置(例如,1300a和1300b)。此外,系统1000可包括图像捕获装置1410、用户输入装置1420、传感器1430、通信装置1440、显示器1450、扬声器1460、供电装置1470和连接接口1480中的至少一个。
163.主处理器1100可控制系统1000的所有操作,更具体地,包括在系统1000中的其他组件的操作。主处理器1100可被实现为通用处理器、专用处理器或ap。
164.主处理器1100可包括至少一个cpu核1110,并且还包括被配置为控制存储器1200a和1200b和/或存储装置1300a和1300b的控制器1120。在一些实施例中,主处理器1100还可包括加速器1130,加速器1130是用于高速数据运算(诸如,人工智能(ai)数据运算)的专用电路。加速器1130可包括图形处理器(gpu)、神经处理器(npu)和/或数据处理器(dpu),并且可被实现为与主处理器1100的其他组件物理分离的芯片。
165.存储器1200a和1200b可被用作系统1000的主存储器装置。尽管存储器1200a和1200b中的每个可包括易失性存储器(诸如,静态随机存取存储器(sram)和/或动态ram(dram)),但存储器1200a和1200b中的每个可包括非易失性存储器(诸如,闪存、相变ram(pram)和/或电阻式ram(rram))。存储器1200a和1200b可在与主处理器1100相同的封装件中被实现。
166.存储装置1300a和1300b可用作被配置为无论是否向其供电都存储数据的非易失性存储装置,并且具有比存储器1200a和1200b大的存储容量。存储装置1300a和1300b可分
别包括存储控制器(strg ctrl)1310a和1310b以及被配置为经由存储控制器1310a和1310b的控制来存储数据的非易失性存储器(nvm)1320a和1320b。尽管nvm1320a和1320b可包括具有二维(2d)结构或三维(3d)v-nand结构的闪存,但nvm1320a和1320b可包括其他类型的nvm(诸如,pram和/或rram)。
167.存储装置1300a和1300b可与主处理器1100进行物理分离,并且包括在系统1000中或在与主处理器1100相同的封装件中被实现。此外,存储装置1300a和1300b可具有各种类型的固态装置(ssd)或存储卡,并且可通过接口(诸如,下面将描述的连接接口1480)与系统100的其他组件可移除地组合。存储装置1300a和1300b可以是应用标准协议(诸如,通用闪存(ufs)、嵌入式多媒体卡(emmc)或nvme)的装置,但不限于此。
168.图像捕获装置1410可捕获静止图像或运动图像。图像捕获装置1410可包括相机、摄像机和/或网络摄像头。
169.用户输入装置1420可接收由系统1000的用户输入的各种类型的数据,并且包括触摸板、小键盘、键盘、鼠标和/或麦克风。
170.传感器1430可检测可从系统1000的外部获得的各种类型的物理量,并将检测到的物理量转换为电信号。传感器1430可包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器。
171.通信装置1440可根据各种通信协议在系统1000外部的其他装置之间发送和接收信号。通信装置1440可包括天线、收发机和/或调制解调器。
172.显示器1450和扬声器1460可用作被配置为分别向系统1000的用户输出视觉信息和听觉信息的输出装置。
173.供电装置1470可适当地转换从嵌入在系统1000中的电池(未示出)和/或外部电源供应的电力,并将转换的电力供应给系统1000的每个组件。
174.连接接口1480可提供系统1000和外部装置之间的连接,该外部装置连接到系统1000并且能够向系统1000发送数据和从系统1000接收数据。连接接口1480可通过使用各种接口方案(诸如,高级技术附件(ata)、串行ata(sata)、外部sata(e-sata)、小型计算机小型接口(scsi)、串行附接scsi(sas)、外围组件互连(pci)、pci express(pcie)、nvme、ieee1394、通用串行总线(usb)接口、安全数字(sd)卡接口、多媒体卡(mmc)接口、emmc接口、ufs接口、嵌入式ufs(eufs)接口和紧凑式闪存(cf)卡接口)被实现。
175.虽然已经参照附图具体示出和描述了各种实施例,但是将理解,在不脱离所附权利要求的精神和范围的情况下,可对其中进行形式上和细节上的各种改变。
技术特征:
1.一种存储装置,包括:非易失性存储器,包括多个存储器块;和存储控制器,包括历史缓冲器,历史缓冲器包括与所述多个存储器块对应的多个历史读取电平存储区域,存储控制器被配置为在所述存储装置的运行时间期间基于所述多个存储器块的可靠性来动态地调整分配给所述多个存储器块之中的至少一个存储器块的所述多个历史读取电平存储区域的数量,其中,存储控制器被配置为:增加分配给所述多个存储器块中的第一存储器块的历史读取电平存储区域的数量,第一存储器块相对于所述多个存储器块中的其余存储器块的可靠性具有相对低的可靠性。2.根据权利要求1所述的存储装置,其中,所述多个存储器块中的至少一个具有堆叠n个堆叠件的n堆叠结构,其中,n是2或更大的正整数。3.根据权利要求1所述的存储装置,其中,包括在历史缓冲器中的历史读取电平存储区域的数量是固定的,并且被分配给所述多个存储器块的一部分中的每个的历史读取电平存储区域的数量是可变的。4.根据权利要求1所述的存储装置,其中,存储控制器还被配置为:减少分配给所述多个存储器块之中的第二存储器块的历史读取电平存储区域的数量,第二存储器块相对于所述多个存储器块中的其余存储器块的可靠性具有相对高的可靠性。5.根据权利要求4所述的存储装置,其中,存储控制器还被配置为:将分配给第二存储器块的第一历史读取电平存储区域分配给第一存储器块。6.根据权利要求4所述的存储装置,其中,存储控制器还被配置为:通过使用默认读取电平来对第二存储器块执行读取操作。7.根据权利要求1所述的存储装置,其中,存储控制器还包括:块可靠性检测器,被配置为检测所述多个存储器块的可靠性;和历史缓冲器控制器,被配置为基于可靠性来动态地控制历史缓冲器。8.根据权利要求1至7中的任意一项所述的存储装置,其中,存储控制器还被配置为:在没有接收来自主机的读取请求的情况下,通过使用默认读取电平对所述多个存储器块执行后台读取操作,并且根据后台读取操作的结果来检测所述多个存储器块的可靠性。9.根据权利要求8所述的存储装置,其中,存储控制器还被配置为:确定来自所述多个存储器块之中的后台读取操作已经失败的第三存储器块的可靠性相对低,并且增加分配给第三存储器块的历史读取电平存储区域的数量。10.根据权利要求9所述的存储装置,其中,存储控制器还被配置为:通过使用校正的读取电平对第三存储器块执行读取重试操作,并且当读取重试操作成功时,将校正的读取电平存储在历史缓冲器中作为第三存储器块的历史读取电平。11.根据权利要求1至7中的任意一项所述的存储装置,其中,存储控制器还被配置为:基于从主机接收的读取请求,通过使用默认读取电平对来自所述多个存储器块之中的选择的存储器块执行正常读取操作,当正常读取操作失败时,通过使用校正的读取电平对选择的存储器块执行读取重试操作,并且
根据正常读取操作或读取重试操作的结果来检测选择的存储器块的可靠性。12.根据权利要求11所述的存储装置,其中,存储控制器还被配置为:当选择的存储器块的正常读取操作已经失败时,确定选择的存储器块的可靠性相对低,并且增加分配给选择的存储器块的历史读取电平存储区域的数量。13.根据权利要求1至7中的任意一项所述的存储装置,其中,存储控制器还被配置为:基于分别与所述多个存储器块对应的多个历史读取电平偏移来检测所述多个存储器块的可靠性。14.根据权利要求13所述的存储装置,其中,存储控制器还被配置为:确定所述多个存储器块之中具有等于或小于阈值的历史读取电平偏移的存储器块是具有相对高可靠性的存储器块,并且确定所述多个存储器块之中具有大于所述阈值的历史读取电平偏移的存储器块是具有相对低可靠性的存储器块。15.根据权利要求13所述的存储装置,其中,存储控制器还被配置为:通过使用机器学习模块从所述多个历史读取电平偏移估计所述多个存储器块的可靠性。16.一种包括历史缓冲器的存储控制器的操作方法,所述操作方法包括:将包括在历史缓冲器中的多个历史读取电平存储区域分别分配给包括在非易失性存储器中的多个存储器块;和基于所述多个存储器块的可靠性执行历史缓冲器控制操作,历史缓冲器控制操作用于动态地调整分配给所述多个存储器块中的至少一个存储器块的历史读取电平存储区域的数量,其中,历史缓冲器控制操作包括:当所述多个存储器块之中的第一存储器块的可靠性大于第一阈值时,回收分配给第一存储器块的历史读取电平存储区域;和当第一存储器块的可靠性等于或小于第二阈值时,将附加历史读取电平存储区域分配给第一存储器块,第二阈值小于第一阈值。17.根据权利要求16所述的操作方法,其中,历史缓冲器控制操作还包括:在没有接收来自主机的读取请求的情况下,通过使用默认读取电平对所述多个存储器块执行后台读取操作;和根据后台读取操作的结果来检测所述多个存储器块的可靠性;和基于所述多个存储器块的可靠性,动态地调整分配给所述多个存储器块中的至少一个存储器块的历史读取电平存储区域的数量。18.根据权利要求16所述的操作方法,其中,历史缓冲器控制操作还包括:基于从主机接收的读取请求,通过使用默认读取电平对来自所述多个存储器块之中的选择的存储器块执行正常读取操作;当正常读取操作失败时,通过使用校正的读取电平对选择的存储器块执行读取重试操作;根据正常读取操作或读取重试操作的结果来检测选择的存储器块的可靠性;和基于所述多个存储器块的可靠性,动态地调整分配给所述多个存储器块中的至少一个存储器块的历史读取电平存储区域的数量。19.根据权利要求16所述的操作方法,其中,历史缓冲器控制操作还包括:
基于分别与所述多个存储器块对应的多个历史读取电平偏移来检测所述多个存储器块的可靠性;和基于所述多个存储器块的可靠性,动态地调整分配给所述多个存储器块中的至少一个存储器块的历史读取电平存储区域的数量。20.一种被配置为控制非易失性存储器的存储控制器,所述存储控制器包括:主机接口,被配置为与主机通信;非易失性存储器接口,被配置为与非易失性存储器通信;历史缓冲器,包括与包括在非易失性存储器中的多个存储器块对应的多个历史读取电平存储区域;块可靠性检测器,被配置为检测所述多个存储器块的可靠性;和历史缓冲器控制器,被配置为:基于可靠性动态地调整分配给所述多个存储器块中的至少一个存储器块的历史读取电平存储区域的数量。
技术总结
提供了一种存储装置、存储控制器以及存储控制器的操作方法,所述存储装置包括:非易失性存储器,包括多个存储器块;和存储控制器,包括历史缓冲器,历史缓冲器包括与所述多个存储器块对应的多个历史读取电平存储区域。存储控制器在存储装置的运行时间期间基于所述多个存储器块的可靠性来动态地调整分配给所述多个存储器块中的一个或多个存储器块的历史读取电平存储区域的数量。存储控制器增加分配给所述多个存储器块之中的第一存储器块的历史读取电平存储区域的数量,第一存储器块相对于所述多个存储器块中的其余存储器块的可靠性具有相对低的可靠性。具有相对低的可靠性。具有相对低的可靠性。
技术研发人员:
李侊祐 柳尚辰 金妍智 朴正根 李静雨
受保护的技术使用者:
三星电子株式会社
技术研发日:
2022.05.18
技术公布日:
2023/3/2