存储器系统、存储器控制器及其操作方法与流程

阅读: 评论:0



1.本公开涉及一种电子装置,更具体地,涉及一种存储器系统及其操作方法。


背景技术:



2.存储装置(存储器系统)在例如计算机、智能电话或智能平板的主机装置的控制下存储数据。存储装置可以是诸如硬盘驱动器(hdd)的在磁盘中存储数据的类型,或者是诸如固态驱动器(ssd)或存储卡(特别是非易失性存储器)的在半导体存储器中存储数据的类型。
3.存储装置可以包括其中存储数据的存储器装置和在存储器装置中存储数据的存储器控制器。通常,存在两种类型的存储器装置:易失性存储器装置和非易失性存储器装置。非易失性存储装置的示例包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存存储器、相变ram(pram)、磁性ram(mram)、电阻ram(rram)和铁电ram(fram)等。


技术实现要素:



4.本公开的实施方式提供一种存储器系统和一种控制存储装置的方法,以有效改善数据劣化并且提高数据可靠性。
5.根据本公开的一个实施方式的存储器系统可以包括:存储器装置,该存储器装置包括多个页;以及存储器控制器,该存储器控制器被配置成纠正通过读取多个页当中的选定页而获得的读取数据中的错误,并且基于读取数据中的错误位的数量来确定是否对选定页执行刷新操作。存储器控制器可以包括:正常读取操作控制器,该正常读取操作控制器被配置成控制对选定页的读取操作并且确定读取数据中的错误位的数量;纠错执行组件,该纠错执行组件被配置成纠正读取数据;以及数据恢复控制器,该数据恢复控制器被配置成当读取数据中的错误被纠正时,基于读取数据中的错误位的数量来控制对选定页的刷新操作。
6.一种操作存储器系统的方法,该存储器系统包括:存储器装置,该存储器装置包括多个页;以及存储器控制器,该存储器控制器被配置成纠正通过读取多个页当中的选定页而获得的读取数据中的错误,并且基于读取数据中的错误位的数量来确定是否对选定页执行刷新操作,该方法可以包括以下步骤:读取选定页以获得读取数据;纠正读取数据中的错误;当对读取数据中的错误的纠正通过时,确定读取数据中的错误位的数量;以及基于读取数据中的错误位的数量来控制对选定页的刷新操作。
7.根据本公开的一个实施方式的一种存储器控制器控制包括多个页的存储器装置,该存储器控制器可以包括:正常读取操作控制器,该正常读取操作控制器被配置成控制对多个页当中的选定页的读取操作,并且确定在读取操作期间从存储器装置读取的读取数据中的错误位的数量;纠错执行组件,该纠错执行组件被配置成纠正读取数据中的错误;以及数据恢复控制器,该数据恢复控制器被配置成当读取数据中的错误被纠正时,基于读取数
据中的错误位的数量来控制对选定页的刷新操作。
8.一种控制器的操作方法可以包括以下步骤:向主机提供已经从页成功读取的读取数据;以及基于在读取数据中检测到的错误位的数量,控制存储器装置选择性地对页执行刷新操作或者对包括页的块执行读取回收操作。
9.一种控制器的操作方法可以包括以下步骤:向主机提供已经从物理页成功读取的第一数据;控制存储器装置从对应于该物理页的最低有效位页读取第二数据;以及基于第一数据和第二数据之间的差异,控制存储器装置选择性地对物理页执行刷新操作或者对包括物理页的块执行读取回收操作。
10.一种控制器的操作方法可以包括以下步骤:向主机提供已经从页成功读取的读取数据;控制存储器装置从包括该页的块中的两个或更多个页读取块数据;检测块数据中的错误位的数量;以及基于在块数据中检测到的错误位的数量控制存储器装置选择性地对该页执行刷新操作或者对该块执行读取回收操作。
11.根据本技术,当纠错通过时,可以通过基于包括在读取数据中的错误位的数量来确定是否执行刷新操作或者读取回收操作来提高数据可靠性。
附图说明
12.图1是示出存储装置的框图。
13.图2是示出图1的存储器装置的结构的图。
14.图3是示出图2的存储器单元阵列的一个实施方式的图。
15.图4a和图4b是示出在纠错解码操作失败后执行的读取重试操作和e-boost操作的图。
16.图5示出根据本公开的一个实施方式的当纠错解码操作通过时存储器控制器的操作。
17.图6是示出基于图5中的纠错解码数据中的错误位的数量而执行的操作的图。
18.图7是示出读取回收操作的图。
19.图8是示出刷新操作的图。
20.图9示出基于根据页读取命令读取的数据而执行的存储器控制器的操作。
21.图10a和图10b是示出通过图9的页读取命令而读取的逻辑页的图。
22.图11a和图11b是示出基于根据图9的页读取命令读取的数据中的错误位的数量而执行的操作的图。
23.图12示出基于根据块读取命令读取的数据而执行的存储器控制器的操作。
24.图13a至图13d是示出对应于图12的块读取命令的操作的图。
25.图14是示出基于根据图12的块读取命令读取的数据中的错误位的数量而执行的操作的图。
26.图15是示出根据本公开的一个实施方式的存储器控制器的操作的图。
27.图16是示出根据本公开的一个实施方式的存储器控制器的操作的图。
28.图17是示出根据本公开的一个实施方式的存储器控制器的操作的图。
29.图18是示出根据本公开的一个实施方式的存储器控制器的操作的图。
30.图19是示出图1的存储器控制器的另一实施方式的图。
31.图20是示出根据本公开的一个实施方式的应用了存储装置的存储卡系统的框图。
32.图21是示出根据本公开的一个实施方式的应用了存储装置的固态驱动器(ssd)系统的框图。
33.图22是示出根据本公开的一个实施方式的应用了存储装置的用户系统的框图。
具体实施方式
34.提供本文的具体结构描述和功能描述仅为了描述本公开的实施方式。然而,本发明可以以各种形式实现并且以各种方式实施;因此,本发明不限于任何公开的实施方式。在整个说明书中,对“一个实施方式”或“另一实施方式”等的引用不一定仅指一个实施方式,并且对任何这样的短语的不同引用不一定指相同的实施方式。当在本文使用的术语“实施方式”时,不一定指所有的实施方式。
35.下面参照附图详细描述本公开的实施方式,以使得本公开所属领域的技术人员可以实践和容易地实施本发明。
36.图1是示出存储装置的框图。
37.参照图1,存储装置50可以包括存储器装置100和存储器控制器200。
38.存储装置50可以在主机300(例如,蜂窝电话、智能电话、mp3播放器、膝上型计算机、台式计算机、游戏机、电视机、平板pc或车载信息娱乐系统)的控制下存储数据。
39.根据作为与主机300的通信方法的主机接口,可以将存储装置50制造或配置为各种类型的存储装置中的任何一种。例如,存储装置50可以被配置成ssd、多媒体卡(以mmc、emmc、rs-mmc和micro-mmc形式)、安全数字卡(以sd、mini-sd和micro-sd形式)、通用串行总线(usb)存储装置、通用闪存存储(ufs)装置、个人计算机存储卡国际协会(pcmcia)卡类型存储装置、外围组件互连(pci)卡类型存储装置、pci express(pci-e)卡类型存储装置、紧凑型闪存(cf)卡、智能媒体卡和/或记忆棒。
40.可以将存储装置50制造为各种类型的封装中的任何一种。例如,可以将存储装置50制造为层叠封装(pop)、系统级封装(sip)、片上系统(soc)、多芯片封装(mcp)、板上芯片(cob)、晶片级制造封装(wfp)和/或晶片级层叠封装(wsp)。
41.存储器装置100可以存储数据。存储器装置100响应于存储器控制器200的控制而操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。存储器单元阵列可以包括多个存储器块。每一个存储器块可以包括可以构成多个页的多个存储器单元。在一个实施方式中,页可以是用于在存储器装置100中存储数据或者读取存储在存储器装置100中的数据的单位。存储器块可以是用于擦除数据的单位。
42.在一个实施方式中,存储器装置100可以包括数据读取器170。数据读取器170可以响应于从存储器控制器200接收的读取命令来读取选定页的数据。数据读取器170可以向存储器控制器200输出通过读取选定页的数据而获得的读取数据。
43.在一个实施方式中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(ddr sdram)、低功率双倍数据速率4(lpddr4)sdram、图形双倍数据速率(gddr)sdram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)、nand闪存存储器、垂直nand闪存存储器、nor闪存存储器、电阻随机存取存储器(rram)、相变存储器(pram)、磁阻随机存取存储器(mram)、铁电随机存取存储器(fram)或自旋转移力矩随机存取存储器(stt-ram)等。在本
说明书中,作为示例,假设存储器装置100是nand闪存存储器。
44.存储器装置100可以实现为二维阵列结构或三维阵列结构。虽然下面在三维阵列结构存储器装置的背景下描述了本发明的各方面和特征,但是本发明不限于三维阵列结构。本公开不仅可以应用于其中电荷存储层由导电浮栅(floating gate,fg)构成的闪存存储器装置,还可以应用于其中电荷存储层由绝缘膜构成的电荷捕获闪存(charge trap flash,ctf)。
45.在一个实施方式中,存储器装置100可以以将一个数据位存储在一个存储器单元中的单层单元(slc)方法进行操作。另选地,存储器装置100可以以将至少两个数据位存储在一个存储器单元中的方法进行操作。例如,存储器装置100可以以将两个数据位存储在一个存储器单元中的多层单元(mlc)方法、将三个数据位存储在一个存储器单元中的三层单元(tlc)方法或者将四个数据位存储在一个存储器单元中的四层单元(qlc)方法进行操作。
46.存储器装置100被配置成从存储器控制器200接收命令和地址,并且访问存储器单元阵列中的通过地址选择的区域。也就是说,存储器装置100可以对通过地址选择的区域执行对应于命令的操作。例如,存储器装置100可以根据接收到的命令来执行写入操作(编程操作)、读取操作或擦除操作。例如,当接收到编程命令时,存储器装置100可以将数据编程到通过地址选择的区域。当接收到读取命令时,存储器装置100可以从通过地址选择的区域读取数据。当接收到擦除命令时,存储器装置100可以擦除存储在通过地址选择的区域中的数据。
47.在一个实施方式中,存储器控制器200可以包括正常读取操作控制器210、纠错执行组件(error correction performance component)220和数据恢复控制器(data recovery controller)230。
48.在一个实施方式中,正常读取操作控制器210可以控制存储器装置100,使得存储器装置100执行正常读取操作。这里,可以使用默认读取电压来执行正常读取操作。默认读取电压可以在存储器装置100的生产过程期间通过测试确定,并且可以区分擦除状态和各编程状态。
49.正常读取操作控制器210可以向存储器装置100提供用于执行正常读取操作的读取命令和地址,并且获得从存储器装置100读取的数据。当从存储器装置100获得读取数据时,正常读取操作控制器210可以向纠错执行组件220提供读取数据,纠错执行组件220执行纠错解码操作并且将结果报告给正常读取操作控制器210。基于该结果,正常读取操作控制器210可以确定是否要执行数据恢复操作,并且可以向数据恢复控制器230提供该确定的结果。
50.在一个实施方式中,纠错执行组件220可以纠正读取数据中的错误。由纠错执行组件220执行的纠错解码操作可以检测并且纠正读取数据中的错误位(error bit)。这里,可以预先确定可以由纠错执行组件220纠正的错误位的最大数量。
51.例如,当读取数据中的错误位的数量超过可纠正错误位的最大数量时,纠错执行组件220可以确定纠错解码操作失败。另外,当读取数据中的错误位的数量等于或小于可纠正错误位的最大数量时,纠错执行组件220可以纠正这些错误并且确定纠错解码操作通过。当纠错解码操作通过时,可以恢复原始数据。相反,当纠错解码操作失败时,原始数据可能无法恢复。
52.在一个实施方式中,数据恢复控制器230可以根据正常读取操作的纠错解码操作的结果而选择性地执行数据恢复操作。
53.当原始数据不能通过纠错解码恢复时,这可以表示存储在存储装置50中的数据不可靠。因此,存储器控制器200可以执行各种数据恢复操作以恢复原始数据。通常,数据恢复操作可以包括读取重试操作(read retry operation)和e-boost操作。
54.读取重试操作可以包括使用设定的读取电压再次读取存储在读取操作失败的页中的数据。在一个实施方式中,纠错执行组件220可以根据读取重试操作对读取数据执行纠错解码操作。当即使通过读取重试操作也不能恢复原始数据时,可以执行e-boost操作。
55.e-boost操作可以包括确定用于读取存储在读取操作失败的页中的数据的最佳读取电压,并且使用所确定的最佳读取电压再次执行读取操作。当执行e-boost操作时,数据恢复控制器230可以执行多个读取操作以到最佳读取电压,并且可以使用通过上述多个读取操作获得的数据来确定最佳读取电压。数据恢复控制器230可以使用所确定的最佳读取电压来读取存储在失败页中的数据。
56.注意,虽然将读取重试操作和e-boost操作描述为数据恢复操作的示例,但是可以替代地使用各种其它数据恢复操作中的任何一种。也可以使用不同数据恢复操作的组合。在这种情况下,可以选择首先执行除e-boost之外的数据恢复操作中的一个;如果到底还是要执行e-boost,则通常在最后执行e-boost。
57.然而,先前用于恢复数据的恢复操作(例如,读取重试操作或e-boost操作)存在涉及许多读取操作而数据仍然可能无法恢复的问题。
58.因此,根据本公开的实施方式,即使针对正常读取操作的纠错解码操作通过,数据恢复控制器230也可以根据正常读取操作中的错误位的数量来执行读取回收操作(read reclaim operation)或刷新操作(refresh operation),从而可以提高数据可靠性。
59.下面将更详细地描述数据恢复控制器230根据正常读取操作中的错误位的数量来执行读取回收操作或刷新操作的细节。
60.存储器控制器200可以控制存储装置50的整体操作。
61.当向存储装置50施加电源电压时,存储器控制器200可以执行固件。当存储器装置100是闪存存储器装置时,存储器控制器200可以操作诸如用来控制主机300和存储器装置100之间的通信的闪存转换层(ftl)的固件。
62.在一个实施方式中,存储器控制器200可以包括固件(未示出),该固件可以从主机300接收数据和逻辑块地址(lba)并且将lba转换成物理块地址(pba),pba指示存储器装置100中所包括的其中将要存储数据的存储器单元的地址。此外,存储器控制器200可以在缓冲存储器中存储配置lba和pba之间的映射关系的逻辑-物理地址映射表。
63.存储器控制器200可以根据主机300的请求控制存储器装置100执行编程操作、读取操作或擦除操作等。例如,当从主机300接收到编程请求时,存储器控制器200可以将编程请求转换成编程命令,并且可以向存储器装置100提供编程命令、pba和数据。当从主机300接收到读取请求连同lba时,存储器控制器200可以将读取请求改变为读取命令,选择对应于lba的pba,并且然后向存储器装置100提供读取命令和pba。当从主机300接收到擦除请求连同lba时,存储器控制器200可以将擦除请求改变为擦除命令,选择对应于lba的pba,并且然后向存储器装置100提供擦除命令和pba。
64.在一个实施方式中,存储器控制器200可以在没有来自主机300的请求的情况下产生编程命令、地址和数据并且将其发送到存储器装置100。例如,存储器控制器200可以向存储器装置100提供命令、地址和数据以执行后台操作,例如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
65.在一个实施方式中,存储装置50还可以包括缓冲存储器(未示出)。存储器控制器200可以控制主机300和缓冲存储器(未示出)之间的数据交换。另选地,存储器控制器200可以在缓冲存储器中临时存储用于控制存储器装置100的系统数据。例如,存储器控制器200可以将从主机300输入的数据临时存储在缓冲存储器中,并且然后将临时存储在缓冲存储器中的数据发送到存储器装置100。
66.在各种实施方式中,缓冲存储器可以用作存储器控制器200的操作存储器和高速缓存存储器。缓冲存储器可以存储由存储器控制器200执行的代码或命令。另选地,缓冲存储器可以存储由存储器控制器200处理的数据。
67.在一个实施方式中,缓冲存储器可实现为动态随机存取存储器(dram)(例如,双倍数据速率同步动态随机存取存储器(ddr sdram)、ddr4 sdram、低功率双倍数据速率4(lpddr4)sdram、图形双倍数据速率(gddr)sdram、低功率ddr(lpddr)或rambus动态随机存取存储器(dram))或静态随机存取存储器(sram)。
68.在各种实施方式中,缓冲存储器可以设置在存储装置50的外部并且可操作地与其联接。在这种情况下,可操作地联接到存储装置50的一个或更多个外部易失性存储器装置可以用作缓冲存储器。
69.在一个实施方式中,存储器控制器200可以控制两个或更多个存储器装置。在这种情况下,存储器控制器200可以根据交织方法来控制存储器装置以提高操作性能。
70.主机300可以使用例如通用串行总线(usb)、串行at附件(sata)、串行附接scsi(sas)、高速芯片间(hsic)、小型计算机系统接口(scsi)、外围组件互连(pci)、pci express(pcie)、非易失性存储器express(nvme)、通用闪存存储(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、注册dimm(rdimm)和/或减载dimm(lrdimm)的各种通信方法中的至少一种与存储装置50通信。
71.图2是示出图1的存储器装置的结构的图。
72.参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
73.存储器单元阵列110包括通过行线rl连接到行解码器121的多个存储器块blk1至blkz。多个存储器块blk1至blkz可以通过位线bl1至bln连接到页缓冲器组123。多个存储器块blk1至blkz中的每一个包括多个存储器单元。在一个实施方式中,多个存储器单元是非易失性存储器单元。连接到相同字线的存储器单元可以被定义为一页。因此,一个存储器块可以包括多个页。
74.行线rl可以包括至少一条源极选择线、多条字线和至少一条漏极选择线。
75.外围电路120可以被配置成在控制逻辑130的控制下对存储器单元阵列110的选定区域执行编程操作、读取操作或擦除操作。
76.外围电路120可以包括行解码器121、电压发生器122、页缓冲器组123、列解码器124、输入/输出电路125和感测电路126。
77.行解码器121通过行线rl连接到存储器单元阵列110。行线rl可以包括至少一条源极选择线、多条字线和至少一条漏极选择线。
78.行解码器121被配置成对从控制逻辑130接收的行地址radd进行解码。行解码器121根据解码的地址选择存储器块blk1至blkz中的至少一个存储器块。此外,行解码器121可以根据解码的地址来选择选定存储器块的至少一条字线以将由电压发生器122产生的电压施加到该至少一条字线wl。
79.电压发生器122响应于控制逻辑130的控制而操作。电压发生器122被配置成利用提供给存储器装置100的外部电源电压来产生多个电压。具体地,电压发生器122可以响应于操作信号opsig而产生用于编程操作、读取操作和擦除操作的各种操作电压vop。
80.在一个实施方式中,电压发生器122可以通过调节外部电源电压来产生内部电源电压。由电压发生器122产生的内部电源电压用作存储器装置100的操作电压。
81.在一个实施方式中,电压发生器122可以使用外部电源电压或内部电源电压产生多个电压。
82.例如,电压发生器122可以包括接收内部电源电压的多个泵浦(pumping)电容器,并且可以响应于控制逻辑130的控制而选择性地激活多个泵浦电容器以产生多个电压。
83.所产生的多个电压可以由行解码器121提供给存储器单元阵列110。
84.页缓冲器组123包括分别通过第一位线bl1至第n位线bln连接到存储器单元阵列110的第一页缓冲器pb1至第n页缓冲器pbn。第一页缓冲器pb1至第n页缓冲器pbn响应于控制逻辑130的控制而操作。具体地,第一页缓冲器pb1至第n页缓冲器pbn可以响应于页缓冲器控制信号pbsignals而操作。
85.具体地,在编程操作期间,当编程电压施加到选定字线时,第一页缓冲器pb1至第n页缓冲器pbn可以通过第一位线bl1至第n位线bln将通过输入/输出电路125接收的数据data传输到选定存储器单元。根据传输的数据data对选定页的存储器单元进行编程。在编程验证操作期间,第一页缓冲器pb1至第n页缓冲器pbn可以通过感测经由第一位线bl1至第n位线bln从选定存储器单元接收的电压或电流来读取页数据。
86.在读取操作期间,第一页缓冲器pb1至第n页缓冲器pbn通过第一位线bl1至第n位线bln从选定页的存储器单元读取数据data,并且在列解码器124的控制下向输入/输出电路125输出读取的数据data。
87.在擦除操作期间,第一页缓冲器pb1至第n页缓冲器pbn可以浮置第一位线bl1至第n位线bln或者施加擦除电压。
88.列解码器124可以响应于列地址cadd而在输入/输出电路125和页缓冲器组123之间传输数据。例如,列解码器124可以通过数据线dl与第一页缓冲器pb1至第n页缓冲器pbn交换数据,或者可以通过列线cl与输入/输出电路125交换数据。
89.输入/输出电路125可以将从参照图1描述的存储器控制器200接收的命令cmd和地址addr传输到控制逻辑130,或者可以与列解码器124交换数据data。
90.感测电路126可以在读取操作或验证操作期间响应于许可位信号vrybit而产生参考电流,并且将从页缓冲器组123接收的感测电压vpb与通过参考电流产生的参考电压进行比较,以输出通过信号pass或失败信号fail。
91.在一个实施方式中,感测电路126可以包括电流感测电路(csc)和/或失败位计数
器(fail bit counter,fbc)。感测电路126中的csc或fbc可以基于读取数据中的错误位的数量而输出通过信号pass或失败信号fail。
92.在一个实施方式中,当读取数据中的错误位的数量在可纠错范围之内时,感测电路126可以输出通过信号pass,并且当读取数据中的错误位的数量在可纠错范围之外时,感测电路126可以输出失败信号fail。
93.当感测电路126输出通过信号pass或失败信号fail时,控制逻辑130可以向图1的存储器控制器200输出对应的信号。图1的存储器控制器200可以基于接收到的通过信号pass或失败信号fail来确定是否执行刷新操作或读取回收操作。
94.具体地,当输出失败信号fail时,图1的存储器控制器200可以确定不执行任何附加操作。
95.然而,当输出通过信号pass时,图1的存储器控制器200可以根据读取数据中的错误位的数量来确定选择性地执行刷新操作和读取回收操作中的任何一个。
96.例如,存储器控制器200可以确定当读取数据中的错误位的数量小于第一参考值时不执行附加操作,当错误位的数量等于或大于第一参考值并且小于第二参考值时执行刷新操作,并且当错误位的数量等于或大于第二参考值时执行读取回收操作。
97.在一个实施方式中,在图1的存储器控制器200确定执行刷新操作之后,存储器控制器200可以向存储器装置100输出指示执行刷新操作的刷新命令。
98.此后,存储器装置100可以执行对应于刷新命令的刷新操作。具体地,当刷新针对其输出通过信号pass的页数据时,可以响应于刷新命令而读取针对其输出通过信号pass的页数据。当读取了针对其输出通过信号pass的页数据时,可以将页数据临时存储在存储器装置100中的页缓冲器pb1至pbn中,可以擦除针对其输出通过信号pass的页,并且然后可以将针对其输出通过信号pass的页数据再次编程到对应的位置。也就是说,当刷新数据时,针对其输出通过信号pass的页数据可以不输出到存储器控制器200,并且可以临时存储在页缓冲器pb1至pbn中,并且然后再次被编程到对应的页。
99.在一个实施方式中,当输出通过信号pass时,存储器控制器200可以确定执行读取回收操作。在存储器控制器200确定执行读取回收操作之后,存储器控制器200可以向存储器装置100输出指示执行读取回收操作的读取回收命令。此后,响应于读取回收命令,存储器装置100可以将针对其输出通过信号pass的页所属于的存储器块的数据移动到另一存储器块。
100.控制逻辑130可以响应于命令cmd和地址addr而输出操作信号opsig、行地址radd、页缓冲器控制信号pbsignals和允许位vrybit,以控制外围电路120。例如,控制逻辑130可以响应于子块读取命令和地址而控制选定存储器块的读取操作。此外,控制逻辑130可以响应于子块擦除命令和地址而控制包括在选定存储器块中的选定子块的擦除操作。此外,控制逻辑130可以响应于通过信号pass或失败信号fail而确定验证操作是通过还是失败。
101.在一个实施方式中,控制逻辑130可以包括数据读取器170。数据读取器170可以响应于从图1的存储器控制器200接收的读取命令而读取数据。
102.数据读取器170可以根据从存储器控制器200接收的命令是正常读取命令、页读取命令还是块读取命令而向存储器控制器200输出读取数据。
103.在一个实施方式中,当从存储器控制器200接收的命令是正常读取命令时,数据读
取器170可以向存储器控制器200输出通过读取选定页而获得的读取数据。
104.在一个实施方式中,当从存储器控制器200接收的命令是页读取命令时,可以向存储器控制器200输出通过读取最低有效位(lsb)页或lsb页和中间有效位(csb)页而获得的读取数据。
105.在一个实施方式中,当从图1的存储器控制器200接收的命令是块读取命令时,可以向存储器控制器200输出通过读取存储器块中的所有页、奇数页、偶数页或设定数量的页而获得的读取数据。
106.图3是示出图2的存储器单元阵列的一个实施方式的图。
107.参照图2和图3,图3是示出包括在图2的存储器单元阵列110中的多个存储器块blk1至blkz中的任意一个存储器块blka的电路图。
108.彼此平行布置的第一选择线、字线和第二选择线可以连接到存储器块blka。例如,字线可以在第一选择线和第二选择线之间彼此平行布置。这里,第一选择线可以是源极选择线ssl,并且第二选择线可以是漏极选择线dsl。
109.更具体地,存储器块blka可以包括连接在位线bl1至bln和源极线sl之间的多个串。位线bl1至bln可以分别连接到各个串,并且源极线sl可以共同连接到各个串。由于各个串可以被配置成彼此相同,因此作为示例具体描述连接到第一位线bl1的串st。
110.串st可以包括串联连接在源极线sl和第一位线bl1之间的源极选择晶体管sst、多个存储器单元f1至f16和漏极选择晶体管dst。一个串st可以包括源极选择晶体管sst和漏极选择晶体管dst中的一个或更多个,并且可以包括多于附图中所示的16个存储器单元f1至f16。
111.源极选择晶体管sst的源极可以连接到源极线sl,并且漏极选择晶体管dst的漏极可以连接到第一位线bl1。存储器单元f1至f16可以串联连接在源极选择晶体管sst和漏极选择晶体管dst之间。包括在不同串中的源极选择晶体管sst的栅极可以连接到源极选择线ssl,漏极选择晶体管dst的栅极可以连接到漏极选择线dsl,并且存储器单元f1至f16的栅极可以分别连接到多条字线wl1至wl16。包括在不同串中的存储器单元当中的连接到同一字线的一组存储器单元可以被称为物理页ppg。因此,存储器块blka可以包括字线wl1至wl16的数量的物理页ppg。
112.一个存储器单元可以存储一位数据。这通常被称为单层单元(slc)。在这种情况下,一个物理页ppg可以存储一个逻辑页(lpg)数据。一个逻辑页(lpg)数据可以包括一个物理页ppg中包括的存储器单元的数量的数据位。此外,一个存储器单元可以存储两位或更多位数据。这通常被称为多层单元(mlc)。在这种情况下,一个物理页ppg可以存储两个或更多逻辑页(lpg)数据。
113.虽然mlc通常是指能够存储两位或更多位数据的存储器单元,但是随着存储器单元容量的增加,mlc有时更具体地指存储两位数据的存储器单元。在这种情况下,存储三位或更多位数据的存储器单元被称为三层单元(tlc),并且存储四位或更多位数据的存储器单元被称为四层单元(qlc)。通常,本发明可以应用于具有各自能够存储两位或更多位数据的存储器单元的存储器装置100。
114.在另一实施方式中,存储器块可以具有三维结构。每个存储器块包括层叠在基板上的多个存储器单元。这种多个存储器单元沿着+x方向、+y方向和+z方向布置。
115.图4a和图4b是示出在纠错解码操作失败后执行的读取重试操作和e-boost操作的图。
116.参照图4a和图4b,图4a示出了读取重试操作,并且图4b示出了e-boost操作。
117.参照图4a和图4b,图4a和图4b示出了存储器单元的阈值电压分布中的相邻阈值电压分布。图4a和图4b的横轴表示存储器单元的阈值电压的幅值vth,并且图4a和图4b的纵轴表示存储器单元的序号。
118.在一个实施方式中,当存储器装置100以多层单元(mlc)方法执行编程操作时,图4a和图4b是可以处于擦除状态e和第一编程状态p1、第一编程状态p1和第二编程状态p2、或者第二编程状态p2和第三编程状态p3(即,两个相邻状态)的存储器单元的阈值电压分布。
119.假设图4a和图4b示出了第一编程状态p1和第二编程状态p2的存储器单元的阈值电压分布。
120.在一个实施方式中,存储器装置100可以利用与从存储器控制器200接收的正常读取命令对应的作为默认读取电压的rh电压来执行正常读取操作。此后,存储器控制器200可以接收利用rh电压读取的数据,并且执行纠正读取数据中包括的错误的纠错解码操作。
121.在一个实施方式中,当包括在读取数据中的错误位的数量超过可纠正位的数量时,纠错解码操作可能失败。在这种情况下,可以执行用于恢复原始数据的恢复操作。
122.参照图4a,读取重试操作可以是利用与执行读取操作所利用的rh电压相邻的读取电压执行的读取操作。可以根据读取电压的优先级来执行读取重试操作。具体地,可以参照读取重试表来执行读取重试操作。
123.参照图4a,第一读取重试电压rr1和第二读取重试电压rr2可以区分第一编程状态p1和第二编程状态p2。rr1和rr2可以被包括在读取重试表中。也就是说,在读取重试表中可以包括至少两个读取重试电压。
124.在一个实施方式中,可以首先使用第一读取重试电压rr1来执行第一读取操作1
st read,并且然后可以使用第二读取重试电压rr2来执行第二读取操作2
nd read。根据设定的优先级,可以相对于第二读取操作2
nd read优先执行第一读取操作1
st read。
125.在一个实施方式中,第一读取重试电压rr1可以是通过将第一偏移offset1添加到rh电压(rh+offset1)而获得的电压,并且第二读取重试电压rr2可以是通过将偏移offset2添加到rh电压(rh+offset2)而获得的电压。
126.在另一实施方式中,读取重试表还可以包括除了第一读取重试电压rr1和第二读取重试电压rr2之外的各种电压,以用于区分第一编程状态p1和第二编程状态p2。读取重试表中可以包括任意合适数量的读取电压。
127.参照图4b,e-boost操作可以是基于利用基于存储器单元的理想阈值电压分布而确定的读取电压的读取结果来确定最佳读取电压的操作。
128.在图4b中,假设存储器单元的阈值电压分布是理想的,也就是说,对应于擦除状态和各个编程状态中的每一个的存储器单元的数量均等分布,则作为利用多个读取电压进行读取的结果,可以将第一e-boost读取电压rb1确定为最佳读取电压。当确定了最佳读取电压时,可以对利用最佳读取电压读取的数据执行纠错解码操作。
129.在一个实施方式中,在纠错解码操作失败之后,可以选择性地确定要执行图4a的读取重试操作和图4b的e-boost操作中的哪一个。也就是说,可以在读取重试操作之后执行
e-boost操作,或者可以在执行e-boost操作之后执行读取重试操作。
130.然而,如上所述,在纠错解码失败后,简单地执行多个读取操作以试图恢复原始数据不是特别有效或高效的。执行这种读取操作可能需要很长时间,并且即使执行了这些操作,原始数据也仍可能无法恢复。
131.因此,在本公开的一个实施方式中,提出了一种方法,以用于通过即使在正常读取操作期间对读取数据的纠错解码操作通过,也在正常读取操作期间根据读取数据中的错误位的数量来执行读取回收操作或刷新操作,从而确保数据的可靠性。
132.图5示出当纠错解码操作通过时,根据本公开的一个实施方式的存储器控制器的操作。
133.参照图5,图5的存储器控制器(或图1的200)可以包括正常读取操作控制器210、纠错执行组件220和数据恢复控制器230。此外,图5的数据恢复控制器230可以包括操作执行确定器231、刷新操作执行组件233和读取回收操作执行组件235。
134.在一个实施方式中,根据来自主机300的读取请求,正常读取操作控制器210可以向存储器装置100输出正常读取命令nread_cmd和正常读取地址nread_addr,以读取存储在存储器装置100中的数据。存储器装置100可以响应于正常读取命令nread_cmd而向正常读取操作控制器210输出通过读取存储器装置100中的对应于正常读取地址nread_addr的数据所获得的读取数据read_data。
135.正常读取操作控制器210可以向纠错执行组件220提供从存储器装置100接收的读取数据read_data。纠错执行组件220可以对读取数据read_data执行纠错。例如,纠错执行组件220可以检测包括在读取数据read_data中的错误位,并且执行纠正检测到的错误位的纠错解码操作。
136.从存储器装置100读取的数据可能由于滞留(retention)或干扰(disturbance)而包含一个或更多个错误位。错误位也可能作为从存储器装置100读取数据的结果而出现在读取数据中。纠错执行组件220可以执行纠错解码操作以纠正读取数据中的错误位。
137.作为通过纠错执行组件220执行纠错解码操作的结果,纠错解码操作可能通过或失败。纠错解码操作的通过可以表示读取操作通过,并且纠错解码操作的失败可以表示读取操作失败。
138.例如,当纠错解码操作通过时,纠错执行组件220可以向主机300输出纠错解码数据dec_data。相应地,可以完成对应于从主机300接收的读取请求的操作。
139.例如,当纠错解码操作失败时,纠错执行组件220可以执行用于恢复原始数据的恢复操作。用于恢复原始数据的操作可以包括图4a的读取重试操作和图4b的e-boost操作。
140.在一个实施方式中,当纠错解码操作失败时,在图4a的读取重试操作和图4b的e-boost操作中,可以执行多个读取操作来恢复原始数据。然而,在执行多个读取操作时可能会消耗大量时间,因此读取操作的整体效率可能会降低。此外,即使执行了多个读取操作,原始数据也可能无法恢复。
141.因此,在本公开的一个实施方式中,提供了一种方法以在纠错解码操作通过时,通过对执行了读取操作的页执行刷新操作或读取回收操作来提高数据可靠性。
142.在本附图中,假设纠错解码操作通过。
143.因此,由于纠错解码操作通过,所以纠错执行组件220可以向主机300和正常读取
操作控制器210提供纠错解码数据dec_data。正常读取操作控制器210可以基于纠错解码数据dec_data来确定读取数据read_data中的错误位的数量。例如,正常读取操作控制器210可以根据利用来自纠错执行组件220的纠错解码数据dec_data而接收到的解码信息来确定包括在读取数据read_data中的错误位的数量。在本文中,解码信息指示在纠错解码操作期间检测到的错误位的数量。例如,正常读取操作控制器210可以通过将从存储器装置100接收的读取数据read_data与从纠错执行组件220接收的纠错解码数据dec_data进行比较来确定包括在读取数据read_data中的错误位的数量。具体地,正常读取操作控制器210可以基于与纠错解码数据dec_data中包括的位相比读取数据read_data中包括的位当中的发生改变的位的数量来确定读取数据read_data中包括的错误位的数量。
144.正常读取操作控制器210可以确定读取数据read_data中的错误位的数量,并且向数据恢复控制器230输出指示读取数据read_data中的错误位的数量的错误位信息err_bit_inf。
145.在一个实施方式中,包括在数据恢复控制器230中的操作执行确定器231可以从正常读取操作控制器210接收错误位信息err_bit_inf。此后,操作执行确定器231可以基于错误位信息err_bit_inf来确定是否执行刷新操作或读取回收操作。
146.例如,当错误位信息err_bit_inf小于第一参考值时,操作执行确定器231可以确定不执行任何进一步的操作,当错误位信息err_bit_inf等于或大于第一参考值并且小于第二参考值时,操作执行确定器231可以确定执行刷新操作,并且当错误位信息err_bit_inf等于或大于第二参考值时,操作执行确定器231可以确定执行读取回收操作。这里,可以预先设定第一参考值和第二参考值,并且第二参考值可以大于第一参考值。
147.操作执行确定器231可以向刷新操作执行组件233和读取回收操作执行组件235提供关于所确定的操作的操作信息op_inf。
148.在一个实施方式中,刷新操作执行组件233和读取回收操作执行组件235中的每一个可以基于从操作执行确定器231接收的操作信息op_inf来输出命令。
149.例如,当操作信息op_inf包括关于刷新操作的信息时,刷新操作执行组件233可以向存储器装置100输出刷新命令refresh_cmd,从而对执行了对应读取操作的页执行刷新操作。存储器装置100可以响应于刷新命令refresh_cmd而对执行了读取操作的页执行刷新操作。
150.例如,当操作信息op_inf包括关于读取回收操作的信息时,读取回收操作执行组件235可以向存储器装置100输出读取回收命令rr_cmd,从而对包括执行了对应读取操作的页的块执行读取回收操作。存储器装置100可以响应于读取回收命令rr_cmd而执行将包括执行了读取操作的页的存储器块的数据移动到另一存储器块的读取回收操作。
151.图6是示出基于图5中的纠错解码数据中的错误位的数量执行的操作的图。
152.参照图5和图6,图6阐述了对应于不同的操作信息op_inf的,从图5的正常读取操作控制器210输出的错误位信息err_bit_inf所属于的不同范围。
153.在一个实施方式中,当对从图5的存储器装置100读取的数据的纠错解码操作通过时,图5的正常读取操作控制器210可以通过将从存储器装置100接收的读取数据read_data与从图5的纠错执行组件220接收的纠错解码数据dec_data进行比较来确定读取数据中的错误位的数量。
154.可以基于通过图5的正常读取操作控制器210确定的错误位的数量来产生错误位信息err_bit_inf。错误位信息err_bit_inf可以指示读取数据read_data中的错误位的数量。
155.在一个实施方式中,当错误位信息err_bit_inf小于第一参考值th1时,读取数据中的错误位可能非常少。因此,图5的操作执行确定器231可以确定不执行任何进一步的操作,并且可以不产生操作信息op_inf。
156.在一个实施方式中,当错误位信息err_bit_inf等于或大于第一参考值th1并且小于第二参考值th2时,读取数据中可能包括一些错误位。因此,图5的操作执行确定器231可以确定执行刷新操作,并且可以产生包括关于刷新操作refresh_op的信息的操作信息op_inf。此后,图5的刷新操作执行组件233可以基于接收到的操作信息op_inf向图5的存储器装置100输出刷新命令refresh_cmd,从而对图5的存储器装置100执行刷新操作。
157.在一个实施方式中,当错误位信息err_bit_inf等于或大于第二参考值th2时,读取数据中可能包括相对大量的错误位。因此,图5的操作执行确定器231可以确定执行读取回收操作,并且可以产生包括关于读取回收操作rr_op的信息的操作信息op_inf。此后,图5的读取回收操作执行组件235可以基于接收到的操作信息op_inf向图5的存储器装置100输出读取回收命令rr_cmd,从而对图5的存储器装置100执行读取回收操作。
158.图7是示出读取回收操作的图。
159.图7示出了图2的存储器单元阵列110中的多个存储器块blk1至blkz中的blk1至blk4。在图7中,第一存储器块blk1至第四存储器块blk4中的每一个包括四个页,但是在每个存储器块中可以包括任意适当数量的页。
160.在一个实施方式中,第一存储器块blk1可以包括第(1_1)页page1_1至第(1_4)页page1_4,第二存储器块blk2可以包括第(2_1)页page2_1至第(2_4)页page2_4,第三存储器块blk3可以包括第(3_1)页page3_1至第(3_4)页page3_4,并且第四存储器块blk4可以包括第(4_1)页page4_1至第(4_4)页page4_4.
161.在图7中,假设读取了第二存储器块blk2中的第(2_1)页page2_1的数据,并且对第(2_1)页page2_1的数据的纠错解码操作通过。
162.参照图5和图6,当第(2_1)页page2_1的数据中的错误位的数量等于或大于第二参考值th2时,可以基于从图5的读取回收操作执行组件235输出的读取回收命令rr_cmd,对图1的存储器装置100执行读取回收操作。
163.例如,基于从图1的存储器控制器200接收的正常读取命令读取被编程到第(2_1)页page2_1的数据,并且然后对读取数据的纠错解码操作可以通过。在对读取数据的纠错解码操作通过之后,可以基于读取数据中的错误位的数量,将包括执行了读取操作的第(2_1)页page2_1的第二存储器块blk2的所有数据移动到另一存储器块(空闲块)。这被称为读取回收。也就是说,通过读取回收操作,被编程到包括在纠错解码操作中通过的页的存储器块的所有数据可以被编程到另一存储器块。
164.在一个实施方式中,包括第(2_1)页page2_1的第二存储器块blk2的所有数据可以被再次编程在第四存储器块blk4而不是第二存储器块blk2中。第四存储器块blk4可以是空闲块。
165.此后,当第二存储器块blk2的所有数据被编程到第四存储器块blk4并且第(2_1)
页page2_1的数据被编程到第(4_1)页page4_1时,可以对第(4_1)页page4_1执行要对第(2_1)页page2_1执行的读取操作。
166.图8是示出刷新操作的图。
167.参照图6和图8,图8示出了当从图1的存储器装置100读取的第(2_1)页page2_1的数据中的错误位的数量等于或大于第一参考值th1并且小于第二参考值th2时,基于从图5的刷新操作执行组件233输出的刷新命令refresh_cmd由图1的存储器装置100执行的刷新操作。这里,假设对从存储器装置100读取的第(2_1)页page2_1的数据的纠错解码操作通过。
168.图8示出了当包括第(2_1)页page2_1的第二存储器块blk2是基于页的失败候选项(page-based fail candidate)时,对应于刷新命令refresh_cmd的操作。参照图12更详细地描述了确定第二存储器块blk2是基于页的失败候选项还是基于块的失败候选项的方法。这里,基于页的失败候选项可以表示第二存储器块blk2中的一些页在将来的纠错解码操作中可能失败的概率较高。此外,基于块的失败候选项可以表示第二存储器块blk2中的大多数页在将来的纠错解码操作中可能失败的概率较高。
169.在一个实施方式中,图8示出了与当从第(2_1)页page2_1读取的读取数据read_data中的错误位的数量在特定范围内时(参照图5的实施方式)、当从第(2_1)页page2_1的逻辑页当中的lsb页读取的页读取数据pager_data中的错误位的数量在特定范围内时(参照图9的实施方式)、或者当从page2_1中的lsb页读取的页读取数据pager_data中的错误位的数量等于或大于从page2_1中的csb页读取的pager_data中的错误位的数量时(参照图9的实施方式)提供的刷新命令refresh_cmd相对应的刷新操作。当满足这些条件中的任何一个时,可以执行对应于刷新命令refresh_cmd的刷新操作。
170.当响应于刷新命令refresh_cmd而对通过了纠错解码操作的页的数据进行刷新时,通过刷新操作读取的数据可以临时存储在图1的存储器装置100中的页缓冲器等中,并且可以在对应的页被擦除之后被再次相同地编程到相同位置。也就是说,当刷新数据时,在纠错解码操作中通过的页数据可以不被输出到图1的存储器控制器200,而是可以临时存储在图1的存储器装置100中,并且然后被再次编程到对应的页。
171.参照图8,响应于刷新命令refresh_cmd,第(2_1)页page2_1的数据可以临时存储在图2的存储器装置100中的页缓冲器组123中包括的第一页缓冲器pb1至第n页缓冲器pbn中的至少一个中,并且在第(2_1)页page2_1被擦除之后,临时存储的数据可以被再次编程到第(2_1)页page2_1。
172.在一个实施方式中,可以在纠错解码操作通过之后执行页读取操作。页读取操作可以包括从第(2_1)页page2_1中包括的逻辑页当中的lsb页读取数据,或者从lsb页和csb页两者一起读取数据。
173.在第(2_1)页page2_1中包括的逻辑页当中,当lsb页数据中的错误位的数量属于特定范围或者lsb页数据中的错误位的数量等于或大于csb页数据中的错误位的数量时,可以执行对应于刷新命令refresh_cmd的刷新操作。
174.然而,在第(2_1)页page2_1中包括的逻辑页当中,当lsb页数据中的错误位的数量等于或大于参考值或者lsb页数据中的错误位的数量小于csb页数据中的错误位的数量时,可以执行如图7所示的读取回收操作。
175.在一个实施方式中,可以在纠错解码操作通过之后执行块读取操作。在块读取操作期间,可以对来自第二存储器块blk2中所有页的数据、来自奇数页的数据、来自偶数页的数据或来自设定数量的页的数据进行纠错。读取操作可以顺序执行或随机地执行。
176.作为对块读取数据执行纠错解码操作的结果,当块读取数据中的错误位的数量是属于与基于页的失败候选项相对应的特定范围时,可以执行刷新操作。例如,当块读取数据中的错误位的数量等于或大于第五参考值并且小于第六参考值时,可以执行刷新操作。
177.此外,作为对块读取数据执行纠错解码操作的结果,当块读取数据中的错误位的数量等于或大于特定值,从而对应于基于块的失败候选项时,可以执行读取回收操作。例如,当块读取数据中的错误位的数量等于或大于第六参考值时,可以执行读取回收操作。
178.例如,在块读取操作期间,可以读取第二存储器块blk2中的所有页、奇数页、偶数页或设定数量的页,并且作为读取的结果,当块读取数据中的错误位的数量等于或大于第六参考值时,包括执行了读取操作的页的存储器块可以是基于块的失败候选项。就基于块的失败候选项而言,可以执行如图7所示的读取回收操作。
179.图9示出基于根据页读取命令读取的数据而执行的存储器控制器的操作。
180.图9示出在对从存储器装置100读取的读取数据read_data的纠错解码操作通过之后,基于从存储器装置100新获得的数据执行的刷新操作或读取回收操作的过程。
181.参照图5和图9,直至正常读取操作控制器210从存储器装置100接收到对应于正常读取命令nread_cmd的读取数据read_data之后输出错误位信息err_bit_inf,图5和图9的内容是相同的,因此省略重复描述。
182.在一个实施方式中,正常读取操作控制器210可以确定读取数据read_data中的错误位的数量,并且向数据恢复控制器230输出指示读取数据read_data中的错误位的数量的错误位信息err_bit_inf。与图5的实施方式相比,正常读取操作控制器210可以将纠错解码数据dec_data连同错误位信息err_bit_inf一起输出数据恢复控制器230。
183.与图5不同的是,图9的数据恢复控制器230还可以包括参考数据获取组件237。此外,正常读取操作控制器210可以向参考数据获取组件237提供错误位信息err_bit_inf和纠错解码数据dec_data。
184.在一个实施方式中,当参考数据获取组件237从正常读取操作控制器210接收到错误位信息err_bit_inf时,参考数据获取组件237可以向存储器装置100输出指示读取包括在读取页(例如,图7和图8的页page2_1)中的逻辑页当中的lsb页或lsb页和csb页的页读取命令pager_cmd。响应于页读取命令pager_cmd,存储器装置100可以向参考数据获取组件237输出通过从包括在读取页中的逻辑页当中的lsb页或lsb页和csb页读取数据而获得的页读取数据pager_data。
185.此后,参考数据获取组件237可以基于从正常读取操作控制器210接收到的纠错解码数据dec_data和页读取数据pager_data来确定页读取数据pager_data中的错误位的数量。参考数据获取组件237可以产生指示页读取数据pager_data中的错误位的数量的参考位信息ref_bit_inf,并且向操作执行确定器231输出参考位信息ref_bit_inf。
186.在一个实施方式中,包括在数据恢复控制器230中的操作执行确定器231可以从参考数据获取组件237接收参考位信息ref_bit_inf。此后,操作执行确定器231可以基于参考位信息ref_bit_inf来确定是否执行刷新操作或读取回收操作。
187.例如,存储器装置100可以响应于页读取命令pager_cmd而从包括在读取页中的逻辑页当中的lsb页读取数据。在这种情况下,参考数据获取组件237可以将纠错解码数据dec_data与lsb页数据进行比较,以确定lsb页的数据中的错误位的数量,并且产生指示错误位的数量的参考位信息ref_bit_inf。
188.作为另一示例,存储器装置100可以响应于页读取命令pager_cmd而从包括在读取页中的逻辑页当中的lsb页和csb页读取数据。在这种情况下,参考数据获取组件237可以比较纠错解码数据dec_data、lsb页数据和csb页数据,以确定lsb页数据中的错误位的数量和csb页数据中的错误位的数量,并且产生指示错误位的数量的参考位信息ref_bit_inf。
189.在一个实施方式中,在从读取页中的逻辑页当中读取lsb页的情况下,当参考位信息ref_bit_inf小于第三参考值时,操作执行确定器231可以确定不执行任何进一步的操作,当错误位信息err_bit_inf等于或大于第三参考值并且小于第四参考值时,操作执行确定器231可以确定执行刷新操作,并且当错误位信息err_bit_inf等于或大于第四参考值时,操作执行确定器231可以确定执行读取回收操作。这里,预先设定第三参考值和第四参考值,并且第四参考值可以大于第三参考值。
190.在一个实施方式中,在从读取页中的逻辑页当中读取lsb页和csb页的情况下,参考位信息ref_bit_inf可以包括关于lsb页数据中的错误位的数量和csb页数据中的错误位的数量的信息。
191.当lsb页数据中的错误位的数量等于或大于csb页数据中的错误位的数量时,操作执行确定器231可以确定执行刷新操作。相反,当lsb页数据中的错误位的数量小于csb页数据中的错误位的数量时,操作执行确定器231可以确定执行读取回收操作。
192.操作执行确定器231可以向刷新操作执行组件233和读取回收操作执行组件235提供关于所确定的操作的操作信息op_inf。
193.在一个实施方式中,刷新操作执行组件233和读取回收操作执行组件235可以基于从操作执行确定器231接收的操作信息op_inf而输出命令。
194.例如,当操作信息op_inf包括关于刷新操作的信息时,刷新操作执行组件233可以向存储器装置100输出刷新命令refresh_cmd,从而对从中读取了数据的页执行刷新操作。存储器装置100可以响应于刷新命令refresh_cmd而对执行了读取操作的页执行刷新操作。
195.例如,当操作信息op_inf包括关于读取回收操作的信息时,读取回收操作执行组件235可以向存储器装置100输出读取回收命令rr_cmd,从而对包括从中读取了数据的页的块执行读取回收操作。存储器装置100可以响应于读取回收命令rr_cmd而执行将包括执行了读取操作的页的存储器块的数据移动到另一存储器块的读取回收操作。
196.图10a和图10b是示出通过图9的页读取命令读取的逻辑页的图。
197.参照图10a和图10b,图10a和图10b示出了当图1的存储器装置100以三层单元(tlc)方法执行编程操作时存储器单元的阈值电压分布。图10a和图10b的横轴表示存储器单元的阈值电压的幅值vth,并且图10a和图10b的纵轴表示存储器单元的序号。
198.在一个实施方式中,当图1的存储器装置100以tlc方法执行编程操作时,存储器单元可以具有第一编程状态pv1至第七编程状态pv7和擦除状态e中的任何一种。
199.此外,用于区分擦除状态e和第一编程状态pv1的电压可以是第一读取电压r1,用于区分第一编程状态pv1和第二编程状态pv2的电压可以是第二读取电压r2,用于区分第二
编程状态pv2和第三编程状态pv3的电压可以是第三读取电压r3,用于区分第三编程状态pv3和第四编程状态pv4的电压可以是第四读取电压r4,用于区分第四编程状态pv4和第五编程状态pv5的电压可以是第五读取电压r5,用于区分第五编程状态pv5和第六编程状态pv6的电压可以是第六读取电压r6,并且用于区分第六编程状态pv6和第七编程状态pv7的电压可以是第七读取电压r7。
200.在图10a和图10b中,由于假设图1的存储器装置100以tlc方法执行编程操作,所以包括在图1的存储器装置100中的多个页中的每一个可以包括三个逻辑页。也就是说,包括在图1的存储器装置100中的多个页的每一个可以包括最低有效位(lsb)页、中间有效位(csb)页和最高有效位(msb)页。在另一实施方式中,图10a和图10b可以应用于图5的存储器装置100以单层单元(slc)方法、多层单元(mlc)方法或四层单元(qlc)方法执行编程操作的情况。
201.参照图9、图10a和图10b,图10a示出了响应于图9的页读取命令pager_cmd而读取的lsb页,并且图10b示出了响应于图9的页读取命令pager_cmd而读取的lsb页和csb页。
202.参照图10a,当页读取命令pager_cmd指示仅读取包括在读取页中的逻辑页当中的lsb页时,可以读取lsb页、csb页和msb页当中的lsb页中存储的数据。因此,可以利用第三读取电压r3和第七读取电压r7来执行读取操作。
203.此后,可以将读取的lsb页数据输出到图9的参考数据获取组件237,并且可以对lsb页执行纠错。
204.参照图10b,当页读取命令pager_cmd指示读取包括在读取页中的逻辑页当中的lsb页和csb页时,可以读取lsb页、csb页和msb页当中的lsb页和csb页中存储的数据。因此,可以利用第二读取电压r2、第三读取电压r3、第四读取电压r4、第六读取电压r6和第七读取电压r7来执行读取操作。
205.此后,可以将读取的lsb页数据和csb页数据输出到图9的参考数据获取组件237,并且可以将纠错解码数据dec_data与lsb页数据和csb页数据进行比较,以确定lsb页数据和csb页数据中的错误位的数量。
206.图11a和图11b是示出基于根据图9的页读取命令读取的数据中的错误位的数量而执行的操作的图。
207.参照图9、图10a、图10b、图11a和图11b,图11a示出了当响应于页读取命令pager_cmd而从图9的存储器装置100读取lsb页数据时产生的操作信息op_inf,并且图11b示出了当响应于页读取命令pager_cmd而从图9的存储器装置100读取lsb页数据和csb页数据时产生的操作信息op_inf。
208.参照图11a,图9的参考数据获取组件237可以通过将纠错解码数据dec_data与lsb页数据进行比较来确定lsb页数据中的错误位的数量。此外,图9的参考数据获取组件237可以基于确定结果而产生指示错误位的数量的参考位信息ref_bit_inf。当lsb页数据中的错误位的数量小于第三参考值th3时(即,当由参考位信息ref_bit_inf指示的值小于第三参考值th3时),操作执行确定器231可以确定不执行任何进一步的操作,并且可以不产生操作信息op_inf。
209.当从图9的存储器装置100读取的lsb页数据中的错误位的数量等于或大于第三参考值th3并且小于第四参考值th4时(即,当由参考位信息ref_bit_inf指示的值等于或大于
第三参考值th3并且小于第四参考值th4时),操作执行确定器231可以确定执行刷新操作refresh_op,并且可以产生包括关于刷新操作refresh_op的信息的操作信息op_inf。
210.当从图9的存储器装置100读取的lsb页数据中的错误位的数量等于或大于第四参考值th4时(即,当由参考位信息ref_bit_inf指示的值等于或大于第四参考值th4时),操作执行确定器231可以确定执行读取回收操作rr_op,并且可以产生包括关于读取回收操作rr_op的信息的操作信息op_inf。
211.参照图11b,图9的参考数据获取组件237可以通过比较纠错解码数据dec_data、lsb页数据和csb页数据来确定lsb页数据和csb页数据中的错误位的数量。此外,图9的参考数据获取组件237可以基于确定结果而产生指示错误位的数量的参考位信息ref_bit_inf。当lsb页数据中的错误位的数量等于或大于csb页数据中的错误位的数量时(即,当参考位信息ref_bit_inf指示lsb页数据中的错误位的数量等于或大于csb页数据中的错误位的数量时),操作执行确定器231可以确定执行刷新操作refresh_op,并且可以产生包括关于刷新操作refresh_op的信息的操作信息op_inf。
212.当从图9的存储器装置100读取的lsb页数据中的错误位的数量小于csb页数据中的错误位的数量时(即,当参考位信息ref_bit_inf指示lsb页数据中的错误位的数量小于csb页数据中包括的错误位的数量时),操作执行确定器231可以确定执行读取回收操作rr_op,并且可以产生包括关于读取回收操作rr_op的信息的操作信息op_inf。
213.图12示出基于根据块读取命令读取的块数据而执行的存储器控制器的操作。
214.图12示出对从存储器装置100读取的读取数据read_data的纠错解码操作通过之后,基于从存储器装置100获得的块数据执行的刷新操作或读取回收操作的过程。
215.参照图9和图12,直至正常读取操作控制器210从存储器装置100接收到对应于正常读取命令nread_cmd的读取数据read_data之后输出错误位信息err_bit_inf,图9和图12的内容是相同的,因此省略重复描述。
216.在一个实施方式中,正常读取操作控制器210可以确定读取数据read_data中的错误位的数量,并且将指示读取数据read_data中的错误位的数量的错误位信息err_bit_inf输出到数据恢复控制器230。正常读取操作控制器210可以将纠错解码数据dec_data连同错误位信息err_bit_inf一起输出到数据恢复控制器230。
217.在一个实施方式中,当参考数据获取组件237从正常读取操作控制器210接收到错误位信息err_bit_inf时,参考数据获取组件237可以向存储器装置100输出指示从包括读取页(例如,图7和图8的page2_1)的存储器块中的所有页、奇数页、偶数页、或者设定数量的页读取数据的块读取命令blkr_cmd。读取操作可以顺序执行或随机地执行。
218.存储器装置100可以响应于块读取命令blkr_cmd而从包括读取页的对应存储器块读取数据,并且向参考数据获取组件237输出块读取数据blkr_data。
219.在一个实施方式中,参考数据获取组件237可以向纠错执行组件220提供块读取数据blkr_data,并且纠错执行组件220可以执行检测和纠正块读取数据blkr_data中的错误位的纠错解码操作。此后,当纠错解码操作通过时,纠错执行组件220可以向参考数据获取组件237提供通过纠正块读取数据blkr_data中的错误位而获得的块纠错解码数据blk_dec_data。
220.参考数据获取组件237可以将块纠错解码数据blk_dec_data与块读取数据blkr_
data进行比较,并且基于比较结果而产生参考位信息ref_bit_inf。参考位信息ref_bit_inf可以指示块读取数据blkr_data中的错误位的数量。具体地,参考数据获取组件237可以基于与包括在块纠错解码数据blk_dec_data中的位相比包括在块读取数据blkr_data中的位当中的发生改变的位的数量来确定包括在块读取数据blkr_data中的错误位的数量。
221.在另一实施方式中,参考数据获取组件237可以根据利用来自纠错执行组件220的块纠错解码数据blk_dec_data而接收的解码信息来确定包括在块读取数据blkr_data中的错误位的数量。在本文中,解码信息指示在纠错解码操作期间检测到的错误位的数量。
222.在一个实施方式中,基于块读取数据blkr_data中的错误位的数量,可以确定执行了对应于块读取命令blkr_cmd的块读取操作的存储器块是否是基于页的失败候选项或基于块的失败候选项。这里,基于页的失败候选项可以表示存储器块中的一些页在将来的纠错解码操作中可能失败的概率较高。此外,基于块的失败候选项可以表示存储器块中的大多数页在将来的纠错解码操作中可能失败的概率较高。
223.例如,当块读取数据blkr_data中的错误位的数量小于第五参考值时,执行了对应于块读取命令blkr_cmd的操作的存储器块可以不是基于页的失败候选项或基于块的失败候选项。
224.然而,当块读取数据blkr_data中的错误位的数量等于或大于第五参考值并且小于第六参考值时,执行了对应于块读取命令blkr_cmd的操作的存储器块可以是基于页的失败候选项,并且当块读取数据blkr_data中的错误位的数量大于第六参考值时,执行了对应于块读取命令blkr_cmd的操作的存储器块可以是基于块的失败候选项。当存储器块是基于页的失败候选项时,可以执行对应于刷新命令refresh_cmd的操作,并且当存储器块是基于块的失败候选项时,可以执行对应于读取回收命令rr_cmd的操作。
225.在一个实施方式中,操作执行确定器231可以从参考数据获取组件237接收参考位信息ref_bit_inf。参考位信息ref_bit_inf可以指示通过对应于块读取命令blkr_cmd的块读取操作而读取的块读取数据blkr_data中的错误位的数量。
226.当参考位信息ref_bit_inf指示存储器块是基于页的失败候选项时,操作执行确定器231可以确定执行刷新操作。相反,当参考位信息ref_bit_inf指示存储器块是基于块的失败候选项时,操作执行确定器231可以确定执行读取回收操作。
227.操作执行确定器231可以将关于所确定的操作的操作信息op_inf提供给刷新操作执行组件233和读取回收操作执行组件235。
228.在一个实施方式中,刷新操作执行组件233和读取回收操作执行组件235可以基于从操作执行确定器231接收的操作信息op_inf来输出命令。
229.例如,当操作信息op_inf包括关于刷新操作的信息时,刷新操作执行组件233可以向存储器装置100输出刷新命令refresh_cmd,从而刷新执行了正常读取操作的页。存储器装置100可以响应于刷新命令refresh_cmd而对执行了正常读取操作的页执行刷新操作。
230.例如,当操作信息op_inf包括关于读取回收操作的信息时,读取回收操作执行组件235可以向存储器装置100输出读取回收命令rr_cmd,从而对执行了块读取操作的存储器块执行读取回收操作。存储器装置100可以响应于读取回收命令rr_cmd而执行将执行了块读取操作的存储器块的数据移动到另一存储器块的读取回收操作。
231.图13a至图13d是示出对应于图12的块读取命令的操作的图。
232.参照图12和图13a至图13d,图13a至图13d示出图12的存储器单元阵列110中的第一储器块blk1至第四存储器块blk4当中的第二存储器块blk2。在图13a至图13d中,假设响应于正常读取命令nread_cmd对第二存储器块blk2中的页当中的第(2_1)页page2_1执行正常读取操作,并且正常读取数据的纠错解码操作通过。
233.参照图12和图13a至图13d,在对第(2_1)页page2_1的纠错解码操作通过之后,图12的存储器装置100可以从图12的参考数据获取组件237接收块读取命令blkr_cmd。
234.存储器装置100可以向图12的参考数据获取组件237输出通过读取包括执行了正常读取操作的第(2_1)页page2_1的存储器块中的所有页、奇数页、偶数页或设定数量的页而获得的块读取数据blkr_data。块读取命令blkr_cmd可以是被输出以确定包括执行了正常读取操作的页的存储器块是否是基于块的失败候选项或基于页的失败候选项的命令。
235.图13a示出图12的存储器装置100响应于块读取命令blkr_cmd而读取第二存储器块blk2中的所有页(即,第(2_1)页page2_1至第(2_4)页page2_4)的情况。图12的存储器装置100可以顺序或随机地读取这些页。
236.例如,图12的存储器装置100可以从第(2_1)页page2_1至第(2_4)页page2_4进行顺序读取,或者可以随机读取第(2_1)页page2_1至第(2_4)页page2_4。
237.图13b示出图12的存储器装置100响应于块读取命令blkr_cmd而读取包括第(2_1)页page2_1的第二存储器块blk2中的所有页当中的奇数页的情况。也就是说,图12的存储器装置100可以响应于块读取命令blkr_cmd而读取作为奇数页的第(2_1)页page2_1和第(2_3)页page2_3。
238.图13c示出图12的存储器装置100响应于块读取命令blkr_cmd而读取包括第(2_1)页page2_1的第二存储器块blk2中的所有页当中的偶数页的情况。也就是说,图12的存储器装置100可以响应于块读取命令blkr_cmd而读取作为偶数页的第(2_2)页page2_2和第(2_4)页page2_4。
239.图13d示出图12的存储器装置100响应于块读取命令blkr_cmd而读取包括第(2_1)页page2_1的第二存储器块blk2中的所有页当中的设定数量的页的情况。
240.例如,在将响应于块读取命令blkr_cmd而要读取的页的数量设定为“2”时,图12的存储器装置100可以随机选择和读取第二存储器块blk2中的各个页当中的两个页。在图13d中,图12的存储器装置100随机选择和读取的两个页可以是第(2_1)页page2_1和第(2_4)页page2_4。
241.如上所述,图12的存储器装置100可以从图12的参考数据获取组件237接收块读取命令blkr_cmd,响应于接收到的块读取命令blkr_cmd而执行块读取操作,并且向图12的参考数据获取组件237输出作为执行块读取操作的结果的块读取数据blkr_data。
242.此后,图12的参考数据获取组件237可以向纠错执行组件220输出块读取数据blkr_data。作为通过向纠错执行组件220输出块读取数据blkr_data而执行纠错解码操作的结果,可以基于块读取数据blkr_data中的错误位的数量来确定包括执行了正常读取操作的页的存储器块是否是基于页的失败候选项或基于块的失败候选项。基于页的失败候选项可以表示存储器块中的一些页在将来的纠错解码操作中可能失败的概率较高。此外,基于块的失败候选项可以表示存储器块中的大多数页在将来的纠错解码操作中可能失败的概率较高。
243.在一个实施方式中,当包括执行了正常读取操作的页的存储器块是基于块的失败候选项时,图12的存储器装置100可以如图7所示对对应存储器块执行读取回收操作。
244.然而,当包括执行了正常读取操作的页的存储器块是基于页的失败候选项时,图12的存储器装置100可以如图8所示对执行了正常读取操作的页执行刷新操作。
245.图14是示出基于根据图12的块读取命令读取的数据中的错误位的数量而执行的操作的图。
246.参照图12和图14,图14的第一列表示从图12的参考数据获取组件237输出的参考位信息ref_bit_inf所属于的各个范围,并且图14的第二列表示各自与(参考位信息ref_bit_inf所属于的)对应范围对齐的各种操作信息op_inf。
247.在一个实施方式中,当对从存储器装置100读取的块读取数据blkr_data的纠错解码操作通过时,图12的参考数据获取组件237可以确定块读取数据blkr_data中的错误位的数量。
248.可以基于通过图12的参考数据获取组件237确定的错误位的数量来产生参考位信息ref_bit_inf。参考位信息ref_bit_inf可以指示包括在块读取数据blkr_data中的错误位的数量。
249.在一个实施方式中,当参考位信息ref_bit_inf小于第五参考值th5时,包括执行了正常读取操作的页的存储器块可以不是基于页的失败候选项或基于块的失败候选项。因此,图12的操作执行确定器231可以确定不执行任何进一步的操作,并且可以不产生操作信息op_inf。
250.在一个实施方式中,当参考位信息ref_bit_inf等于或大于第五参考值th5并且小于第六参考值th6时,包括执行了正常读取操作的页的存储器块可以是基于页的失败候选项。因此,图12的操作执行确定器231可以确定执行刷新操作,并且可以产生包括关于刷新操作refresh_op的信息的操作信息op_inf。此后,图12的刷新操作执行组件233可以基于接收到的操作信息op_inf向图12的存储器装置100输出刷新命令refresh_cmd,从而对图5的存储器装置100执行刷新操作。
251.在一个实施方式中,当参考位信息ref_bit_inf等于或大于第六参考值th6时,包括执行了正常读取操作的页的存储器块可以是基于块的失败候选项。因此,图12的操作执行确定器231可以确定执行读取回收操作,并且可以产生包括关于读取回收操作rr_op的信息的操作信息op_inf。此后,图12的读取回收操作执行组件235可以基于接收到的操作信息op_inf向图12的存储器装置100输出读取回收命令rr_cmd,从而对图5的存储器装置100执行读取回收操作。
252.图15是示出根据本公开的一个实施方式的存储器控制器的操作的图。
253.参照图15,在操作s1501中,存储器控制器可以对通过响应于正常读取命令而执行的正常读取操作读取的数据执行纠错。例如,存储器控制器可以检测读取数据中的错误位,并且对检测到的错误位执行纠错解码操作。
254.在操作s1503中,存储器控制器可以确定纠错解码操作是否通过。当确定纠错解码操作通过(是)时,流程可以进行到操作s1505。
255.在操作s1505中,存储器控制器可以基于读取数据中的错误位的数量而输出刷新命令或读取回收命令。
256.根据本公开的一个实施方式,即使对正常读取操作的纠错解码操作通过,也根据正常读取操作中的错误位的数量对执行了正常读取操作的页执行读取回收操作或刷新操作,从而可以提高数据可靠性。
257.图16是示出根据本公开的一个实施方式的存储器控制器的操作的图。
258.图16是更详细地示出操作s1505的流程图。
259.在操作s1601中,存储器控制器可以确定通过正常读取操作读取的数据中的错误位的数量是否小于第一参考值。当通过正常读取操作读取的数据中的错误位的数量不小于第一参考值(否)时,操作可以进行到操作s1603。
260.在操作s1603中,存储器控制器可以确定通过正常读取操作读取的数据中的错误位的数量是否等于或大于第一参考值并且小于第二参考值。
261.当通过正常读取操作读取的数据中的错误位的数量等于或大于第一参考值并且小于第二参考值(是)时,操作可以进行到操作s1605,并且当通过正常读取操作读取的数据中的错误位的数量等于或大于第一参考值并且不小于第二参考值(否)(即,等于或大于第二参考值)时,流程可以进行到操作s1607。
262.在操作s1605中,存储器控制器可以输出用于刷新执行了正常读取操作的页的刷新命令。在一个实施方式中,当通过正常读取操作读取的数据中的错误位的数量在特定范围内时,可以执行对于对应页的刷新操作,从而可以提高数据可靠性。
263.在操作s1607中,存储器控制器可以输出读取回收命令,从而对包括执行了正常读取操作的页的块执行读取回收操作。在一个实施方式中,当通过正常读取操作读取的数据中的错误位的数量较大时,可以对包括对应页的块执行读取回收操作,从而可以提高数据可靠性。
264.图17是示出根据本公开的一个实施方式的存储器控制器的操作的图。
265.参照图15和图17,图17是更详细地示出操作s1505的流程图。图17示出在对正常读取操作的纠错解码操作通过之后,执行对应于从存储器控制器输出的页读取命令的读取操作之后的操作。页读取命令可以是指示从读取页(例如,图7和图8的page2_1)中的各逻辑页当中的lsb页或lsb页和csb页两者读取数据的命令。
266.在操作s1701中,可以确定存储器装置中的lsb页数据的错误位的数量是否小于csb页数据的错误位的数量。
267.当lsb页数据的错误位的数量不小于csb页数据的错误位的数量(否)时(即,当lsb页数据的错误位的数量等于或大于csb页数据的错误位的数量时),流程可以进行到操作s1703,并且当lsb页数据的错误位的数量小于csb页数据的错误位的数量(是)时,流程可以前进到操作s1705。
268.在操作s1703中,存储器控制器可以向存储器装置输出刷新命令。也就是说,当lsb页数据的错误位的数量等于或大于csb页数据的错误位的数量时,存储器控制器可以向存储器装置输出刷新命令,从而对执行了正常读取操作的页执行刷新操作。
269.在操作s1705中,存储器控制器可以向存储器装置输出读取回收命令。也就是说,当lsb页数据的错误位的数量小于csb页数据的错误位的数量时,存储器控制器可以向存储器装置输出读取回收命令,从而对包括执行了正常读取操作的页的块执行读取回收操作。
270.图18是示出根据本公开的一个实施方式的存储器控制器的操作的图。
271.参照图15和图18,图18是更详细地示出操作s1505的流程图。图18示出在对正常读取操作的纠错解码操作通过之后,执行对应于从存储器控制器输出的块读取命令的块读取操作之后的操作。块读取命令可以是指示读取包括通过纠错解码操作的页的存储器块中的所有页、仅奇数页、仅偶数页或设定数量的页的命令。
272.在操作s1801中,存储器控制器可以确定块读取数据中的错误位的数量是否小于第五参考值。当包括在块读取数据中的错误位的数量不小于第五参考值(n)时,流程进行到操作s1803。
273.在操作s1803中,存储器控制器可以确定块读取数据中的错误位的数量是否等于或大于第五参考值并且小于第六参考值。当块读取数据中的错误位的数量等于或大于第五参考值并且小于第六参考值(是)时,流程可以进行到操作s1805,并且当块读取数据中的错误位的数量大于第五参考值并且不小于第六参考值(否)(即,等于或大于第六参考值)时,流程可以进行到操作s1809。
274.在操作s1805中,存储器控制器可以选择包括在纠错解码操作中通过的页的存储器块作为基于页的失败候选项。基于页的失败候选项可以表示存储器块中的一些页在将来的纠错解码操作中可能失败的概率较高。
275.在操作s1807中,当将存储器块选择为基于页的失败候选项时,存储器控制器可以向存储器装置输出刷新命令,从而对在纠错解码操作中通过的页执行刷新操作。
276.在操作s1809中,存储器控制器可以将包括在纠错解码操作中通过的页的存储器块选择为基于块的失败候选项。基于块的失败候选项可以表示存储器块中的大多数页在将来的纠错解码操作中可能失败的概率较高。
277.在操作s1811中,当将存储器块选择为基于块的失败候选项时,存储器控制器可以向存储器装置输出读取回收命令,从而对包括在纠错解码操作中通过的页的存储器块执行读取回收操作。
278.图19是示出图1的存储器控制器的另一实施方式的图。
279.存储器控制器1000连接到主机和存储器装置。存储器控制器1000被配置成响应于来自主机的请求而访问存储器装置。例如,存储器控制器1000被配置成控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000被配置成在存储器装置和主机之间提供接口。存储器控制器1000被配置成驱动用于控制存储器装置的固件。
280.参照图19,存储器控制器1000可以包括处理器1010、存储器缓冲器1020、纠错电路(ecc)1030、主机接口1040、缓冲器控制器(或缓冲器控制电路)1050、存储器接口1060和总线1070。
281.总线1070可以被配置成在存储器控制器1000的组件之间提供信道。
282.处理器1010可以控制存储器控制器1000的整体操作,并且可以执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器装置通信。此外,处理器1010可以通过缓冲器控制器1050与存储器缓冲器1020通信。处理器1010可以使用存储器缓冲器1020作为操作存储器、高速缓存存储器或缓冲存储器来控制存储器装置的操作。
283.处理器1010可以执行ftl的功能。处理器1010可以通过ftl将主机提供的lba转换为pba。ftl可以接收lba,并且使用映射表将lba转换为pba。闪存转换层可以采用各种地址
映射方法(例如,页映射、块映射或混合映射)中的任何一种来执行转换。选择哪种方法取决于映射单元。
284.处理器1010被配置成随机化从主机接收的数据。例如,处理器1010可以使用随机化种子来随机化从主机接收的数据。随机化的数据作为待存储的数据被提供给存储器装置,并且被编程到存储器单元阵列。
285.处理器1010可以通过驱动软件或固件来执行随机化和去随机化。
286.存储器缓冲器1020可以用作处理器1010的操作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010执行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态ram(sram)或动态ram(dram)。
287.纠错电路1030可以执行纠错。纠错电路1030可以基于要通过存储器接口1060写入存储器装置的数据来执行纠错编码(ecc编码)。纠错编码数据可以通过存储器接口1060传输到存储器装置。纠错电路1030可以对通过存储器接口1060从存储器装置接收的数据执行纠错解码(ecc解码)。例如,纠错电路1030可以作为存储器接口1060的组件被包括在存储器接口1060中。
288.在一个实施方式中,当图1的存储器装置100执行读取操作时,纠错电路1030可以对从图1的存储器装置100读取的数据执行纠错解码操作。
289.在本公开的一个实施方式中,即使对读取数据的纠错解码操作通过,也可以根据读取数据中包括的错误位的数量来执行读取回收操作或刷新操作,以解决先前采用的恢复操作的问题,即,恢复操作涉及许多读取操作并且数据仍然可能无法恢复。
290.例如,处理器1010可以基于纠错解码数据来确定通过正常读取操作读取的数据中的错误位的数量,并且可以基于确定结果来确定执行读取回收操作或刷新操作。另选地,还可以基于对除了通过正常读取操作读取的数据之外读取的数据的纠错解码的结果来确定错误位的数量,并且可以基于确定结果来确定执行读取回收操作或者刷新操作。
291.在一个实施方式中,处理器1010可以向图1的存储器装置100输出读取回收命令或刷新命令,从而对图1的存储器装置100执行所确定的操作。
292.主机接口1040被配置成在处理器1010的控制下与外部主机通信。主机接口1040可以被配置成使用例如通用串行总线(usb)、串行at附件(sata)、串行附接scsi(sas)、高速芯片间(hsic)、小型计算机系统接口(scsi)、外围组件互连(pci)、非易失性存储器express(nvme)、通用闪存存储(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入mmc(emmc)、双列直插式存储器模块(dimm)、注册dimm(rdimm)和/或减载dimm(lrdimm)的各种通信方法中的至少一种来执行通信。
293.缓冲器控制器1050被配置成在处理器1010的控制下控制存储器缓冲器1020。
294.存储器接口1060被配置成在处理器1010的控制下与存储器装置通信。存储器接口1060可以通过信道与存储器装置交换命令、地址和数据。
295.例如,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制器1050。相反,存储器缓冲器1020和缓冲器控制器1050可以是单独的装置或一个单独的集成装置。
296.例如,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000内部的非易失性存储器装置(例如,只读存储器)加载代码。
作为另一示例,处理器1010可以通过存储器接口1060从存储器装置加载代码。
297.例如,存储器控制器1000的总线1070可以分为控制总线和数据总线。数据总线可以被配置成在存储器控制器1000内传输数据,并且控制总线可以被配置成在存储器控制器1000内传输例如命令和地址的控制信息。数据总线和控制总线可以彼此分离,从而不会相互干扰或影响。数据总线可以连接到主机接口1040、缓冲器控制器1050、纠错电路1030和存储器接口1060。控制总线可以连接到主机接口1040、处理器1010、缓冲器控制器1050、存储器缓冲器1020和存储器接口1060。
298.图20是示出根据本公开的一个实施方式的应用了存储装置的存储卡系统的框图。
299.参照图20,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
300.存储器控制器2100连接到存储器装置2200。存储器控制器2100被配置成访问存储器装置2200。例如,存储器控制器2100被配置成控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100被配置成在存储器装置2200和主机之间提供接口。存储器控制器2100被配置成驱动用于控制存储器装置2200的固件。存储器装置2200可以由图1的存储器装置100实现。
301.例如,存储器控制器2100可以包括诸如随机存取存储器(ram)、处理器、主机接口、存储器接口和纠错电路的组件。
302.存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以根据特定通信标准与外部装置(例如,主机)通信。例如,存储器控制器2100被配置成通过例如通用串行总线(usb)、多媒体卡(mmc)、嵌入mmc(mcm)、外围组件互连(pci)、pci express(pci-e)、高级技术附件(ata)、串行ata、并行ata、小型计算机系统接口(scsi)、增强小型磁盘接口(esdi)、集成驱动电子装置(ide)、火线、通用闪存存储(ufs)、wi-fi、蓝牙和/或nvme各种通信标准中的至少一种与外部装置通信。例如,连接器2300可以通过上述各种通信标准中的至少一种进行限定。
303.例如,存储器装置2200可以实现为例如电可擦除可编程rom(eeprom)、nand闪存存储器、nor闪存存储器、相变ram(pram)、电阻ram(reram)、铁电ram(fram)和/或自旋转移力矩磁性ram(stt-mram)的各种非易失性存储器元件中的任何一种。
304.存储器控制器2100和存储器装置2200可以集成到一个半导体装置中以构成存储卡,例如pc卡(个人计算机存储卡国际协会(pcmcia))、紧凑型闪存卡(cf)、智能媒体卡(sm或smc)、记忆棒、多媒体卡(mmc、rs-mmc、mmcmicro或emmc)、sd卡(sd、mini sd、micro sd或sdhc)和/或通用闪存存储(ufs)。
305.在一个实施方式中,当存储器装置2200执行读取操作时,存储器控制器2100可以对从存储器装置2200读取的数据执行纠错解码操作。
306.在本公开的一个实施方式中,即使对读取数据的纠错解码操作通过,也可以根据读取数据中的错误位的数量来执行读取回收操作或刷新操作,以解决先前采用的恢复操作的上述问题。
307.例如,存储器控制器2100可以基于纠错解码数据来确定通过正常读取操作读取的数据中的错误位的数量,并且可以基于确定结果来确定执行读取回收操作或刷新操作。另选地,可以基于对除了通过正常读取操作读取的数据之外另外地读取的数据的纠错解码的
结果来确定错误位的数量,并且可以基于确定结果来确定执行读取回收操作或刷新操作。
308.在一个实施方式中,存储器控制器2100可以向存储器装置2200输出读取回收命令或刷新命令,从而对存储器装置2200执行所确定的操作。
309.图21是示出根据本公开的一个实施方式的应用了存储装置的固态驱动器(ssd)系统的框图。
310.参照图21,ssd系统3000包括主机3100和ssd 3200。ssd 3200通过信号连接器3001与主机3100交换信号sig,并且通过电源连接器3002接收电力pwr。ssd3200包括ssd控制器3210、多个闪存存储器3221至322n、辅助电源装置3230和缓冲存储器3240。
311.在一个实施方式中,ssd控制器3210可以执行图1的存储器控制器200的功能。
312.ssd控制器3210可以响应于从主机3100接收的信号sig来控制多个闪存存储器3221至322n。例如,信号sig可以是基于主机3100和ssd 3200之间的接口的多个信号。例如,信号sig可以通过例如通用串行总线(usb)、多媒体卡(mmc)、嵌入mmc(mcm)、外围组件互连(pci)、pci express(pci-e)、高级技术附件(ata)、串行ata、并行ata、小型计算机系统接口(scsi)、增强小型磁盘接口(esdi)、集成驱动电子装置(ide)、火线、通用闪存存储(ufs)、wi-fi、蓝牙和/或nvme的接口中的至少一种进行限定。
313.在一个实施方式中,当闪存存储器3221至322n执行读取操作时,ssd控制器3210可以对从闪存存储器3221至322n读取的数据执行纠错解码操作。
314.在本公开的一个实施方式中,即使对读取数据的纠错解码操作通过,也可以根据读取数据中的错误位的数量来执行读取回收操作或刷新操作,以解决先前采用的恢复操作的上述问题。
315.例如,ssd控制器3210可以基于纠错解码数据来确定通过正常读取操作读取的数据中的错误位的数量,并且可以基于确定结果来确定执行读取回收操作或刷新操作。另选地,可以基于对除了通过正常读取操作读取的数据之外另外地读取的数据的纠错解码的结果来确定错误位的数量,并且可以基于确定结果来确定执行读取回收操作或刷新操作。
316.在一个实施方式中,ssd控制器3210可以向闪存存储器3221至322n输出读取回收命令或刷新命令,从而对闪存存储器3221至322n执行所确定的操作。
317.辅助电源装置3230通过电源连接器3002连接到主机3100。辅助电源装置3230可以从主机3100接收电力pwr,并且可以充电该电力。当来自主机3100的电力没有平稳供应时,辅助电源装置3230可以提供ssd 3200的电力。例如,辅助电源装置3230可以设置在ssd 3200内部或外部。例如,辅助电源装置3230可以设置在主板上并且可以向ssd 3200提供辅助电力。
318.缓冲存储器3240作为ssd 3200的缓冲存储器操作。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或者从多个闪存存储器3221至322n接收的数据,或者可以临时存储闪存存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如dram、sdram、ddr sdram、lpddr sdram和gram的易失性存储器,或诸如fram、reram、stt-mram和pram的非易失性存储器。
319.图22是示出根据本公开的一个实施方式的应用了存储装置的用户系统的框图。
320.参照图22,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
321.应用处理器4100可以驱动用户系统4000中包括的组件、操作系统(os)或用户程序等。例如,应用处理器4100可以包括控制用户系统4000中包括的组件的控制器、接口和图形引擎等。应用处理器4100可以设置为片上系统(soc)。
322.存储器模块4200可以作为用户系统4000的主存储器、操作存储器、缓冲存储器或高速缓存存储器操作。存储器模块4200可以包括诸如dram、sdram、ddr sdram、ddr2 sdram、ddr3 sdram、lpddr sdram、lpddr2 sdram和lpddr3 sdram的易失性随机存取存储器,或诸如pram、reram、mram和fram的非易失性随机存取存储器。例如,应用处理器4100和存储器模块4200可以基于层叠封装(pop)进行封装并且被设置为一个半导体封装。
323.网络模块4300可以与外部装置通信。例如,网络模块4300可以支持例如码分多址(cdma)、全球移动通信系统(gsm)、宽带cdma(wcdma)、cdma-2000、时分多址(tdma)、长期演进、wimax、wlan、uwb、蓝牙和wi-fi的无线通信。例如,网络模块4300可以包括在应用处理器4100中。
324.存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。另选地,存储模块4400可以将存储模块4400中存储的数据发送到应用处理器4100。例如,存储模块4400可以实现为诸如相变ram(pram)、磁性ram(mram)、电阻ram(rram)、nand闪存、nor闪存和三维nand闪存的非易失性半导体存储器元件。例如,存储模块4400可以被设置为诸如存储卡的可移除存储装置(可移除驱动器),以及用户系统4000的外部驱动器。
325.例如,存储模块4400可以包括多个非易失性存储器装置,每个非易失性存储器装置可以与参照图2和图3描述的存储器装置相同地操作。存储模块4400可以与参照图1描述的存储装置50相同地操作。
326.在一个实施方式中,当存储模块4400执行读取操作时,应用处理器4100可以对从存储模块4400读取的数据执行纠错解码操作。
327.在本公开的一个实施方式中,即使对读取数据的纠错解码操作通过,也可以根据读取数据中的错误位的数量来执行读取回收操作或刷新操作,以解决先前采用的恢复操作的上述问题。
328.例如,应用处理器4100可以基于纠错解码数据来确定通过正常读取操作读取的数据中的错误位的数量,并且可以基于确定结果来确定执行读取回收操作或刷新操作。另选地,可以基于对除了通过正常读取操作读取的数据之外另外地读取的数据的纠错解码的结果来确定错误位的数量,并且可以基于确定结果来确定执行读取回收操作或刷新操作。
329.在一个实施方式中,应用处理器4100可以向存储模块4400输出读取回收命令或刷新命令,从而对存储模块4400执行所确定的操作。
330.用户接口4500可以包括用于向应用处理器4100输入数据或指令或者用于向外部装置输出数据的接口。例如,用户接口4500可以包括例如键盘、小键盘、按钮、触摸板、触摸屏、触摸垫、触摸球、摄像头、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口。用户接口4500可以包括例如液晶显示器(lcd)、有机发光二极管(oled)显示装置、有源矩阵oled(amoled)显示装置、led、扬声器和监视器的用户输出接口。
331.虽然已经针对各种实施方式示出和描述了本发明,但是本领域技术人员鉴于本公开应当理解,在本发明的精神和范围内可以对公开的实施方式中的任何实施方式进行各种
改变。本发明涵盖所有这些改变,只要它们落入权利要求书的范围内。
332.相关申请的交叉引用
333.本技术要求于2020年8月28日向韩国知识产权局提交的韩国专利申请no.10-2020-0109099的优先权,其全部公开内容通过引用并入本文。

技术特征:


1.一种存储器系统,该存储器系统包括:存储器装置,所述存储器装置包括多个页;以及存储器控制器,所述存储器控制器被配置成纠正通过读取所述多个页当中的选定页而获得的读取数据中的错误,并且基于所述读取数据中的错误位的数量来确定是否对所述选定页执行刷新操作;其中,所述存储器控制器包括:正常读取操作控制器,所述正常读取操作控制器被配置成控制对所述选定页的读取操作并且确定所述读取数据中的所述错误位的数量;纠错执行组件,所述纠错执行组件被配置成纠正所述读取数据;以及数据恢复控制器,所述数据恢复控制器被配置成当所述读取数据中的所述错误被纠正时,基于所述读取数据中的所述错误位的数量来控制对所述选定页的所述刷新操作。2.根据权利要求1所述的存储器系统,其中,仅当由所述纠错执行组件执行以纠正所述读取数据中的所述错误的纠错解码操作通过时,所述数据恢复控制器才控制对所述选定页的所述刷新操作。3.根据权利要求1所述的存储器系统,其中,所述正常读取操作控制器还被配置成向所述纠错执行组件提供所述读取数据,以纠正所述读取数据中的所述错误,其中,所述纠错执行组件通过纠错解码操作来纠正所述读取数据中的所述错误,并且其中,所述纠错执行组件还被配置成当所述纠错解码操作通过时产生纠错解码数据,并且向所述正常读取操作控制器提供所述纠错解码数据。4.根据权利要求3所述的存储器系统,其中,所述正常读取操作控制器通过将所述读取数据与所述纠错解码数据进行比较来确定所述读取数据中的所述错误位的数量,并且其中,所述正常读取操作控制器还被配置成基于所确定的结果而输出指示所述错误位的数量的错误位信息。5.根据权利要求1所述的存储器系统,其中,所述数据恢复控制器包括:操作执行确定器,所述操作执行确定器被配置成在纠正所述读取数据中的所述错误的纠错解码操作通过之后从所述正常读取操作控制器接收指示所述错误位的数量的错误位信息,基于所述错误位信息确定对所述选定页执行所述刷新操作或对包括所述选定页的块执行读取回收操作,并且产生与所确定的操作相关的操作信息;刷新操作执行组件,所述刷新操作执行组件被配置成基于所述操作信息而输出刷新命令,从而对所述选定页执行所述刷新操作;以及刷新操作执行组件,所述刷新操作执行组件被配置成基于所述操作信息而输出读取回收命令,从而对所述块执行所述读取回收操作。6.根据权利要求5所述的存储器系统,其中,当所述错误位信息指示所述错误位的数量等于或大于第一参考值并且小于第二参考值时,所述操作执行确定器产生指示所述刷新操作的所述操作信息,并且其中,所述第二参考值大于所述第一参考值。7.根据权利要求6所述的存储器系统,其中,当所述错误位信息指示所述错误位的数量
等于或大于所述第二参考值时,所述操作执行确定器产生指示所述读取回收操作的所述操作信息。8.根据权利要求5所述的存储器系统,其中,所述数据恢复控制器还包括参考数据获取组件,所述参考数据获取组件被配置成,当纠正所述读取数据中的所述错误的所述纠错解码操作通过时,在从所述正常读取操作控制器接收指示所述错误位的数量的所述错误位信息和根据所述纠错解码操作的纠错解码数据之后,控制读取操作。9.根据权利要求8所述的存储器系统,其中,所述参考数据获取组件还被配置成向所述存储器装置输出指示读取所述选定页中的至少一个逻辑页的页读取命令。10.根据权利要求9所述的存储器系统,其中,所述参考数据获取组件还被配置成接收所述选定页中的各个所述逻辑页当中的最低有效位页数据,所述最低有效位页数据响应于所述页读取命令而从所述存储器装置输出。11.根据权利要求10所述的存储器系统,其中,所述参考数据获取组件还被配置成基于通过将所述最低有效位页数据与所述纠错解码数据进行比较而获得的比较结果,输出指示所述最低有效位页数据中的错误位的数量的参考位信息,并且其中,所述操作执行确定器基于所述错误位信息和所述参考位信息来确定执行所述刷新操作或所述读取回收操作。12.根据权利要求9所述的存储器系统,其中,所述参考数据获取组件还被配置成接收所述选定页中的各个所述逻辑页当中的最低有效位页数据和中间有效位页数据,所述最低有效位页数据和所述中间有效位页数据响应于所述页读取命令而从所述存储器装置输出。13.根据权利要求12所述的存储器系统,其中,所述参考数据获取组件还被配置成基于通过将所述最低有效位页数据中的错误位的数量与所述中间有效位页数据中的错误位的数量进行比较而获得的比较结果,输出指示所述最低有效位页数据中的所述错误位的数量和所述中间有效位页数据中的所述错误位的数量的参考位信息,并且其中,所述操作执行确定器基于所述错误位信息和所述参考位信息来确定执行所述刷新操作或所述读取回收操作。14.根据权利要求8所述的存储器系统,其中,所述参考数据获取组件还被配置成向所述存储器装置输出指示读取包括所述选定页的存储器块中的至少一个页的块读取命令。15.根据权利要求14所述的存储器系统,其中,所述参考数据获取组件还被配置成向所述纠错执行组件输出响应于所述块读取命令而读取的块读取数据,并且从所述纠错执行组件接收通过纠正所述块读取数据中的错误位而获得的块纠错解码数据。16.根据权利要求15所述的存储器系统,其中,所述参考数据获取组件还被配置成通过比较所述块读取数据和所述块纠错解码数据来确定所述块读取数据中的错误位的数量,并且基于所确定的结果而输出指示包括所述选定页的所述存储器块是基于页的失败候选项还是基于块的失败候选项的参考位信息,并且其中,所述操作执行确定器基于所述错误位信息和所述参考位信息而确定执行所述刷新操作或所述读取回收操作。17.根据权利要求16所述的存储器系统,其中,所述基于页的失败候选项是指包括所述选定页的所述存储器块中的低于参考值的页将在将来的纠错操作中失败的存储器块候选项,并且所述基于块的失败候选项是指包括所述选定页的所述存储器块中的高于所述参考
值的页将在将来的纠错操作中失败的存储器块候选项。18.根据权利要求16所述的存储器系统,其中,当所述参考位信息指示所述基于页的失败候选项时,所述操作执行确定器产生指示所述刷新操作的所述操作信息。19.根据权利要求16所述的存储器系统,其中,当所述参考位信息指示所述基于块的失败候选项时,所述操作执行确定器产生指示所述读取回收操作的所述操作信息。20.一种操作存储器系统的方法,该存储器系统包括存储器装置和存储器控制器,所述存储器装置包括多个页,并且所述存储器控制器被配置成纠正通过读取所述多个页当中的选定页而获得的读取数据中的错误,并且基于所述读取数据中的错误位的数量来确定是否对所述选定页执行刷新操作,所述方法包括以下步骤:读取所述选定页以获得所述读取数据;纠正所述读取数据中的所述错误;当对所述读取数据中的所述错误的纠正通过时,确定所述读取数据中的所述错误位的数量;以及基于所述读取数据中的所述错误位的数量来控制对所述选定页的所述刷新操作。21.一种存储器控制器,该存储器控制器控制包括多个页的存储器装置,该存储器控制器包括:正常读取操作控制器,所述正常读取操作控制器被配置成控制对所述多个页当中的选定页的读取操作,并且确定在所述读取操作期间从所述存储器装置读取的读取数据中的错误位的数量;纠错执行组件,所述纠错执行组件被配置成纠正所述读取数据中的错误;以及数据恢复控制器,所述数据恢复控制器被配置成当所述读取数据中的所述错误被纠正时,基于所述读取数据中的所述错误位的数量来控制对所述选定页的刷新操作。22.一种控制器的操作方法,该操作方法包括以下步骤:向主机提供已经从页成功读取的读取数据;以及基于在所述读取数据中检测到的错误位的数量,控制存储器装置选择性地对所述页执行刷新操作或者对包括所述页的块执行读取回收操作。23.一种控制器的操作方法,该操作方法包括以下步骤:向主机提供已经从物理页成功读取的第一数据;控制存储器装置从对应于所述物理页的最低有效位页读取第二数据;以及基于所述第一数据和所述第二数据之间的差异,控制所述存储器装置选择性地对所述物理页执行刷新操作或者对包括所述物理页的块执行读取回收操作。24.一种控制器的操作方法,该操作方法包括以下步骤:向主机提供已经从页成功读取的读取数据;控制存储器装置从包括所述页的块中的两个或更多个页读取块数据;检测所述块数据中的错误位的数量;以及基于在所述块数据中检测到的所述错误位的数量,控制所述存储器装置选择性地对所述页执行刷新操作或者对所述块执行读取回收操作。

技术总结


本公开涉及一种存储器系统、存储器控制器及其操作方法。本技术涉及一种电子装置。一种用于提高数据可靠性的存储器系统包括:存储器装置,其包括多个页;以及存储器控制器,其被配置成纠正通过读取多个页当中的选定页而获得的读取数据中的错误,并且基于读取数据中包括的错误位的数量来确定是否对选定页执行刷新操作。存储器控制器包括:正常读取操作控制器,其被配置成控制对选定页的读取操作并且确定读取数据中的错误位的数量;纠错执行组件,其被配置成纠正读取数据;以及数据恢复控制器,其被配置成当读取数据中的错误被纠正时,基于读取数据中的错误位的数量来控制对选定页的刷新操作。刷新操作。刷新操作。


技术研发人员:

崔元载 朴世泉

受保护的技术使用者:

爱思开海力士有限公司

技术研发日:

2021.04.19

技术公布日:

2022/2/28

本文发布于:2022-11-25 07:42:32,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/1887.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:存储器   操作   数据   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图