A circuit for monitoring and detecting data transfer protocol errors that occur during asynchronous transfer of data over a data bus. The circuit monitors bus request/acknowledge control lines in accordance with a predetermined handshaking protocol. In the event that an undefined or illegal logic state is detected on the data bus request or acknowledge control lines, the circuit provides an error value to the data sending entity. As a result of receiving this error value, the data sending entity can retry the data transmission over data bus.
|
1. A circuit arrangement for detecting data transfer protocol errors transmitted over a data bus between a sending unit and a receiving unit in accordance with a predetermined handshaking protocol, the bus including data lines for data transmission, a request line and an acknowledge line separate from the data lines for said handshaking protocol, the handshaking protocol on the request line and the acknowledge line having a logical sequence 11, 01, 00, 10, and returning to 11, and including a first detector circuit connected to monitor the request line for error events occurring on the acknowledge line and including a first logic circuitry for detecting a first erroneous sequence from 11 to 10, and for detecting a second erroneous sequence from 00 to 01, and for putting out an error condition indication upon detection of one of the first erroneous sequence and the second erroneous sequence.
5. A circuit arrangement for detecting data transfer protocol errors transmitted over a data bus between a sending unit and a receiving unit in accordance with a predetermined handshaking protocol, the bus including data lines for data transmission, a request line and an acknowledge line separate from the data lines for said handshaking protocol, the handshaking protocol on the request line and the acknowledge line having a logical sequence 11, 01, 00, 10, and returning to 11, and including a second detector circuit connected to monitor the acknowledge line for error events occurring on the request line and including a first logic circuitry for detecting a third erroneous sequence from 01 to 11, and for detecting a fourth erroneous sequence from 10 to 00, and for putting out an error condition indication upon detection of one of the third erroneous sequence and the fourth erroneous sequence.
13. A method for detecting data transfer protocol errors transmitted over a data bus between a sending unit and a receiving unit in accordance with a predetermined handshaking protocol, the bus including data lines for data transmission, a request line and an acknowledge line separate from the data lines for said handshaking protocol, the handshaking protocol on the request line and the acknowledge line having a logical sequence 11, 01, 00, 10, and returning to 11, the method including the steps of:
monitoring the request line for error values occurring on the acknowledge line, detecting a first erroneous sequence of true or false (1 to 0) on the acknowledge line while the request line remains true (1), detecting a second erroneous sequence of false to true (0 to 1) on the acknowledge line while the request line remains false (0), and putting out an error condition to a data sending unit on the bus indicating detection of one of the first erroneous sequence and the second erroneous sequence.
10. A circuit arrangement for detecting 11 data transfer protocol errors transmitted over a data bus between a sending unit and a receiving unit in accordance with a predetermined handshaking protocol, the bus including date lines for data transmission, a request line and an acknowledge line separate from the data lines for said handshaking protocol, the handshaking protocol on the request line and the acknowledge line having a logical sequence 11, 01, 00, 10, and returning to 11, and including a first detector circuit connected to monitor the request line for error events occurring on the acknowledge line and including a first logic circuitry for detecting a first erroneous sequence from 11 to 10, and for detecting a second erroneous sequence from 00 to 01, and for putting out an error condition indication upon detection of one of the first erroneous sequence and the second erroneous sequence, and further including a second detector circuit connected to monitor the acknowledge line for error events occurring on the request line and including a first logic circuitry for detecting a third erroneous sequence from 01 to 11, and for detecting a fourth erroneous sequence from 10 to 00, and for putting out an error condition indication upon detection of one of the third erroneous sequence and the fourth erroneous sequence.
2. The circuit arrangement set forth in
a first flip-flop having an input coupled to an inverter, the inverter being coupled to the request line, a non-inverting clock input coupled to the acknowledge line, and a first non-inverting output, a second flip-flop having an input directly coupled to the request line, an inverting clock input coupled to the acknowledge line, and a second non-inverting output, and first selector means for selecting either the first non-inverting output or the second non-inverting output as an error condition whenever either output is true.
3. The circuit arrangement set forth in
4. The circuit arrangement set forth in
6. The circuit arrangement set forth in
a third flip-flop having an input coupled to an inverter, the inverter being coupled to the acknowledge line, a non-inverting clock input coupled to the request line, and a first non-inverting output, a fourth flip-flop having an input directly coupled to the acknowledge line, an inverting clock input coupled to the request line, and a second non-inverting output, and second selector means for selecting either the first non-inverting output or the second non-inverting output as an error condition whenever either output is true.
7. The circuit arrangement set forth in
8. The circuit arrangement set forth in
9. The circuit arrangement set forth in
11. The circuit arrangement set forth in
a first flip-flop having an input coupled to an inverter, the inverter being coupled to the request line, a non-inverting clock input coupled to the acknowledge line, and a first non-inverting output, a second flip-flop having an input directly coupled to the request line, an inverting clock input coupled to the acknowledge line, and a second non-inverting output, and first selector means for selecting either the first non-inverting output or the second non-inverting output as an error condition whenever either output is true; and wherein the second logic circuitry comprises: a third flip-flop having an input coupled to an inverter, the inverter being coupled to the acknowledge line, a non-inverting clock input coupled to the request line, and a first non-inverting output, a fourth flip-flop having an input directly coupled to the acknowledge line, an inverting clock input coupled to the request line, and a second non-inverting output, and second selector means for selecting either the first non-inverting output or the second non-inverting output as an error condition whenever either output is true. 12. The circuit arrangement set forth in
14. The method set forth in
monitoring the acknowledge line for error events occurring on the request line, detecting a third erroneous sequence of false to true (0 to 1) on the request line while the acknowledge line remains true (1), detecting a fourth erroneous sequence of true to false (1 to 0) on the request line while the acknowledge line remains false (0), and putting out an error condition to a data receiving unit on the bus indicating detection of one of the third erroneous sequence and the fourth erroneous sequence.
|
The invention relates generally to a method and logic circuitry for detecting handshaking protocol errors that may occur during asynchronous transfer of data over a data bus. More particularly, the present invention relates to detecting handshaking protocol error conditions and communicating the error conditions to a data sender to enable a subsequent retry of the data transmission.
As illustrated in
Referring to
Referring to
By way of example and as illustrated in
The disk drive 5 then loads a second data segment 40b on the data bus 15 for subsequent transfer to the initiator 10. Meanwhile, despite the presence of the noise pulse 35 on the ACK line, the initiator 10 still has not actually deasserted the ACK control signal 30 associated with the first data segment 40a being transferred and associated therewith. However, the disk drive 5 detects the noise pulse 35 as an asserted ACK control signal 30 associated with the first data segment 40a and erroneously associates this ACK control signal 30 as an acknowledgment by the initiator 10 that it has latched the second data segment 40b at time Z, FIG. 3. Even though the initiator 10 has not latched the second data segment 40b, the disk drive 5 continues on with the handshaking protocol by deasserting the REQ control signal 20 associated with the second data segment 40b at time Y for removing the second data segment 40b from the bus 15. The initiator 10 then deasserts the ACK control signal 30 at time D, which the initiator believes to be associated with the first data segment 40a, in anticipation of the disk drive 5 sending a second data segment 40b. However, in response to the noise pulse 35 on the ACK path 30 the disk drive 5 has already loaded and removed the second data segment 40b from the bus 15. Therefore, the drive 5 erroneously loads a third data segment 40c onto the data bus 15, pauses for the set-up time and asserts the REQ control signal 20 associated therewith at a time F. The initiator 10 then asserts ACK at a time G, and so forth.
Since the initiator 10 missed detecting the second data segment 40b, the initiator 10 will detect subsequent data segments transferred by the disk drive 5 with a one-data-segment 40 shift. This error condition results in the data bus 15 hanging up (stops responding) after the last data segment 40 has been transferred by the disk drive, because the initiator 10 continues to expect one more data segment to be transferred in order to complete the block transfer. Generally, during transfer of data segments 40 from the disk drive 5 to the initiator 10, a plurality of errors can occur as a result of noise pulses 35 being introduced to either the REQ control signal 20 or the ACK control signal 30 from a variety of sources and causes.
Referring to
Referring to
Additionally, the falling edge of the noise pulse 37 erroneously appears as a second assertion of the REQ control signal 20b. This erroneous second assertion of the REQ control signal 20b results in the initiator 10 loading a second data segment 40b onto the data bus 15. Even though the disk drive 5 did not actually request the second data segment 40b, the initiator 10 asserts the ACK control signal 30b at a time Q, indicating to the disk drive 5 that a second data segment 40b, as erroneously requested, is ready for transfer to the disk drive 5. Thereafter, the disk drive 5 deasserts the REQ control signal 20b at a time R, which the drive 5 associates with the first data segment 40a, for latching the second data segment 40b. Next, the initiator deasserts the ACK control signal 30b at a time S in order to remove the second data segment 40b from the data bus 15 and to return the bus 15 to an idle state.
In the absence of further noise disturbances introduced to the REQ control signal 20b, the handing shaking protocol is cyclically repeated for transferring subsequent data segments 40 from the initiator 10 to the disk drive 5. However, these subsequent data segments 40 transferred to the disk drive 5 will have a one-data-segment shift. The one-data-segment shift is a direct result of the disk drive 5 initially requesting a first data segment 40a, but actually receiving the first segment 40a and the second segment 40b. This one-data-segment shift causes the data bus 15 to hang upon completion of the data segment 40 transfers.
Generally, when transferring data segments 40 from the initiator 10 to the disk drive 5, a plurality of errors can accumulate as a result of these noise pulses 35 being introduced to either the REQ control signal 20b (
Therefore, a hitherto unsolved need has remained for a method and circuit for detecting handshaking protocol errors occurring during asynchronous transfer of data segments over a data bus. Moreover, a need exists for a method and a circuit that communicates these detected handshaking protocol errors to the sending party, in order to enable a subsequent retry of the data transmission.
An object of the present invention is to monitor a data bus and detect data transfer protocol errors that occur during asynchronous transfer of data over the bus in a manner that overcomes limitations and drawbacks of the prior art.
Another object of the present invention is to communicate a detected handshaking protocol error to either the initiator, e.g. host computer, or the target, e.g. a disk drive, so that a subsequent retry of the data transmission can be attempted.
One more object of the present invention is to provide a detector logic arrangement for detecting errors occurring in a handshake transfer protocol having a plurality of states which are progressively reached during a data transfer handshaking protocol, such that states which are reached out of order indicate the presence of protocol errors on the bus.
In accordance with principles of the present invention, a detector circuit is provided for detecting data transfer protocol errors. The circuit generally monitors the REQ and ACK control lines of the data bus to detect if the control values associated therewith have entered into an undefined logical state. As a nominally correct sequence of REQ and ACK signals are detected on the bus, corresponding states of the error detector circuit remain benign. If a state is reached out of sequence, a handshake protocol error has occurred, and this condition is detected by the detector circuit and may then be signaled to the sending device to enable a data transfer retry.
In one preferred embodiment, a circuit for detecting data transfer protocol errors of the present invention comprises a pair of logical flip-flops, including a first flip-flop logical circuit having a data input D for receiving a REQ control value from the data bus via an inverter. The first flip-flop further includes a clock input which receives an ACK control value from the data bus. The first flip-flop is advanced one clock cycle for each detected rising edge of the ACK control value, and provides a first output value from a non-inverting (Q) output. Additionally, the circuit for detecting data transfer protocol errors includes a second flip-flip logical circuit having an input D for receiving the REQ control value from the data bus. The second flip-flop also has an inverting clock input for receiving the ACK control value from the data bus. With its inverted clock input the second flip-flop is advanced one clock cycle at each falling edge of the ACK control value. The second flip-flop provides a second output value from a non-inverting (Q) output.
If ACK goes high while REQ is low, the first flip-flop puts out an error condition. If REQ is high when ACK goes low, the second flip-flop puts out an error condition. An OR-gate logical circuit receives the output values from the first flip-flop and the second flip-flip and puts out an error value whenever either flip-flop output is true. This error value is communicated to the disk drive controller so that the disk drive can retry the data transmission operation. An alternative preferred embodiment of error detector circuit, preferably for use at a host or initiator unit, provides a complementary error detection capability. If REQ goes false while ACK is false a first flip-flop generates an error signal. If REQ goes true while ACK is true, a second flip-flop generates an error signal. An OR-gate then passes either error signal to the host or initiator unit.
These and other objects, advantages, aspects and features of the present invention will be more fully understood and appreciated upon consideration of the following detailed description of a preferred embodiment, presented in conjunction with the accompanying drawings.
In the drawings:
Referring to
Referring to
The target error detection circuit 50 further includes a second flip-flop 57 logical circuit. The second flip-flop 57 has a D input coupled directly with the REQ control line 53 defined within the data bus 15. The second flip-flop 57 receives a REQ control value 20 over the REQ control line 53 from the data bus 15. An inverting clock input of the second flip-flop 57 is directly coupled with the ACK control line 55 defined within the data bus 15. The ACK control line 55 provides the second clocking integrated circuit 58 with an ACK control value 30. The second flip-flop 57 is advanced one clock cycle for each detected falling edge of the ACK control value 30. Again, each time the clock input 58 sees a falling edge of the ACK control value, the second flip-flop 57 provides an updated second output value at a non-inverting (Q) output line 59. With reference to
The detector circuit 50 includes an OR-gate logical circuit 61 which has a first input connected to receive the first output value from the first flip-flop 51 over line 56, and which has a second input connected to receive the second output value from the second flip-flip 57 over line 59. Based on these output values provided by the flip-flops 51 and 57, the OR-gate 61 provides an output 63 which when true asserts an error value indicating detection of data transfer protocol errors transmitted over the data bus 15. In one instance, if the OR-gate 61 provides a value equivalent to a logic one, then a data transfer protocol error has been transmitted over the data bus 15.
A host error detector circuit 50b is shown in FIG. 8. The error detection circuit 50b is connected to the host computer 10 (
The error detection circuit 50b further includes a second flip-flop logical circuit 57b. The second flip-flop 57b has a D input coupled directly with the ACK control line 55 defined within the data bus 15. The second flip-flop 57b further includes a non-inverting clock input 58b coupled directly with the REQ control line 53b defined within the data bus 15. The REQ control line 53b provides the clock input 58b with the REQ control value 30b. The second flip-flop 57b is advanced one clock cycle for each detected rising edge of the REQ control value 30b. Again, each time the clock input 58b is advanced one clock cycle, the second flip-flop 57b provides an updated second output value at a non-inverting (Q) output on line 59b. With reference to
An OR-gate integrated circuit 61b receives the first output value from the first flip-flop 51b over line 56b as well as the second output value from the second flip-flip 57b over line 59. Based on these output values provided by the flip-flops 51b and 57b, the OR-gate 61b provides an updated error value indicative of data transfer protocol errors transmitted over the data bus 15. In one instance, if the OR-gate 61b provides a value equivalent to a logic one, then a data transfer protocol error has been transmitted over the data bus 15.
Referring to
Referring to
Referring to
Again referring to
The
The above described circuit for detecting data bus protocol errors has many advantages over the prior art, such as, providing path for notifying the disk drive controller or host that the handshaking protocol has entered an erroneous state. As a result, the target device bus controller or host bus controller can retry the data segment transfer until it is successfully completed. The
Having thus described an embodiment of the invention, it will now be appreciated that the objects of the invention have been fully achieved, and it will be understood by those skilled in the art that many changes in construction and widely differing embodiments and applications of the invention will suggest themselves without departing from the spirit and scope of the invention. The disclosure and the description herein are purely illustrative and are not intended to be in any sense limiting.
Patent | Priority | Assignee | Title |
6810454, | Sep 04 1998 | Acacia Research Group LLC | Information processing apparatus having a bus using the protocol of the acknowledge type in the source clock synchronous system |
6971049, | May 23 2002 | International Business Machines Corporation | Method and apparatus for detecting and isolating failures in equipment connected to a data bus |
7343522, | Aug 22 2003 | Fujitsu Limited | Apparatus having a transfer mode abnormality detecting function, storage controlling apparatus, and interface module for the storage controlling apparatus |
8180466, | Nov 21 2003 | Rosemount Inc.; Rosemount Inc | Process device with supervisory overlayer |
8219867, | Aug 24 2005 | Unwired Planet, LLC | Forward feedback for UL macrodiversity |
8443274, | Feb 06 2009 | IHP GMBH - INNOVATIONS FOR HIGH | Test circuit for testing execution of a handshake protocol and method for testing execution of handshake protocol |
Patent | Priority | Assignee | Title |
5084871, | Oct 16 1987 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Flow control of messages in a local area network |
5159684, | May 24 1989 | Pitney Bowes Inc. | Data communication interface integrated circuit with data-echoing and non-echoing communication modes |
5544311, | Sep 11 1995 | Mindspeed Technologies | On-chip debug port |
5550848, | May 13 1994 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Signaling protocol for a noisy communications channel |
6025931, | Oct 15 1996 | OPENPRINT LLC | Facsimile to E-mail communication system with local interface |
Date | Maintenance Fee Events |
Oct 28 2005 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Nov 16 2009 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Nov 14 2013 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
May 14 2005 | 4 years fee payment window open |
Nov 14 2005 | 6 months grace period start (w surcharge) |
May 14 2006 | patent expiry (for year 4) |
May 14 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 14 2009 | 8 years fee payment window open |
Nov 14 2009 | 6 months grace period start (w surcharge) |
May 14 2010 | patent expiry (for year 8) |
May 14 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 14 2013 | 12 years fee payment window open |
Nov 14 2013 | 6 months grace period start (w surcharge) |
May 14 2014 | patent expiry (for year 12) |
May 14 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |