Device fault status reporting
By identifying and reporting fault states in the memory system and entering a safe operating mode, the problem of the memory system's inability to report fault states in a timely manner is solved, thereby improving the system's reliability and security.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- MICRON TECHNOLOGY INC
- Filing Date
- 2022-01-20
- Publication Date
- 2026-05-05
AI Technical Summary
In the prior art, the memory system cannot report the fault status to the host system in a timely manner when it is in a fault state, which leads to reduced system efficiency, security threats and potential hacker attack risks, and may also require unnecessary remedial operations.
The memory system generates and transmits fault status messages to the host system by recognizing fault states, and then enters a safe operating mode to prevent further operation, thus ensuring system security and efficiency.
It enables real-time fault reporting of the memory system under fault conditions, avoiding timeout states and unnecessary remedial operations, and improving the reliability and security of the system.
Smart Images

Figure CN114816810B_ABST
Abstract
Description
[0001] Cross-reference of related applications
[0002] This patent application claims priority to U.S. Provisional Patent Application No. 63 / 140,378, filed January 22, 2021, entitled “DEVICE FAULT CONDITION REPORTING”, by Attanasio et al., which has been assigned to its assignee and is expressly incorporated herein by reference in its entirety. Technical Field
[0003] The technical field involves device malfunction status reporting. Background Technology
[0004] Memory devices are widely used to store information in various electronic devices, such as computers, wireless communication devices, cameras, and digital displays. Information is stored by programming memory cells within the memory device into various states. For example, a binary memory cell can be programmed into one of two supported states, typically corresponding to logic 1 or logic 0. In some instances, a single memory cell can support more than two possible states, any of which can be stored by the memory cell. To access the information stored by the memory device, a component can read or sense the state of one or more memory cells within the memory device. To store information, a component can write or program one or more memory cells within the memory device into corresponding states.
[0005] Various types of memory devices exist, including magnetic hard disks, random access memory (RAM), read-only memory (ROM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), ferroelectric RAM (FeRAM), magnetic RAM (MRAM), resistive RAM (RRAM), flash memory, phase-change memory (PCM), 3D crosspoint memory, NOR and NAND memory devices, and others. Memory devices can be volatile or non-volatile. Volatile memory cells (e.g., DRAM cells) may lose their programmed state over time unless they are periodically refreshed by an external power supply. Even without an external power supply, non-volatile memory cells (e.g., NAND memory cells) can maintain their programmed state for extended periods. Summary of the Invention
[0006] A device is described. The device may include a memory device and control circuitry coupled to the memory device. The control circuitry may be configured such that the device: receives a command to perform an operation from a host system; identifies a fault state of the device associated with performing the operation based on receiving the command; transmits a message indicating the fault state based on the identified fault state to the host system; and enters a safe operating mode based on the identified fault state.
[0007] A non-transitory computer-readable medium is described. The non-transitory computer-readable medium may store code including instructions that, when executed by a processor of an electronic device, cause the electronic device to: receive a command to perform the operation from a host system; identify a fault state of a memory system associated with performing the operation based on receiving the command; transmit a message indicating the fault state based on the identified fault state to the host system; and enter a safe operating mode based on the identified fault state.
[0008] A method executed by a memory system is described. The method may include: receiving from a host system a command to cause the memory system to perform an operation; identifying a fault state of the memory system associated with performing the operation based on receiving the command; transmitting a message indicating the fault state based on the identified fault state to the host system; and the memory system entering a safe operating mode based on the identified fault state. Attached Figure Description
[0009] Figure 1 This document describes an example of a system that supports device fault status reporting, based on the examples disclosed herein.
[0010] Figure 2 This document provides an example of a flowchart illustrating a support device fault status report based on the examples disclosed herein.
[0011] Figure 3 This document describes an example of a support device fault status report message based on the examples disclosed herein.
[0012] Figure 4 A block diagram illustrating a memory system that supports device fault status reporting based on the examples disclosed herein.
[0013] Figure 5 The flowchart illustrates one or more methods for reporting a support device fault status based on the examples disclosed herein. Detailed Implementation
[0014] Memory systems can experience fault states associated with the operation of the memory system. When a fault state occurs, the memory system's software or firmware (or hardware) may stop operating as expected (or may be suspended). If the memory system fails to perform its intended function for a period of time, the host system can recognize the memory system's timeout state and request a memory system reset. For example, the fault state (e.g., a message indicating the fault state) may not be communicated to the host system; instead, the host system can perform a system check on the memory system. Once a timeout state occurs, the host system can perform remedial actions (e.g., perform a power cycle on the memory system) to resolve the fault state that is troubling the memory system. Performing system checks and remedial actions without recognizing a fault state can reduce the efficiency of the memory system, thereby reducing the overall performance of the memory system.
[0015] Identifying fault states in a memory system without communicating them to the host system increases the risk of system-wide hacking and other damage. This can have various consequences, including information theft from the system, failures in individual subsystems, increased power consumption, reduced operational efficiency and startup time, and decreased overall memory system performance. For example, the host system may be unresponsive to or unaware of the memory system's status, allowing it to continue operating even after a fault has occurred. Such situations can pose a threat to the security of the memory system.
[0016] Systems, apparatus, and techniques for improving the security of memory systems, thereby improving the overall efficiency and operation of memory systems in identifying and communicating fault states. In some memory systems, efficiency can be improved by providing real-time updates (e.g., messages) to the host system after a fault state is detected, thereby avoiding timeout states, whereby the host system can check for errors in the memory system and further avoid intervention actions on the host platform. The memory system can generate messages indicating the fault state that has occurred, the type of fault state, and other information associated with the fault state.
[0017] After the message is relayed to the host system, the memory system can enter a safe operating mode. Safe operating mode prevents the memory system from performing operations when a fault condition is detected or occurs. In some instances, transmitting messages (e.g., fault reports) to the host system and entering a safe operating mode improves the reliability and security of the memory system, thereby allowing the memory system or other components to operate with improved speed, efficiency, and performance.
[0018] Firstly, in reference Figure 1 The features of this disclosure are described within the context of the system described. (See references...) Figures 2 to 3The features of this disclosure are described within the context of the process flow and messages. These and other features of this disclosure are illustrated in conjunction with reference to [reference needed]. Figures 4 to 5 The equipment diagrams and flowcharts related to the described device fault status report are further explained and described in further detail with reference to the equipment diagrams and flowcharts.
[0019] Figure 1 This document describes an example of a system 100 that supports device fault status reporting, based on the examples disclosed herein. System 100 includes a host system 105 coupled to a memory system 110.
[0020] The memory system 110 may be or include any device or set of devices, wherein the device or set of devices includes at least one memory array. For example, the memory system 110 may be or include a universal flash memory (UFS) device, an embedded multimedia controller (eMMC) device, a flash device, a universal serial bus (USB) flash device, a secure digital card (SD card), a solid-state drive (SSD), a hard disk drive (HDD), a dual in-line memory module (DIMM), a small form factor DIMM (SO-DIMM), or a non-volatile DIMM (NVDIMM), and other possibilities.
[0021] System 100 may be a computing device that includes, for example, a desktop computer, a laptop computer, a web server, a mobile device, a vehicle (e.g., an airplane, drone, train, car or other means of transport), an Internet of Things (IoT) enabled device, an embedded computer (e.g., an embedded computer included in a vehicle, industrial equipment or connected commercial device), or any other computing device that includes memory and processing devices.
[0022] System 100 may include a host system 105 that can be coupled to memory system 110. In some instances, this coupling may include an interface to a host system controller 106, which may be an instance of a control component configured to cause host system 105 to perform various operations according to the examples described herein. Host system 105 may include one or more devices, and in some cases may include a processor chipset and a software stack executed by the processor chipset. For example, host system 105 may include an application configured to communicate with memory system 110 or devices therein. The processor chipset may include one or more cores, one or more caches (e.g., memory local to host system 105 or included in host system 105), a memory controller (e.g., an NVDIMM controller), and a storage protocol controller (e.g., a Peripheral Component Interconnect High Speed (PCIe) controller, a Serial Advanced Technology Attachment (SATA) controller). Host system 105 may use memory system 110, for example, to write data to and read data from memory system 110. Although Figure 1 The diagram shows a memory system 110, but the host system 105 can be coupled to any number of memory systems 110.
[0023] Host system 105 may be coupled to memory system 110 via at least one physical host interface. Host system 105 and memory system 110 may be configured in some cases to communicate via physical host interfaces using associated protocols (e.g., to exchange or otherwise convey control, address, data, and other signals between memory system 110 and host system 105). Examples of physical host interfaces may include (but are not limited to) SATA interfaces, UFS interfaces, eMMC interfaces, PCIe interfaces, USB interfaces, Fibre Channel interfaces, Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Double Data Rate (DDR) interfaces, DIMM interfaces (e.g., DDR-enabled DIMM socket interfaces), Open NAND Flash Interface (ONFI), and Low Power Double Data Rate (LPDDR) interfaces. In some instances, one or more of these interfaces may be included in or otherwise supported between host system controller 106 of host system 105 and memory system controller 115 of memory system 110. In some instances, host system 105 may be coupled to memory system 110 via a corresponding physical host interface for each memory device 130 included in memory system 110 or via a corresponding physical host interface for each type of memory device 130 included in memory system 110 (e.g., host system controller 106 may be coupled to memory system controller 115).
[0024] Memory system 110 may include memory system controller 115 and one or more memory devices 130. Memory device 130 may include one or more memory arrays of any type of memory cells (e.g., non-volatile memory cells, volatile memory cells, or any combination thereof). Although Figure 1 The example shows two memory devices 130-a and 130-b, but the memory system 110 may contain any number of memory devices 130. Furthermore, if the memory system 110 contains more than one memory device 130, then the different memory devices 130 within the memory system 110 may contain the same or different types of memory cells.
[0025] The memory system controller 115 may be coupled to and communicate with the host system 105 (e.g., via a physical host interface) and may be an example of a control component configured to cause the memory system 110 to perform various operations according to the examples described herein. The memory system controller 115 may also be coupled to and communicate with the memory device 130 to perform operations such as reading data, writing data, erasing data, or refreshing data at the memory device 130, and other such operations, which may be collectively referred to as access operations. In some cases, the memory system controller 115 may receive commands from the host system 105 and communicate with one or more memory devices 130 to execute such commands (e.g., at a memory array within one or more memory devices 130). For example, the memory system controller 115 may receive commands or operations from the host system 105 and may translate said commands or operations into instructions or appropriate commands to achieve the desired access to the memory device 130. In some cases, the memory system controller 115 may exchange data with the host system 105 and one or more memory devices 130 (e.g., in response to or otherwise associated with a command from the host system 105). For example, the memory system controller 115 may translate responses associated with the memory device 130 (e.g., data packets or other signals) into corresponding signals for the host system 105.
[0026] The memory system controller 115 can be configured for other operations associated with the memory device 130. For example, the memory system controller 115 can perform or manage operations such as wear leveling, scrap collection, error control such as error detection or error correction, encryption, caching, media management, background refresh, health monitoring, and address translation between logical addresses (e.g., logical block addresses (LBAs)) associated with commands from the host system 105 and physical addresses (e.g., physical block addresses) associated with memory cells within the memory device 130.
[0027] The memory system controller 115 may include hardware such as one or more integrated circuits or discrete components, buffer memories, or combinations thereof. The hardware may include a circuit system having dedicated (e.g., hard-coded) logic that performs the operations attributed herein to the memory system controller 115. The memory system controller 115 may be or include a microcontroller, a dedicated logic circuit system (e.g., a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a digital signal processor (DSP)), or any other suitable processor or processing circuit system.
[0028] The memory system controller 115 may also include local memory 120. In some cases, local memory 120 may include read-only memory (ROM) or other memory that can store operation code (e.g., executable instructions) that can be executed by the memory system controller 115 to perform the functions attributed herein to the memory system controller 115. In some cases, local memory 120 may additionally or alternatively include static random access memory (SRAM) or other memory that can be used by the memory system controller 115 for, for example, internal storage or computation related to the functions attributed herein to the memory system controller 115. Additionally or alternatively, local memory 120 may be used as a cache for the memory system controller 115. For example, data may be stored in local memory 120 when read from or written to memory device 130, and the data may be available in local memory 120 for subsequent retrieval or manipulation (e.g., updating) by the host system 105 according to a caching strategy (e.g., with reduced latency relative to memory device 130).
[0029] although Figure 1 The memory system 110 described herein has been illustrated as including a memory system controller 115, but in some cases, the memory system 110 may not include a memory system controller 115. For example, the memory system 110 may additionally or alternatively rely on an external controller (e.g., implemented by the host system 105) or one or more local controllers 135, which may be internal to the memory device 130 to perform the functions attributed herein to the memory system controller 115. Generally, one or more functions attributed herein to the memory system controller 115 may, in some cases, be performed alternatively by the host system 105, the local controller 135, or any combination thereof. In some cases, the memory device 130, at least partially managed by the memory system controller 115, may be referred to as a managed memory device. An example of a managed memory device is a managed NAND (MNAND) device.
[0030] Memory device 130 may include one or more arrays of non-volatile memory cells. For example, memory device 130 may include NAND (e.g., NAND flash) memory, ROM, phase-change memory (PCM), self-select memory, other chalcogenide-based memories, ferroelectric random access memory (RAM) (FeRAM), magnetic RAM (MRAM), NOR (e.g., NOR flash) memory, spin-transfer torque (STT)-MRAM, conductive bridged RAM (CBRAM), resistive random access memory (RRAM), oxide-based RRAM (OxRAM), electrically erasable programmable ROM (EEPROM), and any combination thereof. Alternatively, memory device 130 may include one or more arrays of volatile memory cells. For example, memory device 130 may include RAM memory cells, such as dynamic RAM (DRAM) memory cells and synchronous DRAM (SDRAM) memory cells.
[0031] In some instances, memory device 130 may include (e.g., on the same die or within the same package) a local controller 135 that can operate on one or more memory cells of the respective memory device 130. The local controller 135 may operate in conjunction with memory system controller 115 or perform one or more functions categorized herein as belonging to memory system controller 115. For example, such as Figure 1 As explained, memory device 130-a may include local controller 135-a, and memory device 130-b may include local controller 135-b.
[0032] In some cases, memory device 130 may be or include a NAND device (e.g., a NAND flash device). Memory device 130 may be or include a memory die 160. For example, in some cases, memory device 130 may be a package including one or more dies 160. Die 160 may, in some instances, be a block of electronic-grade semiconductor diced from a wafer (e.g., a silicon die diced from a silicon wafer). Each die 160 may include one or more planes 165, and each plane 165 may include a set of corresponding blocks 170, wherein each block 170 may include a set of corresponding pages 175, and each page 175 may include a set of memory cells.
[0033] In some cases, the NAND memory device 130 may include memory cells configured to each store one bit of information, which may be referred to as single-level cells (SLC). Alternatively, the NAND memory device 130 may include memory cells configured to each store multiple bits of information, which may be referred to as multi-level cells (MLC) when configured to store two bits of information, as three-level cells (TLC) when configured to store three bits of information, as four-level cells (QLC) when configured to store four bits of information, or more generally as multi-level memory cells. Multi-level memory cells can provide greater storage density than SLC memory cells, but in some cases may involve narrower read or write margins or greater complexity to support the circuitry.
[0034] In some cases, plane 165 may refer to several groups of blocks 170, and in some cases, concurrent operations may occur within different planes 165. For example, concurrent operations can be performed on memory cells within different blocks 170 as long as they are in different planes 165. In some cases, performing concurrent operations in different planes 165 may be subject to one or more constraints, such as performing the same operation on memory cells in different pages 175 that have the same page address within their respective planes 165 (e.g., related to command decoding, page address decoding circuitry, or other circuitry shared across planes 165).
[0035] In some cases, block 170 may contain memory cells organized in rows (page 175) and columns (e.g., strings, not shown). For example, memory cells in the same page 175 may share a common word line (e.g., coupled to a common word line), and memory cells in the same string may share a common digital line (which may alternatively be called a bit line) (e.g., coupled to a common digital line).
[0036] For some NAND architectures, memory cells can be read and programmed (e.g., written) at a first granularity level (e.g., at the page granularity level) but can be erased at a second granularity level (e.g., at the block granularity level). That is, page 175 can be the smallest unit of memory (e.g., a group of memory cells) that can be independently programmed or read (e.g., partially concurrently programmed or read as a single programming or read operation), and block 170 can be the smallest unit of memory (e.g., a group of memory cells) that can be independently erased (e.g., partially concurrently erased as a single erase operation). Furthermore, in some cases, NAND memory cells can be erased before they can be rewritten with new data. Therefore, for example, a used page 175 may not be updated in some cases until the entire block 170 containing page 175 is erased.
[0037] System 100 may contain any number of non-transitory computer-readable media supporting device fault status reporting. For example, host system 105, memory system controller 115, or memory device 130 may contain or otherwise access one or more non-transitory computer-readable media storing instructions (e.g., firmware) for performing the functions attributable herein to host system 105, memory system controller 115, or memory device 130. For example, such instructions, when executed by host system 105 (e.g., by host system controller 106), memory system controller 115, or memory device 130 (e.g., by local controller 135), may cause host system 105, memory system controller 115, or memory device 130 to perform one or more associated functions described herein.
[0038] In some cases, memory system 110 may utilize memory system controller 115 to provide a managed memory system, which may include one or more memory arrays and associated circuitry, for example, in combination with a local (e.g., on-die or in-package) controller (e.g., local controller 135). An example of a managed memory system is a managed NAND (MNAND) system.
[0039] In some instances, host system 105 may transmit commands to perform operations to memory system 110. Memory system 110 may receive the commands and identify a fault state associated with the operation. In some cases, memory system 110 may generate a message indicating a fault state. The message may also include a code associated with the fault state, signaling to host system 105 that a fault state has occurred. For example, memory system 110 may detect an internal fault state and provide detailed information (e.g., included in a message) to host system 105. In such cases, memory system 110 may transmit the message to host system 105. After transmitting the message, memory system 110 may enter a safe operating mode based on the identified fault state.
[0040] Figure 2 This document illustrates an example of a flowchart 200 supporting device fault status reporting based on the examples disclosed herein. Flowchart 200 may include a host system 205 and a memory system 210, which may be used as a reference. Figure 1 Corresponding examples of the host system 105 and memory system 110 described herein. Alternative examples may be implemented, in which some steps are performed in a different order or not at all. Some steps may also include additional features not mentioned below. Flowchart 200 illustrates the technique by which the host system 205 communicates a fault status to the memory system 210.
[0041] Aspects of flowchart 200 may be implemented by a controller and other components. Alternatively, aspects of flowchart 200 may be implemented as instructions stored in memory (e.g., firmware stored in memory coupled to memory system 210). For example, when executed by a controller (e.g., memory system controller 115), the instructions may cause the controller to perform the operations of flowchart 200.
[0042] One challenge with memory systems is when they become unresponsive to the host system. When a memory system becomes unresponsive, the host system can perform a timeout operation (e.g., a reset operation or power cycle) to reset the memory system and continue normal operation. A memory system can become unresponsive for a variety of reasons, including firmware jamming, hardware malfunctions, critical operating conditions of the memory system, fatal errors in the memory system, or a combination of these.
[0043] For certain fault states, the memory system can be configured to communicate information about the fault to the host system. In such instances, remedial actions or changes to other operations can be implemented to resolve the problem in the memory system or help the memory system avoid similar future problems. However, in some instances, a set of fault states may exist for which the memory system may not be configured to communicate information to the host system (e.g., firmware stuck, hardware malfunction, critical operating conditions of the memory system, or fatal errors in the memory system, or combinations thereof). Techniques are provided for communicating information about certain fault states from the memory system to the host system. In some instances, messages (e.g., UPIU messages) can be configured to contain indications that a fault state has occurred and have information about the fault state.
[0044] At 215, commands to perform operations can be transmitted. For example, host system 205 can transmit commands to memory system 210 to perform operations. Operations can be instances of write operations, read operations, reset operations, erase operations, refresh operations, or combinations thereof. In such cases, commands can be instances of write commands, read commands, cache commands, reset commands, erase commands, refresh operations, or combinations thereof.
[0045] In some cases, at 220, a notification may be transmitted. For example, host system 205 may transmit a notification to memory system 210. Before transmitting the notification, memory system 210 may deallocate buffer resources associated with data from host system 205. Then, host system 205 may transmit the notification associated with the buffer resources to memory system 210. In such cases, memory system 210 may receive the notification in response to deallocating the buffer resources.
[0046] At 225, a fault state can be identified. For example, memory system 210 can identify a fault state associated with an operation performed based on (e.g., in response to) a received command. The fault state can be an instance of a hardware anomaly associated with memory system 210, a firmware stuck state of memory system 210, operating conditions of memory system 210 meeting a threshold, an error associated with memory system 210, or a combination thereof. For example, the operating conditions of memory system 210 can be higher or lower than a threshold. In some cases, the fault state can be an instance of capacity operation of memory system 210, resource limitation of memory system 210, background operation, temperature detection operation, refresh operation, or a combination thereof. For example, a temperature detection operation can detect a temperature higher or lower than a threshold.
[0047] The memory system 210 can detect a fault state and, in response to identifying the fault state, identify information associated with the fault state. The information associated with the fault state may include the time the fault state occurred, the duration of the fault state, the temperature of the memory system 210, or a combination thereof. In such cases, the memory system 210 can detect the fault state and detect additional information associated with the fault state (i.e., temperature, time, duration) to transmit the additional information to the host system 205.
[0048] In some cases, memory system 210 may store the fault state and associated information in shared memory (e.g., SRAM) associated with memory system 210 in response to identifying the fault state. In some instances, the fault state and associated information may be stored in a panic log that can be used for offline debugging operations.
[0049] At 230, a timeout state can be identified. In some instances, host system 205 may identify a timeout state (e.g., a timeout timer expires) in response to memory system 210 failing to perform at least one expected action for a duration. For example, host system 205 may not receive a message (e.g., a response) from memory system 210 for a duration, and host system 205 may determine that memory system 210 may be problematic or have experienced a fault state. In some cases, a timeout state may occur independently of whether the memory system identifies a fault state. In some instances, host system 205 may maintain a timeout timer that can be reset after one or more operations have occurred. Therefore, during normal operation of the memory system, the timeout timer may not expire because it is reset fairly frequently. If the timeout timer fails to be reset, then after the timer expires (e.g., a timeout state), host system 105 may issue a command to reset or cyclically power the memory system 210. In some instances, memory system 210 may identify a timeout state in response to identifying a fault state.
[0050] After a timeout occurs, host system 205 may perform remedial measures (e.g., perform a power cycle on memory system 210) to handle the state that hinders the performance of memory system 210. However, host system 205 may not be aware of the state that caused the timeout. In some cases, the fault state may not be communicated to host system 205, and host system 205 may instead perform a timeout (e.g., a power cycle) to refresh memory system 210 and perform a recovery procedure on memory system 210.
[0051] At 235, a message may be generated. For example, memory system 210 may generate a message indicating a fault state in response to recognizing a fault state. In some cases, memory system 210 may generate a code associated with the fault state to signal to host system 205 that a fault state has occurred. The message may include a field including the code and one or more fields including one or more bits indicating information associated with the fault state (e.g., general fault information and specific fault information).
[0052] At 240, messages can be transmitted. For example, memory system 210 can transmit a message indicating a fault status. In such cases, host system 205 can receive the message indicating a fault status from memory system 210. In some cases, memory system 210 can transmit a message in response to receiving a command. In other instances, memory system 210 can avoid transmitting a message in response to receiving a vendor command.
[0053] At 245, a safe operating mode can be entered. In some instances, the memory system 210 can enter a safe operating mode in response to transmitting a message and identifying a fault state. In some instances, the memory system 210 can enter a safe operating mode before transmitting a message and identifying a fault state. A safe operating mode can be an instance where the memory system 210 can avoid performing operations. In such cases, the operational capabilities of the memory system 210 can be limited. For example, the memory system 210 can avoid performing operations in response to entering a safe operating mode. For example, the firmware of the memory system 210 can enter a safe operating mode after a message indicating a fault state can be transmitted to the host system 205.
[0054] At 250, the safe mode can be exited. For example, the memory system 210 can exit the safe operating mode after a certain duration has expired. In some cases, the memory system 210 can exit the safe mode in response to the memory system 210 entering a power cycle. For example, the host system 205 can remove the power supply from the memory system 210, thereby initiating a power cycle within the memory system 210.
[0055] At 255, a second command may be transmitted. For example, host system 205 may transmit a second command system that causes memory system 210 to perform a second operation. In such a case, memory system 210 may receive the second command in response to memory system 210 exiting a secure operating mode. The second command system may be an instance of a write command, a read command, a cache command, a reset command, an erase command, a refresh operation, or a combination thereof.
[0056] By generating and transmitting messages indicating a fault state in real time (e.g., when a fault state occurs), the memory system 210 can prevent the host system 205 from initiating a timeout state and performing intervention actions. In some cases, providing real-time fault state reporting can reduce the need for testing firmware versions to detect fault states and allow the host system 205's safe state (e.g., a safe operating mode) to communicate with the memory system 210 when a fault state occurs. In such cases, transmitting messages to the host system 205 can accelerate fault analysis to identify the cause of the fault state, thereby allowing the memory system 210 to quickly handle the fault state and prevent future fault states from occurring.
[0057] Figure 3 This describes an example of message 300 supporting a device fault status report, based on the examples disclosed herein. Message 300 may be used as a reference. Figure 1 and 2 An example of the described message. The message may include header 305, delivery count 310, fault information 315, and specific fault information 320. The header may include code 325, which may be used as a reference. Figure 1 and 2 An example of the code described.
[0058] Message 300 may contain information indicating a command received from the host system and the device-level state resulting from the execution of the command. The memory system may transmit message 300 to the host system after the operation is complete. In some cases, message 300 may indicate an identified fault state. In such cases, the memory system may modify header 305 (e.g., code 325), fault information 315, and specific fault information 320 to convey the fault state to the host system. In some cases, message 300 may be an instance of a UFS Protocol Information Unit (UPIU). In some cases, message 300 may be an instance of a response UPIU sent from the memory system to the host system.
[0059] Header 305 may contain the first twelve bytes of message 300. Each numbered box in message 300 represents an information byte containing multiple bits. In some instances, header 305 may contain transaction type, flags, memory system identifier (ID), command setting type, response, status, task label, memory system information, and data segment length. The status may be contained in the seventeenth byte of message 300 and may be an instance of an operation code (OPCODE) reserved for a fault status. In such cases, the status may be an instance of code 325. Code 325 may be associated with a fault status and signal the host system that a fault status has occurred. In such cases, the memory system may generate code 325 indicating a fault status has occurred.
[0060] Message 300 may include a transfer count 310. The transfer count 310 may indicate the number of bytes that may not have been transferred from / to the memory system. Message 300 may also include fault information 315. Fault information 315 may include information bits associated with a fault state. Fault information 315 may include bytes 16 through 23 of message 300. For example, fault information 315 may indicate the type of fault state that occurred, the ID of the fault state, or both. Byte 16 included in fault information 315 may indicate the ID of a stuck state of the memory system firmware, and byte 17 included in fault information 315 may indicate the ID of a hardware anomaly associated with the memory system. Byte 18 included in fault information 315 may indicate the ID of an operating condition (e.g., a critical operating condition) of the memory system, and byte 19 included in fault information 315 may indicate the ID of an error associated with the memory system. Bytes 20 through 23 may indicate the ID of an assertion. In some cases, fault information 315 may indicate a memory system capacity operation, memory system resource limitation, background operation, temperature detection operation, refresh operation, or a combination thereof.
[0061] Message 300 may contain specific fault information 320. Specific fault information 320 may contain information bits associated with the fault state. In some cases, specific fault information 320 may contain bytes 24 to 31 of message 300. In some cases, specific fault information 320 may contain bytes 24 to N of message 300, where N is greater than 31. Specific fault information 320 may contain the time the fault state occurred, the duration of the fault state, the temperature of the memory system, or a combination thereof. The memory system may identify the fault state and generate message 300 in response to identifying the fault state. In such cases, the memory system may generate code 325 and fault information 315. In response to generating code 325 and fault information 315, the memory system may generate specific fault information 320 based on the information associated with the identified fault state.
[0062] Specific fault information 320 may be associated with a specific fault state of the memory system. For example, byte 16 may indicate a firmware stuck state, and specific fault information 320 may contain data associated with the firmware. The memory system may identify a hardware malfunction in byte 17, and specific fault information 320 may contain a hardware status register dump. The memory system may identify an operating condition that is above or below a threshold in byte 18, and specific fault information 320 may contain information associated with temperature, power supply, or both. The memory system may identify an error associated with the memory system in byte 19, and specific fault information 320 may contain a central processing unit (CPU) dump.
[0063] In one instance, the fault state could be a hardware anomaly. In such a case, the host system can issue a write command. The front end of the memory system can allocate buffer resources for data from the host system. The data can then be transferred from the memory system to the host system. The firmware can deallocate the buffer resources before transmitting the message to the host system. In such a case, the memory system can recognize the fault state (e.g., a hardware anomaly). For example, the firmware receives an anomaly notification indicating a hardware anomaly, and the memory system generates message 300 (e.g., containing code 325, fault information 315, and specific fault information 320). Message 300 may indicate code 325, a buffer resource version error ID in byte 17 of fault information 315, and specific fault information 320. Specific fault information 320 may include an indication of an invalid buffer ID, the last allocated buffer chain, the interrupt status register of the hardware peripheral, and information associated with the firmware. The memory system can transmit message 300 to the host system in response to generating message 300.
[0064] In another instance, the fault state could be a firmware stuck state. In such a case, the host system could issue a synchronize cache command. The front end of the memory system could transmit a programming request to the back end for cache refresh. However, the firmware could wait until the cache refresh is complete; the back end could experience a stuck state. In such a case, the memory system could recognize the fault state (e.g., a stuck state). The hardware could detect (e.g., recognize) a timeout state and notify the firmware of the stuck state. For example, the firmware receives a notification indicating a stuck state, and the memory system generates message 300 (e.g., containing code 325, fault information 315, and specific fault information 320). Message 300 could indicate code 325, the programming operation timeout ID in byte 16 of fault information 315, and specific fault information 320. Specific fault information 320 could contain information associated with the front end and back end modules, shared memory (e.g., SRAM), and hardware register dumps. The memory system could transmit message 300 to the host system based on the generated message 300.
[0065] Figure 4 A block diagram 400 illustrates a memory system 420 supporting device fault status reporting according to an example disclosed herein. The memory system 420 may be used as a reference. Figures 1 to 3 Examples of aspects of the described memory system. Memory system 420 or its various components may be examples of means for performing various aspects of the device fault states described herein. For example, memory system 420 may include command receiver 425, fault state component 430, message component 435, safe mode arithmetic unit 440, or any combination thereof. Each of these components may communicate directly or indirectly with each other (e.g., via one or more buses).
[0066] Command receiver 425 may be configured or otherwise supported to include components for receiving commands from the host system to cause the memory system to perform operations. Fault status component 430 may be configured or otherwise supported to include components for identifying fault statuses of the memory system associated at least partially with the execution of operations based on received commands. Message component 435 may be configured or otherwise supported to include components for transmitting messages indicating fault status, at least partially based on the identified fault status, to the host system. Safe mode arithmetic unit 440 may be configured or otherwise supported to include components for the memory system to enter a safe operating mode, at least partially based on the identified fault status.
[0067] In some instances, message component 435 may be configured or otherwise supported for generating a message that indicates a fault state based at least in part on identifying the fault state, wherein the transmission of the message is at least in part based on the generation of the message.
[0068] In some instances, message component 435 may be configured or otherwise supported to generate code associated with a fault state, at least in part based on identifying the fault state, to signal to the host system that a fault state has occurred, wherein the message contains the code.
[0069] In some instances, the fault status component 430 may be configured or otherwise supported for identifying information associated with a fault status, at least in part, based on the identification of the fault status, wherein the message includes one or more bits indicating the information associated with the fault status.
[0070] In some instances, the information associated with a fault state includes the time when the fault state occurred, the duration of the fault state, the temperature of the memory system, or a combination thereof.
[0071] In some instances, the fault status component 430 may be configured or otherwise support components for identifying timeout states based at least in part on the identified fault status, wherein the transmission of messages is based at least in part on the identified timeout state.
[0072] In some instances, the fault status component 430 may be configured or otherwise supported to include means for deallocating buffer resources associated with data from the host system. In some instances, the fault status component 430 may be configured or otherwise supported to include means for receiving notification at least in part based on deallocating buffer resources, wherein identifying a fault status is at least in part based on receiving a notification.
[0073] In some instances, the fault status component 430 may be configured or otherwise supported to store fault status and information associated with fault status in a shared memory associated with a memory system, at least in part based on the identification of the fault status.
[0074] In some instances, the safe mode arithmetic unit 440 may be configured or otherwise supported to support components for exiting the safe operating mode after a duration has expired. In some instances, the command receiver 425 may be configured or otherwise supported to support components for receiving, at least in part, a second command system from the host system to perform a second operation based on exiting the safe operating mode.
[0075] In some instances, the safe mode operator 440 may be configured or otherwise support components for avoiding operations at least in part based on entering a safe operating mode.
[0076] In some instances, the command is a write command, a cache command, a read command, or a combination thereof.
[0077] In some instances, fault states include hardware anomalies associated with the device, firmware stuck status of the device, operating conditions that meet thresholds of the device, capacity operations of the device, resource limitations of the device, background operations, temperature detection operations, refresh operations, or combinations thereof.
[0078] Figure 5 The flowchart illustrates a method 500 for supporting device fault status reporting based on examples disclosed herein. The operation of method 500 can be implemented by a memory system or its components described herein. For example, the operation of method 500 can be implemented by reference to... Figures 1 to 4 The described memory system performs the functions described. In some instances, the memory system may execute a set of instructions to control the functional elements of the device to perform the described functions. Alternatively, the memory system may use dedicated hardware to perform aspects of the described functions.
[0079] Aspects of method 500 may be implemented by a controller and other components. Alternatively, aspects of method 500 may be implemented as instructions stored in memory (e.g., firmware stored in memory coupled to memory system 110). For example, instructions, when executed by a controller (e.g., memory system controller 115), may cause the controller to perform the operation of method 500.
[0080] At 505, a command may be received. The method may include receiving a command from the host system that causes the memory system to perform an operation. Operation 505 may be performed according to the examples disclosed herein. In some instances, aspects of operation 505 may be provided by reference. Figure 4 The command receiver 425 as described is executed.
[0081] At 510, a fault state can be identified. The method may include identifying a fault state of the memory system associated with at least part of the execution of an operation based on a received command. Operation 510 may be performed according to the examples disclosed herein. In some instances, aspects of operation 510 may be derived from references... Figure 4 The described fault detection component 430 is executed.
[0082] In step 515, a message can be transmitted. The method may include transmitting a message indicating a fault state, at least in part based on an identification fault state, to the host system. Operation 515 can be performed according to the examples disclosed herein. In some instances, aspects of operation 515 may be derived from references... Figure 4 The described message component 435 is executed.
[0083] At 520, a safe operating mode can be entered. The method may include the memory system entering a safe operating mode based at least in part on an identified fault state. Operation 520 can be performed according to the examples disclosed herein. In some instances, aspects of operation 520 may be derived from references... Figure 4The described safe mode arithmetic unit 440 is executed.
[0084] In some instances, the device described herein may perform a method or methods, such as method 500. The device may include features, circuitry, logic, components, or instructions (e.g., a non-transitory computer-readable medium storing instructions executable by a processor) for: receiving a command from a host system to cause a memory system to perform an operation; identifying a fault state of the memory system associated with performing the operation at least in part based on the received command; transmitting a message indicating the fault state to the host system at least in part based on the identified fault state; and the memory system entering a safe operating mode at least in part based on the identified fault state.
[0085] Some examples of the method 500 and apparatus described herein may further include operations, features, circuit systems, logic, components, or instructions for generating messages that indicate a fault state based at least in part on identifying a fault state, wherein the transmission of the message may be at least in part based on the generation of the message.
[0086] Some examples of the method 500 and apparatus described herein may further include operations, features, circuitry, logic, components, or instructions for generating code associated with a fault state, at least partially based on identifying the fault state, to signal to a host system that a fault state has occurred, wherein the message contains the code.
[0087] Some examples of the methods 500 and devices described herein may further include operations, features, circuit systems, logic, components, or instructions for identifying information associated with a fault state, at least in part, based on the identification of the fault state, wherein the message includes one or more bits indicating information associated with the fault state.
[0088] In some instances of the method 500 and device described herein, the information associated with the fault state includes the time when the fault state occurred, the duration of the fault state, the temperature of the memory system, or a combination thereof.
[0089] Some examples of the method 500 and device described herein may further include operations, features, circuit systems, logic, components, or instructions for identifying timeout states at least in part based on identifying fault states, wherein the transmission of messages may be at least in part based on identifying timeout states.
[0090] Some examples of the method 500 and apparatus described herein may further include operations, features, circuit systems, logic, components, or instructions for: releasing buffer resources associated with data from a host system; and receiving a notification at least in part based on the release of the buffer resources, wherein identifying a fault state may be at least in part based on receiving the notification.
[0091] Some examples of the methods 500 and devices described herein may further include operations, features, circuit systems, logic, components, or instructions for storing, at least in part, fault states and information associated with fault states in a shared memory associated with a memory system, based on the identification of fault states.
[0092] Some examples of the method 500 and device described herein may further include operations, features, circuit systems, logic, components, or instructions for exiting a safe operating mode after a duration has expired; and receiving a second command system from the host system, at least in part, based on the exit from the safe operating mode, to perform a second operation.
[0093] Some examples of the methods 500 and devices described herein may further include operations, features, circuit systems, logic, components, or instructions for avoiding the execution of operations, at least in part, based on entering a safe operating mode.
[0094] In some instances of the method 500 and device described herein, the command may be a write command, a cache command, or a combination thereof.
[0095] In some instances of the method 500 and device described herein, fault states include hardware anomalies associated with the device, firmware stuck state of the device, operating conditions of the device that meet thresholds, capacity operation of the device, resource limitations of the device, background operation, temperature detection operation, refresh operation, or a combination thereof.
[0096] It should be noted that the methods described above describe possible implementations, and the operations and steps can be rearranged or otherwise modified, and other implementations are possible. Furthermore, portions from two or more of the methods can be combined.
[0097] The information and signals described herein can be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips referenced throughout the above description can be represented by voltage, current, electromagnetic waves, magnetic fields or magnetic particles, light fields or optical particles, or any combination thereof. Some diagrams may illustrate a signal as a single signal; however, a signal can represent a signal bus, where the bus can have multiple bit widths.
[0098] The term "coupling" refers to a shift from an open-circuit relationship between components (where signals cannot currently travel between components via conductive paths) to a closed-circuit relationship between components (where signals can travel between components via conductive paths). If, for example, a component of a controller couples other components together, then the component triggers a change that allows signals to flow between other components via conductive paths that were previously not permitted.
[0099] The terms “if,” “when,” “based on,” or “at least partially based on” are used interchangeably. In some instances, the terms “if,” “when,” “based on,” or “at least partially based on” may be used to describe the connection between conditional actions, conditional procedures, or parts of a procedure.
[0100] The term "in response to" may refer to a condition or action that occurs at least partially (if not entirely) due to a preceding condition or action. For example, a first condition or action may be performed, and a second condition or action may occur at least partially due to the occurrence of a preceding condition or action (whether following one or more other intermediate conditions or actions that occur directly after the first condition or action or thereafter).
[0101] Additionally, the terms "directly responding to" or "indirectly responding to" may refer to a condition or action that is a direct result of a preceding condition or action. In some instances, a first condition or action may be performed, and a second condition or action may occur directly as a result of the preceding condition or action, regardless of whether other conditions or actions occur. In some instances, a first condition or action may be performed, and a second condition or action may occur directly as a result of the preceding condition or action, such that no other intermediate conditions or actions occur between the preceding condition or action and the second condition or action, or a limited number of one or more intermediate steps or actions occur between the preceding condition or action and the second condition or action. Unless otherwise specified, any condition or action described herein as being performed "based on," "at least partially based on," or "in response to" a certain other step, action, event, or condition may additionally or alternatively (e.g., in alternative instances) be performed "directly responding to" or "directly responding to" this other condition or action.
[0102] The devices discussed herein, including memory arrays, can be formed on a semiconductor substrate, such as silicon, germanium, silicon-germanium alloys, gallium arsenide, gallium nitride, etc. In some cases, the substrate is a semiconductor wafer. In other instances, the substrate can be a silicon-on-insulator (SOI) substrate, such as silicon-on-glass (SOG) or silicon-on-sapphire (SOP), or an epitaxial layer of semiconductor material on another substrate. The conductivity of the substrate or subregions of the substrate can be controlled by doping with various chemical species, including (but not limited to) phosphorus, boron, or arsenic. Doping can be performed during the initial formation or growth of the substrate by ion implantation or by any other doping method.
[0103] The switching components or transistors discussed herein may represent field-effect transistors (FETs) and include a three-terminal device comprising a source, drain, and gate. The terminals may be connected to other electronic components via a conductive material (e.g., a metal). The source and drain may be conductive and may include heavily doped (e.g., degenerate) semiconductor regions. The source and drain may be separated by lightly doped semiconductor regions or a channel. If the channel is n-type (i.e., the majority carriers are electrons), then the FET may be called an n-type FET. If the channel is p-type (i.e., the majority carriers are holes), then the FET may be called a p-type FET. The channel may be covered by an insulating gate oxide. The channel conductivity can be controlled by applying a voltage to the gate. For example, applying a positive or negative voltage to an n-type FET or a p-type FET, respectively, can cause the channel to become conductive. If a voltage greater than or equal to the transistor's threshold voltage is applied to the transistor's gate, then the transistor may be "on" or "activated." If a voltage less than the transistor's threshold voltage is applied to the transistor's gate, then the transistor may be "off" or "deactivated."
[0104] The descriptions presented herein, together with the accompanying drawings, illustrate exemplary configurations and do not represent all instances that may be implemented or that are within the scope of the claims. The term "exemplary" as used herein means "serving as an example, illustration, or description," and not "preferred" or "superior to other instances." The detailed description includes specific details used to provide an understanding of the described techniques. However, these techniques may be practiced without these specific details. In some instances, well-known structures and apparatuses are shown in block diagram form to avoid obscuring the concepts of the described instances.
[0105] In the accompanying drawings, similar components or features may have the same reference numerals. Furthermore, various components of the same type can be distinguished by adding a hyphen after the reference numeral and a second numeral for differentiation among similar components. If only the first reference numeral is used in the specification, the description applies to any of the similar components having the same first reference numeral, regardless of the second reference numeral.
[0106] The functions described herein can be implemented in hardware, software executed by a processor, firmware, or any combination thereof. If implemented in software executed by a processor, the functions can be stored on or transmitted via a computer-readable medium as one or more instructions or code. Other examples and embodiments are within the scope of this disclosure and the appended claims. For example, due to the nature of software, the functions described above can be implemented using software executed by a processor, hardware, firmware, hardwiring, or any combination thereof. Features implementing the functions can also be physically located at various locations, including distribution such that portions of the functions are implemented at different physical locations.
[0107] For example, the various illustrative blocks and components described in connection with the disclosure herein may be implemented or performed using a general-purpose processor, DSP, ASIC, FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware component, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in alternative examples, the processor may be any processor, controller, microcontroller, or state machine. The processor may be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors incorporating a DSP core, or any other such configuration).
[0108] As used herein, the word "or" in a list of items (e.g., a list of items beginning with a phrase such as "at least one of..." or "one or more of...") encompasses the contents of the claims, indicating a list such that, for example, a list of at least one of A, B, or C means A or B or C or AB or AC or BC or ABC (i.e., A and B and C). Furthermore, as used herein, the phrase "based on" should not be construed as a reference to a set of closing conditions. For example, an exemplary step described as "based on condition A" may be based on both condition A and condition B without departing from the scope of this disclosure. In other words, as used herein, the phrase "based on" should be interpreted in the same manner as the phrase "at least partially based on".
[0109] Computer-readable media includes both non-transitory computer storage media and communication media, with communication media encompassing any media that facilitates the transfer of a computer program from one place to another. Non-transitory storage media can be any available media accessible by a general-purpose or special-purpose computer. By way of example, and not limitation, non-transitory computer-readable media may include RAM, ROM, electrically erasable programmable read-only memory (EEPROM), optical disc (CD) ROM or other optical disc storage devices, magnetic disk storage devices or other magnetic storage devices, or any other non-transitory media that can be used to carry or store desired program code components in the form of instructions or data structures and is accessible by a general-purpose or special-purpose computer or a general-purpose or special-purpose processor. Furthermore, any connection is appropriately referred to as computer-readable media. For example, if software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technology (such as infrared, radio, and microwave), then the definition of media includes coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technology (such as infrared, radio, and microwave). As used herein, disks and optical discs include CDs, laser discs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs, wherein disks typically reproduce data magnetically, while optical discs reproduce data optically using lasers. Combinations of the above are also included within the scope of computer-readable media.
[0110] The description herein is provided to enable those skilled in the art to make or use this disclosure. Those skilled in the art will understand that various modifications to this disclosure are possible, and that the general principles defined herein can be applied to other variations without departing from the scope of this disclosure. Therefore, this disclosure is not limited to the examples and designs described herein, but should be accorded the broadest scope consistent with the principles and novel features disclosed herein.
Claims
1. An apparatus comprising: Memory devices; as well as Control circuitry, coupled to and configured to cause the device to: Receive commands from the host system to perform operations; Release the buffer resources associated with data from the host system; At least in part, notifications are received based on the deallocation of the buffer resources. The fault state of the device associated with performing the operation is identified at least in part based on receiving the command and receiving the notification; A message indicating the fault state, at least in part based on the identification of the fault state, is transmitted from the memory device to the host system, wherein the message includes an indication of the command; and The system enters a safe operating mode based at least in part on the identification of the fault state.
2. The device of claim 1, wherein the control circuitry is further configured such that the device: The message is generated at least in part based on the identification of the fault state indicating the fault state, and the transmission of the message is at least in part based on the generation of the message.
3. The device of claim 1, wherein the control circuitry is further configured such that the device: Generate code associated with the fault state, at least in part based on identifying the fault state, to signal to the host system that the fault state has occurred, wherein the message includes the code.
4. The device of claim 1, wherein the control circuitry is further configured such that the device: At least in part, the identification is based on information associated with the fault state, wherein the information includes one or more bits indicating the information associated with the fault state.
5. The device of claim 4, wherein the information associated with the fault state includes the time when the fault state occurred, the duration of the fault state, the temperature of the device, or a combination thereof.
6. The device of claim 1, wherein the control circuitry is further configured such that the device: The timeout state is identified at least in part based on the identification of the fault state, wherein the transmission of the message is at least in part based on the identification of the timeout state.
7. The device of claim 1, wherein the control circuitry is further configured such that the device: The fault state and related information are stored in a shared memory associated with the device, at least in part based on the identification of the fault state.
8. The device of claim 1, wherein the control circuitry is further configured such that the device: Exit the safe operating mode after a certain duration expires; and At least in part, the host system receives a second command to perform a second operation based on exiting the secure operating mode.
9. The device of claim 1, wherein the control circuitry is further configured such that the device: The operation is avoided at least in part by entering the safe operating mode.
10. The device of claim 1, wherein the command is a write command, a cache command, a read command, or a combination thereof.
11. The device according to claim 1, wherein the fault state includes a hardware anomaly associated with the device, a firmware stuck state of the device, an operating condition of the device that meets a threshold, a capacity operation of the device, a resource limitation of the device, a background operation, a temperature detection operation, a refresh operation, or a combination thereof.
12. A non-transitory computer-readable medium storing code including instructions that, when executed by a processor of an electronic device, cause the electronic device to perform the following operations: Receive commands from the host system to perform operations; Release the buffer resources associated with data from the host system; At least in part, notifications are received based on the deallocation of the buffer resources. The fault state of the device associated with performing the operation is identified at least in part based on receiving the command and receiving the notification; A message indicating the fault state, at least in part based on the identification of the fault state, is transmitted from the memory system to the host system, wherein the message includes an indication of the command; and The system enters a safe operating mode based at least in part on the identification of the fault state.
13. The non-transitory computer-readable medium of claim 12, wherein the instructions, when executed by the processor of the electronic device, further cause the electronic device to: The message is generated at least in part based on the identification of the fault state indicating the fault state, and the transmission of the message is at least in part based on the generation of the message.
14. The non-transitory computer-readable medium of claim 12, wherein the instructions, when executed by the processor of the electronic device, further cause the electronic device to: Generate code associated with the fault state, at least in part based on identifying the fault state, to signal to the host system that the fault state has occurred, wherein the message includes the code.
15. The non-transitory computer-readable medium of claim 12, wherein the instructions, when executed by the processor of the electronic device, further cause the electronic device to: At least in part, the identification is based on information associated with the fault state, wherein the information includes one or more bits indicating the information associated with the fault state.
16. The non-transitory computer-readable medium of claim 15, wherein the information associated with the fault state includes the time when the fault state occurred, the duration of the fault state, the temperature of the memory system, or a combination thereof.
17. The non-transitory computer-readable medium of claim 12, wherein the instructions, when executed by the processor of the electronic device, further cause the electronic device to: The timeout state is identified at least in part based on the identification of the fault state, wherein the transmission of the message is at least in part based on the identification of the timeout state.
18. A method performed at a memory system, comprising: Receive commands from the host system to instruct the memory system to perform operations; Release the buffer resources associated with data from the host system; At least in part, notifications are received based on the deallocation of the buffer resources. The memory system identifies the fault state of the memory system associated with the operation based at least in part on receiving the command and receiving the notification; A message indicating the fault state, at least in part based on the identification of the fault state, is transmitted from the memory system to the host system, wherein the message includes an indication of the command; and The memory system enters a safe operating mode based at least in part on the recognition of the fault state.
19. The method of claim 18, further comprising: The message is generated at least in part based on the identification of the fault state indicating the fault state, and the transmission of the message is at least in part based on the generation of the message.
20. The method of claim 18, further comprising: Generate code associated with the fault state, at least in part based on identifying the fault state, to signal to the host system that the fault state has occurred, wherein the message includes the code.
21. The method of claim 18, further comprising: At least in part, the identification is based on information associated with the fault state, wherein the information includes one or more bits indicating the information associated with the fault state.
22. The method of claim 21, wherein the information associated with the fault state includes the time when the fault state occurred, the duration of the fault state, the temperature of the memory system, or a combination thereof.
23. The method of claim 18, further comprising: The timeout state is identified at least in part based on the identification of the fault state, wherein the transmission of the message is at least in part based on the identification of the timeout state.
Citation Information
Patent Citations
Methods And Systems For Detecting And Capturing Host System Hang Events
US20190278651A1
Row hammer protection for a memory device
US20200081631A1