Slave Device Command Queue for Buffer-Free In-Order Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvein-order executionVSAvoidbuffer storage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #13The other way round (Inversion)

2Productivity

If multiple commands are buffered in the slave device, then concurrent transactions are supported, but the complexity of managing command execution order increases

Engineering Contradiction:
Improveconcurrent transaction supportVSAvoidcommand execution management
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7613841B2Systems and methods for reducing data storage in devices using multi-phase data transactions
Publication Date: 2009.11.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US7613841B2 patent drawing
  • US7613841B2 patent drawing
  • US7613841B2 patent drawing

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.