• Keine Ergebnisse gefunden

Bus Parity Error Handling

Im Dokument Functional Specifications ~ (Seite 97-100)

The Drive checks the state of the Bus Parity Error Jumper during Power- Up/Reset initialization. Depending on the state of this jumper, bus parity error checking is either globally enabled or disabled.

The Drive supports re-transfer of commands, status, data and messages both as a Target and as an Initiator.

7.6.1. The Drive as

a

Target

When bus parity error checking is enabled, the Drive will check for bus parity errors during transfer of Command Descriptor Blocks, Data Out and Message Out. In addition the Drive takes appropriate action when a INITIATOR DETECTED ERROR or MESSAGE PARITY error message is received.

When transferring Command Descriptor Blocks, the Drive will transfer the complete block (all bytes) before taking any action on bus parity er-rors.

When transferring Data Out, the Drive will transfer complete blocks be-fore taking any action on bus parity errors. When a bus parity error has been detected, then the Drive will ensure that the erroneous block is not written to the tape.

7.6.1.1. Errors Detected by the Drive

When a bus parity error has been detected in a SELECTION phase, the selection will be ignored by the Drive.

When a bus parity error has been detected in COMMAND phase, the Drive will go to the to MESSAGE IN phase and transfer a RESTORE POINTERS message. The Drive will then go back to the COMMAND phase and the Command Descriptor Block will be transferred once more from the Initiator.

When a bus parity error has been detected in a DATA OUT phase, the Drive will go to the MESSAGE IN phase and transfer a RESTORE POINTERS message. The Drive will then go back to the DATA OUT phase and the data transferred since the last reconnect (or COMMAND phase) will be transferred once more from the Initiator.

If a parity error is detected during a MESSAGE OUT phase, the Target will consume all the remaining bytes in the message and ask for re-transfer of the whole message.

If ATN is deasserted before the expected number of bytes is transferred, the Target will send a REJECT MESSAGE back to the Initiator.

If ATN is still asserted after the expected number of bytes is trans-ferred, the Target goes to the BUS FREE state.

If a parity error is detected during a MESSAGE IN phase, the Initiator signals message parity error. The Target responds by transferring the whole message once more.

7-10 SCSf-2 Functional Specifications

('

7.6.1.2. Errors Detected by the Initiator

The Initiator signals bus parity errors by asserting ATN. The Drive must acknowledge the ATN by going to the MESSAGE OUT Phase. The MESSAGE OUT transferred will be either an INITIATOR DETECTED ERROR message or a MESSAGE PARITY ERROR message.

If the previous phase was a DATA IN phase and the last transferred message was INITIATOR DETECTED ERROR, then the Drive will go to the MESSAGE IN phase and transfer a RESTORE POINTERS mes-sage. The Drive will then go back to the DATA IN phase and the data transferred since the last reconnect (or COMMAND phase) will be transferred once more to the Initiator.

If the previous phase was a STATUS phase and the last transferred message was INITIATOR DETECTED ERROR, then the Drive will go to the MESSAGE IN phase and transfer a SAVE DATA POINTER mes-sage and then a RESTORE POINTERS mesmes-sage. The Drive will then go back to the STATUS phase and the Status byte will be transferred once more to the Initiator.

If the previous phase was a MESSAGE IN phase and the last trans-ferred message was MESSAGE PARITY ERROR, then the Drive will go back to the MESSAGE IN phase and the previous Message byte will be transferred once more.

7.6.2. The Drive as an Initiator

When bus parity error checking is enabled, the Drive will check for bus parity errors during transfer of Data In, Status and Message In. In addition the Drive takes appropriate action when the Target issues RE-STORE DATA POINTER messages and when message retransfer is necessary.

7.6.2.1. Errors Detected by the Drive

When a bus parity error has been detected in a RESELECTION phase, the reselection will be ignored by the Drive.

When a bus parity error has been detected in a DATA IN phase, the Drive will assert the ATN line on the SCSI bus. If the Target goes to the Message Out phase the Drive will transfer an INITIATOR DETECTED ERROR message. The received data is not written to the tape. When the Target goes to the Message In phase and transfers a RESTORE POINT-ERS message, the Drive will reset its data pointer to the value saved last time the Target issued a SAVE DATA POINTER message (or since the last non-data in phase). In a subsequent new DATA IN phase the Target may then re-transfer the last transferred data once more. Note, however, that the Drive is not able to move its data pointer further back than 65024 bytes from where the RESTORE POINTERS message is re-ceived. If the Target lets more than this amount of data be transferred between each SAVE DATA POINTER message, then the Drive can not guarantee that the corrUpted data is not written out to the tape.

7-17 SCSl-2 Functional Specifications

Tandberg Data General Exception HandUng

When a bus parity error has been detected in a STATUS phase, the Drive will assert the ATN line before negating the status phase ACK line. If the Target goes to the Message Out phase the Drive will transfer an INITIATOR DETECTED ERROR message. The Drive will then ac-cept both SAVE DATA POINTER messages and RESTORE POINTERS messages. The Target may the re-enter the STATUS phase and transfer the status byte once more.

When a bus parity error has been detected in a MESSAGE IN phase, the Drive will assert the ATN line before negating the message phase ACK line. If the Target goes to the Message Out phase the Drive will transfer a MESSAGE PARITY ERROR message. The Target may then re-enter the MESSAGE IN phase and transfer the message once more.

7.6.2.2. Errors Detected

by

the Target

When the Target has detected a parity error in the COMMAND phase it may go to the Message In phase and transfer a RESTORE POINTERS message. The Drive will then reset its command pointer back to the be-ginning of the last transferred Command Descriptor Block (CDB). When the Target re-enters the COMMAND phase the Drive will let the Target transfer the same CDB once more.

When the Target has detected a parity error in the DATA OUT phase it may.go to the Message In phase and transfer a RESTORE POINTERS message. The Drive will then reset its data pointer to th~ value Saved last time the Target issued a SAVE DATA POINTER message (or since the last non-data in phase). When the Target re-enters the DATA OUT phase the Drive will let the Target transfer the same data once more.

Note, however, that the Drive is not able to move its data pointer fur-ther back than 65024 bytes from where the RESTORE POINTERS mes-sage is received. If the Target lets more than this amount of data be transferred between each SAVE DATA POINTER message, then the Drive can not guarantee that the data actually transferred is that same data transferred before the RESTORE POINTERS message was issued.

When the Target has detected a parity error in the MESSAGE OUT phase it may signal re-transfer of the message bytes by continue the MESSAGE OUT phase even if the Drive de-asserted the ATN line. The Drive will then let the Target re-transfer all message bytes transferred when the ATN line was asserted.

7-72 SCSI-2 Functional Specifications

..

(~\

Im Dokument Functional Specifications ~ (Seite 97-100)