SAS Controller Link List Manager for Queue Reordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional SAS controllers face inefficiencies in managing command and data requests due to their FIFO nature, which makes it difficult to revert requests to the queue in the same order, leading to inefficient use of SAS links and high overhead in link-list operations, especially in systems with thousands of nodes and frequent back-offs.

Innovation Solution

A link list with a dispatcher cache architecture that allows for efficient insertion, deletion, and traversal of link list entries, including backing off requests, to manage command and data requests, and handle conditions like Open_Reject, fairness control, SATA atomic sequences, and maximum connection handling, reducing memory accesses and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional FIFO queue management is used in SAS controllers, then simple queue structure is maintained, but link usage efficiency deteriorates due to inability to revert requests to queue in same order

Engineering Contradiction:
Improvelink usage efficiencyVSAvoidqueue management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the queue management into multiple independent link lists, each associated with a specific target device. This segmentation allows requests for different targets to be managed separately, enabling efficient reordering and reverting of requests without affecting other targets. Each link list can be independently manipulated to optimize link usage while maintaining overall system organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a dispatcher cache as an intermediary structure between the link lists and the execution engine. This cache stores metadata about pending requests and facilitates efficient management of the link lists, including operations like reverting requests to the queue. The dispatcher cache acts as a mediator that simplifies the complexity of link list operations while improving link usage efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If link list operations are implemented without optimization, then request reordering capability is achieved, but overhead in link-list operations increases

Engineering Contradiction:
Improverequest processing efficiencyVSAvoidoverhead in link-list operations
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent pre-allocates and pre-organizes link list structures and dispatcher cache entries before requests need to be processed. By preparing the data structures in advance and establishing the link list topology beforehand, the system reduces the time required for actual link list operations during request processing. This preliminary setup minimizes overhead when reordering or reverting requests.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains copies of request metadata in the dispatcher cache alongside the actual link lists. This copying approach allows the system to perform link list operations on the metadata copies rather than directly manipulating the full request structures, significantly reducing the overhead of link-list operations while maintaining the ability to reorder and revert requests efficiently.

Inventive Principle:
Principle #26Copying

3Reliability

If requests are backed off frequently to handle device unavailability, then device availability handling is improved, but SAS link efficiency deteriorates due to repeated reordering operations

Engineering Contradiction:
Improvedevice availability handlingVSAvoidSAS link efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic link list management where the structure and ordering of requests can adapt in real-time based on device availability status. When a device becomes unavailable, the system dynamically reorganizes the corresponding link list to reflect the current state, allowing efficient back-off and retry operations. This dynamic adaptation maintains reliability while minimizing the performance impact of frequent back-off operations.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9256521B1Methods and apparatus for SAS controllers with link list based target queues
Publication Date: 2016.02.09 MICROSEMI SOLUTIONS US INC
  • US9256521B1 patent drawing
  • US9256521B1 patent drawing
  • US9256521B1 patent drawing

AI summary

A controller comprising a transport layer, an internal memory, and a link list manager block. The internal memory stores pending instruction entries. The link list manager block is configured to read instructions stored in an external memory, update an active vector, the active vector for storing indications of instructions from the external memory; update the pending instruction entries in the internal memory; and update the instructions stored in the external memory. The link list manager block configured to dispatch a instruction from the pending instruction entries in the internal memory to the transport layer.