Patent Publication Number: US-8122298-B2

Title: Methods and systems for capturing error information in a SATA communication system

Description:
BACKGROUND 
     1. Field of the Invention 
     The invention relates generally to management of Serial Advanced Technology Attachment (SATA) system and more specifically relates to methods and structure for capturing error information regarding operation of a SATA device for evaluation by analytical devices. 
     2. Related Patents 
     This patent is related to commonly owned U.S. patent application Ser. No. 11/644,549 entitled Serial Advanced Technology Attachment (SATA) and Serial Advanced Small Computer System Interface (SCSI) (SAS) Bridging” which is hereby incorporated by reference. This patent is also related to commonly owned U.S. patent application Ser. Nos. 08-0382 and 07-2480 filed herewith which are also hereby incorporated by reference. 
     3. Discussion of Related Art 
     Storage systems may incorporate any number of storage devices (e.g., disk drives, CDROMs, etc.) ranging from a single storage device in a personal computer or workstation to hundreds if not thousands of storage devices in large scale storage applications. SATA storage devices are popular as low cost devices that provide adequate performance for many storage applications. SATA protocols utilize a high speed serial link to transmit frames between an initiator device (such as a host system or storage controller) to a target device (such as a disk drive or other storage devices). The SATA frame exchanges include information relating to register values that were previously exchanged over a parallel bus structure (PATA). 
     SATA exchanges are often embedded within a Serial Attached SCSI (SAS) networks wherein one or more SAS initiators communicate via a network of zero or more intermediate SAS expanders to one or more target devices. Where the target devices are SATA devices, a SAS initiator may connect to the SATA target device such that the SATA protocol is embedded (“tunneled”) within the SAS standards using the SATA Tunneling Protocol (STP). 
     Regardless of the connectivity to a SATA target device (i.e., direct attachment to a SATA initiator or attachment to a SATA initiator through a SAS network using the STP protocol) it is a challenge to debug errors that arise in processing of the SATA exchanges. The SATA protocols between an initiator and a SATA target device do not provide a mechanism to capture, display, or otherwise present to an engineer any useful error information beyond the SATA frames per se. Design or field engineers need such additional error information to evaluate or debug a detected problem in communications with a SATA target device. Though the initiator device may have useful information to aid in determining the underlying problem there is no standardized SATA protocol exchange to permit that information to be presented to the engineer. Thus it is an ongoing challenge to obtain useful information to identify and correct a problem in a SATA device coupled to an initiator device. 
     SUMMARY 
     The present invention solves the above and other problems, thereby advancing the state of the useful arts, by providing methods and systems for presenting error information as frames on the SATA communication medium for capture and evaluation by an engineer using a SATA bus analyzer or other data capture and analysis devices or techniques. Features and aspects hereof provide for asserting a soft reset conditions (“SRST”) in a SATA frame such that all following frames until the soft reset condition is cleared will be discarded by the SATA target device. The discarded frames may contain any useful error information regarding the present state of the SATA target device and its recent communications with the initiator device. 
     In one aspect hereof, a communication system is provided. The system includes an initiator device and a Serial Advanced Technology Attachment (SATA) target device coupled by a communication medium. The initiator device is adapted to detect an error condition. The initiator device is further adapted responsive to detecting the error condition to initiate a soft reset condition on the SATA target device and to transmit SATA frames containing error information regarding the detected error condition to the SATA target device while the SATA target device is in a soft reset state. 
     Another aspect hereof provides a method for evaluating error conditions in a system including a SATA target device coupled to an initiator device. The method includes detecting an error condition and forcing the SATA target device into a soft reset condition. The method then sends error information from the initiator device to the SATA target device while the SATA target device is in the soft reset condition. The sent error information is then captured using an error analyzer to evaluate the error condition. 
     Yet another aspect hereof provides a system including a plurality of SAS storage controllers coupled to a SATA storage device through a bridge device. The bridge device is adapted to detect an error condition and, responsive to detecting the error condition, initiates a soft reset condition on the SATA storage device. The bridge device then transmits SATA frames containing error information regarding the detected error condition to the SATA target device while the SATA target device is in a soft reset state. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of an exemplary system having an enhanced initiator device adapted to transmit error information to the SATA target device while the SATA target device is held in a soft reset condition in accordance with features and aspects hereof. 
         FIG. 2  is a block diagram of an exemplary system having an enhanced SAS/SATA bridge device coupling one or more SAS initiators to a SATA storage device and adapted to transmit error information to the SATA device while the SATA device is held in a soft reset condition in accordance with features and aspects hereof. 
         FIG. 3  is a flowchart describing an exemplary method in accordance with features and aspects hereof to force a SATA device into soft reset condition and to then transmit error information to the SATA device while the soft reset condition is held. 
     
    
    
     DETAILED DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a block diagram of a system  100  including an enhanced initiator device  102  coupled to a SATA target device  106  through an appropriate serial communication link  150 . Serial communication link  150  may be a suitable high speed serial link capable of transmitting SATA exchanges between the enhanced initiator device  102  and the SATA target device  106 . Initiator device  102  may be, for example, a storage controller device in a larger storage subsystem  100  adapted for controlling one or more SATA target devices  106  (e.g., disk drives) within the storage subsystem  100 . In addition, initiator device  102  may be a host bus adapter (HBA) integrated within a computing device such as a personal computer, workstation, server computing node, etc. Such a host bus adapter couples the computing system to one or more SATA target devices  106 . SATA target device  106  may be, for example, a storage device such as a disk drive, CD ROM, or other common storage devices. 
     Error analyzer  104  may be coupled to communication medium  150  for purposes of monitoring and analyzing exchanges between initiator device  102  and SATA target device  106 . Error analyzer  104  may be, for example, a bus analyzer and in particular a SATA bus analyzer adapted to capture and analyze SATA frames exchanged over the communication medium  150 . Such bus analyzer devices are commercially available and well-known to those of ordinary skill in the art. Error analyzer  104  serves as a passive analyzer monitoring the exchanges on the communication medium  150  for presentation to an engineer for purposes of evaluating or debugging error conditions arising in the exchanges on medium  150 . 
     As noted above, when an error condition is detected, the SATA protocols provide no particular mechanism to aid in debugging an error condition by revealing error status or error information that may be available within initiator device  102  or within SATA target device  106 . Enhanced initiator device  102  is therefore adapted in accordance with features and aspects hereof to detect the presence of an error condition during its interaction with SATA target device  106 . Responsive to detecting such an error condition, enhanced initiator device  102  is further adapted to force a reset soft reset condition in SATA target device  106 . While held in the soft reset condition, SATA target device  106  will discard any transmissions received from the enhanced initiator device  102 . Thus, in accordance with features and aspects hereof, while maintaining the soft reset condition of SATA target device  106 , enhanced initiator device  102  transmits frames containing error information useful for an engineer to help diagnose or evaluate an error condition. The error information contained in the transmitted frames will be captured by error analyzer  104  to permit an engineer to evaluate and/or debug the error condition encountered. 
     The error information may include one or more exemplary components such as information regarding Cyclic Redundancy Check (CRC) error conditions, regarding contents of registers of the SATA target device  106 , regarding status information regarding firmware operable within enhanced initiator device  102 , or any other information potentially useful to an engineer to debug or evaluate a detected error condition. 
     Features of enhanced initiator device  102  may be implemented as custom firmware or circuitry within the enhanced initiator device  102 . Such design choices will be readily apparent to those of ordinary skill in the art. Numerous additional elements and aspects of the enhanced initiator device  102  as well as SATA target device  106  present in a fully functional component will be readily apparent to those of ordinary skill in the art and are omitted from this discussion merely for simplicity and brevity. 
       FIG. 2  shows another exemplary system  200  in accordance with features and aspects hereof adapted to transmit error information to a SATA target device  106  responsive to detection of an error condition. As above, the error information may be captured by an error analyzer  104  coupled to the high speed serial link (communication medium)  150  which is, in turn, coupled to SATA target device  106 . In system  200  of  FIG. 2 , an enhanced SAS/SATA bridge device  202  provides the enhanced features and aspects hereof to detect an error condition and to force a soft reset condition on SATA target device  106  in response to the detected error. While holding the soft reset condition on SATA target device  106 , enhanced SAS/SATA bridge device  202  may transmit error information useful to a design or field engineer to evaluate or debug the detected error condition. As generally taught by the related patent applications noted above, enhanced SAS/SATA bridge device  202  may communicate with one or more SAS initiator devices  204  through a SAS domain fabric  260 . The SAS domain fabric  260  may include any number of SAS expander devices to allow coupling of multiple SAS initiators to the enhanced bridge device  202 . Enhanced bridge device  202  and each SAS initiator  204  are coupled to the SAS domain fabric  260  through appropriate SAS communication links  250 . The error condition detected by bridge device  202  may be errors in communications with the SATA target device  106 , errors in communications with the SAS initiators  204 , errors in communication with the SAS domain fabric  260 , or any other error condition sensed in operation of system  200 . 
     Those of ordinary skill in the art will recognize that bridge device  202  may present itself in the SAS domain (i.e., to the domain fabric  260  and/or to the initiators  202 ) as a device capable of accepting any SAS communication protocols including, for example, STP, Serial SCSI Protocol (SSP), and Serial Management Protocol (SMP). Bridge device  202  may therefore translate as required any SAS protocols into appropriate exchanges with SATA target device  206 . Such features are discussed in further detail in the related patents incorporated herein by reference. Further, those of ordinary skill in the art will readily recognize additional and equivalents components present within a fully functional enhanced SAS/SATA bridge device  202  as discussed in the related patents. Such additional components are omitted from this discussion merely for simplicity and brevity. 
       FIG. 3  is a flowchart describing an exemplary method in accordance with features and aspects hereof for providing error information useful for evaluation and debug of an error condition detected in communications with a SATA target device. The method of  FIG. 3  may be performed generally within an appropriate initiator device or bridge device as discussed above with respect to  FIGS. 1 and 2 . As noted further herein below, one step of the flowchart a  FIG. 3  is performed by an external error analyzer device coupled to capture the error information generated by the method. Step  300  within the initiator/bridge device detects an error condition in its normal communication with an attached SATA target device. Responsive to detecting such an error condition, step  302 , performed within the initiator/bridge device, forces the SATA target device into a soft reset condition. For example, the initiator/bridge device may generate a SATA Register Frame Information Structure (FIS) that includes the SRST bit set appropriately to cause the SATA target device to enter a soft reset condition. The generated FIS is transmitted from the initiator/bridge device to the SATA target device to initiate a soft reset condition therein. As is standard and specified for SATA devices, all subsequent received frames are discarded until an appropriate frame is received to clear the soft reset condition (i.e., a frame with the SRST bit appropriately reset). 
     While holding the SATA target device in the soft reset condition, step  304  within the initiator/bridge device next transmits one or more SATA frames in which error information is embedded. As noted above, the error information may include CRC errors, SATA register contents, status of firmware within the initiator/bridge device, etc. Where the initiator/bridge device communicates with other devices using SAS protocols (e.g., SSP, STP, or SMP), error information may also include errors detected in the SAS communication links. Further, those of ordinary skill in the art will recognize that any combination of such exemplary error information may be transmitted to the SATA target device while it is held in a soft reset condition. Still further, those of ordinary skill in the art will readily recognize numerous other examples of error information that may be useful for a design or field engineer to evaluate or debug an error condition detected in communications with the SATA device or, in the context of a SAS/SATA bridge device, detected in “upstream” communications with other SAS devices. 
     An appropriate error analyzer coupled to the communication link between the initiator/bridge device and the SATA target device may then capture the transmitted error information as indicated by step  306 . Thus, step  306  is a step performed by an appropriate error analyzer as distinct from the rest o the steps of  FIG. 3  performed within the initiator/bridge device. 
     Directing the reader now back to method steps performed within the initiator/bridge device, step  308  clears the soft reset condition on the SATA target device by transmission of an appropriately formatted SATA frame. Lastly, step  310  within the initiator/bridge device performs appropriate error recovery processing to handle the detected error condition of the SATA target device as appropriate for the particular application. Such normal error recovery processing may include completing other reset operations of the SATA device, informing any upstream host device drivers of the detected error condition, and performing any appropriate retries. Such normal error recovery processing is well known to those of ordinary skill in the art and details of such processing are omitted herein for simplicity and brevity of this discussion. 
     Those of ordinary skill in the art will recognize numerous equivalent and additional method steps that may be performed as a matter of design choice. Such additional and equivalent method steps are omitted herein for simplicity and brevity of this discussion. 
     While the invention has been illustrated and described in the drawings and foregoing description, such illustration and description is to be considered as exemplary and not restrictive in character. One embodiment of the invention and minor variants thereof have been shown and described. Protection is desired for all changes and modifications that come within the spirit of the invention. Those skilled in the art will appreciate variations of the above-described embodiments that fall within the scope of the invention. As a result, the invention is not limited to the specific examples and illustrations discussed above, but only by the following claims and their equivalents.