US2015067395A1PendingUtilityA1

Methods and structure for hardware serial advanced technology attachment (sata) error recovery in a serial attached scsi (sas) expander

55
Assignee: AVAGO TECHNOLOGIES LTDPriority: Jul 25, 2012Filed: Oct 21, 2014Published: Mar 5, 2015
Est. expiryJul 25, 2032(~6 yrs left)· nominal 20-yr term from priority
Inventors:Gurvinder Singh
G06F 11/0793G06F 11/0727G06F 11/073
55
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Methods and structure for enhanced SAS expander functionality to store and forward buffered information transmitted from an initiator device to a target device and to process errors in control circuits of the expander without intervention from the general purpose programmable processor of the expander. A PHY of an expander is associated with control circuits that comprise buffering of commands to be forwarded to an end device directly coupled to the PHY. The control circuits locally process errors detected from the end device. The control circuits comprise a SATA host circuit adapted to communicate with a SATA end device to detect and clear error conditions and a SATA target circuit to communicate with one or more STP initiator devices to report and clear error conditions reported by the end device. The structures and methods may also service SAS connections (in addition to STP connections).

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A storage expander, comprising:
 a controller operable to establish a connection between an initiator and a target, and to process storage commands between the initiator and the target;   a command buffer communicatively coupled to the controller, wherein the command buffer is selectively enabled by the controller to queue storage commands from the initiator to the target after the controller establishes the connection; and   error control circuitry configured with the command buffer and operable to process a first of the queued storage commands from the command buffer, to detect an error from the target in response to processing the first queued storage command, to clear the error on behalf of the controller, and to process the first queued storage command through the established connection.   
     
     
         2 . The storage expander of  claim 1 , further comprising:
 a host physical link (PHY) and a target PHY,   wherein the controller is operable to establish the connection between the host PHY and the target PHY via a Serial Advanced Technology Attachment (SATA) Tunneling Protocol (STP).   
     
     
         3 . The storage expander of  claim 2 , wherein:
 the host PHY is communicatively coupled to the initiator at a first speed, the target PHY is communicatively coupled to the target at a second speed that is different from the first speed, and   the command buffer is operable to receive the storage commands from the initiator at the first speed and to transfer the storage commands to the target at the second speed.   
     
     
         4 . The storage expander of  claim 3 , wherein:
 the error control circuitry comprises a SATA target circuit communicatively coupled to the host PHY and operable to communicate with the initiator by acting as the target.   
     
     
         5 . The storage expander of  claim 4 , wherein:
 the SATA target circuit is further operable to communicate with the initiator to report the error, and to discard storage commands that were queued in the command buffer before the error was detected.   
     
     
         6 . The storage expander of  claim 4 , wherein:
 the SATA target circuit is further operable to reserve a portion of the command buffer for exclusive use between the target and the initiator during existence of the connection.   
     
     
         7 . The storage expander of  claim 4 , wherein:
 the SATA target circuit is further operable to reject storage commands from the initiator and other initiators until the error is cleared.   
     
     
         8 . The storage expander of  claim 3 , wherein:
 the error control circuitry comprises a SATA host circuit communicatively coupled to the target PHY and operable to communicate with the target by acting as the initiator to clear the error on behalf of the controller.   
     
     
         9 . The storage expander of  claim 1 , wherein:
 the controller is further operable to establish another connection between another initiator and another target, to process other storage commands between the other initiator and the other target, to direct the command buffer to queue the other storage commands, and direct the control circuitry to process the other storage commands.   
     
     
         10 . A method operable in a storage expander, the method comprising:
 establishing a connection between an initiator and a target via a storage expander controller;   communicatively coupling a command buffer to the storage expander controller to queue storage commands based on the established connection;   processing a first of the queued storage commands from the command buffer;   detecting an error from the target in response to processing the first queued storage command;   clearing the error on behalf of the storage expander controller; and   processing the first queued storage command through the established connection on behalf of the storage expander controller.   
     
     
         11 . The method of  claim 10 , further comprising:
 establishing the connection between a host physical link (PHY) of the storage expander and a target physical link (PHY) of the storage expander via a Serial Advanced Technology Attachment (SATA) Tunneling Protocol (STP).   
     
     
         12 . The method of  claim 11 , further comprising:
 communicatively coupling the host PHY to the initiator at a first speed;   communicatively coupling the target PHY to the target at a second speed that is different from the first speed;   receiving the storage commands from the initiator at the first speed in the command buffer;   transferring the storage commands to the target from the command buffer at the second speed.   
     
     
         13 . The method of  claim 11 , further comprising:
 communicatively coupling a SATA target circuit in the storage expander to the host PHY; and   communicating, via the SATA target circuit, with the initiator by acting as the target.   
     
     
         14 . The method of  claim 13 , further comprising:
 communicating with the initiator from the SATA target circuit to report the error;   discarding storage commands that were queued in the command buffer before the error was detected.   
     
     
         15 . The method of  claim 13 , further comprising:
 reserving, via the SATA target circuit, a portion of the command buffer for exclusive use between the target and the initiator during existence of the connection.   
     
     
         16 . The method of  claim 13 , further comprising:
 rejecting, via the SATA target circuit, storage commands from the initiator and other initiators until the error is cleared.   
     
     
         17 . The method of  claim 11 , further comprising:
 communicatively coupling a SATA host circuit to the target PHY; and   communicating, via the SATA host circuit, with the target by acting as the initiator to clear the error on behalf of the controller.   
     
     
         18 . The method of  claim 10 , further comprising:
 establishing another connection between another initiator and another target;   processing other storage commands between the other initiator and the other target;   directing the command buffer to queue the other storage commands; and   processing the other storage commands from the command buffer.   
     
     
         19 . A Serial Attached Small Computer Systems Interface (SAS) expander, comprising:
 a buffer selectively enabled to store commands from an initiator to a target once a SAS connection is established between the initiator and the target through the SAS expander; and   control circuitry configured with the buffer to process a first of the storage commands from the buffer, to attempt a data write to an address of the target based on the first storage command, to receive an error from the target based on the attempted data write, to correct the error before a storage controller of the SAS expander is notified, to process the first storage command through the established connection, and to relinquish the connection to the storage controller after the first storage command is processed.   
     
     
         20 . The SAS expander of  claim 19 , wherein:
 the control circuitry is further operable to reserve a portion of the buffer for exclusive use between the target and the initiator during existence of the connection.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.