High-performance AHCI interface
AssigneeApple Inc.
InventorArie Peled
Life of this patent
Estimating the term…
Abstract
A method includes receiving from a host multiple commands for execution in a memory, in accordance with a storage protocol that supports processing of only a single command at any given time. At a first time, a first command is executed in the memory and data related to the first command is exchanged with the host, even though a second command, different from the first command, is selected to serve as the single command for which the processing is currently supported in accordance with the storage protocol. A progress of the first command is reported to the host at a second time, which is later than the first time, upon detecting that the first command is selected to serve as the single command for which the processing is currently supported.
Claims21
A method, comprising:
- receiving, by a memory system from a host, multiple commands, wherein the memory system includes a memory controller and a plurality of memories, wherein each command of the multiple commands is executed by the memory controller in accordance with a storage protocol that specifies data transfer and progress reporting for commands in a given serial order;
- at a first time, executing a first command in the memory controller and exchanging data related to the first command with the host, wherein a second command, different from the first command, is currently supported for execution in accordance with the storage protocol;
- executing the second command and reporting progress of the second command to the host at a second time, which is later than the first time and
- reporting a progress of the first command to the host at a third time, which is later than the second time, responsive to detecting that the first command is currently supported for execution in accordance with the storage protocol.
Apparatus, comprising:
- a memory;
- and
- a memory controller configured to:
- receive from a host multiple commands for execution in the memory, in accordance with a storage protocol that specifies data transfer and progress reporting for only a single command at any given time;
- execute a first command in the memory and to exchange data related to the first command with the host at a first time, wherein a second command, different from the first command, is selected to serve as the single command for which processing is currently supported in accordance with the storage protocol;
- and
- report a progress of the first command to the host at a second time, which is later than the first time, upon detecting that the first command is selected to serve as the single command for which the processing is supported.
A system, comprising:
- a host;
- and
- a storage device, which is configured to:
- receive from the host multiple commands for execution in a memory of the storage device, in accordance with a storage protocol that specifies data transfer and progress reporting for only a single command at any given time;
- execute a first command in the memory and to exchange data related to the first command with the host at a first time, wherein a second command, different from the first command, is selected to serve as the single command for which the processing is currently supported in accordance with the storage protocol;
- and
- report a progress of the first command to the host at a second time, which is later than the first time, upon detecting that the first command is selected to serve as the single command for which the processing is supported.
Dependencies are inferred from the claim text.