Techniques to achieve ordering among storage device transactions
First Claim
Patent Images
1. An apparatus, comprising:
- a memory capable of storing a sequence of transactions, each transaction including a request to write data to a memory device of the memory; and
a controller comprising circuitry operatively coupled with the memory, the controller to receive a command for a dependent transaction in the sequence of transactions, the command to indicate dependencies and a number of requests to write data for the dependent transaction, the command comprising a first parameter having one or more tokens to identify pre-requisite transactions for the dependent transaction and a second parameter having a number value to indicate the number of requests for the dependent transaction, the controller to create, in response to receipt of the sequence of transactions from a host computing platform, a directed-acyclic-graph (DAG) structure for each of the transactions of the sequence of transactions, a DAG structure for a dependent transaction of the sequence of transactions that is dependent on another transaction of the sequence of transactions, to comprise an edge for the other transaction;
the controller to determine, based on the DAG for the dependent transaction, whether a dependency on the other transaction is committed;
the controller to complete the sequence of transactions and to send a response to the host computing platform after the dependency on the other transaction is committed and completion of the sequence of transactions.
1 Assignment
0 Petitions
Accused Products
Abstract
Various embodiments are generally directed to an apparatus, method and other techniques to receiving a sequence of transactions, each transaction including a request to write data to a memory device, processing the sequence of transactions, and communicating a response to a host after the sequence of transaction have been completed.
29 Citations
19 Claims
-
1. An apparatus, comprising:
-
a memory capable of storing a sequence of transactions, each transaction including a request to write data to a memory device of the memory; and a controller comprising circuitry operatively coupled with the memory, the controller to receive a command for a dependent transaction in the sequence of transactions, the command to indicate dependencies and a number of requests to write data for the dependent transaction, the command comprising a first parameter having one or more tokens to identify pre-requisite transactions for the dependent transaction and a second parameter having a number value to indicate the number of requests for the dependent transaction, the controller to create, in response to receipt of the sequence of transactions from a host computing platform, a directed-acyclic-graph (DAG) structure for each of the transactions of the sequence of transactions, a DAG structure for a dependent transaction of the sequence of transactions that is dependent on another transaction of the sequence of transactions, to comprise an edge for the other transaction;
the controller to determine, based on the DAG for the dependent transaction, whether a dependency on the other transaction is committed;
the controller to complete the sequence of transactions and to send a response to the host computing platform after the dependency on the other transaction is committed and completion of the sequence of transactions. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method, comprising:
-
receiving, at an interface of an apparatus from a host computing platform, a sequence of transactions, each transaction including a request to write data to a memory device; receiving, by a controller, a command for a dependent transaction in the sequence of transactions, the command to indicate dependencies and a number of requests to write data for the dependent transaction, the command comprising a first parameter having one or more tokens to identify pre-requisite transactions for the dependent transaction and a second parameter having a number value to indicate the number of requests for the dependent transaction; creating, by the controller, based on receipt of the sequence of transactions, a directed-acyclic-graph (DAG) structure for each of the transactions of the sequence of transactions, a DAG structure for the dependent transaction of the sequence of transactions that is dependent on another transaction of the sequence of transactions, to comprise an edge for the other transaction, determining, by a controller, based on the DAG for the dependent transaction, whether a dependency on the other transaction is committed, completing the sequence of transactions; and communicating a response to the host computing platform after the dependency on the other transaction is committed and completion of the sequence of transactions. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system, comprising:
-
a host computing platform; and a storage device coupled with the host computing platform, the storage device comprising a memory, a controller, one or more memory devices, and an interface capable of communicating with the host computing platform, the memory capable of storing a sequence of transactions, each transaction including a request to write data to a memory device; and the controller operatively coupled with the memory, the controller to receive a command for a dependent transaction in the sequence of transactions, the command to indicate dependencies and a number of requests to write data for the dependent transaction, the command comprising a first parameter having one or more tokens to identify pre-requisite transactions for the dependent transaction and a second parameter having a number value to indicate the number of requests for the dependent transaction, the controller to create, in response to receipt of the sequence of transaction from a host computing platform, a directed-acyclic-graph (DAG) structure for each of the transactions of the sequence of transactions, a DAG structure for a dependent transaction of the sequence of transactions that is dependent on another transaction of the sequence of transactions, to comprise an edge for the other transaction, the controller to check the DAG for the dependent transaction to determine whether a dependency on the other transaction is committed, the controller to complete the sequence of transactions and to send a response to the host computing platform after the dependency on the other transaction is committed and completion of the sequence of transactions. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification