Patent ID: 8589607

Claim:
A Serial Attached SCSI (SAS) expander comprising: a host physical link (PHY) adapted to couple with a Serial Advanced Technology Attachment (SATA) Tunneling Protocol (STP) initiator device; a target PHY adapted to directly couple with a SATA end device; a buffer coupled with the host PHY and coupled with the target PHY to store commands received from the STP initiator device to be forwarded to the SATA end device and to store data to be exchanged between the STP initiator device and the SATA end device; a programmable controller adapted to establish a connection between the host PHY and the target PHY to permit the transfer of commands from the STP initiator device to the SATA end device through the buffer and to permit the exchange of data between the STP initiator device and the SATA end device through the buffer; and a control circuit coupled with the host PHY and coupled with the target PHY, the control circuit adapted to store in the buffer commands received from the STP initiator device and further adapted to store in the buffer data received from the SATA end device over the established connection and further adapted to forward stored data from the buffer to the STP initiator device, wherein the control circuit is further adapted to store and forward commands and data without involvement of the programmable controller, wherein the programmable controller is further adapted to selectively enable use of Non-Zero Offset fields by the SATA end device when the SATA end device supports use of Non-Zero Offset fields in DMA Setup Device to Host (D2H) Frame Information Structures (FISs) in processing of data stored in the buffer to be forwarded by the control circuit to the STP initiator, and wherein the control circuit is further adapted to receive multiple data FISs from the SATA end device in response to a command in any order when use of Non-Zero Offset fields by the SATA end device is enabled, wherein the control circuit is further adapted to receive a Set Device Bits (SDB) FIS from the SATA end device indicative of the end of data transmission from the SATA end device, and wherein the control circuit, responsive to receipt of the SDB FIS, is further adapted to delay forwarding the SBD FIS to the STP initiator device until all data received from the SATA end device responsive to a command is transmitted from the buffer to the STP initiator device.