CN114341811A - 存储器子系统中的存储器子系统控制器的重置和重放 - Google Patents

存储器子系统中的存储器子系统控制器的重置和重放 Download PDF

Info

Publication number
CN114341811A
CN114341811A CN202080058877.XA CN202080058877A CN114341811A CN 114341811 A CN114341811 A CN 114341811A CN 202080058877 A CN202080058877 A CN 202080058877A CN 114341811 A CN114341811 A CN 114341811A
Authority
CN
China
Prior art keywords
media controller
intermediate logic
memory
restart
suspending
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
Application number
CN202080058877.XA
Other languages
English (en)
Inventor
J·朱
戴颖煜
朱方芳
王维
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 CN114341811A publication Critical patent/CN114341811A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/1438Restarting or rejuvenating
    • 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/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

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)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

在一个实施例中,一种系统包含多个存储器组件和与所述多个存储器组件可操作地耦合的处理装置。所述处理装置包含主机接口电路系统、中间逻辑、媒体控制器和媒体控制器重启管理器,所述媒体控制器重启管理器被配置成进行包含以下的操作:检测重启所述媒体控制器的触发事件;和响应地进行媒体控制器重启操作,所述媒体控制器重启操作包含:暂停所述中间逻辑的操作;确定所述媒体控制器是否正在操作,如果是,则暂停所述媒体控制器的操作;重置所述媒体控制器;恢复所述媒体控制器的操作;和恢复所述中间逻辑的操作。

Description

存储器子系统中的存储器子系统控制器的重置和重放
优先权要求
本申请要求2019年7月15日提交的美国临时专利申请序列号62/874,359和2020年2月7日提交的美国专利申请序列号16/784,966的优先权,其中每一个都通过引用整体并入本文。
技术领域
本公开的实施例总体上涉及存储器子系统,并且更具体地涉及存储器子系统中的存储器子系统控制器的重置和重放。
背景技术
存储器子系统可以是存储装置、存储器模块、或存储装置和存储器模块的混合。存储器子系统可以包含一或多个存储数据的存储器组件。例如,存储器组件可以是非易失性存储器组件和/或易失性存储器组件。一般来说,主机系统可以利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
附图说明
根据下文给出的详细描述和本公开的各个实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限制于具体实施例,而是仅用于解释和理解。
图1是根据本公开的一些实施例的包含主机装置和存储器子系统的示例性计算环境的框图,所述存储器子系统包含存储器子系统控制器和多个存储器装置。
图2是根据本公开的一些实施例的图1的存储器子系统的示例性存储器装置的框图。
图3是根据本公开的一些实施例的图1的存储器子系统控制器的示例性媒体控制器的框图。
图4是根据本公开的一些实施例的可以由图1的存储器子系统控制器进行的用于存储器子系统中的存储器子系统控制器的重置和重放的示例性方法的流程图。
图5是描绘了根据本公开的一些实施例的包含由图1的存储器子系统控制器进行的一些示例性操作的示例性过程的流程图。
图6是描绘了根据本公开的一些实施例的图1的主机装置和存储器子系统控制器的各个功能组件之间的通信以及由图1的存储器子系统控制器进行的操作的消息流程图。
图7是其中可以操作本公开的实施例的示例性算机系统的框图。
具体实施方式
本公开的实施方案涉及存储器子系统中的存储器子系统控制器的重置和重放。存储器子系统可以是存储装置、存储器模块、或存储装置和存储器模块的混合。下面结合图1描述存储装置和存储器模块的实例。通常,主机系统可以利用包含一或多个存储器组件(在本文中也被称为“存储器装置”)的存储器子系统。主机系统可以提供数据以存储于存储器子系统处,且可以请求从存储器子系统检索数据。
存储器子系统可以进一步包含存储器子系统控制器,其可以与存储器组件中的每一个通信以在存储器组件处进行例如读取数据、写入数据、擦除数据等操作,这可能是响应于从主机系统接收的请求。此外,一或多个存储器组件可以包含本地媒体控制器以管理存储器组件的存储器胞元,代表存储器组件与存储器子系统控制器通信,并执行从存储器子系统控制器接收的存储器请求(例如,读取请求、写入请求等)以及其它功能。存储器组件可以包含非易失性存储器组件,例如负和(NAND)型闪速存储器。存储器组件可以包含易失性存储器组件,例如随机存取存储器(RAM)。
关于存储器子系统,时常发生操作错误、系统故障等。如果存储器子系统报告主机系统发生错误、异常、断言、条件(例如,高温)等,或者如果存储器子系统未能满足一或多个性能指标,则从主机系统的角度来看,明显的是,已经发生了与存储器子系统相关的诸如此类的事件。在一些情况下,当主机系统从存储器子系统接收硬件中断时,主机系统可能会意识到存储器子系统的问题。在其它实例中,如果存储器子系统变得无响应、脱机、被禁用等,主机系统可能会意识到存储器子系统的问题。
在一些情况下,主机系统可能会尝试重启存储器子系统,可能是在主机系统等待存储器子系统响应的超时周期到期之后。此外,如果主机系统必须重启存储器子系统超过阈值次数——或者可能在一定时间内超过阈值次数,例如主机系统可以考虑存储器子系统不可靠、有缺陷等。在此类实例中,主机系统可以例如禁用和/或停止使用存储器子系统。
本公开的实施方案通过存储器子系统中的存储器子系统控制器的重置和重放解决了上述和其它缺陷。根据至少一个实施方案,存储器子系统的存储器子系统控制器包含在本文中被称为媒体控制器重启管理器的功能组件,在各个不同的实施例中,其可以以固件、软件和硬件的任何组合来实施。在大多数本文描述的实施例中,媒体控制器重启管理器以固件实现。在功能上,在至少一些实施方案中,媒体控制器重启管理器检测重启被称为媒体控制器的存储器子系统控制器的功能组件的事件,所述事件在本文中被称为触发事件。这些触发事件在本文中有时也被称为媒体控制器重启触发事件,或简称为触发器。
在各个不同的实施方案中,触发器可以采取各种形式。在一些情况下,一或多个触发器涉及由存储器子系统控制器的如媒体控制器等组件或被称为中间逻辑的另一个组件向媒体控制器重启管理器通知问题(例如,错误),所述中间逻辑是驻存在主机装置和媒体控制器之间的接口,并且其进行的操作包含从主机装置到媒体控制器的命令排队和数据缓冲,反之亦然。在其它情况下,一或多个触发器涉及媒体控制器重启管理器检测到问题(例如,错误);一个这种实例是媒体控制器重启管理器检测到与例如媒体控制器缺少通信的情况已超过预定时间量。贯穿本公开还描述了其它示例性触发器。
响应于检测到一或多个触发器,在本公开的至少一些实施方案中,媒体控制器重启管理器进行在本文中有时被称为媒体控制器重启操作的一组操作。在一些实施方案中,媒体控制器重启操作包含单独地和/或共同地暂停为主机装置服务的存储器子系统的操作(例如,从主机装置接收提交的命令、将完成的命令返回到主机装置、从主机装置接收写入数据并将所述数据写入存储器子系统的一或多个存储器装置、将从一或多个存储器装置读取的请求数据返回到主机装置等)。在至少一些实例中,在完成媒体控制器重启操作后,存储器子系统恢复为主机装置服务。
媒体控制器重启操作可以包含以下操作,例如暂停中间逻辑操作的操作;重置媒体控制器;确定媒体控制器是否正在操作,如果是,则暂停媒体控制器的操作;恢复媒体控制器的操作;和恢复中间逻辑的操作。在一些实例中,媒体控制器重启操作还包含重置和重启中间逻辑中挂起的一或多个操作;在一些此类情况下,媒体控制器重启操作还包含将中间逻辑中的挂起操作重新排序。贯穿本公开给出了关于这些示例性媒体控制器重启操作的进一步细节,并且还描述了其它示例性媒体控制器重启操作。
本公开的实施方案的益处之一是存储器子系统从内部问题中自恢复,这可能是在相关联的主机装置未检测到已经发生问题(例如,延迟)的情况下实现的。此外,无论主机装置是否检测到已经发生与存储器子系统相关的问题,本公开的实施方案都防止了主机装置不得不重置存储器子系统以继续操作。此外,就主机装置对此类事件发生进行计数而言,能够防止此类事件发生的存储器子系统使得此计数不会增加。因此,主机装置不太可能认为存储器子系统有问题、有缺陷等,并且不太可能采取如禁用和/或停止使用存储器子系统等措施。对于受益于本公开的相关领域的技术人员来说,其它益处将是显而易见的。
图1示出了根据本公开的一些实施例的包含存储器子系统110的示例性计算环境100。存储器子系统110可以包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、闪存驱动器、通用串行总线(USB)闪存驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用闪速存储(UFS)驱动器以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)和非易失性双列直插式存储器模块(NVDIMM)。
计算环境100可以包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出了主机系统120的一个实例,其耦合到一个存储器子系统110。主机系统120使用存储器子系统110,例如以将数据写入存储器子系统110并从存储器子系统110读取数据。如本文使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线的还是无线的,包含诸如电、光、磁等的连接。
主机系统120可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、嵌入式计算机(例如,包含在车辆、工业设备或联网商业装置中的计算机),或包含存储器和处理装置的此类计算装置。主机系统120可以经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(serial advancedtechnology attachment;SATA)接口、外围组件互连高速(peripheral componentinterconnect express;PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(Serial Attached SCSI;SAS)等。物理主机接口可以用于在主机系统120和存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可以进一步利用非易失性存储器快速(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可以提供用于在存储器子系统110和主机系统120之间传递控制、地址、数据和其它信号的接口。
存储器装置可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于RAM,例如DRAM和同步DRAM(SDRAM)。非易失性存储器装置(例如,存储器装置130)的一个实例包含负和(NAND)型闪速存储器。存储器装置130中的每一个可以包含存储器胞元的一或多个阵列,所述存储器胞元例如单层级胞元(SLC)或多层级胞元(MLC)(例如,三层级胞元(TLC)或四层级胞元(QLC))。在一些实施例中,特定存储器组件可以包含存储器胞元的SLC部分和/或MLC部分(例如,TLC部分或QLC部分)。每个存储器胞元可以存储主机系统120使用的一或多位数据。此外,存储器装置130的存储器胞元可以被分组为存储器页或存储器块,其可以是指用于存储数据的存储器组件的单元。
尽管描述了如NAND型闪速存储器等非易失性存储器组件,但是存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、磁RAM(MRAM)、负或(NOR)型闪速存储器、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和非易失性存储器胞元的交叉点阵列。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格数据存取阵列基于体电阻的变化进行位存储。此布置有时被称为三维交叉点(3DXP)存储器。与许多基于闪存的存储器相比,交叉点非易失性存储器可以进行原位写入操作,其中可以对非易失性存储器胞元进行编程,而无需预先擦除所述非易失性存储器胞元。
存储器子系统控制器115可以与存储器装置130通信以进行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,以及其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
此外,在一些实施方案中,存储器子系统控制器115包含被配置成执行本地存储器119中存储的指令的处理器(处理装置)117。在所示处的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其被配置成存储用于进行控制存储器子系统110的操作(包含处理存储器子系统110和主机系统120之间的通信)的各种过程、操作、逻辑流程和例程的指令。
在一些实施例中,本地存储器119包含存储存储器指针、所获取的数据等的存储器寄存器。本地存储器119还可以包含用于存储微代码的ROM。尽管图1中的示例性存储器子系统110被示出为包含存储器子系统控制器115,但在本公开的另一个实施例中,存储器子系统110可以不包含存储器子系统控制器,并且可以相取代地依赖于外部控制(例如,由外部主机或与存储器子系统110分开的处理器或控制器提供)。
通常,存储器子系统控制器115可以从主机系统120接收命令或操作,并且可以将命令或操作转换成指令或适当的命令以实现对存储器装置130的期望存取。存储器子系统控制器115可以负责与存储器装置130相关联的其它操作,例如磨损均衡操作、垃圾收集操作、错误检测和纠错码(ECC)操作、加密操作、缓存操作以及逻辑块地址和物理块之间的地址转换。存储器子系统控制器115可以进一步包含主机接口电路系统125以经由物理主机接口与主机系统120通信。主机接口电路系统125可以将从主机系统接收的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
此外,如图1中所描绘,存储器子系统控制器115可以包含在存储器子系统控制器115和存储器装置130之间接口连接的媒体控制器121。另外,存储器子系统控制器115可以包含中间逻辑123,其在主机接口电路系统125和媒体控制器121之间接口连接。如上所述,在本公开的至少一个实施方案中,除了其它功能之外,中间逻辑123还在主机装置120和媒体控制器121之间在两个方向上提供命令排队和数据缓冲。在存储器子系统控制器115内,中间逻辑123的这些功能采取中间逻辑123在主机接口电路系统125和媒体控制器121之间在两个方向上提供命令排队和数据缓冲的形式,如下面结合图3所更全面地描述。
在本公开的至少一个实施方案中,并且还如图1中所描绘,存储器子系统控制器115还可以包含媒体控制器重启管理器113。在各个不同的实施方案中,媒体控制器重启管理器113可以包含用于进行至少本文描述的媒体控制器重启操作的电路系统、专用逻辑、可编程逻辑、固件、软件等或采取其形式。如上所提及,作为实例而非限制,媒体控制器重启管理器113在本文中主要被描述为以固件实施。
在一些实例中,存储器子系统控制器115包含媒体控制器重启管理器113的至少一部分——处理器117可以被配置成执行本地存储器119中存储的指令以进行本文描述的一或多个媒体控制器重启操作。在一些实施例中,媒体控制器重启管理器113是主机系统120、应用或操作系统的一部分。贯穿本公开描述了由媒体控制器重启管理器113在不同实施例中以不同组合进行的各种功能,如例如主机系统120、主机接口电路系统125、中间逻辑123、媒体控制器121和媒体控制器重启管理器113等实体之间的示例性通信。
存储器子系统110还可以包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),其可以从存储器子系统控制器115接收地址并对地址进行解码以存取存储器装置130。在一些实施例中,存储器装置130包含本地媒体控制器135,其与存储器子系统控制器115一起操作以在存储器装置130的一或多个存储器胞元上执行操作。
图2是存储器装置130的示例性架构200的框图。存储器装置130中的每一个可以具有与在图2中描绘并结合其作为实例描述的存储器装置130的架构200相似的架构。存储器装置140也可以具有类似的架构。此外,存储器子系统110可以包含任何合适数量的存储器装置130和任何合适数量的存储器装置140。
如所提及,在至少一个实施例中,存储器装置130包含本地媒体控制器135。如图2中所进一步描绘,在至少一个实施例中,存储器装置130还包含读取/写入存储202和只读存储204。存储器装置130的架构200是作为实例而非限制呈现的,因为在不同的实施方案中可以使用不同的架构。在至少一个实施例中,读取/写入存储202包含本地媒体控制器135可以向其写入数据并且本地媒体控制器135可以从其读取数据的非易失性数据存储元件。在一个实例中,存储器装置130是NAND型闪速存储器组件。在另一个实例中,存储器装置130是3DXP存储器装置。在至少一个实施例中,只读存储204包含本地媒体控制器135可以从其读取数据的非易失性数据存储元件。只读存储204可以含有一次性编程(OTP)数据,所述数据在存储器装置130的制造时被编程。
图3描绘了存储器子系统控制器115的示例性架构300。架构300作为实例而非限制提供。除了存储器子系统控制器115之外,图3中还描绘了主机系统120。图3中描绘的存储器子系统控制器115的任何组件或其任何子组件可以使用在硬件上执行的软件和/或固件来实现,或者作为硬件电路来实现。作为一个实例,一或多个组件或子组件可以被实现为FPGA的编程部分。
此外,图1中描绘的存储器子系统控制器115的一些组件未在图3中描绘:处理器117和本地存储器119。图3中也未描绘存储器子系统控制器115和存储器装置130之间(例如,媒体控制器121和存储器装置130之间)的连接或通信。这些省略并不意味着在至少一些实施方案中不存在此些组件和连接,而是旨在更清楚地呈现图3中描绘的实体、组件、连接、通信等。
媒体控制器121在图3的架构300中被描绘为包含配置和状态电路302、控制路径304和数据路径306。配置和状态电路302可以从处理器117接收配置和状态请求并且可以向所述处理器传输配置和状态响应。配置和状态请求可以涉及处理器117配置媒体控制器121的各种操作参数,并且还可以涉及处理器117请求关于媒体控制器121的状态信息。配置和状态响应可以包含对那些状态请求的响应以及关于任何接收到的配置请求的确认(或失败)响应。
控制路径304在图3中被描绘为包含控制路径存储器315、可重置寄存器316和粘性寄存器318。尽管未在图3中示出,但控制路径304还可以包含用于进行如解析命令、处理命令和完成命令等操作的顺序控制路径阶段。关于完成命令,这可以包含控制路径304制定对命令的响应,指示命令执行的成功或失败,以及将那些响应传输到中间逻辑123以旨在由主机系统120接收。作为一个实例,控制路径存储器315可以是静态RAM(SRAM),并且可以被数据路径306用来存储数据路径306在操作期间使用的任何数据。
在本公开的至少一个实施方案中,可重置寄存器316包含一或多个寄存器,其中存储的任何值在媒体控制器121经历重置操作时被清除。此外,在至少一个实施方案中,粘性寄存器318包含一或多个寄存器,其中存储的任何值在媒体控制器121经历重置操作时不被清除——相反,一或多个粘性寄存器318中存储的任何值在媒体控制器121的重置后会继续存在。在至少一个实施方案中,可重置寄存器316和粘性寄存器318中的任一者或两者中存储的任何值在媒体控制器121的电力循环后不会继续存在,例如这可能会作为存储器子系统控制器115的电力循环的一部分存在。
一般来说,数据路径306可以用于执行源自主机系统120的一些命令(例如,如写入请求、读取请求等数据请求),包含执行针对存储器装置130的那些数据请求。在图3中描绘的示例性架构300中,数据路径306被示出为包含数据缓冲器320。在写入请求的情况下,数据路径306可以在将写入数据段写入一或多个存储器装置130之前在数据缓冲器320中缓冲那些写入数据段,所述写入数据段含有待写入一或多个存储器装置130的来自主机系统120的数据。在读取请求的情况下,数据路径306可以在将读取数据段传输到中间逻辑123以旨在由主机系统120接收之前缓冲那些读取数据段,所述读取数据段含有已在主机系统120的请求下从一或多个存储器装置130读取的数据。在一些实施方案中,数据缓冲器320是单个缓冲器;在其它实施方案中,数据缓冲器320包含多个数据缓冲器(例如,写入数据缓冲器和读取数据缓冲器)。
如图3中所描绘,中间逻辑123包含命令提交队列308、命令完成队列310、写入缓冲器312和读取缓冲器314,它们中的每一个都可以被布置成以先进先出(FIFO)方式操作,但也可以为这些队列和/或缓冲器中的一或多个选择其它实施方案。在至少一个实施方案中,命令提交队列308和命令完成队列310都被布置成用作主机接口电路系统125和媒体控制器121之间的命令的队列。此外,在至少一个实施方案中,写入缓冲器312和读取缓冲器两者314被布置成用作主机接口电路系统125和媒体控制器121之间的数据段(例如,块、页、分组、帧和/或任何其它合适数量的数据)的缓冲器。
在操作中,在本公开的至少一个实施方案中,主机接口电路系统125从主机系统120接收提交的主机命令330,其可以包含写入命令、读取命令、擦除命令、重置命令、电力循环命令和/或主机系统120可以传输到存储器子系统110的任何其它类型的命令。主机接口电路系统125可以将提交的主机命令330转换成提交的主机接口命令332。在一些实施方案中,这种转换涉及主机接口电路系统125将提交的主机命令330重新格式化为提交的主机接口命令332,所述主机接口命令可以是适合于由存储器子系统控制器115进行内部处理的格式。主机接口电路系统125将提交的主机接口命令332传输到命令提交队列308。当提交的主机接口命令332从命令提交队列308中出现时,它们在本文中被称为提交的中间逻辑命令334,其从命令提交队列308传输到控制路径304。
如在前一段落中可以看出,在本描述中用于在图3中描绘并结合其描述的各种命令、写入数据段和读取数据段的约定是将命令、写入数据段和读取数据段根据哪个实体正在生成(或至少传输)它们来命名。继续本描述,然后,可以看出控制路径304将完成的媒体控制器命令340传输到命令完成队列310。当完成的媒体控制器命令340从命令完成队列310中出现时,它们在本文中被称为完成的中间逻辑命令342,其从命令完成队列310传输到主机接口电路系统125。在至少一个实施方案中,主机接口电路系统125将完成的中间逻辑命令342转换成适合于传输到主机系统120并由其处理的格式。这些转换和传输命令在本文中被称为完成的主机接口命令344。
此外,主机接口电路系统125从主机系统120接收主机写入数据段350。主机写入数据段350包含主机系统120请求写入一或多个存储器装置130的数据。主机接口电路系统125接收主机写入数据段350,将它们转换成适合由存储器子系统110进行内部处理的格式,并将转换写入数据段传输到写入缓冲器312作为主机接口写入数据段352。当主机接口写入数据段352从写入缓冲器312中出现时,它们在本文中被称为中间逻辑写入数据段354,其从中间逻辑123的写入缓冲器312传输到数据路径306。然后,中间逻辑写入数据段354可以在被写入一或多个存储器装置130之前在数据缓冲器320中缓冲。
在另一个方向上,如上所述,数据路径306可以使用数据缓冲器320来缓冲已经从一或多个存储器装置130读取的读取数据段。当它们从数据缓冲器320中出现并通过数据路径306传输到中间逻辑123的读取缓冲器314时,这些读取数据段在本文中被称为媒体控制器读取数据段360。并且,当媒体控制器读取数据段360从读取缓冲器314中出现时,它们在本文中被称为中间逻辑读取数据段362,其从中间逻辑123的读取缓冲器314传输到主机接口电路系统125。在至少一个实施方案中,主机接口电路系统125将中间逻辑读取数据段362转换成适合传输到主机系统120并由其处理的格式。这些转换和传输读取数据段在本文中被称为主机接口读取数据段364。
下面分别结合图4和图5描述示例性方法400和示例性过程500。关于这些附图及其随附的描述,应理解,尽管以特定顺序示出,但除非另有说明,否则可以修改所描绘和描述的操作的顺序。因此,所示出的实施方案应仅被理解为实例,并且应进一步理解,所示出的操作可以以不同的顺序进行,并且一些操作可以并行地进行。另外,可以在各个实施例中省略一或多个操作。因此,并非所有操作都结合每个实施方案来进行。其它过程流程也是可能的。此外,方法400和/或过程500可以由处理逻辑来进行,所述处理逻辑可以包含硬件(例如,电路系统、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上执行的指令)、固件或其组合。
图4描绘了方法400,其是用于如存储器子系统110等存储器子系统中的存储器子系统控制器的重置和重放的方法。在本公开的各个不同实施方案中,方法400可以由存储器子系统110、存储器子系统控制器115、媒体控制器121、中间逻辑123、主机接口电路系统125和媒体控制器重启管理器113中的任何一个或任何组合来进行。作为实例而非限制,方法400在下文中被描述为由媒体控制器重启管理器113进行。
方法400以媒体控制器重启管理器113检测重启媒体控制器121的触发事件开始。一种示例性类型的触发事件是媒体控制器重启管理器113从媒体控制器121接收通知。此通知可能是在媒体控制器121处发生的内部错误的通知,或者可能是来自媒体控制器121的与一或多个存储器组件130相关的错误的通知。触发事件的另一个实例是媒体控制器121从存储器子系统110的固件接收错误。在一些情况下,触发事件包含媒体控制器121检测到至少媒体控制器121的吞吐量水平的阈值下降。另一个示例性触发事件是媒体控制器重启管理器113检测到一或多个不可纠正的数据错误,所述数据错误可能与尝试从一或多个存储器组件130读取数据有关。
响应于检测到触发事件(在操作402),媒体控制器重启管理器113进行一组一或多个在本文中被称为媒体控制器重启操作的操作(参见操作404-412)。第一示例性媒体控制器重启操作是媒体控制器重启管理器113暂停中间逻辑123的操作(参见操作404)。这可以包含暂停中间逻辑123对来自主机接口电路系统的主机接口电路系统流量的接受。中间逻辑123可以暂停接受的主机接口电路系统流量的两个实例是提交的主机接口命令332和主机接口写入数据段352。
此外,如在操作406所示出,媒体控制器重启管理器113可以进行的另一个媒体控制器重启操作涉及媒体控制器重启管理器113确定媒体控制器121是否正在操作,如果是,则暂停媒体控制器121的操作。这可以涉及暂停媒体控制器121对来自中间逻辑123的中间逻辑流量的接受。媒体控制器121可以暂停接受的中间逻辑流量的一些实例是提交中间逻辑命令334和中间逻辑写入数据段354。
媒体控制器重启操作还可以包含媒体控制器重启管理器113重置媒体控制器121(参见操作408)。如本文所述,在一些实施方案中,媒体控制器121包含控制路径304,其包含控制路径存储器315和一或多个可重置寄存器316;以及数据路径306,其包含数据缓冲器320。在进行操作408的一些实例中,媒体控制器重启管理器113清除控制路径存储器315,清除可重置寄存器316和清除数据缓冲器320。注意,在本上下文中的“清除”也可以被称为“清理”。
在操作408示出了另一个示例性媒体控制器重启操作,其涉及媒体控制器重启管理器113恢复媒体控制器121的操作。在一些实例中,这可以涉及媒体控制器重启管理器113和/或存储器子系统控制器115中的另一个实体向媒体控制器121发送恢复操作的指令,这可以涉及恢复对来自中间逻辑123的中间逻辑流量的接受。
媒体控制器重启操作还可以包含媒体控制器重启管理器113恢复中间逻辑123的操作(参见操作412)。这可以涉及媒体控制器重启管理器113和/或存储器子系统控制器115中的另一个实体向中间逻辑123发送恢复操作的指令,这可以包含恢复对来自主机接口电路系统125的主机接口电路系统流量的接受。
在本公开的一些实施方案中,在暂停中间逻辑123的操作(在操作404)之后和在恢复中间逻辑123的操作(在操作412)之前,媒体控制器重启管理器113进行一组额外的媒体控制器重启操作,其涉及媒体控制器重启管理器113确定中间逻辑123中是否存在任何挂起命令(例如,在命令提交队列308中),如果有,则重置中间逻辑123中的每个这种挂起命令的状态,以及重启每个这种挂起命令。在一些实例中,重启中间逻辑123中的每个挂起命令涉及在暂停中间逻辑123(在操作404)之前以中间逻辑123中的一组挂起命令在命令提交队列308中排队的顺序重启所述一组挂起命令。然而,在其它实例中,媒体控制器重启管理器113在中间逻辑123中将在命令提交队列308中排队的一组挂起命令重新排序为修订顺序,然后以所述修订顺序重启所述一组挂起命令。
图5示出了过程500,其包含在本公开的一些实施方案中进行的操作。在至少一个实施方案中,过程500由媒体控制器重启管理器113作为进行方法400的媒体控制器重启管理器113的至少一部分来进行。然而,在一些实施例中,进行方法400不涉及完成过程500的进行,而是涉及进行过程500的一或多个操作但并非全部操作。本公开的一些实施例涉及进行方法400和过程500中的一个但不进行另一个。与方法400的情况一样,作为实例而非限制,过程500在本文中被描述为由媒体控制器重启管理器113进行。如果适用且在适用的情况下,媒体控制器重启管理器113的各种不同组件通过实例在下文中被描述为进行过程500的一或多个操作。
作为过程500的一部分进行的许多操作类似于作为方法400的一部分进行的操作,并且因此未结合过程500详细描述。过程500以操作502开始,其中媒体控制器重启管理器113轮询(例如,检查)媒体控制器重启触发器的发生。然后,控制进行到操作504,其中媒体控制器重启管理器113评估它是否实际上已经检测到此触发事件。如果不是,则控制返回到操作502,并且媒体控制器重启管理器113继续轮询。然而,如果是,则控制进行到操作506,其中媒体控制器重启管理器113暂停中间逻辑123。
然后,控制进行到操作508,在所述操作,媒体控制器重启管理器113确定媒体控制器121当前是否正在操作。媒体控制器重启管理器113可以基于自上次接收来自媒体控制器121的任何通信以来经过的时间做出这种确定。在其它情况下,媒体控制器重启管理器113可以通过主动向媒体控制器121发送ping消息并等待响应来做出这种确定。如果在某一时间量内接收到响应,则媒体控制器重启管理器113可以确定媒体控制器121正在操作。如果在所述预定时间量内没有接收到这种响应,则媒体控制器重启管理器113可以确定媒体控制器121并非正在操作。
如果媒体控制器重启管理器113在操作508确定媒体控制器121正在操作,则控制进行到操作510,在所述操作,媒体控制器重启管理器113暂停媒体控制器121。然后,控制从操作510进行到操作512。相反,如果媒体控制器重启管理器113在操作508确定媒体控制器121并非正在操作,则控制直接从操作508进行到操作512。无论哪种方式,在操作512,媒体控制器重启管理器113重置媒体控制器121。然后,控制进行到操作514,在所述操作,媒体控制器重启管理器113恢复媒体控制器121的操作。
接下来,在操作516,媒体控制器重启管理器113评估中间逻辑123中是否存在任何挂起命令(例如,在命令提交队列308中排队)。如果是,则控制进行到操作518,在所述操作,媒体控制器重启管理器113重置每个这种挂起命令;然后进行到操作520,在所述操作,媒体控制器重启管理器113重启每个这种挂起命令。然后,控制进行到操作522。相反,如果媒体控制器重启管理器113在操作516确定中间逻辑123中不存在挂起命令,则控制直接从操作516进行到操作522。无论哪种方式,在操作522,媒体控制器重启管理器113恢复中间逻辑123的操作。然后,控制返回到操作502,在所述操作,媒体控制器重启管理器113轮询一或多个媒体控制器重启触发器的发生。
本文描述的许多通信和操作以图形形式显示于在结合图6中描绘并结合其在此描述的示例性消息流程600中。与图5的过程500的情况一样,这些通信和操作未结合图6详细描述,因为它们也存在于本公开的其它地方。然而,消息流程600确实提供了对本公开的至少一些实施方案的额外可视化理解。
可以看出,消息流程600中表示的实体是主机系统120、主机接口电路系统125、媒体控制器重启管理器113、中间逻辑123(包含命令提交队列308、命令完成队列310、写入缓冲器312和读取缓冲器314)和媒体控制器121(包含控制路径304和数据路径306)。此外,可以看出,在初始阶段602期间,消息流程600以主机系统120和存储器子系统110之间的正常操作开始。作为这种正常操作的一部分,存储器子系统110为来自主机系统120的主机请求服务。
特别地,在初始阶段602期间可以看出,主机系统120将提交的主机命令330发送到主机接口电路系统125,所述主机接口电路系统继而将提交的主机接口命令332发送到命令提交队列308。这些命令作为提交的中间逻辑命令334从命令提交队列308中出现,其被传输到控制路径304。此外,控制路径304将完成的媒体控制器命令340发送到命令完成队列310。从命令完成队列310中出现的命令是完成的中间逻辑命令342,其由命令完成队列310传输到主机接口电路系统125,所述主机接口电路系统继而将完成的主机接口命令344传输到主机系统120。
此外,主机系统120将主机写入数据段350发送到主机接口电路系统125,所述主机接口电路系统继而将主机接口写入数据段352发送到写入缓冲器312。然后,写入缓冲器312将中间逻辑写入数据段354发送到数据路径306。此外,数据路径306将媒体控制器读取数据段360发送到读取缓冲器314,所述读取缓冲器继而将中间逻辑读取数据段362发送到主机接口电路系统125。然后,主机接口电路系统125将主机接口读取数据段364发送到主机系统120。
总之,然后在初始阶段602期间可以看出,命令和数据段正在主机系统120和存储器子系统110之间交换(因为命令和数据段正在主机系统120和作为存储器子系统110的一部分的存储器子系统控制器115的主机接口电路系统125之间交换)。所描绘的正在交换的命令是提交的主机命令330和完成的主机接口命令344。所描绘的正在交换的数据段是主机写入数据段350和主机接口读取数据段364。
然后,在操作604,媒体控制器重启管理器113检测媒体控制器重启触发器。接下来,媒体控制器重启管理器113向中间逻辑123发送命令606以暂停中间逻辑123。在操作608,由双端箭头表示,媒体控制器重启管理器113检查媒体控制器121是否正在操作。在本实例中,媒体控制器重启管理器113在操作608确定媒体控制器121正在操作,并其因此向媒体控制器121发送命令610以暂停媒体控制器121。然后,媒体控制器重启管理器113向媒体控制器121发送命令612以重置媒体控制器121,随后向媒体控制器121发送命令614以指示媒体控制器121恢复操作。
在发送命令610、612和614之后,媒体控制器重启管理器113(在操作616,也由双端箭头表示)检查中间逻辑123中是否存在任何挂起命令(例如,在命令提交队列308中排队)。在本实例中,存在一些这种挂起命令,并且因此操作616还包含媒体控制器重启管理器113重置和重启(可能在重新排序之后)那些挂起命令。接下来,媒体控制器重启管理器113向媒体控制器121发送命令618,从而指示媒体控制器121恢复操作。
最后,在消息流程600中可以看出,在重启后阶段620,存储器子系统110再次为针对主机系统120的主机请求服务。这在消息流程600中由与重启后阶段620相关联的双端、端到端箭头表示。值得注意的是,尽管在初始阶段602以及重启后阶段620期间存在主机系统120和存储器子系统110(尤其是主机接口电路系统125)之间的通信,但在初始阶段602和重启后阶段620之间却不存在主机系统120和存储器子系统110之间的通信。然而,在至少一些此类示例性实例中,主机系统120不需要用于例如重置或重启存储器子系统110。相反,根据本公开的实施方案,存储器子系统110检测到其自身的内部弊端、问题、错误、延迟等并从其中恢复。
此外,为了测试目的,本公开的一些实施方案包含一或多个功能模块的布置——其可以使用在硬件上执行的软件和/或固件来实施,或者可以被实施为硬件组件——其布置在存储器子系统控制器115中或与所述存储器子系统控制器通信。此类功能模块可以操作以在媒体控制器121处有意地“注入”错误,以便有意地使媒体控制器重启管理器113检测一或多个媒体控制器重启触发事件,从而评估本文描述的媒体控制器重启操作中的一或多个的进行。如数据完整性、主机系统120和存储器子系统110之间的流量被暂停的持续时间等指标可以使用这种方法来评估。
图7示出了可以在其内执行用于使机器进行本文讨论的任何一或多种方法的一组指令726的计算机系统700的示例性机器。在一些实施例中,计算机系统700可以对应于包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120),或可以用于进行控制器的操作(例如,以执行操作系统以进行对应于图1的媒体控制器重启管理器113的操作)。在替代实施例中,所述机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。所述机器可以作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够执行一组指令(顺序或其它)的任何机器,所述指令指定所述机器待采取的动作。另外,尽管示出了单个机器,但术语“机器”还应被理解为包含机器的任何集合,所述集合单独地或共同地执行一(或多)组指令以进行本文论述的任何一或多种方法。
示例性计算机系统700包含处理装置702、主存储器704(例如,ROM、闪速存储器、诸如SDRAM或RDRAM的DRAM等)、静态存储器706(例如,闪速存储器、SRAM等)和数据存储系统718,它们经由总线730相互通信。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元(CPU)等。更特别地,处理装置702可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器或实施指令集的组合的处理器。处理装置702也可以是一或多个专用处理装置,例如ASIC、FPGA、数字信号处理器(DSP)、网络处理器等。在至少一个实施例中,处理装置702被配置成执行指令726以执行进行本文讨论的操作。计算机系统700可以进一步包含网络接口装置708以通过网络720进行通信。
数据存储系统718可以包含机器可读存储媒体724(也被称为计算机可读媒体),其上存储了一或多组指令726或体现本文描述的任何一或多种方法或功能的软件。所述指令726还可以在其由计算机系统700执行期间完全低或至少部分地驻存在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可以对应于图1的存储器子系统110。
在一个实施例中,指令726包含用于实施对应于媒体控制器重启管理器113(例如,图1的媒体控制器重启管理器113)的功能的指令。尽管机器可读存储媒体724在一个示例性实施例中被示出为单个媒体,但是术语“机器可读存储媒体”应被理解为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被理解为包含能够存储或编码一组指令以供所述机器执行并且使所述机器进行本公开的任何一或多种方法的任何媒体。因此,术语“机器可读存储媒体”应被理解为包含但不限于固态存储器、光媒体和磁媒体。
前述详细描述的一些部分已经根据算法和对计算机存储器内的数据位的操作的符号表示进行了呈现。这些算法描述和表示是数据处理领域的技术人员将他们的工作实质最有效地传达给此领域的其它技术人员而使用的方式。在此处,且一般将算法构想为产生期望结果的操作的自洽序列。所述操作是要求对物理量进行物理操纵的操作。通常,但并非必须,这些量采用能够被存储、组合、比较和/或以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以是指计算机系统或类似电子计算装置的动作和过程,所述计算机系统或类似电子计算装置操纵在计算机系统的寄存器和存储器内表示为物理(电子)量的数据并将其转换成在计算机系统的寄存器和存储器或其它此类信息存储系统内类似地表示为物理量的其它数据。
本公开还涉及一种用于进行本文描述的操作的设备。所述设备可以针对预期目的专门构造,或者它可以包含由计算机中存储的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可以存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM、磁光盘、ROM、RAM、EPROM、EEPROM、磁或光卡和/或适合存储电子指令的任何类型的媒体,每一种都耦合到计算机系统总线。
本文中呈现的算法和显示在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文的教示内容的程序一起使用,或者可以证实,构造更专业的设备来进行所述方法是便利的。各种这些系统的结构将如本公开中所述出现。另外,未参考任何特定编程语言来描述本公开。应了解,可以使用各种编程语言来实施如本文所述的本公开的教示内容。
本公开可以作为计算机程序产品或软件提供,其可以包含其上存储有指令的机器可读媒体,所述指令可以用于对计算机系统(或一或多个其它电子装置)进行编程以进行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施方案中,机器可读(例如,计算机可读)媒体包含机器可读(例如,计算机可读)存储媒体,例如ROM、RAM、磁盘存储媒体、光存储媒体、闪速存储器装置等。
在前述说明书中,已描述本公开的一些示例性实施方案。因此,应在说明性意义上而不是限制性意义上看待说明书和图式。下文为本公开的实施方案的实例的非穷尽性列表。
实例1是一种系统,其包含多个存储器组件;和处理装置,其与所述多个存储器组件可操作地耦合,所述处理装置包含主机接口电路系统、中间逻辑、媒体控制器和媒体控制器重启管理器,所述媒体控制器重启管理器被配置成进行包含以下的操作:检测重启所述媒体控制器的触发事件;和响应于检测到所述触发事件,进行媒体控制器重启操作,所述媒体控制器重启操作包含:暂停所述中间逻辑的操作;确定所述媒体控制器是否正在操作,如果是,则暂停所述媒体控制器的操作;重置所述媒体控制器;恢复所述媒体控制器的操作;和恢复所述中间逻辑的操作。
实例2是根据实例1所述的主题,其中所述触发事件包含从所述媒体控制器接收通知。
实例3是根据实例1或实例2所述的主题,其中所述通知包含所述媒体控制器的内部错误的通知。
实例4是根据实例1到3中任一个实例所述的主题,其中所述通知包含与所述多个存储器组件中的一或多个所述存储器组件相关的错误的通知。
实例5是根据实例1到4中任一个实例所述的主题,其中所述触发事件包含从所述系统的固件接收错误的通知。
实例6是根据实例1到5中任一个实例所述的主题,其中所述触发事件包含至少所述媒体控制器的吞吐量水平的阈值下降。
实例7是根据实例1到6中任一个实例所述的主题,其中所述触发事件包含一或多个不可纠正的数据错误。
实例8是根据实例1到7中任一个实例所述的主题,其中暂停所述中间逻辑的操作包含:暂停所述中间逻辑对来自所述主机接口电路系统的主机接口电路系统流量的接受。
实例9是根据实例1到8中任一个实例所述的主题,其中暂停所述媒体控制器的操作包含:暂停所述媒体控制器对来自所述中间逻辑的中间逻辑流量的接受。
实例10是根据实例1到9中任一个实例所述的主题,其中所述媒体控制器包含控制路径,所述控制路径包含(i)控制路径存储器和一或多个可重置寄存器以及(ii)包含数据缓冲器的数据路径;并且重置所述媒体控制器的包含:清除所述控制路径存储器;清除所述一或多个可重置寄存器;和清除所述数据缓冲器。
实例11是根据实例1到10中任一个实例所述的主题,其中所述媒体控制器重启操作进一步包含:在暂停所述中间逻辑的操作之后并且在恢复所述中间逻辑的操作之前,确定所述中间逻辑中是否存在任何挂起命令,如果有,则重置所述中间逻辑中的每个挂起命令的状态;并重启所述中间逻辑中的每个挂起命令。
实例12是根据实例11所述的主题,其中重启所述中间逻辑中的每个挂起命令包含:以原始顺序重启所述中间逻辑中的多个挂起命令。
实例13是根据实例11所述的主题,其中所述媒体控制器重启操作进一步包含:将所述中间逻辑中的多个挂起命令重新排序为修订顺序,并且其中重启所述中间逻辑中的每个挂起命令包含:以所述修订顺序重启所述中间逻辑中的所述多个挂起命令。
实例14是一种方法,其包含:由处理装置的媒体控制器重启管理器检测重启所述处理装置的媒体控制器的触发事件,所述处理装置与多个存储器组件可操作地耦合,所述处理装置进一步包含主机接口电路系统和中间逻辑;和响应于检测到所述触发事件,所述媒体控制器重启管理器进行媒体控制器重启操作,所述媒体控制器重启操作包含:暂停所述中间逻辑的操作;确定所述媒体控制器是否正在操作,如果是,则暂停所述媒体控制器的操作;重置所述媒体控制器;恢复所述媒体控制器的操作;和恢复所述中间逻辑的操作。
实例15是根据实例14所述的主题,其中所述触发事件包含从所述媒体控制器接收通知。
实例16是根据实例14或实例15所述的主题,其中暂停所述中间逻辑的操作包含:暂停所述中间逻辑对来自所述主机接口电路系统的主机接口电路系统流量的接受。
实例17是根据实例14到16中任一个实例所述的主题,其中暂停所述媒体控制器的操作包含:暂停所述媒体控制器对来自所述中间逻辑的中间逻辑流量的接受。
实例18是根据实例14到17中任一个实例所述的主题,其中所述媒体控制器包含(i)包含控制路径存储器和一或多个可重置寄存器控制路径以及(ii)包含数据缓冲器的数据路径;并且其中重置所述媒体控制器包含:清除所述控制路径存储器;清除所述一或多个可重置寄存器;和清除所述数据缓冲器。
实例19是根据实例14到18中任一个实例所述的主题,其中所述媒体控制器重启操作进一步包含:在暂停所述中间逻辑的操作之后并且在所述恢复所述中间逻辑的操作之前,确定所述中间逻辑中是否存在任何挂起命令,如果有,则重置所述中间逻辑中的每个挂起命令的状态;并重启所述中间逻辑中的每个挂起命令。
实例20是一种含有指令的非暂时性机器可读存储媒体,当由处理装置执行时,所述指令使所述处理装置进行包含以下的操作:由所述处理装置的媒体控制器重启管理器检测重启所述处理装置的媒体控制器的触发事件,所述处理装置与多个存储器组件可操作地耦合,所述处理装置进一步包含主机接口电路系统和中间逻辑;和响应于检测到所述触发事件,所述媒体控制器重启管理器进行媒体控制器重启操作,所述媒体控制器重启操作包含:暂停所述中间逻辑的操作;确定所述媒体控制器是否正在操作,如果是,则暂停所述媒体控制器的操作;重置所述媒体控制器;恢复所述媒体控制器的操作;和恢复所述中间逻辑的操作。

Claims (20)

1.一种系统,其包括:
多个存储器组件;和
处理装置,其与所述多个存储器组件可操作地耦合,所述处理装置包括主机接口电路系统、中间逻辑、媒体控制器和媒体控制器重启管理器,所述媒体控制器重启管理器被配置成进行包括以下的操作:
检测重启所述媒体控制器的触发事件;和
响应于检测到所述触发事件,进行媒体控制器重启操作,所述媒体控制器重启操作包括:
暂停所述中间逻辑的操作;
确定所述媒体控制器是否正在操作,如果是,则暂停所述媒体控制器的操作;
重置所述媒体控制器;
恢复所述媒体控制器的操作;和
恢复所述中间逻辑的操作。
2.根据权利要求1所述的系统,其中所述触发事件包括从所述媒体控制器接收通知。
3.根据权利要求2所述的系统,其中所述通知包括所述媒体控制器的内部错误的通知。
4.根据权利要求2所述的系统,其中所述通知包括与所述多个存储器组件中的一或多个所述存储器组件相关的错误的通知。
5.根据权利要求1所述的系统,其中所述触发事件包括从所述系统的固件接收错误的通知。
6.根据权利要求1所述的系统,其中所述触发事件包括至少所述媒体控制器的吞吐量水平的阈值下降。
7.根据权利要求1所述的系统,其中所述触发事件包括一或多个不可纠正的数据错误。
8.根据权利要求1到7中任一项所述的系统,其中所述暂停所述中间逻辑的操作包括:
暂停所述中间逻辑对来自所述主机接口电路系统的主机接口电路系统流量的接受。
9.根据权利要求1到7中任一项所述的系统,其中所述暂停所述媒体控制器的操作包括:
暂停所述媒体控制器对来自所述中间逻辑的中间逻辑流量的接受。
10.根据权利要求1到7中任一项所述的系统,其中:
所述媒体控制器包括:
控制路径,其包括控制路径存储器和一或多个可重置寄存器;和
数据路径,其包括数据缓冲器;并且
所述媒体控制器的所述重置包括:
清除所述控制路径存储器;
清除所述一或多个可重置寄存器;和
清除所述数据缓冲器。
11.根据权利要求1到7中任一项所述的系统,其中所述媒体控制器重启操作进一步包括:
在暂停所述中间逻辑的操作之后并且在恢复所述中间逻辑的操作之前,确定所述中间逻辑中是否存在任何挂起命令,如果有,则:
重置所述中间逻辑中的每个挂起命令的状态;并
重启所述中间逻辑中的每个挂起命令。
12.根据权利要求11所述的系统,其中所述中间逻辑中的每个挂起命令的所述重启包括:
以原始顺序重启所述中间逻辑中的多个挂起命令。
13.根据权利要求11所述的系统,其中所述媒体控制器重启操作进一步包括:
将所述中间逻辑中的多个挂起命令重新排序为修订顺序,其中重启所述中间逻辑中的每个挂起命令包括:
以所述修订顺序重启所述中间逻辑中的所述多个挂起命令。
14.一种方法,其包括:
由处理装置的媒体控制器重启管理器检测重启所述处理装置的媒体控制器的触发事件,其中所述处理装置与多个存储器组件可操作地耦合,并且其中所述处理装置进一步包括主机接口电路系统和中间逻辑;和
响应于检测到所述触发事件,所述媒体控制器重启管理器进行媒体控制器重启操作,所述媒体控制器重启操作包括:
暂停所述中间逻辑的操作;
确定所述媒体控制器是否正在操作,如果是,则暂停所述媒体控制器的操作;
重置所述媒体控制器;
恢复所述媒体控制器的操作;和
恢复所述中间逻辑的操作。
15.根据权利要求14所述的方法,其中所述触发事件包括从所述媒体控制器接收通知。
16.根据权利要求14所述的方法,其中所述暂停所述中间逻辑的操作包括:
暂停所述中间逻辑对来自所述主机接口电路系统的主机接口电路系统流量的接受。
17.根据权利要求14所述的方法,其中所述暂停所述媒体控制器的操作包括:
暂停所述媒体控制器对来自所述中间逻辑的中间逻辑流量的接受。
18.根据权利要求14到17中任一项所述的方法,其中:
所述媒体控制器包括:
控制路径,其包括控制路径存储器和一或多个可重置寄存器;和
数据路径,其包括数据缓冲器;并且
所述媒体控制器的所述重置包括:
清除所述控制路径存储器;
清除所述一或多个可重置寄存器;和
清除所述数据缓冲器。
19.根据权利要求14到17中任一项所述的方法,其中所述媒体控制器重启操作进一步包括:
在所述暂停所述中间逻辑的操作之后并且在所述恢复所述中间逻辑的操作之前,确定所述中间逻辑中是否存在任何挂起命令,如果有,则:
重置所述中间逻辑中的每个挂起命令的状态;并
重启所述中间逻辑中的每个挂起命令。
20.一种含有指令的非暂时性机器可读存储媒体,当由处理装置执行时,所述指令使所述处理装置进行包括以下的操作:
检测重启所述处理装置的媒体控制器的触发事件,其中所述处理装置与多个存储器组件可操作地耦合,并且其中所述处理装置进一步包括主机接口电路系统和中间逻辑;和
响应于检测到所述触发事件:
暂停所述中间逻辑的操作;
确定所述媒体控制器是否正在操作,如果是,则暂停所述媒体控制器的操作;
重置所述媒体控制器;
恢复所述媒体控制器的操作;和
恢复所述中间逻辑的操作。
CN202080058877.XA 2019-07-15 2020-07-01 存储器子系统中的存储器子系统控制器的重置和重放 Pending CN114341811A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962874359P 2019-07-15 2019-07-15
US62/874,359 2019-07-15
US16/784,966 2020-02-07
US16/784,966 US11243831B2 (en) 2019-07-15 2020-02-07 Reset and replay of memory sub-system controller in a memory sub-system
PCT/US2020/040557 WO2021011201A1 (en) 2019-07-15 2020-07-01 Reset and replay of memory sub-system controller in a memory sub-system

Publications (1)

Publication Number Publication Date
CN114341811A true CN114341811A (zh) 2022-04-12

Family

ID=74211037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080058877.XA Pending CN114341811A (zh) 2019-07-15 2020-07-01 存储器子系统中的存储器子系统控制器的重置和重放

Country Status (3)

Country Link
US (2) US11243831B2 (zh)
CN (1) CN114341811A (zh)
WO (1) WO2021011201A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714697B2 (en) 2019-07-15 2023-08-01 Micron Technology, Inc. Reset and replay of memory sub-system controller in a memory sub-system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220028692A (ko) * 2020-08-31 2022-03-08 주식회사 엘엑스세미콘 플래시 메모리의 리셋 기능을 갖는 모바일 폰 및 그의 플래시 메모리 제어 장치

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022713A (ja) * 1999-05-19 2001-01-26 Internatl Business Mach Corp <Ibm> メモリ・アクセス割込みを介して生成されるプロセッサ・リセット
CN101110047A (zh) * 2006-02-16 2008-01-23 英特尔公司 存储器重放机制
US20100211824A1 (en) * 2009-02-13 2010-08-19 Sun Microsystems, Inc. Systems and methods for memory retention across resets
JP2011180770A (ja) * 2010-02-26 2011-09-15 Brother Industries Ltd メモリ制御装置
CN102402396A (zh) * 2010-09-15 2012-04-04 群联电子股份有限公司 复合式储存装置及其复合式储存媒体控制器与编址方法
CN104572198A (zh) * 2014-12-31 2015-04-29 华为技术有限公司 一种业务恢复方法及装置
US20180081543A1 (en) * 2016-09-19 2018-03-22 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache with static and dynamic cells, and related methods

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5896204A (en) * 1993-12-06 1999-04-20 Canon Kabushiki Kaisha Facsimile apparatus
JP3866426B2 (ja) * 1998-11-05 2007-01-10 日本電気株式会社 クラスタ計算機におけるメモリ障害処理方法及びクラスタ計算機
WO2004092962A1 (ja) 2003-04-17 2004-10-28 Fujitsu Limited 半導体装置、リセット制御システム及びメモリリセット方法
US7392436B2 (en) * 2003-05-08 2008-06-24 Micron Technology, Inc. Program failure recovery
KR20080025503A (ko) 2006-09-18 2008-03-21 삼성전자주식회사 메모리카드가 장착되는 전자장치 및 그의 메모리카드 리셋방법
US9575892B2 (en) * 2013-03-15 2017-02-21 Nvidia Corporation Replaying memory transactions while resolving memory access faults
KR20180066601A (ko) * 2016-12-09 2018-06-19 삼성전자주식회사 메모리 시스템의 구동 방법
US11243831B2 (en) 2019-07-15 2022-02-08 Micron Technology, Inc. Reset and replay of memory sub-system controller in a memory sub-system
EP3825855A1 (en) * 2019-11-20 2021-05-26 Carrier Corporation Variable memory diagnostics

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022713A (ja) * 1999-05-19 2001-01-26 Internatl Business Mach Corp <Ibm> メモリ・アクセス割込みを介して生成されるプロセッサ・リセット
CN101110047A (zh) * 2006-02-16 2008-01-23 英特尔公司 存储器重放机制
US20100211824A1 (en) * 2009-02-13 2010-08-19 Sun Microsystems, Inc. Systems and methods for memory retention across resets
JP2011180770A (ja) * 2010-02-26 2011-09-15 Brother Industries Ltd メモリ制御装置
CN102402396A (zh) * 2010-09-15 2012-04-04 群联电子股份有限公司 复合式储存装置及其复合式储存媒体控制器与编址方法
CN104572198A (zh) * 2014-12-31 2015-04-29 华为技术有限公司 一种业务恢复方法及装置
US20180081543A1 (en) * 2016-09-19 2018-03-22 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache with static and dynamic cells, and related methods

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714697B2 (en) 2019-07-15 2023-08-01 Micron Technology, Inc. Reset and replay of memory sub-system controller in a memory sub-system

Also Published As

Publication number Publication date
WO2021011201A1 (en) 2021-01-21
US20210019217A1 (en) 2021-01-21
US11714697B2 (en) 2023-08-01
US11243831B2 (en) 2022-02-08
US20220075682A1 (en) 2022-03-10

Similar Documents

Publication Publication Date Title
EP3072134B1 (en) Defect management policies for nand flash memory
US20160315635A1 (en) Error correction code (ecc) selection using probability density functions of error correction capability in storage controllers with multiple error correction codes
US10732900B2 (en) Bounded latency and command non service methods and apparatus
US11294750B2 (en) Media management logger for a memory sub-system
US11714697B2 (en) Reset and replay of memory sub-system controller in a memory sub-system
US20230017942A1 (en) Memory sub-system event log management
US11803321B2 (en) Interruption of program operations at a memory sub-system
WO2021061529A1 (en) Loading media settings from on-media locations in a memory sub-system
CN115602214A (zh) 存储器装置中的命令快照产生
US10956344B2 (en) Providing information for a controller memory buffer elasticity status of a memory sub-system to a host system
US20210303172A1 (en) Monitoring flash memory erase progress using erase credits
WO2022205332A1 (en) Recording and decoding of information related to memory errors identified by microprocessors
US20240004745A1 (en) Pausing memory system based on critical event
US11709538B2 (en) Minimizing power loss and reset time with media controller suspend
WO2024036473A1 (en) Selectable error handling modes in memory systems
US11698752B2 (en) Retransmitting messages based on command queue depth in a memory subsystem
US20240111426A1 (en) Data Storage Device That Detects and Releases Bottlenecks In Hardware
US20220100605A1 (en) Preemptive read verification after hardware write back

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20220412