Error detection/correction and fault detection/recovery – Pulse or data error handling – Digital data error correction
Reexamination Certificate
1998-12-23
2002-05-14
Ton, David (Department: 2133)
Error detection/correction and fault detection/recovery
Pulse or data error handling
Digital data error correction
C714S750000
Reexamination Certificate
active
06389568
ABSTRACT:
FIELD OF THE INVENTION
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.
BACKGROUND OF THE INVENTION
As illustrated in 
FIG. 1
, data is typically transmitted back and forth between a host computer system or initiator 
10
 and peripheral devices or targets, such as disk drives 
5
, tape drives 
6
, or printers 
7
, over a data communication bus 
15
. The data communication bus 
15
 couples the initiator 
10
 and the target devices 
5
, 
6
, and 
7
 together and enables the exchange of data between the system and the devices. One type of data communication bus is a Small Computer System Interconnect (SCSI) data bus. A SCSI data bus can be configured in different ways and has several modes of operation. One configuration and mode of operation is known as SCSI wide bus which includes a sixteen bit data bus with associated control signals such as Busy (BSY), Select (SEL), Control/Data (C/D), Input/Output (I/O), Message (MSG), Request (REQ), Acknowledge (ACK), Attention (ATN), and Reset (RST). The SCSI data bus is connected to the initiator 
10
 via a host adapter 
12
 and is connected to target devices 
5
, 
6
, and 
7
 via device controllers 
8
, 
9
, and 
11
. Each device controller is matched to the specific type of device connected to the SCSI bus as shown in FIG. 
1
. The SCSI data bus 
15
 may be configured to include a plurality of target devices daisy chained together, where both the initiator, and the last target device connected to the bus (furthest from the initiator) are terminated with a bus terminator 
16
. The bus terminator 
16
 includes circuitry for regulating the maximum and the minimum voltage levels on the SCSI data bus 
15
.
Referring to 
FIGS. 1 and 2
, when information is transferred back and forth between the initiator 
10
 and any one of the plurality of target devices 
5
, 
6
 and 
7
, a handshaking protocol is used to control the transfer of data on the data bus 
15
 connected therebetween. When transferring data, for example, from the disk drive 
5
 to the host 
10
, the protocol commences the data transfer process by loading a data segment 
40
 on the data bus 
15
. The protocol then pauses for a period of time defined as the set-up time. The set up time generally provides a predetermined period of time for the data receiving entity to latch the data segment 
40
 previously loaded on to the data bus 
15
. Next, the disk drive target 
5
 asserts a REQ control signal 
20
 at a time A over a control line of the data bus 
15
. This REQ control signal 
20
 is received by the host initiator 
10
 and indicates to the initiator 
10
 that data (Data-
1
) is on the bus 
15
 and ready for transfer. The initiator 
10
 then latches the data and replies to the disk drive 
5
 with an assertion of an ACK control signal 
30
 at time B. This ACK control signal 
30
 indicates to the disk drive 
5
 that the initiator 
10
 has possession of the data segment 
40
. Some time after receiving the ACK control signal 
30
, e.g., at time C, the disk drive 
5
 deasserts the REQ control signal 
20
 for removing the data segment 
40
 from the data bus 
15
. The initiator 
10
 senses that the REQ control signal 
20
 has been deasserted and responds by deasserting the ACK control signal 
30
 at time D. The above described handshaking protocol steps are cyclically repeated for each successive data segment (byte or word) 
40
 loaded on the data bus 
15
 by the disk drive 
5
 during transfer of a plurality of data segments 
40
 from the disk drive target 
5
 to the host initiator 
10
.
Referring to 
FIG. 3
, generally one problem can occur when either the initiator 
10
 detects a REQ control signal 
20
 that was not sent over the bus 
15
 by the disk drive 
5
 or the disk drive 
5
 detects an ACK control signal 
30
 that was not sent over the bus 
15
 by the host 
10
. These false detections of REQ/ACK control signals, 
20
 and 
30
 respectively, occur as a result of noise pulse(s) 
35
 being introduced to the data bus 
15
. Noise pulses 
35
 can be introduced to the data bus 
15
, e.g. at time E, as a result of the bus 
15
 being exposed to EMI or RFI signals or by virtue of signal reflections occurring as a result of bus impedance mismatch or incorrect termination. Specifically, noise signals that appear on the data bus 
15
 can occur due to impedance mismatches between the initiator 
10
 and target devices 
5
, 
6
 or 
7
, or impedance mismatches between each of the plurality of target devices 
5
, 
6
 and 
7
. These noise pulses 
35
 are problematic to the handshaking protocol established between the initiator 
10
 and the target devices 
5
, 
6
 or 
7
, in that noise-pulse-induced false handshakes can cause either the initiator 
10
 or the target devices 
5
, 
6
 and 
7
 to prematurely proceed to the next step of the handshaking data transfer protocol and thereby drop or lose a data sequence within a data block transfer.
By way of example and as illustrated in 
FIG. 3
, in transferring a first data segment 
40
a 
from the disk drive 
5
 to the initiator 
10
 the drive 
5
 loads the first data segment 
40
a 
on to the data bus 
15
, pauses for the set-up time, and then asserts a REQ control signal 
20
 at time A. Next, the initiator 
10
 asserts the ACK control signal 
30
 at time B indicating that the initiator 
10
 has latched the first data segment 
40
a
. Shortly thereafter at time C the drive 
5
 responds by deasserting the REQ control signal 
20
 for removing the first data segment 
40
a 
from the bus 
15
. However, when a noise pulse 
35
 or signal affects the ACK signal 
30
, as illustrated in 
FIG. 3
, the noise pulse 
35
 erroneously appears to the disk drive 
5
 as a deassertion of the ACK control signal 
30
 by the initiator 
10
 at time E. This noise pulse 
35
 occurs prior in time to a nominal deassertion of the ACK control signal 
30
 by the initiator 
10
 as at time D (See FIG. 
2
).
The disk drive 
5
 then loads a second data segment 
40
b 
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 
40
a 
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 
40
a 
and erroneously associates this ACK control signal 
30
 as an acknowledgment by the initiator 
10
 that it has latched the second data segment 
40
b 
at time Z, FIG. 
3
. Even though the initiator 
10
 has not latched the second data segment 
40
b
, the disk drive 
5
 continues on with the handshaking protocol by deasserting the REQ control signal 
20
 associated with the second data segment 
40
b 
at time Y for removing the second data segment 
40
b 
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 
40
a
, in anticipation of the disk drive 
5
 sending a second data segment 
40
b
. 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 
40
b 
from the bus 
15
. Therefore, the drive 
5
 erroneously loads a third data segment 
40
c 
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 
40
b
, 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 
Hall Dana
Leshay Bruce A.
Amanze Emeka J.
Maxtor Corporation
Ton David
Zarrabian Michael
LandOfFree
Method and apparatus for detecting handshaking protocol... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for detecting handshaking protocol..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for detecting handshaking protocol... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2845807