SAS Expander Buffering for Connection Spoofing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In SAS domains, incoming requests are often rejected or dropped when directed to PHYs that are already servicing a point-to-point connection, leading to increased workload for the requesting device without improving I/O processing speed.

Innovation Solution

SAS expanders store incoming I/O from initiators in memory and respond with an OPEN ACCEPT, allowing them to 'spoof' a connection, thereby preventing request rejection and enabling processing when the connection becomes available.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the expander rejects requests directed to busy PHYs, then the expander maintains connection integrity, but the initiator experiences increased workload and reduced I/O processing speed

Engineering Contradiction:
Improveconnection integrityVSAvoidI/O processing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The expander performs preliminary actions by storing incoming I/O requests in a buffer before the connection is fully established. This allows the initiator to send requests without waiting for connection availability, and the expander processes these buffered requests once the PHY becomes available, thereby maintaining connection integrity while improving I/O processing speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The buffer acts as an intermediary between the initiator and the busy PHY. Instead of directly rejecting requests, the expander intermediates by temporarily holding requests in the buffer and forwarding them when the connection becomes available. This resolves the contradiction by maintaining reliability through proper connection management while improving productivity through non-blocking request handling.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the initiator re-sends rejected requests, then the request may eventually be processed, but the initiator's processing power is wasted and I/O efficiency does not improve

Engineering Contradiction:
Improverequest deliveryVSAvoidinitiator processing power
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The expander provides self-service by automatically managing the retry logic. Instead of the initiator repeatedly sending requests and handling rejections, the expander buffers the requests and automatically retransmits them when the PHY becomes available. This eliminates the need for initiator retry logic, conserving initiator processing power while ensuring reliable request delivery.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The buffer serves as an intermediary that absorbs the retry mechanism. The expander intermediates between the initiator and the target device, handling the complexity of connection availability and request retransmission. This resolves the contradiction by ensuring reliable delivery through automated retry management while reducing initiator energy consumption by eliminating retry logic from the initiator.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If the expander buffers incoming I/O requests, then request processing efficiency improves, but the expander requires additional memory resources

Engineering Contradiction:
Improverequest processing efficiencyVSAvoidmemory resources
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The expander implements partial buffering by allocating memory resources dynamically based on actual buffer occupancy and connection availability. Rather than pre-allocating large fixed buffers for all possible scenarios, the system buffers requests only when necessary and releases buffer space when connections become available. This resolves the contradiction by improving request processing efficiency through selective buffering while minimizing memory resource consumption through dynamic allocation.

Inventive Principle:
Principle #16Partial or excessive action

4Productivity

If the expander spoofs connection availability, then the initiator can send requests without retry overhead, but the connection is not actually ready for data transfer

Engineering Contradiction:
ImproveI/O processing efficiencyVSAvoidconnection readiness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The expander creates a virtual copy of the connection state by acknowledging requests and buffering data locally before actual connection establishment. The buffered I/O represents a copy of the data that will be transferred once the connection is ready. This resolves the contradiction by improving I/O processing efficiency through immediate request acknowledgment while maintaining connection reliability by ensuring data is properly transferred once the PHY becomes available.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9129068B2Methods and structure for buffering host requests in serial attached SCSI expanders
Publication Date: 2015.09.08 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US9129068B2 patent drawing
  • US9129068B2 patent drawing
  • US9129068B2 patent drawing

AI summary

Methods and structure are provided for “spoofing” an active connection between a Serial Attached SCSI (SAS) initiator and a SAS target. The structure includes a SAS expander, comprising multiple physical links with associated transceivers (PHYs), switching hardware, a memory, and a control unit. Each PHY is operable to receive incoming Open Address Frames (OAFs) from SAS initiators that request connections with target devices. The switching hardware is operable to selectively link PHYs of the expander with each other to enable connections between initiators and target devices. The control unit is operable to determine that a connection requested by a received OAF cannot be completed, is operable to transmit an OPEN ACCEPT to the SAS initiator that transmitted the OAF responsive to making the determination, and is operable to store I/O received from the SAS initiator for the requested connection in the memory, responsive to transmitting the OPEN ACCEPT.