Document: X3T9.2/87-129 Date: 27 July 1987 To: X3T9.2 SCSI-2 Working Group and X3T9.2 Committee Members From: Paul R. Nitza - (714) 662-5600 Subj: Mode Select/Sense Verify Error Recovery Page ============================================================================= Attached for your review is a proposal for a Mode Select/Sense Error Recovery page that was an action item from a previous working group meeting. This new Mode Select/Sense page enables the initiator to specify the error recovery parameters to use during a verify option. These parameters are separate from the normal read/write Error Recovery Parameters which allows the initiator to specify more stringent parameters to be used during a verify operation, yet maintain parameters which provide better data recoverability during a normal read/write operation. [Add the following section to Mode Select in section 8] Verify Error Recovery Parameters ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 |Reserved|Reserved| Page Code (07h) | -----|-----------------------------------------------------------------------| 1 | Parameter Length (0Ah) | -----|-----------------------------------------------------------------------| 2 | Reserved | EER | PER | DTE | DCR | -----|-----------------------------------------------------------------------| 3 | Verify Retry Count | -----|-+---------------------------------------------------------------------| 4 | Verify Correction Span | -----|-----------------------------------------------------------------------| 5 | Reserved | -----|-----------------------------------------------------------------------| 6 | Reserved | -----|-----------------------------------------------------------------------| 7 | Reserved | -----|-+---------------------------------------------------------------------| 8 | Reserved | -----|-----------------------------------------------------------------------| 9 | Reserved | -----|-----------------------------------------------------------------------| 10 | (MSB) | -----|--- Verify Recovery Time Limit ---| 11 | (LSB) | ============================================================================== The Verify Error Recovery Parameters page specifies the error recovery parameters the target shall use during the VERIFY command, the verify phase of the WRITE AND VERIFY command and the verify phase of the COPY AND VERIFY command. The bit definitions for EER, PER, DTE and DCR are contained in table 8-15. The Verify Retry Count field specifies the number of times that the target shall attempt its recovery algorithm during a verify operation. If the Verify Retry Count field and the Verify Recovery Time Limit field are both specified in a MODE SELECT command, the field that requires the least time for data error recovery actions shall have priority. The Verify Correction span field specifies the size, in bits, of the largest burst data error for which data error correction may be attempted. (Note: If the target does not support this field, it returns a zero value in the MODE SENSE command.) The Verify Recovery Time Limit field specifies in increments of one millisecond the maximum time duration that the target shall use error recovery procedures to recover data for any individual logical block. The target may round this value as described in 6._._. If the Verify Retry Count field and the Verify Recovery Time Limit field are both specified in a MODE SELECT command, the field that requires the least time for data error recovery actions shall have priority. IMPLEMENTORS NOTE: To disable all types of correction and retries the initiator should set the EER bit to zero, the PER, DTE and DCR bits to one and the number of retires and/or recovery time limit to zero. [Add the following to the Read/Write Recovery Page in section 8] The Read/Write Error Recovery Parameters page specifies the error recovery parameters the target shall use during any command that performs a read or write operation to the media (e.g., READ, READ (EXTENDED), WRITE, WRITE (EXTENDED), COPY, COMPARE, etc.). [Modify the Current Error Recovery Parameters Table as Shown Below] Mode Select Error Recovery Parameters (Bit Definitions) ============================================================================= EER PER DTE DCR Description ----------------------------------------------------------------------------- 1 - - - An Enable Early Recovery (EER) bit of one indicates that the target shall use of the most expedient form of error recovery. This bit only applies to data error recovery and it does not affect positioning retries and the message system error recovery procedures. 0 - - - An EER bit of zero indicates that the target shall use an error recovery procedure that minimizes the risk of misdetection or miscorrection. IMPLEMENTORS NOTE: The EER bit set to one may imply an increase in the probability of misdetection or miscorrection. The EER bit set to zero typically means that the specified retry limit is exhausted prior to using error correction codes. - 1 - - A Post Error (PER) bit of one indicates that the target shall report recovered errors. - 0 - - A PER bit of zero indicates that the target shall not report recovered errors. Error recovery procedures shall be performed within the limits established by the error recovery parameters. - - 1 - A Disable Transfer on Error (DTE) bit of one indicates that the target shall terminate the DATA phase upon detection of a recovered error. - - 0 - A DTE bit of zero indicates that the target shall not terminate the DATA phase upon detection of a recovered error. - - - 1 A Disable Correction (DCR) bit of one indicates that error correction codes shall not be used for data error recovery. - - - 0 A DCR bit of zero allows the use of error correction codes for data error recovery. ============================================================================= Mode Select Error Recovery Parameters (Bit Combinations) ============================================================================= EER PER DTE DCR Description ----------------------------------------------------------------------------- 0 0 0 0 The full number of retries (specified in the read, or write or verify retry count field) and Error Correction are attempted to recover the data (EER and DCR set to 0). No CHECK CONDITION is reported at the completion of the command for recoverable errors (PER set to 0). The command terminates with a CHECK CONDITION status before the transfer count is exhausted only if an unrecoverable error is detected. If an unrecoverable data error occurred, the data in the block with the unrecoverable error may or may not be transferred to the initiator depending on the setting of the transfer block (TB) bit (read operation only). 0 0 0 1 Error Correction is disabled (DCR set to one) so only the full number of retries (specified in the read, or write or verify retry count field) are attempted to recover the data (EER set to 0). No CHECK CONDITION is reported at the completion of the command for recoverable errors (PER set to 0). The command terminates with a CHECK CONDITION status before the transfer count is exhausted only if an unrecoverable error is detected. If an unrecoverable data error occurred, the data in the block with the unrecoverable error may or may not be transferred to the initiator depending on the setting of the transfer block (TB) bit (read operation only). 0 0 1 0 Invalid Mode (PER must be set to one if DTE is set to one). See note 1 at the end of this table. 0 0 1 1 Invalid Mode (PER must be set to one if DTE is set to one). See note 1 at the end of this table. 0 1 0 0 The full number of retries (specified in the read, or write or verify retry count field) and Error Correction are attempted to recover the data (EER and DCR set to 0). The command terminates with a CHECK CONDITION status before the transfer count is exhausted only if an unrecoverable error is detected. If an unrecoverable data error occurred, the data in the block with the unrecoverable error may or may not be transferred to the initiator depending on the setting of the transfer block (TB) bit (read operation only). A CHECK CONDITION with a sense key of RECOVERED ERROR is reported at the completion of the command for any recoverable error that occurs (PER set to 1). The information bytes in the sense data shall contain the logical block address of the last recovered error which occurred during the transfer. ============================================================================= Mode Select Error Recovery Parameters (Bit Combinations continued) ============================================================================= EER PER DTE DCR Description ----------------------------------------------------------------------------- 0 1 0 1 Error Correction is disabled (DCR set to one) so only the full number of retries (specified in the read, or write or verify retry count field) are attempted to recover the data (EER set to 0). The command terminates with a CHECK CONDITION status before the transfer count is exhausted only if an unrecoverable error is detected. If an unrecoverable data error occurred, the data in the block with the unrecoverable error may or may not be transferred to the initiator depending on the setting of the transfer block (TB) bit (read operation only). A CHECK CONDITION with a sense key of RECOVERED ERROR is reported at the completion of the command for any recoverable error that occurs (PER set to 1). The information bytes in the sense data shall contain the logical block address of the last recovered error which occurred during the transfer. 0 1 1 0 The full number of retries (specified in the read, or write or verify retry count field) and Error Correction are attempted to recover the data (EER and DCR set to 0). The command terminates with a CHECK CONDITION status before the transfer count is exhausted if any error (recoverable or unrecoverable) is detected (DTE set to 1). The information bytes in the sense data shall contain the logical block address of the block in error. If an unrecoverable data error or a recoverable data error occurs the data in the block with the error may or may not be transferred to the initiator depending on the setting of the transfer block (TB) bit (read operation only). 0 1 1 1 Error Correction is disabled (DCR set to one) so only the full number of retries (specified in the read, or write or verify retry count field) are attempted to recover the data (EER set to 0). The command terminates with a CHECK CONDITION status before the transfer count is exhausted if any error (recoverable or unrecoverable) is detected (DTE set to 1). The information bytes in the sense data shall contain the logical block address of the block in error. If an unrecoverable data error or a recoverable data error occurs the data in the block with the error may or may not be transferred to the initiator depending on the setting of the transfer block (TB) bit (read operation only). ============================================================================= Mode Select Error Recovery Parameters (Bit Combinations continued) ============================================================================= EER PER DTE DCR Description ----------------------------------------------------------------------------- 1 0 0 0 The fewest possible retries and Error Correction are attempted to recover the data (EER set to one and DCR set to 0). No CHECK CONDITION is reported at the completion of the command for recoverable errors (PER set to 0). The command terminates with a CHECK CONDITION status before the transfer count is exhausted only if an unrecoverable error is detected. If an unrecoverable data error occurred, the data in the block with the unrecoverable error may or may not be transferred to the initiator depending on the setting of the transfer block (TB) bit (read operation only). 1 0 0 1 Invalid Mode (DCR must be set to zero if EER is set to one). See note 1 at the end of this table. 1 0 1 0 Invalid Mode (PER must be set to one if DTE is set to one). See note 1 at the end of this table. 1 0 1 1 Invalid Mode (PER must be set to one if DTE is set to one). See Note 1 at the end of this table. 1 1 0 0 The fewest possible retries and Error Correction are attempted to recover the data (EER set to one and DCR set to 0). The command terminates with a CHECK CONDITION status before the transfer count is exhausted only if an unrecoverable error is detected. If an unrecoverable data error occurred, the data in the block with the unrecoverable error may or may not be transferred to the initiator depending on the setting of the transfer block (TB) bit (read operation only). A CHECK CONDITION with a sense key of RECOVERED ERROR is reported at the completion of the command for any recoverable error that occurs (PER set to 1). The information bytes in the sense data shall contain the logical block address of the last recovered error which occurred during the transfer. 1 1 0 1 Invalid Mode (DCR must be set to zero if EER is set to one). See Note 1 at the end of this table. ============================================================================= Mode Select Error Recovery Parameters (Bit Combinations continued) ============================================================================= EER PER DTE DCR Description ----------------------------------------------------------------------------- 1 1 1 0 The fewest possible retries and Error Correction are attempted to recover the data (EER set to one and DCR set to 0). The command terminates with a CHECK CONDITION status before the transfer count is exhausted if any error (recoverable or unrecoverable) is detected (DTE set to 1). The information bytes in the sense data shall contain the logical block address of the block in error. If an unrecoverable data error or a recoverable data error occurs the data in the block with the error may or may not be transferred to the initiator depending on the setting of the transfer block (TB) bit (read operation only). 1 1 1 1 Invalid Mode (DCR must be set to zero if EER is set to one). See note 1 at the end of this table. ============================================================================= Note 1: If an Invalid Mode for the error recovery combination is sent by the Initiator the Target shall return a CHECK CONDITION status with the sense key set to ILLEGAL REQUEST and the additional sense code set to INVALID FIELD IN PARAMETER LIST. =============================================================================