CN117437965A - 存储控制器 - Google Patents
存储控制器 Download PDFInfo
- Publication number
- CN117437965A CN117437965A CN202310301818.6A CN202310301818A CN117437965A CN 117437965 A CN117437965 A CN 117437965A CN 202310301818 A CN202310301818 A CN 202310301818A CN 117437965 A CN117437965 A CN 117437965A
- Authority
- CN
- China
- Prior art keywords
- read
- memory device
- distribution information
- read data
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009826 distribution Methods 0.000 claims abstract description 208
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000004891 communication Methods 0.000 claims abstract description 22
- 239000000872 buffer Substances 0.000 claims description 51
- 238000012937 correction Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 27
- 230000015556 catabolic process Effects 0.000 description 20
- 238000006731 degradation reaction Methods 0.000 description 20
- 101150077079 RDT1 gene Proteins 0.000 description 10
- 230000014759 maintenance of location Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 5
- 239000006227 byproduct Substances 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
公开了一种操作与非易失性存储器设备通信的存储控制器的方法。该方法包括向非易失性存储器设备提供读取命令,从非易失性存储器设备接收与读取命令相对应的第一读取数据和第一分布信息,确定第一读取数据的错误是否可纠正,以及响应于确定第一读取数据的错误可纠正,基于第一分布信息更新存储控制器中的历史表的偏移信息。
Description
相关申请的交叉引用
本申请要求于2022年7月20日在韩国知识产权办公室提交的第10-2022-0089310号韩国专利申请的优先权,其公开内容通过引用整体并入本文。
技术领域
本公开的主题涉及存储设备和控制器,并且更具体地,涉及接收读取数据和阈值电压分布信息的存储控制器,以及操作其的方法。
背景技术
存储器设备响应于写入请求而存储数据,并且响应于读取请求而输出存储在其中的数据。例如,存储器设备能够被分类为易失性存储器设备(例如,动态随机存取存储器(DRAM)设备和静态RAM(SRAM)设备)或非易失性存储器设备(例如,闪存设备、相变RAM(PRAM)设备、磁性RAM(MRAM)设备或电阻式RAM(RRAM)设备),其中,易失性存储器设备在电源中断时丢失存储的数据,非易失性存储器设备即使在电源中断时也保留存储的数据。
非易失性存储器设备的存储器单元可以具有与数据的位值相对应的编程的阈值电压分布。阈值电压分布可以由于诸如保留时间、读取干扰和热载流子注入(HCI)的各种因素而改变。阈值电压分布的改变会降低非易失性存储器设备的可靠性。为了检查是否存在可靠性的降低,存储控制器可以读取非易失性存储器设备的分布信息。
发明内容
单独管理用于读取数据的输入/输出(I/O)和用于阈值电压分布信息的I/O能够增加存储设备的I/O负载,例如,I/O操作发生的次数。本公开的主题的实现方式能够通过在读取操作中一起接收阈值电压分布信息和读取数据两者来减少内部I/O负载。在一些情况下,减少内部I/O负载能够减少延迟效应,例如,与传统方法中的4-16微秒相比,I/O能够以20纳秒执行。
通常,本说明书中描述的主题的创新方面能够体现在操作与非易失性存储器设备通信的存储控制器的方法中,该方法包括:向非易失性存储器设备提供读取命令;从非易失性存储器设备连续接收与读取命令相对应的第一读取数据和第一分布信息;确定第一读取数据的错误是否可纠正,并且响应于确定第一读取数据的错误可纠正,基于第一分布信息更新存储控制器中的历史表的偏移信息。
通常,在另一方面,本公开的主题能够体现在操作包括非易失性存储器设备和存储控制器的存储设备的方法中,该方法包括:由存储控制器向非易失性存储器设备提供读取命令;由非易失性存储器设备基于读取命令执行片上读取操作;由非易失性存储器设备向存储控制器连续地提供与片上读取操作相对应的读取数据和分布信息;由存储控制器确定读取数据的错误是否可纠正,并且由存储控制器响应于确定读取数据的错误可纠正,基于分布信息更新存储控制器中的历史表的偏移信息。
通常,本公开的其他方面能够体现在存储控制器中,该存储控制器包括:命令管理器,向非易失性存储器设备提供读取命令;缓冲存储器,从非易失性存储器设备连续地接收与读取命令相对应的第一读取数据和第一分布信息;纠错码(ECC)引擎,在命令管理器的控制下与缓冲存储器通信并解码第一读取数据;以及历史表,管理偏移信息。该命令管理器基于与ECC引擎的通信来确定第一读取数据的错误是否可纠正,并且响应于确定第一读取数据的错误可纠正,基于缓冲存储器的第一分布信息来更新历史表的偏移信息。
附图说明
通过参考附图详细描述本公开的示例,本公开的上述和其他目的和特征将变得显而易见。
图1是存储系统的示例的框图。
图2是详细图示图1的存储控制器的框图。
图3是详细图示图1的非易失性存储器设备的框图。
图4A是图示三级单元的阈值电压分布的示例的示图。
图4B是图示四级单元的阈值电压分布的示例的示图。
图5是描述阈值电压分布的改变的示例的示图。
图6是描述偏移信息的示例的示图。
图7是描述分布信息的示例的示图。
图8是描述优化谷与片上谷搜索(OVS)计数值之间的关系的示例的示图。
图9是描述防御码时段的示例的示图。
图10是描述操作传统存储设备的方法的示例的流程图。
图11是描述操作存储设备的方法的示例的流程图。
图12是描述操作存储设备的方法的示例的示图。
图13是描述操作存储设备的方法的示例的示图。
图14是描述存储设备的内部通信的示例的示图。
图15是描述操作存储控制器的方法的示例的流程图。
图16是描述操作存储设备的方法的示例的流程图。
具体实施方式
图1是存储系统的示例的框图。参考图1,存储系统10包括主机11和存储设备100。在一些实现方式中,存储系统10是被配置为处理各种信息的计算系统,诸如个人计算机(PC)、笔记本、膝上型计算机、服务器、工作站、平板PC、智能电话、数码相机和黑盒子。
主机11可以控制存储系统10的整体操作。例如,主机11可以将数据存储在存储设备100中或者可以读取存储在存储设备100中的数据。
存储设备100可以包括存储控制器110和非易失性存储器设备120。非易失性存储器设备120可以存储数据。存储控制器110可以将数据存储在非易失性存储器设备120中,或者可以读取存储在非易失性存储器设备120中的数据。非易失性存储器设备120可以在存储控制器110的控制下操作。例如,基于指示操作的命令CMD和指示数据位置的地址ADD,存储控制器110可以将数据存储在非易失性存储器设备120中或者可以读取存储在非易失性存储器设备120中的数据。
在一些实现方式中,非易失性存储器设备120是NAND闪存存储器设备,但是本公开不限于此。例如,非易失性存储器设备120可以是即使断电也保留存储的数据的各种存储设备之一,诸如相变随机存取存储器(PRAM)、磁随机存取存储器(MRAM)、电阻式随机存取存储器(RRAM)和铁电随机存取存储器(FRAM)。
存储控制器110可以包括命令管理器111、历史表112和易失性存储器设备113。
命令管理器111可以管理指示要在非易失性存储器设备120中执行的操作的各种命令。例如,命令管理器111可以向非易失性存储器设备120提供各种命令,诸如读取命令、写入命令和擦除命令。
命令管理器111可以管理保证非易失性存储器设备120的可靠性的命令。例如,命令管理器111可以基于从非易失性存储器设备120的分布信息生成器121a获得的分布信息来管理保证可靠性的命令,诸如读取重试命令和读取回收命令。
分布信息可以指示非易失性存储器设备120的存储器单元的劣化水平。例如,非易失性存储器设备120的存储器单元可以形成取决于数据的位值编程的阈值电压的分布。阈值电压分布可以由于诸如保持、读取干扰和热载流子注入(HCI)的各种因素而改变。分布信息可以指示由于各种因素而改变的阈值电压分布。分布信息可以包括由非易失性存储器设备120的片上读取操作生成的偏移信息或片上谷搜索(OVS)计数数据。片上读取操作可以指在与非易失性存储器设备120相对应的存储器芯片中内部生成读取数据和分布信息两者的操作。偏移信息将参考图6被详细描述。OVS计数数据将参考图7被详细描述。
读取重试操作可以指改变读取电压电平并再次执行读取操作的操作。例如,存储控制器110可以向非易失性存储器设备120提供指示目标读取电压电平的读取命令。基于目标读取电压电平获得的读取数据的错误可能不可纠正。存储控制器110可以基于分布信息来优化目标读取电压电平(例如,基于劣化水平来增加或降低目标读取电压电平),并且可以向非易失性存储器设备120提供指示优化的目标读取电压电平(例如,增加/降低的目标读取电压电平)的读取重试命令。
读取回收操作可以指将存储在非易失性存储器设备120的存储器单元中的数据再次写入任何其他存储器单元中以保证数据可靠性的操作。例如,非易失性存储器设备120的存储器单元的阈值电压分布可以随时间改变。在数据由于劣化而不能被恢复之前,存储控制器110可以确定需要读取回收操作。存储控制器110可以读取存储在非易失性存储器设备120的存储器单元中的数据,可以将读取数据复制到任何其他存储器单元,然后可以擦除劣化的存储器单元的数据。
历史表112可以管理非易失性存储器设备120的存储器单元的偏移信息。命令管理器111可以基于由非易失性存储器设备120的分布信息生成器121a生成的分布信息来更新历史表112的偏移信息。偏移信息可以指示当处理用于获得分布信息的读取命令时的优化谷的电压电平与在初始时间(即,在对位值进行编程时)的默认谷的电压电平之间的差。偏移信息可以用于由命令管理器111在下一读取操作中确定目标读取电压电平。
易失性存储器设备113可以用作存储控制器110的主存储器、缓冲存储器或高速缓存存储器。易失性存储器设备113的至少一部分可以用作存储从非易失性存储器设备120接收的读取数据和分布信息的缓冲存储器。易失性存储器设备113可以用静态随机存取存储器(SRAM)或动态随机存取存储器或DRAM)来实现。
非易失性存储器设备120可以包括分布信息生成器121a。分布信息生成器121a可以基于命令管理器111的读取命令生成与读取数据相对应的分布信息。例如,非易失性存储器设备120可以基于读取命令生成读取数据。分布信息生成器121a可以生成分布信息作为读取数据的副产品。分布信息生成器121a可以将分布信息提供给存储控制器110。
在一些实现方式中,分布信息生成器121a将分布信息与读取数据一起提供给存储控制器110。例如,存储控制器110可以向非易失性存储器设备120提供读取命令。非易失性存储器设备120可以处理读取命令,并且可以向存储控制器110提供读取数据和分布信息。
在发出读取命令之后,存储控制器110可以从非易失性存储器设备120获得分布信息,而不发出用于获得分布信息的附加命令,因此,存储控制器110和非易失性存储器设备120之间的输入/输出负载可以减小。
图2是详细示出图1的存储控制器的框图。参考图1和图2,存储控制器110可以与主机11和非易失性存储器设备120通信。
存储控制器110可以包括命令管理器111、历史表112、易失性存储器设备113、处理器114、只读存储器(ROM)115、纠错码(ECC)引擎116、主机接口电路117和非易失性存储器接口电路118。命令管理器111、历史表112和易失性存储器设备113可以分别与图1的命令管理器111、历史表112和易失性存储器设备113相对应。
命令管理器111可以管理指示要在非易失性存储器设备120中执行的操作的命令。历史表112可以管理偏移信息。
在一些实现方式中,命令管理器111和历史表112以固件模块的形式实现。例如,处理器114可以通过将存储在非易失性存储器设备120中的指令加载到易失性存储器设备113并执行加载的指令来实现命令管理器111和历史表112。然而,本公开不限于此。例如,命令管理器111和历史表112可以用单独的硬件来实现,或者可以用硬件和软件的组合来实现。
易失性存储器设备113可以用作存储控制器110的主存储器、缓冲存储器或高速缓存存储器。易失性存储器设备113可以包括缓冲存储器113a。缓冲存储器113a可以临时存储从非易失性存储器设备120读取的读取数据和分布信息。存储在缓冲存储器113a中的读取数据和分布信息可以被提供给命令管理器111和历史表112。
处理器114可以控制存储控制器110的整体操作。ROM 115可以用作存储存储控制器110的操作所需的信息的只读存储器。
ECC引擎116可以检测并纠正从非易失性存储器设备120获得的数据的错误。例如,ECC引擎116可以具有给定级别的纠错能力。ECC引擎116可以处理具有超过ECC引擎116的错误纠正能力的错误级别(例如,翻转位的数量)的数据。该数据错误可以被称为“不可纠正的”错误。
在一些实现方式中,命令管理器111基于与ECC引擎116的通信来确定读取数据的错误是否不可纠正。命令管理器111可以根据读取数据的错误是否不可纠正来确定是否执行读取重试操作。
在一些实现方式中,ECC引擎116管理编码操作和随机化操作。编码操作可以指代生成用于纠错的奇偶校验码的操作。随机化操作可以指代管理存储器单元的阈值电压状态以便分布到各种阈值电压分布而不集中在特定阈值电压状态的操作。
ECC引擎116可以包括编码电路和解码电路。编码电路可以对从主机11接收的写入数据执行编码操作和随机化操作。解码电路可以对从非易失性存储器设备120接收的读取数据执行解码操作和去随机化操作。解码操作和去随机化操作可以分别与编码操作和随机化操作相对应。
在一些实现方式中,解码电路仅对读取数据和分布信息当中的读取数据执行解码操作和去随机化操作。例如,解码电路可以不对从非易失性存储器设备120接收的分布信息执行解码操作和去随机化操作。
存储控制器110可以通过主机接口电路117与主机11通信。在一些实现方式中,主机接口电路117基于诸如串行ATA(SATA)接口、外围组件互连快速(PCIe)接口、串行附接SCSI(SAS)、非易失性存储器快速(NVMe)接口和通用闪存(UFS)接口的各种接口中的至少一个来实现。
存储控制器110可以通过非易失性存储器接口电路118与非易失性存储器设备120通信。在一些实现方式中,非易失性存储器接口电路118基于NAND接口来实现。
图3是详细示出图1的非易失性存储器设备的框图。参考图1和图3,非易失性存储器设备120可以与存储控制器110通信。例如,非易失性存储器设备120可以从存储控制器110接收地址ADD和命令CMD。非易失性存储器设备120可以与存储控制器110交换数据。
非易失性存储器设备120可以包括控制逻辑121、电压生成器122、行解码器123、存储器单元阵列124、页面缓冲器单元125、列解码器126和输入/输出(I/O)电路127。
控制逻辑121可以从存储控制器110接收命令CMD和地址ADD。命令CMD可以指指示要由非易失性存储器设备120执行的操作的信号,操作诸如读取操作、写入操作或擦除操作。地址ADD可以包括行地址ADDR和列地址ADDC。控制逻辑121可以基于命令CMD和地址ADD来控制非易失性存储器设备120的整体操作。控制逻辑121可以基于地址ADD来生成行地址ADDR和列地址ADDC。
控制逻辑121可以包括分布信息生成器121a和电熔丝电路121b。分布信息生成器121a可以基于与I/O电路127的通信来生成分布信息DI。电熔丝电路121b可以基于分布信息DI来更新。
例如,分布信息生成器121a可以从I/O电路127接收读取数据。分布信息生成器121a可以生成分布信息DI作为读取数据的副产品。分布信息生成器121a可以基于分布信息DI更新电熔丝电路121b。在电熔丝电路121b中更新的分布信息DI可以用于取决于优化的读取电压电平来执行下一读取操作。通过I/O电路127,分布信息生成器121a可以将分布信息DI与读取数据一起提供给存储控制器110。
在控制逻辑121的控制下,电压生成器122可以控制要通过行解码器123施加到存储器单元阵列124的电压。
行解码器123可以从控制逻辑121接收行地址ADDR。行解码器123可以通过串选择线SSL、字线WL和地选择线GSL与存储器单元阵列124连接。行解码器123可以对行地址ADDR进行解码,并且可以基于解码结果和从电压生成器122接收的电压来控制要施加到串选择线SSL、字线WL和地选择线GSL的电压。
存储器单元阵列124可以包括多个存储器块BLK。存储器块BLK可以与非易失性存储器设备120的物理擦除单元相对应,但是本公开不限于此。例如,物理擦除单元可以改变为页面单元、字线单元、子块单元等。
存储器块BLK可以包括多个存储器单元。多个存储器单元中的每一个可以存储2个或更多个位。例如,存储器块BLK的存储器单元可以用诸如存储2位的多级单元、存储3位的三级单元、存储4位的四级单元的存储器单元来实现。
页面缓冲器单元125可以包括多个页面缓冲器PB。页面缓冲器单元125可以通过位线BL与存储器单元阵列124连接。通过在控制逻辑121的控制下感测位线BL的电压,页面缓冲器单元125可以以页面为单位从存储器单元阵列124读取数据。
列解码器126可以从控制逻辑121接收列地址ADDC。列解码器126可以解码列地址ADDC并且可以基于解码结果将由页面缓冲器单元125读取的数据提供给I/O电路127。
列解码器126可以通过数据线DL从I/O电路127接收数据。列解码器126可以从控制逻辑121接收列地址ADDC。列解码器126可以解码列地址ADDC并可以基于解码结果将从I/O电路127接收的数据提供给页面缓冲器单元125。页面缓冲器单元125可以以页面为单位通过位线BL将从I/O电路127提供的数据存储在存储器单元阵列124中。
I/O电路127可以通过数据线DL与列解码器126连接。I/O电路127可以通过数据线DL将从存储控制器110接收的数据提供给列解码器126。I/O电路127可以将通过数据线DL接收的数据输出到存储控制器110。
图4A是图示三级单元的阈值电压分布的示例的示图。图4B中图示每个存储3个位的三级单元TLC的阈值电压分布的曲线图及与阈值电压分布相对应的每个页面的位表。
在三级单元TLC的曲线图中,横轴表示阈值电压(例如,阈值电压的电平),并且纵轴表示单元的数量。在该示例中,三级单元TLC具有擦除状态“E”以及第一至第七编程状态P1、P2、P3、P4、P5、P6和P7,其阈值电压分布顺序地增加。
在三级单元TLC的该示例中,第一读取电压VR1指示用于区分擦除状态“E”与第一编程状态P1的电压电平。同样,第二至第七读取电压电平VR2至VR7中的每一个指示用于将第二至第七编程状态P2至P7中的每一个与先前状态(即,具有低阈值电压分布的紧接在前的状态)区分开的电压电平。
参考三级单元TLC的表,示出了根据单元状态的最低有效位LSB、中心有效位CSB和最高有效位MSB。与存储3个位的三级单元TLC相对应的物理页面与第一逻辑页面、第二逻辑页面和第三逻辑页面相对应。在三级单元TLC中,第一逻辑页面指示最低有效位LSB,第二逻辑页面可以指示中心有效位CSB,并且第三逻辑页面可以指示最高有效位MSB。
在一些实现方式中,三级单元TLC的第一读取电压VR1至第七读取电压VR7中的每一个与多个逻辑页面之一相对应。例如,在三级单元TLC中,与第一逻辑页面相对应的读取操作可以基于第一读取电压VR1和第五读取电压VR5被执行。与第二逻辑页面相对应的读取操作可以基于第二读取电压VR2、第四读取电压VR4和第六读取电压VR6被执行。与第三逻辑页面相对应的读取操作可以基于第三读取电压VR3和第七读取电压VR7被执行。
图4B是图示四级单元的阈值电压分布的示例的示图。图4B中示出每个存储4个位的四级单元QLC的阈值电压分布的曲线图及与阈值电压分布相对应的每个页面的位表。
在四级单元QLC的曲线图中,横轴表示阈值电压(例如,阈值电压的电平),并且纵轴表示单元的数量。在该示例中,四级单元QLC具有擦除状态“E”和第一至第十五编程状态P1、P2、P3、P4、P5、P6、P7、P8、P9、P10、P11、P12、P13、P14和P15,其中,阈值电压分布顺序地增加。
在四级单元QLC的该示例中,第一读取电压VR1指示用于区分擦除状态“E”与第一编程状态P1的电压电平。同样,第二至第十五读取电压电平VR2至VR15中的每一个指示用于将第二至第十五编程状态P2至P15中的每一个与先前状态(即,具有低阈值电压分布的紧接在前的状态)区分开的电压电平。
参考四级单元QLC的表,图示了根据单元状态的最低有效位LSB、第一中心有效位ESB、第二中心有效位USB和最高有效位MSB。与存储4个位的四级单元QLC的物理页面与第一逻辑页面、第二逻辑页面、第三逻辑页面和第四逻辑页面相对应。在四级单元QLC中,第一逻辑页面可以指示最低有效位LSB,第二逻辑页面可以指示第一中心有效位ESB,第三逻辑页面可以指示第二中心有效位USB,并且第四逻辑页面可以指示最高有效位MSB。
在一些实现方式中,四级单元QLC的第一读取电压VR1到第十五读取电压VR15中的每一个可以与多个逻辑页面之一相对应。例如,在四级单元QLC中,与第一逻辑页面相对应的读取操作可以基于第一读取电压VR1、第四读取电压VR4、第六读取电压VR6和第十一读取电压VR11被执行。与第二逻辑页面相对应的读取操作可以基于第三读取电压VR3、第七读取电压VR7、第九读取电压VR9和第十三读取电压VR13被执行。与第三逻辑页面相对应的读取操作可以基于第二读取电压VR2、第八读取电压VR8和第十四读取电压VR14被执行。与第四逻辑页面相对应的读取操作可以基于第五读取电压VR5、第十读取电压VR10、第十二读取电压VR12和第十五读取电压VR15被执行。
如上文所描述,参考图4A和图4B描述三级单元TLC和四级单元QLC的状态和读取电压电平。然而,本公开不限于此。例如,本领域技术人员可以理解,与每个逻辑页面相对应的读取电压被不同地改变或修改,并且一个存储器单元用多级单元(MLC)来实现,或者可以用存储4个或更多个位的存储器单元来实现。
图5是描述阈值电压分布的改变的示例的示图。将参考图5描述初始状态的阈值电压分布和保持状态的阈值电压分布。初始状态可以指当存储器单元被编程以形成阈值电压分布时的时间(即,初始时间)的状态。保持状态可以指当从初始状态经过给定时间时的时间的状态,或者当读取命令被处理以获得读取数据和分布信息时的时间的状态。
在初始状态的曲线图中,横轴表示阈值电压(例如,阈值电压的电平),并且纵轴表示存储器单元的数量。每个存储器单元的阈值电压电平可以与擦除状态“E”和第一编程状态P1至第七编程状态P7之一相对应。第一初始读取电压电平VR1i可以是被优化以区分擦除状态“E”的存储器单元与第一编程状态P1的存储器单元的谷的电压电平。
优化谷可以指示具有错误位的存储器单元的数量被最小化的电压电平(即,存储均被确定为与编程位相反的位的存储器单元)。例如,在初始状态下区分擦除状态“E”和第一编程状态P1的情况下,优化谷的电压电平可以指示在具有擦除状态“E”的存储器单元的数量最大化的电压电平与具有第一编程状态P1的存储器单元的数量最大化的电压电平之间,具有错误位的存储器单元的数量最小化的电压电平。换句话说,在初始状态下与擦除状态“E”和第一编程状态P1相关联的优化谷的电压电平可以是第一初始读取电压电平VR1i。
如在以上描述中,在初始状态下,第二初始读取电压电平VR2i至第七初始读取电压电平VR7i中的每一个可以指示被优化以将第二编程状态P2至第七编程状态P7中的每一个与先前状态(即,具有低阈值电压分布的紧接在前的状态)区分开的谷的电压电平。
在保持状态的曲线图中,横轴表示阈值电压(例如,阈值电压的电平),纵轴表示存储器单元的数量。每个存储器单元的阈值电压电平可以与擦除状态“E”和第一编程状态P1至第七编程状态P7之一相对应。第一保持读取电压电平VR1r可以是被优化以区分擦除状态“E”的存储器单元与第一编程状态P1的存储器单元的谷的电压电平。如在以上描述中,在保持状态中,第二保持读取电压电平VR2r至第七保持读取电压电平VR7r中的每一个可以指示被优化以将第二编程状态P2至第七编程状态P7中的每一个与先前状态(即,具有低阈值电压分布的紧接在前的状态)区分开的谷的电压电平。
一起参考初始状态的曲线图和保持状态的曲线图,第一初始读取电压电平VR1i至第七初始读取电压电平VR7i中的每一个可以与第一保持读取电压电平VR1r至第七保持读取电压电平VR7r中的每一个不同。
在一些实现方式中,随着阈值电压电平变得更高,保持状态中的电压电平与初始读取状态中的电压电平之间的差可以变得更大。例如,第三保持读取电压电平VR3r与第三初始读取电压电平VR3i之间的差可以小于第七保持读取电压电平VR7r与第七初始读取电压电平VR7i之间的差。
在一些实现方式中,与低阈值电压状态相对应的电压电平可以随时间增加。例如,为了改善保证擦除状态和多个编程状态的可靠性的持续时间,可以将存储器单元编程为具有高于半导体工艺级别中的擦除状态的电压电平的电压电平。在操作使用中,编程到擦除状态的存储器单元可以具有随时间返回到在半导体工艺级别中编程的电压电平的性质。如此,第一保持读取电压电平VR1r可以高于第一初始读取电压电平VR1i。
在一些实现方式中,考虑到根据存储器单元的保持的劣化趋势,图1的存储控制器110通过单独地获得每个读取电压电平的分布信息来确定劣化水平。
图6是描述偏移信息的示例的示图。将参考图6描述初始状态的一些阈值电压分布和保持状态的一些阈值电压分布。
在初始状态的曲线图中,横轴表示阈值电压,纵轴表示存储器单元的数量。默认谷可以指被优化以区分第一编程状态P1的存储器单元与第二编程状态P2的存储器单元的电压电平。详细地,在初始状态中,默认谷值可以指示在具有第一编程状态P1的存储器单元的数量被最大化的电压电平与具有第二编程状态P2的存储器单元的数量被最大化的电压电平之间,具有错误位的存储器单元的数量被最小化的电压电平。
在保持状态的曲线图中,横轴表示阈值电压,纵轴表示存储器单元的数量。在保持状态中,优化谷可以指示被优化以区分第一编程状态P1的存储器单元与第二编程状态P2的存储器单元的电压电平。详细地,在保持状态中,优化谷可以指示在具有第一编程状态P1的存储器单元的数量被最大化的电压电平与具有第二编程状态P2的存储器单元的数量被最大化的电压电平之间,具有错误位的存储器单元的数量被最小化的电压电平。
偏移信息可以指示优化谷与默认谷之间的差。随着时间从初始状态流逝,偏移信息的大小(例如,优化谷的电压电平与默认谷的电压电平之间的差)可以增加。图1的存储控制器110可以基于偏移信息来确定存储器单元的劣化水平。偏移信息可以用于在下一读取操作中优化读取电压电平或确定读取回收。
为了更好地理解本公开,图6示出了优化谷的电压电平高于默认谷的电压电平的情况,但是本公开不限于此。例如,取决于由一个存储器单元管理的位数、半导体工艺方法、读取电压电平,优化谷的电压电平可以低于默认谷的电压电平,并且偏移信息的大小可以增加或减少。
图7是描述分布信息的示例的示图。分布信息可以指偏移信息或OVS计数数据。将参考图7描述在读取三级单元TLC的中心有效位CSB的情况下使用OVS计数数据作为分布信息的示例的示例。OVS计数数据可以包括分别与读取电压相对应的OVS计数值。
在阈值电压分布曲线图中,横轴表示阈值电压,并且纵轴表示存储器单元的数量。第二读取电压电平VR2、第四读取电压电平VR4和第六读取电压电平VR6可以与三级单元TLC的中心有效位CSB的逻辑页面相对应。
参考阈值电压分布图,参考电压区段RVS能够指第二编程状态的开始和第一编程状态的结束之间的区域,例如,编程状态P2的开始和编程状态P1的结束。“x2”可以是第二读取电压电平VR2的低区域计数LAC的值。“x2”可以是均具有在第二读取电压电平VR2与参考电压区段RVS的下限之间的阈值电压的存储器单元的数量。“y2”可以是第二读取电压电平VR2的高区域计数HAC的值。“y2”可以是均具有在第二读取电压电平VR2与参考电压区段RVS的上限之间的阈值电压的存储器单元的数量。“x2”和“y2”之和可以被称为“第二读取电压电平VR2的第二OVS计数值OCV2”。
如在以上描述中,“x4”可以是第四读取电压电平VR4的低区域计数LAC的值。“y4”可以是第四读取电压电平VR4的高区域计数HAC的值。“x4”与“y4”之和可以被称为“第四读取电压电平VR4的第四OVS计数值OCV4”。此外,“x6”可以是第六读取电压电平VR6的低区域计数LAC的值。“y6”可以是第六读取电压电平VR6的高区域计数HAC的值。“x6”和“y6”之和可以被称为“第六读取电压电平VR6的第六OVS计数值OCV6”。
在一些实现方式中,分布信息可以用OVS计数数据来实现。例如,当存储器单元用三级单元TLC实现时,OVS计数数据可以包括与最低有效位LSB相对应的第一和第五OVS计数值,与中心有效位CSB相对应的第二、第四和第六OVS计数值,以及与最高有效位MSB相对应的第三和第七OVS计数值。
图8是描述优化谷和OVS计数值之间的关系的示例的示图。将参考图7和图8描述优化谷和OVS计数值之间的关系。在图8中,横轴表示阈值电压,并且纵轴表示存储器单元的数量。
在一些实现方式中,OVS计数值与优化谷的电压电平具有相关性。详细地,OVS计数值可以包括低区域计数LAC的计数值和高区域计数HAC的计数值。低区域计数LAC的计数值和高区域计数HAC的计数值中的至少一个可以与优化谷的电压电平具有相关性。例如,第六OVS计数值OCV6“y6”可以与第六读取电压电平VR6的优化谷值具有相关性。
图1的存储控制器110可以基于OVS计数值与优化谷之间的相关性,根据分布信息DI来计算优化谷的电压电平。
图9是描述防御码时段的示例的示图。参考图1和图9,命令管理器111可以用执行防御码的固件模块来实现。非易失性存储器设备120的存储器单元可以随时间顺序地操作正常时段、劣化时段和防御码时段。
在该示例中,正常时段是指不发生性能特性的劣化的时段;劣化时段是指发生性能特性劣化的时段;防御码时段是指在固件模块识别出性能特性的劣化之后执行防御码的时段。与存储在固件中的一些指令相对应的防御码可以指示防止或恢复数据错误的操作。
在图9的曲线图中,横轴表示时间,并且纵轴表示传输速度。实线表示读取操作的传输速度。粗实线表示写入动作的传输速度。
从T1到T2的时段被称为“正常时段”。在正常时段中,读取操作的性能特性可以保持一致或保持在几乎一致的高水平,并且写入操作的性能特性可以保持一致或保持在几乎一致的高水平。
从T2到T3的时段被称为“劣化时段”。劣化时段可以指其中发生性能特性的劣化但不执行防御码的时段。在劣化时段中,读取操作的性能特性可以略低于正常时段中的读取操作的性能特性,并且写入操作的性能特性可以略低于正常时段中的写入操作的性能特性。
从T3到T4的时段被称为“防御码时段”。防御码时段可以指其中性能特性显著劣化并且基于检测到不可纠正的错误来执行读取回收的时段。读取回收可以包括从劣化的存储器单元读取数据,再次将读取的数据写入新存储器单元中,并且擦除劣化的存储器单元的操作。为了降低劣化的存储器单元的读取操作中的错误水平,固件模块可以基于分布信息DI来优化读取电压电平。也就是说,在防御码时段会需要分布信息DI。
在一些实现方式中,在防御码时段中,命令管理器111可以参考通过先前读取命令获得并存储在易失性存储器设备113的缓冲存储器中的分布信息DI来执行防御码,而不是另外向非易失性存储器设备120请求分布信息DI。
换句话说,易失性存储器设备113的缓冲存储器可以每当获得读取数据时连续地接收并备份分布信息DI,并且可以在存储控制器110和非易失性存储器设备120之间没有附加I/O(即,与主机11的请求不相关联的虚设I/O)的情况下将备份的分布信息DI提供给固件模块。这样,可以抑制防御码时段中的性能的降低,并且可以改善存储设备100的性能和寿命。
图10是描述操作传统存储设备的方法的示例的流程图。提供传统存储设备是为了更好地理解本公开,而不旨在限制本公开的范围。传统存储设备可以包括现有技术中未公开的特征或与本公开相关联的特征。
参考图10,存储设备可以包括存储控制器和非易失性存储器设备。
在操作S11中,存储控制器将OVS读取命令提供给非易失性存储器设备。OVS读取命令可以用于从非易失性存储器设备请求存储在非易失性存储器设备中的读取数据和指示存储读取数据的存储器单元的劣化水平的OVS计数数据。OVS计数数据也可以被称为“分布信息”。
在操作S12中,非易失性存储器设备执行OVS读取操作。非易失性存储器设备可以生成与OVS读取操作相对应的读取数据和OVS计数数据。
在操作S13中,存储控制器从非易失性存储器设备接收读取数据。
在操作S14中,存储控制器对读取数据进行解码。例如,存储控制器可以基于对读取数据执行ECC解码的结果来确定读取数据的错误可纠正。
在操作S15中,存储控制器向非易失性存储器设备提供对OVS计数数据的请求。
在操作S16中,存储控制器从非易失性存储器设备接收OVS计数数据。
在操作S17中,存储控制器基于OVS计数数据来更新历史表。更新的历史表可以用于在下一读取操作中调整读取电压电平。
如上所述,传统存储设备可以彼此独立地请求读取数据和OVS计数数据。传统存储设备可以执行附加读取操作以获得分布信息(即,OVS计数数据),从而导致I/O负载和延迟的增加。
图11是描述操作存储设备的方法的示例的流程图。存储设备可以与图1的存储设备100相对应。参考图1和图11,存储设备100可以包括存储控制器110和非易失性存储器设备120。
在操作S110中,存储控制器110将读取命令提供给非易失性存储器设备120。读取命令可以指示非易失性存储器设备120的片上读取操作。
在一些实现方式中,非易失性存储器设备120被配置为响应于读取命令而总是一起返回读取数据和分布信息。例如,读取命令可以基于来自主机11的请求,而不是用于仅获得分布信息的虚设读取命令。
在操作S120中,非易失性存储器设备120执行片上读取操作。非易失性存储器设备120可以基于片上读取操作来生成读取数据和分布信息。
在一些实现方式中,分布信息包括存储器单元计数值。例如,分布信息可以指OVS计数数据。分布信息可以包括与多个读取电压相对应的OVS计数值。OVS计数值中的每一个可以包括低区域计数LAC的计数值和高区域计数HAC的计数值。
在一些实现方式中,分布信息包括偏移信息。例如,分布信息可以是基于OVS计数数据与优化谷之间的相关性预测的偏移信息。作为另一示例,分布信息可以是基于通过SHP(超高性能)-LRE方式找到的优化谷的偏移信息。SHP-LRE方式可以指通过使用在片上读取操作中获得的计数值来找到优化谷的方式。
在操作S130中,存储控制器110从非易失性存储器设备120接收读取数据和分布信息。存储控制器110的缓冲存储器可以存储读取数据和分布信息。
在一些实现方式中,存储控制器110从非易失性存储器设备120连续地接收读取数据和分布信息。例如,存储控制器110可以按每个读取命令实时地接收读取数据和分布信息。除了读取命令之外,可以不需要仅用于分布信息的单独的附加读取命令。读取数据和分布信息可以在存储控制器110和非易失性存储器设备120之间被连续地传送。
在操作S140中,存储控制器110对读取数据进行解码。例如,存储控制器110可以基于对读取数据执行ECC解码的结果来确定读取数据的错误可纠正。存储控制器110可以将解码的读取数据返回到主机11。
在操作S150中,存储控制器110基于分布信息更新历史表。在操作S130中,存储控制器110可以参考备份到存储控制器110的缓冲存储器的分布信息来更新历史表,而不是单独地向非易失性存储器设备120发出对分布信息的附加请求。也就是说,在操作S110中,除了读取命令之外,存储控制器110可以在没有附加读取命令或虚设I/O的情况下获取分布信息。因此,可以减少存储设备的内部I/O负载和延迟。
图12是描述操作存储设备的方法的示例的示图。存储设备可以与图1的存储设备100相对应。参考图1和图12,存储设备100可以包括存储控制器110和非易失性存储器设备120。
存储控制器110可以包括命令管理器111、历史表112和缓冲存储器113a。非易失性存储器设备120可以包括控制逻辑121、存储器单元阵列124和I/O电路127。控制逻辑121可以包括分布信息生成器121a和电熔丝电路121b。
下面,将详细描述操作存储设备100的方法。
在第一操作①中,命令管理器111将读取命令提供给非易失性存储器设备120。读取命令可以指示基于目标读取电压电平的片上读取操作。目标读取电压电平可以用于确定在片上读取操作中存储在存储器单元阵列124中的数据DT的位值。
在第二操作②中,控制逻辑121基于读取命令执行片上读取操作。例如,存储器单元阵列124的存储器单元可以存储数据DT。数据DT可以是基于先前的写入命令存储的数据。控制逻辑121可以通过基于读取命令的目标读取电压电平对数据DT执行片上读取操作来生成读取数据RDT和分布信息DI。控制逻辑121可以将读取数据RDT和分布信息DI提供给I/O电路127。
在执行片上读取操作时,存储数据DT的存储器单元阵列124的存储器单元的阈值电压分布可以与初始状态的阈值电压分布不同。读取数据RDT可以指代通过基于目标读取电压电平确定数据DT的位值而生成的数据。与读取数据RDT相对应的一系列位可以包括错误位(即,与初始状态的编程位值不同的位值)。分布信息DI可以与读取数据RDT相对应。分布信息DI可以指示存储器单元阵列124的存储器单元的劣化水平(例如,错误位的数量),其基于读取命令的目标读取电压电平而确定。
在一些实现方式中,控制逻辑121的分布信息生成器121a基于片上读取操作来生成分布信息DI。例如,控制逻辑121可以通过基于读取命令的目标读取电压电平确定存储器单元阵列124的数据DT的位值来生成读取数据RDT。分布信息生成器121a可以在获得读取数据RDT的同时生成分布信息DI作为读取数据RDT的副产品。
在一些实现方式中,分布信息生成器121a基于分布信息DI来更新电熔丝电路121b。例如,分布信息生成器121a可以将分布信息DI存储在电熔丝电路121b中。可替换地,分布信息生成器121a可以生成偏移信息作为分布信息,并且可以将偏移信息存储在电熔丝电路121b中。电熔丝电路121b的更新的分布信息DI可以用于下一读取操作中。
在第三操作③中,存储控制器110的缓冲存储器113a从非易失性存储器设备120的I/O电路127接收读取数据RDT和分布信息DI。读取数据RDT可以与第一操作①的读取命令相对应。存储控制器110可以获得读取数据RDT和分布信息DI两者,而不向非易失性存储器设备120提供除了读取命令之外的任何其他命令(例如,仅用于分布信息DI的附加读取命令)。因此,存储控制器110和非易失性存储器设备120之间的I/O负载可以减小。
在第四操作④中,命令管理器111基于分布信息DI来更新历史表112。例如,命令管理器111可以从缓冲存储器113a接收分布信息DI。命令管理器111可以基于分布信息DI生成偏移信息。命令管理器111可以将偏移信息存储在历史表112中。作为另一示例,在分布信息DI用偏移信息实现的情况下,命令管理器111可以将缓冲存储器113a的分布信息DI递送到历史表112。历史表112可以存储最终偏移信息。
在第五操作④中,命令管理器111基于历史表112的偏移信息来确定下一命令。例如,命令管理器111可以基于偏移信息来优化目标读取电压电平,并且可以发出指示优化的读取电压电平的下一读取命令。随着优化谷的电压电平被施加到目标读取电压电平,在下一读取操作中发生读取重试的次数可以减少。
作为另一示例,命令管理器111可以执行防止数据错误的防御码,并且可以在不可纠正的错误发生之前参考偏移信息执行读取回收操作。
图13是描述操作存储设备的方法的示例的示图。存储设备可以与图1的存储设备100相对应。参考图1和图13,存储设备100可以包括存储控制器110和非易失性存储器设备120。
存储控制器110可以包括命令管理器111、历史表112、缓冲存储器113a和ECC引擎116。非易失性存储器设备120可以包括控制逻辑121、存储器单元阵列124和I/O电路127。控制逻辑121可以包括分布信息生成器121a和电熔丝电路121b。
下面,将详细描述操作存储设备100的方法。
在第一操作①中,命令管理器111将读取命令提供给非易失性存储器设备120。读取命令可以指示基于目标读取电压电平的片上读取操作。
非易失性存储器设备120可以从命令管理器111接收读取命令。控制逻辑121可以基于读取命令执行片上读取操作。控制逻辑121可以通过基于读取命令的目标读取电压电平对数据DT执行片上读取操作来生成第一读取数据RDT1和第一分布信息DI1。控制逻辑121可以将第一读取数据RDT1和第一分布信息DI1提供给I/O电路127。
第一读取数据RDT1可以指代通过基于目标读取电压电平确定数据DT的位值而生成的数据。第一分布信息DI1可以指示存储器单元阵列124的存储器单元的劣化水平(例如,错误位的数量),其基于读取命令的目标读取电压电平而被确定。
在第二操作②中,存储控制器110的缓冲存储器113a从非易失性存储器设备120的I/O电路127接收第一读取数据RDT1和第一分布信息DI1。
在第三操作③中,ECC引擎116从缓冲存储器113a中取出第一读取数据RDT1和第一分布信息DI1当中的第一读取数据RDT1。ECC引擎116可以对第一读取数据RDT1执行去随机化和解码。第一读取数据RDT1的错误可能无法由ECC引擎116纠正。命令管理器111可以基于与ECC引擎116的通信来确定第一读取数据RDT1的错误不可纠正。
在第四操作④中,命令管理器111从缓冲存储器113a接收第一分布信息DI1。命令管理器111可以基于第一分布信息DI1确定读取重试电压电平。读取重试电压电平可以与基于第一分布信息DI1、取决于存储器单元阵列124的存储器单元的阈值电压分布的改变来优化目标读取电压电平的结果相对应。
在第五操作⑤中,命令管理器111将读取重试命令提供给非易失性存储器设备120。读取重试命令可以指示基于读取重试电压电平的片上读取操作。
非易失性存储器设备120可以从命令管理器111接收读取重试命令。控制逻辑121可以基于读取重试命令来执行片上读取操作。控制逻辑121可以通过基于读取重试命令的读取重试电压电平对数据DT执行片上读取操作来生成第二读取数据RDT2和第二分布信息DI2。
因为读取重试电压电平不同于第一操作①中的读取命令的目标读取电压电平,所以第二读取数据RDT2和第二分布信息DI2可以不同于第一读取数据RDT1和第一分布信息DI1。控制逻辑121可以将第二读取数据RDT2和第二分布信息DI2提供给I/O电路127。
在第六操作⑥中,存储控制器110的缓冲存储器113a从非易失性存储器设备120的I/O电路127接收第二读取数据RDT2和第二分布信息DI2。
在第七操作⑦中,ECC引擎116从缓冲存储器113a取出第二读取数据RDT2和第二分布信息DI2当中的第二读取数据RDT2。ECC引擎116可以对第二读取数据RDT2执行去随机化和解码。第二读取数据RDT2的错误可以由ECC引擎116纠正。命令管理器111可以基于与ECC引擎116的通信来确定第二读取数据RDT2的错误可纠正。
在第八操作⑧中,命令管理器111可以基于第二分布信息DI2来更新历史表112。例如,命令管理器111可以基于缓冲存储器113a的第二分布信息DI2来更新历史表112的偏移信息。历史表112可以存储最终偏移信息。历史表112的偏移信息可以用于命令管理器111生成下一命令。
图14是描述存储设备的内部通信的示例的示图。参考图14,存储设备100可以包括缓冲存储器113a、ECC引擎116和I/O电路127。
缓冲存储器113a可以执行与ECC引擎116的直接存储器访问(DMA)通信。例如,缓冲存储器113a可以包括DMA接口。I/O电路127可以包括DMA接口。缓冲存储器113a的DMA接口和I/O电路127的DMA接口可以支持DMA通信。
DMA通信可以用于递送数据信号和读取使能信号RE。数据信号可以包括读取数据RDT和分布信息DI。读取数据RDT可以包括多个读取数据位RDTa至RDTn。分布信息DI可以包括多个分布信息位DIa至DIm。读取使能信号RE可以是用于确定数据信号的时钟信号。例如,包括在数据信号中的位的值可以在读取使能信号RE的上升沿和下降沿处被确定。
ECC引擎116可以从缓冲存储器113a的数据信号识别读取数据RDT,并且可以对读取数据RDT执行去随机化和解码。例如,读取数据位RDTa至RDTn的数量可以由缓冲存储器113a和ECC引擎116的通信协议定义。缓冲存储器113a可以基于读取使能信号RE和由通信协议定义的位数,向ECC引擎116提供数据信号的读取数据RDT。ECC引擎116可以对读取数据RDT执行去随机化和解码。因为分布信息DI指示存储器单元的劣化水平而不管随机化和编码如何,所以ECC引擎116可以不对分布信息DI执行去随机化和解码。
图15是描述操作存储控制器的方法的示例的流程图。将参考图15描述操作存储控制器的方法。存储控制器可以与主机和非易失性存储器设备通信。存储控制器可以与参考图1、2、11、12和13描述的存储控制器110相对应。
在操作S210中,存储控制器将读取命令提供给非易失性存储器设备。非易失性存储器设备可以支持片上读取操作。读取命令可以指示基于目标读取电压电平的片上读取操作。片上读取操作可以用根据SHP-LRE方式的OVS读取操作或片上谷搜索操作来实现。非易失性存储器设备可以基于片上读取操作生成分布信息,并且可以更新非易失性存储器设备的电熔丝电路中的分布信息。
在操作S220中,存储控制器从非易失性存储器设备接收读取数据和分布信息。例如,存储控制器可以接收读取数据和分布信息两者,而不向非易失性存储器设备提供除了操作S210中的读取命令之外的任何其他命令。
分布信息可以包括基于片上读取操作生成的计数值或偏移信息。计数值可以与处理读取命令时的优化谷的电压电平具有相关性。偏移信息可以指示在非易失性存储器设备处理读取命令时的优化谷的电压电平与在初始时间的默认谷的电压电平之间的差。
在一些实现方式中,存储控制器的缓冲存储器存储读取数据和分布信息。例如,存储控制器的缓冲存储器可以从非易失性存储器设备接收读取数据和分布信息。
在一些实现方式中,存储控制器基于DMA通信从非易失性存储器设备接收读取数据和分布信息。
在操作S230中,存储控制器确定读取数据的错误可纠正。例如,存储控制器的ECC引擎可以对读取数据执行ECC解码。读取数据的错误可以通过ECC解码来纠正。
在操作S240中,存储控制器基于分布信息来更新历史表的偏移信息。历史表的偏移信息可以用于生成下一命令。例如,在操作S240之后,存储控制器可以基于历史表的偏移信息来优化目标读取电压电平,并且可以生成下一读取命令。
在一些实现方式中,读取命令基于主机的请求。例如,操作存储控制器的方法还可以包括在执行操作S210之前基于主机的请求生成读取命令。操作存储控制器的方法还可以包括在操作S230之后向主机提供解码的读取数据。
图16是描述操作存储设备的方法的示例的流程图。将参考图16描述操作存储设备的方法。存储设备可以与主机通信。存储设备可以包括存储控制器和非易失性存储器设备。存储设备可以与图1、2、11、12和13的存储设备100相对应。
在操作S310中,存储设备的存储控制器向非易失性存储器设备提供读取命令。
在操作S311中,存储设备的非易失性存储器设备执行片上读取操作以生成分布信息。非易失性存储器设备可以生成读取数据和分布信息。
在操作S320中,存储设备的存储控制器从非易失性存储器设备接收读取数据和分布信息。读取数据和分布信息可以被存储在存储控制器的缓冲存储器中。
在操作S330中,存储设备的存储控制器确定读取数据的错误是否不可纠正。当存储控制器确定读取数据的错误可纠正时,存储设备执行操作S340。
在操作S340中,存储设备的存储控制器基于分布信息来更新历史表的偏移信息。
返回到操作S330,当存储控制器确定读取数据不可纠正时,存储控制器执行操作S350。
在操作S350中,存储设备的存储控制器基于分布信息来确定读取重试电压电平。
在操作S351中,存储设备的存储控制器基于读取重试电压电平执行读取重试操作。例如,操作S360可以包括由存储控制器向非易失性存储器设备提供指示读取重试电压电平的读取重试命令,由非易失性存储器设备基于读取重试命令生成另一读取数据和另一分布信息,以及由存储控制器从非易失性存储器设备接收与读取重试命令相对应的另一读取数据和另一分布信息。
在操作S352中,存储设备基于读取重试操作来更新历史表的偏移信息。例如,操作S352可以包括确定与读取重试命令相对应的另一读取数据的错误是否不可由存储控制器纠正,并且响应于确定另一读取数据的错误可由存储控制器纠正,基于与读取重试命令相对应的另一分布信息来更新历史表的偏移信息。
在一些实现方式中,提供了一种接收读取数据和分布信息的存储控制器、一种操作该存储控制器的方法以及一种操作包括该存储控制器的存储设备的方法。
在一些实现方式中,提供了一种存储控制器、一种操作存储控制器的方法以及一种操作包括存储控制器的存储设备的方法,该存储控制器基于读取命令获得读取数据和分布信息两者,并且在没有对非易失性存储器设备的附加读取操作的情况下确定下一操作,使得I/O负载和延迟减少,性能的降低被抑制,并且可靠性被提高。
虽然已经参考本公开的示例描述了本公开,但是对于本领域普通技术人员来说显而易见的是,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可以对其进行各种改变和修改。
Claims (20)
1.一种操作与非易失性存储器设备通信的存储控制器的方法,所述方法包括:
由存储控制器向非易失性存储器设备提供读取命令;
从非易失性存储器设备连续地接收与读取命令相对应的第一读取数据和第一分布信息;
确定第一读取数据的错误是否可纠正;以及
在确定第一读取数据的错误是否可纠正之后执行后续操作,
其中,所述执行后续操作包括:
在确定第一读取数据的错误可纠正之后,基于第一分布信息更新存储控制器中的历史表的偏移信息;或者
在确定第一读取数据的错误不可纠正之后,基于第一分布信息确定读取重试电压电平。
2.根据权利要求1所述的方法,其中,所述存储控制器与主机通信,
其中,所述方法包括:
在提供读取命令之前,由存储控制器基于来自主机的请求生成读取命令;以及
在确定第一读取数据的错误可纠正之后,将第一读取数据提供给主机。
3.根据权利要求1所述的方法,其中,从非易失性存储器设备连续地接收与读取命令相对应的第一读取数据和第一分布信息包括:
在不向非易失性存储器设备递送除读取命令之外的另一命令的情况下,接收第一读取数据和第一分布信息。
4.根据权利要求1所述的方法,其中,非易失性存储器设备被配置为基于读取命令的目标读取电压电平来执行片上读取操作,并且
其中,第一分布信息包括基于片上读取操作生成的偏移信息或计数值。
5.根据权利要求4所述的方法,其中,所述片上读取操作包括片上谷搜索(OVS)读取操作,并且
其中,包括在第一分布信息中的计数值包括:
第一计数值,指示其相应阈值电压在目标读取电压电平与参考电压区段的下限之间的存储器单元的数量,;以及
第二计数值,指示其相应阈值电压在目标读取电压电平与参考电压区段的上限之间的存储器单元的数量。
6.根据权利要求5所述的方法,其中,第一计数值和第二计数值中的至少一个与优化谷的电压电平具有相关性,
其中,目标读取电压电平区分第一状态的存储器单元与第二状态的存储器单元,并且
其中,优化谷的电压电平(i)在第一状态的存储器单元的数量被最大化的第一电压电平与第二状态的存储器单元的数量被最大化的第二电压电平之间,并且(ii)在具有错误位的存储器单元的数量被最小化的电压处。
7.根据权利要求1所述的方法,其中,偏移信息指示在当非易失性存储器设备处理读取命令时的优化谷的电压电平与在初始时间的默认谷的电压电平之间的差。
8.根据权利要求1所述的方法,其中,从非易失性存储器设备连续地接收与读取命令相对应的第一读取数据和第一分布信息包括:
由存储控制器的缓冲存储器接收第一读取数据和第一分布信息。
9.根据权利要求8所述的方法,其中,由存储控制器的缓冲存储器接收第一读取数据和第一分布信息包括:
基于缓冲存储器与非易失性存储器设备之间的直接存储器访问(DMA)通信来接收第一读取数据和第一分布信息。
10.根据权利要求8所述的方法,其中,确定第一读取数据的错误是否可纠正包括:
由存储控制器的纠错码(ECC)引擎取出缓冲存储器的第一读取数据和第一分布信息当中的第一读取数据;
对所述取出的第一读取数据执行去随机化和解码;以及
基于去随机化和解码来确定第一读取数据的错误是否可纠正。
11.根据权利要求1所述的方法,包括:
基于历史表的偏移信息来优化目标读取电压电平;以及
向非易失性存储器设备提供指示优化的目标读取电压电平的下一读取命令。
12.根据权利要求11所述的方法,其中,基于历史表的偏移信息来优化目标读取电压电平包括:
在不向非易失性存储器设备提供除了读取命令之外的另一命令的情况下,优化目标读取电压电平。
13.根据权利要求1所述的方法,包括当确定第一读取数据的错误不可纠正时:
基于读取重试电压电平执行读取重试操作;以及
基于读取重试操作来更新历史表的偏移信息。
14.根据权利要求13所述的方法,其中,基于读取重试电压电平执行读取重试操作包括:
向非易失性存储器设备提供指示读取重试电压电平的读取重试命令;以及
从非易失性存储器设备连续地接收与读取重试命令相对应的第二读取数据和第二分布信息。
15.根据权利要求14所述的方法,其中,基于读取重试操作来更新历史表的偏移信息包括:
确定第二读取数据的错误可纠正;以及
在确定第二读取数据的错误可纠正之后,基于第二分布信息来更新历史表的偏移信息。
16.一种操作包括非易失性存储器设备和存储控制器的存储设备的方法,所述方法包括:
由存储控制器向非易失性存储器设备提供读取命令;
由非易失性存储器设备基于读取命令执行片上读取操作;
由非易失性存储器设备向存储控制器连续地提供与片上读取操作相对应的读取数据和分布信息;
由存储控制器确定读取数据的错误可纠正;以及
在确定读取数据的错误可纠正之后,由存储控制器基于分布信息来更新存储控制器中的历史表的偏移信息。
17.根据权利要求16所述的方法,其中,基于读取命令执行片上读取操作包括:
由非易失性存储器设备基于读取命令的目标读取电压电平生成读取数据和分布信息;以及
由非易失性存储器设备更新非易失性存储器设备的电熔丝电路中的分布信息。
18.一种存储控制器,包括:
命令管理器,被配置为向非易失性存储器设备提供读取命令;
缓冲存储器,被配置为从非易失性存储器设备连续地接收与读取命令相对应的第一读取数据和第一分布信息;
纠错码(ECC)引擎,被配置为与缓冲存储器通信并解码第一读取数据,其中,命令管理器可操作以控制ECC引擎;以及
历史表,被配置为管理偏移信息,
其中,命令管理器被配置为:
基于与ECC引擎的通信,确定第一读取数据的错误是否可纠正,以及
在确定第一读取数据的错误是否可纠正之后执行后续操作,
其中,所述执行后续操作包括:
在确定第一读取数据的错误可纠正之后,基于缓冲存储器的第一分布信息来更新历史表的偏移信息,或者
在确定第一读取数据的错误不可纠正之后,基于第一分布信息确定读取重试电压电平。
19.根据权利要求18所述的存储控制器,其中,命令管理器还被配置为:
基于历史表的偏移信息来优化目标读取电压电平;以及
向非易失性存储器设备提供指示优化的目标读取电压电平的下一读取命令。
20.根据权利要求18所述的存储控制器,其中,命令管理器被配置为:
向非易失性存储器设备提供指示读取重试电压电平的读取重试命令,
其中,缓冲存储器可操作以从非易失性存储器设备连续地接收与读取重试命令相对应的第二读取数据和第二分布信息,
其中,ECC引擎还被配置为解码第二读取数据,并且
其中,命令管理器还被配置为:
基于与ECC引擎的通信,确定第二读取数据的错误可纠正,以及
在确定第二读取数据的错误可纠正之后,基于缓冲存储器的第二分布信息来更新历史表的偏移信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0089310 | 2022-07-20 | ||
KR1020220089310A KR102509549B1 (ko) | 2022-07-20 | 2022-07-20 | 읽기 데이터 및 산포 정보를 수신하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117437965A true CN117437965A (zh) | 2024-01-23 |
Family
ID=85502855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310301818.6A Pending CN117437965A (zh) | 2022-07-20 | 2023-03-24 | 存储控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240012569A1 (zh) |
KR (1) | KR102509549B1 (zh) |
CN (1) | CN117437965A (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160004073A (ko) * | 2014-07-02 | 2016-01-12 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 구동 방법 |
KR102392056B1 (ko) * | 2017-12-27 | 2022-04-28 | 삼성전자주식회사 | 메모리 장치의 데이터 독출 방법, 메모리 컨트롤러의 제어 방법 및 이들을 포함하는 저장 장치 |
KR20220058278A (ko) * | 2020-10-30 | 2022-05-09 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법 |
KR20220065296A (ko) * | 2020-11-13 | 2022-05-20 | 삼성전자주식회사 | 비휘발성 메모리 장치의 블록 내구성 측정 방법 및 이를 이용한 스토리지 장치의 웨어 레벨링 방법 |
KR20220067419A (ko) * | 2020-11-17 | 2022-05-24 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 이들의 동작 방법 |
KR20220077312A (ko) * | 2020-12-01 | 2022-06-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 제어하도록 구성된 컨트롤러의 동작 방법 및 스토리지 장치의 동작 방법 |
KR20220080790A (ko) * | 2020-12-07 | 2022-06-15 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법 |
-
2022
- 2022-07-20 KR KR1020220089310A patent/KR102509549B1/ko active IP Right Grant
-
2023
- 2023-03-15 US US18/184,319 patent/US20240012569A1/en active Pending
- 2023-03-24 CN CN202310301818.6A patent/CN117437965A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR102509549B1 (ko) | 2023-03-14 |
US20240012569A1 (en) | 2024-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8281064B2 (en) | Systems, methods and computer program products for encoding data to be written to a nonvolatile memory based on wear-leveling information | |
US9672942B2 (en) | Data decoding method of non-volatile memory device and apparatus for performing the method | |
JP6072442B2 (ja) | メモリシステム及びそれの動作方法 | |
US8665643B2 (en) | Non-volatile memory device and read method thereof | |
KR100902008B1 (ko) | 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를 포함한 메모리 시스템 | |
US11947422B2 (en) | Nonvolatile semiconductor memory device | |
US9164889B2 (en) | Memory system to select program operation method and method thereof | |
US9672149B2 (en) | Partial page programming of nonvolatile memory device | |
US11461177B2 (en) | Data storage device and method of operating the same | |
US11061614B2 (en) | Electronic apparatus having data retention protection and operating method thereof | |
CN110010185B (zh) | 存储器系统及其操作方法 | |
CN110970074A (zh) | 存储器系统及其操作方法 | |
US11894059B2 (en) | Apparatus and method for programming data in a non-volatile memory device | |
CN113628655A (zh) | 用以存取闪存模块的方法、闪存控制器与电子装置 | |
CN117666943A (zh) | 存储控制器、包括其的存储装置及其操作方法 | |
US12073904B2 (en) | Storage controller including parity management module, storage device including the same, and operating method of storage device | |
US20230187002A1 (en) | Storage controller using history data, method of operating the same, and method of operating storage device including the same | |
US11915762B2 (en) | Apparatus and method for programming data in a non-volatile memory device | |
CN115938440A (zh) | 确定错误计数的存储控制器、操作其的方法以及操作包括其的存储设备的方法 | |
EP4310847A2 (en) | Storage controller | |
CN117437965A (zh) | 存储控制器 | |
EP4318248A1 (en) | Non-volatile memory device determining read reclaim, method of operating the same, and method of operating storage device including the same | |
US20240046993A1 (en) | Non-volatile memory device determining read reclaim, method of operating the same, and method of operating storage device including the same | |
EP4198988A1 (en) | Storage controller using history data, method of operating the same, and method of operating storage device including the same | |
US20240078018A1 (en) | Storage devices calculating a wordline gap value, and methods of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |