# US 2014/0195714 A1 · Methods and structure for buffering host requests in serial attached scsi expanders

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0195714 A1
- Document ID: US20140195714A1
- Status: Published application
- Kind: A1
- Application number: 13/734,099
- Filed: 2013-01-04
- Published: 2014-07-10
- Earliest claimed: 2013-01-04
- Assignees: LSI Corporation
- Applicants: Lsi Corporation
- Inventors: Prashant Prakash Yendigiri; Giridhar Danayakanakeri; Raghavendra C. Nagendra
- Web page: https://patentgrep.com/patent/US20140195714A1

## CPC

- G06F 13/4022: {using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence)}
- G06F 13/4027: {using bus bridges (G06F13/4022 takes precedence)}
- G06F 13/4059: {where the synchronisation uses buffers, e.g. for speed matching between buses}
- H04L 49/90: Buffering arrangements
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

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.

## Claims

### Claim 1

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

### Claim 2 (depends on 1)

The SAS expander of claim 1 wherein:
the control unit is further operable to determine that the connection is available, operable to propagate an OAF from a PHY of the expander toward the target device, operable to determine that an OPEN ACCEPT has been received at the PHY from the target device, and operable to generate I/O commands for the target device based on the stored I/O from the SAS initiator.

### Claim 3 (depends on 2)

The SAS expander of claim 2 wherein:
the control unit is further operable to queue the stored I/O in the memory based on the order in which they were received, and to generate the I/O commands based on the order of the stored I/O from the SAS initiator.

### Claim 4 (depends on 2)

The SAS expander of claim 2 wherein:
the control unit is further operable to provide responses to the generated I/O commands from the target device to the SAS initiator.

### Claim 5 (depends on 1)

The SAS expander of claim 1 wherein:
The control unit is further operable to determine that a connection requested by a received OAF cannot be completed because a PHY of the expander used for the requested connection is already servicing a different connection.

### Claim 6 (depends on 5)

The SAS expander of claim 5 wherein:
the control unit is further operable to determine that the PHY is no longer servicing the different connection, operable to propagate an OAF from the PHY to the target device, operable to determine that an OPEN REJECT has been received at the PHY, and operable to retry propagating an OAF from the PHY to the target device until an OPEN ACCEPT is received.

### Claim 7 (depends on 1)

The SAS expander of claim 1 wherein:
the memory comprises double data rate type three synchronous dynamic random access memory (DDR3 SDRAM).

### Claim 8

A method for operating a Serial Attached SCSI (SAS) expander comprising multiple physical links with associated transceivers (PHYs), wherein each PHY is operable to receive incoming Open Address Frames (OAFs) from SAS initiators that request connections with target devices, the method comprising:
receiving, at the SAS expander, an OAF from a SAS initiator;
determining, at a control unit of the SAS expander, that a connection requested by the received OAF cannot be completed;
transmitting, via the expander, an OPEN ACCEPT to the SAS initiator that transmitted the OAF responsive to making the determination; and
storing incoming I/O received from the SAS initiator for the requested connection in a memory of the SAS expander, responsive to transmitting the OPEN ACCEPT.

### Claim 9 (depends on 8)

The method of claim 8 further comprising:
determining, at the control unit, that the connection is available;
propagating, via the expander, an OAF from a PHY of the expander toward the target device;
determining, at the control unit, that an OPEN ACCEPT has been received at the PHY from the target device; and
generating, at the control unit, I/O commands for the target device based on the stored I/O from the SAS initiator.

### Claim 10 (depends on 9)

The method of claim 9 further comprising:
queuing the stored I/O in the memory based on the order in which they were received; and
generating the I/O commands based on the order of the stored I/O from the SAS initiator.

### Claim 11 (depends on 9)

The method of claim 9 further comprising:
providing responses to the generated I/O commands from the target device to the SAS initiator.

### Claim 12 (depends on 8)

The method of claim 8 wherein:
determining that the requested connection cannot be completed comprises determining that a PHY of the expander used for the requested connection is already servicing a different connection.

### Claim 13 (depends on 12)

The method of claim 12 further comprising:
determining, at the control unit, that the PHY is no longer servicing the different connection,
propagating, via the expander, an OAF from the PHY to the target device;
determining, via the control unit, that an OPEN REJECT has been received at the PHY; and
retrying propagating an OAF from the PHY to the target device until an OPEN ACCEPT is received.

### Claim 14 (depends on 8)

The method of claim 8 wherein:
the memory comprises double data rate type three synchronous dynamic random access memory (DDR3 SDRAM).

### Claim 15

A non-transitory computer readable medium embodying programmed instructions which, when executed by a processor, are operable for performing a method for operating a Serial Attached SCSI (SAS) expander comprising multiple physical links with associated transceivers (PHYs), wherein each PHY is operable to receive incoming Open Address Frames (OAFs) from SAS initiators that request connections with target devices, the method comprising:
receiving, at the SAS expander, an OAF from a SAS initiator;
determining, at a control unit of the SAS expander, that a connection requested by the received OAF cannot be completed;
transmitting, via the expander, an OPEN ACCEPT to the SAS initiator that transmitted the OAF responsive to making the determination; and
storing incoming I/O received from the SAS initiator for the requested connection in a memory of the SAS expander, responsive to transmitting the OPEN ACCEPT.

### Claim 16 (depends on 8)

The medium of claim 8, the method further comprising:
determining, at the control unit, that the connection is available;
propagating, via the expander, an OAF from a PHY of the expander toward the target device;
determining, at the control unit, that an OPEN ACCEPT has been received at the PHY from the target device; and
generating, at the control unit, I/O commands for the target device based on the stored I/O from the SAS initiator.

### Claim 17 (depends on 16)

The medium of claim 16, the method further comprising:
queuing the stored I/O in the memory based on the order in which they were received; and
generating the I/O commands based on the order of the stored I/O from the SAS initiator.

### Claim 18 (depends on 16)

The medium of claim 16, the method further comprising:
providing responses to the generated I/O commands from the target device to the SAS initiator.

### Claim 19 (depends on 16)

The medium of claim 16 wherein:
determining that the requested connection cannot be completed comprises determining that a PHY of the expander used for the requested connection is already servicing a different connection.

### Claim 20 (depends on 19)

The medium of claim 19, the method further comprising:
determining, at the control unit, that the PHY is no longer servicing the different connection,
propagating, via the expander, an OAF from the PHY to the target device;
determining, via the control unit, that an OPEN REJECT has been received at the PHY; and
retrying propagating an OAF from the PHY to the target device until an OPEN ACCEPT is received.
