CN115589785A - 主机系统与存储器系统之间的调试接口 - Google Patents

主机系统与存储器系统之间的调试接口 Download PDF

Info

Publication number
CN115589785A
CN115589785A CN202180009871.8A CN202180009871A CN115589785A CN 115589785 A CN115589785 A CN 115589785A CN 202180009871 A CN202180009871 A CN 202180009871A CN 115589785 A CN115589785 A CN 115589785A
Authority
CN
China
Prior art keywords
command
debug
memory system
information
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180009871.8A
Other languages
English (en)
Inventor
刘海鸿
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 CN115589785A publication Critical patent/CN115589785A/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/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
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • 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
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0658Controller construction arrangements
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • 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
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

描述了用于主机系统与存储器系统之间的调试接口的方法、系统和装置。所述存储器系统可从所述主机系统接收触发所述存储器系统处的调试记录的第一命令。响应于所述第一命令,所述存储器系统可将针对特定命令集合的调试信息存储在调试记录日志中。例如,所述存储器系统所存储的所述调试信息可与所述第一命令所指示的一或多个参数相关联。所述存储器系统可从所述主机系统接收请求来自所述调试记录日志的信息的一部分的第二命令。信息的所述部分可包含存储在所述调试记录日志中(例如,响应于所述第一命令)的性能数据、错误信息等。所述存储器系统可响应于所述第二命令而将所请求的信息部分发送到所述主机系统。

Description

主机系统与存储器系统之间的调试接口
技术领域
下文大体上涉及用于存储器的一或多个系统,且更具体地说,涉及主机系统与存储器系统之间的调试接口。
背景技术
存储器装置广泛地用于将信息存储在例如计算机、用户装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程为不同状态来存储信息。例如,二进制存储器单元可以编程为通常对应于逻辑1或逻辑0的两种支持状态中的一种。在一些实例中,单个存储器单元可以支持多于两种可能状态,存储器单元可以存储所述两种可能状态中的任一种。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可以将存储器装置内的一或多个存储器单元写入或编程到对应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、静态RAM(SRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、快闪存储器、相变存储器(PCM)、3维交叉点存储器(3D交叉点)、或非(NOR)和与非(NAND)存储器装置等。存储器装置可以为易失性或非易失性的。除非由外部电源周期性地刷新,否则易失性存储器单元(例如,DRAM单元)可能会随着时间推移而丢失其编程状态。非易失性存储器单元(例如,NAND存储器单元)即使在不存在外部电源的情况下仍可以在很长一段时间内维持其编程状态。
附图说明
图1至4示出了根据如本文所公开的实例的支持主机系统与存储器系统之间的调试接口的系统的实例。
图5示出了根据如本文所公开的实例的支持主机系统与存储器系统之间的调试接口的过程流程的实例。
图6示出了根据如本文所公开的实例的支持主机系统与存储器系统之间的调试接口的存储器系统的框图。
图7示出了根据如本文所公开的实例的支持主机系统与存储器系统之间的调试接口的主机系统的框图。
图8和9示出了示出根据如本文所公开的实例的支持主机系统与存储器系统之间的调试接口的一或多种方法的流程图。
具体实施方式
主机系统可向存储器系统传输与对存储器装置执行一或多个存取操作相关联的命令,所述存取操作例如读取操作、写入操作或其它操作。在一些实例中,对存储器装置执行存取操作可能会引起性能问题。例如,执行读取操作可能涉及明显延迟(例如,大于阈值延迟),在一些情况下,会导致读取失败。在一些其它实例中,对存储器装置执行存取操作可能会导致一或多个错误。例如,对存储器装置执行写入操作可能会不成功,或者对存储器装置执行读取操作可能会传回不正确数据,从而导致失败。然而,主机系统可能不接收与此类错误相关联的信息,由此使得难以确定此类错误的原因。在一些情况下,调试性能问题、错误或这两者都可能涉及对存储器系统的直接严格测试。例如,调试性能问题可包含逐一地测试存储器系统的存储器块以发现错误的根本原因。因而,由于存储器系统的复杂性和密度,调试性能问题可能会使用大量资源并且可能会花费大量时间。
系统、装置和技术描述为使主机系统能够使用一或多个命令灵活地触发调试信息的记录和检索。在一些实例中,主机系统可向存储器系统传输第一命令。所述第一命令可触发存储器系统将特定调试信息记录在调试记录日志中。在一些实例中,所述第一命令可指示操作模式(例如,调试模式)并且可包含与所述操作模式相关联的一或多个参数。主机系统可灵活地选择参数,以向存储器系统指示要存储在调试记录日志中的信息和要从调试记录中滤除的信息。在一些实例中,存储器系统可执行存取操作,并且响应于接收到第一命令,可将与参数相关联的性能数据存储在调试记录日志内。在一些实例中,主机系统可向存储器系统传输第二命令。第二命令可与第一命令相关联。例如,第二命令可指示调试模式并且可包含用于检索调试信息的一或多个参数。主机系统可灵活地选择参数,以向存储器系统指示要从调试记录日志检索的特定信息。当接收到第二命令时,存储器系统可从调试记录日志检索与第二命令所指示的参数相关联的性能数据和错误信息。存储器系统可传输调试信息,并且主机系统可接收调试信息,从而允许主机系统检索指示性能问题、错误信息或这两者的所记录数据。为主机系统提供此类接口以触发调试记录并从调试记录日志检索信息可提供更稳健的调试模式,由此改进调试性能并提高诊断精度。
首先在参考图1至4的系统、装置和电路的上下文中描述本公开的特征。在参考图5的流程图的上下文中描述本公开的特征。本公开的这些和其它特征通过参考图6至9的涉及主机系统与存储器系统之间的调试接口的设备图和流程图的上下文进一步说明,并且在所述设备图和流程图的上下文中进行描述。
图1示出了根据如本文所公开的实例的支持主机系统105与存储器系统110之间的调试接口的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可以是或包含任何装置或装置集合,其中装置或装置集合包含至少一个存储器阵列。例如,存储器系统110可以是或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其它可能性。
系统100可以包含在计算装置中,所述计算装置例如台式计算机、膝上型计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,载具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
系统100可以包含可以与存储器系统110耦合的主机系统105。在一些实例中,此耦合可包含与主机系统控制器106的接口,所述主机系统控制器可以是经配置以使得主机系统105根据如本文中所描述的实例执行各种操作的控制器或控制组件的实例。主机系统105可以包含一或多个装置,并且在一些情况下,可以包含处理器芯片组和由处理器芯片组执行的软件堆栈。例如,主机系统105可以包含经配置以用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可以包含一或多个核心、一或多个高速缓冲存储器(例如,主机系统105本地的或包含在所述主机系统中的存储器)、存储器控制器(例如,NVDIMM控制器),以及存储协议控制器(例如,外围组件互连高速(PCIe)控制器、串行高级技术附件(SATA)控制器)。主机系统105可以使用存储器系统110,例如以将数据写入到存储器系统110和从存储器系统110读取数据。尽管在图1中示出一个存储器系统110,但主机系统105可以与任何数量的存储器系统110耦合。
主机系统105可以经由至少一个物理主机接口与存储器系统110耦合。在一些情况下,主机系统105和存储器系统110可以经配置以使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传达控制、地址、数据和其它信号)。物理主机接口的实例可以包含但不限于SATA接口、UFS接口、eMMC接口、PCIe接口、USB接口、光纤通道接口、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、双数据速率(DDR)接口、DIMM接口(例如,支持DDR的DIMM套接接口)、开放NAND快闪接口(ONFI),以及低功率双数据速率(LPDDR)接口。在一些实例中,一或多个此类接口可以包含在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115中或以其它方式在其间得到支持。在一些实例中,主机系统105可以经由用于包含在存储器系统110中的每一存储器装置130的相应物理主机接口,或经由用于包含在存储器系统110中的每种类型的存储器装置130的相应物理主机接口,与存储器系统110耦合(例如,主机系统控制器106可以与存储器系统控制器115耦合)。
存储器系统110可以包含存储器系统控制器115和一或多个存储器装置130。存储器装置130可以包含任何类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元,或其任何组合)的一或多个存储器阵列。尽管在图1的实例中示出两个存储器装置130-a和130-b,但存储器系统110可以包含任何数量的存储器装置130。另外,如果存储器系统110包含超过一个存储器装置130,则存储器系统110内的不同存储器装置130可以包含相同或不同类型的存储器单元。
存储器系统控制器115可与主机系统105耦合和通信(例如,经由物理主机接口),且可以是经配置以使得存储器系统110根据如本文中所描述的实例执行各种操作的控制器或控制组件的实例。存储器系统控制器115还可以与存储器装置130耦合和通信以在存储器装置130处执行一般可以被称为存取操作的操作,例如读取数据、写入数据、擦除数据,或刷新数据,以及其它此类操作。在一些情况下,存储器系统控制器115可以从主机系统105接收命令且与一或多个存储器装置130通信以(例如,在一或多个存储器装置130内的存储器阵列处)执行此类命令。例如,存储器系统控制器115可以从主机系统105接收命令或操作,并且可以将命令或操作转换成指令或适当的命令,以实现对存储器装置130的所需存取。在一些情况下,存储器系统控制器115可以(例如,响应于或以其它方式结合来自主机系统105的命令)与主机系统105和一或多个存储器装置130交换数据。例如,存储器系统控制器115可以将与存储器装置130相关联的响应(例如,数据分组或其它信号)转换成用于主机系统105的对应信号。
存储器系统控制器115可以经配置以用于与存储器装置130相关联的其它操作。例如,存储器系统控制器115可以执行或管理操作,例如耗损均衡操作、垃圾数据收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
存储器系统控制器115可以包含硬件,例如一或多个集成电路或离散组件、缓冲器存储器,或其组合。硬件可以包含具有专用(例如,硬译码)逻辑的电路系统,以执行本文中归于存储器系统控制器115的操作。存储器系统控制器115可以是或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或任何其它合适的处理器或处理电路系统。
存储器系统控制器115还可以包含本地存储器120。在一些情况下,本地存储器120可以包含只读存储器(ROM)或其它存储器,其可存储可由存储器系统控制器115执行的操作代码(例如,可执行指令)以执行本文中归于存储器系统控制器115的功能。在一些情况下,本地存储器120可以另外或替代地包含静态随机存取存储器(SRAM)或其它存储器,其可以由存储器系统控制器115用于例如与本文中归于存储器系统控制器115的功能有关的内部存储或计算。另外或替代地,本地存储器120可以充当用于存储器系统控制器115的高速缓冲存储器。例如,如果从存储器装置130读取或写入到所述存储器装置,则数据可以存储在本地存储器120中,并且所述数据可在本地存储器120内可用,以供主机系统105根据高速缓存策略进行后续检索或操作(例如,更新)(例如,相对于存储器装置130的延迟减少)。
尽管图1中的存储器系统110的实例已示出为包含存储器系统控制器115,但在一些情况下,存储器系统110可能不包含存储器系统控制器115。例如,存储器系统110可以另外或替代地依赖于(例如,由主机系统105实施的)外部控制器或可以分别在存储器装置130内部的一或多个本地控制器135,以执行本文中归于存储器系统控制器115的功能。一般来说,本文中归于存储器系统控制器115的一或多个功能可以在一些情况下改为由主机系统105、本地控制器135或其任何组合执行。在一些情况下,至少部分地由存储器系统控制器115管理的存储器装置130可以被称为受管理存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器装置130可以包含非易失性存储器单元的一或多个阵列。例如,存储器装置130可以包含NAND(例如,NAND快闪)存储器、ROM、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电随机存取存储器(RAM)(FeRAM)、磁性RAM(MRAM)、NOR(例如,NOR快闪)存储器、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、电可擦除可编程ROM(EEPROM),或其任何组合。另外或替代地,存储器装置130可以包含易失性存储器单元的一或多个阵列。例如,存储器装置130可以包含RAM存储器单元,例如动态RAM(DRAM)存储器单元和同步DRAM(SDRAM)存储器单元。
在一些实例中,存储器装置130可以(例如,在同一裸片上或在同一封装内)包含本地控制器135,其可以对相应存储器装置130的一或多个存储器单元执行操作。本地控制器135可以结合存储器系统控制器115操作,或可以执行本文中归于存储器系统控制器115的一或多个功能。例如,如图1所示,存储器装置130-a可以包含本地控制器135-a,并且存储器装置130-b可以包含本地控制器135-b。
在一些情况下,存储器装置130可以是或包含NAND装置(例如,NAND快闪装置)。存储器装置130可以是或包含存储器裸片160。例如,在一些情况下,存储器装置130可以是包含一或多个裸片160的封装。在一些实例中,裸片160可以是从晶片切割的一块电子级半导体(例如,从硅晶片切割的硅裸片)。每一裸片160可以包含一或多个平面165,且每一平面165可以包含相应的块170的集合,其中每一块170可以包含相应的页175的集合,并且每一页175可以包含存储器单元的集合。
在一些情况下,NAND存储器装置130可以包含经配置以各自存储一个信息位的存储器单元,其可以被称为单层级单元(SLC)。另外或替代地,NAND存储器装置130可以包含经配置以各自存储多个信息位的存储器单元,如果经配置以各自存储两个信息位,则其可以被称为多层级单元(MLC),如果经配置以各自存储三个信息位,则其可以被称为三层级单元(TLC),如果经配置以各自存储四个信息位,则其可以被称为四层级单元(QLC),或更一般地被称为多层级存储器单元。相对于SLC存储器单元,多层级存储器单元可以提供更大的存储密度,但在一些情况下可以涉及用于支持电路系统的更窄读取或写入容限或更大复杂性。
在一些情况下,平面165可以指块170的群组,且在一些情况下,可以在不同平面165内发生并行操作。例如,可以对不同块170内的存储器单元执行并行操作,只要不同块170处于不同平面165中即可。在一些情况下,在不同平面165中执行并行操作可能会受制于一或多个限制,例如对不同页175内的存储器单元执行相同操作,所述存储器单元在其相应平面165内具有相同页地址(例如,关于命令解码、页地址解码电路系统,或跨平面165共享的其它电路系统)。
在一些情况下,块170可以包含组织成行(页175)和列(例如串,未示出)的存储器单元。例如,同一页175中的存储器单元可以共享共同字线(例如,与其耦合),并且同一串中的存储器单元可以共享共同数字线(其可以替代地被称为位线)(例如,与其耦合)。
对于一些NAND架构,存储器单元可以第一级别的粒度(例如,以页级别的粒度)读取和编程(例如,写入),但可以第二级别的粒度(例如,以块级别的粒度)擦除。也就是说,页175可以是可独立地编程或读取(例如,作为单个编程或读取操作的部分同时编程或读取)的存储器的最小单元(例如,存储器单元集合),且块170可以是可独立地擦除(例如,作为单个擦除操作的部分同时擦除)的存储器的最小单元(例如,存储器单元集合)。另外,在一些情况下,NAND存储器单元可以在其可用新数据重新写入之前被擦除。因此,例如,在一些情况下,可以直到包含页175的整个块170已被擦除才更新已使用的页175。
系统100可以包含支持主机系统与存储器系统之间的调试接口的任何数量的非暂时性计算机可读媒体。例如,主机系统105、存储器系统控制器115或存储器装置130可以包含或以其它方式可以存取一或多个非暂时性计算机可读媒体,所述非暂时性计算机可读媒体存储指令(例如,固件)以执行本文中归于主机系统105、存储器系统控制器115或存储器装置130的功能。例如,如果由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115,或由存储器装置130(例如,由本地控制器135)执行,则此类指令可以使得主机系统105、存储器系统控制器115或存储器装置130执行如本文所描述的一或多个相关联功能。
在一些情况下,存储器系统110可以利用存储器系统控制器115来提供受管理存储器系统,所述受管理存储器系统可以包含例如一或多个存储器阵列以及与本地(例如,裸片上或封装中)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例为受管理NAND(MNAND)系统。
在一些情况下,主机系统105可向存储器系统110传输与对存储器装置130执行一或多个存取操作相关联的命令。在一些情况下,对存储器装置130执行存取操作可能会引起性能问题。例如,执行读取操作可能涉及存储器系统110、存储器装置130或这两者的一或多个组件处的明显延迟(例如,大于阈值延迟)。在一些其它情况下,对存储器装置130执行存取操作可能会导致一或多个错误。例如,对存储器装置130执行写入操作可能会不成功,从而导致写入失败。另外或替代地,对存储器装置130执行读取操作可能会传回不精确或不完整的数据,从而导致读取失败。然而,主机系统105可能不接收指示与此类性能问题、错误或这两者相关联的起因或数据的信息,由此使得难以确定此类错误的原因。
系统、装置和技术描述为使主机系统105能够使用一或多个命令灵活地触发调试信息的记录和检索。在一些实例中,主机系统105可向存储器系统110传输第一命令。所述第一命令可触发存储器系统110将特定调试信息记录在调试记录日志中。在一些实例中,所述第一命令可指示操作模式(例如,调试模式)并且可包含与所述操作模式相关联的一或多个参数。主机系统105可选择参数,以向存储器系统110指示要存储在调试记录日志中的信息和要从调试记录中滤除的信息。在一些实例中,存储器系统110可执行存取操作,并且响应于接收到第一命令,可在调试记录日志内存储与所指示参数相关联的性能数据、错误信息或这两者。
在一些实例中,主机系统105可向存储器系统传输第二命令。第二命令可与第一命令相关联。例如,第二命令可指示调试模式并且可包含用于检索调试信息的一或多个参数。主机系统105可选择参数,以向存储器系统110指示要从调试记录日志检索的特定信息。当接收到第二命令时,存储器系统110可从调试记录日志检索与第二命令所指示的参数相关联的性能数据和错误信息。存储器系统110可传输调试信息,并且主机系统105可接收调试信息,从而允许主机系统105检索指示性能问题、错误信息或这两者的所记录数据。为主机系统105提供接口以触发记录并从调试记录日志检索信息可提供更稳健的调试模式(例如,主机系统控制的调试模式),由此改进调试性能并提高诊断精度。
图2示出了根据如本文所公开的实例的支持主机系统205与存储器系统210之间的调试接口的系统200的实例。系统200可以是如参考图1所描述的系统100或其方面的实例。系统200可包含存储器系统210,其经配置以存储从主机系统205接收到的数据,并且如果由主机系统205使用存取命令(例如,读取命令或写入命令)来请求,则将数据发送到主机系统205。系统200可实施如参考图1所描述的系统100的各方面。例如,存储器系统210和主机系统205可分别是存储器系统110和主机系统105的实例。
存储器系统210可包含存储器装置240,以例如响应于从主机系统205接收到存取命令而存储在存储器系统210与主机系统205之间传送的数据,如本文中所描述。存储器装置240可包含如参考图1所描述的一或多个存储器装置。例如,存储器装置240可包含NAND存储器、PCM、自选存储器、3D交叉点、其它基于硫属化物的存储器、FERAM、MRAM、NOR(例如,NOR快闪)存储器、STT-MRAM、CBRAM、RRAM,或OxRAM。
存储器系统210可包含存储控制器230以用于控制直接进出存储器装置240的数据传递,例如用于存储数据、检索数据以及确定要将数据存储在其中和要从其中检索数据的存储器位置。存储控制器230可使用特定于每种类型的存储器装置240的协议直接地或经由总线(未示出)与存储器装置240通信。在一些情况下,单个存储控制器230可用于控制相同或不同类型的多个存储器装置240。在一些情况下,存储器系统210可包含多个存储控制器230,例如用于每种类型的存储器装置240的不同存储控制器230。在一些情况下,存储控制器230可实施如参考图1所描述的本地控制器135的各方面。
存储器系统210可另外包含用于与主机系统205通信的接口220,以及用于临时存储在主机系统205与存储器装置240之间传送的数据的缓冲器225。接口220、缓冲器225和存储控制器230可用于在主机系统205与存储器装置240之间转换数据(例如,如由数据路径250所示),并且可统称为数据路径组件。
在传送期间使用缓冲器225临时存储数据可允许在处理命令时缓冲数据,由此减少命令之间的延迟并且允许与命令相关联的任意数据大小。这还可允许处理命令突发,并且一旦突发停止,就可存储或传输(或存储并传输)所缓冲数据。缓冲器225可包含相对快速的存储器(例如,一些类型的易失性存储器,例如SRAM或DRAM),或硬件加速器或这两者,以允许快速地将数据存储到缓冲器225和从所述缓冲器检索数据。缓冲器225可包含用于缓冲器225与其它组件之间的双向数据传送的数据路径切换组件。
数据在缓冲器225内的临时存储可指在执行存取命令期间数据在缓冲器225中的存储。也就是说,当完成存取命令时,相关联数据可能不再维持在缓冲器225中(例如,可利用额外存取命令的数据覆写)。另外,缓冲器225可以是非高速缓存缓冲器。也就是说,主机系统205不可直接从缓冲器225读取数据。例如,可将读取命令添加到队列中,而无需将地址与已在缓冲器225中的地址进行匹配的操作(例如,无需高速缓存地址匹配或查找操作)。
存储器系统210可另外包含用于执行从主机系统205接收到的命令且在移动数据时控制数据路径组件的存储器系统控制器215。存储器系统控制器215可以是如参考图1所描述的存储器系统控制器115的实例。总线235可用于在系统组件之间通信。
在一些情况下,一或多个队列(例如,命令队列260、缓冲器队列265,和存储队列270)可用于控制存取命令的处理和对应数据的移动。这在例如由存储器系统210并行处理来自主机系统205的多于一个存取命令的情况下可能是有益的。作为可能实施方案的实例,分别在接口220、存储器系统控制器215和存储控制器230处描绘命令队列260、缓冲器队列265和存储队列270。然而,队列(如果使用的话)可位于存储器系统210内的任何位置。
在主机系统205与存储器装置240之间传送的数据可在存储器系统210中采用与非数据信息(例如,命令、状态信息)不同的路径。例如,存储器系统210中的系统组件可使用总线235彼此通信,而数据可通过数据路径组件而不是总线235使用数据路径250。存储器系统控制器215可通过经由总线235与数据路径组件通信(例如,使用特定于存储器系统210的协议)而控制如何及是否在主机系统205与存储器装置240之间传送数据。
如果主机系统205将存取命令传输到存储器系统210,则所述命令可由接口220例如根据协议(例如,UFS协议或eMMC协议)接收。因此,可将接口220视为存储器系统210的前端。当接收到每一存取命令时,接口220可例如经由总线235将命令传送到存储器系统控制器215。在一些情况下,可通过接口220将每一命令添加到命令队列260,以将命令传送到存储器系统控制器215。
存储器系统控制器215可确定已在与接口220通信之前、期间或之后接收到存取命令。在一些情况下,存储器系统控制器215可确定已通过从命令队列260检索命令而接收到存取命令。在例如已由存储器系统控制器215从命令队列260检索命令之后,可从命令队列去除所述命令。在一些情况下,存储器系统控制器215可使得接口220例如经由总线235从命令队列260去除所述命令。
当确定已接收到存取命令时,存储器系统控制器215可执行存取命令。对于读取命令,这可能意味着从存储器装置240获得数据以及将数据传输到主机系统205。对于写入命令,这可能意味着从主机系统205接收数据以及将数据移动到存储器装置240。
在任一情况下,存储器系统控制器215可将缓冲器225尤其用于临时存储从主机系统205接收到的或发送到所述主机系统的数据。可将缓冲器225视为存储器系统210的中端。在一些情况下,可由接口220、缓冲器225或存储控制器230中的硬件(例如,专用电路)执行缓冲器地址管理(例如,指向缓冲器225中的地址位置的指针)。
为了处理从主机系统205接收到的写入命令,存储器系统控制器215可首先确定缓冲器225是否具有足够可用空间来存储与命令相关联的数据。例如,存储器系统控制器215可例如经由固件(例如,控制器固件)确定缓冲器225内可用于存储与写入命令相关联的数据的空间量。
在一些情况下,缓冲器队列265可用于控制与存储在缓冲器225中的数据相关联的命令流,包含写入命令。缓冲器队列265可包含与当前存储在缓冲器225中的数据相关联的存取命令。在一些情况下,命令队列260中的命令可通过存储器系统控制器215移动到缓冲器队列265,并且可在相关联数据存储在缓冲器225中的同时保持在缓冲器队列265中。在一些情况下,缓冲器队列265中的每一命令可与缓冲器225处的地址相关联。也就是说,可维持指示在缓冲器225中何处存储与每一命令相关联的数据的指针。使用缓冲器队列265,可从主机系统205依序接收多个存取命令并且可并行处理存取命令的至少部分。
如果缓冲器225具有足够空间来存储写入数据,则存储器系统控制器215可使得接口220例如根据协议(例如,UFS协议或eMMC协议)将可用性的指示传输到主机系统205(例如,“准备好传送”指示)。当接口220随后从主机系统205接收与写入命令相关联的数据时,接口220可使用数据路径250将数据传送到缓冲器225以供临时存储。在一些情况下,接口220可从缓冲器225或缓冲器队列265获得缓冲器225内的位置以存储数据。接口220可例如经由总线235向存储器系统控制器215指示是否已完成到缓冲器225的数据传送。
一旦写入数据已通过接口220存储在缓冲器225中,就可从缓冲器225传送出数据并将数据存储在存储器装置240中。这可使用存储控制器230来完成。例如,存储器系统控制器215可例如使得存储控制器230使用数据路径250从缓冲器225中检索出数据并将数据传送到存储器装置240。可将存储控制器230视为存储器系统210的后端。存储控制器230可例如经由总线235向存储器系统控制器215指示已完成到存储器装置240中的存储器装置的数据传送。
在一些情况下,存储队列270可用于辅助写入数据的传送。例如,存储器系统控制器215可将写入命令从缓冲器队列265推送(例如,经由总线235)到存储队列270以供处理。存储队列270可包含用于每一存取命令的条目。在一些实例中,存储队列270可另外包含:缓冲器指针(例如,地址),其可指示在缓冲器225中何处存储与命令相关联的数据;以及存储指针(例如,地址),其可指示存储器装置240中与所述数据相关联的位置。在一些情况下,存储控制器230可从缓冲器225、缓冲器队列265或存储队列270获得缓冲器225内要从其获得数据的位置。存储控制器230可管理存储器装置240内要存储数据(例如,执行耗损均衡、垃圾数据收集等)的位置。可例如通过存储器系统控制器215将条目添加到存储队列270。当完成数据传送时,可例如通过存储控制器230或存储器系统控制器215从存储队列270去除条目。
为了处理从主机系统205接收到的读取命令,存储器系统控制器215可同样首先确定缓冲器225是否具有足够可用空间来存储与命令相关联的数据。例如,存储器系统控制器215可例如经由固件(例如,控制器固件)确定在缓冲器225内可用于存储与读取命令相关联的数据的空间量。
在一些情况下,缓冲器队列265可用于以与上文相对于写入命令所论述的类似方式来辅助与读取命令相关联的数据的缓冲器存储。例如,如果缓冲器225具有足够空间来存储读取数据,则存储器系统控制器215可使得存储控制器230从存储器装置240检索与读取命令相关联的数据并且使用数据路径250将数据存储在缓冲器225中以供临时存储。响应于到缓冲器225的数据传送完成,存储控制器230可例如经由总线235向存储器系统控制器215进行指示。
在一些情况下,存储队列270可用于辅助读取数据的传送。例如,存储器系统控制器215可将读取命令推送到存储队列270以供处理。在一些情况下,存储控制器230可从缓冲器225或存储队列270获得存储器装置240内从其检索数据的位置。在一些情况下,存储控制器230可从缓冲队列265获得缓冲器225内用以存储数据的位置。在一些情况下,存储控制器230可从存储队列270获得缓冲器225内用以存储数据的位置。在一些情况下,存储器系统控制器215可将由存储队列270处理的命令移动回到命令队列260。
一旦数据已通过存储控制器230存储在缓冲器225中,便可从缓冲器225传送出数据并将数据发送到主机系统205。例如,存储器系统控制器215可使得接口220使用数据路径250从缓冲器225检索出数据,并且例如根据协议(例如,UFS协议或eMMC协议)将数据传输到主机系统205。例如,接口220可处理来自命令队列260的命令,并且可例如经由总线235向存储器系统控制器215指示已完成到主机系统205的数据传输。
存储器系统控制器215可根据次序(例如,根据命令队列260的次序的先进先出次序)执行接收到的命令。对于每一命令,存储器系统控制器215可使得对应于命令的数据移动到缓冲器225中且从所述缓冲器移出,如上文所论述。当数据移动到缓冲器225中且存储在所述缓冲器内时,命令可保持在缓冲器队列265中。如果已完成命令的处理(例如,如果已从缓冲器225传送出对应于存取命令的数据),则可例如通过存储器系统控制器215从缓冲器队列265去除命令。如果从缓冲器队列265去除命令,则先前存储与所述命令相关联的数据的地址可用于存储与新命令相关联的数据。
存储器系统控制器215可另外经配置以用于与存储器装置240相关联的操作。例如,存储器系统控制器215可以执行或管理操作,例如耗损均衡操作、垃圾数据收集操作、例如错误检测操作或错误校正操作等错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统205的命令相关联的逻辑地址(例如,LBA)和与存储器装置240内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。也就是说,主机系统205可发出指示一或多个LBA的命令,并且存储器系统控制器215可标识LBA所指示的一或多个物理块地址。在一些情况下,一或多个连续LBA可对应于不连续的物理块地址。在一些情况下,存储控制器230可经配置以结合或代替存储器系统控制器215执行以上操作中的一或多者。在一些情况下,存储器系统控制器215可执行存储控制器230的功能,并且可省略存储控制器230。
在一些情况下,对存储器装置240执行存取操作可能会引起性能问题、导致一或多个错误或这两者。性能问题、错误或这两者可发生在存储器系统210、存储器装置240或其组合的一或多个组件处。如果主机系统205不接收指示此类性能问题、错误或这两者的起因或原因的信息,则主机系统205可能无法支持调试操作。例如,主机系统205可能无法将有价值的调试信息提供到另一装置或系统,使得其它装置或系统可能不能够修复或改进存储器系统210所经历的性能问题、错误或这两者。
在一些实例中,系统200可支持调试接口,使得主机系统205可触发使用一或多个调试记录日志275的有价值的调试信息的记录和检索。例如,主机系统205可传输第一命令,所述第一命令触发与存储器系统210处的一或多个动作(例如,存取操作)相关联的调试信息的记录。在一些实例中,所述第一命令可包含调试模式的指示和与调试模式相关联的一或多个参数的指示。主机系统205可灵活地选择参数,以向存储器系统210指示要存储在调试记录日志275中的信息和要从调试记录中滤除的信息。在一些实例中,存储器系统210可执行存取操作,并且响应于接收到第一命令,存储器系统210可将与第一命令中指示的参数相关联的调试信息存储在调试记录日志275内。在一些情况下,可将调试记录日志275-a(例如,运行时间调试记录日志275-a)存储在高速缓冲存储器处,例如存储器系统控制器215的本地高速缓冲存储器(例如,SRAM)。在一些其它情况下,可将调试记录日志275-b(例如,历史调试记录日志275-b)存储在一或多个存储器装置240处。存储器系统210可首先将调试记录信息存储在调试记录日志275-a中(例如,当已执行命令并且已针对所述命令存储调试信息时)。可将调试记录信息传送到永久性存储器(例如,从调试记录日志275-a传送到调试记录日志275-b),以便增加调试记录日志275-a处的可用存储器资源,或在存储器系统210断电的情况下存留调试记录信息,或这两者。
在一些实例中,存储器系统210可记录与存储器系统210的一或多个层(例如,逻辑层、接口)相关联的调试信息。例如,存储器系统210可记录用于前端层(例如,接口220)、用于管理层(例如,存储器系统控制器215)、用于后端层(例如,存储控制器230)或用于存储器系统210的这些或其它层的任何组合的性能数据。主机系统205可向存储器系统210传输第二命令,已检索存储在调试记录日志275中的调试信息的至少一部分。所述第二命令可指示调试模式并且可指示用于检索调试信息的参数。当接收到第二命令时,存储器系统210可从调试记录日志275检索与第二命令所指示的参数相关联的调试信息。在一些实例中,可从运行时间调试记录日志275-a、历史调试记录日志275-b或这两者检索调试信息。存储器系统210可将调试信息传输到主机系统205,从而允许主机系统205标识调试信息中包含的性能问题和错误信息。为主机系统205提供此类接口以触发使用调试记录日志275的调试信息的记录和检索可提供更稳健的调试模式,由此针对存储器系统210改进调试性能并提高诊断精度。
图3示出了根据如本文所公开的实例的支持主机系统305与存储器系统310之间的调试接口的系统300的实例。系统300可以是如参考图1和2所描述的系统100或系统200的实例。系统300可包含存储器系统310,其经配置以存储从主机系统305接收到的数据,并且如果由主机系统305使用存取命令(例如,分别地,写入命令和读取命令)来请求,则将数据发送到主机系统305。系统300可支持用于主机系统305的接口,以指定用于存储器系统310处进行调试的参数并且从存储器系统310检索特定调试信息。在一些实例中,接口可限定一或多个UFS协议接口单元(UPIU)命令,以配置存储器系统310处的调试记录、请求对存储在调试记录日志320中的数据的存取权或这两者。因而,调试接口(例如,使用UPIU命令)可支持由主机系统305配置的灵活的调试记录和检索。
存储器系统310可包含可充当主机系统305与存储器系统310之间的接口的命令处理程序315。命令处理程序315可以是如参考图2所描述的示例性装置中的一者或组合的实例。例如,命令处理程序315可以是接口220、存储器系统控制器215、存储控制器230或其组合的实例。存储器系统310可包含调试记录日志320,其可以是如参考图2所描述的一或多个调试记录日志275的实例。
在一些实例中,主机系统305可向存储器系统310传输写入缓冲器命令325。主机系统305可使用一或多个UPIU指示写入缓冲器命令325,或可使写入缓冲器命令325与一或多个UPIU相关联。主机系统305可使用UPIU命令接口向存储器系统310发送写入缓冲器命令325。写入缓冲器命令325可以包含模式标识符(ID)值330-a、缓冲器ID值335-a或这两者。例如,主机系统305可以在写入缓冲器命令325的模式ID字段中包含模式ID值330-a并且在缓冲器ID字段中包含缓冲器ID值335-a。在一些实例中,模式ID值330-a可指示一或多个预定义操作模式当中的某一操作模式。也就是说,模式ID值330-a可指定写入缓冲器命令325的功能。作为说明性实例,写入缓冲器命令325可包含来自表1中的示例性模式中的一者的模式ID值330-a。
模式 描述
00h 不在UFS中使用
01h 供应商特定
02h 数据
03h-1Bh 不在UFS中使用
1Ch 错误历史
1Dh 调试模式
1Eh-1Fh 保留
表1:示例模式ID值
表1的模式列示出了特定模式ID值330-a,并且描述列描述了对应于每一模式ID值330-a的功能。尽管示出为具有特定的示例模式,以及示例模式到模式ID值330-a的特定映射,但不同的模式ID值330-a和模式ID值330-a的描述可用于表1。在一些实例中,模式ID值330-a可指示调试模式(例如,具有表1中的示例性模式ID值1Dh,或对应于调试模式的另一模式ID值330-a)。指示调试模式的写入缓冲器命令325可触发存储器系统310处调试信息的记录。
在一些实例中,主机系统305可利用缓冲器ID值335-a指示用于写入缓冲器命令325的一或多个参数,使得存储器系统310可将与一或多个参数相关联的调试信息存储在调试记录日志320中。例如,缓冲器ID值335-a可指定存储器系统310可记录调试信息的一或多个事件。缓冲器ID值335-a可指示命令类型、计数值、调试记录的持续时间,或配置调试记录的这些或其它事件参数的某一组合。命令类型可对应于由存储器系统310执行的操作类型(例如,小型计算机系统接口(SCSI)命令),其中存储器系统310将跟踪并存储调试记录信息。示例性命令类型可包含读取命令、写入命令、取消映射命令、同步高速缓存命令等。计数值可指定要记录的命令的数量。例如,缓冲器ID值335-a可指示存储器系统310可记录针对所指示命令类型的接下来十个命令的调试信息。持续时间值可指定存储器系统310要执行针对所指示命令类型的调试记录的时间量。例如,存储器系统310可记录针对在对应于持续时间值的持续时间期间执行的所指示命令类型的每一命令的调试信息,并且存储器系统310可在持续时间期满时停止调试记录。在一些实例中,缓冲器ID值335-a可指示计数值和调试记录的持续时间两者,并且存储器系统310可响应于满足任一条件(例如,计数值或持续时间)而停止调试记录。
在一些实例中,主机系统305可向存储器系统310传输一或多个写入缓冲器命令325用于调试记录,所述命令可单独或组合地指示命令类型、计数值、调试记录的持续时间或其组合。例如,主机系统305可传输指示命令类型、计数值和调试记录的持续时间的一个写入缓冲器命令325。在另一实例中,主机系统305可传输多个写入缓冲器命令325,一个指示命令类型、一个指示计数值并且一个指示调试记录的持续时间。在另一实例中,可在一或多个写入缓冲器命令325中指示其它参数组合,以利用灵活参数配置存储器系统310用于调试记录。
存储器系统310可接收写入缓冲器命令325,并且可响应于写入缓冲器命令325所指示的参数而启用在调试记录日志320中记录特定调试信息。例如,命令处理程序315可配置有UPIU命令接口,命令处理程序315可利用所述UPIU命令接口接收并解码写入缓冲器命令325。在一些实例中,命令处理程序315可确定由写入缓冲器命令325中包含的值(例如,模式ID值330-a、缓冲器ID值335-a)指示的要记录的命令类型、调试记录的计数值、调试记录的持续时间或其组合。当接收到写入缓冲器命令325时,命令处理程序315可触发存储器系统310处的调试记录。也就是说,命令处理程序315可起始“开始保存”340,使得存储器系统310的一或多个组件能够存储与缓冲器ID值335-a所指示的一或多个参数相关联的调试信息。所存储的调试信息可包含命令(例如,存取命令,由命令类型指示)的处理时间、错误标识符(例如,如果在执行命令期间发生错误)、错误信息、时间戳(例如,指示发生错误的时间)或其任何组合。存储器系统310可将调试信息存储在调试记录日志320中。
在一些实例中,主机系统305可向存储器系统310传输读取缓冲器命令345。主机系统305可使用一或多个UPIU指示读取缓冲器命令345,或可使读取缓冲器命令345与一或多个UPIU相关联。主机系统305可使用UPIU命令接口向存储器系统310发送读取缓冲器命令345。读取缓冲器命令345可请求从调试记录日志320检索调试信息。读取缓冲器命令345可以包含模式ID值330-b、缓冲器ID值335-b或这两者。例如,主机系统305可以在读取缓冲器命令345的模式ID字段中包含模式ID值330-b并且在缓冲器ID字段中包含缓冲器ID值335-b。在一些实例中,模式ID值330-b可使用映射(例如,表1所示的示例映射)指定读取缓冲器命令345的功能。在一些实例中,主机系统305可利用缓冲器ID值335-b指示一或多个参数,使得存储器系统310可响应于一或多个参数而从调试记录日志320检索输出350(例如,调试信息)。例如,缓冲器ID值335-b可指定配置要从调试记录日志320检索的调试信息的一或多个参数。缓冲器ID值335-b可指示命令类型、计数值、所记录信息的类型或这些或其它参数的组合。命令处理程序315可从调试记录日志320检索(例如,查询或以其它方式读取)满足读取缓冲器命令345中的缓冲器ID值335-b所指定的准则的数据。
在一些实例中,主机系统305可根据一或多个准则传输读取缓冲器命令345。此类准则可包含从存储器系统310接收到所记录命令数量满足计数值、确定持续时间已期满等。例如,读取缓冲器命令345可与前一写入缓冲器命令325相关联。具体地说,读取缓冲器命令345的模式ID值330-b和缓冲器ID值335b可指示与写入缓冲器命令325类似的调试模式和记录参数。因而,写入缓冲器命令325可触发将调试信息存储在调试记录日志320中,并且读取缓冲器命令345可触发从调试记录日志320检索所存储的调试信息(例如,作为输出350)。可响应于记录如写入缓冲器命令325的计数值所指示的命令数量、写入缓冲器命令325所指示的记录持续时间的期满或这两者而触发读取缓冲器命令345的传输。
根据前一实例,主机系统305可使用读取缓冲器命令345请求对应于前一写入缓冲器命令325所指示的十个读取命令中的每一者的处理时间和可能错误标识符。在检索输出350(例如,包含所请求的处理时间和可能错误标识符)之后,命令处理程序315可将输出350传输到主机系统305。在一些实例中,主机系统305可从接收到的输出350标识性能问题、错误信息或这两者。在一些其它实例中,可对输出350进行编码,并且主机系统305可将输出350提供到另一装置、系统或用户以用于对输出350进行分析。提供调试接口可支持由主机系统305控制的灵活的调试记录以及主机系统对调试记录日志320中的信息的存取,由此改进调试可配置性和存取。
图4示出了根据如本文所公开的实例的支持主机系统405与存储器系统410之间的调试接口的系统400的实例。系统400可以是如参考图1至3所描述的系统100、200和300的实例,并且可实施这些系统的各方面。例如,存储器系统410可经配置以接收并执行与写入缓冲器命令325和读取缓冲器命令345相关联的动作,如参考图3所描述。系统400可支持用于存储器系统410的接口,用以将与一或多个层(例如,逻辑层、接口)相关联的调试信息存储在调试记录日志440中。也就是说,存储器系统410可以支持检测导致性能问题、错误或其组合的特定层或组件的粒度存储调试信息。例如,一或多个调试记录日志440可经配置以存储信息,所述信息可标识与执行调试信息所关联的动作相关联的层。在一些情况下,调试记录日志440可等效地被称为多层记录日志。
主机系统405可以包含主机系统控制器406,所述主机系统控制器可经配置以执行例如命令确定和传输、调试信息获取等任务。在一些实例中,主机系统405可经配置以使用UPIU命令接口415与存储器系统410通信,如参考图3所描述的。
存储器系统410可以包含一或多个功能层。在一些实例中,存储器系统410可以包含命令接口425(例如,经配置以与主机系统交互)、管理功能430(例如,经配置以针对一或多个存储器装置执行管理功能)、存储器装置接口435(例如,经配置以写入到一或多个存储器装置并从一或多个存储器装置读取)以及调试记录日志440,它们可以是如参考图2所描述的接口220、存储器系统控制器215、存储控制器230和调试记录日志275的相应实例。另外,命令接口425、管理功能430、存储器装置接口435,单独或组合地,可以是如参考图3所描述的命令处理程序315的实例。在一些情况下,命令接口425可被称为“上部”层,管理功能430可被称为“中部”层,并且存储器装置接口435可被称为“底部”层,其中每一层支持存储器系统410处的特定逻辑。
在一些实例中,主机系统控制器406可确定在存储器系统410处获取与一或多个事件420相关联的调试信息。因此,主机系统控制器406可向存储器系统410传输第一命令(例如,写入缓冲器命令),所述第一命令指示要记录调试信息的一或多个事件420。事件420可以包含要在存储器系统410处执行的命令,其中第一命令指定要跟踪并记录用于一或多个特定后续命令的调试信息(例如,根据命令类型、命令数量、调试记录的持续时间或其组合,由如参考图3所描述的写入缓冲器命令指示)。
存储器系统410可接收第一命令,并且可确定将对应于一或多个事件420的调试信息记录在调试记录日志440内。调试信息可包含处理时间、错误标识符、错误信息、时间戳或其组合。在一些实例中,存储器系统410可存储与存储器系统410的每一功能层相关联的调试信息。例如,存储器系统410可遍历存储器系统410的多个层跟踪事件420的处理,并且存储与多个层中的每一层相关联的调试信息。在一些实例中,存储器系统410可将与每一层相关联的调试信息存储在同一调试记录日志440内。例如,存储器系统410可将调试信息存储在单个调试记录日志440内,例如参考图2所描述的运行时间调试记录日志275-a、历史调试记录日志275-b或另一调试记录日志275。在一些其它实例中,存储器系统410可将与每一层相关联的调试信息存储在相应记录内(例如,特定于层的调试记录日志)。例如,存储器系统410可将用于命令接口425的调试信息存储在特定于命令接口425的调试记录日志440中。在此实例中,存储器系统410可将用于管理功能430和存储器装置接口435的调试信息存储在特定于每一层的相应调试记录日志440中。在另一实例中,存储器系统410可将与第一组层相关联的调试信息存储在第一调试记录日志440内,并且将与第二组层相关联的调试信息存储在第二调试记录日志440内。例如,第一组层可包含命令接口425,并且第二组层可包含管理功能430和存储器装置接口435。因此,存储器系统410可将与特定层、接口、功能、组件、逻辑或其组合相关联的调试信息存储在一或多个调试记录日志440中,使得调试信息提供指示哪些特定层、接口、功能、组件、逻辑或其组合正导致性能问题、错误或这两者的粒度数据。
例如,命令接口425可接收第一命令,并且可记录针对存储器系统410所执行的接下来十个写入命令的调试信息。存储器系统410可存储与在命令接口425处处理接下来十个写入命令(例如,对应于事件420)相关联的处理时间(例如,开始时间戳、结束时间戳)。另外,如果命令接口425在处理接下来十个写入命令时遇到错误,则存储器系统410可将与错误相关联的错误信息、错误标识符、错误时间戳或其组合存储在调试记录日志440内。存储器系统410可继续遍历管理功能430、存储器装置接口435或者这些或其它层的任何组合跟踪并存储针对十个写入命令(例如,事件420)的调试信息。在执行写入命令期间,存储器系统410可在调试记录日志440中存储针对每一层的处理时间、错误信息或这些或其它调试信息(例如,由写入缓冲器命令指定)的任何组合。
在一些实例中,存储器系统410可例如根据存储器系统410所跟踪的本地时间而存储相关联时间戳。在一些其它实例中,存储器系统410可(例如,从主机系统405)接收系统定时的指示,从而允许存储器系统410在存储器系统410处启用实时时钟(RTC),并且使用与RTC相关联的主机时间戳(例如,绝对时间值)存储调试信息。存储器系统410可经配置以将针对任何功能层的调试信息存储在调试记录日志440中。在一些实例中,每一功能层可包含具有所存储调试信息的标识层的信息(例如,层ID),使得调试信息的检索可允许主机系统控制器406确定哪一层可能正遇到性能问题、错误或这两者。
主机系统控制器406可传输用于检索调试信息的第二命令(例如,读取缓冲器命令)。第二命令可与第一命令相关联,以便第二命令可使得存储器系统410从调试记录日志440检索并传输与第一命令中指示的一或多个事件420相关联的调试信息。响应于接收到调试信息,主机系统控制器406可确定是否已发生性能问题和错误,以及发生特定性能问题或错误的层。
图5示出了根据如本文所公开的实例的支持主机系统与存储器系统之间的调试接口的过程流程500的实例。过程流程500的操作可由如本文中所描述的存储器系统或其组件来实施。例如,过程流程500的操作可由如参考图1至4所描述的系统执行。存储器系统可执行与过程流程500相关联的操作以支持调试模式,其中来自主机系统的一或多个命令可配置调试记录和操作。可实施下文的替代性实例,其中一些步骤以不同次序执行或根本不执行。另外,一些步骤可包含下文中未提及的额外特征。
过程流程500的各方面可由控制器以及其它组件(例如,存储器系统的存储器系统控制器、主机系统的主机系统控制器)实施。另外或替代地,过程流程500的各方面可以实施为存储在存储器中的指令(例如,存储在与存储器系统耦合的存储器中的固件)。例如,指令在由控制器执行时可以使得控制器执行过程流程500的各操作。
在505处,可接收针对调试记录的命令。例如,主机系统可发送触发存储器系统处的调试记录的命令,并且存储器系统可接收所述命令。触发调试记录可涉及激活存储器系统处的某一模式,用以将与执行特定命令相关联的特定信息存储在调试记录日志中。例如,存储器系统可在正常操作期间存储一些调试信息。在此实例中,触发调试记录可涉及存储器系统将额外或替代调试信息(例如,由命令指示)存储在调试记录日志中。存储器系统处的一些调试记录可能对主机系统是显而易见的。另外或替代地,存储器系统可向主机系统指示存储在调试记录日志中针对存储器系统处的一或多个操作(例如,执行特定命令)的信息类型。
触发调试记录的命令可以是写入缓冲器命令的实例,所述写入缓冲器命令包含调试模式的指示(例如,模式ID值)和参数集合(例如,由缓冲器ID值指示),如参考图3所描述。调试模式的指示可触发调试记录,并且可由参数集合配置要存储在调试记录日志中的信息。在一些实例中,可将调试记录日志存储在高速缓冲存储器中,存储在存储器装置处,或这两者,如参考图2所描述。
在510处,可确定是否使用RTC跟踪定时的决定。例如,如果存储器系统从主机系统接收用于主机系统的系统定时的指示,则存储器系统可使用主机系统时序在515处启用RTC。例如,存储器系统可确定使用RTC来跟踪定时,并且可响应于从主机系统接收到系统定时的指示而启用RTC。参考图4更详细地描述了启用RTC。在存储器系统处启用RTC可使用于存储器系统处的调试记录日志的定时与用于维持在主机系统处的一或多个记录日志的定时对准。另外或替代地,存储器系统可经配置以默认地使用RTC来跟踪定时。在一些其它实例中,存储器系统可确定不使用RTC来跟踪定时。因而,存储器系统可确定使用本地时间(例如,维持在存储器系统处的本地时间戳)来跟踪定时。
在520处,可接收用以执行操作的命令。例如,主机系统可传输用以在存储器系统处执行存取操作(例如,读取操作、写入操作或如本文所描述的另一存取操作)的命令,并且存储器系统可接收所述命令。
在525处,可确定是否将针对在520处接收到的命令的信息存储在调试记录日志中的决定。也就是说,存储器系统可例如根据在505处接收到的命令中的参数集合确定是否将事件记录在调试记录日志中。在一些实例中,存储器系统可确定是否记录事件,例如与520处的命令相关联的事件。
在一些情况下,存储器系统可确定不将信息存储在调试记录日志中。例如,在530处,可执行命令。如果写入缓冲器命令不指示存储针对命令的调试信息(例如,由于命令类型、先前记录的命令的数量、调试记录持续时间的期满),则存储器系统可执行520处的用以在存储器系统处执行操作的命令而无需将与执行操作相关联的调试信息存储在调试记录日志中。在一些情况下,响应于确定写入缓冲器命令不指示存储针对命令的调试信息,存储器系统可追踪命令执行,但可避免保存追踪记录日志。
在一些其它情况下,存储器系统可确定将信息存储在调试记录日志中。例如,存储器系统可根据写入缓冲器命令确定调试记录的命令类型、调试记录的计数值、调试记录的持续时间或其组合,如参考图3和4更详细地描述。存储器系统可标识在520处接收到的命令对应于根据在505处接收到的写入缓冲器命令记录调试信息的命令。
在535处,可执行命令。例如,在确定在调试记录日志中存储针对在520处接收到的命令的信息之后,存储器系统可执行用以执行命令所指定的操作的命令。
在540处,可将信息存储在调试记录日志中。例如,在执行在520处接收到的命令期间,存储器系统可将与执行命令相关联的信息存储在调试记录日志中。所述信息可包含存储器系统的一或多个组件(例如,层、逻辑、硬件)处的处理时间(例如,针对执行操作)、与执行命令相关联的错误标识符、与错误标识符相关联的错误信息、与错误标识符相关联的时间戳或其组合。参考图4更详细地描述了将对应于一或多个组件或功能层的信息存储在调试记录日志中。所触发的调试模式可支持遍历存储器系统的一或多个层或层级追踪任何事件(例如,在存储器系统的固件中)。主机系统可灵活地确定并指示事件、层或这两者以追踪调试操作,并且可响应于来自主机系统的指示而确定在540处存储的信息。如果存储器系统经更新以支持额外事件,则可相应地更新调试接口以支持针对额外事件的调试记录。
在545处,可接收请求信息的命令。例如,主机系统可发送请求来自调试记录日志的信息的一部分的命令,并且存储器系统可接收所述命令。命令可以是读取缓冲器命令的实例,所述读取缓冲器命令包含调试模式(例如,模式ID值)和参数集合(例如,如由缓冲器ID值指示)的指示。在一些实例中,信息的部分可与参数集合相关联。参考图3更详细地描述对应于命令的操作。
在550处,可发送信息。例如,存储器系统可响应于在545处接收到的命令而发送来自调试记录日志的信息的部分,并且主机系统可响应于所述命令而接收所述信息的部分。所述信息可允许主机系统(或另一系统、装置或用户)使用所记录的调试信息标识存储器系统处的性能问题、错误或这两者的原因。例如,主机系统可使用所记录和所检索的调试信息支持现场调试(例如,针对性能问题)。另外或替代地,支持调试接口可减少与调试存储器系统相关联的延迟(例如,构建时间、选通时间、返工电话时间)和处理资源。主机系统可将所检索的调试信息发送到其它系统、装置或用户,以分析所述信息并且有效地确定哪一层、哪一功能或哪一层和哪一功能正导致性能问题、错误或其某一组合。
图6示出了根据如本文所公开的实例的支持主机系统与存储器系统之间的调试接口的存储器系统620的框图600。存储器系统620可以是如参考图1至5所描述的存储器系统的各方面的实例。存储器系统620或其各种组件可以是用于执行主机系统与存储器系统之间的调试接口的各种方面的构件的实例,如本文所描述。例如,存储器系统620可包含调试记录命令接收器625、信息存储组件630、请求接收器635、信息发送组件640、存取命令组件645、多层追踪组件650、RTC组件655或其任何组合。这些组件中的每一者可以直接或间接地(例如,经由一或多个总线)彼此通信。
调试记录命令接收器625可经配置为或以其它方式支持用于从主机系统接收触发存储器系统620处的调试记录的第一命令的构件。信息存储组件630可经配置为或以其它方式支持用于响应于第一命令而将信息存储在调试记录日志中的构件。请求接收器635可经配置为或以其它方式支持用于从主机系统接收请求存储在调试记录日志中的信息的至少一部分的第二命令的构件。信息发送组件640可经配置为或以其它方式支持用于响应于第二命令而向主机系统发送信息的部分的构件。
在一些实例中,信息存储组件630可经配置为或以其它方式支持用于基于(例如,响应于)第一命令而确定调试记录的要记录的命令类型、调试记录的计数值、调试记录的持续时间或其任何组合的构件,其中可基于(例如,根据)命令类型、计数值、持续时间或其任何组合将信息存储在调试记录日志中。
在一些实例中,存取命令组件645可经配置为或以其它方式支持用于在存储器系统处执行第三命令的构件,其中第三命令受第一命令所触发的调试记录影响,并且其中所述信息存储组件630可在调试记录日志中存储所述信息,所述信息包含第三命令在存储器系统的一或多个组件处的处理时间、与执行第三命令相关联的错误标识符、与错误标识符相关联的错误信息、与错误标识符相关联的时间戳或其任何组合。
在一些实例中,为了支持接收第一命令,调试记录命令接收器625可经配置为或以其它方式支持用于接收包含调试模式和参数集合的指示的写入缓冲器命令的构件,其中调试模式的指示经配置以触发调试记录并且信息基于(例如,使用以下项,作为滤波器)参数集合而存储在调试记录日志中。在一些实例中,写入缓冲器命令包含具有指示调试模式的模式值的模式字段,并且写入缓冲器命令包含具有指示参数集合的缓冲器ID值的缓冲器ID字段。
在一些实例中,为了支持接收第二命令,调试记录命令接收器625可经配置为或以其它方式支持用于接收包含调试模式和参数集合的指示的读取缓冲器命令的构件,其中调试模式的指示指示调试记录日志并且读取缓冲器命令基于(例如,使用以下项,作为滤波器)参数集合而请求存储在调试记录日志中的信息的部分。在一些实例中,读取缓冲器命令包含具有指示调试模式的模式值的模式字段,并且读取缓冲器命令包含具有指示参数集合的缓冲器ID值的缓冲器ID字段。
在一些实例中,为了支持将信息存储在调试记录日志中,多层追踪组件650可经配置为或以其它方式支持这样一种构件,其用于存储与经配置以与主机系统交互的存储器系统的第一层相关联的第一信息、与经配置以执行针对存储器装置的管理功能的存储器系统的第二层相关联的第二信息、与经配置以与存储器装置交互的存储器系统的第三层相关联的第三信息,或其任何组合。
在一些实例中,RTC组件655可经配置为或以其它方式支持这样一种构件,其用于从主机系统接收用于主机系统的系统定时的指示;并且基于(例如,响应于)用于主机系统的系统定时而在存储器系统处启用RTC,其中基于经启用RTC(例如,使用来自经启用RTC的定时)使用主机时间戳将信息存储在调试记录日志中。
在一些实例中,信息存储组件630可经配置为或以其它方式支持用于将调试记录日志存储在存储器系统的高速缓冲存储器、存储器装置或这两者处的构件。在一些实例中,高速缓冲存储器包含运行时间调试记录日志,并且存储器装置包含历史调试记录日志。
图7示出了根据如本文所公开的实例的支持主机系统与存储器系统之间的调试接口的主机系统720的框图700。主机系统720可以是如参考图1至5所描述的主机系统的各方面的实例。主机系统720或其各种组件可以是用于执行主机系统与存储器系统之间的调试接口的各种方面的构件的实例,如本文所描述。例如,主机系统720可包含调试记录命令组件725、请求发送组件730、信息接收器735或其任何组合。这些组件中的每一者可以直接或间接地(例如,经由一或多个总线)彼此通信。
调试记录命令组件725可经配置为或以其它方式支持用于向存储器系统发送触发存储器系统处的调试记录的第一命令的构件。请求发送组件730可经配置为或以其它方式支持用于向存储器系统发送请求来自调试记录日志的信息的至少一部分的第二命令的构件,所述信息的部分与响应于第一命令的调试记录相关联。信息接收器735可经配置为或以其它方式支持用于从存储器系统并且响应于第二命令而接收来自调试记录日志的信息的部分的构件。
在一些实例中,调试记录命令组件725可经配置为或以其它方式支持用于将第一命令配置成指示调试记录的要记录的命令类型、调试记录的计数值、调试记录的持续时间或其任何组合的构件,其中响应于第一命令而存储在调试记录日志中的信息基于(例如,根据以下各项选择)命令类型、计数值、持续时间或其任何组合。
在一些实例中,第一命令可指示调试记录的计数值,并且请求触发组件740可经配置为或以其它方式支持用于从存储器系统接收调试记录日志已记录了满足计数值的命令数量的指示的构件,其中可基于(例如,响应于)所述指示而发送第二命令在一些其它实例中,第一命令可指示调试记录的持续时间,并且请求触发组件740可经配置为或以其它方式支持用于确定持续时间已期满的构件,其中可基于(例如,响应于)确定持续时间已期满而发送第二命令。
在一些实例中,来自调试记录日志的信息的部分包含命令在存储器系统的一或多个组件处的处理时间、与在存储器系统处执行第三命令相关联的错误标识符、与错误标识符相关联的错误信息、与错误标识符相关联的时间戳或其任何组合。
在一些实例中,为了支持发送第一命令,调试记录命令组件725可经配置为或以其它方式支持用于发送包含调试模式和参数集合的指示的写入缓冲器命令的构件,其中调试模式的指示经配置以触发调试记录并且来自调试记录日志的信息的部分基于参数集合(例如,使用参数集合进行滤波)。
在一些实例中,为了支持发送第二命令,请求发送组件730可经配置为或以其它方式支持用于发送包含调试模式和参数集合的指示的读取缓冲器命令的构件,其中调试模式的指示指示调试记录日志并且读取缓冲器命令基于(例如,使用以下项,作为滤波器)参数集合而请求来自调试记录日志的信息的部分。
图8示出了示出根据如本文所公开的实例的支持主机系统与存储器系统之间的调试接口的方法800的流程图。方法800的操作可由如本文中所描述的存储器系统或其组件来实施。例如,方法800的操作可由如参考图1至6所描述的存储器系统执行。在一些实例中,存储器系统可执行指令集合以控制系统的功能元件来执行所描述的功能。另外或替代地,存储器系统可使用专用硬件来执行所描述的功能的各方面。
在805处,所述方法可包含从主机系统接收触发存储器系统处的调试记录的第一命令。可根据如本文所公开的实例执行805的操作。在一些实例中,可由如参考图6所描述的调试记录命令接收器625执行805的操作的各方面。
在810处,所述方法可包含响应于第一命令而将信息存储在调试记录日志中。可根据如本文所公开的实例执行810的操作。在一些实例中,可由如参考图6所描述的信息存储组件630执行810的操作的各方面。
在815处,所述方法可包含从主机系统接收请求存储在调试记录日志中的信息的至少一部分的第二命令。可根据如本文所公开的实例执行815的操作。在一些实例中,可由如参考图6所描述的请求接收器635执行815的操作的各方面。
在820处,所述方法可包含响应于第二命令而向主机系统发送信息的部分。可根据如本文所公开的实例执行820的操作。在一些实例中,可由如参考图6所描述的信息发送组件640执行820的操作的各方面。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法800。所述设备可包含特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体),用于从主机系统接收触发存储器系统处的调试记录的第一命令,响应于第一命令而将信息存储在调试记录日志中,从主机系统接收请求存储在调试记录日志中的信息的至少一部分的第二命令,并且响应于第二命令而向主机系统发送信息的部分。
本文所描述的方法800和设备的一些实例可进一步包含操作、特征、电路系统、逻辑、构件或指令,用于基于(例如,响应于)第一命令而确定调试记录的要记录的命令类型、调试记录的计数值、调试记录的持续时间或其任何组合,其中基于(例如,根据)命令类型、计数值、持续时间或其任何组合将信息存储在调试记录日志中。
本文所描述的方法800和设备的一些实例可进一步包含操作、特征、电路系统、逻辑、构件或指令,用于在存储器系统处执行第三命令,其中第三命令受第一命令所触发的调试记录影响,并且其中存储在调试记录日志中的信息包含第三命令在存储器系统的一或多个组件处的处理时间、与执行第三命令相关联的错误标识符、与错误标识符相关联的错误信息、与错误标识符相关联的时间戳或其任何组合。
在本文所描述的方法800和设备的一些实例中,用于接收第一命令的操作、特征、电路系统、逻辑、构件或指令可包含用于进行以下活动的操作、特征、电路系统、逻辑、构件或指令:接收包含调试模式和参数集合的指示的写入缓冲器命令,其中调试模式的指示经配置以触发调试记录并且信息基于(例如,响应于)参数集合而存储在调试记录日志中。在一些实例中,写入缓冲器命令包含具有指示调试模式的模式值的模式字段,并且写入缓冲器命令包含具有指示参数集合的缓冲器ID值的缓冲器ID字段。
在本文所描述的方法800和设备的一些实例中,用于接收第二命令的操作、特征、电路系统、逻辑、构件或指令可包含用于进行以下活动的操作、特征、电路系统、逻辑、构件或指令:接收包含调试模式和参数集合的指示的读取缓冲器命令,其中调试模式的指示指示调试记录日志并且读取缓冲器命令基于(例如,响应于)参数集合而请求存储在调试记录日志中的信息的部分。在一些实例中,读取缓冲器命令包含具有指示调试模式的模式值的模式字段,并且读取缓冲器命令包含具有指示参数集合的缓冲器ID值的缓冲器ID字段。
在本文所描述的方法800和设备的一些实例中,用于将信息存储在调试记录日志中的操作、特征、电路系统、逻辑、构件或指令可包含用于进行以下活动的操作、特征、电路系统、逻辑、构件或指令:存储与经配置以与主机系统交互的存储器系统的第一层相关联的第一信息、与经配置以执行针对存储器装置的管理功能的存储器系统的第二层相关联的第二信息、与经配置以与存储器装置交互的存储器系统的第三层相关联的第三信息,或其任何组合。
本文所描述的方法800和设备的一些实例可进一步包含操作、特征、电路系统、逻辑、构件或指令,用于从主机系统接收用于主机系统的系统定时的指示;并且基于(例如,使用)用于主机系统的系统定时而在存储器系统处启用RTC,其中基于(例如,响应于)经启用RTC使用主机时间戳将信息存储在调试记录日志中。
本文所描述的方法800和设备的一些实例可进一步包含操作、特征、电路系统、逻辑、构件或指令,用于将调试记录日志存储在存储器系统的高速缓冲存储器、存储器装置或这两者处。在一些实例中,高速缓冲存储器包含运行时间调试记录日志,并且存储器装置包含历史调试记录日志。
图9示出了示出根据如本文所公开的实例的支持主机系统与存储器系统之间的调试接口的方法900的流程图。方法900的操作可由如本文中所描述的主机系统或其组件来实施。例如,方法900的操作可由如参考图1至5和7所描述的主机系统执行。在一些实例中,主机系统可执行指令集合以控制系统的功能元件来执行所描述的功能。另外或替代地,主机系统可使用专用硬件来执行所描述的功能的各方面。
在905处,所述方法可包含向存储器系统发送触发存储器系统处的调试记录的第一命令。可根据如本文所公开的实例执行905的操作。在一些实例中,可由如参考图7所描述的调试记录命令组件725执行905的操作的各方面。
在910处,所述方法可包含向存储器系统发送请求来自调试记录日志的信息的至少一部分的第二命令,信息的部分与响应于第一命令的调试记录相关联。可根据如本文所公开的实例执行910的操作。在一些实例中,可由如参考图7所描述的请求发送组件730执行910的操作的各方面。
在915处,所述方法可包含从存储器系统并且响应于第二命令,接收来自调试记录日志的信息的部分。可根据如本文所公开的实例执行915的操作。在一些实例中,可由如参考图7所描述的信息接收器735执行915的操作的各方面。
在一些实例中,如本文所描述的设备可执行一或多种方法,例如方法900。所述设备可包含特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体),用于向存储器系统发送触发存储器系统处的调试记录的第一命令,向存储器系统发送请求来自调试记录日志的信息的至少一部分的第二命令,所述信息的部分与响应于第一命令的调试记录相关联,以及从存储器系统并且响应于第二命令而接收来自调试记录日志的信息的部分。
本文所描述的方法900和设备的一些实例可进一步包含操作、特征、电路系统、逻辑、构件或指令,用于将第一命令配置成指示调试记录的要记录的命令类型、调试记录的计数值、调试记录的持续时间或其任何组合,其中响应于第一命令而存储在调试记录日志中的信息基于(例如,响应于)命令类型、计数值、持续时间或其任何组合。
在一些实例中,第一命令指示调试记录的计数值。本文所描述的方法900和设备的一些实例可进一步包含操作、特征、电路系统、逻辑、构件或指令,用于从存储器系统接收调试记录日志已记录了满足计数值的命令数量的指示,其中基于(例如,响应于)所述指示而发送第二命令。
在一些实例中,第一命令指示调试记录的持续时间。本文所描述的方法900和设备的一些实例可进一步包含操作、特征、电路系统、逻辑、构件或指令,用于确定持续时间已期满,其中基于(例如,响应于)确定持续时间已期满而发送第二命令。
在一些实例中,来自调试记录日志的信息的部分包含命令在存储器系统的一或多个组件处的处理时间、与在存储器系统处执行第三命令相关联的错误标识符、与错误标识符相关联的错误信息、与错误标识符相关联的时间戳或其任何组合。
在本文所描述的方法900和设备的一些实例中,用于发送第一命令的操作、特征、电路系统、逻辑、构件或指令可包含用于进行以下活动的操作、特征、电路系统、逻辑、构件或指令:发送包含调试模式和参数集合的指示的写入缓冲器命令,其中调试模式的指示经配置以触发调试记录并且来自调试记录日志的信息的部分基于参数集合(例如,使用参数集合进行滤波)。
在本文所描述的方法900和设备的一些实例中,用于发送第二命令的操作、特征、电路系统、逻辑、构件或指令可包含用于进行以下活动的操作、特征、电路系统、逻辑、构件或指令:发送包含调试模式和参数集合的指示的读取缓冲器命令,其中调试模式的指示指示调试记录日志并且读取缓冲器命令基于(例如,响应于)参数集合而请求来自调试记录日志的信息的部分。
应注意,上文所描述的方法描述了可能的实施方案,并且操作和步骤可重新布置或以其它方式加以修改,并且其它实施方案是可能的。另外,可以组合来自所述方法中的两种或更多种的部分。
可以使用各种不同技艺和技术中的任一者来表示本文所描述的信息和信号。例如,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和芯片。一些图式可以将信号说明为单个信号;然而,所述信号可以表示信号的总线,其中所述总线可以具有各种位宽度。
术语“电子通信”、“导电接触”、“连接”和“耦合”可以指支持信号在组件之间流动的组件之间的关系。如果组件之间存在可以在任何时间支持信号在组件之间流动的任何导电路径,则认为组件彼此电子通信(或彼此导电接触、或彼此连接、或彼此耦合)。在任何给定时间,根据包含所连接组件的装置的操作,彼此电子通信(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可为组件之间的直接导电路径,或所连接组件之间的导电路径可为间接导电路径,其可包含例如开关、晶体管或其它组件等中间组件。在一些实例中,可以例如使用例如开关或晶体管等一或多个中间组件来中断信号在所连接组件之间的流动一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在所述开路关系中,信号当前无法通过导电路径在所述组件之间传送,在所述闭路关系中,信号能够通过所述导电路径在所述组件之间传送。如果例如控制器的组件将其它组件耦合在一起,则组件发起允许信号通过先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指其中信号当前无法在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此分隔。例如,由定位在两个组件之间的开关分离的所述组件在开关断开时彼此隔离。如果控制器隔离两个组件,则控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
术语“响应于”可以指由于先前条件或动作而至少部分地(如果不完全地)发生的一个条件或动作。例如,可执行第一条件或动作,并且作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作之后的一或多个其它中间条件或动作发生之后),第二条件或动作可至少部分地发生。
另外,术语“直接地响应于”或“直接响应于”可指作为先前条件或动作的直接结果而发生的一个条件或动作。在一些实例中,可以执行第一条件或动作,并且可以作为与是否发生其它条件或动作无关的先前条件或动作发生的结果而直接发生第二条件或动作。在一些实例中,可以执行第一条件或动作,并且可以作为先前条件或动作发生的结果而直接发生第二条件或动作,使得在较早条件或动作与第二条件或动作之间不发生其它中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”一些其它步骤、动作、事件或条件执行的任何条件或动作可以另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”此类其它条件或动作而执行。
本文所论述的包含存储器阵列的装置可以形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底为半导体晶片。在一些其它实例中,衬底可以是绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷等各种化学物种的掺杂来控制衬底或衬底的子区的电导率。掺杂可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法来执行。
本文中所论述的开关组件或晶体管可以表示场效应晶体管(FET),并且包括包含源极、漏极和栅极的三端装置。所述端可以通过例如金属的导电材料连接到其它电子元件。源极和漏极可以是导电的,并且可以包括重掺杂(例如简并)的半导体区。源极与漏极可以通过轻掺杂的半导体区或沟道分离。如果沟道是n型(即,大部分载流子是电子),则FET可以被称为n型FET。如果沟道是p型(即,大部分载流子是空穴),则FET可以被称作p型FET。所述沟道可以由绝缘栅极氧化物封端。可以通过将电压施加到栅极来控制沟道电导率。例如,将正电压或负电压分别施加到n型FET或p型FET可以使沟道变成导电的。在大于或等于晶体管的阈值电压的电压施加到晶体管栅极的情况下,晶体管可以“接通”或“激活”。在小于晶体管的阈值电压的电压施加到晶体管栅极的情况下,晶体管可以“关断”或“去激活”。
本文中结合附图阐述的描述内容描述了示例配置,并且并不表示可以实施的或在权利要求书的范围内的所有实例。本文所使用的术语“示例性”是指“充当实例、例子或说明”,并且不“优选于”或“优于”其它实例。详细描述包含具体细节以提供对所描述技术的理解。然而,可以在没有这些具体细节的情况下实践这些技术。在一些情况下,以框图形式示出众所周知的结构和装置以免混淆所描述实例的概念。
在附图中,类似的组件或特征可以具有相同的参考标记。另外,可以通过在参考标记之后跟着短横以及在类似组件之间进行区分的第二标记来区分相同类型的各种组件。如果在说明书中仅使用第一参考标记,则描述适用于具有相同第一参考标记而与第二参考标记无关的类似组件中的任一个。
本文所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合实施。如果以由处理器执行的软件实施,则可以将功能作为一或多个指令或代码存储在计算机可读媒体上或通过计算机可读媒体传输。其它实例和实施方案在本公开及所附权利要求书的范围内。例如,由于软件的本质,上文所描述的功能可以使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一个的组合来实施。实施功能的特征也可以物理地位于各种位置处,包含分布以使得功能的各部分在不同物理位置处实施。
例如,结合本文中的公开内容描述的各种说明性块和组件可以利用经设计以执行本文所描述的功能的通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可为微处理器;但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此配置)。
如本文(包含在权利要求书中)所使用,如在项列表(例如,在例如“中的至少一者”或“中的一或多个”之前的项列表)中所使用的“或”指示包含性列表,使得例如A、B或C中的至少一者的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。
计算机可读媒体包含非暂时性计算机存储装置媒体与通信媒体两者,通信媒体包含促进计算机程序从一处传送到另一处的任何媒体。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可以包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可以用于携载或存储呈指令或数据结构形式的所需程序代码构件且可以由通用或专用计算机或者通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等技艺从网站、服务器或其它远程源传输软件,则所述同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等技艺包含于媒体的定义中。如本文所使用,磁盘和光盘包含CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。上述的组合也包含在计算机可读媒体的范围内。
提供本文中的描述以使本领域的技术人员能够制造或使用本公开。本领域的技术人员将显而易见对本公开的各种修改,并且本文中所定义的一般原理可以应用于其它变体而不会脱离本公开的范围。因此,本公开不限于本文所描述的实例和设计,而是被赋予与本文所公开的原理和新颖特征一致的最宽范围。

Claims (20)

1.一种设备,其包括:
存储器装置;以及
控制器,其与所述存储器装置耦合且经配置以使得所述设备:
从主机系统接收触发存储器系统处的调试记录的第一命令;
响应于所述第一命令而将信息存储在调试记录日志中;
从所述主机系统接收请求存储在所述调试记录日志中的所述信息的至少一部分的第二命令;并且
响应于所述第二命令而向所述主机系统发送所述信息的所述部分。
2.根据权利要求1所述的设备,其中所述控制器进一步经配置以使得所述设备:
至少部分地基于所述第一命令而确定所述调试记录的要记录的命令类型、所述调试记录的计数值、所述调试记录的持续时间或其任何组合,其中所述控制器经配置以使得所述设备至少部分地基于所述命令类型、所述计数值、所述持续时间或其任何组合而将所述信息存储在所述调试记录日志中。
3.根据权利要求1所述的设备,其中所述控制器进一步经配置以使得所述设备:
在所述存储器系统处执行第三命令,其中所述第三命令受所述第一命令所触发的所述调试记录影响,并且其中所述控制器经配置以使得所述设备在所述调试记录日志中存储所述信息,所述信息包括所述第三命令在所述存储器系统的一或多个组件处的处理时间、与执行所述第三命令相关联的错误标识符、与所述错误标识符相关联的错误信息、与所述错误标识符相关联的时间戳或其任何组合。
4.根据权利要求1所述的设备,其中,为了接收所述第一命令,所述控制器经配置以使得所述设备:
接收包括调试模式和参数集合的指示的写入缓冲器命令,其中所述调试模式的所述指示经配置以触发所述调试记录并且所述控制器经配置以使得所述设备至少部分地基于所述参数集合而将所述信息存储在所述调试记录日志中。
5.根据权利要求4所述的设备,其中:
所述写入缓冲器命令包括具有指示所述调试模式的模式值的模式字段;并且
所述写入缓冲器命令包括具有指示所述参数集合的缓冲器标识符值的缓冲器标识符字段。
6.根据权利要求1所述的设备,其中为了接收所述第二命令,所述控制器经配置以使得所述设备:
接收包括调试模式和参数集合的指示的读取缓冲器命令,其中所述调试模式的所述指示指示所述调试记录日志并且所述读取缓冲器命令至少部分地基于所述参数集合而请求存储在所述调试记录日志中的所述信息的所述部分。
7.根据权利要求6所述的设备,其中:
所述读取缓冲器命令包括具有指示所述调试模式的模式值的模式字段;并且
所述读取缓冲器命令包括具有指示所述参数集合的缓冲器标识符值的缓冲器标识符字段。
8.根据权利要求1所述的设备,其中,为了将所述信息存储在所述调试记录日志中,所述控制器经配置以使得所述设备:
存储与经配置以与所述主机系统交互的所述存储器系统的第一层相关联的第一信息、与经配置以执行针对所述存储器装置的管理功能的所述存储器系统的第二层相关联的第二信息、与经配置以与所述存储器装置交互的所述存储器系统的第三层相关联的第三信息,或其任何组合。
9.根据权利要求1所述的设备,其中所述控制器进一步经配置以使得所述设备:
从所述主机系统接收用于所述主机系统的系统定时的指示;并且
至少部分地基于用于所述主机系统的所述系统定时而在所述存储器系统处启用实时时钟,其中所述控制器经配置以使得所述设备至少部分地基于经启用实时时钟而使用主机时间戳将所述信息存储在所述调试记录日志中。
10.根据权利要求1所述的设备,其中所述控制器进一步经配置以使得所述设备:
将所述调试记录日志存储在所述存储器系统的高速缓冲存储器、所述存储器装置或这两者处。
11.根据权利要求10所述的设备,其中:
所述高速缓冲存储器包括运行时间调试记录日志;并且
所述存储器装置包括历史调试记录日志。
12.一种设备,其包括:
控制器,其经配置以与存储器系统耦合,其中所述控制器经配置以使得所述设备:
向所述存储器系统发送触发所述存储器系统处的调试记录的第一命令;
向所述存储器系统发送请求来自调试记录日志的信息的至少一部分的第二命令,所述信息的所述部分与响应于所述第一命令的调试记录相关联;并且
从所述存储器系统并且响应于所述第二命令,接收来自所述调试记录日志的所述信息的所述部分。
13.根据权利要求12所述的设备,其中所述控制器进一步经配置以使得所述设备:
将所述第一命令配置成指示所述调试记录的要记录的命令类型、所述调试记录的计数值、所述调试记录的持续时间或其任何组合,其中响应于所述第一命令而存储在所述调试记录日志中的所述信息至少部分地基于所述命令类型、所述计数值、所述持续时间或其任何组合。
14.根据权利要求12所述的设备,其中所述第一命令指示所述调试记录的计数值,并且所述控制器进一步经配置以使得所述设备:
从所述存储器系统接收所述调试记录日志已记录了满足所述计数值的命令数量的指示,其中所述控制器经配置以使得所述设备至少部分地基于所述指示而发送所述第二命令。
15.根据权利要求12所述的设备,其中所述第一命令指示所述调试记录的持续时间,并且所述控制器进一步经配置以使得所述设备:
确定所述持续时间已期满,其中所述控制器经配置以使得所述设备至少部分地基于确定所述持续时间已期满而发送所述第二命令。
16.根据权利要求12所述的设备,其中来自所述调试记录日志的所述信息的所述部分包括命令在所述存储器系统的一或多个组件处的处理时间、与在所述存储器系统处执行第三命令相关联的错误标识符、与所述错误标识符相关联的错误信息、与所述错误标识符相关联的时间戳或其任何组合。
17.根据权利要求12所述的设备,其中,为了发送所述第一命令,所述控制器经配置以使得所述设备:
发送包括调试模式和参数集合的指示的写入缓冲器命令,其中所述调试模式的所述指示经配置以触发所述调试记录并且来自所述调试记录日志的所述信息的所述部分至少部分地基于所述参数集合。
18.根据权利要求12所述的设备,其中,为了发送所述第二命令,所述控制器经配置以使得所述设备:
发送包括调试模式和参数集合的指示的读取缓冲器命令,其中所述调试模式的所述指示指示所述调试记录日志并且所述读取缓冲器命令至少部分地基于所述参数集合而请求来自所述调试记录日志的所述信息的所述部分。
19.一种存储代码的非暂时性计算机可读媒体,所述代码包括指令,所述指令在由电子装置的处理器执行时使得所述电子装置:
从主机系统接收触发存储器系统处的调试记录的第一命令;
响应于所述第一命令而将信息存储在调试记录日志中;
从所述主机系统接收请求存储在所述调试记录日志中的所述信息的至少一部分的第二命令;并且
响应于所述第二命令而向所述主机系统发送所述信息的所述部分。
20.根据权利要求19所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使得所述电子装置:
至少部分地基于所述第一命令而确定所述调试记录的要记录的命令类型、所述调试记录的计数值、所述调试记录的持续时间或其任何组合,其中将所述信息存储在所述调试记录日志中至少部分地基于所述命令类型、所述计数值、所述持续时间或其任何组合。
CN202180009871.8A 2021-05-06 2021-05-06 主机系统与存储器系统之间的调试接口 Pending CN115589785A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/091866 WO2022232980A1 (en) 2021-05-06 2021-05-06 Debug interface between host system and memory system

Publications (1)

Publication Number Publication Date
CN115589785A true CN115589785A (zh) 2023-01-10

Family

ID=83932515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180009871.8A Pending CN115589785A (zh) 2021-05-06 2021-05-06 主机系统与存储器系统之间的调试接口

Country Status (3)

Country Link
US (1) US20240061611A1 (zh)
CN (1) CN115589785A (zh)
WO (1) WO2022232980A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283705B (zh) * 2013-07-08 2018-01-23 国家电网公司 集中器配置调试方法及集中器
KR102229024B1 (ko) * 2014-12-03 2021-03-17 삼성전자주식회사 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템
KR102268699B1 (ko) * 2015-06-29 2021-06-28 삼성전자주식회사 저장 장치의 동작 방법, 호스트 장치의 동작 방법, 그리고 저장 장치 및 호스트 장치를 포함하는 사용자 시스템의 동작 방법
CN109032897A (zh) * 2018-08-01 2018-12-18 浪潮电子信息产业股份有限公司 数据调度方法、主机以及固态硬盘

Also Published As

Publication number Publication date
WO2022232980A1 (en) 2022-11-10
US20240061611A1 (en) 2024-02-22

Similar Documents

Publication Publication Date Title
US11669258B2 (en) Dynamic superblocks
US20220292018A1 (en) Bias control for a memory device
US11899963B2 (en) Suspension during a multi-plane write procedure
US20220404968A1 (en) Read performance techniques for time retention
US11604609B1 (en) Techniques for command sequence adjustment
WO2022193130A1 (en) Managing regions of a memory system
WO2022126578A1 (en) Dynamic interval for memory device to enter low power state
WO2022232980A1 (en) Debug interface between host system and memory system
US11817168B2 (en) Environmental condition tracking for a memory system
US11922069B2 (en) Adaptive block mapping
US11579772B2 (en) Managing page retirement for non-volatile memory
US11837275B2 (en) Techniques for saturating a host interface
US11663062B2 (en) Detecting page fault traffic
US11983112B2 (en) Techniques for enhanced system performance after retention loss
US20230335204A1 (en) Techniques to retire unreliable blocks
US20230205456A1 (en) Performance tuning for a memory device
WO2024040569A1 (en) Data handling during a reflow operation
US20240045612A1 (en) Rating-based mapping of data to memory
US20230297516A1 (en) Circular buffer partitions
WO2022193144A1 (en) Read operations for active regions of memory device
US20240061615A1 (en) Command scheduling for a memory system
US20230205690A1 (en) Techniques for enhanced system performance after retention loss
WO2022174367A1 (en) Improved implicit ordered command handling
CN115705162A (zh) 用于非连续逻辑地址的技术
WO2022120325A1 (en) Queue configuration for host interface

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