CN112230844A - 用于存储器子系统的介质管理记录器 - Google Patents

用于存储器子系统的介质管理记录器 Download PDF

Info

Publication number
CN112230844A
CN112230844A CN202010679805.9A CN202010679805A CN112230844A CN 112230844 A CN112230844 A CN 112230844A CN 202010679805 A CN202010679805 A CN 202010679805A CN 112230844 A CN112230844 A CN 112230844A
Authority
CN
China
Prior art keywords
command
data
lifecycle
recorder
event
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.)
Withdrawn
Application number
CN202010679805.9A
Other languages
English (en)
Inventor
朱方芳
Y·Y·邰
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 CN112230844A publication Critical patent/CN112230844A/zh
Withdrawn 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/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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • 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/0766Error or fault reporting or storing
    • 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/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • 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/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • 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/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/0653Monitoring storage devices or 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)

Abstract

本申请涉及用于存储器子系统的介质管理记录器。在实施例中,一种系统包括多个存储器组件和处理装置。所述处理装置包括命令生命周期记录器组件,所述命令生命周期记录器组件被配置成执行命令生命周期记录操作,所述命令生命周期记录操作包括检测用于记录命令生命周期调试数据的触发事件,以及响应地记录命令生命周期调试数据。记录命令生命周期调试数据包括生成所述命令生命周期调试数据并且将所生成的命令生命周期调试数据存储在数据存储部中。

Description

用于存储器子系统的介质管理记录器
相关申请的交叉引用
此申请要求于2019年7月15日提交的,标题为“用于存储器子系统的介质管理记录器”的美国临时专利申请序列号62/874,304的权益,其全部内容通过引用合并在本文中。
技术领域
本公开的实施例一般涉及存储器子系统,更具体地涉及用于存储器子系统的介质管理记录器。
背景技术
存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合体。存储器子系统可以包括存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。通常,主机系统可以利用存储器子系统在存储器组件处存储数据并从存储器组件检索数据。
发明内容
本公开的一个方面提供一种系统,其中所述系统包含:多个存储器组件;以及处理装置,其包含被配置成执行命令生命周期记录操作的命令生命周期记录器组件,所述命令生命周期记录操作包含:检测记录命令生命周期调试数据的触发事件;以及响应于检测到所述触发事件,记录命令生命周期调试数据,其中记录命令生命周期调试数据包含:生成所述命令生命周期调试数据;以及将所生成的命令生命周期调试数据存储在数据存储部中。
本公开的另一个方面提供一种方法,其中所述方法包含:由存储器子系统的介质管理组件的命令生命周期记录器组件检测用于记录命令生命周期调试数据的触发事件;以及响应于检测到所述触发事件,由所述命令生命周期记录器组件记录命令生命周期调试数据,其中记录命令生命周期调试数据包含:生成所述命令生命周期调试数据;以及将所生成的命令生命周期调试数据存储在数据存储部中。
本公开的另一个方面提供一种非暂时性机器可读存储介质,其包含指令,所述指令在由处理装置执行时使所述处理装置执行操作,其中所述操作包含:由存储器子系统的介质管理组件的命令生命周期记录器组件检测用于记录命令生命周期调试数据的触发事件;以及响应于检测到所述触发事件,由所述命令生命周期记录器组件记录命令生命周期调试数据,其中记录命令生命周期调试数据包含:生成所述命令生命周期调试数据;以及将所生成的命令生命周期调试数据存储在数据存储部中。
附图说明
根据以下给出的详细描述以及本公开的各种实施例的附图,将更全面地理解本公开。然而,附图不应被认为将本公开限制于特定实施例,而仅仅是为了解释和理解。
图1示出了根据本公开的一些实施例的包括存储器子系统的示例计算环境,所述存储器子系统包括存储器子系统控制器。
图2是包括根据本公开的一些实施例的图1的存储器子系统控制器的示例介质管理组件的框图。
图3是包括根据本公开的一些实施例的图2的介质管理组件的示例命令生命周期记录器的框图。
图4是描绘根据本公开的一些实施例的图1的存储器子系统控制器的各种功能组件和示例存储器装置之间的通信的消息流程图。
图5是根据本公开的一些实施例的可以由图1的存储器子系统控制器执行的用于调试和记录存储器子系统的示例方法的流程图。
图6是描绘根据本公开的一些实施例的包括由图1的存储器子系统控制器执行的一些示例操作的示例方法的流程图。
图7是可以在其中操作本公开的实施例的示例计算机系统的框图。
具体实施方式
本公开的实现指向用于存储器子系统的介质管理记录器。存储器子系统可以是存储装置、存储模块或存储装置和存储模块的混合体。下面结合图1描述存储装置和存储器模块的示例。通常,主机系统可以利用包括一或多个存储器组件(本文中也被称为“存储器装置”)的存储器子系统。主机系统可以提供要存储在存储器子系统处的数据,并且可以请求从存储器子系统检索数据。
主机系统可以向存储器子系统发送存取请求,例如在存储器子系统处存储数据以及从存储器子系统读取数据。以下将待读取和写入的数据称为“用户数据”。主机请求可以包括用户数据的逻辑地址(例如,逻辑块地址(LBA)),所述逻辑地址是主机系统与用户数据相关联的位置。逻辑地址(例如,LBA)可以是用户数据的元数据的一部分。
数据路径是指用户数据和元数据在整个存储器子系统中移动时所遵循的逻辑过程或路径。存储器子系统中的数据路径处理从主机系统接收的读取和写入数据命令。数据路径涵盖当数据被写入底层存储器装置或从底层存储器装置读取时所采用的完整的端到端过程。
控制路径是指例如向数据路径上的组件提供不同控制信号以控制数据路径如何正确工作的逻辑过程或路径。控制路径和数据路径包括数字电路、寄存器和互连总线。
操作错误、系统故障和/或类似情况相对于存储器子系统不时发生。从主机系统的角度来看,如果存储器子系统向主机系统报告错误、异常、断言、条件(例如,高温)和/或类似情况的发生,或如果存储器子系统未能满足一或多个性能指标,则可以明显看出例如此事件与存储器子系统相关发生。在一些情况下,当主机系统从存储器子系统接收硬件中断时,主机系统可以意识到存储器子系统的问题。在其它例子中,如果存储器子系统变得无响应、离线、变得禁用和/或类似情况,则主机系统可以意识到存储器子系统的问题。在一些情况下,主机系统可以尝试重置或重启存储器子系统。
关于存储器子系统的当前实现,即使例如已知存储器子系统的问题存在时,也难以甚至不可能确定问题的原因。存储器子系统控制器以高吞吐量输入/输出(I/O)和高速操作,使得当在存储器子系统控制器内部发生错误时可能难以调试。
本公开的各方面利用用于调试和记录存储器子系统中的介质管理记录器系统解决以上和其它缺陷。根据本公开的至少一个实现,存储器子系统控制器的介质管理组件包括可触发的、基于硬件的命令生命周期记录器,所述记录器在一或多个触发事件发生时记录调试数据。
在存储器子系统的操作中发生一或多个问题、故障和/或类似情况之后,调试数据可以例如由主机系统使用。在本发明的一些实现中,作为示例,主机系统可以经由例如通用异步收发器(UART)、快速外围组件互连(PCIe)或非易失性快速存储器(NVMe)等接口来存取调试数据。主机装置可以通过例如根据记录中的时间戳数据对调试数据记录进行排序来重建记录在调试数据中的事件序列。
触发事件可以包括固件和硬件事件,如本文中所讨论的。调试数据可以被存储在多个不同存储位置中的任何一或多个中,包括介质管理组件内部的存储器(例如,静态RAM(SRAM))、存储器子系统控制器的本地存储器、可用于(例如,在与其相同的电路板上)存储器子系统控制器的存储器装置(例如,动态RAM(DRAM)装置或非易失性存储器装置,例如NAND型或三维(3D)交叉点存储器装置),和/或主机系统上的数据存储部,作为示例。
此外,作为示例,可以继续记录调试数据,直到预定的时间量消逝,已经存储了与事变触发事件有关的预定量的调试数据,或发生了预定的停止记录事件。在一些实施方案中,每个触发事件所存储的调试数据量被生命周期命令记录器限制为一定量(例如,一千兆字节(GB))的调试数据,并且介质管理组件在其它可能的实现中保持所存储的第一个此类量或所存储的最新此类量。
对于给定的介质管理组件命令,存储在调试数据中的参数的类型可以包括与命令执行的生命周期(例如,开始、分派、内部状态、完成)相关的数据,提供穿过存储器子系统的控制路径的命令的跟踪。命令标识符也可以存储在关于给定介质管理组件命令的调试数据中。命令状态是在给定命令的执行期间迭代的命令内部时间戳,命令状态也可以被存储,也可以存储时间戳数据,反映来自任何给定命令的全局时钟的时间戳。可以存储命令类型(例如,读取、写入),也可以存储命令所指向的地址(例如,块地址、介质地址)。可以存储的其它调试数据包括标识介质管理组件固件事件的数据,以及标识使调试数据首先被存储的触发事件的数据。受益于此公开的本领域技术人员认为合适的其它参数也可以被存储。
介质管理组件可以记录命令的生命周期。所述命令可以是主机系统启动的命令或存储器子系统控制器启动的命令。生命周期可以包括例如命令的开始、状态和完成。介质管理组件可以提供在经由控制路径处理命令时发生的事件的跟踪。介质管理组件可以存储当命令经由控制路径被处理时发生的事件的调试数据。
本公开的各实现的好处之一是,与当前实现不同,根据本公开的实现记录的调试数据由硬件生成和存储,硬件的操作速度与产生要存储的调试数据的触发事件的固件和硬件的操作速度相同。硬件可以是存储器子系统控制器的一部分。硬件可以包括具有专用(即,硬编码)逻辑的数字电路,以执行本文中描述的操作。由于是基于硬件而不是基于软件(例如,在存储器子系统控制器的嵌入式处理器上执行),所以在调试数据中提供了增加的且更有用的细节水平。然后,此调试数据可用于由例如主机系统提取和分析,以分析和确定一或多个存储器子系统错误条件、系统故障和/或类似情况的原因。本公开的实现的其它益处对于本领域技术人员将是显而易见的。
图1示出了根据本公开的一些实施例的示例计算环境100,其包括存储器子系统110。存储器子系统110可以包括例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或其组合的介质。
存储器子系统110可以是存储装置、存储模块或存储装置和存储模块的混合体。存储装置的示例包括固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多介质控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器和硬盘驱动器(HDD)。存储器模块的示例包括双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)和非易失性双列直插式存储器模块(NVDIMM)。
计算环境100可以包括耦合到存储器系统的主机系统120。存储器系统可以包括一或多个存储器子系统110。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出了主机系统120耦合到一个存储器子系统110的示例。主机系统120例如使用存储器子系统110以将用户数据写入存储器子系统110,并且从存储器子系统110读取用户数据。如本文中所使用的,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有介入组件),无论是有线还是无线,包括例如电、光、磁等。
主机系统120可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、嵌入式计算机(例如,包括在车辆、工业装备或联网的商业装置中的嵌入式计算机)或包括存储器和处理装置的此类计算装置。主机系统120可以经由物理主机接口耦合到存储器子系统110。物理主机接口的示例包括但不限于串行高级技术附件(SATA)接口、PCIe接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)等。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据(例如,用户数据)。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可以进一步利用NVMe接口来存取存储器组件(例如,存储器装置130)。物理主机接口可以提供用于在存储器子系统110与主机系统120之间传递控制、地址、用户数据和其它信号的接口。
存储器装置可以包括不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以但不限于是随机存取存储器(RAM),例如DRAM和同步DRAM(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的示例包括3D交叉点型快闪存储器,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可以基于体电阻的变化,结合可堆叠的交叉网格数据存取阵列来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可以执行原地写入操作,其中可以对非易失性存储器单元进行编程在无需预先擦除非易失性存储器单元。
尽管描述了例如3D交叉点型存储器之类的非易失性存储器组件,但是存储器装置130可以基于任何其它类型的非易失性存储器,例如与非(NAND)、只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、负或(NOR)快闪存储器以及电可擦可编程只读存储器(EEPROM)。
在一些实施例中,存储器装置130中的每一个可以包括一或多个存储器单元阵列,例如单级单元(SLC)、多级单元(MLC)、三级单元(TLC)、四级单元(QLC)或其组合。在一些实施例中,特定存储器组件可以包括存储器单元的SLC部分和MLC部分,TLC部分或QLC部分。存储器单元中的每一个可以存储主机系统120所使用的一或多个数据位。此外,存储器装置130的存储器单元可以被分组为存储器页或存储器块,其可以指代用于存储数据的存储器组件的部件。
存储器子系统控制器115可以与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据的操作及其它此类操作。存储器子系统控制器115可以包括例如一或多个集成电路和/或分立组件的硬件、缓冲存储器或其组合。存储器子系统控制器115可以是微控制器、专用逻辑电路(例如,场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。
此外,在一些实施方案中,存储器子系统控制器115包括处理器(处理装置)117,其被配置成执行存储在本地存储器119中的指令。在所示的示例中,存储器子系统控制器115的本地存储器119包括嵌入式存储器,其被配置成存储用于执行控制存储器子系统110的操作的各种处理、操作、逻辑流和例程的指令,包括处理存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可以包括存储存储器指针、提取的数据等的存储器寄存器。本地存储器119还可以包括用于存储微代码的只读存储器(ROM)。虽然图1中的示例存储器子系统110被示为包括存储器子系统控制器115,但是在本公开的另一实施例中,存储器子系统110可以不包括存储器子系统控制器115,而是可以依赖于外部控制(例如,由外部主机提供,或由与存储器子系统110分离的处理器或控制器提供)。
通常,存储器子系统控制器115可以从主机系统120接收命令或操作,并且可以将命令或操作转换成指令或适当命令以实现对存储器装置130的期望存取。存储器子系统控制器115可以负责与存储器装置130相关联的其它操作,例如损耗均衡操作、垃圾收集操作、错误检测及错误校正代码(ECC)操作、加密操作、高速缓存操作以及逻辑地址(例如,逻辑块地址(LBA))与物理地址之间的地址转换。存储器子系统控制器115可以进一步包括主机接口电路,以经由物理主机接口与主机系统120通信。主机接口电路可以将从主机系统120接收的命令转换成命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。存储器子系统110还可以包括未示出的附加电路或组件。在一些实施例中,存储器子系统110可以包括高速缓存或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器),所述地址电路可以从存储器子系统控制器115接收地址并且对所述地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包括本地介质控制器135,其结合存储器子系统控制器115进行操作,以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可以在外部管理介质装置130(例如,在介质装置130上执行介质管理操作)。在一些实施例中,存储器装置130可以是本地管理的存储器装置,其是与本地介质控制器135组合的原始存储器装置,所述本地介质控制器135在同一存储器装置封装内对存储器装置130执行存储器管理操作。
存储器子系统控制器115包括介质管理组件121以管理存储器装置130。如图1中所描绘,在至少一个实施例中,介质管理组件121包括命令生命周期记录器113,所述命令生命周期记录器113可以采取或包括用于至少执行本文中所描述的命令生命周期记录器操作的电路、专用逻辑、可编程逻辑、固件、软件和/或类似物的形式。在一些实施例中,存储器子系统控制器115包括命令生命周期记录器113的至少一部分—处理器117可以被配置成执行存储在本地存储器119中的指令,以执行命令生命周期记录器操作。在一些实施例中,命令生命周期记录器113是主机系统120、应用程序或操作系统的一部分。贯穿此公开描述了在不同实施例中由命令生命周期记录器113以不同组合执行的各种功能。
如所描绘的实施例中所展示,本地存储器119可以存储调试数据123,根据本公开的实现,调试数据123在本文中被描述为由命令生命周期记录器113生成并存储。此外,应注意,图1中所描绘的其中调试数据123存储在本地存储器119中的布置是作为示例而非限制。在其它实现中,调试数据123存储在存储器装置130、存储器装置140和/或主机系统120中。此外,在一些实施方案中,调试数据123被存储在本地存储器119、存储器装置130、存储器装置140和主机系统120之间的多个副本和/或多个部分中。
图2描绘了根据本公开的一些实施例的示例系统架构200。架构200作为示例而非限制的方式被提供。除了介质管理组件121之外,图2中还描绘了处理器117和主机系统120。介质管理组件121包括各种硬件子组件,所述硬件子组件包括具有专用(即,硬编码)逻辑的数字电路,以执行本文中描述的组件的操作。
介质管理组件可以包括数字和模拟电路,以定义控制路径和数据路径或控制路径和数据路径的部分。数据路径是指用户数据和元数据在整个存储器子系统中移动时所遵循的逻辑过程或路径。存储器子系统中的数据路径处理从主机系统接收的读取和写入数据命令。数据路径涵盖当数据被写入底层存储器装置或从底层存储器装置读取时所采用的完整的端到端过程。控制路径是指例如向数据路径上的组件提供不同控制信号以控制数据路径如何正确工作的逻辑过程或路径。控制路径和数据路径包括数字电路、寄存器和互连总线。介质管理组件121可以包括配置和状态组件202、控制路径204和数据路径206。
配置和状态组件202可以从处理器117接收入站配置和状态消息208,并且还可以将出站配置和状态消息210传输到处理器117。入站配置和状态消息208可以涉及处理器117经由配置和状态组件202配置介质管理组件121的各种操作参数,并且还可以涉及处理器117请求关于介质管理组件121的状态信息。出站配置和状态消息210可以包括对那些状态请求的响应,以及关于配置请求的确认(或失败)响应。为了表述清楚,图2中未展示配置和状态组件202与介质管理组件121的其它组件之间的连接;然而,此类连接可以存在,并且配置和状态组件202可以经由这些连接执行配置请求、收集状态响应的信息和/或类似情况。
控制路径204可以包括命令解析组件220、命令处理组件222和命令响应组件224。这些组件中的任何一个或本文中所描述的任何组件可以是例如电路,如数字逻辑电路。命令解析组件220接收提交的存储器子系统控制器(MSSC)命令216,其来自处理器117,并且还接收提交的主机命令218,其来自主机系统120。命令解析组件220对两组命令进行解析,然后将所得到的解析命令226传输到命令处理组件222。
命令处理组件222处理经解析的命令226,并且将所得到的经处理的命令228传输到命令响应组件224。
然后,命令响应组件224生成对经处理的命令228的响应,并且输出结果:在命令作为提交的MSSC命令216的一部分发起的情况下,命令响应组件224将其结果作为完成的MSSC命令230传输到处理器117;然而,在命令作为提交的主机命令218的一部分发起的情况下,命令响应组件224将其结果作为完成的主机命令232传输给主机系统120。
此外,当根据本发明的实现启用命令记录时,除了处理其接收到的提交的命令之外,命令解析组件220还将命令解析事件记录234传输到命令生命周期记录器113,向命令生命周期记录器113通知这些命令的解析状态。类似地,当启用命令记录时,除了处理经解析的命令226之外,命令处理组件222还将命令处理事件记录236传输到命令生命周期记录器113。最后,当启用命令记录时,除了完成经处理的命令228之外,命令响应组件224还将命令响应事件记录238传输到命令生命周期记录器113。在整个本公开中提供了命令解析事件记录234、命令处理事件记录236和/或命令响应事件记录238的内容(例如,可以包括在其中的参数)的示例。
数据路径206接收来自主机系统120的主机数据请求212,并且向主机系统120传输主机数据响应214。为了了表述清楚,图2中未展示数据路径206和一或多个存储器装置130之间的连接。然而,在操作中,在本公开的至少一些实现中,主机数据经由数据路径206在主机系统120与存储器装置130之间传递。主机数据请求212包括主机系统120正在请求写入存储器装置130的数据,而主机数据响应214包括主机系统120已经请求从存储器装置130读取的数据。
图3描绘了命令生命周期记录器113的示例架构300。作为示例,介质管理组件121的任何组件,或更具体地,命令生命周期记录器113可以实现为硬件电路,例如FPGA的编程组件。
时间戳生成器338可以基于存储器子系统控制器115的自由运行时钟来操作。本文中描述的任何组件(例如,电路)可以向时间戳生成器338发送对时间戳数据的请求,并且从时间戳生成器338接收响应,其中这些响应包括由时间戳生成器338生成的最新时间戳数据。
可以从时间戳生成器338请求和接收时间戳数据的电路的一些示例包括固件触发器检测组件302、硬件触发器检测组件304、命令解析组件220、命令处理组件222和命令响应组件224。其它示例包括固件触发器记录堆栈310、硬件触发器记录堆栈312、命令解析事件记录堆栈314、命令处理事件记录堆栈316和命令响应事件记录堆栈318。记录仲裁组件330还可以从时间戳生成器338请求和接收时间戳数据。
固件触发器检测组件302可以在基于固件的触发事件发生时接收来自处理器117的固件触发器通知342。基于固件的触发事件的一些示例包括高温事件、处理器异常、断言和中断。在各种不同的实施例中可以包括其它类型的基于固件的事件。固件触发器检测组件302基于固件触发器通知342生成检测到的固件触发器记录306,并且还可以在检测到的固件触发器记录306中包括来自时间戳生成器338的时间戳数据。
在一些实施例中,固件触发器记录堆栈310在检测到的固件触发器记录306中接收到给定的固件触发器记录时,从时间戳生成器338请求时间戳数据,并且将所述时间戳数据添加到给定的固件触发器记录。
硬件触发器检测组件304可以检测一或多个基于硬件的触发事件的发生。基于硬件的触发事件的一些示例包括纠错失败、超过失败位计数阈值的码字失败位计数、接收到无效输入命令以及与一或多个存储器装置130相关联的介质事件(例如,读取失败或写入失败)。在检测到基于硬件的触发事件时,硬件触发器检测组件304可以生成检测到的硬件器触发记录308,并且将所述记录传输到硬件触发器记录堆栈312。在此传输之前,硬件触发器检测组件304可以从时间戳生成器338请求并接收时间戳数据,并且将所述时间戳数据添加到所生成的检测到的硬件触发器记录308。在一些实施例中,硬件触发器记录堆栈312在检测到的硬件触发器记录308中接收到给定的硬件触发器记录时,从时间戳生成器338请求时间戳数据,并且将所述时间戳数据添加到给定的硬件触发器记录。
此外,如上所描述,命令解析组件220将命令解析事件记录234发送到命令生命周期记录器113,特别是发送到命令解析事件记录堆栈314。命令处理组件222将命令处理事件记录236发送到命令处理事件记录堆栈316,并且命令响应组件224将命令响应事件记录238发送到命令响应事件记录堆栈318。在每种情况下,可以从时间戳生成器338请求时间戳数据,并且由给定事件记录的发送者或接收者添加到给定事件记录。
如图3中所描绘,命令生命周期记录器113包括五个记录器事件堆栈;固件触发器记录堆栈310、硬件触发器记录堆栈312、命令解析事件记录堆栈314、命令处理事件记录堆栈316和命令响应事件记录堆栈318。每个此类记录堆栈可以被配置成先进先出(FIFO)堆栈、后进先出(LIFO)堆栈或被认为适合于给定实现的任何其它类型的堆栈。在此描述的示例中,记录堆栈310-318中的每一个被实现为FIFO堆栈。
如图4的消息流400中所展示,固件触发器记录堆栈310从固件触发器检测组件302接收检测到的固件触发器记录306,并且使堆栈的固件触发器记录320可用于记录仲裁组件330。硬件触发器记录堆栈312从硬件触发器检测电路304接收检测到的硬件触发器记录308,并且使堆栈的硬件触发器记录322可用于记录仲裁电路330。命令解析事件记录堆栈314从命令解析电路220接收命令解析事件记录234,并且使堆栈的命令解析事件记录324可用于记录仲裁电路330。命令处理事件记录堆栈316从命令处理电路222接收命令处理事件记录236,并且使堆栈的命令处理事件记录326可用于记录仲裁电路330。命令响应事件记录堆栈318从命令响应电路224接收命令响应事件记录238,并且使堆叠的命令响应事件记录328可用于记录仲裁电路330。
如消息流400中还展示,记录仲裁组件330实施仲裁402,根据所述仲裁,记录仲裁组件330对接收到的记录320-328应用仲裁逻辑。仲裁402的仲裁逻辑可以包括扩充、修改、选择、删除和/或以其它方式处理接收到的记录320-328中的一或多个,以便确定记录320-328的内容和/或布置以包括在调试数据123中。仲裁402的结果是数据记录传送404,根据所述数据记录传送404,日志仲裁组件330传输用于存储在调试数据123中的命令生命周期数据记录。应注意,数据记录传送404是在记录仲裁组件330与记录缓冲器334之间的以下描述的经仲裁记录332的传送、在记录缓冲器334与DMA引擎344之间的缓冲记录336的传送,以及在DMA引擎344与调试数据123之间的数据存储调试记录340的传送的概要表达。
作为执行仲裁402的初始部分,在一些实施方案中,记录仲裁组件330可以根据那些堆栈记录320-328中包含的时间戳数据,对记录仲裁组件330从记录堆栈310-318接收的堆栈记录320-328进行排序。记录仲裁组件330还可以使用命令状态(例如,命令专用计时器)数据来帮助排序处理。此外,记录仲裁组件330可以汇集包括来自一或多个记录堆栈310-318的一或多个记录的聚合数据记录。在一些实施方案中,然后这些聚合的记录根据仲裁逻辑作为仲裁402的一部分进行处理。
记录仲裁组件330可以在执行仲裁402时实现多个仲裁策略中的任何一者。在一些实施方案中,仲裁402涉及使用循环法—作为示例的接收到的堆栈记录320-328和/或以上描述聚合记录中—选择包括在调试数据123中的记录。在其它情况下,仲裁402包括使用加权循环法;在一些此类情况下,权重可以由存储器子系统控制器115的固件分配,可能通过处理器117将入站配置和状态消息208发送到介质管理组件121的配置和状态组件202。
在利用仲裁402中的权重值的本公开的各种不同实现中,权重值可以影响哪些类型的触发事件的相关联记录包括在调试数据123中。例如,一些实现可以将基于硬件的触发事件加权为比基于固件的触发事件更重要。其它实现可以相反。此外,即使在此类类别中,某些类型的基于硬件和/或基于固件的触发事件也可以被加权为比其它事件更重要。
现在回到图3,作为示例,记录缓冲器334可以被实现为LIFO缓冲器或FIFO缓冲器。在此描述的示例中,记录缓冲器334被实现为FIFO缓冲器。如图3中所描绘,记录缓冲器334从记录仲裁组件330接收仲裁记录332,并且将缓冲记录336传输到DMA引擎344,以用于进一步处理并且随后传输到调试数据123。在一些实施方案中,记录缓冲器334被实现为所谓的乒乓缓冲器,并且通过提供流控制和减轻所谓的反压来辅助整个信息流。
DMA引擎344可以是便于介质管理组件121存取以将数据存储在存储器装置140或一或多个存储器装置130中的电路。应注意,在一些实施例中,调试数据123全部或部分地位于主机系统120中—在此类实施例中,介质管理组件121和存储在主机系统120中的调试数据123之间的路径可以包括除DMA引擎344之外的电路元件。
此外,如上结合图2所描述,介质管理组件121包括数据路径206,其用于存取存储器装置130。在这种情况下,存取代表主机系统120。对于此类存取,介质管理组件121可以包括不同于DMA引擎344的第二DMA引擎。即,DMA引擎344可以专用于存储调试数据123。然而,在一些实施方案中,DMA引擎344由介质管理组件121用来代表主机系统120存取存储器装置130,并且存取存储器装置130以存储调试数据123。
介质管理组件121可以将记录存储在本地存储器中。介质管理组件121可以包括缓冲器和/或DMA引擎以将记录336传送到存储器装置130,并且然后将格式化的命令生命周期事件记录作为数据存储调试记录340传输到存储器装置130,以存储在调试数据123中。
调试数据123在此公开中主要被描述为位于存储器装置130中,其是介质管理组件121外部的数据存储位置。在介质管理组件121外部并且可用于存储调试数据123中的一些或全部的另一示例是主机系统120上的数据存储部。调试数据123的全部或部分可以位于介质管理组件121内部的数据存储部(例如,SRAM)中,或许还位于命令生命周期记录器113内部。此外,调试数据123的全部或部分可以位于本地存储器119中。用于全部或部分调试数据123的另一示例数据存储位置是存储器装置140。存储器装置130和存储器装置140均是存储器子系统控制器115外部但在存储器子系统110内部的存储器装置的示例。
图5是根据本公开的一些实施例的用于调试和记录例如存储器子系统110的存储器子系统的示例方法500的流程图。方法500可以由处理逻辑来执行,所述处理逻辑可以包括硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的命令生命周期记录器113执行。尽管以特定的序列或顺序展示,但是除非另外指定,否则可以修改操作的顺序。因此,所示出的实施例应仅被理解为示例,并且所示出的操作可以以不同的顺序执行,并且一些操作可以并行执行。另外,在各种实施例中可以省略一或多个操作。因此,并非在每个实施例中都需要所有操作。其它操作流程也是可能的。
在操作502处,命令生命周期记录器113检测用于记录命令生命周期调试数据的触发事件。响应于检测到触发事件,在操作504处,命令生命周期记录器113生成命令生命周期调试数据(参见操作506),并且将所生成的命令生命周期调试数据123存储在数据存储部中(参见操作508)。贯穿此公开描述了命令生命周期记录器113可以执行操作502-508中的每一个的各种方式。
所存储的命令生命周期调试数据可以包括如本文中所描述的多个不同参数。作为一个示例,调试数据123可以包括标识检测到的触发事件的数据。作为另一示例,调试数据123可以包括与相关联命令的执行的多个生命周期阶段相关联的数据记录。作为示例,调试数据123可以包括来自给定命令的执行的开始、分派和/或完成的数据。一些示例包括来自命令解析事件记录234、命令处理事件记录236和命令响应事件记录238的数据。此外,调试数据123可以包括在命令执行期间提供命令的内部状态(例如,命令特定的时间戳、计数器和/或类似情况)的数据记录。生命周期阶段数据提供了穿过存储器子系统的控制路径204的命令的跟踪。
此外,调试数据123中的一或多个记录可以包括标识特定命令的命令标识符,所述特定命令的执行反映在调试数据123中。此外,除了可以是在给定命令的执行期间进行迭代的命令内部计时器的命令状态之外,调试数据123中的记录可以包括来自时间戳生成器338的时间戳数据,以反映源自自由运行时钟的时间戳,此类时间戳数据相对于任何给定命令的执行是全局的。
可以包括在调试数据123的记录中的其它类型的数据包括命令类型(例如,读取、写入)以及命令在例如一或多个存储器装置130中所指向的地址(例如,块地址、介质地址)。此地址数据可以标识逻辑地址和/或物理地址。标识给定的触发器(例如,基于硬件的触发器或基于固件的触发器)的数据也可以被包括在调试数据123的记录中。所有这些都是示例,并且受益于此公开的本领域技术人员可以认为适合于包括一或多个其它类型的调试数据,而不是在此公开中作为示例列出的一或多种调试数据。
图6是根据本公开的一些实施例的用于调试和记录存储器子系统的示例方法600的流程图。方法600可以由处理逻辑来执行,所述处理逻辑可以包括硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600由图1的命令生命周期记录器113执行。尽管以特定的序列或顺序展示,但是除非另外指定,否则可以修改操作的顺序。因此,所示出的实施例应仅被理解为示例,并且所示出的操作可以以不同的顺序执行,并且一些操作可以并行执行。另外,在各种实施例中可以省略一或多个操作。因此,并非在每个实施例中都需要所有操作。其它操作流程也是可能的。
在操作602处,命令生命周期记录器113轮询(例如,检查)基于固件的触发事件的发生,例如是本文中描述的任何基于固件的触发事件。在一些实施方案中,固件触发器检测组件302执行操作602,其可以涉及固件触发器检测组件302检查从处理器117的固件触发器通知342的接收。
命令生命周期记录器113(例如,固件触发器检测组件302)然后评估(参见操作604)它是否确实检测到基于固件的触发事件。如果是,则控制进行到下面描述的操作610。如果不是,则控制进行到操作606。
命令生命周期记录器113在操作606处轮询基于硬件的触发事件的发生,例如是本文中描述的任何基于硬件的触发事件。在一些实施方案中,硬件触发器检测组件304执行操作606。然后,控制进行到操作608,在操作608处,命令生命周期记录器113(例如,硬件触发器检测组件304)评估其是否检测到基于硬件的触发事件的发生。如果不是,则控制返回到操作602。如果是,则控制进行到下面描述的操作610。
在操作610处,命令生命周期记录器113记录命令生命周期调试数据(例如,介质管理组件命令事件)。贯穿本公开描述了命令生命周期记录器113可以生成并且存储调试数据123的各种方式。
在一些实施例中,例如在图6的方法600中描绘并结合图6的方法600描述的实施例,命令生命周期记录器113评估(例如,周期性地、基于中断和/或类似情况)停止记录条件是否存在,使得命令生命周期记录器113应当至少在下一触发事件发生之前停止调试数据123中的记录的生成和存储。在操作612处表示此逻辑,在此,命令生命周期记录器113评估是否存在停止记录条件。如果是,则命令生命周期记录器113停止记录(例如,停止生成和存储调试数据123)(参见操作614)。如果不是,则控制返回到操作610,并且命令生命周期记录器113继续记录(例如,继续生成和存储调试数据123)。
在一些实施方案中,所参考的停止记录条件包括预定时间量的消逝。替代地或附加地,停止记录条件可以包括已经被存储在(例如,相对于即时触发事件被添加)调试数据123中的预定量的数据。一个示例预定量的数据是一个GB,尽管当然其它预定量的数据也可以用作各种不同实现中的记录限制参数。在其它实现中,此类存储数据量被用作限制因素,而不是停止记录,而是限制与任何给定的触发事件有关的存储在调试数据123中的数据量。在此类实现中,可以是最新的1GB的数据记录被保存在调试数据123中,记录本身直到它被手动停止和/或检测到其它停止记录事件才停止。
图7示出了计算机系统700的示例机器,在其中可以执行用于使机器执行本文中所讨论的方法中的任何一或多个的一组指令。在一些实施例中,计算机系统700可以对应于包括、耦合到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120)或可以用于执行控制器的操作。在替换实施例中,机器可以连接(例如,联网)到局域网(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执行指令726期间,指令726还可以完全或至少部分地驻留在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储介质。机器可读存储介质724、数据存储系统718和/或主存储器704可以对应于图1的存储器子系统110。
在实施例中,指令726包括实现对应于命令生命周期记录器(例如,图1的命令生命周期记录器113)的功能的指令。尽管机器可读存储介质724在示例实施例中被展示为单个介质,但是术语“机器可读存储介质”应被认为包括存储一或多个组指令的单个介质或多个介质。术语“机器可读存储介质”还应被认为包括能够存储或编码一组指令以由机器执行并且使机器执行此公开的任何一或多个方法的任何介质。因此,术语“机器可读存储介质”应被认为包括但不限于固态存储器、光介质和磁介质。
前面的详细描述的一些部分已经根据对计算机存储器内的数据位的操作的算法和符号表示呈现。这些算法的描述和表示是数据处理领域的技术人员用来将他们工作的实质最有效地传达给此领域的其它技术人员的方式。这里,算法通常被认为是导致期望结果的自相容操作序列。所述操作是需要对物理量进行物理操纵的操作。通常,尽管不是必须的,这些量采取能够被存储、组合、比较和/或以其它方式操纵的电或磁信号的形式。主要出于通用的原因,有时已经证明将这些信号称为位、值、元素、符号、字符、项、数字和/或类似物是方便的。
然而,应记住,所有这些和类似的术语将与适当的物理量相关联,并且仅仅是应用于这些量的方便的标签。本公开可以涉及计算机系统或类似的电子计算装置的动作和处理,所述计算机系统或类似的电子计算装置将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵并转换为类似地表示为计算机系统的寄存器和存储器或其它此类信息存储系统内的物理量的其它数据。
本公开还涉及用于执行在本文中描述的操作的装置。此设备可以为预期目的而专门构造,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可以存储在计算机可读存储介质中,例如但不限于任何类型的盘,包括软盘、光盘、CD-ROM、磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡和/或适合于存储电子指令的任何类型的介质,每个都耦合到计算机系统总线。
本文中呈现的算法和显示并不固有地与任何特定计算机或其它设备相关。各种通用系统可以与根据本文的教导的程序一起使用,或可以证明构造更专用的设备来执行所述方法是方便的。用于各种这些系统的结构将如前所述出现在本公开中。此外,没有参考任何特定编程语言来描述本公开。应理解,可以使用各种编程语言来实现本文中所描述的本公开的教导。
本公开可以被提供为计算机程序产品或软件,其可以包括其上存储有指令的机器可读介质,所述指令可以用于对计算机系统(或其它电子装置)编程以执行根据本公开的处理。机器可读介质包括用于以机器(例如,计算机)可读形式存储信息的任何机制。在一些实施方案中,机器可读(例如,计算机可读)介质包括例如ROM、RAM、磁盘存储介质、光存储介质、快闪存储器装置和/或类似物的机器可读(例如,计算机可读)存储介质。
在前述说明书中,已经描述了本公开的一些示例实现。显然,在不脱离在所附权利要求中阐述的本公开的更宽范围和精神的情况下,可以对其进行各种修改。因此,说明书和附图被认为是说明性的而不是限制性的。以下是本公开的实现的示例的非穷举列表。
示例1是一种系统,其包括多个存储器组件;以及处理装置,其包括命令生命周期记录器组件,所述命令生命周期记录器组件被配置成执行包括检测用于记录命令生命周期调试数据的触发事件的命令生命周期记录操作;以及响应于检测到触发事件,记录命令生命周期调试数据,其中记录命令生命周期调试数据包括生成命令生命周期调试数据;并且将生成的命令生命周期调试数据存储在数据存储部中。
示例2是示例1的主题,其中处理装置包括介质管理组件,并且其中介质管理组件包括命令生命周期记录器组件。
示例3是示例1或示例2的主题,其中触发事件包括基于硬件的触发事件。
示例4是示例3的主题,其中基于硬件的触发事件包括纠错失败事件。
示例5是示例1-4中的任一个的主题,其中触发事件包括基于固件的触发事件。
示例6是示例1-5中的任一个的主题,其中命令生命周期调试数据包括标识检测到的触发事件的数据。
示例7是示例1-6中的任一个的主题,其中命令生命周期调试数据包括与相关联命令的执行的多个生命周期阶段相关联的数据记录。
示例8是示例1-7中的任一个的主题,其中处理装置包括介质管理组件,介质管理组件包括命令生命周期记录器组件,并且命令生命周期记录器组件包括(i)多个记录器事件堆栈,其中的每一个被配置成执行包括从介质管理组件中的对应组件接收记录器事件数据的操作和(ii)记录仲裁组件,其被配置成执行包括(a)从记录器事件堆栈中的每一个接收记录器事件数据和(b)通过使用记录器事件仲裁逻辑处理所接收的记录器事件数据来输出经仲裁的记录器事件数据的操作。
示例9是示例1-8中的任一个的主题,其中数据存储部包括在介质管理组件内部的数据存储部。
示例10是示例1-9中的任一个的主题,其中数据存储部包括介质管理组件外部的数据存储部。
示例11是示例10的主题,其中数据存储部包括在处理装置内部的数据存储部。
示例12是示例10或示例11的主题,其中数据存储部包括在处理装置外部的存储器装置上的数据存储部。
示例13是示例1-12中的任一个的主题,命令生命周期记录操作进一步包括检测停止记录条件,并响应地停止记录命令生命周期调试数据。
示例14是示例13的主题,其中停止记录条件包括预定时间量的消逝。
示例15是示例13或示例14的主题,其中停止记录条件包括将预定量的命令生命周期调试数据存储在数据存储部中。
示例16是一种方法,其包括由存储器子系统的介质管理组件的命令生命周期记录器组件检测用于记录命令生命周期调试数据的触发事件;以及响应于检测到触发事件,由命令生命周期记录器组件记录命令生命周期调试数据,其中记录命令生命周期调试数据包括生成命令生命周期调试数据;并且将生成的命令生命周期调试数据存储在数据存储部中。
示例17是示例16的主题,其中命令生命周期调试数据包括与相关联命令的执行的多个生命周期阶段相关联的数据记录。
示例18是示例16或示例17的主题,其中记录命令生命周期调试数据进一步包括在命令生命周期记录器组件的多个记录器事件堆栈的每一个处,接收来自介质管理组件中的对应组件的记录器事件数据;在所述命令生命周期记录器组件的记录仲裁组件处,接收来自所述记录器事件堆栈中的每一个的记录器事件数据;以及通过使用记录器事件仲裁逻辑处理所接收的记录器事件数据,由记录仲裁组件生成经仲裁的记录器事件数据。
示例19是示例16-18中的任一个的主题,进一步包括检测停止记录条件,并响应地停止记录命令生命周期调试数据。
示例20是一种包含指令的非暂时性机器可读存储介质,所述指令在由处理装置执行时使处理装置执行包括由存储器子系统的介质管理组件的命令生命周期记录器组件进行检测用于记录命令生命周期调试数据的触发事件的操作;以及响应于检测到触发事件,由命令生命周期记录器组件记录命令生命周期调试数据,其中记录命令生命周期调试数据包括生成命令生命周期调试数据;并且将生成的命令生命周期调试数据存储在数据存储部中。

Claims (20)

1.一种系统,其包含:
多个存储器组件;以及
处理装置,其包含被配置成执行命令生命周期记录操作的命令生命周期记录器组件,所述命令生命周期记录操作包含:
检测记录命令生命周期调试数据的触发事件;以及
响应于检测到所述触发事件,记录命令生命周期调试数据,其中记录命令生命周期调试数据包含:
生成所述命令生命周期调试数据;以及
将所生成的命令生命周期调试数据存储在数据存储部中。
2.根据权利要求1所述的系统,其中所述处理装置包含介质管理组件,并且其中所述介质管理组件包含所述命令生命周期记录器组件。
3.根据权利要求1所述的系统,其中所述触发事件包含基于硬件的触发事件。
4.根据权利要求3所述的系统,其中所述基于硬件的触发事件包含纠错失败事件。
5.根据权利要求1所述的系统,其中所述触发事件包含基于固件的触发事件。
6.根据权利要求1所述的系统,其中所述命令生命周期调试数据包含标识所检测到的触发事件的数据。
7.根据权利要求1所述的系统,其中所述命令生命周期调试数据包含与相关联命令的执行的多个生命周期阶段相关联的数据记录。
8.根据权利要求1所述的系统,其中所述处理装置包含介质管理组件,所述介质管理组件包含所述命令生命周期记录器组件,并且所述命令生命周期记录器组件包含:
多个记录器事件堆栈,所述记录器事件堆栈中的每一个被配置成执行包含以下操作:
从所述介质管理组件中的对应组件接收记录器事件数据;以及
记录仲裁组件,其被配置成执行包含以下操作:
从所述记录器事件堆栈中的每一个接收记录器事件数据;以及
通过使用记录器事件仲裁逻辑处理所接收的记录器事件数据来生成经仲裁的记录器事件数据。
9.根据权利要求1所述的系统,其中所述数据存储部包含在所述介质管理组件内部的数据存储部。
10.根据权利要求1所述的系统,其中所述数据存储部包含在所述介质管理组件外部的数据存储部。
11.根据权利要求10所述的系统,其中所述数据存储部包含在所述处理装置内部的数据存储部。
12.根据权利要求10所述的系统,其中所述数据存储部包含在所述处理装置外部的存储器装置上的数据存储部。
13.根据权利要求1所述的系统,所述命令生命周期记录操作进一步包含检测停止记录条件,并响应地停止记录命令生命周期调试数据。
14.根据权利要求13所述的系统,其中所述停止记录条件包含预定时间量的消逝。
15.根据权利要求13所述的系统,其中所述停止记录条件包含将预定量的命令生命周期调试数据存储在数据存储部中。
16.一种方法,其包含:
由存储器子系统的介质管理组件的命令生命周期记录器组件检测用于记录命令生命周期调试数据的触发事件;以及
响应于检测到所述触发事件,由所述命令生命周期记录器组件记录命令生命周期调试数据,其中记录命令生命周期调试数据包含:
生成所述命令生命周期调试数据;以及
将所生成的命令生命周期调试数据存储在数据存储部中。
17.根据权利要求16所述的方法,其中所述命令生命周期调试数据包含与相关联命令的执行的多个生命周期阶段相关联的数据记录。
18.根据权利要求16所述的方法,其中记录命令生命周期调试数据进一步包含:
在所述命令生命周期记录器组件的多个记录器事件堆栈中的每一个处,接收来自所述介质管理组件中的对应组件的记录器事件数据;
在所述命令生命周期记录器组件的记录仲裁组件处,接收来自所述记录器事件堆栈中的每一个的记录器事件数据;以及
通过使用记录器事件仲裁逻辑处理所述所接收的记录器事件数据,由所述记录仲裁组件生成经仲裁的记录器事件数据。
19.根据权利要求16所述的方法,其进一步包含检测停止记录条件,并响应地停止记录命令生命周期调试数据。
20.一种非暂时性机器可读存储介质,其包含指令,所述指令在由处理装置执行时使所述处理装置执行包含以下操作:
由存储器子系统的介质管理组件的命令生命周期记录器组件检测用于记录命令生命周期调试数据的触发事件;以及
响应于检测到所述触发事件,由所述命令生命周期记录器组件记录命令生命周期调试数据,其中记录命令生命周期调试数据包含:
生成所述命令生命周期调试数据;以及
将所生成的命令生命周期调试数据存储在数据存储部中。
CN202010679805.9A 2019-07-15 2020-07-15 用于存储器子系统的介质管理记录器 Withdrawn CN112230844A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962874304P 2019-07-15 2019-07-15
US62/874,304 2019-07-15
US16/784,926 2020-02-07
US16/784,926 US11294750B2 (en) 2019-07-15 2020-02-07 Media management logger for a memory sub-system

Publications (1)

Publication Number Publication Date
CN112230844A true CN112230844A (zh) 2021-01-15

Family

ID=74115355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010679805.9A Withdrawn CN112230844A (zh) 2019-07-15 2020-07-15 用于存储器子系统的介质管理记录器

Country Status (2)

Country Link
US (1) US11294750B2 (zh)
CN (1) CN112230844A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114035855A (zh) * 2021-09-30 2022-02-11 鸣芯信息科技(上海)有限公司 固件的调试方法、装置、终端及存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11200961B1 (en) * 2020-06-25 2021-12-14 Intel Corporation Apparatus, system and method to log memory commands and associated addresses of a memory array
KR20220010303A (ko) * 2020-07-17 2022-01-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11847037B2 (en) * 2020-09-16 2023-12-19 Kioxia Corporation Device and method for high performance memory debug record generation and management
US11966343B2 (en) 2021-07-19 2024-04-23 Samsung Electronics Co., Ltd. Universal mechanism to access and control a computational device
EP4123456A1 (en) * 2021-07-22 2023-01-25 Samsung Electronics Co., Ltd. Storage device and operating method thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190163556A1 (en) * 2017-11-29 2019-05-30 Seagate Technology Llc In-drive bus trace

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7483810B2 (en) * 2004-06-29 2009-01-27 Honeywell International Inc. Real time event logging system
US7698603B2 (en) * 2007-09-07 2010-04-13 Microsoft Corporation Test results management
JP2012113466A (ja) * 2010-11-24 2012-06-14 Fujitsu Ltd メモリコントローラ及び情報処理システム
US8966319B2 (en) * 2011-02-22 2015-02-24 Apple Inc. Obtaining debug information from a flash memory device
US8719641B2 (en) * 2011-08-25 2014-05-06 International Business Machines Corporation Priority buffering for trace data in trace queue
US8935574B2 (en) * 2011-12-16 2015-01-13 Advanced Micro Devices, Inc. Correlating traces in a computing system
US9378238B2 (en) * 2012-09-27 2016-06-28 Aetherpal, Inc. Method and system for collection of device logs during a remote control session
US10169171B2 (en) * 2013-05-13 2019-01-01 Nxp Usa, Inc. Method and apparatus for enabling temporal alignment of debug information
US10365987B2 (en) * 2017-03-29 2019-07-30 Google Llc Synchronous hardware event collection
US11048429B2 (en) * 2018-04-19 2021-06-29 Oracle International Corporation Optimized logging module
US11599403B2 (en) * 2018-10-03 2023-03-07 SK Hynix Inc. Logging mechanism for memory system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190163556A1 (en) * 2017-11-29 2019-05-30 Seagate Technology Llc In-drive bus trace

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114035855A (zh) * 2021-09-30 2022-02-11 鸣芯信息科技(上海)有限公司 固件的调试方法、装置、终端及存储介质
CN114035855B (zh) * 2021-09-30 2023-10-27 鸣芯信息科技(上海)有限公司 固件的调试方法、装置、终端及存储介质

Also Published As

Publication number Publication date
US11294750B2 (en) 2022-04-05
US20210019218A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
US11294750B2 (en) Media management logger for a memory sub-system
CN109710451B (zh) 基于nand的存储装置的固件事件跟踪及其执行方法和指令集
KR101801147B1 (ko) 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치
TWI459399B (zh) 電力中斷管理
US10732900B2 (en) Bounded latency and command non service methods and apparatus
US11430540B2 (en) Defective memory unit screening in a memory system
US11449266B2 (en) Memory sub-system event log management
CN113126903A (zh) 用于在存储器接口中实现写后读命令的系统和方法
US12013762B2 (en) Meta data protection against unexpected power loss in a memory system
US11237760B2 (en) Measuring performance metrics for data storage devices
KR20210024188A (ko) 기입 버퍼 관리
US11714697B2 (en) Reset and replay of memory sub-system controller in a memory sub-system
CN112673356B (zh) 快速非易失性存储装置恢复技术
US11914876B2 (en) Asynchronous power loss handling approach for a memory sub-system
US20230342084A1 (en) Generating command snapshots in memory devices
CN114730247A (zh) 具有数据的最小写入大小的存储设备
US20230026712A1 (en) Generating system memory snapshot on memory sub-system with hardware accelerated input/output path
US12066914B2 (en) Internal resource monitoring in memory devices
US20240004745A1 (en) Pausing memory system based on critical event
WO2024036473A1 (en) Selectable error handling modes in memory systems
US20240111426A1 (en) Data Storage Device That Detects and Releases Bottlenecks In Hardware
CN113126901A (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20210115

WW01 Invention patent application withdrawn after publication