Pause Request Processing for Data Traffic Modification

Information

  • Patent Application
  • 20070206496
  • Publication Number
    20070206496
  • Date Filed
    March 02, 2007
    17 years ago
  • Date Published
    September 06, 2007
    16 years ago
Abstract
Apparatus and associated systems and methods may relate to a data traffic modification system that may include a processing module to handle SATA-compliant data transfers in which a source device or a target device issues requests to pause and subsequently to resume the data transfer. In various implementations, a data traffic modification device may selectively modify data traffic upon the occurrence of a predetermined condition. In one illustrative example, if a target device for the data transfer issues a pause request (e.g., to prevent a buffer overflow), the data traffic modification device may generate a pause acknowledge signal to the target device within a response time specified by the protocol. In another illustrative example, if a source device for the data transfer issues a pause request, the data traffic modification device may generate a pause acknowledge signal to the source device within the response time specified by the protocol.
Description

DESCRIPTION OF DRAWINGS


FIG. 1 illustrates a block diagram of an exemplary configuration capable of modifying data traffic.



FIG. 2 is a block diagram of an exemplary data traffic modification device.



FIGS. 3
a-c are block diagrams depicting exemplary configurations for using a data traffic modification device.



FIG. 4 is a flow diagram of an exemplary state machine for data traffic modification.



FIG. 5 is a table that illustrates an exemplary communication session among a SATA initiator, a data traffic modification device, and a SATA target, when the SATA target requests a hold.



FIG. 6 is a table that that illustrates an exemplary communication session among a SATA initiator, a data traffic modification device, and a SATA target, when the SATA initiator requests a hold.



FIG. 7 is a block diagram depicting an exemplary method for processing a pause request from a SATA target coupled to a data traffic modification device.



FIG. 8 is a block diagram depicting an exemplary process for handling a context using in a data traffic modification device.



FIGS. 9
a-c illustrate two exemplary data substitution processes being performed upon the data stream.



FIGS. 10
a-d illustrate an exemplary graphical user interface for viewing and editing data modification scenarios.


Claims
  • 1. A method of processing a waveform that comprises signals compliant with a version of a Serial Advanced Technology Attachment (SATA) protocol, the method comprising: receiving a data stream from a source device over a first SATA-compliant data link;selectively modifying the received data stream;sending the selectively modified data stream to a target device over a second SATA-compliant data link;receiving a SATA-compliant hold request signal from the target device;generating a SATA-compliant hold acknowledge signal to send to the target device in response to the received hold request signal;sending the received hold request signal to the source device;buffering the data stream after receiving the hold request signal and at least until the source device interrupts the data stream in response to the hold request signal;receiving a resume signal from the target device to resume transmission of the data stream; andsending the buffered data to the target device in response to receiving the resume signal.
  • 2. The method of claim 1, further comprising restoring a context of the data stream in response to receiving the resume signal and before resuming transmission of the data stream.
  • 3. The method of claim 1, wherein the SATA-compliant hold request signal comprises a SATA HOLD primitive.
  • 4. The method of claim 1, wherein the SATA-compliant hold acknowledge signal comprises a SATA HOLDA primitive.
  • 5. The method of claim 1, wherein selectively modifying the received data stream comprises modifying at least one bit in the data stream in response to detecting a trigger condition.
  • 6. The method of claim 5, wherein selectively modifying the received data stream further comprises detecting the trigger condition by monitoring the data stream.
  • 7. The method of claim 6, wherein the trigger condition comprises a user-specified data value in the data stream.
  • 8. The method of claim 5, wherein selectively modifying the received data stream further comprises receiving in a buffer the at least one bit to be modified before receiving data that fulfills the trigger condition.
  • 9. The method of claim 1, further comprising sending the hold acknowledge signal to the target device within up to 20 double words after receiving the hold request signal.
  • 10. The method of claim 1, further comprising monitoring signals from the target device to detect the hold request signal.
  • 11. The method of claim 1, wherein sending the received hold request signal to the source device comprises propagating the received hold request signal through a buffer.
  • 12. The method of claim 11, wherein the buffer comprises a first-in, first-out buffer.
  • 13. The method of claim 1, wherein the signal from the target device to resume transmission of the data stream comprises a SATA-compliant primitive to cancel a SATA-compliant continuation primitive in effect.
  • 14. The method of claim 1, wherein the target device comprises a data storage device.
  • 15. The method of claim 14, wherein the data storage device comprises a rotating data storage medium.
  • 16. The method of claim 1, further comprising sampling the received data stream.
  • 17. The method of claim 16, further comprising sampling the data stream with a protocol analyzer.
  • 18. The method of claim 1, wherein the data stream is bidirectional.
  • 19. The method of claim 1, wherein selectively modifying the data stream comprises selectively modifying data in data traffic in more than one direction.
  • 20. A method of processing a waveform that comprises signals compliant with a version of a Serial Advanced Technology Attachment (SATA) protocol, the method comprising: receiving a data stream at an input module of a data traffic modification device, the data traffic module device being configured to buffer the data stream in a buffer module, to selectively modify data in the received data stream, and to transmit the selectively modified data stream from an output module, wherein the input module is connectable to a source device and the output module is connectable to a target device;monitoring data in the received data stream;detecting in the monitored data a SATA-compliant signal to request a pause in the data stream;pausing the transmission of the selectively modified data stream in response to the pause request signal;identifying a state instruction most recently received by the data traffic modification device before receiving the pause request signal;storing the identified state instruction; andbefore resuming transmission of the data stream, sending the stored state instruction to the target device to reestablish the stored state of the data stream.
  • 21. The method of claim 20, wherein sending the stored state instruction to the target device comprises consecutively sending the stored state instruction at least twice to reestablish the stored state.
  • 22. The method of claim 20, wherein the SATA-compliant signal for requesting a pause in the data stream comprises a HOLD primitive according to a version of the SATA protocol.
  • 23. The method of claim 22, wherein the version of the SATA protocol is compatible with SATA 2.0.
  • 24. The method of claim 20, wherein the data stream comprises signals compliant with a version of a serial attached SCSI (small computer serial interface)) protocol.
  • 25. The method of claim 20, wherein the target device comprises one or more electronic data storage devices.
  • 26. The method of claim 20, the input module is connectable to a source device through a data bus expander device.
  • 27. The method of claim 20, the output module is connectable to a target device through a data bus expander device.
  • 28. The method of claim 20, wherein the data traffic modification device is further configured to selectively modify data in the data stream in response to a signal indicating the occurrence of a predefined condition.
  • 29. The method of claim 20, sending a pause acknowledgement signal to the source device within a predefined response specification after receiving the pause request signal.
  • 30. The method of claim 29, wherein the predefined response specification corresponds to receiving up to a threshold quantity of data in the data stream after receiving the pause request signal.
  • 31. The method of claim 20, wherein the threshold quantity of data is 20 double words.
  • 32. A method comprising: selectively modifying data traffic being conveyed in a data transfer between a source device and a target device, the data traffic in the data transfer comprising state information for the target device;storing the state information during the data transfer;receiving a request from the source device to pause the data transfer;pausing the data transfer in response to the request;receiving a signal from the source device to resume the data transfer;generating signals to send to the target device, the generated signals corresponding to the stored state information in effect at the time of pausing the data transfer; and,resuming the data transfer after sending the generated signals.
  • 33. The method of claim 32, wherein the generated signals comprise at least two sequential SATA-compliant primitive values corresponding to the stored state information.
  • 34. The method of claim 32, wherein receiving the request from the source device to pause the data transfer comprises monitoring the data traffic.
  • 35. The method of claim 34, wherein receiving the request from the source device to pause the data transfer further comprises detecting in the monitored data a SATA-compliant signal to request a pause in the data stream.
  • 36. The method of claim 32, wherein selectively modifying the data traffic comprises introducing a data error.
  • 37. The method of claim 36, wherein selectively modifying the data traffic further comprises updating an error detection value in the data traffic such that the updated error detection value corresponds to the selectively modified data with the introduced data error.
Provisional Applications (8)
Number Date Country
60779180 Mar 2006 US
60779039 Mar 2006 US
60779179 Mar 2006 US
60778834 Mar 2006 US
60779084 Mar 2006 US
60779085 Mar 2006 US
60779264 Mar 2006 US
60892093 Feb 2007 US