NCR Corporation X3T9.2/88-156 Date: December 1, 1988 To: X3T9.2 From: John Lohmeyer Subj: Detect B cable proposal (Wide Data Transfer Option) In X3T9.2/88-114, Tom Wicklund suggested that a mechanism be defined to detect the presence or absence of the B cable. The current protocols would permit two wide-capable devices to negotiate for wide data transfer, not detecting any problem until they actually enter a data phase and attempt to transfer data. At this point, the two devices would hang the bus -- not a particularly "friendly" detection mechanism. The Austin working group discussed several possible approaches including: 1. Add a new signal. 2. Require the target to assert REQB during selection phase 3. Require the target to assert REQB during any message phase and require the initiator to assert ACKB during any message phase. Approach 1 was ruled out due for several good reasons including lack of pins and cost. Approach 2 was ruled undesirable because it is not "symmetrical" -- only the initiator discovers the missing cable. People were also uncomfortable with it because the REQB pulse may arrive at the initiator ahead of BSY or after SEL is released due to cable length differences. The working group preferred something with more definite timing. Approach 3 was selected and I was assigned to write it up. Unfortunately, a colleague at NCR later noticed a serious problem with this approach. When switching from a message phase to a data phase, the REQB or ACKB signal may still be asserted on the B cable. (Remember that the cables are not required to be the same length or follow the same routes.) This would cause difficulties in determining when the control signals on the B cable are actually valid for the data phase. After much thought I have returned to approach 2 as the simplest approach that achieves the objective (is the B cable present or not?). I believe the working group discarded this approach only because approach 3 seemed more attractive. The criticism that it is not symmetrical is only an aesthetic issue (when have we let that stop us?). The fact that the REQB signal may arrive at the initiator skewed with respect to the BSY assertion and that the REQB signal will be released skewed with respect to the release of the SEL signal should not prove to be difficult to implement. At very worst, the initiator could delay releasing the SEL signal a BUS SETTLE DELAY -- but this is not necessary. Also, this approach appears to be fairly easy to add on for those who intend to implement wide SCSI using existing protocol chips plus "glue" logic. Of course, new protocol chips should have no difficulty with this approach either. If this proposal is accepted, it only affects Section 5 as follows: [Additions are shown with underscores and deletions are shown with strike- outs.] 5.1.3.2. B Cable Detection Procedure A target that implements the wide data transfer option shall assert the REQB signal during each SELECTION phase after it determines that it is selected and before it asserts the BSY signal or no more than a BUS SETTLE DELAY after it asserts the BSY signal. It shall continue to assert the REQB signal until the initiator releases the SEL signal. The target shall then negate the REQB signal prior to changing any other signal. An initiator that implements the wide data transfer option shall check for the presence of the REQB signal pulse during each SELECTION phase. If the REQB signal pulse is not present, it shall assume that no B cable is present or that the target does not implement the wide data transfer option (see 5.1.5.3 and 5.6.23). IMPLEMENTORS NOTE: The REQB signal pulse may arrive at the initiator skewed with respect to the A cable signals due to length differences between the two cables. 5.1.5.3. Wide Data Transfer Wide data transfer is optional and may be used in the DATA phase only if a nonzero wide data transfer agreement is in effect (see WIDE DATA TRANSFER REQUEST message, 5.6.25). The messages determine the use of wide mode by both SCSI devices and establish a data path width to be used during the DATA phase. [Several unaffected paragraphs are not included here.] To ensure proper data integrity, certain sequence requirements shall be met between the REQ and ACK handshakes on the A cable and the REQB and ACKB handshakes on the B cable: (1) REQB and ACKB shall only be asserted during data phases while a nonzero wide data transfer agreement is in effect. These signals shall not be asserted during other phases except as defined in 5.1.3.2. [The remainder of this section is not changed.] 5.6.23. WIDE DATA TRANSFER REQUEST Message [The WDTR table is not affected.] A WIDE DATA TRANSFER REQUEST (WDTR) message (Table 5-9) exchange shall be initiated by an SCSI device whenever a previously-arranged transfer width agreement may have become invalid. The agreement becomes invalid after any condition which may leave the data transfer agreement in an indeterminate state such as: (1) after a hard reset condition (2) after a BUS DEVICE RESET message and (3) after a power cycle. and (4) after the initiator fails to detect a REQB signal pulse during a SELECTION phase (see 5.1.3.2). In addition, an SCSI device may initiate an WDTR message exchange whenever it is appropriate to negotiate a new transfer width agreement. SCSI devices that are capable of wide data transfers (greater than 8 bits) shall not respond to an WDTR message with a MESSAGE REJECT message. [More unaffected paragraphs are not shown.] The originating SCSI device (the SCSI device that sends the first of the pair of WDTR messages) sets its transfer width value to the maximum data path width it elects to accommodate. If the responding SCSI device can also accommodate this transfer width, it returns the same value in its WDTR message. If it requires a smaller transfer width, it substitutes the smaller value in its WDTR message. The successful completion of an exchange of WDTR messages implies an agreement as follows: Responding Device WDTR Response Implied Agreement -------------------------------- ------------------------------------------- (1) Non-zero transfer width Each device transmits and receives data with a transfer width equal to the responding SCSI device's transfer width. (2) Transfer width equal to zero 8-bit Data Transfer (3) MESSAGE REJECT message 8-bit Data Transfer During the negotiation process, the initiator shall negotiate for 8-bit data transfer if it failed to receive a REQB signal pulse during the SELECTION phase (see 5.1.3.2). [The remainder of this section is not changed.]