IO Controller Coalescing Engine Arbitration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current IO controller systems experience inefficiencies due to simple round robin arbitration schemes, leading to suboptimal read and write transfer sizes and increased traffic when handling multiple queues with varying command rates, which reduces overall performance and bandwidth.

Innovation Solution

Implementing a coalescing engine that accumulates commands and responses until a threshold is reached before transferring them, allowing for combined operations and reducing the number of memory write transactions, thereby enhancing efficiency and performance by optimizing command and response processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If simple round robin arbitration scheme is used to select queues for processing, then the arbitration process is simple and easy to implement, but the read and write transfer sizes become suboptimal and the number of transfers increases, reducing overall performance

Engineering Contradiction:
Improvearbitration scheme complexityVSAvoiddata block transfer performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The coalescing engine performs preliminary actions by accumulating commands and responses in buffers before arbitration occurs. Commands are pre-coalesced to reach optimal transfer sizes, and responses are pre-coalesced similarly. This preliminary coalescing ensures that when arbitration selects a queue, the transfer operations are already optimized for maximum efficiency, resolving the contradiction between simple arbitration and optimal transfer performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system segments the arbitration process into two distinct stages: coalescing and arbitration. The coalescing engine operates independently to accumulate commands and responses, while the arbitration mechanism selectively chooses which coalesced queues to process. This segmentation allows each component to be optimized independently - the coalescing engine optimizes transfer sizes without complicating the arbitration logic.

Inventive Principle:
Principle #1Segmentation

2Speed

If commands and responses are transferred frequently to maintain responsiveness, then the host interface utilization increases, but the overhead from numerous small transfers reduces overall throughput

Engineering Contradiction:
Improvecommand response speedVSAvoiddata block transfer throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The coalescing engine merges multiple small command transfers into larger batch transfers by accumulating commands in buffers until optimal size is reached. Similarly, multiple response transfers are merged into single batch operations. This merging reduces the total number of host interface transactions while maintaining responsiveness, as the system continuously monitors queue depths and initiates coalescing operations promptly.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The coalescing engine maintains continuous operation by constantly monitoring queue depths and accumulating commands/responses without interruption. This continuous coalescing action ensures that transfers occur as soon as optimal conditions are met, preventing delays while maximizing transfer efficiency. The engine operates continuously to balance responsiveness with throughput optimization.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If the threshold for coalescing is set high to maximize transfer efficiency, then the number of transfers is reduced and throughput increases, but the latency for command processing increases

Engineering Contradiction:
Improvetransfer throughputVSAvoidcommand processing latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The coalescing threshold is made dynamic rather than fixed. The system adjusts the threshold based on current system conditions such as queue depths, host interface availability, and processing priorities. When the host interface is congested or priority queues are deep, the threshold increases to maximize throughput. When latency sensitivity is high or queues are shallow, the threshold decreases to reduce waiting time. This dynamic adjustment resolves the contradiction between throughput and latency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the coalescing parameter (threshold value) based on operational conditions. Different threshold values are applied depending on the arbitration burst value, queue priorities, and host interface status. This parameter change allows the system to optimize for throughput when conditions permit and minimize latency when conditions require faster response, effectively resolving the throughput-latency tradeoff.

Inventive Principle:
Principle #35Parameter changes

4Ease of operation

If multiple queues are serviced in round robin fashion, then all queues receive fair attention, but queues with varying command rates experience suboptimal performance

Engineering Contradiction:
Improvequeue service fairnessVSAvoidqueue processing efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The coalescing engine performs preliminary accumulation for all queues simultaneously, preparing optimized transfer batches before arbitration selects which queue to service. This preliminary action ensures that when any queue is selected, it has an optimized batch ready for transfer, regardless of its position in the round robin sequence. High-rate queues accumulate larger batches while low-rate queues accumulate smaller batches, but both benefit from the coalescing optimization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system segments queue handling into independent coalescing buffers for each queue, allowing each queue to be processed independently through the coalescing engine. The arbitration mechanism then selectively chooses which buffered queue to service based on optimal conditions rather than strict round robin timing. This segmentation maintains fairness while allowing efficiency optimizations for each queue's specific characteristics.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9626309B1Method and controller for requesting queue arbitration and coalescing memory access commands
Publication Date: 2017.04.18 MICROSEMI SOLUTIONS US INC
  • US9626309B1 patent drawing
  • US9626309B1 patent drawing
  • US9626309B1 patent drawing

AI summary

Controller and method for requesting arbitration of a queue. The controller comprises a coalescing engine for determining a number of commands in a queue and requesting arbitration of the queue when a coalescing condition is satisfied. The method comprises determining the number of commands in a queue and requesting arbitration of the queue when a coalescing condition is satisfied.