CN109671465B - 具有自适应读取阈值方案的存储器***及其操作方法 - Google Patents
具有自适应读取阈值方案的存储器***及其操作方法 Download PDFInfo
- Publication number
- CN109671465B CN109671465B CN201810981468.1A CN201810981468A CN109671465B CN 109671465 B CN109671465 B CN 109671465B CN 201810981468 A CN201810981468 A CN 201810981468A CN 109671465 B CN109671465 B CN 109671465B
- Authority
- CN
- China
- Prior art keywords
- read
- performance
- read threshold
- initial
- memory
- 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.)
- Active
Links
Images
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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- 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/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- 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/26—Sensing or reading circuits; Data output circuits
- G11C16/28—Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C2029/1802—Address decoder
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C2029/1806—Address conversion or mapping, i.e. logical to physical address
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/14—Dummy cell management; Sense reference voltage generators
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及存储器***的自适应读取阈值方案,其确定具有最低BER/UECC失败率同时继续以所需QoS为主机读取服务的读取阈值。当确定特定读取阈值不满足QoS或其它质量度量时,估计其它读取阈值的性能,其中特定读取阈值可以是初始的、默认的读取阈值。然后可使用这些估计来确定最佳读取阈值。在迭代过程中,可动态地确定例如以下的选择变量:在将来的读取尝试中,多个非默认读取阈值中的每一个的使用次数以及所针对的读取命令。
Description
相关申请的交叉引用
本申请要求于2017年8月29日提交的申请号为62/551,596的美国临时申请的权益,该申请的全部内容通过引用并入本文。
技术领域
本公开的实施例涉及一种具有自适应读取阈值方案的存储器***及操作这种存储器***的方法。
背景技术
计算机环境范例已经变为可在任何时间和任何地点使用的普适计算***。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经快速增长。这些便携式电子装置通常使用具有存储器装置即数据存储装置的存储器***。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
使用存储器装置的数据存储装置因不具有移动部件而提供优良的稳定性、耐用性、高信息存取速度以及低功耗。具有这种优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
SSD可包括闪速存储器部件和控制器,该控制器包括将闪速存储器部件桥接到SSD输入/输出(I/O)接口的电子器件。SSD控制器可包括可以执行诸如固件的功能部件的嵌入式处理器。SSD功能部件通常是装置特定的,并且在大多数情况下可进行更新。
两种主要类型的闪速存储器部件以NAND和NOR逻辑门命名。单独的闪速存储器单元展现出与其相应的门的内部特性类似的内部特性。NAND型闪速存储器可以块(或页面)的形式写入和读取,这些块(或页面)通常比整个存储空间小很多。NOR型闪存允许将单个机器字(字节)写入擦除位置或进行独立地读取。NAND型闪速存储器主要在存储卡、USB闪存驱动器、固态驱动器和类似产品中操作以用于数据的一般存储和传输。
企业SSD具有严格的QoS要求,这使得使用经济高效的三层单元(TLC)NAND闪存变得困难。NAND闪存通过将NAND闪存单元的浮动栅极中的电荷存储到8个可能的PV电平中的一个来存储数据。存储在单元中的电荷随机变化,这种变化取决于NAND块的条件。条件包括块经历的编程擦除循环的次数、块的保持时间、对块的页面读取次数以及页面类型。根据NAND条件,不同的读取阈值设置可具有不同的位错误率(BER)和对应的不可校正错误校正码(UECC)失败率。对于不同的块和管芯而言,读取阈值的BER也可发生变化。然而,各个不同的读取阈值设置的BER并非是先验已知的。
因此,需要一种自适应方案来寻找具有最低BER/UECC失败率的读取阈值同时继续以所需QoS为主机读取服务。
在这种背景下,提出了本发明的实施例。
发明内容
本发明的方面包括存储器***。这种存储器***可包括存储器装置、性能***和可与性能***分离或组合的读取阈值选择器。性能***可以:响应于读取命令,在初始读取阈值处监视对存储器装置的读取尝试;跟踪在初始阈值处的读取尝试的性能;并且当在初始阈值处的读取尝试的性能低于设置的质量度量时,估计多个其它非初始读取阈值中的每一个的性能。读取阈值选择器可基于性能估计来选择何时使用多个其它读取阈值中的每一个及其使用次数,并且基于性能估计来确定最佳读取阈值。
本发明的其它方面包括方法,特别是操作存储器***的方法。这种方法可包括:响应于读取命令,在初始读取阈值处监视对存储器***的存储器装置的读取尝试;跟踪在初始读取阈值处的读取尝试的性能;当在初始读取阈值处的读取尝试的性能低于设置的质量度量时,估计多个其它非初始读取阈值中的每一个的性能;以及基于估计操作的结果确定最佳读取阈值。动态地(on-the-fly)确定估计操作中何时使用多个读取阈值中的每一个及其使用次数。
从以下描述中,本发明另外的方面将变得显而易见。
附图说明
图1是示意性地示出根据本发明的实施例的存储器***的框图。
图2是示出根据本发明的实施例的存储器***的框图。
图3是示出根据本发明的实施例的存储器***的存储器装置的存储块的电路图。
图4是根据本发明的实施例的示例性存储器***的示图。
图5是示出根据本发明的实施例的自适应读取阈值方案的示意性框图。
图6是根据本发明的实施例的操作存储器***或装置以执行自适应读取阈值方案的方法中的步骤的流程图。
具体实施方式
以下参照附图更详细地描述各个实施例。然而,本发明可以不同形式实施,并且不应被解释为限于本文阐述的实施例。相反地,提供这些实施例以使本公开彻底且充分,并且将本发明的范围全面地传达给本领域的技术人员。此外,本文中对“一个实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以多种方式实施,包括作为进程;设备;***;物质的组成;呈现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如适于执行存储在联接到该处理器的存储器上的指令和/或由联接到该处理器的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可能采取的任何其它形式可被称为技术。通常,所公开进程的步骤的顺序可在本发明的范围内改变。除非另有说明,否则被描述为适于执行任务的诸如处理器或者存储器的部件可被实施为暂时在给定时间执行任务的一般部件或被制造为执行任务的特定部件。如本文所使用的,术语“处理器”等指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
下面提供了本发明的实施例的详细描述以及示出本发明各方面的附图。结合这些实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定。本发明包括处于权利要求范围内的许多替换、修改和等同物。为了提供对本发明的全面理解,在下面的描述中阐述了许多具体细节。为了示例的目的提供这些细节,并且可在没有一些或所有这些具体细节的情况下,根据权利要求实施本发明。为了清楚,没有详细描述与本发明相关的技术领域中公知的技术内容,以免不必要地模糊本发明。
图1是示意性地示出根据本发明的实施例的存储器***的框图。
参照图1,存储器***10可包括存储器控制器100和半导体存储器装置200,该半导体存储器装置200可代表多于一个的这种装置。半导体存储器装置200可以是闪速存储器装置,特别是NAND型的闪速存储器装置。
存储器控制器100可控制半导体存储器装置200的全部操作。
半导体存储器装置200可在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可通过输入/输出(I/O)线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可通过电源线接收电力PWR,并且通过控制线接收控制信号CTRL。控制信号CTRL可包括命令锁存启用(CLE)信号、地址锁存启用(ALE)信号、芯片启用(CE)信号、写入启用(WE)信号、读取启用(RE)信号等。
存储器控制器100和半导体存储器装置200可被集成在诸如固态驱动器(SSD)的单个半导体装置中。SSD可包括用于在其中存储数据的存储装置。当在SSD中使用半导体存储器***10时,联接到存储器***10的主机(未示出)的操作速度可显著提高。
存储器控制器100和半导体存储器装置200可被集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可进行集成以配置:个人计算机存储卡国际协会(PCMCIA)的PC卡、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、缩小尺寸的多媒体卡(RS-MMC)、微型版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、高容量安全数字卡(SDHC)和/或通用闪存(UFS)。
在另一实施例中,存储器***10可被提供为诸如以下的电子装置中的各种部件中的一种:计算机、超移动PC(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和发送信息的装置、射频识别(RFID)装置以及家庭网络的各种电子装置中的一种、远程信息处理网络的各种电子装置中的一种或计算***的各种部件中的一种。
图2是示出根据本发明的实施例的存储器***的详细框图。例如,图2的存储器***可描述图1所示的存储器***10。
参照图2,存储器***10可包括存储器控制器100和半导体存储器装置200。存储器***10可响应于来自主机装置的请求而操作,并且特别地,存储待由主机装置访问的数据。
主机装置可利用各种电子装置中的任意一种来实施。在一些实施例中,主机装置可包括诸如以下的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、和/或数字视频记录器以及数字视频播放器。在一些实施例中,主机装置可包括诸如以下的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器装置200可存储待由主机装置访问的数据。
存储器装置200可利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置来实施。
控制器100可控制数据在存储器装置200中的存储。例如,控制器100可响应于来自主机装置的请求来控制存储器装置200。控制器100可将从存储器装置200读取的数据提供给主机装置并可将从主机装置提供的数据存储到存储器装置200中。
控制器100可包括通过总线160联接的存储装置110、可被实施为诸如中央处理单元(CPU)的处理器的控制部件120、错误校正码(ECC)部件130、主机接口(I/F)140和存储器接口(I/F)150。
存储装置110可用作存储器***10和控制器100的工作存储器,并且存储用于驱动存储器***10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可存储由控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作而使用的数据。
存储装置110可利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器实施。如上所述,存储装置110可将主机装置使用的数据存储在存储器装置200中,以用于读取操作和写入操作。为了存储数据,存储装置110可包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制部件120可控制存储器***10的一般操作,以及响应于来自主机装置的写入请求或读取请求控制存储器装置200的写入操作或读取操作。控制部件120可驱动被称为闪存转换层(FTL)的固件来控制存储器***10的一般操作。例如,FTL可执行诸如逻辑到物理(L2P)映射、损耗均衡、垃圾收集和/或坏块处理的操作。L2P映射被称为逻辑块寻址(LBA)。
ECC部件130可检测并校正在读取操作期间从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC部件130不校正错误位,而是代替地可输出表示校正错误位失败的错误校正失败信号。
在一些实施例中,ECC部件130可基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归***码(RSC)、网格编码(trellis-coded)调制(TCM)以及分组编码调制(BCM)等。这样,ECC部件130可包括用于适当的错误校正操作的所有电路、***或装置。
主机接口140可通过诸如以下的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速***组件互连(PCI-E)、小型计算机***接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
存储器接口150可提供在控制器100和存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可在CPU 120的控制下生成用于存储器装置200的控制信号并处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可在CPU 120的控制下生成用于存储器的控制信号并处理数据。
存储器装置200可包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可处于页面缓冲器阵列形式的页面缓冲器250、列解码器260和输入/输出电路270。存储器单元阵列210可包括可存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器阵列250、列解码器260和输入/输出电路270可形成存储器单元阵列210的***电路。***电路可执行存储器单元阵列210的编程操作、读取操作或擦除操作。控制电路220可控制***电路。
电压生成电路230可生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可生成各种电平的操作电压,诸如擦除电压和通过电压。
行解码器240可与电压生成电路230和多个存储块211电通信。行解码器240可响应于由控制电路220生成的行地址RADD在多个存储块211中选择至少一个存储块,并将从电压生成电路230提供的操作电压传输到所选择的存储块。
页面缓冲器250可通过位线BL与存储器单元阵列210电通信(如图3所示)。响应于由控制电路220生成的页面缓冲器控制信号,页面缓冲器250可利用正电压对位线BL进行预充电,在编程操作和读取操作中向所选择的存储块传输数据/从所选择的存储块接收数据,或者临时存储传输的数据。
列解码器260可向页面缓冲器250传输数据/从页面缓冲器250接收数据,或者向输入/输出电路270传输数据/从输入/输出电路270接收数据。
输入/输出电路270可通过输入/输出电路270向控制电路220传输从外部装置(例如,存储器控制器100)接收的命令和地址,将数据从外部装置传输到列解码器260,或将数据从列解码器260输出到外部装置。
控制电路220可响应于命令和地址来控制***电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2所示的存储器单元阵列210的存储块211中的任意一个。
参照图3,示例性存储块211可包括联接到行解码器240的多个字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线可平行布置,其中多个字线处于DSL与SSL之间。
示例性存储块211可进一步包括分别联接到位线BL0至BLm-1的多个单元串221。每列的单元串可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在所示实施例中,每一个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可串联联接在选择晶体管DST和SST之间。存储器单元中的每一个可被形成为存储多位数据信息的多层单元(MLC)。
每一个单元串中的SST的源极可联接到共源线CSL,并且每一个DST的漏极可联接到对应的位线。单元串中SST的栅极可联接到SSL,并且单元串中的DST的栅极可联接到DSL。跨越单元串的存储器单元的栅极可联接到各个字线。也就是说,存储器单元MC0的栅极联接到对应的字线WL0,存储器单元MC1的栅极联接到对应的字线WL1等。联接到特定字线的存储器单元组可被称为物理页面。因此,存储块211中的物理页的数量可对应于字线的数量。
页面缓冲器阵列250可包括联接到位线BL0至BLm-1的多个页面缓冲器251。页面缓冲器251可响应于页面缓冲器控制信号进行操作。例如,在读取或验证操作期间,页面缓冲器251可临时存储通过位线BL0至BLm-1接收的数据,或者感测位线的电压或电流。
在一些实施例中,存储块211可包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可包括NOR型闪速存储器单元。存储器单元阵列210可被实施为混合闪速存储器或1-NAND闪速存储器,其中混合闪速存储器中组合了两种或更多种类型的存储器单元,1-NAND闪速存储器中控制器嵌入在存储器芯片内部。
参照图4,示意性地示出了存储器***40的一般示例。存储器***40可包括易失性存储器400(例如,DRAM)、非易失性存储器(NVM)402(例如,NAND)、诸如本文所述的控制部件或控制逻辑404、诸如本文所述的错误校正码(ECC)模块406以及总线408,其中存储器***40的这些部件通信通过总线408。易失性存储器400可包括用于将位的物理到逻辑地址进行映射的逻辑位地址LBA表410。NVM 402可包括多个存储块(和/或多个超级存储块),以及用于主机写入的开放块430和用于垃圾收集(GC)的开放块440。存储器***40示出了通用存储器***。根据本公开,本领域技术人员将理解,存储器***可利用另外的/可选的部件来实现本发明。
本发明的各个方面涉及在继续以所需的QoS为主机读取服务的同时在确定或识别具有最低位错误率(BER)/不可校正错误校正码(UECC)失败率的读取阈值方面的改进。本发明的各个方面涉及用于在多个允许的读取阈值中确定或识别最佳读取阈值的自适应方法。本发明的各个方面可使较低成本的TLC NAND闪存能够在具有更严格的QoS要求的企业SSD中使用。
通常,本发明的实施例的自适应读取阈值方案包括可组合成单个模块的QoS跟踪模块和读取阈值模块。这种单独的模块或组合的模块可在存储器控制器中实现,例如存储器控制器100或控制器404。
在实施例中,在典型的场景中,最佳已知的读取阈值设置(读取阈值)被用作默认或初始读取阈值。当QoS跟踪确定QoS超过驱动器规范或其它合适的质量度量时,在主机读取时估计其它读取阈值的性能。然后,这些估计可用于确定最佳读取阈值,以及确定用于将来读取重试的阈值。
从一组N个可能的读取阈值开始,找到最佳读取阈值可被表述为多臂***(multi-armed bandit,MAB)问题。在实施例中,固件可为它需要服务的读取命令的部分f_i应用给定的读取阈值r_i。可动态修改部分f_i。为了满足QoS要求,固件可贪婪地使用N个可能的可用读取阈值中最佳已知的读取阈值。这可被认为是开发阶段。
在适当的条件下(例如,较低的主机流量和/或自上次读取重试尝试以来的较长时间),固件可选择发出具有其它阈值的NAND读取,以估计这些阈值的BER。这可被认为是勘探阶段。
勘探-开发比率基于SSD的QoS延迟要求来确定。可基于各种MAB算法更新部分f_i。
用于确定读取阈值的简单方案可按如下实施。给定N个可能的读取阈值,固件可尝试利用每一个阈值进行主机读取的1/N部分,并估计对应的BER。这可被认为是这种方案中的学习阶段。在M次主机读取之后,固件可使用具有最低估计BER的阈值。这可被认为是正常阶段。
如果所选择的读取阈值远不是最佳阈值,则BER可能非常高,并且可能针对具有该阈值的所有NAND读取发生UECC失败。如果在单个NAND读取中无法满足主机读取的给定部分,则可能无法满足读取延迟QoS。表1示出了企业驱动器根据每一个4KB主机读取命令所允许的读取延迟的读取延迟规范。表2示出了电流生成TLC NAND的每一个NAND读取命令的近似等待时间。表3示出了基于表1和表2计算的允许的读取尝试次数及其对应的百分位数。假设要求:90%的主机读取必须与单个NAND读取一起提供,则在学习阶段,简单方案可能无法满足QoS要求。
表1:根据典型的企业SSD规范,读取命令的最大允许延迟和百分位数。
表2:典型的TLC NAND装置的读取尝试次数和延迟。
表3:基于表1和表2的读取尝试次数及其最小百分位数。
因为NAND闪速存储器的条件可能随时间而变化,所以最佳读取阈值可能会偏离在学***稳的。当在正常阶段发生页面读取的UECC失败时,重要的是正确地选择下一读取尝试的读取阈值,使得其具有较高的成功机率。然而,假设已经发生UECC失败,很可能的是,与各个读取阈值相对应的真实的BER可能与来自学习阶段的BER估计非常不同。因此,简单方案也可能不能满足正常阶段的QoS要求。
图5是根据本发明的实施例的自适应读取阈值方案的框图。这种方案可以固件或固件、软件和硬件的各种组合来实施。可从例如主机509中的命令队列501发出读取命令或请求。然后,在初始或默认读取阈值处尝试对例如存储器装置200的存储器装置的读取。初始或默认阈值可能在当时是已知的。在实施例中,组合QoS跟踪和读取阈值选择的模块,即组合QoS性能***和读取阈值选择器503的模块,可在初始或默认读取阈值处监视最后的P页面读取所需的读取尝试次数,其中可基于可用的存储器来确定或设置P的值。如上所述,QoS跟踪和读取阈值选择可由不同的模块执行。
当读取尝试的次数超过如QoS性能***和读取阈值选择器503所确定的质量度量时,可确定使用不同于默认读取阈值的读取阈值来服务页面读取,其中该质量度量可以是QoS要求或QoS规范。然后,不同的读取阈值被应用于将来的读取尝试,包括读取重试。可选择该组允许读取阈值之中的特定读取阈值r_i,使得读取阈值r_i被选择部分f_i次。选择非默认读取阈值的策略或方法可以是确定性的或随机性的。
然后,在读取阈值r_i处,尝试对例如NAND装置505的存储器装置进行读取,其中存储器装置可以是存储器装置200。也就是说,可在多个读取阈值中的每一个处进行多次读取尝试。
这些不同的非默认读取阈值中的每一个的性能可参考诸如QoS要求或QoS规范的质量度量来估计,以确定最佳读取阈值。
然后,由ECC解码器507执行例如ECC解码的解码,其中可在ECC部件130或ECC模块406中实现ECC解码器507。ECC解码器507可为每一个读取尝试生成解码结果。来自错误读取的噪声数据可能导致解码失败。每一个读取尝试的结果可被反馈到QoS性能***和读取阈值选择器503,然后QoS性能***和读取阈值选择器503可使用这种信息来调整例如以下的选择变量:在将来的读取尝试中,何时使用多个非默认读取阈值中的每一个,使用次数以及所针对的读取命令。
特别地,可基于读取或读取组之后的ECC解码的结果来调整或更新f_i的值。在一个实施例中,可根据ECC解码的成功或失败来增加或减少f_i。在另一实施例中,除解码结果以外,ECC解码器507还可提供BER的估计,该估计随后可用于更新f_i。可基于文献中已知的各种算法来选择F_i的值,以选择在多臂***问题中的动作,例如汤普森(Thompson)采样。
将来自ECC解码器507的解码数据传输到主机509。
图6是描述根据本发明的实施例的用于确定最佳读取阈值的过程中的步骤的流程图。流程图60所示的步骤是示例性的。本领域的技术人员将理解的是,可执行另外的或可选的步骤,或者可改变步骤的顺序,以便在不脱离本文公开的发明理念的情况下实现本发明的各个方面。流程图60的步骤可由本文公开的诸如以下的存储器部件来执行:控制器、例如NAND闪速存储器的存储器装置、QoS性能***和读取阈值选择器、ECC部件/模块、以及/或者其它适当的部件,部件中的任何一个可利用硬件、软件、固件或其组合来实施。
参照图6,在用于确定最佳读取阈值的示例性过程中,在步骤600中,监视响应于主机可能发出的读取命令而在初始阈值处进行的读取尝试。例如,可监视在初始读取阈值处最后的P页面读取所需的读取尝试的次数,其中P的值可基于可用的存储器。初始读取阈值可以是当时最佳已知的读取阈值。
在步骤602中,跟踪在初始阈值处的读取尝试的性能,以确定是否尝试非初始读取阈值,以及确定尝试哪一组非初始读取阈值。跟踪性能可基于设置的质量度量,例如QoS规范或其要求。例如,当失败的这种读取尝试的次数超过可基于QoS要求的特定次数时,可确定初始读取阈值处的读取尝试低于设置的质量度量。
在步骤604中,当确定在初始读取阈值处的读取尝试的性能低于设置的质量度量时,估计构成一组允许读取阈值的多个非初始读取阈值中的每一个的性能。可针对待服务的读取命令的部分f_i来选择非初始读取阈值r_i。在给定时间选择哪一个非初始阈值以及选择多少次的策略可以是确定性的或随机性的。
估计非初始读取阈值的性能通常是迭代的。这样,在步骤606中,可基于每一个读取或读取组之后的解码结果来更新诸如f_i的变量。如上所述,可根据ECC解码的成功或失败,或者基于由解码器提供的估计BER来增大或减小f_i。可根据多臂***理论来选择包括f_i值的变量。
如上所述,本发明的实施例提供了一种改进的存储器***。实施例提供了使用QoS跟踪的读取阈值优化方案。多臂***(MAB)算法可用于确定最佳读取阈值的选择过程。实施例可减少读取延迟的变化。实施例提供了更为一致的性能和确保读取阈值选择策略能够满足QoS要求的方式,该方式直接适用于具有严格QoS要求的企业SSD。
虽然为了清楚和理解的目的已经详细描述了前述实施例,但是本发明不限于所提供的细节。正如本领域技术人员根据前述公开内容将理解的,存在许多实施本发明的可选方式。因此,所公开的实施例是说明性的,而非限制性的。
Claims (20)
1.一种存储器***,包括:
存储器装置;
性能***,所述性能***:
响应于读取命令,监视在初始读取阈值处对所述存储器装置的读取尝试,
跟踪在初始读取阈值处的读取尝试的性能,以及
当读取尝试在初始读取阈值处的性能低于设置的质量度量时,估计多个其它非初始读取阈值中的每一个的性能;以及
读取阈值选择器,其:
基于性能估计选择何时使用多个其它非初始读取阈值中的每一个以及使用多少次多个其它非初始读取阈值中的每一个,以及
基于性能估计确定最佳读取阈值。
2.根据权利要求1所述的存储器***,其中所述读取阈值选择器动态地选择何时使用所述多个其它非初始读取阈值中的每一个以及使用所述多个其它非初始读取阈值中的每一个的次数。
3.根据权利要求1所述的存储器***,其中所述读取阈值选择器选择所述多个其它非初始读取阈值中待应用于待服务的读取命令的部分f_i的读取阈值r_i,其中i是自然数。
4.根据权利要求3所述的存储器***,其中所述读取阈值选择器基于多臂***理论来确定f_i。
5.根据权利要求3所述的存储器***,其中所述读取阈值选择器基于所述性能估计来动态地修改f_i。
6.根据权利要求1所述的存储器***,其中所述性能***和所述读取阈值选择器被实现为单个部件。
7.根据权利要求1所述的存储器***,其中由所述性能***跟踪的性能和估计的性能包括所述存储器装置的至少一个服务质量要求即至少一个QoS要求,并且所设置的质量度量涉及所述至少一个QoS要求。
8.根据权利要求1所述的存储器***,进一步包括:
解码器,其:
在每一个读取尝试之后执行解码以生成解码结果,并且
将所述解码结果传输到所述读取阈值选择器,用于选择在将来的读取尝试中何时使用所述多个其它非初始读取阈值中的每一个以及使用所述多个其它非初始读取阈值中的每一个的次数。
9.根据权利要求8所述的存储器***,其中所述读取阈值选择器使用所述解码结果来选择在将来的读取尝试中何时使用所述多个其它非初始读取阈值中的每一个以及使用所述多个其它非初始读取阈值中的每一个的次数。
10.根据权利要求1所述的存储器***,其中所述读取阈值选择器选择待确定性地或随机性地使用的所述多个其它非初始读取阈值。
11.一种操作存储器***的方法,包括:
响应于读取命令,监视在初始读取阈值处对所述存储器***的存储器装置的读取尝试;
跟踪在所述初始读取阈值处的所述读取尝试的性能;
当所述读取尝试在所述初始读取阈值处的性能低于设置的质量度量时,估计多个其它非初始读取阈值中的每一个的性能;以及
基于估计操作的结果确定最佳读取阈值;
其中动态地确定所述估计操作中何时使用所述多个其它非初始读取阈值中的每一个以及使用所述多个其它非初始读取阈值中的每一个的次数。
12.根据权利要求11所述的方法,其中在所述估计操作中,将所述多个其它非初始读取阈值中的读取阈值r_i应用于待服务的读取命令的部分f_i,其中i是自然数。
13.根据权利要求12所述的方法,其中基于多臂***理论来确定f_i。
14.根据权利要求12所述的方法,其中基于所述估计操作的结果来动态地修改f_i。
15.根据权利要求11所述的方法,其中在跟踪和估计操作中跟踪的性能和估计的性能包括所述存储器装置的至少一个服务质量要求即至少一个QoS要求,并且所设置的质量度量涉及所述至少一个QoS要求。
16.根据权利要求15所述的方法,其中所述至少一个QoS要求包括最大允许读取延迟和失败读取尝试次数中的至少一个。
17.根据权利要求11所述的方法,进一步包括:
确定性地或随机性地选择所述多个其它非初始读取阈值。
18.根据权利要求14所述的方法,其中所述估计操作包括估计后续多个其它非初始读取阈值的性能的第二迭代,其中所述后续多个其它非初始读取阈值在至少一个方面不同于所述多个其它非初始读取阈值。
19.根据权利要求18所述的方法,其进一步包括基于所述估计操作的第二迭代来确定所述最佳读取阈值。
20.根据权利要求11所述的方法,其中所述初始读取阈值是在应用时已知的读取阈值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762551596P | 2017-08-29 | 2017-08-29 | |
US62/551,596 | 2017-08-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109671465A CN109671465A (zh) | 2019-04-23 |
CN109671465B true CN109671465B (zh) | 2023-05-16 |
Family
ID=65435520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810981468.1A Active CN109671465B (zh) | 2017-08-29 | 2018-08-27 | 具有自适应读取阈值方案的存储器***及其操作方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10403372B2 (zh) |
CN (1) | CN109671465B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111540393B (zh) | 2018-12-11 | 2023-09-08 | 爱思开海力士有限公司 | 用于基于字线分组的读取操作的存储器***和方法 |
US11082071B2 (en) * | 2019-06-24 | 2021-08-03 | SK Hynix Inc. | Quality of service (QoS) aware data storage decoder |
US11127471B2 (en) * | 2019-07-23 | 2021-09-21 | SK Hynix Inc. | Read retry threshold voltage selection |
US10908845B1 (en) * | 2019-08-27 | 2021-02-02 | Micron Technology, Inc. | Managing threshold voltage drift based on a temperature-dependent slope of the threshold voltage drift of a memory sub-system |
US11088712B2 (en) | 2019-11-05 | 2021-08-10 | Western Digital Technologies, Inc. | Iterative decoder performance prediction using machine learning |
US11907570B2 (en) * | 2020-02-25 | 2024-02-20 | Micron Technology, Inc. | Predictive media management for read disturb |
US11217319B2 (en) | 2020-02-28 | 2022-01-04 | SK Hynix Inc. | Read threshold optimization systems and methods by multi-dimensional search |
US11366718B2 (en) | 2020-04-30 | 2022-06-21 | SK Hynix Inc. | Optimal read bias tracking system and method thereof |
US12020751B2 (en) * | 2022-04-06 | 2024-06-25 | Western Digital Technologies, Inc. | Read threshold calibration for cross-temperature long, sequential reads |
CN117854581B (zh) * | 2024-03-07 | 2024-05-24 | 合肥康芯威存储技术有限公司 | 一种存储器测试***及存储器测试方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105989890A (zh) * | 2015-03-17 | 2016-10-05 | 爱思开海力士有限公司 | 用于快闪存储器的增量llr 产生 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7904788B2 (en) * | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of varying read threshold voltage in nonvolatile memory |
EP2103023B1 (en) * | 2006-12-14 | 2015-04-15 | Thomson Licensing | Rateless codes decoding method for communication systems |
US8499227B2 (en) * | 2010-09-23 | 2013-07-30 | Micron Technology, Inc. | Memory quality monitor based compensation method and apparatus |
US9645177B2 (en) * | 2012-05-04 | 2017-05-09 | Seagate Technology Llc | Retention-drift-history-based non-volatile memory read threshold optimization |
US8839073B2 (en) * | 2012-05-04 | 2014-09-16 | Lsi Corporation | Zero-one balance management in a solid-state disk controller |
US9147486B2 (en) * | 2013-09-05 | 2015-09-29 | Micron Technology, Inc. | Continuous adjusting of sensing voltages |
US9818488B2 (en) * | 2015-10-30 | 2017-11-14 | Seagate Technology Llc | Read threshold voltage adaptation using bit error rates based on decoded data |
US9773563B2 (en) * | 2015-03-27 | 2017-09-26 | Toshiba Memory Corporation | Memory controller, memory control method, and coefficient decision method |
KR20160150507A (ko) | 2015-06-22 | 2016-12-30 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9779818B2 (en) * | 2015-07-09 | 2017-10-03 | Apple Inc. | Adaptation of high-order read thresholds |
US9697075B2 (en) | 2015-09-08 | 2017-07-04 | Apple Inc. | Efficient search for optimal read thresholds in flash memory |
US9761325B1 (en) * | 2016-03-14 | 2017-09-12 | Toshiba Memory Corporation | Memory system |
US10388394B2 (en) * | 2017-07-25 | 2019-08-20 | Apple Inc. | Syndrome weight based evaluation of memory cells performance using multiple sense operations |
-
2018
- 2018-07-05 US US16/028,050 patent/US10403372B2/en active Active
- 2018-08-27 CN CN201810981468.1A patent/CN109671465B/zh active Active
-
2019
- 2019-08-30 US US16/557,349 patent/US10847231B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105989890A (zh) * | 2015-03-17 | 2016-10-05 | 爱思开海力士有限公司 | 用于快闪存储器的增量llr 产生 |
Also Published As
Publication number | Publication date |
---|---|
CN109671465A (zh) | 2019-04-23 |
US20190385684A1 (en) | 2019-12-19 |
US10403372B2 (en) | 2019-09-03 |
US20190066803A1 (en) | 2019-02-28 |
US10847231B2 (en) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109671465B (zh) | 具有自适应读取阈值方案的存储器***及其操作方法 | |
US10311920B2 (en) | Apparatus and method for controlling memory device | |
CN109801669B (zh) | 具有软读取挂起方案的存储器***及其操作方法 | |
US10180805B2 (en) | Memory system and operating method thereof | |
CN110444246B (zh) | 用于存储器***的相邻辅助校正错误恢复及其方法 | |
US10102146B2 (en) | Memory system and operating method for improving rebuild efficiency | |
CN107957959B (zh) | 具有文件级安全擦除的存储器***及其操作方法 | |
CN106257594B (zh) | 读取干扰收回策略 | |
CN109428606B (zh) | 具有ldpc解码器的存储器***及其操作方法 | |
CN110275796B (zh) | 具有混合解码方案的存储器***及其操作方法 | |
US10956263B2 (en) | Memory system with deep learning based interference correction capability and method of operating such memory system | |
CN107977283B (zh) | 具有ldpc解码器的存储器***及其操作方法 | |
CN110750380B (zh) | 具有奇偶校验高速缓存方案的存储器***以及操作方法 | |
CN110277124B (zh) | 具有混合解码方案的存储器***及其操作方法 | |
US11538547B2 (en) | Systems and methods for read error recovery | |
US11907571B2 (en) | Read threshold optimization systems and methods using domain transformation | |
CN112687323B (zh) | 具有用于解码的错误减少方案的存储器***及其操作方法 | |
US20180157415A1 (en) | Apparatus and method for controlling memory device | |
CN109739681B (zh) | 具有共享缓冲器架构的存储器***及其操作方法 | |
CN112416298A (zh) | 闪速存储器的基于原始读取的物理不可克隆功能 | |
US11204839B2 (en) | Memory system with low-latency read recovery and method of operating the memory system | |
CN112216328B (zh) | 具有低复杂度解码的存储器***及其操作方法 | |
CN110941567B (zh) | 存储器控制器及其操作方法 | |
US20210223987A1 (en) | Controller with smart scheduling and method of operating the controller | |
CN110444245B (zh) | 具有混合迭代解码能力的存储器***及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |