LASER MAGNETIC STORAGE MEMO INTERNATIONAL COMPANY _______________________________________________________________________ Optical Storage Division 25 April 1988 To: SCSI Standards Committee X3T9.2 From: Paul Boulay (719) 593-4323 Subject: WORM Device Specific Mode Select Page Write-Once-Read-Multiple-Devices today support three distinct markets: data archive, image storage and on-line reference. In some data archive uses, the integrity of the data at least partially depends on the writable only once characteristic of the media. When the Update Block command is implemented on a WORM device used in this sort of application the extra security provided by the writable only once feature is compromised. There are several avenues available to a WORM device supplier to remedy this situation. The most obvious is simply to never implement the Update Block command. However, there are a few reasonable applications for the Update Block command. (These involve managing the media rather than modifying user data files.) The minimum level of support for an archive application which relies on the writable only once characteristic is to be informed if the data is suspect. A normal Read command should raise some sort of exception in this case. Many users will not need or want such an exception raised. Also, the same user who needs detection of updated blocks when reading one file may not want an exception raised when reading other files. If a device supplies both the Update Block and the Read Updated Block commands, a user has the information needed to recover from an unwanted update of a block. The SCSI implementation of these ideas involves creating a Mode Select Page specific to devices with WORM media. This would be devices using the Write-Once device type plus Optical Memory Devices which have WORM media installed. This Mode Select Page would include a bit which would enable reporting instances of reading a block which had been updated. If the Report Updated Block Read (RUBR) bit was set and a Read command encountered such a block, the Read would complete with a Check Condition. A Recovered Error Sense Key would be posted and additional sense codes would indicate this case. Reporting reading an updated block would take precedence over reporting ECC corrections or retries. Table xx-xx: Write-Once Parameters ============================================================================== Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Reserved | Page Code (TBD) | ------|----------------------------------------------------------------------| 1 | Parameter Length (02h) | ------|----------------------------------------------------------------------| 2 | | RUBR | ------|----------------------------------------------------------------------| 3 | Reserved | ============================================================================== This page may also be applicable for specifying or reporting the handling of blocks which might be either blank or written. This function is now specified using the Enable Blank Check bit. However, there are multiple interpretations that are driven by the differing drive implementations. But that's another area altogether. @