存储设备及其操作方法与流程

文档序号:20877738发布日期:2020-05-26 16:49阅读:359来源:国知局
存储设备及其操作方法与流程

相关申请的交叉引用

本申请要求在韩国知识产权局中于2018年11月19日提交的韩国专利申请号10-2018-0142510的优先权,所述申请的公开内容通过引用以其全部内容并入本文。

本公开涉及一种存储设备,并且更具体地涉及一种用于改变读取电压的存储设备及其操作方法。



背景技术:

通过使用诸如硅(si)、锗(ge)、砷化镓(gaas)或磷化铟(inp)的半导体来实现半导体存储器设备。半导体存储器设备可以分类成易失性存储器设备和非易失性存储器设备。

另一方面,当要求半导体存储器设备具有高容量时,为了提高集成度,使用增加由单元存储的位数的多均衡方法以及减小电路线宽的缩放方法。随着由单元存储的位数的增加,阈值电压分布的重叠增加并且电路线宽减小。因此,相邻存储器单元之间的距离减小并且产生耦合。因此,可能会要求基于理想读取电压来正确读取数据。



技术实现要素:

本公开提供了一种用于通过在片上谷搜索(on-chipvalleysearch,ovs)读取操作期间使用状态位来估计阈值电压的分布移动的非易失性存储器设备及其操作方法。

本公开还提供了一种非易失性存储器设备及其操作方法,所述非易失性存储器设备用于尽管成功执行了纠错码(ecc)解码,还是基于所述阈值电压的分布移动来改变读取电压,所述阈值电压的分布移动通过使用所述状态位来估计。

根据本公开的一个方面,提供了一种存储设备,所述存储设备包括存储器控制器和非易失性存储器设备。所述非易失性存储器设备包括:存储器单元阵列,所述存储器单元阵列包括多个存储器单元;页面缓冲器,所述页面缓冲器包括多个锁存器,以用于对从所述多个存储器单元中选择的存储器单元执行多个感测操作,并且存储所述多个感测操作的结果值;控制逻辑,所述控制逻辑用于比较存储在所述多个锁存器中的每一个中的数据,根据所述数据的所述比较的结果来从所述多个锁存器中选择一个锁存器,将存储在所述选择的锁存器中的读取数据发送到所述存储器控制器,并且产生表示从所述多个锁存器中所选择的锁存器的状态位;以及状态位寄存器,所述状态位寄存器用于存储所述产生的状态位并且在从所述存储器控制器接收到状态读取命令时将所述状态位发送到所述存储器控制器。存储器控制器对发送的读取数据执行纠错码(ecc)解码,并且当成功执行ecc解码时,确定是否基于状态位来改变读取电压。

根据本公开的另一方面,提供了一种存储器控制器,所述存储器控制器包括ecc模块,以用于基于从执行ovs读取操作的非易失性存储器设备接收的读取数据来执行ecc解码;以及读取电压修改模块,所述读取电压修改模块用于接收表示包括在所述非易失性存储器设备中的多个锁存器中的锁存所述读取数据的锁存器的状态位,并且在成功执行所述ecc解码时基于所述状态位来确定是否改变读取电压,所述多个锁存器存储所述ovs读取操作的结果值。

根据本公开的另一方面,提供了一种操作存储器控制器的方法,所述方法包括从用于执行片上谷搜索ovs读取操作的非易失性存储器设备接收读取数据和表示多个锁存器中的输出所述读取数据的锁存器的状态位,基于所述读取数据执行ecc解码,并且当成功执行ecc解码时基于所述状态位来确定是否改变读取电压。

附图说明

通过以下结合附图的详细描述,将更清楚地理解本公开的实施例,其中:

图1是展示了根据本公开的示例性实施例的存储设备的框图;

图2是展示了根据本公开的示例性实施例的非易失性存储器设备的框图;

图3是展示了根据本公开的示例性实施例的在执行片上谷搜索(ovs)读取操作时感测节点的电平变化的波形图;

图4是展示了根据本公开的示例性实施例的存储器单元阵列中包括的存储块的电路图;

图5是展示了根据本公开的示例性实施例的存储器单元阵列中包括的存储块的另一实例的电路图;

图6是展示了存储块blk0的透视图;

图7是展示了根据本公开的示例性实施例的操作存储设备的方法的流程图;

图8是根据本公开的示例性实施例的存储器控制器与非易失性存储器设备之间的信号交换图;

图9是展示了根据本公开的示例性实施例的状态位的表格;

图10是展示了根据本公开的示例性实施例的操作执行第一操作模式的存储设备的方法的流程图;

图11是展示了根据本公开的示例性实施例的操作执行第二操作模式的存储设备的方法的流程图;

图12是展示了根据本公开的示例性实施例的状态位的表格;以及

图13是展示了根据本公开的示例性实施例的基于改变的状态位来操作执行第二操作模式的存储设备的方法的流程图。

具体实施方式

图1是展示了根据本公开的示例性实施例的非易失性存储器系统的框图。

参考图1,存储设备1可以包括存储器控制器20和非易失性存储器设备10。在一个实例中,主机host、存储器控制器20和非易失性存储器设备10可以分别被提供为芯片、封装和模块。

存储器控制器20可以响应于从主机host接收的写请求或读请求来控制非易失性存储器设备10。例如,存储器控制器20可以响应于从主机host接收的写请求或读请求来将命令cmd和地址addr发送到非易失性存储器设备10。通过存储器控制器20发送到非易失性存储器设备10的地址addr可以是非易失性存储器设备10的物理地址。存储器控制器20可以将数据data发送到非易失性存储器设备10并且从非易失性存储器设备接收数据data。在一个实例中,当命令cmd是写命令cmd_70时,非易失性存储器设备10可以将从存储器控制器20接收的数据data写入存储器单元阵列110中,并且当命令cmd是读命令cmd_r时,非易失性存储器设备10可以将存储在从存储器控制器20接收的地址addr中的数据data输出到存储器控制器20。

根据本公开的实施例的非易失性存储器设备10可以包括存储器单元阵列110、页面缓冲器120、片上谷搜索(ovs)模块130以及状态位寄存器140。

存储器单元阵列110可以包括多个存储器单元。例如,多个存储器单元可以是闪存存储器单元。在下文中,将以其中多个存储器单元是nand闪存存储器单元的情况作为实例的情况来详细描述各实施例。然而,本公开不限于此。在另一实施例中,多个存储器单元可以是电阻性存储器单元,诸如电阻性随机存取存储器(rram)、相变ram(pram)或者磁性ram(mram)。

在根据本公开的实施例中,包括在存储器单元阵列110中的每个存储器单元可以存储不少于2位的数据。例如,存储器单元可以是存储2位数据的多级单元(mlc)。在另一实例中,存储器单元可以是存储3位数据的三级单元(tlc)或者存储4位数据的四级单元(qlc)。然而,本公开不限于此。在另一实施例中,包括在存储器单元阵列110中的部分存储器单元是存储1位数据的单级单元(slc),并且除了部分存储器单元之外的剩余存储器单元可以是mlc。

页面缓冲器120可以包括写入驱动器和读出放大器。在写入操作期间,页面缓冲器120可以发送对应于将要写入存储器单元阵列110的位线中的数据的位线电压。在读取操作或验证操作期间,页面缓冲器120可以通过位线感测存储在所选择的存储器单元中的数据。页面缓冲器120可以包括连接到至少一个位线的多个锁存器。

ovs模块130可以执行多个感测操作,所述感测操作被执行以便确定存储在存储器单元中的某一状态。ovs模块130可以将由多个感测操作感测的结果值存储在页面缓冲器120中包括的多个锁存器中。如稍后在图3中所描述的,ovs模块130可以通过比较由多个感测操作感测的结果值来输出由存储在多个锁存器中的数据项中的分布谷电压感测和锁存的数据作为读取数据。

状态位寄存器140可以存储状态位。状态位可以表示非易失性存储器设备10的状态。根据各种实施例,状态位可以由控制逻辑100生成。例如,状态位可以由包括在控制逻辑100中的ovs模块130生成。在另一实例中,状态位可以由状态位寄存器140基于控制逻辑100的控制信号info_sel生成。状态位可以表示非易失性存储器设备10的“忙碌”或“就绪”状态。例如,当非易失性存储器设备10执行ovs读操作时,状态位可以表示“忙碌”。在另一实例中,在非易失性存储器设备10完成ovs读取操作之后,状态位可以表示“就绪”。“就绪”或“忙碌”状态可以对应于通过例如状态位中的引脚dq6发送的“1”或“0”位。在另一实施例中,状态位可以表示在多个锁存器中被选择输出读取数据的锁存器。也就是说,当非易失性存储器设备10处于“就绪”状态时,状态位还可以包括指示完成的ovs读取操作的结果的位。指示所选择的锁存器的状态位可以包括通过例如引脚dq0至dq3发送的位。例如,当根据第一感测操作输出锁存到第一锁存器的数据作为读取数据时,状态位寄存器140可以存储表示第一锁存器的状态位“1010”。例如,当根据多个感测操作中的第二感测操作输出存储在第二锁存器中的数据作为读取数据时,状态位寄存器140可以存储表示第二锁存器的状态位“0000”。例如,当根据多个感测操作中的第三感测操作输出存储在第三锁存器中的数据作为读取数据时,状态位寄存器140可以存储指示第三锁存器的状态位“0101”。根据各种实施例,如稍后参考图7和图8所述,状态位寄存器140可以响应于从存储器控制器20接收的状态读取命令将状态位发送到存储器控制器20。

根据本公开的实施例的存储器控制器20可以包括纠错码(ecc)模块210和读取电压修改模块220。

ecc模块210可以对输入和输出数据执行ecc编码或解码。例如,ecc模块210从主机host接收写命令,并且可以对写数据执行ecc编码。例如,ecc模块210从非易失性存储器设备10接收读取数据,并且可以执行ecc解码。根据一个实施例,当ecc模块210未能解码读取数据时,ecc模块210可以请求非易失性存储器设备10执行读取重试。当ecc模块210成功解码读取数据时,ecc模块210可以将解码的读取数据输出到主机host。

读取电压修改模块220可以确定是否改变读取电压。根据一个实施例,读取电压修改模块220可以基于状态位确定是否改变读取电压。读取电压修改模块220可以确定被选择输出读取数据的锁存器,并且可以基于通过使用状态位所识别的锁存器来增加或减小读取电压。根据一个实施例,如稍后在图10和图11中所描述的,当读取电压修改模块220成功执行ecc解码时,可以确定将要修改读取电压。

图2是展示了根据本公开的示例性实施例的非易失性存储器设备的框图。省略了与已经参考图1给出的描述相同的描述。

参考图2,非易失性存储器设备10可以包括控制逻辑100、存储器单元阵列110、页面缓冲器120、电压发生器150、行解码器160、以及输入和输出电路170。

控制逻辑100可以包括ovs模块130和状态位寄存器140。控制逻辑100可以基于从存储器控制器20(图1)接收的命令cmd_70和cmd_r以及地址addr输出用于在存储器单元阵列110中写入数据或者从存储器单元阵列110读取数据的各种控制信号。

ovs模块130可以对存储器单元执行多个感测操作。ovs模块130可以分别将由多个感测操作感测的值存储在页面缓冲器120中包括的多个锁存器中。可以在不同的时间点执行多个感测操作。根据一个实施例,多个感测操作可以包括三个感测操作。例如,通过在第一时间点执行的第一感测操作获得的数据可以存储在多个锁存器中的第一锁存器中。例如,通过第二感测操作获得的数据可以存储在多个锁存器中的第二锁存器中,并且第二感测操作可以在晚于第一时间点的第二时间点处执行。例如,通过第三感测操作获得的数据可以存储在多个锁存器中的第三锁存器中,并且第三感测操作可以在晚于第二时间点的第三时间点处执行。

根据各种实施例,ovs模块130选择多个锁存器中的一个并且可以输出存储在所选择的锁存器中的数据作为读取数据。根据一个实施例,ovs模块130将存储在第一锁存器中的数据与存储在第二锁存器中的数据进行比较,并且可以将存储在第二锁存器中的数据与存储在第三锁存器中的数据进行比较。如稍后在图3中所描述的,ovs模块130可以基于比较根据理想读取电压来选择存储读取数据的锁存器。

页面缓冲器120可以包括多个锁存器。多个锁存器可以存储在不同时间点处执行的感测操作的结果。根据本公开的实施例,多个锁存器从ovs模块130接收控制信号info_sel,并且可以通过位线bl输出存储在由控制信号info_sel表示的锁存器中的数据作为读取数据。多个锁存器中的每一个可以根据控制逻辑100的控制在所感测的多个数据项中选择或输出理想数据。

电压发生器150可以基于电压控制信号ctrl_vol产生用于在存储器单元阵列110上执行写入、读取和擦除操作的各种电压。详细地,电压发生器150可以产生字线电压vwl,例如编程电压(或写入电压)、读取电压、通过电压(或字线非选择电压)、验证电压、或恢复电压。

行解码器160可以响应于行地址x-addr在字线wl中选择部分字线。行解码器160将字线电压vwl传输到字线wl。在编程操作期间,行解码器160可以将编程电压和验证电压施加到所选择的字线,并且可以将编程抑制电压施加到未选择的字线。在读取操作期间,行解码器160可以将读取电压施加到所选择的字线,并且可以将读取抑制电压施加到未选择的字线。在恢复操作期间,行解码器160可以将恢复电压施加到所选择的字线。另外,行解码器160可以响应于行地址x-addr在字串选择线中选择部分字串选择线,或者在接地选择线中选择部分接地选择线。

输入和输出电路170从外部(例如,图2的存储器控制器20)接收数据readdata(读取数据),并且将接收的数据存储在存储器单元阵列110中。另外,输入和输出电路170从存储器单元阵列110读取数据,并且可以将读取的数据输出到外部。

图3是展示了根据本公开的示例性实施例的在执行片上谷搜索(ovs)读取操作时感测节点的电平变化的波形图。

在图3中,描述了执行三个感测操作。然而,本公开不限于此。参考图3,从时间点t0到时间点t1的时间段可以称为预充电时间段precharge(预充电),从时间点t1到时间点t2的时间段可以称为发展时间段develop(发展),并且在时间点t2之后的时间段可以称为锁存时间段latch(锁存)。

在预充电时间段precharge中,可以以第一电压电平v1对位线电压vbl充电,并且可以通过感测节点电压vs0对感测节点充电。在发展时间段开始的时间点t1处,在感测节点中充电的电荷可以移动到位线。在阈值电压高于读取电压的强关闭单元中,感测节点的电平变化可能较小。在发展时间段develop中,强关闭单元的感测节点的电势变化被展示为虚线c0。

在阈值电压低于读取电压的强导通单元中,感测节点的电平变化可能较大。在发展时间段develop中,强导通单元的感测节点的电压电平的变化被展示为第一曲线c1。发展时间的较小变化可能不会显著影响强关闭单元或强导通单元。感测具有位于读取电压附近的阈值电压的存储器单元的感测节点的电势的变化被展示为第二至第四曲线c2、c3和c4。第二曲线c2展示了具有略低于读取电压的阈值电压的存储器单元的发展趋势。第三曲线c3展示了具有与读取电压的电平类似的电平的阈值电压的存储器单元的发展趋势。第四曲线c4可以展示具有略高于读取电压的阈值电压的存储器单元的发展趋势。

根据多个感测,可以提供第一锁存信号ltch_1,以用于通过基于时间点t2将锁存时间点提前预先确定的时间点来锁存存储器单元的感测节点。当感测节点通过第一锁存信号ltch_1锁存时,在强关闭单元c0和强导通单元c1中,锁存器可以由对应于关闭单元和导通单元的逻辑值设置。然而,对应于具有低阈值电压的第二曲线c2的存储器单元可以被锁存到对应于导通单元的逻辑值。另一方面,对应于第三曲线c3和和第四曲线c4的存储器单元可以被锁存到对应于关闭单元的逻辑值。

当感测节点通过第二锁存信号ltch_2(如在第一锁存信号ltch_1中)锁存在强关闭单元c0和强导通单元c1中时,可以锁存逻辑“0”和逻辑“1”。然而,具有对应于第二曲线c2的阈值电压的存储器单元可以通过对应于导通单元的逻辑值而锁存。另一方面,在对应于第三曲线c3的存储器单元中,具有不清楚逻辑“0”和逻辑“1”的俘获电平v2可以通过第二锁存信号ltch_2锁存。对应于第四曲线c4的存储器单元可以通过第二锁存信号ltch_2通过对应于关闭单元的逻辑值而锁存。

当感测节点通过第三锁存信号ltch_3(如在第一锁存信号ltch_1中)锁存在强关闭单元c0和强导通单元c1中时,可以锁存逻辑“0”和逻辑“1”。然而,具有对应于第二曲线c2和第三曲线c3的阈值电压的存储器单元可以锁存到对应于导通单元的逻辑值“1”。对应于第四曲线c4的存储器单元可以通过第三锁存信号ltch_3锁存到对应于关闭单元的逻辑值“0”。

与上述方法类似,通过在变化的发展时间点处将感测节点的状态锁存到逻辑值以便确定某个状态,可以获得根据发展时间点以不同的电平向字线施加读取电压的类似的效果。

图4是展示了根据本公开的示例性实施例的存储器单元阵列中包括的存储块的电路图。

参考图4,存储器单元阵列(例如,图2的110)可以是水平nand闪存的存储器单元阵列,并且可以包括多个存储块。每个存储块blka可以包括n(n是不小于2的整数)个单元字串str,其中存储器单元mc1至mcn、接地选择晶体管gst和字串选择晶体管sst在位线bl0至blm-1的方向上串联连接在位线bl0至blm-1与公共源极线csl之间。例如,在图4中,展示了其中每个单元字串str包括8个或更多个存储器单元的实例。可以通过字线wl1至wln控制存储器单元mc1至mcn,可以通过接地选择线gsl控制接地选择晶体管gst,并且可以通过字串选择线ssl选择字串选择晶体管sst。

在具有图4的结构的nand闪存存储器设备中,以块为单位执行擦除,并且以对应于字线wl1至wln的页面为单位执行编程。图4展示了在一个块中提供n个字线wl1至wln的n个页面的实例。另外,图1和图2的非易失性存储器设备10可以包括多个存储器单元阵列,这些存储器单元阵列执行与具有与上述存储器单元阵列110的结构相同结构的上述存储器单元阵列110相同的操作。

图5是展示了根据本公开的示例性实施例的存储器单元阵列中包括的存储块的另一实例的电路图。

参考图5,存储器单元阵列(例如,图2的110)可以是垂直nand闪存的存储器单元阵列,并且可以包括多个存储块。每个存储块blk0可以包括多个单元字串ns11至ns33、多个字线wl1至wl8、多个位线bl1至bl3、多个接地选择线gsl1至gsl3、多个单元字串选择线ssl1到ssl3、以及公共源极线csl。在此,根据一个实施例,nand单元字串的数量、字线的数量、位线的数量、接地选择线的数量以及单元字串选择线的数量可以变化。

nand单元字串ns11、ns21和ns31设置在第一位线bl1与公共源极线csl之间。nand单元字串ns12、ns22和ns32设置在第二位线bl2与公共源极线csl之间。nand单元字串ns13、ns23和ns33设置在第三位线bl3与公共源极线csl之间。每个nand单元字串(例如,ns11)可以包括串联连接的单元字串选择晶体管sst、多个存储单元mc1至mc8、以及接地选择晶体管gst。

共同连接到位线的nand单元字串配置一个列。例如,共同连接到第一位线bl1的nand单元字串ns11、ns21和ns31对应于第一列,共同连接到第二位线bl2的nand单元字串ns12、ns22和ns32对应于第二列,并且共同连接到第三位线bl3的nand单元字串ns13、ns23和ns33可以对应于第三列。

连接到单元字串选择线的单元字串配置一个行。例如,连接到第一单元字串选择线ssl1的nand单元字串ns11、ns12和ns13对应于第一行,连接到第二单元字串选择线ssl2的nand单元字串ns21、ns22和ns23对应于第二行,并且连接到第三单元字串选择线ssl3的nand单元字串ns31、ns32和ns33可以对应于第三行。

单元字串选择晶体管sst连接到对应的单元字串选择线ssl1至ssl3。多个存储器单元mc1至mc8分别连接到对应的字线wl1至wl8。接地选择晶体管gst连接到对应的接地选择线gsl1至gsl3。单元字串选择晶体管sst连接到对应的位线bl1到bl3,并且接地选择晶体管gst连接到公共源极线csl。

共同连接相同高度的字线(例如,wl1),单元字串选择线ssl1至ssl3彼此分离,并且接地选择线gsl1至gsl3彼此分离。例如,当连接到第一字线wl1并且属于单元字串ns11、ns12和ns13的存储器单元被编程时,选择第一字线wl1和第一单元字串选择线ssl1。接地选择线gsl1至gsl3可以共同彼此连接。

图6是展示了存储块blk0的透视图。

参考图6,包括在存储器单元阵列(例如,图2中的110)中的每个存储块相对于基板sub在竖直方向上形成。在图6中,展示了存储块包括两条选择线gsl和ssl、8条字线wl1至wl8、以及3条位线bl1至bl3。然而,存储块可以包括更多或更少的选择线、字线和位线。

基板sub具有第一导电类型(例如,p型)。在基板sub上设置沿第一方向(例如,y方向)延伸并且掺杂有第二导电类型的杂质(例如,n型)的公共源极线csl。在两个相邻的公共源极线csl之间的基板sub的区域上,沿第一方向延伸的多个绝缘层il沿第三方向(例如,z方向)顺序地设置,并且多个绝缘层il在第三方向上彼此间隔开一定距离。例如,多个绝缘层il可以包括诸如氧化硅的绝缘材料。

在两个相邻的公共源极线csl之间的基板sub的区域上,提供了沿第一方向顺序布置并且沿第三方向穿过多个绝缘层il的多个立柱p。例如,多个立柱p穿过多个绝缘层il并且接触基板sub。详细地,每个立柱p的表面层s可以包括具有第一类型的硅材料并且可以用作沟道区。另一方面,每个立柱p的内层i可以包括诸如氧化硅的绝缘材料或气隙。

在两个相邻的公共源极线csl之间的区域中,沿着绝缘层il、立柱p和基板sub的暴露表面设置电荷存储层cs。电荷存储层cs可以包括栅极绝缘层(或称为“隧道绝缘层”)、电荷俘获层和阻挡绝缘层。例如,电荷存储层cs可以具有氧化物-氮化物-氧化物(ono)结构。另外,在两个相邻的公共源极线csl之间的区域中,在电荷存储层cs的暴露表面上,设置诸如选择线gsl和ssl以及字线wl1至wl8的栅极电极ge。

漏极或漏极触点dr分别设置在多个立柱p上。例如,漏极或漏极触点dr可以包括掺杂有第二导电类型的杂质的硅材料。在漏极dr上,提供了沿第二方向(例如,x方向)延伸并且在第一方向上彼此间隔开一定距离的位线bl1至bl3。

图7是展示了根据本公开的示例性实施例的操作存储设备的方法的流程图。

参考图7,包括在存储设备1中的非易失性存储器设备10可以在操作s110中接收读取命令cmd_r。例如,存储器控制器20从连接到存储设备1的主机host接收读取请求,并且可以响应于接收到的读取请求将读取命令cmd_r发送到非易失性存储器设备10。

在操作s120中,非易失性存储器设备10执行多个感测操作,并且可以将结果值分别存储在多个锁存器中。根据各种实施例,非易失性存储器设备10可以响应于所接收的读取命令cmd_r基于ovs模块130执行多个感测操作。

在操作s130中,存储设备1的非易失性存储器设备10根据比较结果值的结果来选择多个锁存器中的一个,并且可以输出存储在所选择的锁存器中的数据作为读取数据。非易失性存储器设备10比较存储在锁存器中的数据值,并且可以根据比较结果值来选择存储在多个锁存器中的一个中的数据。

在操作s140中,存储设备1的非易失性存储器设备10接收状态读取命令,并且可以将状态位发送到存储器控制器20。状态读取命令可以请求用于存储器控制器20确定非易失性存储器设备10的状态的信息。例如,当在执行ovs读取操作的同时接收到状态读取命令时,非易失性存储器设备10可以将表示“忙碌”的状态位发送到存储器控制器20。例如,当ovs读取操作完成并且接收到状态读取命令时,非易失性存储器设备10可以将表示“就绪”的状态位发送到存储器控制器20。当非易失性存储器设备10处于“就绪”状态时,状态位还可以包括表示在多个锁存器中被选择以输出读取数据的锁存器的位。

在操作s150中,存储设备1的存储器控制器20可以对读取的数据执行ecc解码。存储器控制器20接收读取的数据,并且可以基于ecc模块210执行ecc解码。可以参考图1的ecc模块210的描述来进行ecc解码的详细描述。

在操作s160中,当成功执行ecc解码时,存储设备1的存储器控制器20可以基于状态位来确定是否改变读取电压。当成功执行ecc解码时,存储器控制器20可以将解码的读取数据输出到主机host。在根据本公开的实施例中,如稍后参考图10和图11所述的,存储器控制器20识别被选择来输出读取数据的锁存器,并且可以基于从非易失性存储器设备10接收的状态位来确定是否改变读取电压。

图8是根据本公开的示例性实施例的存储器控制器与非易失性存储器设备之间的信号交换图。省略了与已经参考图7给出的描述相同的描述。

参考图8,当在操作s201中存储器控制器20将读取命令cmd_r发送到非易失性存储器设备10时,非易失性存储器设备10可以在操作s202中响应于读取命令cmd_r执行ovs读取操作。根据各种实施例,非易失性存储器设备10可以处于忙碌状态或就绪状态。例如,在执行ovs读取操作时,非易失性存储器设备10可以处于“忙碌”状态。“忙碌”状态可以指在非易失性存储器设备10执行ovs读操作时数据被锁存到页面缓冲器120的时间段。例如,当ovs读取操作完成时,非易失性存储器设备10可以处于“就绪”状态。“就绪”状态可以指ovs读取操作完成并且数据未被锁存到页面缓冲器120的时间段。

在操作s203中,存储器控制器20可以将状态读取命令发送到非易失性存储器设备10。状态读取命令可以请求用于确定非易失性存储器设备10的状态的信息。状态读取命令可以称为cmd_70。在从发送读取命令cmd_r的时间点开始的特定时间段之后,可以将状态读取命令周期性地发送到非易失性存储器设备10。根据一个实施例,状态读取命令可以每1us的时间段从存储器控制器20发送到非易失性存储器设备10。然而,本公开不限于此。状态读取命令可以在与1us的时间段不同的时间段中被发送到非易失性存储器设备10。例如,在基于高速时钟操作的存储设备1中,可以在比1us的时间段更短的时间段中发送状态读取命令。例如,在基于低速时钟操作的存储设备1中,可以在比1us的时间段更长的每个时间段发送状态读取命令。

在操作s204中,响应于接收到的状态读取命令,非易失性存储器设备10可以将状态位发送到存储器控制器20。状态位可以包括用于指示非易失性存储器设备10的状态的位。状态位可以通过引脚dq0至dq7中的至少一个引脚来发送。例如,当非易失性存储器设备10处于“忙碌”状态时,非易失性存储器设备10可以通过引脚dq6发送状态位“1”。例如,当非易失性存储器设备10处于“就绪”状态时,非易失性存储器设备10可以通过引脚dq6发送状态位“0”。参考图8,在执行ovs读取操作时,非易失性存储器设备10接收状态读取命令两次,并且可以通过引脚dq6发送状态位“1”。存储器控制器20可以通过经由引脚dq6接收的状态位“1”来确定非易失性存储器执行ovs读取操作。根据各种实施例,在操作s205中,非易失性存储器设备10可以再次发送状态读取命令。在操作s206中,当非易失性存储器设备10执行ovs读取操作时,非易失性存储器设备10可以重复发送表示非易失性存储器设备10仍处于“忙碌”状态的状态位。

在操作s207中,非易失性存储器设备10完成ovs读取操作,并且可以将读取的数据发送到存储器控制器20。可以通过比较通过多个感测操作分别存储在多个锁存器中的数据项的操作来选择读取数据。

在ovs读取操作完成之后,非易失性存储器设备10在操作s208中接收状态读取命令,并且可以在操作s209中响应于状态读取命令发送状态位。根据各种实施例,当执行ovs读取操作的非易失性存储器设备10处于“就绪”状态时,状态位还可以包括通过引脚dq0至dq3发送的位。也就是说,当非易失性存储器设备10完成ovs读取操作并发送状态位时,非易失性存储器设备10可以通过发送状态位来表示ovs操作的结果。根据一个实施例,

图9展示了通过引脚dq0至dq3发送的状态位的实例。在一个实施例中,dq0和dq1可以分类到mat0,而dq2和dq3可以分类到mat1。例如,当非易失性存储器设备10处于第一状态时,发送的状态位可以是“1010”。在第一状态中,通过第一感测操作存储在第一锁存器中的数据作为读取数据输出到存储器控制器20。例如,当非易失性存储器设备10处于第二状态时,发送的状态位可以是“0000”。在第二状态中,通过第二感测操作存储在第二锁存器中的数据作为读取数据输出到存储器控制器20。例如,当非易失性存储器设备10处于第三状态时,发送的状态位可以是“0101”。在第三状态中,通过第三感测操作存储在第三锁存器中的数据作为读取数据输出到存储器控制器20。根据各种实施例,存储器控制器20可以通过分析通过引脚dq0至dq3发送的状态位来确定在第一锁存器、第二锁存器和第三锁存器中从哪个锁存器输出所接收的读取数据。

在操作s210中,存储器控制器20执行ecc解码,并且可以确定eccpass(通过)。存储器控制器20可以基于从非易失性存储器设备10接收的读取数据执行ecc解码。尽管未在图8中示出,当存储器控制器20未能执行ecc解码时,存储器控制器20请求非易失性存储器设备10执行读取重试、改变读取电压、并且可以接收读取数据。

在操作s211中,当对读取数据成功执行ecc解码时,存储器控制器20可以确定是否改变读取电压。存储器控制器20对接收的读取数据执行ecc解码。当成功执行ecc解码时,由于接收的读取数据是无错误的或被校正的,因此存储器控制器20可以请求将接收的读取数据输出到主机host。同时,存储器控制器20可以在执行ecc解码之前基于从非易失性存储器设备10接收的状态位来确定是否改变读取电压。状态位可以通过引脚dq0至dq3发送。存储器控制器20可以参考状态位确定在第一锁存器至第三锁存器中从哪个锁存器输出数据。如稍后参考图10和图11所述,存储器控制器20通过确定输出读取数据的锁存器来估计阈值电压的分布移动,并且可以确定是否改变读取电压。根据各种实施例,当确定存储器控制器20改变读取电压时,存储器控制器20可以在操作s212中将控制信号发送到非易失性存储器设备10,并且非易失性存储器设备10可以在操作s213中响应于控制信号改变读取电压。

图10是展示了根据本公开的示例性实施例的操作执行第一操作模式的存储设备的方法的流程图。详细地,图10是展示了用于在成功地执行图7的ecc解码时基于状态位来确定是否改变读取电压的操作s160的详细操作方法的流程图。

参考图10,在操作s301中,存储器控制器20可以在第一操作模式下操作。根据一个实施例,存储器控制器20可以在第一操作模式或第二操作模式下操作。例如,在第一操作模式中,基于状态位来确定是减小还是维持读取电压。将参考图11详细地描述第二操作模式。

可以通过参考与操作模式相关联的设定值来确定存储器控制器20以第一模式操作。根据一个实施例,可以预先设置设定值,使得存储器控制器20以第一模式操作或者可以由用户改变。根据另一实施例,可以将设定值设置为在第一操作模式与第二操作模式之间周期性地切换。根据另一实施例,可以自适应地改变设定值,使得当存储器控制器20的过载或开销量大于或者超过先前设置的值时,控制器20以第一操作模式操作,并且当存储器控制器20的过载或开销量小于或少于先前设定值时,控制器20以第二操作模式操作。

在操作s302中,存储器控制器20可以基于状态位来确定非易失性存储器设备10的状态。在存储器控制器20发送读取命令之后,响应于周期性发送的状态读取命令,可以从非易失性存储器设备10接收状态位。例如,在非易失性存储器设备10完成ovs读取操作之后,存储器控制器20可以将状态读取命令发送到非易失性存储器设备10。非易失性存储器设备10确定ovs读取操作完成,并且可以响应于状态读取命令将“0”位发送到引脚dq6。另外,非易失性存储器设备10还可以通过引脚dq0至dq3发送用于确定ovs读取操作的结果的状态位。

在操作s303中,存储器控制器20可以确定非易失性存储器设备10是否处于第一状态。当存储器控制器20在第一操作模式下操作时,可以确定引脚dq0至dq3的状态位是否为“1010”。例如,存储器控制器20对引脚dq0至dq3的状态位“1010”执行xor运算,并且可以确定结果值是否为“0000”。当状态位等于“1010”时,存储器控制器20可以确定通过第一感测操作将存储在第一锁存器中的数据作为读取数据输出。另外,存储器控制器20可以确定通过使用第一锁存器激活的单元的数量小于通过使用第二锁存器和第三锁存器激活的单元的数量。在下文中,通过使用任意锁存器激活的单元可以称为导通单元。

在操作s304中,存储器控制器20可以将读取电压减小先前确定的偏移量值。例如,先前确定的偏移量值可以是0.1v。在上述实施例中,偏移量值被描述为0.1v。然而,本公开不限于此。根据各种实施例,偏移量值可以被设置为具有不同于0.1v的值。例如,在基于单级单元(slc)的非易失性存储器设备中,由于按照编程的读取电压之间的距离较大,所以可以将偏移量值设置为大于0.1v。例如,在基于四级单元(qlc)的非易失性存储器设备中,由于按照编程的读取电压之间的距离不大,所以可以将偏移量值设置为小于0.1v。

在操作s305中,存储器控制器20可以维持读取电压。当状态位与“1010”不一致时,存储器控制器20可以忽视读取电压的变化。当状态位不是“1010”时,存储器控制器20可以确定不是从第一锁存器而是从第二锁存器或第三锁存器输出读取数据。当未从第一锁存器输出读取数据时,由于存储器控制器20不需要减小读取电压,因此可以维持读取电压并且可以终止过程。

在图10中,根据上述实施例,由于存储器控制器20基于状态位确定非易失性存储器设备是否处于第一状态,因此可以仅确定是减小还是维持读取电压。根据各种实施例,阈值电压的值可以由于保持而减小或者可以增加。因此,可以请求存储器控制器20基于非易失性存储器设备10的状态位来增加读取电压。

图11是展示了根据本公开的示例性实施例的操作执行第二操作模式的存储设备的方法的流程图。详细地,图11是展示了用于在成功地执行图7的ecc解码时基于状态位来确定是否改变读取电压的操作s160的详细操作方法的流程图。

参考图11,在操作s401中,存储器控制器20可以在第二操作模式下操作。在第二操作模式中,基于状态位,确定是减小还是增加读取电压。也就是说,当存储器控制器20在第二操作模式下操作时,可以确定是减小、维持还是增加读取电压。

在操作s402中,存储器控制器20可以基于状态位来确定非易失性存储器设备10的状态。操作s402可以对应于图10的操作s302。

在操作s403中,存储器控制器20可以确定非易失性存储器设备10是否处于第二状态。根据各种实施例,当存储器控制器20在第二操作模式下操作时,可以确定引脚dq0至dq3的状态位是否为“0000”。例如,存储器控制器20对引脚dq0至dq3的状态位“0000”执行xor运算,并且可以确定结果值是否为“0000”。当状态位等于“0000”时,存储器控制器20可以确定通过第二感测操作将存储在第二锁存器中的数据作为读取数据输出。另外,存储器控制器20可以确定使用第二锁存器激活的导通单元的数量小于使用第一锁存器和第三锁存器激活的导通单元的数量。

在操作s404中,存储器控制器20可以维持读取电压。当非易失性存储器设备10处于第二状态时,可以从第二锁存器输出读取数据。当先前设置的读取电压对应于阈值电压的分布曲线中的谷值时,可以输出存储在第二锁存器中的数据作为读取数据。因此,存储器控制器20确定先前设置的读取电压是理想的读取电压并且可以忽视读取电压的变化。

在操作s405中,存储器控制器20可以确定非易失性存储器设备10是否处于第一状态。例如,存储器控制器20对接收的状态位“1010”执行xor运算,并且可以确定非易失性存储器设备10是否处于第一状态。

在操作s406中,存储器控制器20可以获得通过使用第一锁存器激活的单元计数信息。当状态位表示第一状态时,存储器控制器20可以确定低于先前设置的读取电压的电压是理想的读取电压。尽管成功执行ecc解码,但是在每当状态位表示第一状态时改变读取电压的情况下,读取操作的性能可能劣化。因此,存储器控制器20可以将用于请求关于通过使用第一锁存器激活的存储器单元的数量的信息的命令发送到非易失性存储器设备10。所述命令可以称为通用内部总线(uib)out命令。响应于所述命令,存储器控制器20可以获得从非易失性存储器设备10发送的关于通过使用第一锁存器激活的存储器单元的数量的信息。

在操作s407中,存储器控制器20可以确定导通单元的数量是否大于阈值。考虑到由读取电压的频繁变化引起的读取性能的劣化以及通过维持理想读取电压引起的读取性能的改善,阈值可以预先确定为任意适当值。

在操作s408中,存储器控制器20可以将读取电压减小先前确定的偏移量值。当导通单元的数量大于阈值时,尽管成功执行ecc解码,但是由于读取的数据接近于ecc纠错的限制,因此存储器控制器20可以确定在发生ecc错误之前减小读取电压。如上所述,先前确定的偏移量值可以对应于0.1v。然而,本公开不限于此。

在操作s409中,存储器控制器20可以确定非易失性存储器设备10处于第三状态。由于存储器控制器20通过执行操作s403和操作s405确定非易失性存储器设备10未处于第一状态和第二状态,因此可以省略用于确定状态位是否表示第三状态的xor运算。

在操作s410中,存储器控制器20可以获得使用第三锁存器激活的导通单元计数信息。当状态位表示第三状态时,存储器控制器20可以确定高于设置的读取电压的电压是理想的读取电压。尽管成功执行ecc解码,但是在每当状态位表示第三状态时改变读取电压的情况下,读取操作的性能可能劣化。因此,存储器控制器20向非易失性存储器设备10发送命令,用于请求关于使用第三锁存器激活的导通单元的数量的信息,并且可以获得关于导通单元的数量的信息。所述命令可以称为uibout命令。

在操作s411中,存储器控制器20可以确定导通单元的数量是否大于阈值。考虑到由读取电压的频繁变化引起的读取性能的劣化以及通过维持理想读取电压引起的读取性能的改善,阈值可以预先确定为任意适当值。

在操作s412中,存储器控制器20可以将读取电压增加先前确定的偏移量值。操作s412的描述可以由操作s408的描述代替。

根据以上参考图11描述的实施例,当基于状态位确定非易失性存储器设备10处于第一状态或第三状态时,存储器控制器20可以将用于请求关于激活的存储器单元的数量的信息的命令发送到非易失性存储器设备10。

每当执行读取操作,为了确定是否改变读取电压,发送命令并且接收关于激活的存储器单元的数量的信息可以作为存储器控制器20和非易失性存储器设备10中的开销来操作。因此,为了减少开销,可以请求省略用于请求关于激活的存储器单元的数量的信息的命令的方法。

图12是展示了根据本公开的示例性实施例的状态位的表格。

如以上参考图9所述,用于表示在多个锁存器中被选择来输出读取数据的锁存器的状态位可以通过引脚dq0至dq3从非易失性存储器设备10发送到存储器控制器20。在下文中,通过引脚dq0发送的状态位可以称为第一位,通过引脚dq1发送的状态位可以称为第二位,通过引脚dq2发送的状态位可以称为第三位,并且通过引脚dq3发送的状态位可以称为第四位。

参考图12,非易失性存储器设备10的状态可以表示为第一位和第二位的组合。例如,非易失性存储器设备10的第一状态可以通过第一位和第二位“10”表示。例如,非易失性存储器设备10的第二状态可以通过第一位和第二位“01”表示。例如,非易失性存储器设备10的第三状态可以通过第一位和第二位“00”表示。表示每个状态的第一位和第二位的逻辑值不限于此。

参考图12,当非易失性存储器设备10处于第一状态时,第三位可以确定是否减小读取电压。根据各种实施例,第三位可以表示比较使用第一锁存器激活的导通单元的数量与阈值的结果。例如,当第三位具有逻辑值“0”时,可以确定阈值大于使用第一锁存器激活的导通单元的数量。例如,当第三位具有逻辑值“1”时,可以确定使用第一锁存器激活的导通单元的数量大于阈值。

参考图12,当非易失性存储器设备10处于第三状态时,第四位可以确定是否增加读取电压。根据各种实施例,第四位可以表示将使用第三锁存器激活的导通单元的数量与阈值进行比较的结果。例如,当第四位具有逻辑值“0”时,可以确定阈值大于使用第三锁存器激活的导通单元的数量。例如,当第四位具有逻辑值“1”时,可以确定使用第三锁存器激活的导通单元的数量大于阈值。

在上述实施例中,展示了通过第一位和第二位的组合来表示非易失性存储器设备10的状态,通过第三位确定在确定非易失性存储器设备10处于第一状态时是否减小低读取电压,并且当通过第四位确定在确定非易失性存储器设备10处于第三状态时是否增加读取电压。然而,本公开不限于此。根据各种实施例,非易失性存储器设备10可以通过保留位而不使用第一位和第二位设置。在这种情况下,非易失性存储器设备10可以通过将第三位设置为“1”来同时表示非易失性存储器设备10的第一状态和读取电压的减小,并且可以通过将第四位设置为“1”来同时表示非易失性存储器设备10的第三状态和读取电压的增加。

图13是展示了根据本公开的示例性实施例的基于改变的状态位来操作执行第二操作模式的存储设备的方法的流程图。省略了与已经参考图11给出的描述相同的描述。

在操作s501中,存储器控制器20可以在第二操作模式下操作。存储器控制器20可以参考用于操作模式的设定值在第二操作模式下操作。操作s501可以对应于图11的操作s401。

在操作s502中,存储器控制器20可以基于状态位来确定非易失性存储器设备10的状态。状态位可以对应于图12的改变的状态位。例如,当存储器控制器20接收改变的状态位时,可以参考第一位和第二位确定非易失性存储器设备10的状态。

在操作s503中,存储器控制器20可以确定非易失性存储器设备10是否处于第二状态。例如,当接收到改变的状态位时,存储器控制器20可以通过对具有逻辑值“00”的第一位和第二位执行xor运算来确定非易失性存储器设备10处于第二状态。

在操作s504中,存储器控制器20可以维持读取电压。当第一位和第二位具有逻辑值“00”时,存储器控制器20可以确定非易失性存储器设备10处于第二状态。通过先前设置的读取电压来读取数据。由于激活的存储器单元的数量最小,因此存储器控制器20可以将先前设置的读取电压确定为理想的读取电压。因此,存储器控制器20维持读取电压并且可以忽视读取电压的变化。

在操作s505中,存储器控制器20可以确定非易失性存储器设备10是否处于第一状态。例如,当接收到改变的状态位时,存储器控制器20可以通过对具有逻辑值“10”的第一位和第二位执行xor运算来确定非易失性存储器10处于第一状态。

在操作s506中,存储器控制器20可以确定通过引脚dq2发送的状态位是否为“1”。在确定非易失性存储器设备10处于第一状态之后,为了确定是否减小读取电压,存储器控制器20可以确定通过引脚dq2发送的状态位的逻辑值。根据各种实施例,存储器控制器20可以通过接收改变的状态位并且确定通过引脚dq2发送的状态位的值来忽视用于请求关于通过使用第一锁存器激活的存储器单元的数量的信息的命令的传输,这是因为改变的状态位的引脚dq2的状态位直接表示将通过使用第一锁存器激活的存储器单元的数量与阈值进行比较的结果。因此,当使用改变的状态位时,存储器控制器20可以不将uibout命令发送到非易失性存储器设备10,并且省略将通过使用第一锁存器激活的存储器单元的数量与阈值进行比较的操作。因此,可以减少由存储器控制器20与非易失性存储器设备10之间的信号传输引起的开销。

在操作s507中,存储器控制器20可以将读取电压减小先前确定的偏移量值。当通过引脚dq2发送的状态位具有逻辑值“1”时,存储器控制器20可以确定减小读取电压。通过引脚dq2发送的状态位“1”可以表示通过使用第一锁存器激活的存储器单元的数量大于阈值。因此,通过将减小先前确定的偏移量值的电压设置为读取电压,存储器控制器20可以将通过使用第一锁存器激活的存储器单元的数量减少为不超过阈值。

在操作s508中,存储器控制器20可以确定非易失性存储器设备10是否处于第三状态。将参考图11的操作s409进行操作s508的详细描述。

在操作s509中,存储器控制器20可以确定通过引脚dq3发送的状态位是否为“1”。在确定非易失性存储器设备10处于第三状态之后,为了确定是否增加读取电压,存储器控制器20可以确定通过引脚dq3发送的状态位的逻辑值。根据各种实施例,存储器控制器20可以通过接收改变的状态位并且确定通过引脚dq3发送的状态位的逻辑值来忽视用于请求关于通过使用第三锁存器激活的存储器单元的数量的信息的命令的传输,这是因为改变的状态位的引脚dq3的状态位直接表示将通过使用第三锁存器激活的存储器单元的数量与阈值进行比较的结果。因此,当使用改变的状态位时,存储器控制器20可以不将uibout命令发送到非易失性存储器设备10,并且省略将通过使用第三锁存器激活的存储器单元的数量与阈值进行比较的操作。因此,可以减少由存储器控制器20与非易失性存储器设备10之间的信号传输引起的开销。

在操作s510中,存储器控制器20可以将读取电压增加先前确定的偏移量值。将参考图11的操作s412执行操作s510的详细描述。

作为本领域中的传统,可以根据执行所描述的一个或多个功能的块来描述和说明各实施例。这些块(本文可称为单元或模块等)在物理上由模拟和/或数字电路实现,诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子元件、有源电子元件、光学部件、硬连线电路等,并且可以可选地由固件和/或软件驱动。例如,电路可以体现在一个或多个半导体芯片中,或者体现在诸如印刷电路板等的基板支撑件上。构成块的电路可以由专用硬件实现,或者由处理器(例如,一个或多个编程的微处理器和相关联电路)实现,或者由用于执行块的一些功能的专用硬件和用于执行块的其他功能的处理器的组合来实现。在不脱离本公开的范围的情况下,实施例的每个块可以在物理上分成两个或更多个交互的和离散的块。同样,在不脱离本公开的范围的情况下,可以将实施例的块物理地组合成更复杂的块。

尽管已经参考其各实施例具体示出并描述了本公开,但是应当理解,可以在其中做出形式和细节的各种改变而不脱离所附权利要求书的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1