System and method for queuing device management configuration requests
By providing device management command queue instructions and execution order based on command type in the memory system, the problem of long delay in the configuration of the memory system in the prior art is solved, and more efficient device management command execution is achieved.
Patent Information
- Application Number
- CN202010504368.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-03-20
- Filing Date
- 2020-06-05
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2040-06-05
AI Technical Summary
When configuring multiple attributes, existing memory systems need to complete device management commands one by one, resulting in a long configuration delay, especially when multiple attributes need to be configured.
By providing a device management command queue indication, the host and the controller may queue and execute multiple device management commands simultaneously, determine the execution order according to the command type, and sort and execute in the DME-Q of the controller.
This method can continue the next command without waiting for each device to manage the command status, thereby reducing configuration delay and improving configuration efficiency of the memory system.
Smart Images

Figure CN113495682B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to memory systems, and in particular to systems and methods for queuing device management configuration requests on a memory system. Background Art
[0002] A non-volatile memory system is a memory that can retain stored information without the need for an external power source. A non-volatile memory system includes a controller coupled to one or more memory arrays. Non-volatile memories are widely used in various electronic devices and stand-alone memory devices. For example, non-volatile memories can be found in laptop computers, digital audio players, digital cameras, smart phones, scientific instruments, industrial robots, medical electronics, IOT (Internet of Things) devices, solid-state drives, USB drives, memory cards, etc.
[0003] The memory system is connected to and communicates with the host system. The host system (or "host") is generally responsible for configuring the memory system, sending data to the memory system, and reading data from the memory system. The host may provide instructions to the controller to perform various operations (e.g., programming operations, read operations, erase operations, etc.) on the memory cells of the memory system. The communication between the host and the controller is generally defined by a certain standard. For example, the communication between the host and the controller may be defined by the Universal Protocol (UniPro) Specification (SPEC) for Universal Flash Storage (UFS) standard or other suitable standards. The standard may define how the host uses each layer to communicate to the corresponding layer of the controller.
[0004] In addition to providing instructions to the controller, the host may also provide configuration requests for configuring the channels of the memory system. Configuration requests may be referred to as device management commands. UniPro SPEC (e.g., a link layer including UFS products) defines a process for configuring the channels of a memory system by completing a device management command to change one attribute at a time. For example, the host sets or the controller receives an attribute (e.g., corresponding to a device management command). The controller then executes the device management command to set the attribute. After a certain time period expires, the host determines whether the controller has successfully set the attribute, for example, by requesting a status from the controller. This occurs before the host moves to the next device management command. That is, the host waits for one command to be completed before continuing to the next command. Typically, this process is performed by the upper layers of the memory system (e.g., by an application of a host controller) and may be relatively time-consuming, especially when several attributes need to be configured. Accordingly, it would be beneficial to shorten the configuration latency. Summary of the invention
[0005] An aspect of the disclosed embodiment includes a method for executing device management commands. The method includes providing a device management command queue indication. The method also includes receiving device management commands and a corresponding command type for each device management command from a host in response to providing the device management command queue indication. The method also includes determining a command execution order for the device management commands based on the command types corresponding to the corresponding device management commands. The method also includes queuing the device management commands in a device management command queue based on the command execution order. The method also includes executing the device management commands according to the device management command queue. The method also includes transmitting a command execution indication to the host in response to executing the device management command.
[0006] Another aspect of the disclosed embodiment includes a controller. The controller includes a bus interface and a processor. The bus interface communicates with a host device. The processor is configured to: receive device management commands and a corresponding command type for each device management command from the host device; determine a command execution order of the device management commands based on the command types corresponding to the corresponding device management commands; queue the device management commands in a device management command queue based on the command execution order; execute the device management commands according to the device management command queue; and transmit a command execution indication to the host device in response to executing the device management command.
[0007] Another aspect of the disclosed embodiment includes a system for executing device management commands. The system includes a processor and a memory. The memory includes instructions that, when executed by the processor, cause the processor to: receive at least one device management command and a command type corresponding to the at least one device management command from an initiator device; determine a queue position of the at least one device management command based on the command type corresponding to the at least one device management command and the command types corresponding to other device management commands in a device management command queue; queue the at least one device management command in the device management command queue based on the queue position; execute the at least one device management command and the other device management commands according to the device management command queue; and transmit a command execution indication to the initiator device in response to executing the at least one device management command.
[0008] These and other aspects of the present disclosure are disclosed in the following detailed description of the embodiments, the appended claims and the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The present disclosure will be best understood from the following detailed description when read in conjunction with the accompanying drawings. It should be emphasized that, according to common practice, the various features of the drawings are not drawn to scale. Instead, the sizes of the various features are arbitrarily expanded or reduced for clarity.
[0010] Figure 1is a schematic block diagram illustrating communication between a host and a memory system in accordance with the principles of the present technology.
[0011] Figure 2 is a flow chart illustrating a method for executing device management commands according to the principles of the present technology.
[0012] Figure 3 is a flow chart generally illustrating a device management command execution workflow (in this example, a power mode change flow) permitted by the present techniques.
[0013] Figure 4 is a flow chart generally illustrating a device management command execution workflow (in this example, a power mode change flow) in accordance with principles of the present technology. DETAILED DESCRIPTION
[0014] The following discussion is directed to various embodiments of the present invention. Although one or more of these embodiments may be preferred, the disclosed embodiments should not be interpreted as limiting the scope of the present disclosure including the claims, or otherwise used as limiting the scope of the present disclosure including the claims. In addition, it will be understood by those skilled in the art that the following description has a wide range of applications, and the discussion of any embodiment is only meant to be an exemplary discussion of the embodiment, and is not intended to imply that the scope of the present disclosure including the claims is limited to the embodiment.
[0015] The present disclosure is directed to a system and method for configuring a memory system by a host system. In one embodiment, the memory system can be configured to relieve the host from having to process a series of sequential device management commands to implement the current UFS / MIPI SPEC flow (e.g., and possibly future UFS / MIPI SPEC flows). Additionally or alternatively, the systems and methods described herein can be configured to reduce overhead while setting properties of the memory system as all device management commands are queued and executed without having to monitor the progress of individual device management command executions.
[0016] Conventional memory systems are limited to sending and completing one device management command serially. In one embodiment, the present disclosure provides a memory system that handles bursts of device management commands and simultaneously configures multiple parameters of the memory system.
[0017] Accordingly, systems and methods such as described herein that allow a host to queue device management commands (e.g., configuration requests) may be desirable. In some embodiments, the systems and methods described herein may be configured to provide two modes of device management command queuing. For example, the systems and methods described herein may be configured to queue device management commands (e.g., configuration requests). The systems and methods may be configured to execute each device management command. The systems and methods may be configured to generate a status indication in response to completing the execution of each device management command. The status indication may indicate whether the device management command was successfully executed. The systems and methods may be configured to determine the status of each of the device management commands based on the status indication. The systems and methods may be configured to associate each status indication with a corresponding device management command.
[0018] In some embodiments, the systems and methods described herein may be configured to queue device management commands by transmitting multiple (e.g., burst) device management commands to a controller in sequence without waiting for the status of each device management command before proceeding to the next device management command. The systems and methods may be configured to determine whether a controller (e.g., on a peer side) includes a device management entity command execution queue (DME-Q). The systems and methods may be configured to transmit multiple device management commands to the controller in response to determining that the controller includes a DME-Q. The systems and methods may be configured to sort the device management commands in the DME-Q. The systems and methods may be configured to execute device management commands according to the queue.
[0019] The systems and methods described herein may be configured to generate a status indication indicating completion of all device management commands associated with the plurality of device management commands (e.g., without necessarily reporting status after completion of each device management command). In some embodiments, the systems and methods may be configured to determine whether an error occurred during execution of at least one of the device management commands. The systems and methods may be configured to generate an error indication indicating that an error occurred (e.g., during a first instance of an error) and transmit the error indication to a host.
[0020] In some embodiments, the systems and methods described herein may be configured to identify a command type for each device management command. For example, the host may transmit the plurality of device management commands and the command type for each of the plurality of device management commands to the controller. The controller may generate an execution order of the plurality of device management commands based on the command type corresponding to each of the device management commands. In some embodiments, the systems and methods may be configured to queue the device management commands according to the execution order. In some embodiments, the systems and methods may be configured to determine a queue position for each of the device management commands based on the corresponding command type.
[0021] In some embodiments, the command types may include a simple command type, an ordered command type, and a head of queue command type. Device management commands with a simple command type may be executed in any order among other device management commands with a simple command type. Device management commands with an ordered command type may be executed only after all previous device management commands already in the DME-Q are executed and before device management commands are subsequently added to the DME-Q. Device management commands with a head of queue command type may be executed as quickly as possible (e.g., including bypassing other device management commands already in the DME-Q).
[0022] In some embodiments, the systems and methods described herein may be configured to provide a device management command queue indication. The systems and methods may be configured to receive device management commands and a corresponding command type for each device management command from a host in response to providing the device management command queue indication. The systems and methods may be configured to determine a command execution order for the device management commands based on the command types corresponding to the corresponding device management commands. The systems and methods may be configured to queue the device management commands in a device management command queue based on the command execution order. The systems and methods may be configured to execute the device management commands according to the device management command queue. The systems and methods may be configured to transmit a command execution indication to the host in response to executing the device management command.
[0023] View now Figure 1 , is a schematic block diagram of an example system 100 including a host device 102 that communicates with a memory system 104 via a bus 106. Examples of host 102 include computing devices such as desktop computers, rack servers, laptop computers, smart phones, tablet computers, or other suitable computing devices. Host 102 may also include systems and devices such as gaming systems, digital phones, digital cameras, portable media players, IOT devices, remote controls, television joysticks, smart televisions, etc. Memory system 104 may be implemented in a memory card such as a secure digital (SD) card or a micro secure digital (micro-SD) card. In some embodiments, memory system 104 is embedded in host 102, for example, as a solid state disk (SSD) drive installed in a laptop computer.
[0024] The bus 106 allows communication of any known or later developed communication protocol that enables the host 102 to communicate with the memory system 104. The communication protocol may include a secure digital (SD) protocol, a memory stick (MS) protocol, a USB protocol, an advanced microcontroller bus architecture (AMBA), or other suitable protocols. Specifically, the bus 106 may enable a bus interface that implements any known or later developed communication protocol such as a serial advanced technology attachment (SATA) or a peripheral component interface express (PCIe) interface.
[0025] Memory system 104 includes a non-volatile memory (NVM) block 108 connected to controller 114. NVM block 108 may include several memory dies. In some embodiments, NVM block 108 defines a set of physical memory dies. In other embodiments, NVM block 108 defines a set of logical memory dies, where NVM block 108 includes memory dies from several physically different groups of memory dies. The manner in which NVM block 108 is defined is not intended to be limiting.
[0026] The controller 114 acts as an interface between the host 102 and the memory system 104 and manages data stored in the memory system 104. For example, the host 102 can access data stored in the memory system 104 by providing a logical address to the controller 114 via a bus interface associated with the bus 106, and the controller 114 converts the logical address to a physical address. The controller 114 can access the data and / or a specific storage location associated with the physical address and facilitate the transfer of data between the host 102 and the memory system 104. In some embodiments where the memory system 104 includes flash memory, the controller 114 formats the flash memory to ensure that the memory operates properly, maps out bad flash memory cells, and allocates spare cells to replace cells that fail in the future or for holding firmware to operate the flash memory controller.
[0027] In some embodiments, the communication between the host 102 and the memory system 104 may be defined by the Universal Protocol (UniPro) Specification (SPEC) for the Universal Flash Storage (UFS) standard. Figure 1 , the host 102 can communicate via various layers (e.g., LINKS) of the controller 114. The host 102 can transmit device management commands to the memory system controller 114 to set various properties associated with the UniPro standard (e.g., to adapt to a new standard) or to set various properties to change other characteristics of the memory system 104.
[0028] The host 102 may include a host device management entity queue (DME-Q) 110, and the controller 114 may include a controller DME-Q 112. The host DME-Q 110 and the controller DME-Q 112 allow the host 102 to queue device management commands and offload the management of the execution and status verification of the device management commands to the controller 114. In some embodiments, the host DME-Q 110 and the controller DME-Q 112 may be components of LINK (UNIPRO) or may be extendable and exceed the UniPro standard. The host DME-Q 110 and the controller DME-Q 112 are symmetric (e.g., because UNIPRO / PHY is a symmetric IP on the host 102 and the controller 114). However, in some embodiments, the host DME-Q 110 and the controller DME-Q 112 may be asymmetric and supported only by the controller 114 or only by the host 102.
[0029] In some embodiments, the host 102 is configured to transmit device management commands (e.g., associated with configuration requests or operations such as power mode change operations or other suitable operations) from the host DME-Q 110 to the controller DME-Q 112. In this regard, the host 102 may transmit the device management commands to the controller 114 serially (i.e., one configuration command is sent sequentially after another configuration command without queuing) or as a burst of configuration commands (i.e., multiple configuration commands are sent together). In the burst mode, the host 102 additionally sends the command type.
[0030] Figure 2 is a flow chart illustrating a method 500 for executing a device management command according to the principles of the present disclosure. At 502, the method 500 provides a device management command queue indication. For example, the controller provides an indication to the host 102 indicating that the controller includes the controller DME-Q 112. At 504, the method 500 receives a device management command and a corresponding command type. For example, the controller receives one or more device management commands from the host 102, as described. At 506, the method 500 determines a command execution order. For example, the controller determines the command execution order based on the command type.
[0031] At 508, the method 500 queues the device management command in the device management command queue. For example, the controller determines the queue position of the device management command in the controller DME-Q 112 based on the command execution order and / or other device management commands already in the controller DME-Q 112. At 510, the method 500 executes the device management command according to the device management command queue. For example, the controller executes the device management command according to the order in the controller DME-Q 112. At 512, the method 500 transmits a command execution indication. For example, the controller stores the result of the configuration. The controller generates a command execution indication corresponding to the configuration result in response to a request from the host 102 to provide a configuration status, and transmits a status indication and / or an error indication (e.g., based on determining that an error occurred) to the host 102.
[0032] As Figure 3 and 4 1, a client may request a power mode change. A host, such as host 102, may receive the power mode change request and transmit a device management command associated with the power mode change using a local communication channel, such as a local UniPro channel, or other suitable channel. The local communication channel (e.g., local UniPro) may transmit the device management command and command type to a peer communication channel, such as a peer UniPro channel or other suitable channel on a device (e.g., storage system and / or controller 114). As will be described, controller 114 may execute the entire batch of device management commands associated with the power management command and then transmit the status to host 102.
[0033] The controller 114 may determine a command execution order for the device management commands based on the command type. For example, if the controller 114 receives the device management commands serially, the controller 114 determines that the command execution order is the same as the order in which the device management commands were received. If the controller 114 receives multiple device management commands as a burst (while utilizing DME-Q), the controller 114 generates a command execution order based on the command type. The command type may include a simple command type, an ordered command type, and a head of queue command type, as described.
[0034] The controller 114 may execute the device management commands according to the order in the controller DME-Q 112. If the controller 114 receives the device management commands serially, the controller 114 may generate a status (e.g., or execution) indication during and / or after the completion of the corresponding device management command. The controller 114 may transmit the status indication to the host 102 after the controller 114 completes the execution of the entire batch of device management commands. For example, the controller 114 may perform a power mode change operation and execute all device management commands and then transmit the status to the host 102 (e.g., the controller 114 does not transmit the status of each device management command execution, but rather transmits the entire power mode change operation before transmitting the status to the host 102). It should be understood that the power mode change operation is an example and the controller 114 may execute any suitable device management commands in batches for the entire operation.
[0035] If the controller 114 receives a plurality of device management commands as a burst, the controller 114 may wait until all device management commands associated with the plurality of device management commands are completed before generating a status indication. The controller 114 may transmit the status indication to the host 102 in response to the controller 114 completing execution of the plurality of device management commands. Additionally or alternatively, the controller 114 may store the execution results of the plurality of device management commands. The controller 114 may generate a status indication corresponding to the execution results of the plurality of device management commands in response to a request from the host, and may transmit the status indication to the host.
[0036] In some embodiments, the controller 114 may be configured to determine whether an error occurred when executing a corresponding device management command. If the controller 114 determines that an error occurred, the controller 114 may generate an error indication and transmit the error indication to the host 102 (e.g., the controller 114 does not have to wait until other device management commands are completed before transmitting the error indication). Additionally or alternatively, the controller 114 may store the error indication and may transmit the error indication to the host in response to a request from the host to transmit status. The host 102 may receive various status indications and proceed accordingly. Additionally or alternatively, the host 102 may receive the error indication and determine whether to instruct the controller 114 to take corrective action.
[0037] In some embodiments, the methods described herein may be performed by the controller 114. However, the methods described herein performed by the controller 114 are not intended to be limiting, and any type of software executed on the controller 114 may perform the methods described herein without departing from the scope of the present disclosure. For example, a controller such as a processor executing software within the host 102 or firmware within the memory system 104 may perform the methods described herein.
[0038] In some embodiments, a method for executing device management commands includes providing a device management command queue indication. The method also includes receiving device management commands and a corresponding command type for each device management command from a host in response to providing the device management command queue indication. The method also includes determining a command execution order for the device management commands based on the command types corresponding to the corresponding device management commands. The method also includes queuing the device management commands in a device management command queue based on the command execution order. The method also includes executing the device management commands according to the device management command queue. The method also includes transmitting a command execution indication to the host in response to a request from the host in response to executing the device management command.
[0039] In some embodiments, the corresponding command type of at least one of the device management commands comprises a simple command type. In some embodiments, the corresponding command type of at least one of the device management commands comprises an ordered command type. In some embodiments, determining the command execution order of the device management commands based on the command type corresponding to the corresponding device management commands comprises ordering all device management commands of the ordered command type to be executed after all previously queued device management commands and before all subsequently queued device management commands. In some embodiments, the corresponding command type of at least one of the device management commands comprises a head of queue command type. In some embodiments, determining the command execution order of the device management commands based on the command type corresponding to the corresponding device management commands comprises ordering all device management commands of the head of queue command type to be executed before all previously queued device management commands. In some embodiments, transmitting to the host a command execution indication in response to executing the device management commands comprises transmitting to the host a command execution indication after executing each of the device management commands. In some embodiments, transmitting to the host a command execution indication in response to executing the device management commands comprises transmitting to the host a command execution indication after executing all of the device management commands.
[0040] In some embodiments, the controller includes a bus interface and a processor. The bus interface communicates with a host device. The processor is configured to: receive device management commands and a corresponding command type for each device management command from the host device; determine a command execution order of the device management commands based on the command types corresponding to the corresponding device management commands; queue the device management commands in a device management command queue based on the command execution order; execute the device management commands according to the device management command queue; and transmit a command execution indication to the host device in response to executing the device management command.
[0041] In some embodiments, the corresponding command type of at least one of the device management commands comprises a simple command type. In some embodiments, the corresponding command type of at least one of the device management commands comprises an ordered command type. In some embodiments, the processor is further configured to determine the command execution order of the device management commands based on the command type corresponding to the corresponding device management commands by ordering all device management commands having the ordered command type to be executed after all previously queued device management commands and before all subsequently queued device management commands. In some embodiments, the corresponding command type of at least one of the device management commands comprises a head of queue command type. In some embodiments, the processor is further configured to determine the command execution order of the device management commands based on the command type corresponding to the corresponding device management commands by ordering all device management commands having the head of queue command type to be executed before all previously queued device management commands. In some embodiments, the processor is further configured to transmit a command execution indication to the host device after executing each of the device management commands. In some embodiments, the processor is further configured to transmit a command execution indication to the host device after executing all device management commands.
[0042] In some embodiments, a system for executing device management commands includes a processor and a memory. The memory includes instructions that, when executed by the processor, cause the processor to: receive at least one device management command and a command type corresponding to the at least one device management command from an initiator device; determine a queue position of the at least one device management command based on the command type corresponding to the at least one device management command and the command types corresponding to other device management commands in a device management command queue; queue the at least one device management command in the device management command queue based on the queue position; execute the at least one device management command and the other device management commands according to the device management command queue; and transmit a command execution indication to the initiator device in response to executing the at least one device management command.
[0043] In some embodiments, the command type corresponding to the at least one device management command comprises a first command type, and wherein the queue position of the at least one device management command comprises a position in the device management command queue that is immediately before or after any device management command among other device management commands of the first command type in the device management command queue. In some embodiments, the command type corresponding to the at least one device management command comprises a second command type, and wherein the queue position of the at least one device management command comprises a first available position in the device management command queue. In some embodiments, the command type corresponding to the at least one device management command comprises a third command type, and wherein the queue position of the at least one device management command comprises a first position in the device management command queue.
[0044] The above discussion is intended to illustrate the principles and various embodiments of the present invention. Once the above disclosure is fully understood, many changes and modifications will become apparent to those skilled in the art. It is intended that the appended claims be interpreted as covering all such changes and modifications. In the previous description and in the claims, the terms "comprises" and "includes" are used in an open-ended manner and should therefore be interpreted to mean "including but not limited to...". In addition, the term "coupled" is intended to mean an indirect or direct connection. Therefore, if a first device is coupled to a second device, the connection may be via a direct connection, or via an indirect connection by means of other devices and connections.
[0045] The word "example" is used herein to mean "serving as an example, instance or illustration". Any aspect or design described herein as an "example" is not necessarily to be construed as being preferred or advantageous over other aspects or designs. In fact, the use of the word "example" is intended to present concepts in a specific way. As used in this application, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or". That is, unless otherwise specified or clearly visible from the context, "X includes A or B" is intended to mean any natural inclusive arrangement. That is, if X includes A; X includes B; or X includes both A and B, then "X includes A or B" is satisfied under any of the aforementioned examples. In addition, unless otherwise specified or known from the context to represent a singular form, the article "one" as used in this application and the appended claims should generally be interpreted as meaning "one or more". In addition, unless so described, the use of the term "embodiment" or "one embodiment" throughout the text is not intended to represent the same example or embodiment.
[0046] Embodiments of the systems, algorithms, methods, instructions, etc. described herein may be implemented in hardware, software, or any combination thereof. The hardware may include, for example, a computer, an intellectual property (IP) core, an application specific integrated circuit (ASIC), a programmable logic array, an optical processor, a programmable logic controller, microcode, a microcontroller, a server, a microprocessor, a digital signal processor, or any other suitable circuit. In the claims, the term "processor" should be understood to cover any of the foregoing hardware, either individually or in combination. The terms "signal" and "data" are used interchangeably.
[0047] As used herein, the term module may include a packaged functional hardware unit designed to be used with other components, an instruction set that can be executed by a controller (e.g., a processor executing software or firmware), a processing circuit system configured to perform a specific function, and a self-contained hardware or software component that interfaces with a larger system. For example, a module may include an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a circuit, a digital logic circuit, an analog circuit, a combination of discrete circuits, gates and other types of hardware, or a combination thereof. In other embodiments, a module may include a memory that stores instructions that can be executed by a controller to implement the features of the module. In some embodiments, the controller is implemented within the host 102 and can be configured with hardware and / or firmware to perform the various functions described herein.
[0048] “Controller” shall mean an individual circuit component, an application specific integrated circuit (ASIC), a microcontroller with control software, a digital signal processor (DSP), a processor with control software, a field programmable gate array (FPGA), or a combination thereof.
[0049] In addition, all or part of the embodiments of the present disclosure may take the form of a computer program product accessible from, for example, a computer usable or computer readable medium. A computer usable or computer readable medium may be, for example, any device that can tangibly contain, store, convey, or transmit a program for use by or in conjunction with any processor. The medium may be, for example, an electronic, magnetic, optical, electromagnetic, or semiconductor device. Other suitable media may also be used.
[0050] The above embodiments, implementations and aspects have been described to allow easy understanding of the invention and do not limit the invention. On the contrary, the invention is intended to cover various modifications and equivalent arrangements contained within the scope of the appended claims, and the scope should be given the broadest interpretation to cover all such modifications and equivalent structures allowed by law.
Claims
1. A method for executing a device management command, the method comprising: providing instructions for device management command queues; receiving, from a host of a memory system in response to providing an indication of the device management command queue, two or more device management commands and a corresponding command type for each of the device management commands, wherein each of the two or more device management commands is a configuration request for configuring one or more channels of the memory system; determining a command execution order of the device management commands based on the command types corresponding to respective device management commands; queuing the device management commands in the device management command queue based on the command execution order; executing the device management commands queued in the device management command queue in the command execution order; as well as In response to a request from the host, the command execution instruction in response to executing the device management command is transmitted to the host. 2 . The method of claim 1 , wherein the corresponding command type of at least one of the device management commands comprises a simple command type. 3 . The method of claim 1 , wherein the respective command type of at least one of the device management commands comprises an ordered command type.
4. The method of claim 3, wherein determining the command execution order of the device management commands comprises ordering all device management commands of the ordered command type to be executed after all previously queued device management commands and before all subsequently queued device management commands. 5 . The method of claim 1 , wherein the corresponding command type of at least one of the device management commands comprises a head-of-queue command type.
6. The method of claim 5, wherein determining the command execution order of the device management commands comprises ordering all device management commands having the head-of-queue command type to be executed before all previously queued device management commands. 7 . The method of claim 1 , wherein transmitting the command execution indication to the host in response to executing the device management commands comprises transmitting the command execution indication to the host after executing each of the device management commands. 8 . The method of claim 1 , wherein transmitting the command execution indication to the host in response to executing the device management command comprises transmitting the command execution indication to the host after executing all of the device management commands.
9. A controller in communication with a memory array of a memory system, the controller comprising: a bus interface for communicating with a host device; as well as A processor configured to: providing instructions for device management command queues; receiving, from the host device, two or more device management commands and a corresponding command type for each device management command, wherein each of the two or more device management commands is a configuration request for configuring one or more channels of the memory system; determining a command execution order of the two or more device management commands based on the command types corresponding to respective device management commands; queuing the two or more device management commands in the device management command queue based on the command execution order; executing the two or more device management commands queued in the device management command queue in the command execution order; as well as A command execution indication is transmitted to the host device in response to executing the two or more device management commands.
10. The controller of claim 9, wherein the corresponding command type of at least one of the two or more device management commands comprises a simple command type.
11. The controller of claim 9, wherein the respective command type of at least one of the two or more device management commands comprises an ordered command type.
12. The controller of claim 11, wherein the processor is further configured to determine the command execution order of the two or more device management commands based on the command types corresponding to respective device management commands by ordering all device management commands having the ordered command type to be executed after all previously queued device management commands and before all subsequently queued device management commands.
13. The controller of claim 9, wherein the respective command type of at least one of the two or more device management commands comprises a head-of-queue command type.
14. The controller of claim 13, wherein the processor is further configured to determine the command execution order of the device management commands based on the command types corresponding to respective device management commands by ordering all device management commands having the queue head command type to be executed before all previously queued device management commands.
15. The controller of claim 9, wherein the processor is further configured to transmit the command execution indication to the host device after executing each of the device management commands.
16. The controller of claim 9, wherein the processor is further configured to transmit the command execution indication to the host device after executing all of the device management commands.
17. A system for executing a device management command, the system comprising: processor; as well as a memory coupled to the processor and comprising instructions that, when executed by the processor, cause the processor to: providing instructions for device management command queues; receiving, from an initiator device, two or more device management commands and respective command types corresponding to the two or more device management commands, wherein each of the two or more device management commands is a configuration request for configuring one or more channels of the system; determining queue positions of the two or more device management commands based on respective command types of the two or more device management commands corresponding to other device management commands in the device management command queue; queuing the two or more management commands in the device management command queue at the determined queue position; executing the two or more device management commands and the other device management commands in the device management command queue based on respective queue positions; as well as A command execution indication is transmitted to the initiator device in response to executing the two or more device management commands.
18. The system of claim 17, wherein the command type corresponding to the at least one device management command comprises a first command type, and wherein the queue position of the at least one device management command comprises a position in the device management command queue that is immediately before or after any device management command among the other device management commands in the device management command queue that have the first command type.
19. The system of claim 17, wherein the command type corresponding to the at least one device management command comprises a second command type, and wherein the queue position of the at least one device management command comprises a first available position in the device management command queue.
20. The system of claim 17, wherein the command type corresponding to the at least one device management command comprises a third command type, and wherein the queue position of the at least one device management command comprises a first position in the device management command queue.
Citation Information
Patent Citations
Methods, systems, and computer readable media for aggregating completion entries in a nonvolatile storage device
US20170123656A1
Systems and Methods for Decoupling Host Commands in a Non-Volatile Memory System
US20170249081A1