掌桥专利:专业的专利平台
掌桥专利
首页

存储器控制器、存储器系统以及操作存储器系统的方法

文献发布时间:2023-06-19 19:30:30


存储器控制器、存储器系统以及操作存储器系统的方法

相关申请的交叉引用

本申请要求于2021年10月20日在韩国知识产权局提交的韩国专利申请号10-2021-0140248的优先权,其全部公开内容通过引用并入本文。

技术领域

本公开的各种实施例总体上涉及电子设备,并且更具体地涉及存储器控制器、包括存储器控制器的存储器系统以及操作存储器系统的方法。

背景技术

存储器系统是在诸如计算机或智能电话的主机的控制下存储数据的设备。存储器系统可以包括被配置为存储数据的存储器设备和被配置为控制存储器设备的存储器控制器。存储器设备可以被分类为易失性存储器设备或非易失性存储器设备。

易失性存储器设备是仅在向其供电时存储数据并且其中在电源关断时存储在其中的数据丢失的存储器设备。易失性存储器设备的示例包括静态随机存取存储器(SRAM)设备和动态随机存取存储器(DRAM)设备。

非易失性存储器设备是即使在电源关断时存储在其中的数据也被保持的存储器设备。非易失性存储器设备的示例包括只读存储器(ROM)设备、可编程ROM(PROM)设备、电可编程ROM(EPROM)设备、电可擦除可编程ROM(EEPROM)设备和闪存设备。

发明内容

本公开的各种实施例针对能够正确地读取在存储器设备中存储的数据的存储器控制器、包括存储器控制器的存储器系统以及操作存储器系统的方法。

根据本公开的一个实施例,存储器控制器包括:读取操作控制器,被配置为控制存储器设备通过具有不同电平的多个读取电压从存储器设备的被选择的页读取数据段;错误校正电路,被配置为确定数据段的失效位数,失效位数中的每个失效位数指示在数据段中的一个数据段中包括的失效位的数目;以及读取电压控制器。读取电压控制器被配置为:基于存储器设备的擦写循环计数以及指示失效位数中的最大失效位数的参考失效位数,从在第一读取电压表中包括的多个电压变化之中选择参考电压变化;以及基于参考电压变化以及失效位数中的对应的一个失效位数与参考失效位数的比值来调整多个读取电压中的每个读取电压的电平。

根据本公开的一个实施例,存储器系统包括存储器设备,存储器设备包括多个页。存储器系统还包括存储器控制器,存储器控制器被配置为:控制存储器设备将具有不同电平的多个读取电压施加到多个页之中的被选择的页;基于存储器设备的擦写循环计数以及指示通过相应读取电压获得的失效位数中的最大失效位数的参考失效位数,确定在读取电压表中包括的多个电压变化中的参考电压变化;以及基于失效位数中的对应的一个失效位数与参考失效位数的比值以及参考电压变化来调整多个读取电压中的每个读取电压的电平。

根据本公开的操作存储器控制器的方法包括:基于具有不同电平的多个读取电压控制存储器设备执行正常读取操作;确定与多个读取电压分别对应的失效位数,失效位数中的每个失效位数指示在数据段中的一个数据段中包括的失效位的数目;基于存储器设备的擦写循环计数以及指示失效位数中的最大失效位数的参考失效位数,确定在读取电压表中包括的多个电压变化中的参考电压变化;以及基于失效位数中的对应的一个失效位数与参考失效位数的比值以及参考电压变化来调整多个读取电压中的每个读取电压的电平。

附图说明

图1是用于描述根据一个实施例的存储器系统的示图。

图2A是用于描述根据一个实施例的存储器控制器的结构的示图。

图2B是用于描述根据一个实施例的处理器的详细配置的示图。

图3是用于描述根据一个实施例的存储器设备的结构的示图。

图4是用于描述根据一个实施例的存储器块的结构的示图。

图5A是用于描述根据一个实施例的存储器单元的阈值电压分布的示图。

图5B是用于描述根据一个实施例的格雷码的示图。

图5C是用于描述根据一个实施例的失效位的示图。

图6A和图6B是用于描述根据一个实施例的第一读取电压表的示图。

图6C是用于描述根据一个实施例的第二读取电压表的示图。

图6D是用于描述根据一个实施例的第三读取电压表的示图。

图7A是用于描述根据一个实施例的读取重试操作的读取电压的示图。

图7B和图7C是用于描述根据一个实施例的调整读取重试操作的读取电压的方法的示图。

图8是用于描述根据一个实施例的操作存储器控制器的方法的示图。

图9是图示了向其应用根据一个实施例的存储器系统的存储器卡的框图。

图10是图示了向其应用根据一个实施例的存储器系统的固态驱动(SSD)系统的框图。

图11是图示了向其应用根据一个实施例的存储器系统的用户系统的框图。

具体实施方式

在本说明书或申请中介绍的本公开的实施例中的具体结构或功能描述仅用于描述本公开的实施例。这些描述不应被解释为限于在本说明书或申请中描述的实施例。

图1是用于描述根据一个实施例的存储器系统10的示图。

参考图1,存储器系统10可以响应于来自主机20的各种请求来操作。详细地,存储器系统10可以执行与从主机20接收的请求相对应的操作。例如,如果存储器系统10接收数据以及存储数据的请求,存储器系统10可以存储数据。例如,如果存储器系统10从主机20接收读取数据的请求,则存储器系统10可以向主机20提供在存储器系统10中存储的数据。为此,存储器系统10可以与主机20通过各种通信方案连接。

根据通信协议或存储数据的方案,存储器系统10可以被实现为各种类型的存储设备中的任一种。例如,存储器系统10可以被实现为诸如以下任一项:固态盘(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、减小尺寸的MMC(RS-MMC)或微型MMC存储设备、通用串行总线(USB)存储设备、通用闪存(UFS)设备、个人计算机存储器卡国际协会(PCMCIA)型存储设备、外围部件互连(PCI)型存储设备、PCI快速(PCI-E)型存储设备、网络附接存储装置和无线网络存储设备。此处,所列举的示例仅是示例,并且本公开不限于此。存储器系统10可以被实现为各种存储设备。

主机20可以是各种电子设备中的一种,诸如台式计算机、膝上型计算机、智能电话、游戏机、电视机(TV)、平板计算机和可穿戴设备。主机20可以根据各种通信协议与存储器系统10执行通信。主机20可以向存储器系统10发射数据、逻辑地址或各种请求,或者从存储器系统10接收数据。

存储器系统10可以被用作主机20的主存储器设备或辅助存储器设备。存储器系统10可以位于主机20内部或主机20外部。

存储器系统10可以包括存储器设备100和存储器控制器200。存储器设备100可以是一个或多个。存储器设备100和存储器控制器200可以通过通道彼此连接。存储器设备100和存储器控制器200可以通过通道在其间发射和接收命令、地址、数据等。

存储器设备100可以在其中存储数据。为此,存储器设备100可以使用各种类型的半导体存储器来实现。这种存储器可以包括例如NAND闪存存储器、垂直NAND闪存存储器、NOR闪存存储器、静态随机存取存储器(SRAM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM、图形DRAM(GDRAM)、rambus动态RAM(RDRAM)、铁电RAM(FRAM)、磁阻RAM(MRAM)、相变存储器(PCM)、自旋转移扭矩磁阻RAM(STT-MRAM)、电阻RAM(ReRAM)等。在下文中,为了说明起见,假设存储器设备100是NAND闪存设备。

存储器设备100可以包括至少一个存储器块。存储器块可以包括多个页。每个页可以包括多个存储器单元。换言之,存储器设备100可以包括多个存储器单元。每个存储器单元可以被定义为被配置为存储数据的最小单位。在一个实施例中,存储器单元可以被实现为包括栅极、绝缘层和浮置栅极的晶体管。例如,如果编程电压被施加到存储器单元的栅极,则电子可以通过隧穿现象存储在存储器单元的浮置栅极中。在这种情况下,存储器单元的阈值电压可以根据在浮置栅极中存储的电子量而变化。存储器单元的阈值电压可以属于具有不同电压范围的多个编程状态中的一个编程状态。存储器单元的编程状态可以指代在存储器单元中存储的数据的值。

存储器设备100可以根据各种数据存储方案之一来存储数据。例如,数据存储方案可以是单级单元(SLC)存储方案、多级单元(MLC)存储方案和三级单元(TLC)存储方案之一。SLC存储方案可以是其中可以在一个存储器单元中存储一个位的方案。例如,在SLC的情况下,两个被二进制化的值(诸如“1”和“0”)之一可以被存储在一个存储器单元中。在存储器单元中存储的值可以基于根据阈值电压,存储器单元的当前编程状态是两个编程状态中的哪个编程状态来识别。MLC存储方案可以是其中可以在一个存储器单元中存储两个位的方案。例如,在MLC的情况下,包括“11”到“00”的四个被二进制化的值之一可以被存储在一个存储器单元中。在存储器单元中存储的值可以基于根据阈值电压,存储器单元的当前编程状态是四个编程状态中的哪个编程状态来识别。TLC存储方案可以是其中可以在一个存储器单元中存储三个位的方案。例如,在TLC的情况下,包括“111”到“000”的八个被二进制化的值之一可以被存储在一个存储器单元中。在存储器单元中存储的值可以基于根据阈值电压,存储器单元的当前编程状态是八个编程状态中的哪个编程状态来识别。

存储器控制器200可以控制存储器设备100的整体操作。例如,存储器控制器200可以控制存储器设备100执行存储数据的编程操作、请求所存储的数据的读取操作或擦除所存储的数据的擦除操作。

例如,在编程操作的情况下,存储器控制器200可以向存储器设备100提供编程命令、地址和数据。此处,地址可以指代物理地址。如果从存储器控制器200接收到编程命令、地址和数据,则存储器设备100可以执行将数据存储在由地址确定的页中的编程操作。在读取操作的情况下,存储器控制器200可以向存储器设备100提供读取命令和地址。如果从存储器控制器200接收到读取命令和地址,则存储器设备100可以执行将在由地址确定的页中存储的数据提供给存储器控制器200的读取操作。在擦除操作的情况下,存储器控制器200可以向存储器设备100提供擦除命令和地址。如果从存储器控制器200接收到擦除命令和地址,则存储器设备100可以执行擦除在由地址确定的存储器块中的数据的擦除操作。

在一个实施例中,存储器控制器200可以响应于来自主机20的请求,控制存储器设备100执行编程操作、读取操作或擦除操作。例如,如果从主机20接收到存储数据的请求、读取数据的请求或者擦除数据的请求,则存储器控制器200可以生成与存储请求、读取请求或擦除请求相对应的命令。如果从主机20接收到逻辑地址,则存储器控制器200可以将逻辑地址转换为物理地址。此处,物理地址可以是唯一标识符,该唯一标识符指代在存储器设备100中包括的存储器块或页。存储器控制器200可以将物理地址连同命令一起传输到存储器设备100。物理地址可以被简单地指定为“地址”。

在一个实施例中,不论来自主机20的请求如何,存储器控制器200可以控制存储器设备100自主地执行编程操作、读取操作或擦除操作。例如,存储器控制器200可以控制存储器设备100执行损耗均衡操作、读取回收操作或垃圾收集操作。为此,存储器控制器200可以自主地生成命令、地址和数据,并将命令、地址和数据传输到存储器设备100。

在其中两个或更多个位被存储在一个存储器单元中的情况下,两个或更多个页数据段可以被存储在包括多个存储器单元的一个页中。例如,在TLC的情况下,三个位可以被存储在一个存储器单元中。三个位可以包括根据数据类型分类的最低有效位(LSB)、中心有效位(CSB)和最高有效位(MSB)。在这种情况下,诸如LSB页数据、CSB页数据和MSB页数据的三个页数据段可以被存储在一个页中。此处,LSB页数据可以包括在页中包括的相应存储器单元中存储的LSB。CSB页数据可以包括在页中包括的存储器单元中存储的CSB。MSB页数据可以包括在页中包括的存储器单元中存储的MSB。例如,在MLC的情况下,诸如LSB和MSB的两个位可以被存储在一个存储器单元中。在这种情况下,诸如LSB页数据和MSB页数据的两个页数据段可以被存储在一个页中。

在该情况下,存储器控制器200可以控制存储器设备100使用至少一个读取电压执行读取操作来读取一个页数据段。

此处,读取电压的数目可以指代施加读取电压的计数。读取页数据所需的读取电压的数目可以根据数据的类型而改变。例如,在TLC的情况下,读取LSB页数据(或MSB页数据)可能需要两个读取电压,而读取CSB页数据可能需要三个读取电压。换言之,与LSB页数据(或MSB页数据)相比,CSB页数据未被正常读取的概率很高,因为在CSB页数据中施加读取电压的计数大于在LSB页数据(或MSB页数据)中施加读取电压的计数。MLC也具有与前述相同的问题,因为对于LSB页数据和MSB页数据中的一者需要一个读取电压,而对于另一者需要两个读取电压。在下文中,为了说明起见,假设数据存储方案是TLC存储方案。

根据本公开的一个实施例,存储器控制器200可以基于参考失效位数和擦写循环计数来确定在读取电压表中包括的多个电压变化中的参考电压变化。

详细地,存储器控制器200可以控制存储器设备100将具有不同电平的多个读取电压施加到多个页中的被选择的页。存储器控制器200可以基于参考失效位数以及被选择的页的擦写循环计数来确定在读取电压表中包括的多个电压变化中的参考电压变化,参考失效位数是指通过相应读取电压获得的失效位数中的最大失效位数。存储器控制器200可以基于失效位数中的对应的一个失效位数与参考失效位数的比值以及参考电压变化来调整多个读取电压中的每个读取电压的电平。

此处,参考失效位数可以是指通过相应读取电压获得的数据的失效位数中的最大失效位数。存储器控制器200可以基于失效位数中的对应的一个失效位数与参考失效位数的比值以及参考电压变化来调整多个读取电压中的每个读取电压的电平。

这样,存储器控制器200可以通过根据数据的类型等单独调整每个读取电压来正确地读取在存储器设备100中存储的数据。然而,将参考附图来详细描述本公开的实施例。

图2A是用于描述根据一个实施例的存储器控制器200的结构的示图。

参考图2A,存储器控制器200可以包括主机接口210、存储器接口220、存储器230、处理器240和错误校正电路250中的至少一者。

主机接口210可以使用各种通信协议与主机20通信。例如,主机接口210可以使用各种通信协议与主机20通信,各种通信协议诸如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI-快速(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动电子器件(IDE)、火线、通用闪存(UFS)和通用异步接收器/发射器(UART)。

主机接口210可以与主机20收发各种类型的信息。主机接口210可以向处理器240或存储器230提供从主机20接收的信息。主机接口210可以向主机20提供在存储器230中存储的信息。

在编程操作的情况下,如果从主机20接收到对数据的写入请求、逻辑地址和数据,则主机接口210可以将写入请求和逻辑地址传输到处理器240,并且将数据传输到存储器230。

在读取操作的情况下,如果从主机20接收到对数据的读取请求和逻辑地址,则主机接口210可以将读取请求和逻辑地址传输到处理器240。此后,主机接口210可以将从存储器设备100读取的数据传输到主机20。

存储器接口220可以通过通道与存储器设备100通信。存储器接口220可以与存储器设备100收发各种类型的信息。存储器接口220可以向处理器240或存储器230提供从存储器设备100接收的信息。存储器接口220可以向存储器设备100提供在存储器230中存储的信息。

在编程操作的情况下,存储器接口220可以从处理器240接收编程命令和物理地址,并且从存储器230接收数据。在这种情况下,存储器接口220可以将编程命令、物理地址和数据传输到存储器设备100。此处,数据可以是由错误校正电路250编码的数据。

在读取操作的情况下,如果从处理器204接收到读取命令和物理地址,则存储器接口220可以将读取命令和物理地址传输到存储器设备100。此后,存储器接口220可以将从存储器设备100读取的数据传输到存储器230。

存储器230可以临时存储从存储器设备100或主机20接收的数据。此处,数据可以是响应于编程命令而要被存储在存储器设备100中的数据,或者响应于读取命令而要被提供给主机20的数据。在临时存储在存储器230中的数据被存储在存储器设备100中或者临时存储在存储器230中的数据被提供给主机20之后,存储器230可以擦除临时存储的数据。

存储器230可以存储存储器控制器200的操作或管理所需的数据。例如,存储器230可以接收并存储从存储器设备100的内容可寻址存储器(CAM)块的系统存储器块读取的读取重试表。

为此,存储器230可以包括静态随机存取存储器(静态RAM;SRAM)和动态RAM(DRAM)中的至少一者。在一个实施例中,存储器230的一个区域可以被配置为存储器控制器200的工作存储器,并且还可以用作高速缓存存储器。在一个实施例中,存储器230可以存储用于执行处理器240的操作的各种指令。

处理器240可以控制存储器控制器200的整体操作。

如果处理器240被供电,则处理器240可以执行指令。例如,处理器240可以执行指令来读取在存储器设备100中存储的地址映射表并将地址映射表存储在存储器230中。地址映射表可以包括逻辑地址和物理地址之间的映射信息。随后,如果从主机20接收到逻辑地址,则处理器240可以在存储器230中存储的映射表中搜索映射到从主机20接收的逻辑地址的物理地址。

在编程操作的情况下,如果从主机20接收到写入请求和逻辑地址,则处理器240可以确定在地址映射表中包括的物理地址之中的映射到所接收的逻辑地址的物理地址。处理器240可以控制存储器接口220将编程命令、物理地址和数据传输到存储器设备100。此处,数据可以是由错误校正电路250编码的页数据。如果接收到编程命令、物理地址和数据,则存储器设备100可以将数据存储在与物理地址相对应的被选择的页中。

在读取操作的情况下,如果从主机20接收到读取请求和逻辑地址,则处理器240可以确定在地址映射表中包括的物理地址之中的映射到所接收的逻辑地址的物理地址。处理器240可以控制存储器接口220将读取命令和物理地址传输到存储器设备100。如果接收到读取命令和物理地址,则存储器设备100可以读取在与物理地址相对应的被选择的页中存储的数据,并将数据提供给存储器控制器200。处理器240可以控制主机接口210将从存储器设备100接收的数据传输到主机20。从存储器设备100接收的数据可以是临时存储在存储器230中的数据。

在一个实施例中,如果读取操作失败,则处理器240可以控制存储器设备100根据读取重试方案调整读取电压的电平,然后执行读取操作。处理器240可以控制存储器设备100迭代调整读取电压的电平与执行读取操作的操作,直到读取操作成功。

例如,其中读取操作失败的情况可以指示从存储器设备100接收的所读取的数据的失效位数超过阈值。其中读取操作成功的情况可以指示所读取的数据的失效位数是阈值或更小。此处,所读取的数据可以指代通过使用读取电压读取在存储器设备100中包括的多个页之中与逻辑地址相对应的被选择的页中存储的数据而获得的数据。失效位数可以指示在所读取的数据中包括的失效位的数目。阈值可以指示错误校正电路250的错误校正能力。

在一个实施例中,存储器设备100可以在一个页中存储多个页数据段。换言之,存储器设备100可以根据存储方案(诸如MLC或TLC存储方案)在一个页中包括的存储器单元中的每个存储器单元中存储两个或更多个位。在这种情况下,处理器240可以控制存储器设备100使用至少一个读取电压来读取一个页数据。

例如,在TLC的情况下,LSB页数据、CSB页数据和MSB页数据可以被存储在一个页中。此处,处理器240可以控制存储器设备100使用与每个页数据段相对应的读取电压集来执行读取操作。读取电压集可以包括至少一个读取电压。例如,处理器240可以控制存储器设备100使用第一读取电压集来读取LSB页数据。处理器240可以控制存储器设备100使用第二读取电压集来读取CSB页数据。处理器240可以控制存储器设备100使用第三读取电压集来读取MSB页数据。此处,第一读取电压集可以包括具有不同电平的两个读取电压。第二读取电压集可以包括具有不同电平的三个读取电压。第三读取电压集可以包括具有不同电平的两个读取电压

根据本公开的一个实施例,如果使用多个读取电压的读取操作失败,则处理器240可以控制存储器设备100调整多个读取电压中的每个读取电压的电平并执行读取操作。此处,处理器240可以使用包括多个电压变化的读取电压表、基于与每个读取电压相对应的失效位数和擦写循环计数来确定电压变化。

详细地,处理器240可以基于参考失效位数和擦写循环计数来确定在读取电压表中包括的多个电压变化中的参考电压变化。此处,参考失效位数可以指代通过在被选择的页上的相应读取电压获得的数据的失效位数中的最大失效位数。擦写循环计数可以指代在被选择的页上已执行编程操作或擦除操作的次数。存储器控制器200可以基于失效位数中的对应的一个失效位数与参考失效位数的比值以及参考电压变化来调整多个读取电压中的每个读取电压的电平。

例如,将描述其中使用三个读取电压来读取CSB页数据的情况。在这种情况下,如果对CSB页数据的读取操作成功,则处理器240可以将从存储器设备100接收的CSB页数据提供给主机20。

与此不同的是,如果对CSB页数据的读取操作失败,则处理器240可以执行根据读取重试方案的读取操作。换言之,如果从存储器设备100接收的CSB页数据的失效位数超过阈值,则处理器240可以控制存储器设备100调整三个读取电压的电平并执行读取操作。此处,处理器240可以迭代上述操作,直到所读取的CSB页数据的失效位数是阈值或更小。

错误校正电路250可以确定数据的失效位数。详细地,错误校正电路250可以检测在从存储器设备100接收的数据中包括的失效位。在这种情况下,错误校正电路250可以确定数据的失效位数,并且将失效位数传输到处理器240。此处,失效位数可以指代在数据中包括的失效位的数目。失效位可以指代使用读取电压读出的其编程状态由于干扰、保持或擦写循环计数的增加而已被改变的存储器单元。换言之,在存储器单元中存储的值与从存储器单元读取的值不同的情况下,错误校正电路250可以将对应存储器单元设置为失效位。

在编程操作的情况下,错误校正电路250可以执行对要被存储在存储器设备100中的数据进行编码的操作。经编码的数据可以通过存储器接口220提供给存储器设备100。在读取操作中,错误校正电路250可以执行对从存储器设备100接收的数据进行解码的操作。错误校正电路250可以确定经解码的数据的失效位数。

在一个实施例中,错误校正电路250可以使用在经编码的数据中包括的奇偶校验位来检测数据的失效位。例如,错误校正电路250可以使用各种方案(诸如奇偶校验、块和校验以及循环冗余校验(CRC)),来检测在数据中包括的失效位。经编码的数据可以是通过将奇偶校验位添加到从主机20接收的原始数据而获得的数据。奇偶校验位可以是用于检测或校正数据的失效位的位。奇偶校验位可以被插入到原始数据的位之中的预设位置。例如,在原始数据由位组形成,每个位组包括预定数目的位的情况下,奇偶校验位可以被插入到特定位置中,诸如每个组的开始部分或结束部分中。此处,奇偶校验位可以具有被确定为将在组中包括的0或1的数目设置为奇数或偶数的值。

在一个实施例中,错误校正码电路250可以使用低密度奇偶校验(LDPC)码、Bose-Chaudhri-Hocquenghem(BCH)码、turbo码、Reed-Solomon码、卷积码、递归系统码(RSC)或编码调制(诸如格状编码调制(TCM)、块编码调制(BCM))或汉明码来执行编码操作或解码操作。

错误校正电路250可以校正数据的失效位。详细地,如果数据的失效位数是参考数或更少,则错误校正电路250可以校正数据的失效位。此处,参考数可以指示校正失效位的能力。换言之,如果数据的失效位数超过参考数,则错误校正电路250可能不校正数据的失效位。

图2B是用于描述根据一个实施例的处理器240的详细配置的示图。

在一个实施例中,处理器240可以包括擦写计数器块241、电压寄存器243、读取电压控制器245和读取操作控制器247。

擦写计数器块241可以存储存储器设备100的擦写循环计数EW_count。擦写循环计数EW_count可以指示存储器设备100已执行擦除操作或编程操作的次数。擦写循环计数EW_count可以在存储器块或页的基础上进行管理。擦写计数器块241可以将擦写循环计数EW_count输出到读取电压控制器245来调整读取电压的电平。

电压寄存器243可以在其中存储至少一个读取电压表RVT。至少一个读取电压表RVT可以包括第一读取电压表、第二读取电压表和/或第三读取电压表。

在一个实施例中,电压寄存器243可以在其中存储第一读取电压表。第一读取电压表可以是指示擦写循环计数、参考失效位数和电压变化之间的映射关系的表。详细地,第一读取电压表可以包括与擦写循环计数相对应的第一字段值、映射到第一字段值并且与参考失效位数相对应的第二字段值以及映射到第二字段值的多个电压变化。

在一个实施例中,电压寄存器243可以在其中存储第二读取电压表。第二读取电压表可以是指示数据的类型、参考电压变化和第二电压变化之间的映射关系的表。详细地,第二读取电压表可以包括与数据的类型相对应的第三字段值、与参考电压变化相对应的第四字段值以及映射到第三字段值和第四字段值的第二电压变化。

在一个实施例中,电压寄存器243可以在其中存储第三读取电压表。第三读取电压表可以是指示擦写循环计数、参考电压变化和第三电压变化之间的映射关系的表。详细地,第三读取电压表可以包括与擦写循环计数相对应的第五字段值、与参考电压变化相对应的第六字段值以及映射到第六字段值和第五字段值的第三电压变化。

在一个实施例中,映射到第五字段值之中的指示第一擦写循环计数的第五字段值的第三电压变化之间的差可以大于映射到指示第二擦写循环计数的第五字段值的第三电压变化之间的差,第二擦写循环计数大于第一擦写循环计数。

将参考图6A至图6D描述第一至第三读取电压表的详细说明。

读取电压控制器245可以基于擦写循环计数EW_count和失效位计数FBIT从读取电压表RVT中选择一个电压变化。此处,失效位数FBIT可以被划分为针对在读取电压集中包括的针对相应读取电压的失效位数。

详细地,如果使用包括多个读取电压的读取电压集读取的页数据的失效位数FBIT超过阈值,则读取电压控制器245可以将针对相应读取电压的失效位数之中的最大失效位数设置为参考失效位数。此处,多个读取电压可以是读取相同类型的数据的电压。在一个实施例中,失效位数FBIT可以从错误校正电路250被接收。在一个实施例中,失效位数FBIT可以从存储器设备100被接收。

读取电压控制器245可以在读取电压表RVT中包括的多个电压变化之中选择参考电压变化,参考电压变化是与参考失效位数和擦写循环计数EW_count匹配的电压变化。

在一个实施例中,读取电压控制器245可以使用第一读取电压表来确定参考电压变化。详细地,读取电压控制器245可以在第一字段值之中选择在其与擦写循环计数之间具有最小的差的第一字段值。读取电压控制器245可以在第二字段值之中选择被映射到被选择的第一字段值并且在其与参考失效位数之间具有最小的差的第二字段值。读取电压控制器245可以在多个电压变化之中选择映射到被选择的第二字段值的电压变化作为参考电压变化。

读取电压控制器245可以使用参考电压变化来调整多个读取电压中的每个读取电压的电平。

详细地,读取电压控制器245可以基于失效位数中的对应的一个失效位数与参考失效位数的比值以及参考电压变化来调整多个读取电压中的每个读取电压的电平。读取电压控制器245可以输出多个读取电压中的每个读取电压的读取电压信息Vt。在一个实施例中,读取电压信息Vt可以指代读取电压的电平。例如,在读取电压信息Vt是1.6V的情况下,1.6V的电压可以在读取操作期间被施加到被选择的页。在一个实施例中,读取电压信息Vt可以指代读取电压的默认电平将被调整的电平。例如,在读取电压的默认电平是2V并且读取电压信息Vt是-0.4V的情况下,1.6V的电压可以在读取操作期间被施加到被选择的页。

例如,在读取页数据是CSB页数据并且读取电压集包括第一读取电压、第二读取电压和第三读取电压的情况下,失效位数FBIT可以被划分为针对第一读取电压的第一失效位数、针对第二读取电压的第二失效位数以及针对第三读取电压的第三失效位数。所读取的页数据的失效位数FBIT可以是第一失效位数、第二失效位数和第三失效位数之和。此处,如果第二失效位数最大,则第二失效位数被确定为参考失效位数。

在该情况下,读取电压控制器245可以将第一读取电压的电平调整为通过将第一失效位数与参考失效位数的比值乘以参考电压变化而获得的值。读取电压控制器245可以将第二读取电压的电平调整为通过将第二失效位数与参考失效位数的比值乘以参考电压变化而获得的值。读取电压控制器245可以将第三读取电压的电平调整为通过将第三失效位数与参考失效位数的比值乘以参考电压变化而获得的值。

尽管参考电压变化已被描述为乘以比值,但这仅用于例示目的。根据本公开,可以使用参考电压变化来确定最终电压变化,并且可以使用通过将最终电压变化乘以比值而获得的值。

在一个实施例中,读取电压控制器245可以基于第一读取电压表来确定参考电压变化,并且然后基于第二读取电压表来确定最终电压变化。

详细地,读取电压控制器245可以在第二读取电压表中包括的第三字段值之中选择与数据类型相对应的第三字段值。读取电压控制器245可以在第二读取电压表中包括的第四字段值之中选择与参考电压变化相对应的第四字段值。读取电压控制器245可以在第二读取电压表中包括的第二电压变化之中选择映射到被选择的第三字段值和被选择的第四字段值的第二电压变化作为最终电压变化。在这种情况下,读取电压控制器245可以将多个读取电压中的每个读取电压的电平调整为通过将作为最终电压变化的第二电压变化乘以比值中的对应的一个比值而获得的值。

在一个实施例中,读取电压控制器245可以基于第一读取电压表来确定参考电压变化,并且然后基于第三读取电压表来确定最终电压变化。

详细地,读取电压控制器245可以在第三读取电压表中包括的第五字段值之中选择在其与擦写循环计数之间具有最小的差的第五字段值。读取电压控制器245可以在第三读取电压表中包括的第六字段值之中选择与参考电压变化相对应的第六字段值。读取电压控制器245可以在第三读取电压表中包括的第三电压变化之中选择映射到被选择的第五字段值和被选择的第六字段值的第三电压变化作为最终电压变化。读取电压控制器245可以将多个读取电压中的每个读取电压的电平调整为通过将作为最终电压变化的第三电压变化乘以比值中的对应的一个比值而获得的值。

读取操作控制器247可以控制存储器设备100执行正常读取操作或根据读取重试方案的读取操作。此处,正常读取操作可以指代使用具有设置为默认的电平的读取电压来读取数据的操作。

在一个实施例中,读取操作控制器247可以控制存储器设备100使用具有经调整的电平的多个读取电压来分别读取数据段。例如,读取操作控制器247可以将命令CMD和关于相应读取电压的读取电压信息Vt传输到存储器设备100。此处,命令CMD可以是被提供以控制要通过多个读取电压分别读取的数据段的读取命令,多个读取电压具有根据与相应读取电压有关的读取电压信息Vt调整的电平。

尽管擦写计数器块241、电压寄存器243、读取电压控制器245和读取操作控制器247已被描述为被包括在处理器240中,但这仅是一个实施例。擦写计数器块241、电压寄存器243、读取电压控制器245和读取操作控制器247中的至少一者可以是与处理器240分开提供的部件。

图3是用于描述根据一个实施例的存储器设备100的结构的示图。

参考图3,存储器设备100可以包括存储器单元阵列110、外围电路120和控制逻辑130。

存储器单元阵列110可以包括多个存储器块BLK1至BLKz。存储器块中的每个存储器块可以具有相同的结构。在下文中,为了说明起见,对多个存储器块BLK1至BLKz中的任一存储器块BLKz进行描述。

存储器块BLKz可以包括多个页。每个页可以包括存储器单元。换言之,存储器块BLKz可以包括多个存储器单元。

多个存储器单元可以被设置在二维平面上,或者被设置在三维垂直结构中。此处,存储器单元可以是半导体存储器元件。在一个实施例中,存储器单元可以是非易失性存储器元件。

存储器块BLKz可以通过行线RL连接到外围电路120的地址解码器121。此处,行线RL可以包括多个字线。存储器块BLKz的每个页可以被连接到一个字线。换言之,在存储器块BLKz的每个页中包括的存储器单元可以被连接到一个字线。在存储器块BLKz中包括的页中的每个页可以被连接到位线BL1至BLm。位线BL1至BLm可以被分别连接到外围电路120的页缓冲器PB1至PBm。将参考图4来描述存储器块BLKz的详细结构。

外围电路120可以在控制逻辑130的控制下操作。例如,外围电路120可以驱动存储器单元阵列110执行编程操作、读取操作或擦除操作。

外围电路120可以包括地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。

地址解码器121可以通过行线RL连接到存储器单元阵列110。例如,参考图3和图4,行线RL可以包括漏极选择线DSL、多个字线WL1至WL16、源极选择线SSL和源极线SL。例如,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的部件。

地址解码器121可以在控制逻辑130的控制下操作。例如,地址解码器121可以从控制逻辑130接收地址ADDR。地址解码器121可以对在所接收的地址ADDR中包括的块地址或页地址进行解码。此处,页地址可以指代行地址。地址解码器121可以将从电压生成器122提供的操作电压Vop施加到由块地址指示的存储器块或由页地址指示的页。此处,操作电压Vop可以包括以下至少一者:编程电压、验证电压、编程通过电压、验证通过电压、读取电压、读取通过电压以及第一和第二擦除电压。

电压生成器122可以使用提供给存储器设备100的外部电源来生成各种类型的操作电压Vop。此处,外部电源可以是在存储器系统10中包括的初级电源或主机20的电源。操作电压Vop可以包括以下至少一者:编程电压、验证电压、编程通过电压、验证通过电压、读取电压、读取通过电压以及第一和第二擦除电压。电压生成器122可以在控制逻辑130的控制下操作。例如,如果从控制逻辑130接收到操作信号OPSIG,则电压生成器122可以将与操作信号OPSIG相对应的操作电压Vop传输到地址解码器121。

读取/写入电路123可以包括多个页缓冲器PB1至PBm。多个页缓冲器PB1至PBm中的每个页缓冲器可以通过多个位线BL1至BLm中的对应位线连接到存储器单元阵列110。例如,多个页缓冲器PB1至PBm中的每个页缓冲器可以通过对应的位线共同连接到存储器单元,该存储器单元指代在多个存储器块BLK1至BLKz中的每个存储器块中包括的存储器单元中的特定列。多个页缓冲器PB1至PBm中的每个页缓冲器可以临时存储数据DATA。为此,多个页缓冲器PB1至PBm中的每个页缓冲器可以被实现为诸如锁存电路的各种存储器元件。

读取/写入电路123可以在控制逻辑130的控制下操作。在一个实施例中,如果从控制逻辑130接收到缓冲器控制信号PBSIGNALS,则读取/写入电路123可以将与数据DATA相对应的电压施加到多个位线BL1至BLm中的每个位线或者感测多个位线BL1至BLm中的每个位线的电压来读取数据DATA。这样,临时存储在多个页缓冲器PB1至PBm中的数据DATA可以被存储在存储器单元阵列110的特定区域中,或者在存储器单元阵列110的特定区域中存储的数据DATA可以被读取并临时存储在多个页缓冲器PB1至PBm中。此处,特定区域可以是由页地址指示的页。

数据输入/输出电路124通过数据线DL连接到读取/写入电路123。数据输入/输出电路124可以包括被配置为接收输入数据DATA的多个输入/输出缓冲器。数据输入/输出电路124可以响应于控制逻辑130的控制信号来操作。例如,如果从控制逻辑130接收到控制信号,则数据输入/输出电路124可以通过数据线DL将在数据输入/输出电路124中临时存储的数据DATA输出到读取/写入电路123,或者通过通道将在数据输入/输出电路124中临时存储的数据DATA输出到存储器控制器200。

感测电路125可以响应于从控制逻辑130接收的使能位信号VRYBIT生成参考电压。感测电路125可以根据参考电压与从读取/写入电路123接收的感测电压VPB的比较结果,向控制逻辑130输出通过信号PASS或失败信号FAIL。此处,通过信号PASS可以指示编程脉冲操作的成功或读取操作的成功。失败信号FAIL可以指示编程脉冲操作失败或读取操作失败。

控制逻辑130可以被实现为硬件、软件或硬件和软件的组合。例如,控制逻辑130可以是根据算法和/或执行控制逻辑代码的处理器操作的控制逻辑电路。控制逻辑130可以控制存储器设备100的整体操作。控制逻辑130可以响应于从存储器控制器200接收的命令CMD和地址ADDR来控制外围电路120执行编程操作、读取操作或擦除操作。此处,命令CMD可以是编程命令、读取命令或擦除命令。为此,控制逻辑130可以被连接到外围电路120。例如,控制逻辑130可以被连接到地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。

在一个实施例中,如果从存储器控制器200接收到编程命令和地址ADDR,则控制逻辑130可以控制外围电路120执行将数据DATA存储在与地址ADDR相对应的被选择的页中的编程操作。此处,数据DATA可以包括至少一个页数据段。例如,在TLC的情况下,数据DATA可以包括LSB页数据、CSB页数据和MSB页数据。例如,在MLC的情况下,数据DATA可以包括LSB页数据和MSB页数据。

编程操作可以是根据增量步进脉冲编程(ISPP)方案存储数据的操作。例如,编程操作可以包括多个编程循环。每个编程循环可以包括连续执行的编程脉冲操作和编程验证操作。编程脉冲操作可以是向被选择的页施加编程电压来改变阈值电压的操作。编程验证操作可以是向被选择的页施加验证电压来验证编程脉冲操作是已经成功还是已经失败的操作。如果验证操作的结果指示编程脉冲操作成功,则控制逻辑130可以终止编程操作。如果验证操作的结果指示编程脉冲操作失败,则控制逻辑130可以控制外围电路120增加编程电压的电平,然后执行编程循环。

在一个实施例中,如果从存储器控制器200接收到读取命令和地址ADDR,则控制逻辑130可以控制外围电路120执行读取在与地址ADDR相对应的被选择的页中存储的数据DATA的读取操作。控制逻辑130可以控制外围电路120将从被选择的页读取的数据DATA传输到存储器控制器200。

例如,如果从存储器控制器200接收到读取命令和地址ADDR,则控制逻辑130可以控制外围电路120将与页数据的类型相对应的多个读取电压连续地施加到与地址ADDR相对应的被选择的页。控制逻辑130可以控制外围电路120将所读取的页数据传输到存储器控制器200。

在这种情况下,如果从存储器控制器200接收到读取命令和读取电压信息,则控制逻辑130可以控制外围电路120将多个读取电压施加到被选择的页,多个读取电压的相应电平根据读取电压信息而被调整。控制逻辑130可以控制外围电路120将所读取的页数据传输到存储器控制器200。

存储器块BLK1至BLKz中的一些存储器块可以包括系统存储器块或CAM块。系统存储器块或CAM块可以存储与存储器设备100的操作有关的信息。例如,与存储器设备100的操作有关的信息可以包括编程电压的默认电平、读取电压的默认电平、与坏块有关的信息、失效位数等。

图4是用于描述根据一个实施例的存储器块BLKz的结构的示图。

参考图4,存储器块BLKz可以包括多个串。多个串可以具有相同的配置;因此,将以连接到第一位线BL1的串ST为例进行描述。

串ST的任一端可以被连接到第一位线BL1,第一位线BL1是多个位线BL1至BLm中的一个位线。串ST的另一端可以被连接到源极线SL。此处,一个源极线SL可以被共同连接到多个串。每个位线可以被连接到一个串。

串ST可以包括在源极线SL和第一位线BL1之间彼此串联连接的源极选择晶体管SST、多个存储器单元MC1至MC16和漏极选择晶体管DST。在一个实施例中,在串ST中可以包括至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST,并且在串ST中包括的存储器单元的数目可以大于如图所示的存储器单元MC1至MC16的数目。

源极选择晶体管SST的栅极可以被连接到源极选择线SSL。漏极选择晶体管DST的栅极可以被连接到漏极选择线DSL。源极选择晶体管SST的源极可以被连接到源极线SL,并且漏极选择晶体管DST的漏极可以被连接到第一位线BL1。

多个存储器单元MC1至MC16的栅极可以被分别连接到多个字线WL1至WL16。多个存储器单元MC1至MC16可以被串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。

存储器块BLKz可以包括多个页。每个页PG可以被定义为共同连接到同一字线的存储器单元组。此处,页PG可以是与执行编程操作或读取操作的基础相对应的存储器单元组。存储器块BLKz可以是与执行擦除操作的基础相对应的存储器单元组。

页PG可以存储至少一个页数据段。页数据段的数目可以根据要被存储在存储器单元中的数据的位数来确定。例如,在其中一位数据被存储在一个存储器单元中的SLC的情况下,一个页数据段可以被存储在一个页PG中。在其中两位数据被存储在一个存储器单元中的MLC的情况下,两个页数据段可以被存储在一个页PG中。在其中三位数据被存储在一个存储器单元中的TLC的情况下,三个页数据段可以被存储在一个页PG中。

图5A是用于描述根据一个实施例的存储器单元的阈值电压的分布的示图。

参考图5A,在被选择的页中包括的多个存储器单元可以形成阈值电压分布510,其中编程状态可以通过读取电压R1至R7来区分。根据其阈值电压,多个存储器单元中的每个存储器单元可以具有多个编程状态P0至P7中的一个编程状态。图5A中所示的多个编程状态P0到P7表示TLC的示例。如果数据存储方案被改变为SLC或MLC存储方案,则编程状态可以变化。

根据将读取电压施加到被选择的页的结果,存储器设备100可以确定在页中包括的每个存储器单元的编程状态。此处,在TLC的情况下,存储器设备100可以使用七个读取电压来将存储器单元的编程状态确定为八个编程状态中的一个编程状态。在MLC的情况下,存储器设备100可以使用三个读取电压来将编程状态确定为四个编程状态中的一个编程状态。例如,如图5A所示,在数据存储方案是TLC存储方案的情况下,多个编程状态P0到P7可以包括第零编程状态P0到第七编程状态P7。此处,第零编程状态P0可以是擦除状态。

详细地,存储器设备100可以将第一读取电压R1施加到被选择的页并且将通过电压施加到未被选择的页。此处,可以在具有比第一读取电压R1的电平小的阈值电压的存储器单元中形成电流能够流过的通道。此处,具有比第一读取电压R1的电平小的阈值电压的存储器单元可以作为电流可以流过的导通单元(ON cell)进行操作。另一方面,在具有等于或大于第一读取电压R1的电平的阈值电压的存储器单元中可以不形成通道。此处,具有等于或大于第一读取电压R1的电平的阈值电压的存储器单元可以作为电流不流过的关断单元(OFF cell)进行操作。在这种情况下,存储器设备100可以确定作为导通单元的存储器单元的编程状态是第零编程状态P0。

存储器设备100可以将第二读取电压R2施加到被选择的页并且将通过电压施加到未被选择的页。存储器设备100可以确定除了具有第零编程状态P0的存储器单元之外的存储器单元之中的作为导通单元的存储器单元的编程状态是第一编程状态P1。

存储器设备100可以将第三读取电压R3施加到被选择的页并且将通过电压施加到未被选择的页。此处,存储器设备100可以确定除了具有第零编程状态P0或第一编程状态P1的存储器单元之外的存储器单元之中的作为导通单元的存储器单元的编程状态是第二编程状态P2。以与前述类似的方式,第四读取电压R4至第七读取电压R7可以被连续施加,使得存储器单元的编程状态可以被确定。

图5B是用于描述根据一个实施例的格雷码的示图。

参考图5B,表520可以示出根据编程状态P0到P7、读取电压R1到R7、数据类型MSB到LSB以及格雷码的值之间的关系。在一个实施例中,根据数据存储方案的位值中的一个位值可以被分配给多个编程状态P0至P7中的每个编程状态。图5B中所示的多个编程状态P0至P7图示了TLC的情况的示例。如果数据存储方案被改变为SLC或MLC存储方案,则分配给每个编程状态的值可以被改变。

在一个实施例中,如图5B所示,在TLC的情况下,由三个位二进制化的值可以根据格雷码“7310-2645”而被分配给多个编程状态P0至P7中的每个编程状态。例如,值“111”可以被分配给第零编程状态P0。值“011”可以被分配给第一编程状态P1。值“001”可以被分配给第二编程状态P2。值“000”可以被分配给第三编程状态P3。值“010”可以被分配给第四编程状态P4。值“110”可以被分配给第五编程状态P5。值“100”可以被分配给第六编程状态P6。值“101”可以被分配给第七编程状态P7。

在TLC的情况下,一个存储器单元可以存储三个位。此处,三个位可以包括MSB、CSB和LSB。如果以存储器单元为基础扩展为以页为基础,则一个页可以存储三个页数据段,诸如LSB页数据、CSB页数据和MSB页数据。

此处,可以预设对应于数据类型的读取电压集。读取电压集可以包括至少一个读取电压。例如,为读取MSB页数据而提供的第一读取电压集可以包括第一读取电压R1和第五读取电压R5。为读取CSB页数据而提供的第二读取电压集可以包括第二读取电压R2、第四读取电压R4和第六读取电压R6。为读取LSB页数据而提供的第三读取电压集可以包括第三读取电压R3和第七读取电压R7。

在读取CSB页数据的操作的情况下,存储器设备100可以将第二读取电压R2施加到被选择的页并且将通过电压施加到未被选择的页。此处,存储器设备100可以确定在被选择的页中包括的存储器单元之中作为导通单元的存储器单元中存储的每个CSB的值是“1”。此处,作为导通单元的存储器单元可以具有第零编程状态P0或第一编程状态P1。

存储器设备100可以将第四读取电压R4施加到被选择的页并且将通过电压施加到未被选择的页。此处,存储器设备100可以确定在被选择的页中包括的未确定的存储器单元之中作为导通单元的存储器单元中存储的每个CSB的值是“0”。此处,作为导通单元的存储器单元可以具有第二编程状态P2或第三编程状态P3。

存储器设备100可以将第六读取电压R6施加到被选择的页并且将通过电压施加到未被选择的页。此处,存储器设备100可以确定在被选择的页中包括的未确定的存储器单元之中作为导通单元的存储器单元中存储的每个CSB的值是“1”。此处,作为导通单元的存储器单元可以具有第四编程状态P4或第五编程状态P5。此外,存储器设备100可以确定在被选择的页中包括的未确定的存储器单元之中作为关断单元的存储器单元中存储的每个CSB的值是“0”。此处,作为关断单元的存储器单元可以具有第六编程状态P6或第七编程状态P7。

图5C是用于描述根据一个实施例的失效位的示图。

参考图5C,存储器单元的阈值电压可能由于干扰、保持或擦写循环计数的增加而变化。例如,如图5C的阈值电压分布改变530所示,将假设在被选择的页中包括的存储器单元之中的第N存储器单元从第一阈值电压分布531d改变为第二阈值电压分布531s。

在一个实施例中,在被选择的页中包括的第N存储器单元可以被编程为具有第一阈值电压分布531d。在这种情况下,如果具有默认电平Rd的读取电压被施加到被选择的页,则第N存储器单元可以不被确定为导通单元,因为第N存储器单元的阈值电压的电平大于读取电压的默认电平Rd。此处,默认电平Rd可以是预设电平。

此后,第N存储器单元可能被改变为第二阈值电压分布531s。在这种情况下,具有默认电平Rd的读取电压被施加到被选择的页,在被选择的页中包括的第N存储器单元中的一些存储器单元531f可以被确定为导通单元,因为存储器单元531f的阈值电压的电平小于读取电压的默认电平Rd。此处,一些存储器单元531f可以指代其中编程状态已改变的失效位。

错误校正电路250或控制逻辑130可以通过对其编程状态已改变的存储器单元的数目进行计数来确定失效位数。例如,在TLC的情况下,在一个页中包括的8000个存储器单元中的每个存储器单元可以被编程为具有第零编程状态P0到第七编程状态P7中的一个编程状态。此处,存储器单元可以被编程为使得1000个存储器单元属于第零编程状态P0到第七编程状态P7中的每个编程状态。在这种情况下,通过施加第二读取电压R2确定为导通单元的存储器单元的数目可以是2000个。此后,假设存储器单元的阈值电压被改变,并且通过施加第二读取电压R2而被确定为导通单元的存储器单元的数目是2200,那么与第二读取电压R2有关的失效位数可以是200,因为存储器单元的数目已从2000变为2200。此处,失效位数可以被存储在存储器设备100的CAM块或存储器控制器200的存储器230中。

在施加读取电压以读取特定类型的数据(诸如CSB页数据)的次数与施加读取电压以读取其他类型的数据(诸如MSB页数据或LSB页数据)的次数之间存在差的情况下,失效位出现的程度可能会改变。

在本公开中,基于包括电压变化等的读取电压表等,读取电压的电平可以从默认电平Rd调整为移位电平Rs,使得即使存储器单元的阈值电压发生变化,失效位的数目也可以减少。

图6A和图6B是用于描述根据一个实施例的第一读取电压表的示图。

参考图6A和图6B,电压寄存器243可以存储第一读取电压表610、620。第一读取电压表610、620可以是指示擦写循环计数、参考失效位数和电压变化之间的映射关系的表。此处,映射关系可以指代诸如同一行或同一列的关系。

详细地,第一读取电压表610、620可以包括与擦写循环计数相对应的第一字段值611、映射到第一字段值611并且与参考失效位数相对应的第二字段值613以及映射到第二字段值613的多个电压变化615。

参考图6B,假设数据存储方案是TLC存储方案,与用于读取CSB页数据的第二读取电压有关的失效位数为2000,与第四读取电压有关的失效位数为3400,与第六读取电压有关的失效位数为2500,并且被选择的页的擦写循环计数为80。

在该情况下,读取电压控制器245可以在第一字段值之中选择作为在其与擦写循环计数“80”之间具有最小的差的第一字段值621的“100”。

读取电压控制器245确定参考失效位数是“3400”,它是第二读取电压的失效位数、第四读取电压的失效位数和第六读电压的失效位数中的最大失效位数。在这种情况下,读取电压控制器245可以在与被选择的第一字段值621“100”设置在相同列上的第二字段值之中选择作为在其与参考失效位数“3400”之间具有最小的差的第二字段值624的“3500”。

在这种情况下,读取电压控制器245可以选择与被选择的第二字段值624“3500”设置在相同行上的电压变化625“-240”作为参考电压变化。在一个实施例中,读取电压的电平可以使用参考电压变化作为最终电压变化来调整。在该情况下,读取电压控制器245可以将多个读取电压中的每个读取电压的电平调整为通过将“-240”的参考电压变化乘以比值中的对应的一个比值而获得的值。在一个实施例中,最终电压变化可以使用参考电压变化和第二读取电压表或第三读取电压表来确定。

图6C是用于描述根据一个实施例的第二读取电压表的示图。

参考图6C,电压寄存器243可以存储第二读取电压表630。第二读取电压表630可以是指示数据类型、参考电压变化和第二电压变化之间的映射关系的表。例如,第二读取电压表630可以包括与数据类型相对应的第三字段值631、与参考电压变化相对应的第四字段值633以及映射到第三字段值631和第四字段值633的第二电压变化635。

例如,假设数据存储方案是TLC存储方案,CSB页数据被读取,并且参考电压变化基于第一读取电压表而被确定为“-240”。

在这种情况下,读取电压控制器245可以在第二读取电压表630中包括的第三字段值631之中选择作为与数据类型“CSB”相对应的第三字段值632的“CSB”。读取电压控制器245可以在第二读取电压表630中包括的第四字段值633之中选择作为与参考电压变化“-240”相对应的第四字段值634的“-240”。

在这种情况下,读取电压控制器245可以在第二读取电压表630中包括的第二电压变化635之中选择作为映射到被选择的第三字段值632“CSB”和被选择的第四字段值634“-240”的第二电压变化636的“-120”作为最终电压变化。

在这种情况下,读取电压控制器245可以将多个读取电压中的每个读取电压的电平调整为通过将作为最终电压变化的第二电压变化636“-120”乘以比值中的对应的一个比值而获得的值。

图6D是用于描述根据一个实施例的第三读取电压表的示图。

参考图6D,电压寄存器243可以存储第三读取电压表640。第三读取电压表640可以是指示擦写循环计数、参考电压变化和第三电压变化之间的映射关系的表。例如,第三读取电压表640可以包括与擦写循环计数相对应的第五字段值641、与参考电压变化相对应的第六字段值643以及映射到第五字段值641和第六字段值643的第三电压变化645。

例如,假设数据存储方案是TLC存储方案,CSB页数据被读取,对被选择的页的擦写循环计数为800,并且基于第一读取电压表,参考电压变化被确定为“-240”。

在这种情况下,读取电压控制器245可以在第三读取电压表640中包括的第五字段值641之中选择作为在其与擦写循环计数‘800’之间具有最小的差的第五字段值642的“1000”。读取电压控制器245可以在第三读取电压表640中包括的第六字段值643之中选择作为与参考电压变化“-240”相对应的第六字段值644的“-240”。

在这种情况下,读取电压控制器245可以在第三读取电压表640中包括的第三电压变化645之中选择作为映射到被选择的第五字段值642“1000”和被选择的第六字段值644“-240”的第三电压变化646的“-120”作为最终电压变化。

在这种情况下,读取电压控制器245可以将多个读取电压中的每个读取电压的电平调整为通过将作为最终电压变化的第三电压变化646“-120”乘以比值中的对应的一个比值而获得的值。

在一个实施例中,映射到在第三读取电压表640中包括的第五字段值641之中的指示第一擦写循环计数的第五字段值的第三电压变化之间的差可以大于映射到指示第二擦写循环计数的第五字段值的第三电压变化之间的差,第二擦写循环计数大于第一擦写循环计数。例如,映射到其中擦写循环计数为“1000”的列的电压变化之间的差可以是20。映射到其中擦写循环计数为比“1000”大的“3000”的列的电压变化之间的差可以是10。

图7A是用于描述根据一个实施例的读取重试操作的读取电压的示图。

参考图7A,存储器控制器200或存储器设备100可以存储用于执行根据读取重试方案的读取操作的读取重试表710。例如,读取重试表710可以被存储在存储器控制器200的电压寄存器243或存储器设备100的CAM块中。

读取重试表710可以包括多个索引RR1至RR3。多个索引RR1至RR3可以指示根据读取重试方案的读取操作的序列。读取重试表710可以包括默认电平信息R1_1至R7_3。默认电平信息R1_1至R7_3可以指示映射到第N索引的第M读取电压的默认电平。默认电平可以是预设值。

例如,在存储器设备100执行根据读取重试方案的第一读取操作的情况下,存储器设备100可以将多个读取电压R1至R7调整为映射到第一索引RR1的默认电平711并执行第一读取操作。此后,在第一读取操作失败并且存储器设备100执行根据读取重试方案的第二读取操作的情况下,存储器设备100可以将多个读取电压R1至R7调整为映射到第二索引RR2的默认电平712并执行第二读取操作。如此,每当读取操作失败时,存储器设备100可以在存储器控制器200的控制下根据索引序列将读取电压调整为映射到对应索引的默认电平,然后执行读取操作。

在本公开中,在通过读取重试方案执行读取操作的情况下,即使在相同索引下也可以将可变电平而不是固定电平施加到读取电压。这将参考图7B和图7C进行描述。

图7B和图7C是用于描述根据一个实施例的调整读取重试操作的读取电压的方法的示图。

参考图7B和图7C,存储器控制器200可以存储用于执行根据读取重试方案的读取操作的读取重试表720。例如,读取重试表720可以被存储在存储器控制器200的电压寄存器243或存储器设备100的CAM块中。

读取重试表720可以包括多个索引RR1至RR3。读取重试表710可以包括默认电平信息R1_1到R7_3和读取电压信息Vt1到Vt7。此处,读取电压信息Vt1至Vt7可以指示用于调整映射到第N索引的第M读取电压的默认电平的电平。读取电压信息Vt1至Vt7可以使用前述读取电压表来确定。

例如,假设数据存储方案是TLC存储方案,并且根据读取重试方案的读取CSB页数据的读取操作被执行。假设第二读取电压R2的第二失效位数FBIT_2是“2000”,第四读取电压R4的第四失效位数FBIT_4是“3400”,第六读取电压R6的第六失效位数FBIT_6是“2500”,并且参考电压变化Va基于第一读取电压表而被确定为“-240”。此处,作为第二失效位数FBIT_2、第四失效位数FBIT_4和第六失效位数FBIT_6之中的最大值的“3400”被确定为参考失效位数。此处,如图7B所示,在读取重试表720中,映射到第二读取电压R2、第四读取电压R4和第六读取电压R6的行的数据721、722和723可以被用于读取CSB页数据。

在这种情况下,第二读取电压信息Vt2可以包括通过将第二失效位数FBIT_2“2000”与参考失效位数“3400”的比值乘以参考电压变化Va“-240”而获得的电平。第四读取电压信息Vt4可以包括通过将第四失效位数FBIT_4“3400”与参考失效位数“3400”的比值乘以参考电压变化Va“-240”而获得的电平。第六读取电压信息Vt6可以包括通过将第六失效位数FBIT_6“2500”与参考失效位数“3400”的比值乘以参考电压变化Va“-240”而获得的电平。

例如,在第一索引RR1中的第四读取电压R4的情况下,如果第四读取电压R4的默认电平信息指示2V并且第四读取电压信息Vt4指示-240mV,则存储器设备100可以在存储器控制器200的控制下使用被调整为1.76V的电平的第四读取电压R4来执行读取操作。第二读取电压R2和第六读取电压R6中的每一者的电平也可以以与如前所述相同的方式被调整,读取操作然后可以被执行。

图8是用于描述根据一个实施例的操作存储器控制器200的方法的示图。

参考图8,操作存储器控制器200的方法可以包括:步骤S810,基于具有不同电平的多个读取电压,控制存储器设备100执行正常读取操作;步骤S820,确定与相应读取电压相对应的失效位数;步骤S830,基于参考失效位数和存储器设备的擦写循环计数,从读取电压表中包括的多个电压变化之中确定参考电压变化,参考失效位数指代失效位数中的最大失效位数;以及步骤S840,使用失效位数中的对应的一个失效位数与参考失效位数的比值以及参考电压变化来调整多个读取电压中的每个读取电压的电平。

详细地,操作存储器控制器200的方法可以包括控制存储器设备100基于具有不同电平的多个读取电压来执行正常读取操作(在步骤S810处)。

在一个实施例中,多个读取电压可以是用于读取相同类型的数据的电压。

与相应读取电压相对应的失效位数可以被确定(在步骤S820处)。

可以基于参考失效位数和存储器设备100的擦写循环计数,从读取电压表中包括的多个电压变化之中确定参考电压变化(在步骤S830处)。此处,参考失效位数可以指代失效位数中的最大失效位数。

在一个实施例中,确定参考电压变化的步骤可以包括:将在读取电压表中包括的多个电压变化之中的与通过多个读取电压读取的数据类型、参考失效位数和擦写循环计数匹配的电压变化设置为参考电压变化。

多个读取电压中的每个读取电压的电平可以使用失效位数中的对应的一个失效位数与参考失效位数的比值以及参考电压变化来调整(在步骤S840处)。

在一个实施例中,操作存储器控制器200的方法还可以包括以下步骤:基于失效位数确定正常读取操作是否已失败,并且如果正常读取操作已失败,则控制存储器设备100通过具有相应调整电平的多个读取电压来读取数据。

在一个实施例中,基于失效位数确定正常读取操作是否已失败的步骤可以包括以下步骤:如果通过失效位数的总和获得的总位数超过预设阈值,则确定正常读取操作已失败,并且如果总位数是阈值或更小,则确定正常读取操作已成功。

图9是图示了向其应用根据一个实施例的存储器系统的存储器卡2000的框图。

参考图9,存储器卡2000可以包括存储器设备2100、存储器控制器2200和连接器2300。

存储器设备2100可以执行存储数据的编程操作、读取数据的读取操作和擦除数据的擦除操作。在一个实施例中,存储器设备2100可以由使用例如以下项的各种非易失性存储器设备形成:电可擦除可编程ROM(EEPROM)、NAND闪存存储器、NOR闪存存储器、相变RAM(PRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)和/或自旋转移扭矩磁RAM(STT-MRAM)。参考图1解释的存储器设备100的描述等可以等同地应用于存储器设备2100,并且在下文中将省略冗余的描述。

存储器控制器2200可以控制存储器设备2100。例如,存储器控制器2200可以执行用于控制存储器设备2100的指令。存储器控制器2200可以控制存储器设备2100执行编程操作、读取操作或擦除操作。存储器控制器2200可以通过它们之间的通信将数据、命令等传输到存储器设备2100或主机20。在一个实施例中,存储器控制器2200可以包括诸如随机存取存储器(RAM)部件、处理单元、主机接口、存储器接口和错误校正电路的部件。参考图1解释的存储器控制器200的描述等可以等同地应用于存储器控制器2200,并且在下文中将省略冗余的描述。

存储器控制器2200可以通过连接器2300与外部设备通信。存储器控制器2200可以基于特定通信协议与外部设备(例如,主机)通信。在一个实施例中,存储器控制器2200可以通过各种通信协议中的至少一种通信协议与外部设备通信,各种通信协议诸如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI-快速(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动电子器件(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和非易失性存储器快速(NVMe)协议。在一个实施例中,连接器2300可以由上述各种通信协议中的至少一种通信协议来定义。存储器设备2100和存储器控制器2200可以被集成到单个半导体设备中以形成存储器卡。例如,存储器设备2100和存储器控制器2200可以被集成到单个半导体设备中以形成诸如以下的存储器卡:个人计算机存储器卡国际协会(PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(SM或SMC)、存储器棒、多媒体卡(MMC、RS-MMC或MMCmicro)、SD卡(SD、miniSD、microSD或SDHC)或通用闪存(UFS)。

图10是图示了向其应用根据一个实施例的存储器系统的固态驱动(SSD)系统3000的框图。

参考图10,SSD系统3000可以包括多个非易失性存储器设备3100_1至3100_n、SSD控制器3200、信号连接器3010、辅助电源3030和缓冲存储器3040。

SSD系统3000可以通过信号连接器3010执行与主机3300的通信。信号连接器3010可以根据各种通信方案以接口的形式实现。例如,根据各种通信方案,信号连接器3010可以是诸如串行ATA(SATA)接口、mini-SATA(mSATA)接口、PCIe(PCI快速)接口和M.2接口的接口之一。

多个第一非易失性存储器设备3100_1可以通过第一通道CH1连接到SSD控制器3200。多个第二非易失性存储器设备3100_2可以通过第二通道CH2连接到SSD控制器3200。多个第n非易失性存储器设备3100_n可以通过第n通道CHn连接到SSD控制器3200。因此,SSD控制器3200可以通过彼此独立的通道与非易失性存储器设备并行地执行通信。

参考图1解释的存储器设备100的描述等可以等同地应用于多个非易失性存储器设备3100_1至3100_n中的每个非易失性存储器设备,并且在下文中将省略冗余的描述。参考图1解释的存储器控制器200的描述等可以等同地应用于SSD控制器3200,并且在下文中省略冗余的描述。

SSD系统3000可以通过功率连接器3020从主机3300提供外部功率。辅助电源3030可以通过功率连接器3020与主机3300连接。辅助电源3030可以由来自主机3300的功率供电,并且可以由功率充电。当来自主机3300的功率供应没有顺利执行时,辅助电源3030可以提供SSD系统3000的功率。例如,辅助电源3030可以位于SSD系统3000内部或位于SSD系统3000外部。例如,辅助电源3030可以被设置在主板上,并且可以向SSD系统3000提供辅助功率。

缓冲存储器3040可以作为SSD 3000的缓冲存储器操作。例如,缓冲存储器3040可以临时存储从主机3300接收的数据或从多个非易失性存储器设备3100_1至3100_n接收的数据,或者可以临时存储非易失性存储器设备3100_1至3100_n的元数据(例如,映射表)。缓冲存储器3040可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和/或GDRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和/或PRAM的非易失性存储器。

图11是图示了向其应用根据一个实施例的存储器系统的用户系统4000的框图。

参考图11,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。

应用处理器4100可以运行在用户系统4000中包括的部件、操作系统(OS)或用户程序。在一个实施例中,应用处理器4100可以包括用于控制在用户系统4000中包括的部件的控制器、接口、图形引擎等。应用处理器4100可以被提供为片上系统(SoC)。

存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括易失性RAM(诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3 SDRAM、LPDDR SDARM、LPDDR2 SDRAM和/或LPDDR3SDRAM)或非易失性RAM(诸如PRAM、ReRAM、MRAM和/或FRAM)。在一个实施例中,应用处理器4100和存储器模块4200可以基于叠层封装(POP)被封装,并且然后可以被提供为单个半导体封装件。

网络模块4300可以与外部设备通信。例如,网络模块4300可以支持无线通信,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi通信。在一个实施例中,网络模块4300可以被包括在应用处理器4100中。

存储模块4400可以在其中存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。备选地,存储模块4400可以将在存储模块4400中存储的数据传输到应用处理器4100。在一个实施例中,存储模块4400可以使用例如相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(ReRAM)、NAND闪存存储器、NOR闪存存储器或具有三维(3D)结构的NAND闪存存储器而被实现为非易失性半导体存储器设备。在一个实施例中,存储模块4400可以被提供为可移动存储介质(即,可移动驱动装置),诸如存储器卡或用户系统4000的外部驱动装置。

在一个实施例中,参考图1解释的存储器系统10的描述等可以等同地应用于存储模块4400。例如,存储模块4400可以包括多个非易失性存储器设备。此处,参考图1解释的存储器设备100的描述可以等同地应用于多个非易失性存储器设备中的每个非易失性存储器设备。

用户接口4500可以包括用于将数据或指令输入到应用处理器4100或者将数据输出到外部设备的接口。在一个实施例中,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电设备。用户接口4500还可以包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示设备、有源矩阵OLED(AMOLED)显示设备、LED、扬声器、监视器等。

本公开的各种实施例可以提供能够正确读取在存储器设备中存储的数据的存储器控制器、包括存储器控制器的存储器系统以及操作存储器系统的方法。

在本公开中,可以通过根据擦写循环计数调整(或改变)读取电压来正确地读取数据。在本公开中,可以通过根据失效位数调整(或改变)读取电压来正确地读取数据。在本公开中,可以通过根据数据的类型调整(或改变)读取电压来正确地读取数据。

在本公开中,经优化的读取电压可以被快速确定,并且设备的寿命可以提高。此外,可以减少执行读取重试操作的次数,并且可以减少读取正确数据所花费的时间。

实施例的示例已在本文中公开,并且尽管使用了特定术语,但它们仅以一般和描述性意义被使用和进行解释,并且不用于限制的目的。在一些情况下,如在提交本申请时本领域普通技术人员将显而易见的,除非另有特别说明,否则结合特定实施例描述的特征、特性和/或元件可以单独使用或与结合其他实施例描述的特征、特性和/或元件组合使用。因此,本领域的技术人员将理解,在不脱离所附权利要求中阐述的本公开的精神和范围的情况下,可以对形式和细节进行各种改变。

技术分类

06120115936674