KR-20260064722-A - Systems, methods, and media for reducing power consumption of multi-plane non-volatile memory solid-state drives
Abstract
Mechanisms (which may include systems, methods, and media) for reducing power consumption of multi-plane non-volatile memory (MPNVM) solid-state drives (SSDs) are provided. The mechanisms include: identifying a first MPNVM device and a first plane of the first MPNVM device associated with a first command; determining that one or more other commands are available for the first MPNVM device and for a plane of the first MPNVM device different from the first plane; and transmitting the first command and one or more other commands to the first MPNVM device for execution in response to determining that one or more other commands are available for the first MPNVM device and for a plane of the first MPNVM device different from the first plane.
Inventors
- 드 브리스, 조나단, 이.
- 칼튼, 데이비드
Assignees
- 에스케이 하이닉스 낸드 프로덕트 솔루션즈 코포레이션
Dates
- Publication Date
- 20260507
- Application Date
- 20240906
- Priority Date
- 20230907
Claims (20)
- As a system for reducing power consumption of multi-plane non-volatile memory (MPNVM) solid-state drives (SSDs), Memory; and At least one hardware processor coupled to the above memory Includes, and the at least one hardware processor is at least: Identifying a first MPNVM device associated with a first command and a first plane of said first MPNVM device; Determining that one or more other commands are available for the first MPNVM device and for a plane of the first MPNVM device that is different from the first plane; In response to determining that the one or more other commands are available for the first MPNVM device and for a plane of the first MPNVM device different from the first plane, to transmit the first command and the one or more other commands to the first MPNVM device for execution. A system composed of collective elements.
- In paragraph 1, the above at least one hardware processor is: Identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; Determining that other commands are not available for the second MPNVM device and for the plane of the second MPNVM device that is different from the second plane; In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period; In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period: It was decided that it is better to send the current command to the second MPNVM device rather than waiting for another command; In response to the decision that it is better to send the current command to the second MPNVM device rather than waiting for another command, the second command is to be sent to the second MPNVM device for execution. A system that is additionally composed of collective components.
- In paragraph 1, the above at least one hardware processor is: Identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; Determining that other commands are not available for the second MPNVM device and for the plane of the second MPNVM device that is different from the second plane; In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period; In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period: Deciding that it is better to wait for another command rather than sending the current command to the second MPNVM device; In response to the decision that it is better to wait for another command rather than sending the current command to the second MPNVM device: Determining that the second command cannot wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; In response to determining that the second command cannot wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane, transmit the second command to the second MPNVM device for execution. A system that is additionally composed of collective components.
- In paragraph 1, the above at least one hardware processor is: Identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; Determining that other commands are not available for the second MPNVM device and for the plane of the second MPNVM device that is different from the second plane; In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period; In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period: Deciding that it is better to wait for another command rather than sending the current command to the second MPNVM device; In response to the decision that it is better to wait for another command rather than sending the current command to the second MPNVM device: Determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; In response to determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane, to mark the second command to be held in reserve. A system that is additionally composed of collective components.
- In paragraph 1, the above at least one hardware processor is: Identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; Determining that other commands are not available for the second MPNVM device and for the plane of the second MPNVM device that is different from the second plane; In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period; In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period: Determining that the second command cannot wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; In response to determining that the second command cannot wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane, transmit the second command to the second MPNVM device for execution. A system that is additionally composed of collective components.
- In paragraph 1, the above at least one hardware processor is: Identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; Determining that other commands are not available for the second MPNVM device and for the plane of the second MPNVM device that is different from the second plane; In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period; In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period: Determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; In response to determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane, to mark the second command to be held in reserve. A system that is additionally composed of collective components.
- In paragraph 1, the above at least one hardware processor is: Identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; Determining that other commands are not available for the second MPNVM device and for the plane of the second MPNVM device that is different from the second plane; In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that the second command cannot wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; In response to determining that the second command cannot wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane, transmit the second command to the second MPNVM device for execution. A system that is additionally composed of collective components.
- As a method for reducing power consumption of multi-plane non-volatile memory (MPNVM) solid-state drives (SSDs), A step of identifying a first MPNVM device associated with a first command and a first plane of said first MPNVM device; A step of determining, using a hardware processor, that one or more other commands are available for the first MPNVM device and for a plane of the first MPNVM device that is different from the first plane; and In response to determining that the one or more other commands are available for the first MPNVM device and for a plane of the first MPNVM device different from the first plane, the step of transmitting the first command and the one or more other commands to the first MPNVM device for execution. A method including
- In paragraph 8, A step of identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; A step of determining that another command is not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period; and In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period: A step of determining that it is better to send the current command to the second MPNVM device rather than waiting for another command; and In response to the decision that it is better to transmit the current command to the second MPNVM device rather than waiting for another command, the step of transmitting the second command to the second MPNVM device for execution. A method that additionally includes
- In paragraph 8, A step of identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; A step of determining that another command is not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period; and In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period: A step of determining that it is better to wait for another command than to send the current command to the second MPNVM device; and In response to the decision that it is better to wait for another command rather than sending the current command to the second MPNVM device: A step of determining that the second command cannot wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that the second command cannot wait for one or more other commands for the plane of the second MPNVM device that is different from the second plane, the step of transmitting the second command to the second MPNVM device for execution. A method that additionally includes
- In paragraph 8, A step of identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; A step of determining that another command is not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period; and In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period: A step of determining that it is better to wait for another command than to send the current command to the second MPNVM device; and In response to the decision that it is better to wait for another command rather than sending the current command to the second MPNVM device: A step of determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and A step of marking the second command to be held in response to determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane. A method that additionally includes
- In paragraph 8, A step of identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; A step of determining that another command is not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: A step of determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period; and In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period: A step of determining that the second command cannot wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that the second command cannot wait for one or more other commands for the plane of the second MPNVM device that is different from the second plane, the step of transmitting the second command to the second MPNVM device for execution. A method that additionally includes
- In paragraph 8, A step of identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; A step of determining that another command is not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: A step of determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period; and In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period: A step of determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and A step of marking the second command to be held in response to determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane. A method that additionally includes
- In paragraph 8, A step of identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; A step of determining that another command is not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: A step of determining that the second command cannot wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that the second command cannot wait for one or more other commands for the plane of the second MPNVM device that is different from the second plane, the step of transmitting the second command to the second MPNVM device for execution. A method that additionally includes
- A non-transient computer-readable medium comprising computer-executable instructions that, when executed by a processor, cause the processor to perform a method for reducing power consumption of multi-plane non-volatile-memory (MPNVM) solid-state drives (SSDs), wherein the method comprises: A step of identifying a first MPNVM device associated with a first command and a first plane of said first MPNVM device; A step of determining that one or more other commands are available for the first MPNVM device and for a plane of the first MPNVM device that is different from the first plane; and In response to determining that the one or more other commands are available for the first MPNVM device and for a plane of the first MPNVM device different from the first plane, the step of transmitting the first command and the one or more other commands to the first MPNVM device for execution. A non-transient computer-readable medium comprising
- In paragraph 15, the above method is: A step of identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; A step of determining that another command is not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period; and In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period: A step of determining that it is better to send the current command to the second MPNVM device rather than waiting for another command; and In response to the decision that it is better to transmit the current command to the second MPNVM device rather than waiting for another command, the step of transmitting the second command to the second MPNVM device for execution. A non-transient computer-readable medium additionally comprising
- In paragraph 15, the above method is: A step of identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; A step of determining that another command is not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period; and In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period: A step of determining that it is better to wait for another command than to send the current command to the second MPNVM device; and In response to the decision that it is better to wait for another command rather than sending the current command to the second MPNVM device: A step of determining that the second command cannot wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that the second command cannot wait for one or more other commands for the plane of the second MPNVM device that is different from the second plane, the step of transmitting the second command to the second MPNVM device for execution. A non-transient computer-readable medium additionally comprising
- In paragraph 15, the above method is: A step of identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; A step of determining that another command is not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: Determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period; and In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period: A step of determining that it is better to wait for another command than to send the current command to the second MPNVM device; and In response to the decision that it is better to wait for another command rather than sending the current command to the second MPNVM device: A step of determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and A step of marking the second command to be held in response to determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane. A non-transient computer-readable medium additionally comprising
- In paragraph 15, the above method is: A step of identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; A step of determining that another command is not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: A step of determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period; and In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period: A step of determining that the second command cannot wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that the second command cannot wait for one or more other commands for the plane of the second MPNVM device that is different from the second plane, the step of transmitting the second command to the second MPNVM device for execution. A non-transient computer-readable medium additionally comprising
- In paragraph 15, the above method is: A step of identifying a second MPNVM device associated with a second command and a second plane of said second MPNVM device; A step of determining that another command is not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and In response to determining that other commands are not available for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane: A step of determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period; and In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were not transmitted a time shorter than a given time period: A step of determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane; and A step of marking the second command to be held in response to determining that the second command may wait for one or more other commands for the second MPNVM device and for a plane of the second MPNVM device that is different from the second plane. A non-transient computer-readable medium additionally comprising
Description
Systems, methods, and media for reducing power consumption of multi-plane non-volatile memory solid-state drives Cross-reference regarding related applications This application claims the benefit of U.S. Patent Application No. 18/243,551 filed on September 7, 2023, the entirety of which is incorporated herein by reference. Solid-state drives (SSDs) are widely used in grid-powered and battery-powered computing devices to store information. A multi-plane non-volatile memory (MPNVM) SSD is an SSD comprising MPNVM devices that constitute the SSD, wherein each MPNVM device has multiple planes that can be written to simultaneously on the device. A NAND SSD is a form of MPNVM SSD and includes NAND devices that are a form of MPNVM device. When reading information from an MPNVM SSD, power is consumed not only to operate the general circuitry of an MPNVM device (which may be part of an MPNVM SSD) but also to operate a specific plane of the MPNVM device being read. To improve efficiency and reduce battery drain (in battery-powered devices), it is desirable to reduce the power consumption of MPNVM SSDs. Therefore, new mechanisms to reduce the power consumption of MPNVM SSDs are desirable. According to some embodiments, mechanisms for reducing power consumption of MPNVM SSDs (which may include systems, methods, and media) are provided. In some embodiments, systems for reducing power consumption of multi-plane non-volatile memory (MPNVM) solid-state drives (SSDs) are provided, comprising: memory; and at least one hardware processor coupled to the memory, wherein the at least one hardware processor is collectively configured to: identify a first MPNVM device and a first plane of the first MPNVM device associated with a first command; determine that one or more other commands are available for the first MPNVM device and for a plane of the first MPNVM device different from the first plane; and in response to determining that one or more other commands are available for the first MPNVM device and for a plane of the first MPNVM device different from the first plane, transmit the first command and one or more other commands to the first MPNVM device for execution. In some of these embodiments, at least one hardware processor: identifies a second MPNVM device and a second plane of the second MPNVM device associated with a second command; determines that no other command is available for the second MPNVM device and for a plane of the second MPNVM device different from the second plane; and in response to determining that no other command is available for the second MPNVM device and for a plane of the second MPNVM device different from the second plane: determines that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted less than a given period of time ago; In response to determining that one or more commands for the second MPNVM device and for a plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period: determining that it is better to transmit the current command to the second MPNVM device than to wait for another command; and in response to determining that it is better to transmit the current command to the second MPNVM device than to wait for another command, the second command is further collectively configured to transmit the second command to the second MPNVM device for execution. In some of these embodiments, at least one hardware processor identifies the second MPNVM device and the second plane of the second MPNVM device associated with the second command; determines that no other command is available for the second MPNVM device and for a plane of the second MPNVM device different from the second plane; In response to determining that no other command is available for the second MPNVM device and for the plane of the second MPNVM device different from the second plane: determining that one or more commands for the second MPNVM device and for the plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period; in response to determining that one or more commands for the second MPNVM device and for the plane of the second MPNVM device different from the second plane were transmitted a time shorter than a given time period: determining that it is better to wait for another command than to transmit the current command to the second MPNVM device; in response to determining that it is better to wait for another command than to transmit the current command to the second MPNVM device: determining that the second command cannot wait for one or more other commands for the second MPNVM device and for the plane of the second MPNVM device different from the second plane; The second command is further collectively configured to transmit the second command to the second MPNVM device for execution in response to a determination t