CN112673356A - 快速非易失性存储装置恢复技术 - Google Patents

快速非易失性存储装置恢复技术 Download PDF

Info

Publication number
CN112673356A
CN112673356A CN201980059073.9A CN201980059073A CN112673356A CN 112673356 A CN112673356 A CN 112673356A CN 201980059073 A CN201980059073 A CN 201980059073A CN 112673356 A CN112673356 A CN 112673356A
Authority
CN
China
Prior art keywords
memory
memory device
indication
reset
indicates
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.)
Granted
Application number
CN201980059073.9A
Other languages
English (en)
Other versions
CN112673356B (zh
Inventor
D·A·帕尔默
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN112673356A publication Critical patent/CN112673356A/zh
Application granted granted Critical
Publication of CN112673356B publication Critical patent/CN112673356B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本文公开用于提供存储器装置的加速恢复技术的技术。在一个实施例中,所述加速恢复技术包含存储通用状态元素及特定状态元素的复位加速器寄存器,以通过分别与第一阈值及第二阈值比较来确定一或多个特定的未完成存储器操作。此技术可允许在意外复位事件之后恢复所述存储器装置,例如但不限于,闪存存储器装置。

Description

快速非易失性存储装置恢复技术
优先权申明
本申请要求2018年8月3日申请的帕尔默的标题为“快速非易失性存储装置恢复技术”的美国非临时专利申请号:16/054,096(档案号:303.G77US1)的优先权益,所述申请特此以引用的方式全文并入本文中。
背景技术
通常将存储器装置提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可能需要电力来维持数据且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)等等。非易失性存储器可通过当未被供电时保持所存储数据而提供持久数据,且可包含NAND闪存存储器、NOR闪存存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁阻随机存取存储器(MRAM)、3D XPointTM存储器等等。
存储器单元通常布置成矩阵或阵列。多个矩阵或阵列可组合到存储器装置中,且多个装置可组合以形成存储器***的存储容量,例如固态驱动器(SSD)、通用闪存存储(UFSTM)装置、多媒体卡(MMC)固态存储装置、嵌入式MMC装置(eMMCTM)等。
存储器***可包含一或多个处理器或其它存储器控制器,用于执行逻辑函数以操作所述存储器装置或与外部***介接。存储器矩阵或阵列可包含组织成多个物理页的多个存储器单元块。存储器***可与存储器操作相关联地从主机接收命令,所述存储器操作例如用于在存储器装置与主机之间传送数据(例如,用户数据及相关联的完整性数据,例如误差数据及地址数据等)的读取或写入操作、用于从存储器装置擦除数据的擦除操作,或执行一或多个其它存储器操作。
利用存储器作为用于多种多样的电子应用的易失性及非易失性数据存储装置,所述电子应用包含例如个人计算机、便携式存储棒、数码相机、蜂窝电话、便携式音乐播放器(例如,MP3播放器)、电影播放器及其它电子装置。存储器单元可布置成阵列,其中阵列用于存储器装置。
许多电子装置包含若干主要组件:主机处理器(例如,中央处理单元(CPU)或其它主处理器);主存储器(例如,一或多个易失性或非易失性存储器装置,例如动态RAM(DRAM)、移动或低功率双倍数据速率同步DRAM(DDR SDRAM)等);及存储装置(例如,非易失性存储器(NVM)装置,例如闪存存储器、只读存储器(ROM)、SSD、MMC或其它存储卡结构或组合件,或易失性及非易失性存储器的组合等)。在某些实例中,电子装置可包含用户接口(例如,显示器、触摸屏、键盘、一或多个按钮等)、图形处理单元(GPU)、电源管理电路、基带处理器或一或多个收发器电路等。
附图说明
在不一定按比例绘制的图式中,相似标号在不同视图中可描述类似组件。具有不同字母后缀的相似标号可表示类似组件的不同情况。图式借助于实例而非限制性地总体上说明本文件中所论述的各种实施例。
图1说明包含主机及存储器装置的环境的实例。
图2一般说明复位加速器寄存器。
图3一般说明根据本发明的主题的复位加速器寄存器的另一实例。
图4一般说明使用复位加速器寄存器从存储器装置的非预期复位恢复的实例方法的流程图。
图5说明其上可执行本文所论述的技术(例如,方法)中的任一或多个的实例机器的框图。
具体实施方式
包含基于NAND的存储装置的闪存存储器装置在意外断电或可能中断正在进行的存储器操作并引起复位的某一其它事件后,恢复起来可能很麻烦。此恢复过程可能很慢,因为存储器控制器必须在意外事件发生之前首先确定存储器装置在做什么。一旦确定了中断的存储器操作,存储器控制器就可确定适当的恢复操作及恢复操作的顺序。
非易失性存储装置可能由于许多原因而暴露于意外事件,包含但不限于电源轨电压下降、看门狗超时、指令SRAM位翻转。恢复操作可能会非常慢,因为在复位之前可能需要花费大量时间来综合存储器装置在做什么,及哪种类型的存储器操作可清理未完成的操作并将存储器装置恢复到已知状态。用于非易失性存储器装置的当前恢复过程将复杂算法并入存储器装置中以确定例如上电是否需要恢复操作。如果在存储器操作期间发生复位,则页可部分地编程及可读、部分地编程及不可读、明显是空的但部分地编程,或其组合。复杂的恢复算法确定每个打开的存储器块,调查每个打开的块是否存在潜在的存储器操作故障,并应用补救措施将存储器装置恢复到已知的操作状态。
本发明人已经认识到用于快速地确定在意外事件中正在进行哪些主要存储器操作的技术,从而消除使用复杂算法来检查存储器并试图推断出在意外复位时已经开始但尚未完成的操作。在某些实例中,存储器***包含复位加速器寄存器。复位加速器寄存器是非易失性寄存器,存储器***控制器可使用所述非易失性寄存器来保持处理中的存储器操作的暂存器。在某些实例中,当起始存储器操作时,存储器控制器可在复位加速器寄存器中设定指示。在一些实例中,指示可为与特定存储器操作相关联的专用标志或位,所述指示在存储器装置复位时可帮助集中搜索哪些操作尚未完成。与通用暂存器不同,复位加速器寄存器是非易失性寄存器,所述非易失性寄存器在存储器装置发生复位事件后不会在存储器装置启动时复位,并且在某些示例中仅用于跟踪存储器操作的状态。在一些实例中,指示可包含关于操作的额外信息,包含但不限于操作访问存储器***的什么位置。在某些实例中,当存储器操作前进时,存储器控制器或一或多个裸片控制器可更新指示,使得在复位时存储器控制器可确定特定存储器操作的什么子操作尚未完成或正在进行中。
图1说明包含经配置以通过通信接口通信的主机105及存储器装置110的环境100的实例。主机105或存储器装置110可包含于多种产品150中,例如用于支持产品150的处理、通信或控制的IoT装置(例如,制冷机或其它电器、传感器、马达或致动器、移动通信装置、汽车、移动电话、无人机等)。
存储器装置110包含存储器控制器115及存储器阵列120,所述存储器阵列包含例如一或多个个别的存储器裸片(例如,三维(3D)NAND裸片的堆叠)。在3D架构半导体存储器技术中,竖直结构堆叠于多个层次中且耦合以形成物理页,从而增加给定占据面积(即,外观尺寸)中的存储器装置(例如,存储装置)的存储密度。在实例中,存储器装置110可为主机105的离散存储器或存储装置组件。在其它实例中,存储器装置110可为与主机105的一或多个其它组件堆叠或以其它方式包含主机105的一或多个其它组件的集成电路(例如,片上***(SOC)、裸片等)的一部分。
可使用一或多个通信接口在存储器装置110与主机105的一或多个其它组件之间传送数据,例如串行高级技术附件(SATA)接口、***组件互连高速(PCIe)接口、通用串行总线(USB)接口、UFS接口、eMMCTM接口,或一或多个其它连接器或接口。主机105可包含主机***、电子装置、处理器、存储卡读卡器或在存储器装置110外部的一或多个其它电子装置。在一些实例中,主机105可为具有参看图4的机器400论述的组件的某一部分或全部的机器。数据可经由输入/输出(I/O)总线在存储器装置110与其它组件之间传送,所述输入/输出总线可包含在传送数据时(例如,在从存储器阵列读取或写入到存储器阵列之前)用于暂时地存储数据的一或多个锁存器。
存储器控制器115可从主机105接收指令,并可与存储器阵列通信,以便将数据传送到存储器阵列的存储器单元、平面、子块、块或页中的一或多个(例如,写入或擦除)或传送(例如,读取)来自从前述各项的数据。存储器控制器115可尤其包含电路***或固件,包含一或多个组件或集成电路。举例来说,存储器控制器115可包含经配置以控制存储器阵列120上的存取且在主机105与存储器装置110之间提供转换层的一或多个存储器控制单元、电路、控制电路***或组件。存储器控制器115可包含用于将数据传送到存储器阵列120或传送来自存储器阵列的数据的一或多个I/O电路(及对应锁存器)、线或接口。存储器控制器115可包含存储器管理器125及阵列控制器135。
阵列控制器135尤其可包含经配置以控制存储器操作的电路***或组件,所述存储器操作与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器单元、从所述一或多个存储器单元读取数据或者擦除所述一或多个存储器单元相关联。所述存储器操作可基于例如从主机105接收的主机命令,或在内部由存储器管理器125产生(例如,与磨损均衡、错误检测或校正等结合)。
阵列控制器135可包含错误校正码(ECC)组件140,所述ECC组件尤其可包含ECC引擎,或经配置以检测或校正错误的其它电路***,所述错误与向耦合到存储器控制器115的存储器装置110的一或多个存储器单元写入数据或从中读取数据相关联。ECC组件140例如可检测或计算与执行多个存储器操作相关联的误码率(BER)。BER可对应于I/O总线的锁存器中出现的位错误、控制器115的内部错误、NAND阵列中的一或多个或存储器装置110的一或多个多层级单元(MLC)中的任何一或多个中出现的错误。存储器控制器115可经配置以有效地检测与各种操作或数据存储相关联的错误出现(例如,位错误、操作错误、崩溃状况、停顿、挂断等)并从所述错误出现中恢复,同时保持在主机105与存储器装置110之间传送的数据的完整性,或保持所存储数据的完整性(例如,使用冗余RAID存储等等),并可移除(例如,引退)发生故障的存储器资源(例如,存储器单元、存储器阵列、页、块等等)以防止未来错误。阵列控制器135可将检测到的BER信息传输到存储器管理器125以进行存储及跟踪。存储器控制器115可包含跟踪从主机接收到的存储器命令的命令队列(未示出)。队列中的命令可以先进先出(FIFO)方式、堆叠方式、失序地、根据优先权或以任何其它适合的次序由控制器115执行。
所描述的存储器装置110包含与存储器阵列120相关联的复位加速器寄存器160。在一些实施方案中,存储器装置110的控制器115可包含经配置以实施如下阐述的复位加速器寄存器160的功能的控制电路***。在其它实施方案中,复位加速器寄存器160可包含用于实施所描述功能性的独立的控制电路***。在又其它实施方案中,控制电路***可在复位加速器寄存器160与控制器115之间划分以实施复位加速器寄存器160的所描述功能。在所描绘的实例中,阵列控制器135形成存储器控制器115的一部分,并且复位加速器寄存器160形成阵列控制器的一部分。在其它实施方案中,复位加速器寄存器160可在阵列控制器135外部及/或之外。举例来说,复位加速器寄存器160(或其任何个别组件)可为耦合到环境100中的一或多个组件的独立组件。无论在物理上位于何处,提供复位加速器寄存器160的附加功能的结构都可减少存储器装置110的意外中断与存储器装置110的后续操作之间的恢复时间,而不会丢失数据。
存储器管理器125可尤其包含电路***或固件,例如与各种存储器管理功能相关联的多个组件或集成电路。出于当前描述的目的,将在NAND存储器的情形下描述实例存储器操作及管理功能。本领域的技术人员将认识到,其它形式的非易失性存储器可具有类似的存储器操作或管理功能。此类NAND管理功能包含磨损均衡(例如,垃圾收集或回收)、错误检测(例如,BER监视)或校正、块引退或一或多个其它存储器管理功能。存储器管理器125可将主机命令(例如,从主机接收到的命令)解析或格式化为装置命令(例如,与存储器阵列的操作相关联的命令等),或者产生用于阵列控制器135或存储器装置110的一或多个其它组件的装置命令(例如,以实现各种存储器管理功能)。
存储器管理器125可包含一组管理表130,所述管理表经配置以维护与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器控制器115的存储器阵列或一或多个存储器单元相关联的各种信息)。举例来说,管理表130可包含关于耦合到存储器控制器115的一或多个存储器单元块的块使用年限、块擦除计数、错误历史、错误参数信息、主机复位超时值、存储器操作命令时延或一或多个错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息。在某些实例中,如果针对错误计数中的一或多个(例如,错误参数)检测到的错误的数目高于阈值(例如,可允许的错误阈值),则位错误可称为不可校正的位错误。管理表130尤其可维持可校正或不可校正位错误的计数。
存储器阵列120可包含布置于例如多个装置、平面、子块、块或页中的多个存储器单元。作为一个实例,48GB TLC NAND存储器装置可包含每页18,592字节的数据(16,384+2208字节)、每块1536页、每平面548个块及每装置4个或更多个平面。作为另一实例,32GBMLC存储器装置(每单元存储两个数据位(即,4个可编程状态))可包含每页18,592字节(B)的数据(16,384+2208字节)、每块1024页、每平面548个块及每装置4个平面,但与对应TLC存储器装置相比所需的写入时间为一半且编程/擦除(P/E)循环为两倍。其它实例可包含其它数量或布置。在一些实例中,存储器装置或其部分可在SLC模式中或在所需MLC模式(如TLC、QLC等)中选择性操作。
在操作中,数据通常以页写入到存储器装置110或从所述存储器装置读取且以块擦除。然而,可视需要对存储器单元的更大或更小群组执行一或多个存储器操作(例如,读取、写入、擦除等)。存储器装置110的数据传送大小通常称为页,而主机的数据传送大小通常称为扇区。
不同类型的存储器单元或存储器阵列120可提供不同页大小,或可能需要与其相关联的不同量的元数据。举例来说,不同存储器装置类型可具有不同误码率,这可能引起需要不同量的元数据来确保数据页的完整性(例如,相比于具有较低误码率的存储器装置,具有较高误码率的存储器装置可能需要更多字节的错误校正码数据)。作为实例,MLC NAND闪存装置可能具有比对应单层级单元(SLC)NAND闪存装置更高的误码率。因此,MLC装置可需要比对应SLC装置更多的用于错误数据的元数据字节。
图2一般说明实例复位加速器寄存器260。复位加速器寄存器260可包含多单元寄存器,例如如图所示的多位寄存器、多字寄存器等。在某些实例中,每个单元可在意外复位事件处或就在意外复位事件之前提供有关存储器装置的处理中活动或操作的信息。举例来说,复位加速器寄存器260的第一单元(例如,位)(MO_1)如果置位,则可指示第一存储器操作在意外复位事件时或附近在处理中,及如果不置位,则第一存储器操作在意外复位事件时或附近不在处理中。在某些实例中,例如图1的存储器控制器的存储器控制器可在起始适当的存储器操作时置位每个单元(MO_1、MO_2、……、MO_N),及可在存储器操作结束时复位单元。存储器操作可包含但不限于,用户数据块的垃圾收集、内部数据块的垃圾收集、用户数据的刷新、内部数据的刷新、读取错误处理、写入错误处理、磨损均衡、块引退、主机读取、主机写入、通电恢复等。
在某些实例中,复位加速器寄存器可包含通用状态(GS)元素,所述GS元素在置位时指示至少一个存储器操作在意外复位事件时在处理中,及在未置位时指示存储器装置空闲并且在意外复位事件时未执行任何一个所识别的操作。在复位并发现在意外复位事件时没有存储器操作在处理中后,存储器控制器可跳过对每个打开的存储器块进行探测的过程,以获取存储器操作正在处理中的证据及用于评估哪些特定操作在处理中的证据的附加时间。因此,实施复位加速器寄存器260可表示在获取***备份并在意外复位事件之后运行时的显著时间节省。如果通用状态(GS)元素被置位,满足“未完成”阈值或不满足“完成”或“空闲”阈值,则存储器控制器可开始评估其它单元的特定存储器操作的状态或复位加速器寄存器260的元件来确定可能需要完成、恢复或补救哪些存储器操作,以允许存储器装置服务于主机存储器请求。
图3一般说明根据本发明的主题的复位加速器寄存器360的另一实例。复位加速器寄存器360可包含类似于图2的寄存器的第一记录361。第一记录可提供在意外复位事件时或附近的存储器活动的一般概述。在某些实例中,第一记录361的元素可提供通用状态指示,所述通用状态指示在置位时指示至少一个存储器操作在意外复位事件时在处理中,及在未置位时指示存储器装置空闲并且在意外复位事件时未执行任何一个所识别的存储器操作。第一记录361的其它元素可提供对不同类型的存储器操作(MO_1、MO_2、…、MO_N)的指示,所述存储器操作在意外复位事件时或附近在处理中,或不在处理中。复位加速器寄存器360的其它记录可与复位加速器寄存器360的第一记录361的元素相关联或被映射到所述元素,并且可包含关于由记录所映射到或与其相关联的元素(MO_1、MO_2、…、MO_N)指示的存储器操作的详细信息。此详细信息可包含但不限于与存储器操作相关联的一或多个物理地址、与存储器操作相关联的子过程活动的指示、与存储器操作相关联的主机LBA,或其组合。
在从复位事件或甚至非复位事件启动后,存储器控制器可评估复位加速器寄存器的第一记录361以发现可能尚未完成的每个存储器操作。存储器控制器可例如经由将其它记录362映射到第一记录361的元素的链路进一步评估复位加速器寄存器的其它记录362,以收集及分析关于未完成操作的状态的更详细信息。此详细信息可允许存储器控制器避免分析每一打开的NAND存储器块来确定存储器操作在块上运行时是否未完成,恢复操作是否合适,及要进行及调度的恢复操作。在某些实例中,复位加速器寄存器360可向存储器控制器提供选择及起始恢复操作所需的信息,而无需访问每个打开的存储器块。在某些实例中,尤其是在移动计算环境中或装置经常处于空闲状态时,可通过允许存储器控制器跳过许多现有算法所需的清理及补救或恢复流,并快速返回到存储器装置可服务于主机命令的状态来大大提高客户体验。
图4一般说明使用复位加速器寄存器从存储器装置的非预期复位恢复的实例方法400的流程图。在401处,当电子装置或存储器装置在经历意外复位之后,例如在意外断电或电源电压下降期间重新启动时,存储器控制器可将存储器装置的复位加速器寄存器的元件与未完成阈值相比较。在403处,如果比较满足未完成阈值,则复位加速寄存器指示当出现意外复位事件时至少一个存储器操作在处理中。如果在403处,比较不满足未完成阈值,则在405处,存储器控制器可被启用,或可启用其它过程以服务于来自主机的存储器请求。应理解,所述方法可在不脱离本发明主题的范围的情况下将未完成阈值用于一或多个比较。
在407处,如果通用状态(GS)元素指示在重新启动存储器装置时未完成的存储器操作,则存储器控制器可将复位加速器寄存器的特定状态元件与完成阈值或未完成阈值相比较,以确定在意外复位事件时或附近哪些特定存储器操作在处理中。在409处,存储器控制器可调度并发起对可能已经受到意外复位事件影响的存储器的清理及恢复,如复位加速器寄存器的特定状态元素所指示。在完成清理及恢复活动之后,在405处,存储器控制器可被启用,或可启用其它过程以服务于来自主机的存储器请求。
在某些实例中,复位加速器寄存器可为具有通用状态(GS)位元素及若干特定的状态位元素的多位寄存器。在一些实例中,复位加速器寄存器可为多字寄存器,其中通用状态(GS)元素是单个字或单个位及特定状态元素是位、字或位及字的组合。举例来说,每个特定的状态元素还可具有映射到其上的复位加速器寄存器的一或多个字。映射的字可包含关于由特定状态元素指示的特定存储器操作的额外细节。此信息可包含但不限于与存储器操作相关联的物理地址、发起存储器操作的主机请求的副本或表示、与特定存储器操作的子过程相关联的状态信息等。此信息的量及特异性可与确定恢复活动是否有益或确定恢复活动的什么类型及调度合适可能需要的存储器的蛮力直接分析量直接相关。在复位加速器寄存器中随时提供此类信息可避免浪费时间,从而对存储器进行复杂的蛮力分析来确定在意外复位事件发生时或附近存储器是否在处理中。
在一些现有的存储器装置中,在存储器装置运行时保持状态信息,然而,将状态信息保持在易失性存储器或在复位事件之后启动存储器装置时另外复位的存储器中。在某些实例中,根据本发明的主题的存储器装置不会在启动存储器装置时将复位加速器寄存器复位。
图5说明其上可执行本文所论述的技术(例如,方法)中的任一个或多个的实例机器500的框图。在替代实施例中,机器500可作为独立装置操作或可连接(例如,联网)到其它机器。在联网部署中,机器500可在服务器-客户端网络环境中以服务机、客户机或两者的容量操作。在实例中,机器500可充当对等(P2P)(或其它分布式)网络环境中的对等机器。机器500可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、IoT装置、汽车***,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令的任何机器。此外,虽然仅示出单个机器,但术语“机器”还应被视为包含单独或联合执行一组(或多组)指令以执行本文论述的方法中的任何一或多种的任何机器集合,例如云计算、软件即服务(software as a service,SaaS)、其它计算机集群配置。
如本文所描述,实例可包含逻辑、组件、装置、封装或机构,或可通过逻辑、组件、装置、封装或机构来操作。电路***为在包含硬件(例如,简单电路、栅极、逻辑等)的有形实体中实施的电路的集合(例如,集合)。电路***部件可随时间推移及基础硬件变化而为灵活的。电路***包含当操作时可单独或组合地执行特定任务的部件。在实例中,可不可改变地设计电路***的硬件以进行特定操作(例如,硬连线)。在实例中,电路***的硬件可包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含以物理方式修改(例如,不变集中式粒子的磁性、电气可移动放置等)以对特定操作的指令进行编码的计算机可读媒体。在连接物理组件时,改***件组成部分的根本电性质,例如从绝缘体变为导体,或反之亦然。指令使得参与的硬件(例如,执行单元或加载机构)能够经由可变连接创建硬件中的电路***部件以当在操作中时实行特定任务的部分。因此,当装置操作时计算机可读媒体以通信方式耦合到电路***的其它组件。在实例中,物理组件中的任一个可用于超过一个电路***中的超过一个部件中。例如,在操作下,执行单元可在一个时间点用于第一电路***的第一电路,并且由第一电路***中的第二电路重新使用,或在不同时间由第二电路***中的第三电路重新使用。
机器(例如,计算机***)500(例如,主机105、存储器装置110等)可包含处理装置502(例如,硬件处理器、中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合,例如存储器装置110的存储器控制器等)、主存储器504(例如,只读存储器(ROM)、闪存存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器506(例如,闪存存储器、静态随机存取存储器(SRAM)等)及数据存储***518,其中的一些或全部可经由互连链路(interlink)(例如,总线)530彼此通信。
处理装置502可表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502可经配置以执行指令526以用于执行本文中所论述的操作及步骤。计算机***500可进一步包含网络接口装置508以在网络520上通信。
数据存储***518可包含机器可读存储媒体524(也称为计算机可读媒体),其上存储有体现本文中所描述的任何一或多种方法或功能的一或多个指令集526或软件。指令526还可在其由计算机***500执行期间完全地或至少部分地驻存在主存储器504内或处理装置502内,主存储器504及处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储***518或主存储器504可对应于图1的存储器装置110。
在一个实施方案中,指令526包含用于使用图1、图2或图3中的任一或多个的复位加速器寄存器160、260、360,或图4的方法实施加速的复位恢复功能的指令。尽管在实例实施方案中将机器可读存储媒体524展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且致使机器执行本公开的方法中的任何一或多种的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体及磁性媒体。在实例中,集中式机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止)质量。因此,集中式机器可读媒体并非为暂时性传播信号。集中式机器可读媒体的具体实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存存储器装置;磁盘,例如内部硬盘及可移式盘;磁光盘;及CD-ROM及DVD-ROM盘。
机器500可进一步包含显示单元、字母数字输入装置(例如,键盘)及用户接口(UI)导航装置(例如,鼠标)。在实例中,显示单元、输入装置或UI导航装置中的一或多个可为触摸屏显示器。机器、信号发生装置(例如,扬声器),或一或多个传感器,例如全球定位***(GPS)传感器、指南针、加速度计或一或多个其它传感器。机器500可包含输出控制器,例如串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接以与一或多个***装置(例如,打印机、读卡器等)通信或控制所述一或多个***装置。
指令526(例如,软件、程序、操作***(OS)等)或存储在数据存储装置518上的其它数据可由主存储器504访问以供处理装置502使用。主存储器504(例如,DRAM)通常为快速但易失性的且因此与数据存储装置518(例如,SSD)不同类型的存储装置,所述数据存储装置适于长期存储,包含在“断开”条件下。由用户或机器500在使用中的指令526或数据通常加载在主存储器504中以供处理装置502使用。当主存储器504已满时,可分配来自数据存储装置518的虚拟空间以补充主存储器504;然而,因为数据存储装置518装置通常比主存储器504慢,且写入速度通常比读取速度慢至少两倍,所以虚拟存储器的使用可能归因于存储装置时延而极大地降低用户体验(与例如DRAM的主存储器504相比)。此外,虚拟存储器的数据存储装置518的使用可能极大地减少数据存储装置518的可用使用寿命。
相比于虚拟存储器,虚拟存储器压缩(例如,LinuxTM内核特征“ZRAM”)使用存储器的一部分作为压缩块存储装置以避免寻呼到数据存储装置518。在压缩块中进行寻呼,直到有必要将此类数据写入到数据存储装置518为止。虚拟存储器压缩增大了主存储器504的可用大小,同时减少了对数据存储装置518的磨损。
针对移动电子装置或移动存储装置而优化的存储装置传统上包含MMC固态存储装置(例如,微安全数字(microSDTM)卡等)。MMC装置包含与主机(例如,主机装置)的若干并行接口(例如,8位并行接口),且为通常可从主机移除且与主机分离的组件。相反,eMMCTM装置附接到电路板且视为主机的组件,其读取速度比得上基于串行ATATM(串行高级技术(AT)附件,或SATA)的SSD装置。然而,对移动装置性能的需求继续增加,以便完全启用虚拟或扩增现实装置,利用提高的网络速度等。响应于此需求,存储装置已从并行通信接口转换到串行通信接口。包含控制器和固件的通用快闪存储(UFS)装置使用具有专用读取/写入路径的低电压差分信令(low-voltage differential signaling;LVDS)串行接口与主机通信,从而进一步推进了更高的读取/写入速度。
指令524可进一步利用多个传输协议中的任一个(例如,帧中继、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)等)经由网络接口装置508使用传输媒体在网络520上传输或接收。实例通信网络可包含局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、简易老式电话(POTS)网络及无线数据网络(例如,称为
Figure BDA0002969213230000111
的电气电子工程师学会(IEEE)802.11系列标准、称为
Figure BDA0002969213230000112
的IEEE 802.16系列标准)、IEEE 802.15.4系列标准、对等(P2P)网络等等。在实例中,网络接口装置508可包含一或多个物理插口(例如,以太网、同轴或电话插口)或一或多个天线以连接到网络520。在实例中,网络接口装置508可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一个无线地通信。术语“传输媒体”应被视为包含能够存储、编码或载送指令以由机器500执行的任何无形媒体,且包含数字或模拟通信信号或用于促进此软件的通信的其它无形媒体。
以上详细描述包含对附图的参考,所述附图形成所述详细描述的一部分。图式借助于说明展示可实践本发明的特定实施例。这些实施例在本文中也称为“实例”。此类实例可包含除了所示出或所描述的那些元件之外的元件。然而,本发明人还预期其中仅提供所示或所描述的那些元件的实例。此外,本发明人还预期使用相对于特定实例(或其一或多个方面)或相对于本文展示或描述的其它实例(或其一或多个方面)而展示或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
额外注释及实例
实例1是一种方法,其包括:在存储器装置的第一次启动时,将所述存储器装置的复位加速器寄存器的通用状态元素与第一未完成阈值相比较;在所述存储器装置的所述第一次启动时确定所述通用状态元素指示未完成的存储器操作,及响应于此确定,将所述复位加速器寄存器的特定状态元素与第二未完成阈值相比较以确定一或多个特定的未完成存储器操作,所述特定状态元素各自指示特定存储器操作群组的相应特定存储器操作的状态;经由所述复位加速器寄存器的所述特定状态元素执行与指示为未完成的所述存储器操作群组中的每个特定存储器操作相关联的清理恢复操作;及在所述存储器装置的第二次启动时确定所述通用状态元素不会指示未完成的存储器操作,及响应于此确定使所述存储器装置能够对主机命令作出响应。
在实例2中,根据实例1所述的主题,其包含在存储器装置启动时不复位所述复位加速器寄存器。
在实例3中,根据实例1至2中任一项所述的主题,其中如果响应于比较,所述特定状态元素的第一特定状态元素不满足所述未完成阈值,则检查所述复位加速器寄存器的第二特定状态元素;及如果响应于所述比较,所述第一特定状态元素满足所述未完成阈值,则在所述启动之前执行第一清理恢复操作以完成在所述存储器装置的最后一次关机之前在处理中的所述存储器装置的操作。
在实例4中,根据实例3所述的主题,其中所述第一特定状态元素指示垃圾收集操作。
在实例5中,根据实例3至4中任一项所述的主题,其中所述第一特定状态元素指示刷新操作。
在实例6中,根据实例3至5中任一项所述的主题,其中所述第一特定状态元素指示磨损均衡操作。
在实例7中,根据实例3至6中任一项所述的主题,其中所述第一特定状态元素指示块引退操作。
在实例8中,根据实例3至7中任一项所述的主题,其中所述第一特定状态元素指示主机读取或写入操作。
在实例9中,根据实例3至8中任一项所述的主题,其中所述第一特定状态元素指示通电恢复操作。
实例10是一种存储器装置,其包括:非易失性存储器单元群组;非易失性复位加速器寄存器;及处理装置,其可操作地耦合到所述非易失性存储器单元群组,所述处理装置经配置以执行包括以下项的操作:在所述非易失性存储器单元群组上发起多个存储器操作中的第一存储器操作;设定复位加速器寄存器的通用指示以指示发起且未完成所述多个存储器操作中的任一个;设定所述复位加速器寄存器的第一指示以指示发起且未完成所述第一存储器操作;及响应于完成所述第一存储器操作而复位所述第一指示。
在实例11中,根据实例10所述的主题,其中在启动所述存储器装置后,所述处理装置进一步经配置以执行包括以下项的操作:将所述复位加速器寄存器的所述通用指示与第一阈值相比较;当所述通用指示满足所述第一阈值时,将所述复位加速器寄存器的所述第一指示与未完成阈值相比较;及当所述第一指示满足所述未完成阈值时,完成所述第一存储器操作。
在实例12中,根据实例11所述的主题,其中完成所述第一存储器操作的所述操作包含从映射到所述第一指示的所述复位加速器寄存器的记录中检索所述存储器装置的物理地址,所述物理地址与所述非易失性存储器单元群组的非易失性存储器单元区域相关联,所述非易失性存储器单元群组与所述第一存储器操作相关联。
在实例13中,根据实例11至12中任一项所述的主题,其中所述第一指示指示数据块的垃圾收集。
在实例14中,根据实例11至13中任一项所述的主题,其中所述第一指示指示数据块的刷新。
在实例15中,根据实例11至14中任一项所述的主题,其中所述第一指示指示磨损均衡操作。
在实例16中,根据实例11至15中任一项所述的主题,其中所述第一指示指示读取错误处理。
在实例17中,根据实例11至16中任一项所述的主题,其中所述第一指示指示写入错误处理。
在实例18中,根据实例11至17中任一项所述的主题,其中所述第一指示指示块引退。
在实例19中,根据实例11至18中任一项所述的主题,其中所述第一指示指示处理主机写入操作。
在实例20中,根据实例11至19中任一项所述的主题,其中所述第一指示指示处理主机读取活动。
实例21是至少一个机器可读媒体,其包含在由处理电路***执行时使所述处理电路***执行操作以实施实例1至20中的任一个的指令。
实例22是一种设备,其包括用于实施实例1至20中任一项的装置。
实例23是一种用于实施实例1至20中任一项的***。
实例24是一种用于实施实例1至20中任一项的方法。
在本文件中,如专利文件中常见,使用术语“一”或“一个”以包含一个或多于一个,这与“至少一个”或“一或多个”的任何其它例子或用途无关。在本文档中,术语“或”用于指代非排它性或,使得除非另有指示,否则“A或B”可包含“A而非B”、“B而非A”,及“A及B”。在所附权利要求书中,术语“包含(including)”及“其中(in which)”用作相应术语“包括(comprising)”及“其中(wherein)”的简洁英文等效术语。另外,在所附权利要求书中,术语“包含”及“包括”是开放式的。权利要求中除了此类术语之后列出的元件之外还包含元件的***、装置、物品或过程仍视为属于所述权利要求的范围。此外,在以下权利要求书中,术语“第一”、“第二”及“第三”等仅用作标签,且并不意图对其对象施加数字要求。
在各种实例中,本文所描述的组件、控制器、处理器、单元、引擎或表可尤其包含存储在物理装置上的物理电路***或固件。如本文中所使用,“处理器”意指任何类型的计算电路,例如(但不限于)微处理器、微控制器、图形处理器、数字信号处理器(DSP),或任何其它类型的处理器或处理电路,包含处理器或多核心装置群组。
如本文中所使用,操作存储器单元包含从存储器单元读取、写入到存储器单元或擦除存储器单元。使存储器单元置于既定状态中的操作在本文中称为“编程”,且可包含对存储器单元写入或从存储器单元擦除两者(例如,存储器单元可经编程为擦除状态)。
根据本公开的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设定、调整、计算、改变、清除、传送、调适、导出、限定、利用、修改、施加等)一定数量的磨损循环或磨损状态(例如,记录磨损循环、在存储器装置的操作发生时对存储器装置的操作进行计数、跟踪其起始的存储器装置的操作、评估对应于磨损状态的存储器装置特性等)。
根据本公开的一或多个实施例,存储器存取装置可经配置以关于每一存储器操作将磨损循环信息提供到存储器装置。存储器装置控制电路***(例如,控制逻辑)可经编程以补偿对应于磨损循环信息的存储器装置性能改变。存储器装置可接收磨损周期信息且响应于磨损周期信息而确定一或多个操作参数(例如值、特征)。
本文中描述的方法实例可至少部分地由机器、装置或计算机实施。一些实例可包含编码有指令的计算机可读媒体、装置可读媒体或机器可读媒体,所述指令可操作以配置电子装置以执行如以上实例中描述的方法。此类方法的实施方案可包含代码,例如微码、汇编语言代码、高级语言代码等等。此类代码可包含用于执行各种方法的计算机可读指令。所述代码可形成计算机程序产品的部分。此外,代码可例如在执行期间或在其它时间有形地存储在一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可包含但不限于:硬盘、可移动磁盘、可移动光盘(例如,压缩光盘及数字视频光盘)、盒式磁带、存储器卡或棒、随机存取存储器(RAM)、只读存储器(ROM)、固态驱动器(SSD)、通用闪存存储(UFS)装置、嵌入式MMC(eMMC)装置等。
以上描述预期为说明性的而非限制性的。举例来说,上文描述的实例(或其一或多个方面)可彼此组合使用。如所属领域的一般技术人员在查阅以上描述后可使用其它实施例。所述摘要在遵守以下理解的情况下提交:其将不会用于解释或限制权利要求的范围或含义。此外,在以上具体实施方式中,可将各种特征分组在一起以简化本公开。此情况不应解释为期望未要求的所公开特征对任何权利要求来说是必需的。实际上,发明主题可在于比特定公开的实施例的所有特征要少。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求作为一单独实施例而独立存在,且预期此些实施例可以各种组合或排列彼此组合。本发明的范围应该通过参考所附的权利要求书以及所述权利要求书所授予的等效物的完整范围来确定。

Claims (20)

1.一种方法,其包括:
在存储器装置的第一次启动时,比较所述存储器装置的复位加速器寄存器的通用状态元素与第一未完成阈值;
在所述存储器装置的所述第一次启动时确定所述通用状态元素指示未完成的存储器操作,及响应于此确定,比较所述复位加速器寄存器的特定状态元素与第二未完成阈值以确定一或多个特定的未完成存储器操作,所述特定状态元素各自指示特定存储器操作群组的相应特定存储器操作的状态;
经由所述复位加速器寄存器的所述特定状态元素执行与指示为未完成的所述存储器操作群组中的每个特定存储器操作相关联的清理恢复操作;及
在所述存储器装置的第二次启动时,确定所述通用状态元素不指示未完成的存储器操作,及响应于此确定,使所述存储器装置能够对主机命令作出响应。
2.根据权利要求1所述的方法,其包含在存储器装置启动时不复位所述复位加速器寄存器。
3.根据权利要求1至2中任一项所述的方法,其中
如果响应于比较,所述特定状态元素的第一特定状态元素不满足所述未完成阈值,则检查所述复位加速器寄存器的第二特定状态元素;及
如果响应于所述比较,所述第一特定状态元素满足所述未完成阈值,则在所述启动之前执行第一清理恢复操作以完成在所述存储器装置的最后一次关机之前在处理中的所述存储器装置的操作。
4.根据权利要求3所述的方法,其中所述第一特定状态元素指示垃圾收集操作。
5.根据权利要求3所述的方法,其中所述第一特定状态元素指示刷新操作。
6.根据权利要求3所述的方法,其中所述第一特定状态元素指示磨损均衡操作。
7.根据权利要求3所述的方法,其中所述第一特定状态元素指示块引退操作。
8.根据权利要求3所述的方法,其中所述第一特定状态元素指示主机读取或写入操作。
9.根据权利要求3所述的方法,其中所述第一特定状态元素指示通电恢复操作。
10.一种存储器装置,其包括:
非易失性存储器单元群组;
非易失性复位加速器寄存器;及
处理装置,其可操作地耦合到所述非易失性存储器单元群组,所述处理装置经配置以执行包括以下项的操作:
在所述非易失性存储器单元群组上发起多个存储器操作中的第一存储器操作;
设定复位加速器寄存器的通用指示以指示发起且未完成所述多个存储器操作中的任一个;
设定所述复位加速器寄存器的第一指示以指示发起且未完成所述第一存储器操作;及
响应于完成所述第一存储器操作而复位所述第一指示。
11.根据权利要求10所述的存储器装置,其中在启动所述存储器装置后,所述处理装置进一步经配置以执行包括以下项的操作:
比较所述复位加速器寄存器的所述通用指示与第一阈值;
当所述通用指示满足所述第一阈值时,比较所述复位加速器寄存器的所述第一指示与未完成阈值;及
当所述第一指示满足所述未完成阈值时,完成所述第一存储器操作。
12.根据权利要求11所述的存储器装置,其中用于完成所述第一存储器操作的所述操作包含:从映射到所述第一指示的所述复位加速器寄存器的记录中检索所述存储器装置的物理地址,所述物理地址与所述非易失性存储器单元群组的非易失性存储器单元的区域相关联,所述非易失性存储器单元群组与所述第一存储器操作相关联。
13.根据权利要求11所述的存储器装置,其中所述第一指示指示数据块的垃圾收集。
14.根据权利要求11所述的存储器装置,其中所述第一指示指示数据块的刷新。
15.根据权利要求11所述的存储器装置,其中所述第一指示指示磨损均衡操作。
16.根据权利要求11所述的存储器装置,其中所述第一指示指示读取错误处理。
17.根据权利要求11所述的存储器装置,其中所述第一指示指示写入错误处理。
18.根据权利要求11所述的存储器装置,其中所述第一指示指示块引退。
19.根据权利要求11所述的存储器装置,其中所述第一指示指示处理主机写入操作。
20.根据权利要求11所述的存储器装置,其中所述第一指示指示处理主机读取活动。
CN201980059073.9A 2018-08-03 2019-08-02 快速非易失性存储装置恢复技术 Active CN112673356B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/054,096 US10733104B2 (en) 2018-08-03 2018-08-03 Fast non-volatile storage device recovery techniques
US16/054,096 2018-08-03
PCT/US2019/044926 WO2020028818A1 (en) 2018-08-03 2019-08-02 Fast non-volatile storage device recovery techniques

Publications (2)

Publication Number Publication Date
CN112673356A true CN112673356A (zh) 2021-04-16
CN112673356B CN112673356B (zh) 2022-07-08

Family

ID=69228733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980059073.9A Active CN112673356B (zh) 2018-08-03 2019-08-02 快速非易失性存储装置恢复技术

Country Status (4)

Country Link
US (1) US10733104B2 (zh)
KR (1) KR20210028265A (zh)
CN (1) CN112673356B (zh)
WO (1) WO2020028818A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733104B2 (en) 2018-08-03 2020-08-04 Micron Technology, Inc. Fast non-volatile storage device recovery techniques
CN111753337B (zh) * 2020-07-02 2023-02-21 上海电器科学研究所(集团)有限公司 一种储能电池管理***意外断电soc处理方法
KR20220028692A (ko) * 2020-08-31 2022-03-08 주식회사 엘엑스세미콘 플래시 메모리의 리셋 기능을 갖는 모바일 폰 및 그의 플래시 메모리 제어 장치

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080215808A1 (en) * 2004-06-21 2008-09-04 Dot Hill Systems Corporation Raid controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage
US20120173835A1 (en) * 2008-05-27 2012-07-05 Micron Technology, Inc. Selective register reset
US20130042095A1 (en) * 2011-08-10 2013-02-14 Samsung Electronics Co. Ltd. Method of Initializing Operation of a Memory System
EP2581826A1 (en) * 2010-08-06 2013-04-17 ZTE Corporation Method and device for cold starting android mobile terminal
CN107003864A (zh) * 2015-01-29 2017-08-01 惠普发展公司,有限责任合伙企业 恢复片上***设备
CN107818057A (zh) * 2016-09-13 2018-03-20 爱思开海力士有限公司 存储器***及其操作方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787484A (en) * 1996-08-08 1998-07-28 Micron Technology, Inc. System and method which compares data preread from memory cells to data to be written to the cells
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage
US5956289A (en) * 1997-06-17 1999-09-21 Micron Technology, Inc. Clock signal from an adjustable oscillator for an integrated circuit
US6804763B1 (en) * 2000-10-17 2004-10-12 Igt High performance battery backed ram interface
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US7701764B2 (en) * 2006-05-17 2010-04-20 Micron Technology, Inc. Apparatus and method for reduced peak power consumption during common operation of multi-NAND flash memory devices
JP5596143B2 (ja) * 2010-06-29 2014-09-24 パナソニック株式会社 不揮発性記憶システム、メモリシステム用の電源回路、フラッシュメモリ、フラッシュメモリコントローラ、および不揮発性半導体記憶装置
US9514838B2 (en) 2011-05-31 2016-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods for memory management using block tables
US9378830B2 (en) 2013-07-16 2016-06-28 Seagate Technology Llc Partial reprogramming of solid-state non-volatile memory cells
US9478292B2 (en) * 2013-10-27 2016-10-25 Sandisk Technologies Llc Read operation for a non-volatile memory
KR20160051328A (ko) 2014-11-03 2016-05-11 에스케이하이닉스 주식회사 데이터 복구 방법 및 이를 사용한 비휘발성 메모리 시스템
US10733104B2 (en) 2018-08-03 2020-08-04 Micron Technology, Inc. Fast non-volatile storage device recovery techniques

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080215808A1 (en) * 2004-06-21 2008-09-04 Dot Hill Systems Corporation Raid controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage
US20120173835A1 (en) * 2008-05-27 2012-07-05 Micron Technology, Inc. Selective register reset
EP2581826A1 (en) * 2010-08-06 2013-04-17 ZTE Corporation Method and device for cold starting android mobile terminal
US20130042095A1 (en) * 2011-08-10 2013-02-14 Samsung Electronics Co. Ltd. Method of Initializing Operation of a Memory System
CN107003864A (zh) * 2015-01-29 2017-08-01 惠普发展公司,有限责任合伙企业 恢复片上***设备
CN107818057A (zh) * 2016-09-13 2018-03-20 爱思开海力士有限公司 存储器***及其操作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SANAM SHAHLA RIZVI等: "《An advanced and reliable initialization technique using virtual clustering for flash memory based embedded and real time systems》", 《2011 6TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCES AND CONVERGENCE INFORMATION TECHNOLOGY (ICCIT)》 *

Also Published As

Publication number Publication date
US10733104B2 (en) 2020-08-04
KR20210028265A (ko) 2021-03-11
CN112673356B (zh) 2022-07-08
WO2020028818A1 (en) 2020-02-06
US20200042452A1 (en) 2020-02-06

Similar Documents

Publication Publication Date Title
US11899574B2 (en) L2P translation techniques in limited RAM systems to increase random write performance using multiple L2P caches
CN112930567B (zh) 温度通知的存储器刷新
US10852964B2 (en) Host-resident translation layer validity check techniques
CN112445716B (zh) Nand存储的重映射技术
US20220206959A1 (en) Host-resident translation layer validity check techniques
US11989557B2 (en) Large data read techniques
CN112673356B (zh) 快速非易失性存储装置恢复技术
US11295806B2 (en) Large file integrity techniques
CN111352864B (zh) 快闪存储器持久性高速缓存技术
US11698826B2 (en) Fatal error logging in a memory device
US11656794B2 (en) Host timeout avoidance in a memory device
CN114116301A (zh) 状态寄存器电力中断保护
CN111538609A (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