Slave Device Command Queue for Buffer-Free In-Order Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High-performance computing systems require large data buffers to ensure in-order execution of commands, leading to increased storage costs and inefficiencies due to the need to store data for commands that cannot be executed immediately.
Innovation Solution
Implementing a method in the slave device where an execution synchronization command is used to determine if there are unissued commands, allowing for a retry response instead of acknowledgment, thereby avoiding the need for data buffers by ensuring commands are only executed once all previous commands are completed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a large data buffer is provided to ensure in-order execution of commands, then execution order is maintained, but storage space requirements increase
Solution Approach 1:
The patent extracts the data buffering function from the slave device and relocates it to the master device. The slave device only maintains a command queue for storing command information, while the master device buffers the actual data until the slave is ready to receive it. This separation eliminates the need for large data buffers in the slave device while maintaining in-order execution through the command queue mechanism.
Solution Approach 2:
The patent inverts the traditional approach by having the master device (rather than the slave device) perform the data buffering function. Instead of the slave buffering incoming data, the master buffers data and sends it only when the slave indicates readiness through the command queue acknowledgment mechanism.
2Productivity
If multiple commands are buffered in the slave device, then concurrent transactions are supported, but the complexity of managing command execution order increases
Solution Approach 1:
The patent segments the transaction management into two independent parts: command processing and data transfer. The command queue handles command sequencing and acknowledgment, while data transfer occurs separately based on command completion status. This segmentation simplifies the slave device's complexity by separating control logic from data buffering responsibilities.
Solution Approach 2:
The patent implements preliminary action by having the master device prepare and send commands ahead of time through the command queue, while data transfer is deferred until the slave is ready. The command queue pre-establishes the execution order, allowing the slave to process commands in the correct sequence without needing to buffer large amounts of data.
Data Source
AI summary
Systems and methods for enforcing in-order execution of commands sent from a master device to a slave device, where it is not necessary to provide a data buffer to store data associated with commands that are delayed to enforce in-order execution. In one embodiment, when a slave receives an execution synchronization command from a master, it determines whether its command queue contains unissued commands associated with master. If the command queue contains unissued commands, the slave issues a retry responsive to the execution synchronization command. If the command queue does not contain unissued commands, the slave issues an acknowledgment responsive to the execution synchronization command. The master will retry the execution synchronization command until the previous commands have been completed. Because the slave does not queue up any commands that would be delayed by the execution synchronization command, it does not have to provide space to store any associated data.


