home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
571.lha
/
SCSI_II_Documentation
/
SCSI2.LZH
/
SCSIDOC.008
< prev
next >
Wrap
Text File
|
1991-08-11
|
262KB
|
6,040 lines
Direct-Access Devices 3/9/90
8. Direct-Access Devices
8.1. Direct-Access Device Model
Direct-access devices store blocks of data for later retrieval. Each block of
data is stored at a unique logical block address. An initiator issues WRITE
commands to store the blocks of data (write operations) and READ commands to
retrieve the blocks of data (read operations). Other commands issued by the
initiator to may also cause write and read operations to occur. A write
operation causes a block of data to be written on the medium. A read
operation causes a block of data to be read from the medium. A verify
operation causes a block of data to be verified that it can be read without
error from the medium.
Blocks of data are stored by a process that causes localized changes or
transitions within the medium. The changes made to the medium to store the
blocks of data may be volatile (i.e., not retained through power cycles) or
non-volatile (retained through power cycles). The medium has may be divided
in parts that are used to data blocks, parts that are reserved as spares for
defect handling, and parts that are reserved for use by the controller for the
management of the device.
8.1.1. Removable Medium
The medium may be removable (i.e., a typically used in a floppy disk drive) or
non-removable (i.e., typically used in a hard disk drive). Removable medium
is contained within a cartridge (or jacket) to prevent damage to the recording
surfaces. The combination of medium and cartridge is often called a volume.
A volume has an attribute of being mounted or demounted on a suitable
transport mechanism. A volume is mounted when the direct-access device is
capable of performing write or read operations to the medium. A mounted
volume may be not be accessible by an initiator if it is reserved by another
initiator. A volume is demounted at any other time (e.g., during loading,
unloading, or storage).
An initiator may check whether a volume is mounted by issuing a TEST UNIT
READY command. A volume that is loaded may need a START STOP UNIT command
issued to become accessible for write or read operations.
The PREVENT ALLOW MEDIUM REMOVAL command allows an initiator to restrict the
demounting of the volume. This is useful in maintaining system integrity. If
the direct-access device implements cache memory, it must ensure that all
logical blocks of the medium contain the most recent data prior to permitting
demounting of the volume. If the initiator issues a START STOP UNIT command
to eject the cartridge, and the direct-access device is prevented from
demounting by the PREVENT ALLOW MEDIUM REMOVAL command, the START STOP unit
command is rejected by the direct-access device.
8.1.2. Logical Blocks
SCSI-2 draft proposed American National Standard 8-1 Revision 10c1
Direct-Access Devices 3/9/90
Blocks of data are stored on the medium along with additional information that
the controller uses to manage the storage and retrieval. The format of the
additional information is unique and is hidden from the initiator during
normal read or write operations. This additional information is often used to
identify the physical location of the blocks of data, the address of the
logical block, and to provide protection against the loss of the user data.
The address of the first logical block is zero. The address of the last
logical block is [n-1], where [n] is the number of logical blocks available on
the medium. A READ CAPACITY command may be issued to determine the value of
[n-1]. If a command is issued which requests access to a logical block not
within the capacity of the medium the command is terminated with CHECK
CONDITION.
The number of bytes of data contained in a logical block is known as the block
length. Each logical block has a block length associated with it. The block
length may be different for each logical block on the medium. However, in a
typical device only one block length is used at a time. The block descriptor
in the MODE SENSE data describes the block lengths that are used on the
medium. An MODE SELECT command can be used to setup extents. An extent is a
specified number of logical blocks that have the specified block length. The
FORMAT UNIT command is typically required to change the block length of
devices that support variable block lengths and make the extents that were
setup active.
The location of a logical block on the medium does not have a relationship to
the location of any other logical block. However, in a typical device the
logical blocks are located in an ascending order. The time to access the
logical block at address [x] and then the logical block at address [x+1] may
not be less than time to access [x] and then [x+100]. The READ CAPACITY with
a PMI bit of one is useful in determining where longer access times occur.
8.1.3. Ready State
A direct-access device is ready when medium access commands can be executed.
A device using removable media is usually not ready until a volume is mounted.
Such a device normally returns CHECK CONDITION status and sets the sense key
to NOT READY.
A direct-access device may be switched from being ready to being not ready by
using the START STOP UNIT command. An initiator may need to issue a START
UNIT command to bring a device ready.
8.1.4. Initialization
SCSI-2 draft proposed American National Standard 8-2 Revision 10c2
Direct-Access Devices 3/9/90
Many direct-access devices must be initialized prior to write or read
operations. This initialization is usually performed by a FORMAT UNIT
command. Parameters related to the geometry and performance characteristics
can be set with the MODE SELECT command prior to the format operation. Some
devices are initialized by means not specified in this standard. The time at
which this occurs is specific to the implementation of the direct-access
device.
Devices using non-volatile medium typically save the parameters and only need
to be initialized once. However, some mode parameters may need to be
initialized after each power-on and reset. A catastrophic failure of the
direct-access device may require the FORMAT UNIT command to be reissued.
Devices that do not use non-volatile medium may need to be initialized at each
power-on prior read or write operations being performed. Mode parameters may
also need initialization.
8.1.5. Medium Defects
Any medium has the potential for defects which can cause user data to be lost.
Therefore, each logical block may contain information which allows the
detection of changes to the user data caused by defects in the medium or other
phenomena, and may also allow the data to be reconstructed following the
detection of such a change. On some devices, the initiator has some control
some through use of the mode parameters. Some devices may allow the initiator
to examine and modify the additional information by using the READ LONG and
WRITE LONG commands. Some media having a very low probability of defects may
not require these structures.
Defects may also be detected and managed during execution of the FORMAT UNIT
command. The FORMAT UNIT command defines four sources of defect information.
These defects may be reassigned or avoided during the initialization process
so that they do not appear in a logical block.
Defects may also be avoided after initialization. The initiator issues a
REASSIGN BLOCKS command to request that the specified logical block address be
reassigned to a different part of the medium. This operation can be repeated
if a new defect appears at a later time. The total number of defects that may
be handled in this manner can be specified in the mode parameters.
Defect management on direct-access devices is usually vendor specific.
Devices not using removable medium typically optimize the defect management
for capacity or performance or both. Devices that use removable medium
typically do not support defect management (e.g., some floppy disk drives) or
use defect management that is based on the ability to interchange the medium.
8.1.6. Data Cache
SCSI-2 draft proposed American National Standard 8-3 Revision 10c3
Direct-Access Devices 3/9/90
Some direct-access devices implement cache memory. A cache memory is usually
an area of temporary storage in the direct-access device with a fast access
time that is used to enhance performance. It exists separately from the
blocks of data stored and is normally not directly accessible by the
initiator. Use of cache memory for write or read operations typically reduces
the access time to a logical block and can increase the overall data
throughput.
During read operations the direct-access device uses the cache memory to keep
blocks of data that the initiator may request at some future time. The
algorithm used to manage the cache memory is not part of this standard.
However, there are parameters provided by which the initiator may advise the
direct-access device about its future requests, or restrict the use of cache
memory for a particular request.
During write operations the direct-access device uses the cache memory to
buffer data for later storage on the medium. This is typically called a
write-back caching algorithm. Thus the command may complete prior to blocks
of data being written to the medium. As a result of using write-back caching
there is a period of time during which the blocks of data may be lost due to a
power or hardware failure. There is also the possibility of an error
occurring during the write operation. If an error occurred during the write,
it may be reported as a deferred error on a later command. However, there are
parameters provided by which the the initiator may request the use of write-
through caching thereby preventing these circumstances from arising.
When the cache memory fills up with blocks of data that are being kept for
possible future access, new blocks of data that are to be kept must replace
those currently in cache memory. The disable page out (DPO) bit is used to
control replacement of logical blocks in the cache. For write operations,
setting this bit to one advises the direct-access device to not replace
existing blocks in the cache memory with the write data. For read operations,
setting this bit to one causes blocks of data that are being read to not
replace existing ones in the cache memory.
Sometimes the initiator may wish to have the blocks of data read from the
medium instead of from the cache memory. The force unit access (FUA) bit is
used to indicate that the direct-access device shall access the physical
medium. For a write operation, setting FUA to one causes the direct-access
device to complete the data write to the physical medium before completing the
command. For a read operation, setting FUA to one causes the logical blocks
to be retrieved from the physical medium.
Note that when the DPO and FUA bits are both set to one, write and read
operations bypass the cache memory.
For the VERIFY command, an FUA is implied, since the blocks of data stored on
the medium are being verified. Further, a SYNCHRONIZE CACHE operation (see
below) is also implied to flush an unwritten blocks of data still in the cache
SCSI-2 draft proposed American National Standard 8-4 Revision 10c4
Direct-Access Devices 3/9/90
memory. These blocks of data must be stored on the medium before the verify
operation can begin. The DPO bit is still provided since the VERIFY command
may still cause the replacement of blocks in the cache. The above also
applies to the WRITE AND VERIFY command.
Certain special commands may be implemented by the direct-access device that
allow the initiator to control other behavior of the cache memory:
- LOCK UNLOCK CACHE controls whether certain logical blocks will be held in
the data cache for future use. Locking a logical block prevents its
replacement by a future access. Unlocking a logical block exposes it to
possible replacement by a future access. (See 8.2.2)
- PRE-FETCH causes a set of logical blocks requested by the initiator to be
read into the data cache for possible future access. The blocks fetched are
subject to later replacement unless they are locked (see 8.2.3)
- SYNCHRONIZE CACHE forces any pending write data in the requested set of
logical blocks to be stored in the physical medium. This command can be used
to ensure that the data was written and any errors reported. (see 8.2.18)
- The MODE SELECT command defines a page for the control of cache behavior and
handles certain basic elements of cache replacement algorithms (see 8.3.3.1).
8.1.7. Reservation
The access enabled or access disabled condition determines when an initiator
may store or retrieve user data all or part of the medium. Access may be
restricted for read operations, write operations, or both. This attribute may
be controlled by an external mechanism or by the RESERVE and RELEASE commands
(see 8.2.12 and 8.2.11).
The RESERVE and RELEASE commands define how different types of restricted
access may be achieved, and to whom the access is restricted. This section
describes the interaction of the initiator that requested the reservation, and
the other initiators.
An initiator uses reservations to gain a level of exclusivity in access to all
or part of the medium for itself or another initiator. It is expected that
the reservation will be retained until released. The direct-access device
must ensure that the initiator with the reservation is able to access the
reserved media within the operating parameters established by that initiator.
The following list explains the targets actions in a situation where a
reservation exists for various commands. Unless otherwise noted, an initiator
that issues any command to a direct-access device that has a logical unit
reservation to another initiator, incurs a reservation conflict.
The CHANGE DEFINITION command is dealt with as follows. If any initiator has
an extent reservation on a direct-access device, no other initiator may affect
the operating definition of that initiator by use of this command. If the
direct-access device allows different operating definitions for each
initiator, then there is no conflict; otherwise, a reservation conflict
SCSI-2 draft proposed American National Standard 8-5 Revision 10c5
Direct-Access Devices 3/9/90
occurs.
The COMPARE, COPY, and COPY AND VERIFY commands are evaluated for reservation
conflict as if they were normal write and read operations even when a
direct-access device is requested to copy to or from itself, those write and
read accesses. For example, if a COPY is issued to logical unit 0 that
requests the direct-access device to copy from logical unit 0 to logical unit
1, access to logical unit 1 must also be evaluated for conflict.
The FORMAT UNIT, PREVENT ALLOW MEDIUM REMOVAL, REZERO UNIT, and START STOP
UNIT commands will generate a reservation conflict if any other initiator has
an extent reservation on a direct-access device.
The INQUIRY and REQUEST SENSE commands are not affected by any kind of
reservation.
The LOG SELECT, LOG SENSE, MODE SENSE, TEST UNIT READY, READ CAPACITY (PMI set
to zero), READ BUFFER, WRITE BUFFER, and READ DEFECT DATA commands are not
affected by extent reservations.
The SEEK, LOCK UNLOCK CACHE, PRE-FETCH, and SYNCHRONIZE CACHE commands are
evaluated for reservation conflict as if they were normal write or read
operations.
The MODE SELECT command is dealt with as follows. If an initiator has an
extent reservation on a direct-access device, and another initiator attempts
one of these command, a reservation conflict occurs if the command affects the
manner in which access of the extent by the first initiator is performed. If
the command does not affect access to the extent, or parameters are saved for
each initiator, then a conflict does not occur.
The SEND DIAGNOSTIC, RECEIVE DIAGNOSTIC RESULTS commands conflict with an
extent reservation only if they affect access to the extent (as with MODE
SELECT).
The REASSIGN BLOCKS command may not reassign a block that is in an extent
reserved to another initiator.
The SET LIMITS command generates a reservation conflict if the logical blocks
specified are within an extent reserved to another initiator.
ALL other commands are that request read or write operations are evaluated for
reservation conflict as described in the RESERVE command.
When a system is integrated with more than one initiator, there must be
agreement between the initiators as to how media is reserved and released
during operations, otherwise an initiator may be locked out of access to a
target in the middle of an operation. For example, initiator 'A' is
performing writes to a direct-access device that are being cached. Then,
initiator 'B' issues a RESERVE command to the direct-access device. As a
SCSI-2 draft proposed American National Standard 8-6 Revision 10c6
Direct-Access Devices 3/9/90
result, initiator 'A' is locked out of issuing a SYNCHRONIZE CACHE command to
ensure the integrity of the writes. To prevent this from happening, initiator
'A' should issue a RESERVE prior to the cached write commands.
8.1.8. Seek and Rezero
The SEEK command provides a way for the initiator to position the device in
preparation for access to a particular logical block at some later time.
Since this positioning action is implicit in other commands, the SEEK command
may not be useful with some direct-access devices.
The REZERO UNIT command is provided to bring the direct-access device to a
known condition. This standard does not specify the condition. The REZERO
UNIT command is used in some devices to position the actuator at cylinder
zero. Some devices return GOOD status without attempting any action.
8.1.9. Notched Drives
A notched (also called partitioned or zoned) drive has areas of the medium in
which the drive geometry changes. In the simplest case, the entire medium
consists of a single notch. Multiple notches are often used to increase
capacity of the drive. The notch page is used to indicate the notch for
assignment of values to the parameters in the format device page. By
sequencing the notch page through each notch, the format device parameters of
each notch are set. This is usually done prior to initialization by the
FORMAT UNIT command.
8.1.10. Rotational Position Locking
Rotational position locking is an optional feature implemented in some
direct-access devices to allow the synchronization of spindles between a
number of devices. The rotational position offset feature allows devices to
synchronize spindles at offsets from index. This may be useful in improving
performance in systems that implement arrays of devices.
8.1.11. Relative Addressing
Relative addressing is a technique useful in accessing structured data in a
uniform manner. Relative addressing is only allowed when commands are linked.
Section 6.4.3 gives an example of relative addressing and linking for SEARCH
DATA commands appropriate to direct-access devices.
The SET LIMITS command is provided to define the limits of a linked chain of
relative addressing commands. This gives an additional protection against
exceeding a particular set of blocks. The SET LIMITS command has no effect on
any other initiator.
8.1.12. Error Reporting
SCSI-2 draft proposed American National Standard 8-7 Revision 10c7
Direct-Access Devices 3/9/90
If any of the following conditions occur during the execution of a command the
target shall return CHECK CONDITION status. The appropriate sense key and
additional sense code should be set. The following table illustrates some
error conditions and the applicable sense keys. The table does not provide an
exhaustive enumeration of all conditions that may cause the CHECK CONDITION
status.
Condition Sense Key
---------------------------------------------- ----------------------------
Invalid logical block address ILLEGAL REQUEST
Unsupported option requested ILLEGAL REQUEST
Target reset or medium change since
last command from this initiator UNIT ATTENTION
Self diagnostic failed HARDWARE ERROR
Unrecovered read error MEDIUM ERROR
HARDWARE ERROR
Recovered read error RECOVERED ERROR
Overrun or other error that might
be resolved by repeating the command ABORTED COMMAND
Attempt to write on write protected medium DATA PROTECT
In the case of an invalid logical block address, the sense data information
field shall be set to the logical block address of the first invalid address.
In the case of an attempt to read a blank or previously unwritten block, the
information field shall be set to the logical block address of the first blank
block encountered. The data read up to that block shall be transferred
(optical memory and write-once devices only).
In the case of an attempt to write a previously written block and blank
checking is enabled, the information field shall be set to the logical block
address of the first non-blank block encountered (optical memory and write-
once devices only).
8.1.13. Examples
SCSI-2 draft proposed American National Standard 8-8 Revision 10c8
Direct-Access Devices 3/9/90
The following examples show some typical variations of the direct-access
device. Other variations are possible.
8.1.13.1. Rotating Media
The typical application of a direct-access device is a disk drive. The medium
is a disk coated with a material in which flux changes may be induced. The
disk drive allows direct and random access to the medium. This is done using
a actuator which positions the read-write head, and a rotating disk. Data is
stored and retrieved through the interaction of the read-write head and the
disk.
The disk is typically divided into cylinders. Each cylinder is typically
divided into tracks. Each track is typically divided into sectors. A
cylinder is a set of tracks than can be accessed without movement of the
actuator. A track is a recording path over which the read-write head travels
during one rotation of the disk. A sector is a part of a track that contains
the stored data blocks.
A logical block is stored in one or more sectors, or a sector may store more
than one logical block. A sector is typically made up of a header, data and a
trailer. The header contains a preamble used to synchronize read circuits to
the data, an address field to identify the sector, flags to use for defect
management, and a checksum that validates the header. The data contains the
block of data. The trailer contains the checksum and the error correction
information if it is used. The checksum or the error correction information
allows the correction data for medium defects.
A disk drive is typically ready when the disks are rotating at the correct
speed and the read-write circuitry is powered and ready to access the disks.
Some disks, particularly removable disks, require the user to issue load or
start commands to bring the disk drive to the ready state.
A disk drive will typically have to be formatted prior to the initial access.
Exceptions to this are drives that are formatted at the factory and some
optical drives with pre-formatted media (see 12.1). A disk drive format will
typically create the headers for each sector and initialize the data field.
The MODE SELECT command is often used at format time to establish the geometry
(number of heads and tracks, sectors per track, etc.) and defect management
scheme. Disk drives are usually non-volatile.
The defect management scheme of a disk drive is often shielded from the user,
SCSI-2 draft proposed American National Standard 8-9 Revision 10c9
Direct-Access Devices 3/9/90
though some aspects can be evaluated and controlled by the initiator. The
direct-access device will usually reserve some sectors and tracks for
recording defect tables and for reassigning defective blocks. The READ LONG
and WRITE LONG commands will typically access the user data and checksum
portions of the data field so that defects may be induced by the initiator to
test the defect detection logic of the direct-access device.
Notches find their most typical use in a rotating disk drive. On a disk, the
inner tracks are physically shorter than the outer tracks. As a result, if
each track is made to store the same number of data bits, the data is packed
more densely on the inner tracks than the outer tracks. By using notches, the
outer tracks may be made to contain a different number of sectors than the
inner tracks, balancing the data density. This results in increased capacity.
8.1.13.2. Sequential Media
Some tape devices are implemented as a direct access device so that they can
be used in disk oriented operating system environments. These devices are
sometimes referred to as 'random access tape' or 'floppy tape'. These devices
might be thought of as a disk drive with one or a few very long tracks.
Access time to a logical block is usually longer than for a disk drive, since
the tape must be fast forwarded or rewound to the block. As a result, the
SEEK command will often be more useful for a tape than for a disk. The only
way an initiator may determine if a direct-access device is a tape is to use
the medium type code returned by the MODE SENSE command.
8.1.13.3. Memory Media
Memory media includes devices which are traditionally used for primary storage
within computer systems, such as solid state static or dynamic random access
memories (SRAM or DRAM), or magnetic core or bubble memory. These devices are
typically non-mechanical and therefore the entire physical medium may be
accessed in virtually the same access time. The data is typically accessed as
a bit or byte and this also speeds access time. Memory devices typically
store less data than disks or tapes, and are usually volatile when not
protected by battery backup.
8.2. Commands for Direct-Access Devices.
SCSI-2 draft proposed American National Standard 8-10 Revision 10c10
Direct-Access Devices 3/9/90
The commands for direct-access devices shall be as shown in Table 8-1.
Table 8-1: Commands for Direct-Access Devices
==============================================================================
Operation
Command Name Code Type Section
------------------------------------------------------------------------------
CHANGE DEFINITION 40h O 7.2.1
COMPARE 39h O 7.2.2
COPY 18h O 7.2.3
COPY AND VERIFY 3Ah O 7.2.4
FORMAT UNIT 04h M 8.2.1
INQUIRY 12h M 7.2.5
LOCK-UNLOCK CACHE 36h O 8.2.2
LOG SELECT 4Ch O 7.2.6
LOG SENSE 4Dh O 7.2.7
MODE SELECT(6) 15h O 7.2.8
MODE SELECT(10) 55h O 7.2.9
MODE SENSE(6) 1Ah O 7.2.10
MODE SENSE(10) 5Ah O 7.2.11
PRE-FETCH 34h O 8.2.3
PREVENT-ALLOW MEDIUM REMOVAL 1Eh O 8.2.4
READ(6) 08h M 8.2.5
READ(10) 28h M 8.2.6
READ BUFFER 3Ch O 7.2.12
READ CAPACITY 25h M 8.2.7
READ DEFECT DATA 37h O 8.2.8
READ LONG 3Eh O 8.2.9
REASSIGN BLOCKS 07h O 8.2.10
RECEIVE DIAGNOSTIC RESULTS 1Ch O 7.2.13
RELEASE 17h M 8.2.11
REQUEST SENSE 03h M 7.2.14
RESERVE 16h M 8.2.12
REZERO UNIT 01h O 8.2.13
SEARCH DATA EQUAL 31h O 8.2.14.1
SEARCH DATA HIGH 30h O 8.2.14.2
SEARCH DATA LOW 32h O 8.2.14.3
SEEK(6) 0Bh O 8.2.15
SEEK(10) 2Bh O 8.2.15
SEND DIAGNOSTIC 1Dh M 7.2.15
SET LIMITS 33h O 8.2.16
START STOP UNIT 1Bh O 8.2.17
SYNCHRONIZE CACHE 35h O 8.2.18
TEST UNIT READY 00h M 7.2.16
VERIFY 2Fh O 8.2.19
==============================================================================
Table 8-1 continued
SCSI-2 draft proposed American National Standard 8-11 Revision 10c11
Direct-Access Devices 3/9/90
==============================================================================
Operation
Command Name Code Type Section
------------------------------------------------------------------------------
WRITE(6) 0Ah M 8.2.20
WRITE(10) 2Ah M 8.2.21
WRITE AND VERIFY 2Eh O 8.2.22
WRITE BUFFER 3Bh O 7.2.17
WRITE LONG 3Fh O 8.2.23
WRITE SAME 41h O 8.2.24
==============================================================================
Key: M = Command implementation is mandatory.
O = Command implementation is optional.
The following operation codes are vendor-specific: 02h, 05h, 06h, 09h, 0Ch,
0Dh, 0Eh, 0Fh, 10h, 11h, 13h, 14h, 19h, 20h, 21h, 22h, 23h, 24h, 26h, 27h,
29h, 2Ch, 2Dh and C0h through FFh. All remaining operation codes for direct-
access devices are reserved for future standardization.
8.2.1. FORMAT UNIT Command
Table 8-2: FORMAT UNIT Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (04h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | FmtData| CmpLst | Defect List Format |
-----|-----------------------------------------------------------------------|
2 | Vendor-Specific |
-----|-----------------------------------------------------------------------|
3 | (MSB) |
-----|--- Interleave ---|
4 | (LSB) |
-----|-----------------------------------------------------------------------|
5 | Control |
==============================================================================
The FORMAT UNIT command (Table 8-2) formats the medium into initiator
SCSI-2 draft proposed American National Standard 8-12 Revision 10c12
Direct-Access Devices 3/9/90
addressable logical blocks per the initiator defined options. In addition,
the medium may be certified and control structures may be created for the
management of the medium and defects. There is no guarantee that the medium
has or has not been altered.
The simplest mandatory form of the FORMAT UNIT command (with no format data)
accomplishes medium formatting with little initiator control over defect
management. The target implementation determines the degree of defect
management that is to be performed. Two additional mandatory forms of this
command increase the initiator's control over defect management. Several
optional forms of this command further increase the initiator's control over
defect management, by allowing the initiator to specify which defect list(s)
are to be used, to specify defect locations (in several formats), to enable
target certification, and to specify what to do in the event that defect lists
are not accessible.
The FORMAT UNIT command shall be rejected with RESERVATION CONFLICT status if
the logical unit is reserved, or any extent reservation, from any initiator,
is active in the specified logical unit.
During the format operation, the target shall respond to commands as follows:
(1) In response to all commands except REQUEST SENSE and INQUIRY, the target
shall return CHECK CONDITION status unless a reservation conflict exists in
which case RESERVATION CONFLICT status shall be returned.
(2) In response to the INQUIRY command, the target shall respond as commanded.
(3) In response to the REQUEST SENSE command, unless an error has occurred,
the target shall return a sense key of NOT READY and an additional sense code
of LOGICAL UNIT NOT READY FORMAT IN PROGRESS, with the sense key specific
bytes set for progress indication (as described in 7.2.14.1). Refer to
7.2.14.2 for a description of deferred error handling which may occur during
the format operation.
IMPLEMENTORS NOTE: It is recommended that MODE SELECT parameters (if any) be
set prior to issuing the FORMAT UNIT command.
During the execution of the FORMAT UNIT command, the target may perform a
SCSI-2 draft proposed American National Standard 8-13 Revision 10c13
Direct-Access Devices 3/9/90
medium defect management algorithm (which can be controlled by the initiator,
using optional forms of this command). Four sources of defect location
information (hereafter called defects) are defined as follows:
Primary defect list (Plist). This is the list of defects, usually supplied by
the original manufacturer of the device or medium, that are considered as
permanent defects. The Plist is located outside of the initiator-accessible
logical block space. The Plist is accessible by the target (to reference
while formatting), but it is not normally accessible by the initiator except
through the READ DEFECT DATA command. Once created, the original Plist shall
not be subject to change.
Target certification list (Clist). This list includes defects detected by the
target during an optional certification process executed during the FORMAT
UNIT command. This list shall be added to the Glist.
Data defect list (Dlist). This list of defect descriptors may be supplied to
the target by the initiator in the DATA OUT phase of the FORMAT UNIT command.
This list shall be added to the Glist. The defect list length in the defect
list header may be zero, in which case there is no Dlist.
Grown defect list (Glist). The Glist includes all defects sent by the
initiator or detected by the target. The Glist does not include the Plist.
If the CmpLst bit is zero the Glist shall include Dlists provided to the
target during the previous and the current FORMAT UNIT commands. The Glist
shall also include:
(1) Defects detected by the format operation during medium certification.
(2) Defects previously identified with a REASSIGN BLOCKS command.
(3) Defects previously detected by the target and automatically reallocated.
A format data (FmtData) bit of one indicates that the FORMAT UNIT parameter
list (see Table 8-3) shall be transferred during the DATA OUT phase. The
DATA OUT phase consists of a defect list header (see Table 8-4), followed by
an initialization pattern descriptor, followed by zero or more defect
descriptors. Each defect descriptor identifies a location on the medium that
the target shall map out of the user-accessible area.
A FmtData bit of zero indicates that a DATA OUT phase shall not occur. The
source of defect information is not specified.
A complete list (CmpLst) bit of one indicates that the defect list sent by the
initiator is a complete list of defects. Any existing defect list except the
Plist shall be ignored by the target. As a result a new Glist is constructed
which contains the Dlist (if it is sent by the initiator), and the Clist (if
certification is enabled). The target may add any defects it detects during
the format operation to this Dlist.
A CmpLst bit of zero indicates that the defect list sent by the initiator is
SCSI-2 draft proposed American National Standard 8-14 Revision 10c14
Direct-Access Devices 3/9/90
an addition to existing list of defects. As a result a new Glist is
constructed which contains the existing Glist, the Dlist (if it is sent by the
initiator) and the Clist (if certification is enabled). The target may add
any defects it detects during the format operation to this Dlist.
The defect list format field specifies which defect descriptor is used if the
FmtData bit is one (see Table 8-5).
The interleave field specifies the interleave that is used when performing the
format operation. This allows the logical blocks to be related in a way that
facilitates matching the transfer rate between the initiator and the
peripheral. An interleave of zero specifies that the target use its default
interleave. An interleave of one specifies that consecutive logical blocks be
placed in contiguous ascending order. All other values are vendor specific.
Table 8-3: FORMAT UNIT Parameter List
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
| Defect List Header |
==============================================================================
| Initialization Pattern Descriptor (if any) |
==============================================================================
| Defect Descriptor(s) (if any) |
==============================================================================
| Defect Descriptor 0 |
| (See specific table for length.) |
-----|- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -|
| Defect Descriptor n |
| (See specific table for length.) |
==============================================================================
Table 8-4: Defect List Header
SCSI-2 draft proposed American National Standard 8-15 Revision 10c15
Direct-Access Devices 3/9/90
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Reserved |
-----|-----------------------------------------------------------------------|
1 | FOV | DPRY | DCRT | STPF | IP | DSP | Immed | VS |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
-----|--- Defect List Length ---|
3 | (LSB) |
==============================================================================
The defect list header (TABLE 8-4) provides several optional format control
bits. Targets that implement these bits give the initiator additional control
over the use of the four defect sources, and the formatting operation. If the
initiator attempts to select any function not implemented by the target, the
target shall terminate the command with CHECK CONDITION status. The sense key
shall be set to ILLEGAL REQUEST and the additional sense code shall be set to
INVALID FIELD IN PARAMETER LIST.
A format options valid (FOV) bit of zero indicates that the target shall use
its default settings for the DPRY, DCRT, STPF, IP and DSP bits (see below).
The initiator shall set these bits to zero. If any of these bits are not
zero, the target shall terminate the command with CHECK CONDITION status. The
sense key shall be set to ILLEGAL REQUEST and the additional sense code shall
be set to INVALID FIELD IN PARAMETER LIST.
A FOV bit of one indicates that the target shall examine the setting of the
DPRY, DCRT, STPF, IP and DSP bits. When FOV is one the DPRY, DCRT, STPF, IP
and DSP bits are defined below.
A disable primary (DPRY) bit of zero indicates that the target shall not use
portions of the medium identified as defective in the primary defect Plist for
initiator addressable logical blocks. If the target cannot locate the Plist
or it cannot determine whether a Plist exists, it shall perform the action
specified by the STPF bit. A DPRY bit of one indicates that the target shall
not use the Plist to identify defective areas of the medium. The Plist is not
deleted.
A disable certification (DCRT) bit of zero indicates that the target shall
perform a vendor-specific medium certification operation to generate a Clist.
A DCRT bit of one indicates that the target shall not perform any vendor-
specific medium certification process or format verification operation while
executing the FORMAT UNIT command.
The stop format (STPF) bit controls the behavior of the target when one of the
SCSI-2 draft proposed American National Standard 8-16 Revision 10c16
Direct-Access Devices 3/9/90
following events occurs:
(1) The target has been requested to use the primary defect list (DPRY is set
to zero), or the grown defect list (CmpLst is set to zero) and the target
cannot locate the list nor determine whether the list exists.
(2) The target has been requested to use the primary defect list (DPRY is set
to zero) or the grown defect list (CmpLst is set to zero), and the target
encounters an error while accessing the defect list.
A STPF bit of zero indicates that, if one or both of the above conditions
occurs, the target shall continue to execute the FORMAT UNIT command. The
target shall return CHECK CONDITION status at the completion of the FORMAT
UNIT command. The sense key shall be set to RECOVERED ERROR and the
additional sense code shall be set to to either DEFECT LIST NOT FOUND if
condition one occurred, or DEFECT LIST ERROR if condition two occurred.
A STPF bit of one indicates that, if one or both of the above conditions
occurs, the target shall terminate the FORMAT UNIT command with CHECK
CONDITION status. The sense key shall be set to MEDIUM ERROR and the
additional sense code shall be set to to either DEFECT LIST NOT FOUND if
condition one occurred, or DEFECT LIST ERROR if condition two occurred.
IMPLEMENTORS NOTE: The use of the FmtData bit, the CmpLst bit, and the defect
header allow the initiator to control the source of the defect lists used by
the FORMAT UNIT command. Setting the defect list length to zero allows the
initiator to control the use of Plist and Clist without having to specify a
Dlist.
Table 8-5 defines the implementation requirements for the FORMAT UNIT command.
SCSI-2 draft proposed American National Standard 8-17 Revision 10c17
Direct-Access Devices 3/9/90
Table 8-5: FORMAT UNIT Defect Descriptor Format and Requirements
==============================================================================
FmtData
| CmpLst
| | Defect Defect
| | List List Command
| | Format Length Type Comments
- - ------ ------ ---------
------------------------------------------
0 0 000b N/A Mandatory Target-defined use of defect sources.
------------------------------------------------------------------------------
BLOCK FORMAT:
1 0 000b Zero Mandatory (1),(3)
1 1 000b Zero Mandatory (1),(4)
1 0 000b >0 Optional (2),(3)
1 1 000b >0 Optional (2),(4)
------------------------------------------------------------------------------
BYTES FROM INDEX FORMAT:
1 0 100b Zero Optional (1),(3)
1 1 100b Zero Optional (1),(4)
1 0 100b >0 Optional (2),(3)
1 1 100b >0 Optional (2),(4)
------------------------------------------------------------------------------
PHYSICAL SECTOR FORMAT:
1 0 101b Zero Optional (1),(3)
1 1 101b Zero Optional (1),(4)
1 0 101b >0 Optional (2),(3)
1 1 101b >0 Optional (2),(4)
------------------------------------------------------------------------------
1 0 110b Vendor-Specific
1 1 110b Vendor-Specific
All other codes Reserved
NOTE: All options described above cause a new Glist to be created during the
execution of the FORMAT UNIT command as described in the text above.
SCSI-2 draft proposed American National Standard 8-18 Revision 10c18
Direct-Access Devices 3/9/90
==============================================================================
= .aw on
NOTES:
(1) No Dlist is transferred to the target during the DATA OUT phase.
(2) A Dlist is transferred to the target during the DATA OUT phase. Add the
Dlist defects to the new Glist.
(3) Use the existing Glist as a defect source. Add existing Glist defects to
the new Glist.
(4) Discard the existing Glist. Do not add existing Glist defects to the new
Glist.
A disable saving parameters (DSP) bit of one, specifies that the target shall
not save the MODE SELECT savable parameters to non-volatile memory during the
format operation. A DSP bit of zero specifies that the target shall save all
the MODE SELECT savable parameters for all initiators to non- volatile memory
during the format operation.
An immediate (Immed) bit of zero indicates that status shall be returned after
the format operation has completed. An Immed bit value of one indicates that
the target shall return status as soon as the command descriptor block has
been validated, and the entire defect list has been transferred.
The defect list length field in the defect list header specifies the total
length in bytes of the defect descriptors that follow and does not include the
initialization pattern descriptor or initialization pattern, if any. The
length of the defect descriptors varies with the format of the defect list.
The three formats for the defect descriptor(s) field in the defect lists are
shown in Tables 8-6, 8-7, and 8-8. In Table 8-6, the defect list length is
equal to four times the number of defect descriptors. In Tables 8-7 and 8-8,
the defect list length is equal to eight times the number of defect
descriptors.
8.2.1.1. Defect List Formats
This section describes the defect list formats used in the FORMAT UNIT, READ
DEFECT DATA and translate page of the SEND DIAGNOSTIC and RECEIVE DIAGNOSTIC
RESULTS commands.
IMPLEMENTORS NOTE: The selected reporting format must account for variables
which can impact the information in the returned. For example, the specific
location of a defect, while constant in angular and radial location on the
device, may change in reported location a format operation with different
geometry parameters is performed. It is the responsibility of the initiator
to use a defect list format appropriate for the intended operation with the
current or future geometry parameters. If the target is able to detect that
the selected defect list format would provide inconsistent results, the target
may return CHECK CONDITION status.
Table 8-6: Defect Descriptor - Block Format
SCSI-2 draft proposed American National Standard 8-19 Revision 10c19
Direct-Access Devices 3/9/90
==============================================================================
Byte | Defect Descriptor |
==============================================================================
0 | (MSB) |
- - -|- - Defective Block Address - -|
3 | (LSB) |
==============================================================================
Each block format defect descriptor specifies a four-byte defective block
address that contains the defect. The defect descriptors should be in
ascending order. More than one physical or logical block may be affected by
each defect descriptor.
A target may return CHECK CONDITION if the defect descriptors are not in
ascending order.
Table 8-7: Defect Descriptor - Bytes From Index Format
==============================================================================
Byte | Defect Descriptor |
==============================================================================
0 | (MSB) |
- - -|- - Cylinder Number of Defect - -|
2 | (LSB) |
-----|-----------------------------------------------------------------------|
3 | Head Number of Defect |
-----|-----------------------------------------------------------------------|
4 | (MSB) |
- - -|- - Defect Bytes from Index - -|
7 | (LSB) |
==============================================================================
Each bytes from index defect descriptor specifies the location of a defect
which is no more than eight-bytes in length. Each descriptor is comprised of
the cylinder number of defect, the head number of defect, and the defect bytes
from index to the defect. The defect descriptors shall be in ascending order.
The cylinder number of defect is the most significant part of the address and
the defect bytes from index is the least significant part of the address. More
than one physical or logical block may be affected by each defect.
A defect bytes from index of FFFFFFFFh indicates that the entire track shall
be considered defective.
Table 8-8: Defect Descriptor - Physical Sector Format
SCSI-2 draft proposed American National Standard 8-20 Revision 10c20
Direct-Access Devices 3/9/90
==============================================================================
Byte | Defect Descriptor |
==============================================================================
0 | (MSB) |
- - -|- - Cylinder Number of Defect - -|
2 | (LSB) |
-----|-----------------------------------------------------------------------|
3 | Head Number of Defect |
-----|-----------------------------------------------------------------------|
4 | (MSB) |
- - -|- - Defective Sector Number - -|
7 | (LSB) |
==============================================================================
Each physical sector defect descriptor specifies the location of a defect that
is the length of a sector. Each descriptor is comprised of a cylinder number
of defect, the head number of defect, and the defective sector number. The
defect descriptors shall be in ascending order. The cylinder number of defect
is the most significant part of the address and the defective sector number is
the least significant part of the address. More than one block may be
affected by each defect descriptor.
A defective sector number of FFFFFFFFh indicates that the entire track shall
be considered defective.
8.2.1.2. Initialization Pattern Option
The initialization pattern option specifies that the logical blocks contain
the specified initialization pattern. The initialization pattern descriptor
(Table 8-9) is sent to the target as part of the FORMAT UNIT parameter list.
Table 8-9: Initialization Pattern Descriptor
==============================================================================
0 | IP Modifier | Reserved |
-----|-----------------------------------------------------------------------|
1 | Pattern Type |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
-----|--- Initialization Pattern Length ---|
3 | (LSB) |
-----|-----------------------------------------------------------------------|
0 - | Initialization Pattern |
n | |
==============================================================================
IMPLEMENTORS NOTE: The initialization pattern option is not intended for
media analysis or certification. This option may only initialize the
SCSI-2 draft proposed American National Standard 8-21 Revision 10c21
Direct-Access Devices 3/9/90
initiator accessible area of the media to the specified pattern and may not
write to any initiator inaccessible areas of the disk.
An initialization pattern (IP) bit of one indicates that an initialization
pattern descriptor is included in the FORMAT UNIT parameter list immediately
following the defect list header. An IP bit of zero indicates that an
initialization pattern descriptor is not included and that the target shall
use its default initialization pattern.
The IP modifier field specifies the type and location of a header that
modifies the initialization pattern (Table 8-10).
Table 8-10: Initialization Pattern Modifier
==============================================================================
IP Modifier Description
------------------------------------------------------------------------------
0 0 No header. The target shall not modify the the initialization
pattern.
0 1 The target shall overwrite the initialization pattern to write
the logical block address in the first four bytes of the logical block. The
logical block address shall be written with the most significant byte first.
1 0 The target shall overwrite the initialization pattern to write
the logical block address in the first four bytes of each physical block
contained within the logical block. The lowest numbered logical block or part
thereof that occurs within the physical block is used. The logical block
address shall be written with the most significant byte first.
1 1 Reserved.
==============================================================================
The initialization pattern type field indicates the type of pattern the target
shall use to initialize each logical block within the initiator accessible
portion of the medium (Table 8-11). All bytes within a logical block shall be
written with the initialization pattern. The initialization pattern is
modified by the IP modifier field as described above in Table 8-10.
Table 8-11: Initialization Pattern Type
SCSI-2 draft proposed American National Standard 8-22 Revision 10c22
Direct-Access Devices 3/9/90
==============================================================================
Pattern Type Note Description
------------------------------------------------------------------------------
00h (1) Use default pattern
01h (2) Repeat the initialization pattern as required to fill the
logical block
02-7Fh none Reserved
80-FFh none Vendor-specific
==============================================================================
NOTES:
(1) If the initialization pattern length is not zero the target shall
terminate the command with CHECK CONDITION status. The sense key shall be set
to ILLEGAL REQUEST and the additional sense code shall be set to INVALID FIELD
IN PARAMETER LIST.
(2) If the initialization pattern length is zero the target shall terminate
the command with CHECK CONDITION status. The sense key shall be set to
ILLEGAL REQUEST and the additional sense code shall be set to INVALID FIELD IN
PARAMETER LIST.
The initialization pattern length field indicates the number of bytes
contained in the initialization pattern. If the length exceeds the current
logical block size the target shall terminate the command with CHECK CONDITION
status. The sense key shall be set to ILLEGAL REQUEST and the additional
sense code shall be set to INVALID FIELD IN PARAMETER LIST. The pattern is
modified by the IP modifier field.
8.2.2. LOCK UNLOCK CACHE Command
SCSI-2 draft proposed American National Standard 8-23 Revision 10c23
Direct-Access Devices 3/9/90
Table 8-12: LOCK UNLOCK CACHE Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (36h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved | Lock | RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Number of Blocks ---|
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The LOCK UNLOCK CACHE command (Table 8-12) requests that the target disallow
or allow logical blocks within the specified range to be removed from the
cache memory by the target's cache replacement algorithm. Locked logical
blocks may be written to the medium when modified, but a copy of the modified
logical block shall remain in the cache memory.
A lock bit of one indicates that any logical block in the specified range that
is currently present in the cache memory shall be locked into cache memory.
Only logical blocks that are already present in the cache memory are actually
locked. A lock bit of zero indicates that all logical blocks in the specified
range that are currently locked into the cache memory shall be unlocked, but
not necessarily removed.
A relative address (RelAdr) bit of one indicates that the logical block
address field is a two's complement displacement. This negative or positive
displacement is to be added to the logical block address last accessed on the
logical unit to form the logical block address for this command. This feature
is only available when linking commands. The feature requires that a previous
command in the linked group have accessed a block of data on the logical unit.
A RelAdr bit of zero indicates that the logical block address field specifies
the first logical block of the range of logical blocks to be operated on by
this command.
SCSI-2 draft proposed American National Standard 8-24 Revision 10c24
Direct-Access Devices 3/9/90
The number of blocks specifies the total number of contiguous logical blocks
within the range. A number of blocks field of zero indicates that all
remaining logical blocks on the logical unit shall be within the range.
Multiple locks may be in effect from more than one initiator. Locks from
different initiators may overlap. An unlock of an overlapped area does not
release the lock of another initiator.
8.2.3. PRE-FETCH Command
Table 8-13: PRE-FETCH Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (34h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved | Immed | RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Transfer Length |
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The PRE-FETCH command (Table 8-13) requests the target to transfer the
specified logical blocks to the cache memory. No data shall be transferred to
the initiator.
An immediate (Immed) bit of one indicates that status shall be returned as
soon as the command descriptor block has been validated. An Immed bit of zero
indicates that status shall be returned after the operation is complete.
See 8.2.2 for a definition of the RelAdr bit and the logical block address
field.
The transfer length field specifies the number of contiguous logical blocks of
SCSI-2 draft proposed American National Standard 8-25 Revision 10c25
Direct-Access Devices 3/9/90
data that shall be transferred to the target's cache memory. A transfer
length of zero indicates that the contiguous logical blocks up to and
including the last logical block of the logical unit shall be transferred to
the target's cache memory. Any other value indicates the number of logical
blocks that shall be transferred. The target may elect to not transfer
logical blocks that already are contained in the cache memory.
If the Immed bit is zero and the specified logical blocks were successfully
transferred to the cache memory the target shall return CONDITION MET status.
If the link bit (see 6.2.7) is one the target shall return INTERMEDIATE-
CONDITION MET status.
If Immed is one and the unlocked cache memory has sufficient capacity to
accept all of the specified logical blocks the target shall return CONDITION
MET status. If the link bit (see 6.2.7) is one the target shall return
INTERMEDIATE-CONDITION MET status.
If Immed is one and the unlocked cache memory does not have sufficient
capacity to accept all of the specified logical blocks the target shall return
GOOD status. The target shall transfer to cache memory as many logical blocks
as will fit. If the link bit (see 6.2.7) is one the target shall return
INTERMEDIATE status.
8.2.4. PREVENT ALLOW MEDIUM REMOVAL Command
SCSI-2 draft proposed American National Standard 8-26 Revision 10c26
Direct-Access Devices 3/9/90
Table 8-14: PREVENT ALLOW MEDIUM REMOVAL Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (1Eh) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved |
-----|-----------------------------------------------------------------------|
2 | Reserved |
-----|-----------------------------------------------------------------------|
3 | Reserved |
-----|-----------------------------------------------------------------------|
4 | Reserved | Prevent|
-----|-----------------------------------------------------------------------|
5 | Control |
==============================================================================
The PREVENT ALLOW MEDIUM REMOVAL command (Table 8-14) requests that the target
enable or disable the removal of the medium in the logical unit. This
mechanism is independent of device reservations and the target shall not allow
medium removal if any initiator currently has medium removal prevented.
The prevention of medium removal shall begin when any initiator issues a
PREVENT ALLOW MEDIUM REMOVAL command with a prevent bit of one (medium removal
prevented). The prevention of medium removal for the logical unit shall
terminate:
(1) after all initiators that have medium removal prevented issue PREVENT
ALLOW MEDIUM REMOVAL commands with a prevent bit of zero, and the target has
successfully performed a synchronize cache operation.
(2) upon the receipt of a BUS DEVICE RESET message from any initiator, or
(3) upon a hard RESET condition.
While a prevention of medium removal condition is in effect the target shall
inhibit mechanisms that normally allow removal of the medium by an operator.
8.2.5. READ(6) Command
SCSI-2 draft proposed American National Standard 8-27 Revision 10c27
Direct-Access Devices 3/9/90
Table 8-15: READ(6) Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (08h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | (MSB) |
-----|------------------------------ ---|
2 | Logical Block Address |
-----|--- ---|
3 | (LSB) |
-----|-----------------------------------------------------------------------|
4 | Transfer Length |
-----|-----------------------------------------------------------------------|
5 | Control |
==============================================================================
The READ(6) command (Table 8-15) requests that the target transfer data to the
initiator. The most recent data value written in the addressed logical block
shall be returned.
The cache control bits (see 8.2.6) are not provided for this command. Targets
with cache memory may have values for the cache control bits which may affect
the READ(6) command, however no default value is defined by this standard. If
explicit control is required, the READ(10) command should be used.
The logical block address field specifies the logical block at which the read
operation shall begin.
The transfer length field specifies the number of contiguous logical blocks of
data to transferred. A transfer length of zero indicates that 256 logical
blocks shall be transferred. Any other value indicates the number of logical
blocks that shall be transferred.
8.2.6. READ(10) Command
SCSI-2 draft proposed American National Standard 8-28 Revision 10c28
Direct-Access Devices 3/9/90
Table 8-16: READ(10) Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (28h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | DPO | FUA | Reserved | RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Transfer Length |
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The READ(10) command (Table 8-16) requests that the target transfer data to
the initiator. The most recent data value written in the addressed logical
block shall be returned.
A disable page out (DPO) bit of one indicates that the target shall assign the
logical blocks accessed by this command the lowest priority for being fetched
into or retained by the cache. A DPO bit of one overrides any retention
priority specified in the cache page (see 8.3.3.1). A DPO bit of zero
indicates the priority shall be determined by the retention priority fields in
the cache page. All other aspects of the algorithm implementing the cache
memory replacement strategy are not defined by this standard.
IMPLEMENTORS NOTE: The DPO bit is used to control replacement of logical
blocks in the cache memory when the host has information on the future usage
of the logical blocks. If the the DPO bit is set to one, the host knows the
logical blocks accessed by the command are not likely to be accessed again in
the near future and should not be put in the cache memory nor retained by the
cache memory. If the DPO bit is zero, the host expects that logical blocks
accessed by this command are likely to be accessed again in the near future.
A force unit access (FUA) bit of one indicates that the target shall access
SCSI-2 draft proposed American National Standard 8-29 Revision 10c29
Direct-Access Devices 3/9/90
the media in performing the command prior to returning GOOD status. Read
commands shall access the specified logical blocks from the media (i.e., the
data is not directly retrieved from the cache). In the case where the cache
contains a more recent version of a logical block than the media, the logical
block shall first be written to the media. Write commands shall not return
GOOD status until the logical blocks have actually been written on the media
(i.e., the data is not write cached).
An FUA bit of zero indicates that the target may satisfy the command by
accessing the cache memory. For read operations, any logical blocks that are
contained in the cache memory may be transferred to the initiator directly
from the cache memory. For write operations, logical blocks may be
transferred directly to the cache memory. GOOD status may be returned to the
initiator prior to writing the logical blocks to the medium. Any errors which
occur after the GOOD status is returned is a deferred error and information
regarding the error is not reported until a subsequent command.
See 8.2.2 for a definition of the RelAdr bit and the logical block address
field.
The transfer length field specifies the number of contiguous logical blocks of
data that shall be transferred. A transfer length of zero indicates that no
logical blocks shall be transferred. This condition shall not be considered
an error. Any other value indicates the number of logical blocks that shall
be transferred.
8.2.7. READ CAPACITY Command
SCSI-2 draft proposed American National Standard 8-30 Revision 10c30
Direct-Access Devices 3/9/90
Table 8-17: READ CAPACITY Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (25h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved | RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | Reserved |
-----|-----------------------------------------------------------------------|
8 | Reserved | PMI |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The READ CAPACITY command (Table 8-17) provides a means for the initiator to
request information regarding the capacity of the logical unit.
See 8.2.2 for a definition of the RelAdr bit and the logical block address
field.
The logical block address shall be zero if the PMI bit is zero. If the PMI
bit is zero and the logical block address is not zero, the target shall return
a CHECK CONDITION status, the sense key shall be set to ILLEGAL REQUEST and
the additional sense code set to ILLEGAL FIELD IN CDB.
A partial medium indicator (PMI) bit of zero indicates that the returned
logical block address and the block length in bytes are that of the last
logical block of the logical unit.
A PMI bit of one indicates that the returned logical block address and block
length in bytes are that of the logical block address after which a
substantial delay in data transfer will be encountered. This returned logical
block address shall be greater than or equal to the logical block address
specified by the RelAdr and logical block address fields in the command
descriptor block.
IMPLEMENTORS NOTE: This function is intended to assist storage management
software in determining whether there is sufficient space on the current
SCSI-2 draft proposed American National Standard 8-31 Revision 10c31
Direct-Access Devices 3/9/90
track, cylinder, etc. to contain a frequently accessed data structure such as
a file directory or file index without incurring an access delay.
The READ CAPACITY data (Table 8-18) shall be sent during the DATA IN phase of
the command.
Table 8-18: READ CAPACITY Data
==============================================================================
Byte | Description |
==============================================================================
0 | (MSB) |
- - -|- - Returned Logical Block Address - -|
3 | (LSB) |
-----|-----------------------------------------------------------------------|
4 | (MSB) |
- - -|- - Block Length In Bytes - -|
7 | (LSB) |
==============================================================================
8.2.8. READ DEFECT DATA Command
SCSI-2 draft proposed American National Standard 8-32 Revision 10c32
Direct-Access Devices 3/9/90
Table 8-19: READ DEFECT DATA Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (37h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved |
-----|-----------------------------------------------------------------------|
2 | Reserved | PList | GList | Defect List Format |
-----|-----------------------------------------------------------------------|
3 | |
- - -|- - Reserved - -|
6 | |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Allocation Length |
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The READ DEFECT DATA command (Table 8-19) requests that the target transfer
the medium defect data to the initiator. If the target is unable to access
any medium defect data it shall terminate the command with CHECK CONDITION
status. The sense key shall be set to either MEDIUM ERROR if a medium error
occurred or NO SENSE if the list does not exist and the additional sense code
shall be set to DEFECT LIST NOT FOUND.
IMPLEMENTORS NOTE: Some targets may not be able to return medium defect data
until after a FORMAT UNIT command has been successfully completed.
A primary defect list (PList) bit of one requests that the target return the
primary list of defects. A PList bit of zero requests that the target not
return the primary list of defects.
A grown defect list (GList) bit of one requests that the target return the
grown defect list. A GList bit of zero requests that the target not return
the grown defect list.
A PList bit of one and a GList bit of one requests that the target return the
primary and the grown defect lists. The order in which the lists are
returned is vendor-specific. Whether the lists are merged or not is vendor-
specific.
A PList bit of zero and a GList bit of zero requests that the target return
SCSI-2 draft proposed American National Standard 8-33 Revision 10c33
Direct-Access Devices 3/9/90
only the defect list header.
The defect list format field is used by the initiator to indicate the
preferred format for the defect list. This field is intended for those
targets capable of returning more than one format, as defined in the FORMAT
UNIT command (see 8.2.1.2, defect list format). A target unable to return the
requested format shall return the defect list in its default format (see the
defect list format field in the defect list header below).
If the requested defect list format and the returned defect list format are
not the same the target shall transfer the defect data and then terminate the
command with CHECK CONDITION status. The sense key shall be set to RECOVERED
ERROR and the additional sense code shall be set to DEFECT LIST NOT FOUND.
The READ DEFECT DATA defect list (Table 8-20) contains a four-byte header,
followed by zero or more defect descriptors.
Table 8-20: READ DEFECT DATA Defect List
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Reserved |
-----|-----------------------------------------------------------------------|
1 | Reserved | PList | GList | Defect List Format |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
-----|--- Defect List Length |
3 | (LSB) |
==============================================================================
Defect Descriptors
==============================================================================
0-n | |
==============================================================================
A PList bit of one indicates that the data returned contains the primary
defect list. A PList bit of zero indicates that the data returned does not
contain the primary defect list.
A GList bit of one indicates that the data returned contains the grown defect
list. A GList bit of zero indicates that the data returned does not contain
the grown defect list.
The defect list format field indicates the format of the defect descriptors
SCSI-2 draft proposed American National Standard 8-34 Revision 10c34
Direct-Access Devices 3/9/90
returned by the target. This field is defined in the FORMAT UNIT command (see
8.2.1.2).
IMPLEMENTORS NOTE: The use of the block format is not recommended. There is
no universal model that sensibly defines the meaning of the logical block
address of a defect. In the usual case a defect that has been reassigned no
longer has a logical block address.
Defect descriptors returned in the block format are vendor-specific. Defect
descriptors returned in the physical sector format may or may not include
defects in areas not accessible to the initiator. Defect descriptors returned
in bytes-from-index format shall comprise a complete list of defects. A
complete list of defects may include defects in areas not within the capacity
returned in the READ CAPACITY command.
The defect list length field specifies the length in bytes of the defect
descriptors that follow. The defect list length is equal to four or eight
times the number of defect descriptors depending on the format of the returned
descriptors (see Tables 8-8, 8-9 and 8-10 in the FORMAT UNIT command).
If the allocation length is insufficient to transfer all of the defect
descriptors, the defect list length shall not be adjusted to reflect the
truncation. The target shall not create CHECK CONDITION status. The
initiator is responsible for comparing the defect list length and the
allocation length to ensure that a partial list was not received.
IMPLEMENTORS NOTE: The initiator can determine the length of the defect list
by sending the READ DEFECT DATA command with an allocation length of four.
The target will return the defect list header which contains the length of the
defect list.
The defect descriptors may or may not be sent in ascending order. The
initiator can determine the exact number of defects by dividing the defect
list length by the length of a single defect descriptor for the returned
format.
8.2.9. READ LONG Command
SCSI-2 draft proposed American National Standard 8-35 Revision 10c35
Direct-Access Devices 3/9/90
Table 8-21: READ LONG Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (3Eh) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved | CORRCT | RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Byte Transfer Length |
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The READ LONG command (Table 8-21) requests that the target transfer data to
the initiator. The data passed during the READ LONG command is implementation
specific, but shall include the data bytes and the ECC bytes recorded on the
medium. The most recent data written in the addressed logical block shall be
returned.
IMPLEMENTORS NOTE: Any other bytes that can be corrected by ECC should be
included (e.g., data synchronization mark within the area covered by ECC). It
is not important for the ECC bytes to be at the end of the data bytes, however
they should be in the same order as they are on the media.
A corrected (CORRCT) bit of zero causes a logical block to be read without any
correction made by the target. A CORRCT bit of one causes the data to be
corrected by ECC before being transferred to the initiator.
See 8.2.2 for a definition of the RelAdr bit and the logical block address
field.
The byte transfer length field should exactly specify the number of bytes of
SCSI-2 draft proposed American National Standard 8-36 Revision 10c36
Direct-Access Devices 3/9/90
data that are available for transfer. If a non-zero byte transfer length does
not exactly match the available data length, the target shall terminate the
command with CHECK CONDITION status, the sense key shall be set to ILLEGAL
REQUEST and an additional sense code set to INVALID FIELD IN CDB. The valid
and ILI bits shall be set to one and the information field shall be set to the
difference (residue) of the requested length minus the actual length in bytes.
Negative values shall be indicated by two's complement notation.
A byte transfer length of zero indicates that no bytes shall be transferred
and shall not be considered an error.
8.2.10. REASSIGN BLOCKS Command
Table 8-22: REASSIGN BLOCKS Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (07h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved |
-----|-----------------------------------------------------------------------|
2 | Reserved |
-----|-----------------------------------------------------------------------|
3 | Reserved |
-----|-----------------------------------------------------------------------|
4 | Reserved |
-----|-----------------------------------------------------------------------|
5 | Control |
==============================================================================
The REASSIGN BLOCKS command (Table 8-22) requests the target to reassign the
defective logical blocks to another area on the medium set aside for this
purpose. The target should also record the location of the defective logical
blocks to the grown defect list if such a list is supported. More than one
physical or logical block may be relocated by each defect descriptor sent by
the initiator. This command does not alter the contents or location of the
Plist (see 8.2.1, FORMAT UNIT command).
The initiator transfers a defect list that contains the logical block
addresses to be reassigned. The target shall reassign the physical medium
used for each logical block address in the list. The data contained in the
logical blocks specified in the defect list may be altered, but the data in
all other logical blocks on the medium shall be preserved.
IMPLEMENTORS NOTE: The effect of specifying a logical block to be reassigned
SCSI-2 draft proposed American National Standard 8-37 Revision 10c37
Direct-Access Devices 3/9/90
that previously has been reassigned is to reassign the block again. Over the
life of the medium, a logical block can be assigned to multiple physical
addresses until no more spare locations remain on the medium.
The REASSIGN BLOCKS defect list (Table 8-23) contains a four-byte header
followed by one or more defect descriptors. The length of each defect
descriptor is four bytes.
Table 8-23: REASSIGN BLOCKS Defect List
==============================================================================
Byte | Defect List Header |
==============================================================================
0 | Reserved |
-----|-----------------------------------------------------------------------|
1 | Reserved |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
-----|--- Defect List Length ---|
3 | (LSB) |
==============================================================================
| Defect Descriptor(s) |
==============================================================================
0 | (MSB) |
- - -|- - Defect Logical Block Address - -|
3 | (LSB) |
==============================================================================
The defect list length field specifies the total length in bytes of the defect
descriptors that follow. The defect list length is equal to four times the
number of defect descriptors and does not include the defect list header
length.
The defect descriptor specifies a four-byte defect logical block address that
contains the defect. The defect descriptors shall be in ascending order.
If the logical unit has insufficient capacity to reassign all of the logical
blocks specified in the defect descriptors, the command shall terminate with
CHECK CONDITION status, the sense key shall be set to HARDWARE ERROR and the
additional sense code set to NO DEFECT SPARE LOCATION AVAILABLE.
If the logical unit is unable to successfully complete a REASSIGN BLOCKS
command, the command shall terminate with CHECK CONDITION status with the
appropriate sense information. The logical block address of the first defect
descriptor not reassigned shall be returned in the command-specific
information field of the sense data. If information about the first defect
descriptor not reassigned is not available, or if all the defects have been
reassigned, this field shall be set to FFFFFFFFh.
SCSI-2 draft proposed American National Standard 8-38 Revision 10c38
Direct-Access Devices 3/9/90
If the REASSIGN BLOCKS command failed due to an unexpected unrecoverable read
error that would cause the loss of data in a block not specified in the defect
list, the logical block address of the unrecoverable block shall be returned
in the information field of the sense data and the valid bit shall be set to
one.
IMPLEMENTORS NOTE: If the REASSIGN BLOCKS command returns CHECK CONDITION
status and the sense data command-specific information field contains a valid
logical block address, the initiator should remove all defect descriptors from
the defect list prior to the one returned in the command- specific information
field. If the sense key is MEDIUM ERROR and the valid bit is one (the
information field contains the valid block address) the initiator should
insert that new defective logical block address into the defect list and
reissue the REASSIGN BLOCKS command with the new defect list. Otherwise, the
initiator should perform any corrective action indicated by the sense data and
then reissue the REASSIGN BLOCKS command with the new defect list.
8.2.11. RELEASE Command
Table 8-24: RELEASE Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (17h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | 3rdPty | Third Party Device ID | Extent |
-----|-----------------------------------------------------------------------|
2 | Reservation Identification |
-----|-----------------------------------------------------------------------|
3 | Reserved |
-----|-----------------------------------------------------------------------|
4 | Reserved |
-----|-----------------------------------------------------------------------|
5 | Control |
==============================================================================
The RESERVE and RELEASE commands provide the basic mechanism for contention
resolution in multiple-initiator systems. The RELEASE command (Table 8-24) is
used to release a previously reserved logical unit, or, if the extent release
option is implemented, to release previously reserved extents within a logical
unit. It is not an error for an initiator to attempt to release a reservation
that is not currently valid. In this case, the target shall return GOOD
status without altering any other reservation.
IMPLEMENTORS NOTE: The reservation queuing option in X3.131-1986 has been
removed from SCSI-2.
SCSI-2 draft proposed American National Standard 8-39 Revision 10c39
Direct-Access Devices 3/9/90
8.2.11.1. Logical Unit Release (Mandatory)
If the extent bit is zero, this command shall cause the target to terminate
all non-third-party logical unit and extent reservations that are active from
the initiator to the specified logical unit. The reservation ID field in the
command descriptor block is ignored by the target.
8.2.11.2. Extent Release (Optional)
If the extent bit is one and the extent release option is not implemented,
then the RELEASE command shall be terminated with CHECK CONDITION status and
the sense key shall be set to ILLEGAL REQUEST. This option shall be
implemented if the extent reservation option (see 8.2.12.2) is implemented.
If the extent bit is one and the extent release option is implemented, this
command shall cause any reservation from the requesting initiator with a
matching reservation identification to be terminated. Other reservations from
the requesting initiator shall remain in effect.
8.2.11.3. Third-Party Release (Mandatory)
Third-party release allows an initiator to release a logical unit or extents
within a logical unit that were previously reserved using third-party
reservation (see 8.2.12.3). Third-party release shall be implemented and is
intended for use in multiple-initiator systems that use the COPY command.
If the third-party (3rdPty) bit is zero, then a third-party release is not
requested. If the 3rdPty bit is one then the target shall release the
specified logical unit or extents, but only if the reservation was made using
a third-party reservation by the initiator that is requesting the release for
the same SCSI device as specified in the third-party device ID field.
If the 3rdPty bit is one the target shall not modify the mode parameters for
commands received from the third-party device even if the target implements
the transfer of mode parameters with a third-party RESERVE command.
IMPLEMENTORS NOTE: If a target implements independent storage of mode
parameters for each initiator, a third-party RESERVE command copies the
current mode parameters for the initiator that sent the RESERVE command to the
current mode parameters for the initiator specified as the third-party device
(usually a copy master device). A unit attention condition notifies the
third-party of the changed mode parameters due to the the reservation. A
successful third-party RELEASE command does not return the third-party
devices' current mode parameters back to their previous values. The third-
party device can issue MODE SENSE and MODE SELECT commands to query and modify
the mode parameters.
8.2.12. RESERVE Command
SCSI-2 draft proposed American National Standard 8-40 Revision 10c40
Direct-Access Devices 3/9/90
Table 8-25: RESERVE Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (16h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | 3rdPty | Third Party Device ID | Extent |
-----|-----------------------------------------------------------------------|
2 | Reservation Identification |
-----|-----------------------------------------------------------------------|
3 | (MSB) |
-----|--- Extent List Length ---|
4 | (LSB) |
-----|-----------------------------------------------------------------------|
5 | Control |
==============================================================================
The RESERVE and RELEASE commands provide the basic mechanism for contention
resolution in multiple-initiator systems. The RESERVE command (Table 8-25) is
used to reserve a logical unit or, if the extent reservation option is
implemented, extents within a logical unit. The third-party reservation
allows logical units or extents to be reserved for another specified SCSI
device.
IMPLEMENTORS NOTE: The reservation queuing option in X3.131-1986 has been
removed from SCSI-2.
8.2.12.1. Logical Unit Reservation (Mandatory).
If the extent bit is zero, this command shall request that the entire logical
unit be reserved for the exclusive use of the initiator until the reservation
is superseded by another valid RESERVE command from the initiator that made
the reservation or until released by a RELEASE command from the same initiator
that made the reservation, by a BUS DEVICE RESET message from any initiator,
by a hard RESET condition, or by a power on cycle. A logical unit reservation
shall not be granted if the logical unit or any extent is reserved by another
initiator. It shall be permissible for an initiator to reserve a logical unit
that is currently reserved by that initiator. If the extent bit is zero, the
reservation identification and the extent list length shall be ignored.
If the logical unit, or any extent within the logical unit is reserved for
another initiator, the target shall return RESERVATION CONFLICT status.
If, after honoring the reservation, any other initiator attempts to perform
SCSI-2 draft proposed American National Standard 8-41 Revision 10c41
Direct-Access Devices 3/9/90
any command on the reserved logical unit other than an INQUIRY, REQUEST SENSE,
ALLOW MEDIUM REMOVAL, RESERVE, or a RELEASE command then the command shall be
rejected with RESERVATION CONFLICT status.
8.2.12.2. Extent Reservation (Optional)
The reservation identification field provides a means for an initiator to
identify each extent reservation. This allows an initiator in a multiple
tasking environment, to have multiple reservations outstanding. The
reservation identification is used in the RELEASE command to specify which
reservation is to be released. It is also used in superseding RESERVE
commands to specify which reservation is to be superseded.
If the extent reservation option is implemented, then the extent release
option (see 8.2.11.2) shall also be implemented. These options permit
multiple extents within the logical unit to be reserved, each with a separate
reservation type.
If the extent bit is one, and the extent reservation option is implemented,
SCSI-2 draft proposed American National Standard 8-42 Revision 10c42
Direct-Access Devices 3/9/90
then the target shall process the reservation request as follows:
(1) The extent list shall be checked for the number of extents in the
reservation request. If the extent list length is zero, no current
reservations shall be changed, no new reservations shall be created, and this
condition shall not be treated as an error. If the extent list contains more
extents than are supported on the logical unit, the command shall be
terminated with CHECK CONDITION status and the sense key shall be set to
ILLEGAL REQUEST. If the extent list contains more extents than are currently
available on the logical unit, then the target shall return a RESERVATION
CONFLICT status.
(2) The extent list shall be checked for valid extent logical block addresses.
If any logical block address is invalid for this logical unit, the command
shall be terminated with CHECK CONDITION status and the sense key shall be set
to ILLEGAL REQUEST. The extent list shall be checked for invalid extent
overlaps (as defined by reservation type) with other extent descriptors in the
extent list and if invalid overlaps are found, the command shall be terminated
with CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST.
(3) If the requested reservation does not conflict with an existing
reservation, the extents specified shall be reserved until superseded by
another valid RESERVE command from the initiator that made the reservation or
until released by a RELEASE command from the same initiator, by a BUS DEVICE
RESET message from any initiator, or by a hard RESET condition. If either of
the last two conditions occur, the next command from each initiator shall be
terminated with CHECK CONDITION status and the sense key shall be set to UNIT
ATTENTION.
(4) If the reservation request conflicts with an existing reservation, then
the target shall return a RESERVATION CONFLICT status.
If the extent bit is one, and the extent reservation option is not
implemented, then the RESERVE command shall be rejected with CHECK CONDITION
status and the sense key shall be set to ILLEGAL REQUEST.
Table 8-26: Data Format of Extent Descriptors
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Reserved | RelAdr | Reservation Type|
-----|-----------------------------------------------------------------------|
1 | (MSB) |
- - -|- - Number of Blocks - -|
3 | (LSB) |
-----|-----------------------------------------------------------------------|
4 | (MSB) |
- - -|- - Logical Block Address - -|
7 | (LSB) |
==============================================================================
The size of the extent list shall be defined by the extent list length field.
SCSI-2 draft proposed American National Standard 8-43 Revision 10c43
Direct-Access Devices 3/9/90
The extent list shall consist of zero or more descriptors as shown in Table
8-26. Each extent descriptor defines an extent beginning at the specified
logical block address for the specified number of blocks. If the number of
blocks is zero, the extent shall begin at the specified logical block address
and continue through the last logical block address on the logical unit.
The reservation type field shall determine the type of reservation to be
effected for each extent. Four types of reservations are possible as follows:
DB(1) DB(0) Reservation Type
----- ----- ----------------
1 0 Read Exclusive
0 1 Write Exclusive
1 1 Exclusive Access
0 0 Read Shared
Read Exclusive. While this reservation is active, no other initiator shall be
permitted read operations to the indicated extent. This reservation shall not
inhibit write operations from any initiator or conflict with a write exclusive
reservation; however, read exclusive, exclusive access, and read shared
reservations that overlap this extent shall conflict with this reservation.
Write Exclusive. While this reservation is active, no other initiator shall
be permitted write operations to the indicated extent. This reservation shall
not inhibit read operations from any initiator or conflict with a read
exclusive reservation from any initiator. This reservation shall conflict
with write exclusive, exclusive access, and read shared reservations that
overlap this extent.
Exclusive Access. While this reservation is active, no other initiator shall
be permitted any access to the indicated extent. All reservation types that
overlap this extent shall conflict with this reservation.
Read Shared. While this reservation is active, no write operations shall be
permitted by any initiator to the indicated extent. This reservation shall
not inhibit read operations from any initiator or conflict with a read shared
reservation. Read exclusive, write exclusive, and exclusive access
reservations that overlap with this extent shall conflict with this
reservation.
If the relative address bit is one, the logical block address in the extent
descriptor shall be treated as a two's complement displacement. This
displacement shall be added to the logical block address last accessed on the
logical unit to form the logical block address for this extent. This feature
is only available when linking commands and requires that a previous command
in the linked group has accessed a logical block on the logical unit; if not,
the RESERVE command shall be terminated with CHECK CONDITION status and the
sense key shall be set to ILLEGAL REQUEST.
If an initiator attempts a command to a logical block that has been reserved
SCSI-2 draft proposed American National Standard 8-44 Revision 10c44
Direct-Access Devices 3/9/90
and that access is prohibited by the reservation, the command shall not be
performed and the command shall be terminated with a RESERVATION CONFLICT
status. If a reservation conflict precludes any part of the command, none of
the command shall be performed. COPY commands shall be terminated with CHECK
CONDITION status and the sense key shall be set to DATA PROTECT if any part of
the copy operation is prohibited by an active reservation. If any extent in a
logical unit is reserved in any way, by any initiator, a FORMAT UNIT command
shall be rejected with a RESERVATION CONFLICT status.
8.2.12.3. Third Party Reservation (Mandatory).
The third-party reservation for the RESERVE command allows an initiator to
reserve a logical unit or extents within a logical unit for another SCSI
device. This is intended for use in multiple-initiator systems that use the
COPY command. Third-party reservation is required.
If the third-party (3rdPty) bit is zero, then a third-party reservation is not
requested. If the 3rdPty bit is one then the target shall reserve the
specified logical unit or extents for the SCSI device specified in the third-
party device ID field. The target shall preserve the reservation until it is
superseded by another valid RESERVE command from the initiator that made the
reservation or until it is released by the same initiator, by a BUS DEVICE
reset message from any initiator, or a hard reset condition. The target shall
ignore any attempt to release the reservation made by any other initiator.
If independent sets of parameters are implemented, a third party reservation
shall cause the target to transfer the set of parameters in effect for the
initiator of the RESERVE command to the parameters used for commands from the
third party device. Any subsequent command issued by the third-party device
is executed according to the mode parameters in effect for the initiator that
sent the RESERVE command.
IMPLEMENTORS NOTE: This transfer of the mode parameters is applicable to
target devices which store mode information independently for different
initiators. This mechanism allows an initiator to set the mode parameters of
a target for the use of a copy master (i.e., the third-party device). The
third-party copy master may subsequently issue a MODE SELECT command to modify
the mode parameters.
8.2.12.4. Superseding Reservations (Mandatory)
An initiator that holds a current reservation (unit or extent) may modify that
reservation by issuing another RESERVE command (unit or extent) to the same
logical unit. The superseding RESERVE command shall release the previous
reservation state (unit or extent) when the new reservation request is
granted. If the superseding reservation is for an extent reservation and the
current reservation is also an extent reservation, the current extent
reservation identification value is used for the superseding reservation. The
current reservation shall not be modified if the superseding reservation
request cannot be granted. If the superseding reservation cannot be granted
because of conflicts with a previous reservation (other than the reservation
being superseded), then the target shall return RESERVATION CONFLICT status.
SCSI-2 draft proposed American National Standard 8-45 Revision 10c45
Direct-Access Devices 3/9/90
IMPLEMENTORS NOTE: Superseding reservations allow the SCSI device ID to be
changed on a reservation using the third-party reservation option. This
capability is necessary for certain situations when using COMPARE, COPY, and
COPY AND VERIFY commands.
8.2.13. REZERO UNIT Command
Table 8-27: REZERO UNIT Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (01h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved |
-----|-----------------------------------------------------------------------|
2 | Reserved |
-----|-----------------------------------------------------------------------|
3 | Reserved |
-----|-----------------------------------------------------------------------|
4 | Reserved |
-----|-----------------------------------------------------------------------|
5 | Control |
==============================================================================
The REZERO UNIT command (Table 8-27) requests that the target set the logical
unit to a specific state. See vendor specifications for details.
8.2.14. SEARCH DATA Commands
SCSI-2 draft proposed American National Standard 8-46 Revision 10c46
Direct-Access Devices 3/9/90
Table 8-28: SEARCH DATA Commands
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (31h 30h 32h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Invert | Reserved | SpnDat | RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Number of Blocks to Search ---|
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The SEARCH DATA commands (Table 8-28) search one or more logical blocks for
equality or inequality to a data pattern. The concept of records within a
logical block is used to allow multiple records within a logical block to be
searched.
The invert bit determines whether the search condition is to be inverted. See
8.2.14.1 through 8.2.14.3 for a description of the search conditions for the
individual SEARCH DATA commands.
A spanned data (SpnDat) bit of zero indicates that each record shall be wholly
contained within a single block. Any space at the end of a block that is
smaller than the record length is ignored by the SEARCH DATA commands. A
SpnDat bit of one indicates that records span block boundaries (i.e., record
may start in one block and end in the next or a subsequent block.
The number of blocks to search field specifies the maximum number of
contiguous logical blocks to be searched. A value of zero indicates that no
logical blocks shall be searched. This condition shall not be considered an
error. Any other value indicates the maximum number of logical blocks that
shall be searched.
A link bit (see 6.2.7) of zero indicates a non-linked command and if the
SCSI-2 draft proposed American National Standard 8-47 Revision 10c47
Direct-Access Devices 3/9/90
search is satisfied, the command shall be terminated with a CONDITION MET
status. A REQUEST SENSE command can then be issued to determine the logical
block address and record offset of the matching record. If the search is not
satisfied and no error occurs, the command shall be terminated with GOOD
status.
A link bit (see 6.2.7) of one indicates a command is linked to the SEARCH DATA
command and if the search is satisfied, INTERMEDIATE-CONDITION MET status is
returned and the next command is executed. If the RelAdr bit in the next
command is one, the logical block address of the next command is used as a
displacement from the logical block address at which the search was satisfied.
If a linked search is not satisfied, the command is terminated with CHECK
CONDITION status. A REQUEST SENSE command may then be issued.
A REQUEST SENSE command following a satisfied SEARCH DATA command shall:
(1) Return a sense key of EQUAL if the search was satisfied by an exact match.
If the search was satisfied by an inequality then a sense key of NO SENSE
shall be returned.
(2) Return the valid bit set to one.
(3) Return the logical block address of the logical block containing the first
matching record in the information field.
(4) Return the record offset of the matching record in the command-specific
information field.
A REQUEST SENSE command following a SEARCH DATA command that is not satisfied
shall:
(1) Return a sense key of NO SENSE, if no errors occurred during the command
execution.
(2) Return the valid bit set to zero.
The SEARCH DATA parameter list (Table 8-29) contains a fourteen-byte header,
SCSI-2 draft proposed American National Standard 8-48 Revision 10c48
Direct-Access Devices 3/9/90
followed by one or more search argument descriptors.
Table 8-29: SEARCH DATA Parameter List
==============================================================================
Byte | Parameter List Header |
==============================================================================
0 | (MSB) |
- - -|- - Logical Record Length - -|
3 | (LSB) |
-----|-----------------------------------------------------------------------|
4 | (MSB) |
- - -|- - First Record Offset - -|
7 | (LSB) |
-----|-----------------------------------------------------------------------|
8 | (MSB) |
- - -|- - Number of Records - -|
11 | (LSB) |
-----|-----------------------------------------------------------------------|
12 | (MSB) |
-----|--- Search Argument Length ---|
13 | (LSB) |
==============================================================================
| Search Argument Descriptor(s) |
==============================================================================
0 | (MSB) |
- - -|- - Displacement - -|
3 | (LSB) |
-----|-----------------------------------------------------------------------|
4 | (MSB) |
-----|--- Pattern Length ---|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 - n| Pattern |
==============================================================================
The logical record length field specifies the record length in bytes.
The first record offset field specifies the number of bytes that shall be
ignored in the first logical block before the search begins. If the value of
the first record offset field shall is larger than the logical block length
the target shall terminate the command with a CHECK CONDITION status, set the
sense key to ILLEGAL REQUEST and set the additional sense code to INVALID
FIELD IN PARAMETERS LIST. Subsequent logical blocks shall be searched
beginning with the first byte in the logical block. This permits one or more
records to be skipped initially.
The number of records field specifies the maximum number of records that shall
SCSI-2 draft proposed American National Standard 8-49 Revision 10c49
Direct-Access Devices 3/9/90
be searched by this command. An search shall terminate when the search
pattern is found or when the number of records is exhausted or when the number
of blocks to search is exhausted.
The search argument length field specifies the length in bytes of all the
search argument descriptors that follow.
IMPLEMENTORS NOTE: Since the pattern length can vary, there is no fixed
multiple of the search argument descriptor to determine the search argument
length.
The search argument descriptors specify one or more search conditions to
execute within a single record in order to satisfy the search. Each search
argument descriptor is made up of a displacement field, a pattern length
field, and a pattern field.
The displacement field specifies the displacement in bytes of the first byte
of the data to be compared from the start of the logical record.
The pattern length field specifies the length in bytes of the pattern that
follows.
The pattern field specifies the data to compare to the logical record.
8.2.14.1. SEARCH DATA EQUAL Command
The SEARCH DATA EQUAL command (Table 8-28, operation code 31h) shall be
satisfied by the first logical record searched that contains data that
satisfies all of the search argument descriptor(s). If the invert bit in the
command descriptor block is zero, the search argument descriptor(s) shall be
satisfied by data in the logical record being equal to the data in the
pattern. If the invert bit is one, the search argument descriptor(s) shall be
satisfied by data in the logical record being not equal to the data in the
pattern. (See 8.2.14.)
8.2.14.2. SEARCH DATA HIGH Command
The SEARCH DATA HIGH command (Table 8-28, operation code 30h) shall be
satisfied by the first logical record searched that contains data that
satisfies all of the search argument descriptor(s). If the invert bit in the
command descriptor block is zero, the search argument descriptor(s) shall be
satisfied by data in the logical record being greater than the data in the
pattern. If the invert bit is one, the search argument descriptor(s) shall be
satisfied by data in the logical record being less than or equal to the data
in the pattern. (See 8.2.14.)
8.2.14.3. SEARCH DATA LOW Command
SCSI-2 draft proposed American National Standard 8-50 Revision 10c50
Direct-Access Devices 3/9/90
The SEARCH DATA LOW command (Table 8-28, operation code 32h) shall be
satisfied by the first logical record searched that contains data that
satisfies all of the search argument descriptor(s). If the invert bit in the
command descriptor block is zero, the search argument descriptor(s) shall be
satisfied by data in the logical record being less than the data in the
pattern. If the invert bit is one, the search argument descriptor(s) shall be
satisfied by data in the logical record being greater than or equal to the
data in the pattern. (See 8.2.14.)
8.2.15. SEEK(6) and SEEK(10) Commands
Table 8-30: SEEK(6) Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (0Bh) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | (MSB) |
-----|------------------------------ ---|
2 | Logical Block Address |
-----|--- ---|
3 | (LSB) |
-----|-----------------------------------------------------------------------|
4 | Reserved |
-----|-----------------------------------------------------------------------|
5 | Control |
==============================================================================
SCSI-2 draft proposed American National Standard 8-51 Revision 10c51
Direct-Access Devices 3/9/90
Table 8-31: SEEK(10) Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (2Bh) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | Reserved |
-----|-----------------------------------------------------------------------|
8 | Reserved |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The SEEK(6) (Table 8-30) and SEEK(10) (Table 8-31) commands request that the
logical unit seek to the specified logical block address.
8.2.16. SET LIMITS Command
SCSI-2 draft proposed American National Standard 8-52 Revision 10c52
Direct-Access Devices 3/9/90
Table 8-32: SET LIMITS Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (33h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved | RdInh | WrInh |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Number of Blocks ---|
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The SET LIMITS command (Table 8-32) defines the range within which subsequent
linked commands may operate. A second SET LIMITS command may not be linked to
a chain of commands in which a SET LIMITS command has already been issued.
The read inhibit (RdInh) bit of one indicates that read operations within the
range shall be inhibited.
A write inhibit (WrInh) bit of one indicates that write operations within the
range shall be inhibited.
The logical block address field specifies the starting address for the range.
The number of blocks field specifies the number of logical blocks within the
range. A number of blocks of zero indicates that the range shall extend to
the last logical block on the logical unit.
Any attempt to access outside of the restricted range or any attempt to
SCSI-2 draft proposed American National Standard 8-53 Revision 10c53
Direct-Access Devices 3/9/90
perform an inhibited operation within the restricted range shall not be
performed. The command shall be terminated with CHECK CONDITION status and
the sense key shall be set to DATA PROTECT. A second SET LIMITS command
within a linked list of commands shall be rejected with CHECK CONDITION status
and the sense key shall be set to DATA PROTECT.
8.2.17. START STOP UNIT Command
Table 8-33: START STOP UNIT Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (1Bh) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved | Immed |
-----|-----------------------------------------------------------------------|
2 | Reserved |
-----|-----------------------------------------------------------------------|
3 | Reserved |
-----|-----------------------------------------------------------------------|
4 | Reserved | LoEj | Start |
-----|-----------------------------------------------------------------------|
5 | Control |
==============================================================================
The START STOP UNIT command (Table 8-33) requests that the target enable or
disable the logical unit for media access operations.
An immediate (Immed) bit of one indicates that status shall be returned as
soon as the command descriptor block has been validated. An Immed bit of zero
indicates that status shall be returned after the operation is completed.
A load eject (LoEj) bit of zero requests that no action be taken regarding
loading or ejecting the medium. A LoEj bit of one requests that the medium
shall be be unloaded if the start bit is zero. A LoEj bit of one requests
that the medium is to be loaded if the start bit is one.
A start bit of one requests the logical unit be made ready for use. A start
bit of zero requests that the logical unit be stopped (media cannot be
accessed by the initiator).
Targets that contain cache memory shall implicitly perform a SYNCHRONIZE CACHE
command for the entire medium prior to executing the STOP UNIT command.
8.2.18. SYNCHRONIZE CACHE Command
SCSI-2 draft proposed American National Standard 8-54 Revision 10c54
Direct-Access Devices 3/9/90
Table 8-34: SYNCHRONIZE CACHE Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (35h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved | Immed | RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Number of Blocks ---|
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The SYNCHRONIZE CACHE command (Table 8-34) ensures that logical blocks in the
cache memory, within the specified range, have their most recent data value
recorded on the physical medium. If a more recent data value for a logical
block within the specified range exists in the cache memory than on the
physical medium, then the logical block from the cache memory shall be written
to the physical medium. Logical blocks are not necessarily removed from the
cache memory as a result of the synchronize cache operation.
An immediate (Immed) bit of one indicates that the target shall return status
as soon as the command descriptor block has been validated. An Immed bit of
zero indicates that the status shall not be returned until the operation has
been completed. If the Immed bit is one and the target does not support it and
the command shall terminate with CHECK CONDITION status. The sense key shall
be set to ILLEGAL REQUEST and the additional sense code shall be set to
INVALID FIELD IN CDB.
See 8.2.2 for a definition of the RelAdr bit and the logical block address
field.
The number of blocks field specifies the total number of contiguous logical
blocks within the range. A number of blocks of zero indicates that all
remaining logical blocks on the logical unit shall be within the range.
A logical block within the specified range that is not in cache memory is not
SCSI-2 draft proposed American National Standard 8-55 Revision 10c55
Direct-Access Devices 3/9/90
considered an error.
8.2.19. VERIFY Command
Table 8-35: VERIFY Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (2Fh) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | DPO |Reserved|Reserved| BytChk | RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Verification Length |
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The VERIFY command (Table 8-35) requests that the target verify the data
written on the medium.
If the MODE SELECT command is implemented, and the verify error recovery
parameters page is also implemented, then the current settings in that page
specifies the verification error criteria. If the verify error recovery
parameters page is not implemented, then the verification criteria is vendor-
specific.
A byte check (BytChk) bit of zero causes a medium verification to be performed
with no data comparison. A BytChk bit of one causes a byte-by-byte compare of
data written on the medium and the data transferred from the initiator. If
the compare is unsuccessful for any reason, the target shall return CHECK
CONDITION status with the sense key set to MISCOMPARE.
See 8.2.2 for a definition of the RelAdr bit and the logical block address
field.
The verification length field specifies the number of contiguous logical
SCSI-2 draft proposed American National Standard 8-56 Revision 10c56
Direct-Access Devices 3/9/90
blocks of data that shall be verified. A transfer length of zero indicates
that no logical blocks shall be verified. This condition shall not be
considered as an error. Any other value indicates the number of logical
blocks that shall be verified.
See 8.2.6 for a description of the cache control bit (DPO).
8.2.20. WRITE(6) Command
Table 8-36: WRITE(6) Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (0Ah) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | (MSB) |
-----|------------------------------ ---|
2 | Logical Block Address |
-----|--- ---|
3 | (LSB) |
-----|-----------------------------------------------------------------------|
4 | Transfer Length |
-----|-----------------------------------------------------------------------|
5 | Control |
==============================================================================
The WRITE(6) command (Table 8-36) requests that the target write the data
transferred by the initiator to the medium.
The cache control bits (see 8.2.6) are not provided for this command. Targets
with cache memory may have values for the cache control bits which may affect
the WRITE(6) command, however no default value is defined by this standard.
If explicit control is required, the WRITE(10) command should be used.
The logical block address field specifies the logical block at which the write
operation shall begin.
The transfer length field specifies the number of contiguous logical blocks of
data to transferred. A transfer length of zero indicates that 256 logical
blocks shall be transferred. Any other value indicates the number of logical
blocks that shall be transferred.
8.2.21. WRITE(10) Command
SCSI-2 draft proposed American National Standard 8-57 Revision 10c57
Direct-Access Devices 3/9/90
Table 8-37: WRITE(10) Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (2Ah) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | DPO | FUA |Reserved|Reserved| RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Transfer Length |
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The WRITE(10) command (Table 8-37) requests that the target write the data
transferred by the initiator to the medium.
See READ(10) command (8.2.6) for a definition of the cache control bits (DPO
and FUA).
See 8.2.2 for a definition of the RelAdr bit and the logical block address
field.
The transfer length field specifies the number of contiguous logical blocks of
data that shall be transferred. A transfer length of zero indicates that no
logical blocks shall be transferred. This condition shall not be considered
an error and no data shall be written. Any other value indicates the number
of logical blocks that shall be transferred.
8.2.22. WRITE AND VERIFY Command
SCSI-2 draft proposed American National Standard 8-58 Revision 10c58
Direct-Access Devices 3/9/90
Table 8-38: WRITE AND VERIFY Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (2Eh) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | DPO |Reserved|Reserved| BytChk | RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Transfer Length |
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The WRITE AND VERIFY command (Table 8-38) requests that the target write the
data transferred from the initiator to the medium and then verify that the
data is correctly written. The data is only transferred once from the
initiator to the target.
If the MODE SELECT command is implemented, and the verify error recovery page
is also implemented (see 8.3.3.8), then the current settings in that page
along with the AWRE bit from the read-write error recovery page specify the
verification error criteria. If these pages are not implemented, then the
verification criteria is vendor-specific.
A byte check (BytChk) bit of zero requests a medium verification to be
performed with no data comparison. A BytChk bit of one requests a byte-by-
byte compare of data written on the medium and the data transferred from the
initiator. If the compare is unsuccessful for any reason, the target shall
return CHECK CONDITION status with the sense key set to MISCOMPARE.
See 8.2.2 for a definition of the RelAdr bit and the logical block address
field.
See WRITE(10) command (8.2.21) for a definition of the transfer length field.
See 8.2.6 for a description of the cache control bit (DPO).
SCSI-2 draft proposed American National Standard 8-59 Revision 10c59
Direct-Access Devices 3/9/90
IMPLEMENTORS NOTE: The WRITE AND VERIFY command specifically states that the
data are not to be transferred twice (i.e., once for the write pass, and once
for the verify pass) when performing a byte compare. If there is a need for
two transfers to occur (e.g., to ensure the integrity of the path to the
media), then the initiator should issue a WRITE command with a LINK bit of one
followed by a VERIFY command with a BytCmp bit of one, transferring the same
data on each command.
8.2.23. WRITE LONG Command
Table 8-39: WRITE LONG Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (3Fh) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved | RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Byte Transfer Length |
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The WRITE LONG command (Table 8-39) requests that the target write the data
transferred by the initiator to the medium. The data passed during the WRITE
LONG command is implementation specific, but shall include the data bytes and
the ECC bytes.
IMPLEMENTORS NOTE: Any other bytes that can be corrected by ECC should be
included (e.g., a data synchronization mark within the area covered by ECC).
The READ LONG command is usually issued before issuing a WRITE LONG command.
The WRITE LONG data should be the same length and in the same order as the
data returned by the READ LONG command.
See 8.2.2 for a definition of the RelAdr bit and the logical block address
field.
The byte transfer length field should specify the number of bytes of data that
SCSI-2 draft proposed American National Standard 8-60 Revision 10c60
Direct-Access Devices 3/9/90
the target would return for the READ LONG command. If a non-zero byte
transfer length does not exactly match the data length the target would return
for the READ LONG command, then the target shall terminate the command with
CHECK CONDITION status and a sense key of ILLEGAL REQUEST and an additional
sense code of INVALID FIELD IN CDB. The ILI and valid bits shall be set to one
and the information field shall be set to the difference (residue) of the
requested length minus the actual length in bytes. Negative values shall be
indicated by two's complement notation. A transfer length of zero indicates
that no bytes shall be transferred and shall not be considered an error.
8.2.24. WRITE SAME Command
Table 8-40: WRITE SAME Command
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code (41h) |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | Reserved | PBdata | LBdata | RelAdr |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Logical Block Address - -|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 | (MSB) |
-----|--- Number of Blocks |
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | Control |
==============================================================================
The WRITE SAME command (Table 8-40) requests that the target write the single
block of data transferred by the initiator to the medium multiple times.
IMPLEMENTORS NOTE: This command is useful if large areas of the medium need
to be written, prepared for certification, or otherwise initialized without
the initiator having to transfer all the data.
A logical block data (LBdata) bit of one requests that the target replace the
first four bytes of the data to be written to the current logical block with
the logical block address of the block currently being written.
A physical block data (PBdata) bit of one requests that the target replace the
SCSI-2 draft proposed American National Standard 8-61 Revision 10c61
Direct-Access Devices 3/9/90
first eight bytes of the data to be written to the current physical sector
with the physical address of the sector currently being written using the
physical sector format (see Table 8-8).
If PBdata and LBdata are one the command shall be terminated with CHECK
CONDITION status. The sense key shall be set to ILLEGAL REQUEST.
See 8.2.2 for a definition of the RelAdr bit and the logical block address
field.
The number of blocks field specifies the number of contiguous logical blocks
to be written. A number of blocks field of zero requests that all the
remaining logical blocks on the medium be written.
8.3. Parameters for Direct-Access Devices
8.3.1. Diagnostic Parameters
This section defines the descriptors and pages for diagnostic parameters used
with direct-access devices.
The diagnostic page codes for direct-access devices are defined in Table 8-
41.
Table 8-41: Diagnostic Page Codes
==============================================================================
Page Code Description Section
------------ ---------------------------------------------------- ----------
00h Supported Diagnostic Pages 7.3.1.1
40h Translate Address Page 8.3.1.1
01h - 3Fh Reserved (for all device type pages)
41h - 7Fh Reserved
80h - FFh Vendor-specific pages
==============================================================================
8.3.1.1. Translate Address Page - SEND DIAGNOSTIC
The translate address page allows the initiator to translate a logical block
address, physical sector address or physical bytes from index address into any
one of the other formats. The address to be translated is passed to the
target with the SEND DIAGNOSTIC command and the results are returned to the
initiator by the RECEIVE DIAGNOSTIC RESULTS command. The format of the
translate address page - SEND DIAGNOSTIC is shown in Table 8-42. The
translated address is returned in the translate address page - RECEIVE
DIAGNOSTIC RESULTS (see Table 8-43).
SCSI-2 draft proposed American National Standard 8-62 Revision 10c62
Direct-Access Devices 3/9/90
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Page Code (40h) |
-----|-----------------------------------------------------------------------|
1 | Reserved |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
-----|--- Page Length (000Ah) ---|
3 | (LSB) |
-----|-----------------------------------------------------------------------|
4 | Reserved | Supplied Format |
-----|-----------------------------------------------------------------------|
5 | Reserved | Translate Format |
-----|-----------------------------------------------------------------------|
6 | |
- - -|- - Address to Translate - -|
13 | |
==============================================================================
The supplied format field specifies the format of address to translate field.
Valid values for this field are defined in the FORMAT UNIT command (see Table
8-5). If the target does not support the requested format it shall terminate
the SEND DIAGNOSTIC command with CHECK CONDITION status. The sense key shall
be set to ILLEGAL REQUEST and an additional sense code shall be set to INVALID
FIELD IN PARAMETER LIST.
The translate format field specifies which format the initiator would like the
address to be translated to. Valid values for this field are defined in the
FORMAT UNIT command (see Table 8-5). If the target does not support the
requested format it shall terminate the command with CHECK CONDITION status.
The sense key shall be set to ILLEGAL REQUEST and an additional sense code
shall be set to INVALID FIELD IN PARAMETER LIST.
The address to translate field contains a single address the initiator is
requesting the target to translate. The format of this field depends on the
value in the supplied format field. The formats are described in Tables 8-8,
8-9 and 8-10. If the logical block format is specified the block address
shall be in the first four bytes of the field with the remaining bytes set to
zero.
8.3.1.2. Translate Address Page - RECEIVE DIAGNOSTIC
The translate address page allows the initiator to translate a logical block
address, physical sector address, or physical bytes from index address into
any one of the other formats. The address to be translated is passed to the
target with the SEND DIAGNOSTIC command and the results are returned to the
initiator by the RECEIVE DIAGNOSTIC RESULTS command. The translated address
is returned in the translate address page - RECEIVE DIAGNOSTIC (Table 8-43).
SCSI-2 draft proposed American National Standard 8-63 Revision 10c63
Direct-Access Devices 3/9/90
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Page Code (40h) |
-----|-----------------------------------------------------------------------|
1 | Reserved |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
-----|--- Page Length ---|
3 | (LSB) |
-----|-----------------------------------------------------------------------|
4 | Reserved | Supplied Format |
-----|-----------------------------------------------------------------------|
5 | RAREA | ALTSEC | ALTTRK | Reserved | Translated Format |
-----|-----------------------------------------------------------------------|
6 | |
- - -|- - Translated Address 1 - -|
13 | |
-----|-----------------------------------------------------------------------|
14 | |
- - -|- - Translated Address 2 (if required) - -|
21 | |
- - -|- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -|
n | |
- - -|- - Translated Address n (if required) - -|
nn | |
==============================================================================
The translate address page contains a four byte page header which specifies
the page code and length followed by two bytes which describe the translated
address followed by zero or more translated address(s).
The page length field contains the number of parameter bytes which follow.
The supplied format field contains the value from the SEND DIAGNOSTIC command
supplied format field (see 8.3.1.1).
A reserved area (RAREA) bit of one indicates that all or part of the
translated address falls within a reserved area of the medium (e.g., speed
tolerance gap, alternate sector, vendor reserved area, etc.). If the entire
translated address falls within a reserved area the target may not return a
translated address. An RAREA bit of zero indicates that no part of the
translated address falls within a reserved area of the medium.
An alternate sector (ALTSEC) bit of one indicates that the translated address
SCSI-2 draft proposed American National Standard 8-64 Revision 10c64
Direct-Access Devices 3/9/90
is physically located in an alternate sector of the medium. If the target
cannot determine if all or part of the translated address is located in an
alternate sector it shall set this bit to zero. An ALTSEC bit of zero
indicates that no part of the translated address is located in an alternate
sector of the medium or that the target is unable to determine this
information.
An alternate track (ALTTRK) bit of one indicates that part or all of the
translated address is located on an alternate track of the medium or the
target cannot determine if all or part of the translated address is located on
an alternate track. An ALTTRK bit of zero indicates that no part of the
translated address is located on an alternate track of the medium.
The translated format field contains the value from the SEND DIAGNOSTIC
command translate format field (see 8.3.1.1).
The translated address field contains the address(s) the target translated
from the address supplied by the initiator in the SEND DIAGNOSTIC command.
This field shall be in the format specified in the translate format field. The
different formats are described in Tables 8-8, 8-9 and 8-10. If the logical
block format is specified the block address shall be in the first four bytes
of the field and the remaining bytes shall be set to zero.
If the returned data is in the logical block or physical sector format and the
address to be translated covers more than one address after it has been
translated (e.g., accounting for speed tolerance or multiple physical sectors
within a single logical block or multiple logical blocks within a single
physical sector) the target shall return all possible addresses which are
contained in the area specified by the address to be translated.
If the returned data is in bytes from index format the target shall return a
pair of translated values for each of the possible addresses which are
contained in the area specified by the address to translate field. Of the
pair of translated values returned, the first indicates the starting location
and the second the ending location of the area.
8.3.2. Log Parameters
This section defines the descriptors and pages for log parameters used with
direct-access devices.
The log page codes for direct-access devices are defined in Table 8-44.
Table 8-44: Log Page Codes
SCSI-2 draft proposed American National Standard 8-65 Revision 10c65
Direct-Access Devices 3/9/90
==============================================================================
Page Code Description Section
------------------------------------------------------------------------------
01h Buffer Over-Run/Under-Run Page 7.3.2.1
03h Error Counter Page (Read) Page 7.3.2.2
05h Error Counter Page (Verify) Page 7.3.2.2
02h Error Counter Page (Write) Page 7.3.2.2
07h Last n Error Events Page 7.3.2.3
06h Non-Medium Error Page 7.3.2.4
00h Supported Log Pages 7.3.2.5
04h Reserved
08h - 2Fh Reserved
3Fh Reserved
30h - 3Eh Vendor-specific pages
==============================================================================
8.3.3. Mode Parameters
This section defines the descriptors and pages for mode parameters used with
direct-access devices.
The mode parameter list, including the mode parameter header and mode block
descriptor are described in 7.3.3.
The medium-type code field is contained in the mode parameter header (see
Table 7-61 and 7-62). Table 8-45 defines this field for direct-access
devices.
Table 8-45: Direct-Access Medium-Type Codes
SCSI-2 draft proposed American National Standard 8-66 Revision 10c66
Direct-Access Devices 3/9/90
==============================================================================
Code Value Medium Type
---------- ------------------------------------------------------------------
00h Default medium type (currently mounted medium type)
01h Flexible disk, single-sided; unspecified medium
02h Flexible disk, double-sided; unspecified medium
Flexible Disks
Diameter Bit Density Track Density Number Reference
mm (inch) Bits/Radian /mm (/inch) Of Sides Standard
---------- ----------- ------------- -------- ----------------
05h 200 (8.0) 6631 1.9 (48) 1 ANSI X3.73-1980
06h 200 (8.0) 6631 1.9 (48) 2 (Note 1)
09h 200 (8.0) 13262 1.9 (48) 1 None
0Ah 200 (8.0) 13262 1.9 (48) 2 ANSI X3.121-1984
0Dh 130 (5.25) 3979 1.9 (48) 1 ANSI X3.82-1980
12h 130 (5.25) 7958 1.9 (48) 2 ANSI X3.125-1985
16h 130 (5.25) 7958 3.8 (96) 2 ANSI X3.126-1986
1Ah 130 (5.25) 13262 3.8 (96) 2 ISO DIS8630-1985
1Eh 90 (3.5) 7958 5.3 (135) 2 ANSI X3.137
(Note 2)
Direct-Access Magnetic Tapes
Width Density Reference
mm (inch) Tracks ftpmm (ftpi) Standard
----------- ------ ------------ -----------
40h 6.3 (0.25) 12 394 (10000) Note 1
44h 6.3 (0.25) 24 394 (10000) Note 1
80h - FFh Vendor-Specific
All others Reserved
==============================================================================
NOTES:
(1) See Appendix D for additional standards information.
(2) This standard is under development. Please contact the Secretariat for
current information on status and availability.
The device specific parameter field (Table 8-46) is contained in the mode
parameter header (see Table 7-61 and 7-62).
Table 8-46: Device Specific Parameter
SCSI-2 draft proposed American National Standard 8-67 Revision 10c67
Direct-Access Devices 3/9/90
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
==============================================================================
| WP | Reserved | DPOFUA | Reserved |
==============================================================================
A write protect (WP) bit of zero indicates that the medium is write enabled.
A WP bit of one indicates that the medium is write protected.
When used with the MODE SELECT command, the DPOFUA bit is not used and the
field is reserved.
When used with the MODE SENSE command, a DPOFUA bit of zero indicates that the
target does not contain a cache memory. A DPOFUA bit of one indicates that
the target the DPO and FUA bits(see 8.2.6).
The density code field is contained in the mode parameter block descriptor
(see Table 7-63). This field is reserved for direct-access devices.
The mode page codes for direct-access devices are shown in Table 8-47.
Table 8-47: Mode Page Codes
==============================================================================
Page Code Description Section
------------------------------------------------------------------------------
08h Caching Page 8.3.3.1
0Ah Control Mode Page 7.3.3.1
02h Disconnect-Reconnect Page 7.3.3.2
05h Flexible Disk Page 8.3.3.2
03h Format Device Page 8.3.3.3
0Bh Medium Types Supported Page 8.3.3.4
0Ch Notch and Partition Page 8.3.3.5
09h Peripheral Device Page 7.3.3.3
01h Read-Write Error Recovery Page 8.3.3.6
04h Rigid Disk Geometry Page 8.3.3.7
07h Verify Error Recovery Page 8.3.3.8
00h Vendor-Specific (does not require page format)
06h Reserved
0Dh - 1Fh Reserved
3Fh Return all pages (valid only for the MODE SENSE command)
20h - 3Eh Vendor-specific
==============================================================================
For direct-access devices, if the notch page is not supported, or if the
SCSI-2 draft proposed American National Standard 8-68 Revision 10c68
Direct-Access Devices 3/9/90
active notch field in the notch page is zero then each page descriptor
specifies mode parameters for the target to use for subsequent operations on
the specified logical unit. If the notch page is supported, and the active
notch is not zero, then each page descriptor specifies parameters for the
target to use for subsequent operations on the disk notch specified by the
current value of the active notch field on the specified logical unit.
8.3.3.1. Caching Page
Table 8-48: Caching Page
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | PS |Reserved| Page Code (08h) |
-----|-----------------------------------------------------------------------|
1 | Page Length (0Ah) |
-----|-----------------------------------------------------------------------|
2 | Reserved | WCE | MF | RCD |
-----|-----------------------------------------------------------------------|
3 | Demand Read Retention Priority | Write Retention Priority |
-----|-----------------------------------------------------------------------|
4 | (MSB) |
-----|--- Disable Pre-fetch Transfer Length ---|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | (MSB) |
-----|--- Minimum Pre-fetch ---|
7 | (LSB) |
-----|-----------------------------------------------------------------------|
8 | (MSB) |
-----|--- Maximum Pre-fetch ---|
9 | (LSB) |
-----|-----------------------------------------------------------------------|
10 | (MSB) |
-----|--- Maximum Pre-fetch Ceiling ---|
11 | (LSB) |
==============================================================================
The caching parameters page (Table 8-48) defines the parameters that affect
the use of the cache.
The parameters savable (PS) bit is only used with the MODE SENSE command.
This bit is reserved with the MODE SELECT command. A PS bit of one indicates
that the target is capable of saving the page in a non-volatile vendor-
specific location.
A write cache enable (WCE) bit of zero specifies that the target shall return
SCSI-2 draft proposed American National Standard 8-69 Revision 10c69
Direct-Access Devices 3/9/90
GOOD status for a WRITE command after successfully writing all of the data to
the medium. A WCE bit of one specifies that the target may return GOOD status
for a WRITE command after successfully receiving the data and prior to having
successfully written it to the medium.
A multiplication factor (MF) bit of zero specifies that the target shall
interpret the minimum and maximum pre-fetch fields in terms of the number of
logical blocks for each of the respective types of pre-fetch. An MF bit of
one specifies that the target shall interpret the minimum and maximum pre-
fetch fields to be specified in terms of a scalar number which, when
multiplied by the number of logical blocks to be transferred for the current
command, yields the number of logical blocks for each of the respective types
of pre-fetch.
A read cache disable (RCD) bit of zero specifies that the target may return
data requested by a READ command by accessing either the cache or media. A
RCD bit of one specifies that the target shall transfer all of the data
requested by a READ command from the medium (i.e., data cannot be transferred
from the cache).
The demand read retention priority field (see Table 8-48) advises the target
on the retention priority to assign data read into the cache that has also
been transferred from the target to the initiator.
The write retention priority field (see Table 8-48) advises the target on the
retention priority to assign data written into the cache that has also been
transferred from the cache memory to the medium.
Table 8-49: Demand Read and Write Retention Priority
SCSI-2 draft proposed American National Standard 8-70 Revision 10c70
Direct-Access Devices 3/9/90
==============================================================================
Value Description
------- -------------------------------------------------------------------
0h Indicates the target should not distinguish between retaining the
indicated data and data placed into the cache memory by other means (e.g.,
pre-fetch).
1h Demand Read Retention Priority: Data put into the cache via a READ
command should be replaced sooner (has lower priority) than data placed into
the cache by other means (e.g., pre-fetch).
Write Retention Priority: Data put into the cache during a WRITE or
WRITE AND VERIFY command should be replaced sooner (has lower priority) than
data placed into the cache by other means (e.g., pre-fetch).
Fh Demand Read Retention Priority: Data put into the cache via a READ
command should not be replaced if there is other data in the cache that was
placed into the cache by other means (e.g., pre-fetch) and it may be replaced
(i.e., it is not locked).
Write Retention Priority: Data put into the cache during a WRITE or
WRITE AND VERIFY command should not be replaced if there is other data in the
cache that was placed into the cache by other means (e.g., pre-fetch) and it
may be replaced (i.e., it is not locked).
2h-Eh Reserved
==============================================================================
An anticipatory pre-fetch occurs when data is placed in the cache that has not
been requested. This usually happens in conjunction with the reading of data
that has been requested. All the following parameters give an indication to
the target how it should manage the cache based on the last READ command. An
anticipatory pre-fetch may occur based on other information. All the remaining
caching parameters are only recommendations to the target and should not cause
a CHECK CONDITION to occur if the target cannot satisfy the request.
The disable pre-fetch transfer length field specifies the selective disabling
of anticipatory pre-fetch on long transfer lengths. The value in this field
is compared to the number of blocks requested by the current READ command. If
the number of blocks is greater than the disable pre-fetch transfer length,
then an anticipatory pre-fetch is not done for the command. Otherwise the
target should attempt an anticipatory pre-fetch. If the pre- fetch disable
transfer length is set to zero, then all anticipatory pre- fetching is
disabled for any request for data, including those for zero logical blocks.
The minimum pre-fetch field specifies either a number of blocks or a scalar
SCSI-2 draft proposed American National Standard 8-71 Revision 10c71
Direct-Access Devices 3/9/90
multiplier of the transfer length, depending upon the setting of the MF bit.
In either case, the resulting number of blocks is the number to pre-fetch
regardless of the delays it might cause in executing subsequent commands.
The pre-fetching operation begins at the logical block immediately after the
last logical block of the previous READ command. Pre-fetching shall always
halt before the end of the media. Errors that occur during the pre-fetching
operation shall not be reported to the initiator unless that target cannot, as
a result of the error, execute subsequent commands correctly. In this case
the error may be reported either immediately as an error for the current READ
command, or as a deferred error, at the discretion of the target and according
to the rules for reporting deferred errors.
A minimum pre-fetch field of zero indicates that pre-fetching should be
terminated whenever another command is ready for executing. This
consideration is ignored when the minimum pre-fetch is equal to the maximum
pre-fetch.
The maximum pre-fetch field specifies either a number of blocks or a scalar
multiplier of the transfer length, depending upon the setting of the MF bit.
In either case, the resulting number of blocks is the number to pre-fetch if
there are no delays in executing subsequent commands.
The maximum pre-fetch field contains the maximum amount of data to pre-fetch
into the cache as a result of one READ command. It is used in conjunction
with the disable pre-fetch transfer length and maximum pre-fetch ceiling
parameters to trade off pre-fetching new data with displacing old data already
stored in the cache.
The maximum pre-fetch ceiling field specifies an upper limit on the number of
logical blocks computed as the maximum pre-fetch. If this number of blocks is
greater than the maximum pre-fetch ceiling, then the number of logical blocks
to maximally pre-fetch shall be truncated to the value stored in the ceiling
field.
IMPLEMENTORS NOTE: If the MF bit is one the maximum pre-fetch ceiling field
is useful in limiting the amount of data to be pre-fetched.
8.3.3.2. Flexible Disk Page
SCSI-2 draft proposed American National Standard 8-72 Revision 10c72
Direct-Access Devices 3/9/90
Table 8-50: Flexible Disk Page (Bytes 0-19)
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | PS |Reserved| Page Code (05h) |
-----|-----------------------------------------------------------------------|
1 | Page Length in Bytes (1Eh) |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
-----|--- Transfer Rate ---|
3 | (LSB)|
-----|-+---------------------------------------------------------------------|
4 | Number of Heads |
-----|-----------------------------------------------------------------------|
5 | Sectors per Track |
-----|-----------------------------------------------------------------------|
6 | (MSB) |
-----|--- Data Bytes per Sector ----|
7 | (LSB)|
-----|-+---------------------------------------------------------------------|
8 | (MSB) |
-----|--- Number of Cylinders ---|
9 | (LSB)|
-----|-----------------------------------------------------------------------|
10 | (MSB) |
-----|--- Starting Cylinder-Write Precompensation |
11 | (LSB)|
-----|-+--------------------------------------------------------------------|
12 | (MSB) |
-----|--- Starting Cylinder-Reduced Write Current |
13 | (LSB)|
-----|-----------------------------------------------------------------------|
14 | (MSB) |
-----|--- Drive Step Rate ---|
15 | (LSB)|
-----|-+---------------------------------------------------------------------|
16 | Drive Step Pulse Width |
-----|-----------------------------------------------------------------------|
17 | (MSB) |
-----|--- Head Settle Delay ---|
18 | (LSB)|
-----|-----------------------------------------------------------------------|
19 | Motor on Delay |
==============================================================================
The definition of this page is continued.
Table 8-51: Flexible Disk Page (Bytes 20-31)
SCSI-2 draft proposed American National Standard 8-73 Revision 10c73
Direct-Access Devices 3/9/90
==============================================================================
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
|
Byte | | | | | | | |
|
==============================================================================
20 | Motor off Delay |
-----|-----------------------------------------------------------------------|
21 | TRDY | SSN | MO | Reserved |
-----|-----------------------------------------------------------------------|
22 | Reserved | SPC |
-----|-----------------------------------------------------------------------|
23 | Write Compensation |
-----|-----------------------------------------------------------------------|
24 | Head Load Delay |
-----|-----------------------------------------------------------------------|
25 | Head Unload Delay |
-----|-----------------------------------------------------------------------|
26 | Pin 34 | Pin 2 |
-----|-----------------------------------------------------------------------|
27 | Pin 4 | Pin 1 |
-----|-+---------------------------------------------------------------------|
28 | (MSB) |
-----|--- Medium Rotation Rate ---|
29 | (LSB) |
-----|-----------------------------------------------------------------------|
30 | Reserved |
-----|-----------------------------------------------------------------------|
31 | Reserved |
==============================================================================
The flexible disk page (Tables 8-50 and 8-51) contains parameters for control
and reporting of flexible disk drive parameters.
This page is 32 bytes in length. Bytes 0-19 are defined in Table 8-49 and
bytes 20-31 are defined in Table 8-50.
The parameters savable (PS) bit is only used with the MODE SENSE command.
This bit is reserved with the MODE SELECT command. A PS bit of one indicates
that the target is capable of saving the page in a non-volatile vendor-
specific location.
IMPLEMENTORS NOTE: This page is mainly intended for defining parameters of
flexible disk drives, but may be used for other devices, if applicable.
The transfer rate indicates in kilobits per second the data rate of the
peripheral device.
SCSI-2 draft proposed American National Standard 8-74 Revision 10c74
Direct-Access Devices 3/9/90
Common Transfer Rates
------------------------------------------
MSB LSB DESCRIPTION OF TRANSFER RATE
--- --- ------------------------------
00h FAh 250 kbit/second transfer rate
01h 2Ch 300 kbit/second transfer rate
01h F4h 500 kbit/second transfer rate
03h E8h 1 megabit/second transfer rate
07h D0h 2 megabit/second transfer rate
13h 88h 5 megabit/second transfer rate
------------------------------------------
The number of heads field specifies the number of heads used for reading and
writing data on the medium. Heads used exclusively for servo information are
excluded.
The sectors per track field specifies the number of sectors per revolution per
head.
The data bytes per sector field specifies the number of bytes of data per
sector that an initiator can read or write.
The number of cylinders field specifies the number of cylinders used for data
storage.
The starting cylinder for write precompensation field specifies the cylinder
at which write precompensation is to begin. Cylinders are numbered starting
with zero. If the starting cylinder for write precompensation is equal to the
value in the number of cylinders field, write precompensation shall be
disabled by the target.
The starting cylinder for reduced write current field specifies cylinder at
which write current is reduced. Cylinders are numbered starting with zero.
If the starting cylinder for reduced write current is equal to the value in
the number of cylinders field, reduced write current shall be disabled by the
target.
The drive step rate field specifies the step rate in units of 100
microseconds. This value may be rounded as defined in 6.5.4. A value of zero
requests the target to set its default value.
The drive step pulse width field specifies the width of the step pulse in
microseconds. This value may be rounded as defined in 6.5.4. A value of zero
requests the target to set its default value.
The head settle delay field specifies the head settle time in units of 100
microseconds. This value may be rounded as defined in 6.5.4. A value of zero
requests the target to set its default value.
If a true ready signal is not available, the motor on delay field specifies in
SCSI-2 draft proposed American National Standard 8-75 Revision 10c75
Direct-Access Devices 3/9/90
tenths of a second the time that the target shall wait before attempting to
access the medium after the motor on signal is asserted. If a true ready
signal is available, the motor on delay field specifies in tenths of a second
the time that the target shall wait for drive ready status before aborting an
attempt to access the medium. This value may be rounded as defined in 6.5.4.
The motor off delay field specifies in tenths of a second the time that the
target shall wait before releasing the motor on signal after an idle condition
exists. A value of FFh indicates that the motor on signal shall not be
released. The START STOP UNIT command is not affected by this parameter. This
value may be rounded as defined in 6.5.4.
A true ready (TRDY) bit of one specifies that a signal is provided that
indicates the medium is ready to be accessed.
A start sector number (SSN) bit of one specifies that sectors are numbered
starting with one. An SSN bit of zero specifies that sectors are numbered
starting with zero.
A motor on (MO) bit of one specifies that pin 16 (motor on) shall remain
released. This bit shall be set to one when using high capacity (192 tracks
per inch) drives and their pre-formatted diskettes. An MO bit of zero
indicates that pin 16 (motor on) shall be asserted.
The step pulse per cylinder (SPC) field is used to specify the number of
additional step pulses required per cylinder. Non-zero values allow a drive
to read a diskette formatted on a drive with a lower number of tracks per
inch. For example, a value of one allows a 96 track-per-inch drive to access
tracks on a diskette that was formatted for 48 tracks per inch.
The write compensation field is used to specify the amount of write
compensation to be used starting at the cylinder specified in the starting
cylinder for write precompensation field. The correlation of any values used
in this field to actual write precompensation time values is vendor-specific.
If a zero is specified in this field the target shall use its default write
precompensation value. This value may be rounded as defined in 6.5.4.
The head load delay field specifies the head loading time in milliseconds.
This value may be rounded as defined in 6.5.4. A value of zero requests the
target to set its default value.
The head unload delay field specifies the head unloading time in milliseconds.
This value may be rounded as defined in 6.5.4. A value of zero requests the
target to set its default value.
The Pin 34 field defines the usage of pin 34 of the flexible disk drive
interface. This use of this pin varies among vendors and drives. The
following settings allow the initiator to select how pin 34 shall be used by
the interface.
SCSI-2 draft proposed American National Standard 8-76 Revision 10c76
Direct-Access Devices 3/9/90
Bit 7 6 5 4 Pin 34 Use
------------------- -------------------------
P 0 0 0 Open
P 0 0 1 Ready
P 0 1 0 Disk Changed
P 0 1 1 Reserved
P 1 X X Reserved - X is 0 or 1
|
|
+----- Polarity Bit - "0" - Active Low
"1" - Active High
The Pin 4 field defines the usage of pin 4 of the flexible disk drive
interface. This use of this pin varies among drive vendors and drives. The
following settings allow the initiator to specify how pin 4 shall be used by
the interface.
BIT 7 6 5 4 Pin 4 Use
------------------- --------------------------
P 0 0 0 Open
P 0 0 1 In Use
P 0 1 0 Eject
P 0 1 1 Head Load
P 1 X X Reserved - X is "0" or "1"
|
|
+----- Polarity Bit - "0" - Active Low
"1" - Active High
The Pin 1 field defines the usage of pin 1 of the flexible disk drive
interface. This use of this pin varies among vendors and drives. The
following settings allow the initiator to specify how pin 1 shall be used by
the interface.
Bit 3 2 1 0 Pin 1 Use
SCSI-2 draft proposed American National Standard 8-77 Revision 10c77
Direct-Access Devices 3/9/90
------------------- ------------------------
P 0 0 0 Open (Pin 1 is not used)
P 0 0 1 Disk Change Reset
P 0 1 X Reserved
P 1 X X Reserved
|
|
+----- Polarity Bit - "0" - Active Low
"1" - Active High
The medium rotation rate field specifies the speed at which the medium
rotates. The unit of measure is rotations per minute (e.g., 2400 rpm). This
field cannot be changed by a MODE SELECT command.
8.3.3.3. Format Device Page
SCSI-2 draft proposed American National Standard 8-78 Revision 10c78
Direct-Access Devices 3/9/90
Table 8-52: Format Device Page
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | PS |Reserved| Page Code (03h) |
-----|-----------------------------------------------------------------------|
1 | Page Length (16h) |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
-----|--- Tracks per Zone ---|
3 | (LSB) |
-----|-----------------------------------------------------------------------|
4 | (MSB) |
-----|--- Alternate Sectors per Zone ---|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | (MSB) |
-----|--- Alternate Tracks per Zone ---|
7 | (LSB) |
-----|-----------------------------------------------------------------------|
8 | (MSB) |
-----|--- Alternate Tracks per Logical Unit ---|
9 | (LSB) |
-----|-----------------------------------------------------------------------|
10 | (MSB) |
-----|--- Sectors per Track ---|
11 | (LSB) |
-----|-----------------------------------------------------------------------|
12 | (MSB) |
-----|--- Data Bytes per Physical Sector ---|
13 | (LSB) |
-----|-----------------------------------------------------------------------|
14 | (MSB) |
-----|--- Interleave ---|
15 | (LSB) |
-----|-----------------------------------------------------------------------|
16 | (MSB) |
-----|--- Track Skew Factor ---|
17 | (LSB) |
-----|-----------------------------------------------------------------------|
18 | (MSB) |
-----|--- Cylinder Skew Factor ---|
19 | (LSB) |
-----|-----------------------------------------------------------------------|
20 | SSEC | HSEC | RMB | SURF | Reserved |
-----|-----------------------------------------------------------------------|
21 | |
SCSI-2 draft proposed American National Standard 8-79 Revision 10c79
Direct-Access Devices 3/9/90
- - -|- - Reserved - -|
23 | |
==============================================================================
The format device page (Table 8-52) contains parameters which specify the
medium format.
The parameters savable (PS) bit is only used with the MODE SENSE command.
This bit is reserved with the MODE SELECT command. A PS bit of one indicates
that the target is capable of saving the page in a non-volatile vendor-
specific location.
IMPLEMENTORS NOTE: If the initiator changes any of the current physical
parameters defined below, the target may not be able to access the media until
a FORMAT UNIT command has been successfully completed.
If the defect handling format parameters (tracks per zone, alternate sectors
per zone, alternate tracks per zone and alternate tracks per logical unit)
requested by the initiator are not supported by the target the target may
round these fields to acceptable values as described in 6.5.4.
The tracks per zone field specifies the number of tracks per zone to use in
dividing the capacity of the device for the purpose of allocating alternate
sectors. A value of zero means that one zone is defined for the entire
device. The last zone on the device might not contain the same number of
tracks as the previous zone(s).
The alternate sectors per zone field specifies the number of sectors per zone
the target shall reserve for defect handling. The target shall de- allocate
these sectors from the initiator addressable blocks during the FORMAT UNIT
command. If the notch page is implemented and the ND bit of the notch page is
one and the active notch field of the notch page is zero, then a value of zero
indicates that no alternate sectors shall be reserved. Otherwise, a value of
zero indicates that the number of alternate sectors is target specific.
The alternate tracks per zone field specifies the number of tracks per zone
the target shall reserve for defect handling. The target shall de-allocate
these tracks from the initiator addressable blocks during the FORMAT UNIT
command. If the notch page is implemented and the ND bit of the notch page is
one and the active notch field of the notch page is zero, then a value of zero
indicates that no alternate tracks shall be reserved. Otherwise, a value of
zero indicates that the number of alternate tracks is target specific.
The alternate tracks per logical unit field specifies the number of tracks per
SCSI-2 draft proposed American National Standard 8-80 Revision 10c80
Direct-Access Devices 3/9/90
logical unit the target shall reserve for defect handling. The target shall
de-allocate these tracks from the initiator addressable blocks during the
FORMAT UNIT command. If the notch page is implemented and the ND bit of the
notch page is one and the active notch field of the notch page is zero, then a
value of zero indicates that no alternate tracks shall be reserved.
Otherwise, a value of zero indicates that the number of alternate tracks is
target specific.
The sectors per track field specifies the number of physical sectors
included within each track. This number includes any alternate sectors the
target may allocate. A value of zero during MODE SELECT indicates that the
target shall define the number of sectors per track. For devices with a
variable number of sectors per track, the value in MODE SELECT shall be zero
and the value reported in MODE SENSE for the number of sectors per track is
vendor-specific.
The data bytes per physical sector field specifies the number of data bytes
per physical sector that the target shall use. This value may be different
than the logical block size reported in the MODE SELECT data. The target
shall return CHECK CONDITION status if it determines that the combination of
this field and the sectors per track field exceed the capability of the
medium. A value of zero indicates that the data bytes per physical sector is
defined by the target.
For MODE SENSE the interleave field returns the same parameter passed in the
FORMAT UNIT command, The target shall report this field as target defined in
the corresponding MODE SENSE command. For MODE SELECT this field is ignored.
IMPLEMENTORS NOTE: It is recommended that this field be marked non-
changeable and that initiators send the value returned in MODE SENSE. This
allows migration to specifying interleave as a mode parameter instead of in
the FORMAT UNIT command.
The track skew factor field specifies the number of physical sectors between
the last logical block of one track and the first logical block on the next
sequential track of the same cylinder.
The cylinder skew factor field specifies the number of physical sectors
between the last logical block of one cylinder and the first logical block on
the next sequential cylinder.
The SSEC bit set to one indicates that the target shall use soft sector
formatting.
The HSEC bit set to one indicates that the target shall use hard sector
formatting. The HSEC bit and the SSEC bit are mutually exclusive in MODE
SELECT commands.
Possible combinations of MODE SENSE Report Default Values
SCSI-2 draft proposed American National Standard 8-81 Revision 10c81
Direct-Access Devices 3/9/90
SSEC HSEC Description
---- ---- ----------------------------------------------------
0 0 Target shall not return this combination
1 0 Target supports soft sector formatting only
0 1 Target supports hard sector formatting only
1 1 Target supports both soft and hard sector formatting
Possible combinations of MODE SENSE Report Changeable Values
SSEC HSEC Description
---- ---- ----------------------------------------------------
0 0 Sector formatting Not changeable
1 0 Target shall not return this combination
0 1 Target shall not return this combination
1 1 Target supports both Soft and Hard sector formatting
The removable (RMB) bit set to one indicates that the logical unit supports
removable media. A RMB bit set to zero indicates that the logical unit does
not support removable media. The status of this bit shall be reflected in the
INQUIRY command removable media bit (RMB).
The surface (SURF) bit set to zero indicates that the target shall allocate
progressive addresses to all logical blocks within a cylinder prior to
allocating addresses on the next cylinder. A SURF bit set to one indicates
that the target shall allocate progressive addresses to all logical blocks on
a surface prior to allocating sector addresses on the the next surface.
IMPLEMENTORS NOTE: If the target supports savable parameters, all savable
parameters for this initiator, including those in page codes 3, 4, and 5, are
saved to non-volatile memory when the save parameters bit (SP) in the command
descriptor block is set to one. The savable parameters may also be saved to
non-volatile memory during a FORMAT UNIT command (see 8.2.1).
8.3.3.4. Medium Types Supported Page
SCSI-2 draft proposed American National Standard 8-82 Revision 10c82
Direct-Access Devices 3/9/90
Table 8-53: Medium Types Supported Page
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | PS |Reserved| Page Code (0Bh) |
-----|-----------------------------------------------------------------------|
1 | Page Length (06h) |
-----|-----------------------------------------------------------------------|
2 | Reserved |
-----|-----------------------------------------------------------------------|
3 | Reserved |
-----|-----------------------------------------------------------------------|
4 | Medium Type One Supported |
-----|-----------------------------------------------------------------------|
5 | Medium Type Two Supported |
-----|-----------------------------------------------------------------------|
6 | Medium Type Three Supported |
-----|-----------------------------------------------------------------------|
7 | Medium Type Four Supported |
==============================================================================
The medium types supported page (Table 8-53) contains a list of the medium
types implemented by the target for logical units.
The parameters savable (PS) bit is only used with the MODE SENSE command.
This bit is reserved with the MODE SELECT command. A PS bit of one indicates
that the target is capable of saving the page in a non-volatile vendor-
specific location.
The code values for each medium type supported by the target (up to four
maximum), as defined in the MODE SELECT command (see Table 8-35), are reported
in ascending order. If only the default medium type is supported zero is
reported. If less than four medium types are supported the unused entries
shall be returned as zero.
8.3.3.5. Notch and Partition Page
SCSI-2 draft proposed American National Standard 8-83 Revision 10c83
Direct-Access Devices 3/9/90
Table 8-54: Notch Page
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | PS |Reserved| Page Code (0Ch) |
-----|-----------------------------------------------------------------------|
1 | Page Length (16h) |
-----|-----------------------------------------------------------------------|
2 | ND | LPN | Reserved |
-----|-----------------------------------------------------------------------|
3 | Reserved |
-----|-----------------------------------------------------------------------|
4 | (MSB) |
-----|--- Maximum Number of Notches ---|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | (MSB) |
-----|--- Active Notch ---|
7 | (LSB) |
-----|-----------------------------------------------------------------------|
8 | (MSB) |
- - -|- - Starting Boundary - -|
11 | (LSB) |
-----|-----------------------------------------------------------------------|
12 | (MSB) |
- - -|- - Ending Boundary - -|
15 | (LSB) |
-----|-----------------------------------------------------------------------|
16 | (MSB) |
- - -|- - Pages Notched - -|
23 | (LSB) |
==============================================================================
The notch page (Table 8-54) contains parameters for direct-access devices
which implement a variable number of blocks per cylinder and support this
page. Each section of the logical unit with a different number of blocks per
cylinder is referred to as a notch.
The parameters savable (PS) bit is only used with the MODE SENSE command.
This bit is reserved with the MODE SELECT command. A PS bit of one indicates
that the target is capable of saving the page in a non-volatile vendor-
specific location.
A notched drive (ND) bit of zero indicates that the device is not notched and
SCSI-2 draft proposed American National Standard 8-84 Revision 10c84
Direct-Access Devices 3/9/90
that all other parameters in this page shall be returned as zero by the
target. A ND bit of one indicates that the device is notched. For each
supported active notch value this page defines the starting and ending
boundaries of the notch.
A logical or physical notch (LPN) bit of zero indicates that the boundaries
are based on the physical parameters of the logical unit. The cylinder is
considered most significant, the head least significant. A LPN bit of one
indicates that the notch boundaries are based on logical blocks of the logical
unit.
The maximum number of notches field indicates the maximum number of notches
supported by the logical unit. This field shall be reported as unchangeable.
The active notch field indicates the notch that this and subsequent MODE
SELECT and MODE SENSE commands shall refer to, until the active notch is
changed by a later MODE SELECT command. The value of the active notch shall
be greater than or equal to 0 and less than or equal to the maximum number of
notches. An active notch value of zero indicates that this and subsequent
MODE SELECT and MODE SENSE commands refer to the parameters that apply across
all notches.
The starting boundary field indicates the beginning of the active notch or, if
the active notch is zero, the beginning boundary of the logical unit. If the
LPN bit is one, then the four bytes represent a logical block address. If the
LPN bit is zero, then the three most significant bytes shall represent the
cylinder number and the least significant byte shall represent the head
number. This field shall be reported as unchangeable.
The ending boundary field indicates the ending of the active notch or, if the
active notch is zero, the ending of the logical unit. If the LPN bit is one,
then the four bytes represent logical block address. If the LPN bit is zero,
then the three most significant bytes shall represent the cylinder number and
the least significant byte shall represent the head number. This field shall
be reported as unchangeable.
Each notch shall span a set of consecutive logical blocks on the logical unit,
the notches shall not overlap, and no logical block shall be excluded from a
notch.
The pages notched field is a bit map of the mode page codes that indicates
which pages contain parameters that may be different for different notches.
The most significant bit of this field corresponds to page code 3Fh and the
least significant bit corresponds to page code 00h. If a bit is one, then the
corresponding mode page contains parameters that may be different for
different notches. If a bit is zero, then the corresponding mode page
contains parameters that are constant for all notches. This field shall be
reported as unchangeable.
8.3.3.6. Read-Write Error Recovery Page
SCSI-2 draft proposed American National Standard 8-85 Revision 10c85
Direct-Access Devices 3/9/90
Table 8-55: Read-Write Error Recovery Page
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | PS |Reserved| Page Code (01h) |
-----|-----------------------------------------------------------------------|
1 | Page Length (0Ah) |
-----|-----------------------------------------------------------------------|
2 | AWRE | ARRE | TB | RC | EER | PER | DTE | DCR |
-----|-----------------------------------------------------------------------|
3 | Read Retry Count |
-----|-----------------------------------------------------------------------|
4 | Correction Span |
-----|-----------------------------------------------------------------------|
5 | Head Offset Count |
-----|-----------------------------------------------------------------------|
6 | Data Strobe Offset Count |
-----|-----------------------------------------------------------------------|
7 | Reserved |
-----|-----------------------------------------------------------------------|
8 | Write Retry Count |
-----|-----------------------------------------------------------------------|
9 | Reserved |
-----|-----------------------------------------------------------------------|
10 | (MSB) |
-----|--- Recovery Time Limit ---|
11 | (LSB) |
==============================================================================
The read-write error recovery page (Table 8-55) specifies the error recovery
parameters the target shall use during any command that performs a read or
write operation to the medium (e.g., READ(6), READ(10), WRITE(6), WRITE(10),
COPY, COMPARE, WRITE & VERIFY, etc.).
The parameters savable (PS) bit is only used with the MODE SENSE command.
This bit is reserved with the MODE SELECT command. A PS bit of one indicates
that the target is capable of saving the page in a non-volatile vendor-
specific location.
An automatic write reallocation enabled (AWRE) bit of one indicates that the
SCSI-2 draft proposed American National Standard 8-86 Revision 10c86
Direct-Access Devices 3/9/90
target shall enable automatic reallocation to be performed during write
operations. The automatic reallocation shall be performed only if the target
has the valid data (e.g., original data in the buffer or recovered from the
medium). The valid data shall be placed in the reallocated block. Error
reporting as required by the error recovery bits (EER, PER, DTE, and DCR)
shall be performed only after completion of the reallocation. The
reallocation operation shall report any failures that occur. See the REASSIGN
BLOCKS command (8.2.10) for error procedures.
An AWRE bit of zero indicates that the target shall not perform automatic
reallocation of defective data blocks during write operations.
An automatic read reallocation enabled (ARRE) bit of one indicates that the
target shall enable automatic reallocation of defective data blocks during
read operations. All error recovery actions required by the error recovery
bits (TB, EER, PER, DTE, and DCR) shall be executed. The automatic
reallocation shall then be performed only if the target successfully recovers
the data. The recovered data shall be placed in the reallocated block. Error
posting as required by the error recovery bits shall be performed only after
completion of the reallocation. The reallocation process shall present any
failures that occur. See the REASSIGN BLOCKS command (8.2.10) for error
procedures.
An ARRE bit of zero indicates that the target shall not perform automatic
reallocation of defective data blocks during read operations.
A transfer block (TB) bit of one indicates that a data block that is not
recovered within the recovery limits specified shall be transferred to the
initiator before CHECK CONDITION status is returned. A TB bit of zero
indicates that such a data block shall not be transferred to the initiator.
The TB bit does not affect the action taken for recovered data.
A read continuous (RC) bit of one indicates the target shall transfer the
entire requested length of data without adding delays to perform error
recovery procedures. This implies that the target may send data that is
erroneous or fabricated in order to maintain a continuous flow of data. The
target shall assign priority to this bit over conflicting error control bits
(EER, DCR, DTE, and PER) within this byte.
IMPLEMENTORS NOTE: Fabricated data may be data already in the buffer or any
other target-specific data. This bit is typically used in image processing,
audio, or video applications.
A RC bit of zero indicates that error recovery operations that cause delays
are acceptable during the data transfer. Data shall not be fabricated.
The individual bit definitions for EER, PER, DTE and DCR are contained in
Table 8-56. The combinations of these bits are explained in Tables 8-57
through 8-60.
SCSI-2 draft proposed American National Standard 8-87 Revision 10c87
Direct-Access Devices 3/9/90
Table 8-56: Error Recovery Bit Definitions
==============================================================================
EER PER DTE DCR Description
------------------------------------------------------------------------------
.aw on
1 - - - An enable early recovery (EER) bit of one indicates that
the target shall use of the most expedient form of error recovery first. 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 mis- detection or
mis-correction.
- 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.
==============================================================================
IMPLEMENTORS NOTE: An EER bit of one may imply an increase in the probability
of mis-detection or mis-correction. An EER bit of zero typically means that
the specified retry limit is exhausted prior to using error correction codes.
SCSI-2 draft proposed American National Standard 8-88 Revision 10c88
Direct-Access Devices 3/9/90
Table 8-57: Combined Error Recovery Parameter Descriptions(1)
==============================================================================
EER PER DTE DCR Description
------------------------------------------------------------------------------
.aw on
0 0 0 0 The full number of retries (specified in the read, write or
verify retry count field) and error correction are attempted to recover the
data (EER and DCR set to 0). A CHECK CONDITION is not reported at the
completion of the command for recovered errors (PER set to 0). The command
terminates with 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, write or verify retry count
field) are attempted to recover the data (EER set to 0). A CHECK CONDITION is
not reported at the completion of the command for recoverable errors (PER set
to 0). The command terminates with 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 the note 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 the note at the end of this table.
0 1 0 0 The full number of retries (specified in the read, 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 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 field in the sense data shall contain the logical block
address of the last recovered error which occurred during the transfer.
==============================================================================
Table 8-58: Combined Error Recovery Parameter Descriptions(2)
SCSI-2 draft proposed American National Standard 8-89 Revision 10c89
Direct-Access Devices 3/9/90
==============================================================================
EER PER DTE DCR Description
------------------------------------------------------------------------------
.aw on
0 1 0 1 Error correction is disabled (DCR set to one) so only the
full number of retries (specified in the read, write or verify retry count
field) are attempted to recover the data (EER set to 0). The command
terminates with 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 field 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, 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 CHECK CONDITION
status before the transfer count is exhausted if any error (recoverable or
unrecoverable) is detected (DTE set to 1). The information field in the sense
data shall contain the logical block address of the block in error. If an
unrecoverable 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, write or verify retry count
field) are attempted to recover the data (EER set to 0). The command
terminates with CHECK CONDITION status before the transfer count is exhausted
if any error (recoverable or unrecoverable) is detected (DTE set to 1). The
information field in the sense data shall contain the logical block address of
the block in error. If an unrecoverable 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).
==============================================================================
Table 8-59: Combined Error Recovery Parameter Descriptions(3)
SCSI-2 draft proposed American National Standard 8-90 Revision 10c90
Direct-Access Devices 3/9/90
==============================================================================
EER PER DTE DCR Description
------------------------------------------------------------------------------
.aw on
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). A CHECK
CONDITION is not reported at the completion of the command for recoverable
errors (PER set to 0). The command terminates with 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 the note 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 the note 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 the note 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 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 field 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 the note at the end of this table.
==============================================================================
Table 8-60: Combined Error Recovery Parameter Descriptions(4)
SCSI-2 draft proposed American National Standard 8-91 Revision 10c91
Direct-Access Devices 3/9/90
==============================================================================
EER PER DTE DCR Description
------------------------------------------------------------------------------
.aw on
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 CHECK CONDITION status before the transfer count is exhausted
if any error (recoverable or unrecoverable) is detected (DTE set to 1). The
information field in the sense data shall contain the logical block address of
the block in error. If an unrecoverable 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 the note at the end of this table.
==============================================================================
NOTE: If an invalid mode for the error recovery combination is sent by the
initiator the target shall return CHECK CONDITION status with the sense key
set to ILLEGAL REQUEST and the additional sense code set to INVALID FIELD IN
PARAMETER LIST.
The read and write retry count fields specify the number of times that the
target shall attempt its recovery algorithm during read and write operations,
respectively. If the retry count field and the 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 correction span field specifies the size, in bits, of the largest data
error burst for which data error correction may be attempted. A correction
span of zero specifies that the target shall use its default value or that
this field is not supported.
The head offset count field specifies in two's-complement notation an
incremental offset position from the track center to which the heads shall be
moved. The effect of this field on write operations is unspecified. A head
offset count of zero indicates that no offset is specified. A positive value
indicates moving in the direction of increasing logical block addresses. A
negative value indicates moving in the direction of decreasing logical block
addresses. Any value specified in this field does not preclude the target
from using positive or negative head offset during error recovery. However,
after any error recovery is completed the target shall return the head offset
to the value specified in this field.
IMPLEMENTORS NOTE: The degree of offset for each incremental value and the
SCSI-2 draft proposed American National Standard 8-92 Revision 10c92
Direct-Access Devices 3/9/90
number of valid values are device specific. It is recommended that the number
of valid values be equal for the positive and negative head offset counts.
The target shall return CHECK CONDITION status and shall set the sense key to
ILLEGAL REQUEST if an unsupported head offset value is specified. The valid
bit shall be set to one and the information field shall be set to the positive
value of the maximum head offset count that is supported. The target shall
set the valid bit to zero if it cannot determine the maximum head offset count
supported. (Note: If the target does not support this field, it returns a
zero value in the MODE SENSE command.)
The data strobe offset count field specifies in two's-complement notation an
incremental position to which the recovered data strobe shall be adjusted from
its nominal setting. The effect of this field on write operations is
unspecified. A value of zero indicates that no data strobe offset is
specified. A positive value indicates movement in a positive direction as
defined by the target. A negative value indicates movement in the negative
direction as defined by the target. Any value specified in this field does
not preclude the target from using positive or negative data strobe offset
during error recovery. However, after any error recovery is completed the
target shall return the data strobe offset to the value specified in this
field.
IMPLEMENTORS NOTE: The degree of offset for each incremental value and the
number of valid values are device specific. It is recommended that the number
of valid values be equal for the positive and negative data strobe offset
counts.
The target shall return CHECK CONDITION status and shall set the sense key to
ILLEGAL REQUEST if an unsupported data strobe offset count value is specified.
The valid bit shall be set to one and the information field shall be set to
the positive value of the maximum data strobe offset count that is supported.
The target shall set the valid bit to zero if it cannot determine the maximum
data strobe offset supported.
IMPLEMENTORS NOTE: If the target does not support the data strobe offset
count field, it returns a zero value in the MODE SENSE command.
The recovery time limit field specifies in increments of one millisecond the
maximum time duration that the target shall use for data error recovery
procedures. The target may round this value as described in 6.5.4. The
limits in this field specifies the maximum error recovery time allowed for any
individual logical block. A recovery time limit of zero specifies that the
target shall use its default value.
If both retry count and recovery time limit are specified, the field that
specifies the recovery action of least duration shall have priority.
8.3.3.7. Rigid Disk Drive Geometry Page
SCSI-2 draft proposed American National Standard 8-93 Revision 10c93
Direct-Access Devices 3/9/90
Table 8-61: Rigid Disk Drive Geometry Page
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | PS |Reserved| Page Code (04h) |
-----|-----------------------------------------------------------------------|
1 | Page Length (16h) |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
- - -|- - Number of Cylinders - -|
4 | (LSB) |
-----|-----------------------------------------------------------------------|
5 | Number of Heads |
-----|-----------------------------------------------------------------------|
6 | (MSB) |
- - -|- - Starting Cylinder-Write Precompensation - -|
8 | (LSB) |
-----|-----------------------------------------------------------------------|
9 | (MSB) |
- - -|- - Starting Cylinder-Reduced Write Current - -|
11 | (LSB) |
-----|-+---------------------------------------------------------------------|
12 | (MSB) |
-----|--- Drive Step Rate ---|
13 | (LSB) |
-----|-----------------------------------------------------------------------|
14 | (MSB) |
- - -|- - Landing Zone Cylinder - -|
16 | (LSB) |
-----|-----------------------------------------------------------------------|
17 | Reserved | RPL |
-----|-----------------------------------------------------------------------|
18 | Rotational Offset |
-----|-----------------------------------------------------------------------|
19 | Reserved |
-----|-----------------------------------------------------------------------|
20 | (MSB) |
-----|--- Medium Rotation Rate ---|
21 | (LSB) |
-----|-----------------------------------------------------------------------|
22 | Reserved |
-----|-----------------------------------------------------------------------|
23 | Reserved |
==============================================================================
The rigid disk drive geometry page (Table 8-61) specifies parameters for
SCSI-2 draft proposed American National Standard 8-94 Revision 10c94
Direct-Access Devices 3/9/90
direct-access devices employing a rigid disk drive.
The parameters savable (PS) bit is only used with the MODE SENSE command.
This bit is reserved with the MODE SELECT command. A PS bit of one indicates
that the target is capable of saving the page in a non-volatile vendor-
specific location.
IMPLEMENTORS NOTE: This page is intended to define drive geometry parameters
of rigid disk drives. It may be used for other devices if applicable.
The number of cylinders field defines the number of physical cylinders used
for data storage.
The number of heads field defines the physical number of heads used for data
storage. Heads used exclusively for servo information are excluded.
The starting cylinder for write precompensation field is the physical cylinder
at which write precompensation is to begin. The first cylinder is number
zero. If the starting cylinder for write precompensation is equal to the
value in the number of cylinders field, write precompensation shall be
disabled by the target.
The starting cylinder for reduced write current field is the physical cylinder
at which write current is reduced. The first cylinder is number zero. If the
starting cylinder for reduced write current is equal to the value in the
number of cylinders field, reduced write current shall be disabled by the
target.
The drive step rate field indicates the step rate in 100 nanoseconds
increments. The target shall use the drive step rate, greater than or equal to
the drive step rate specified. If the target rounds this field it shall
terminate the command as described in 6.5.4. A value of zero requests the
target to set its default value.
The landing zone cylinder field indicates two's complement location where the
target shall position the disk heads. A negative value indicates that the
heads are positioned below cylinder zero by that number of cylinders. A
positive value greater than the number of cylinders indicates that the heads
are positioned beyond the cylinders used for data storage at the cylinder
location specified. A zero indicates that the default should be used.
The rotational position locking (RPL) field is used for spindle
synchronization as defined in Table 8-62. See Appendix K of the Enhanced
Small Device Interface (BSR X3.170-198X) for further information on
synchronized spindles.
Table 8-62: Rotational Position Locking
SCSI-2 draft proposed American National Standard 8-95 Revision 10c95
Direct-Access Devices 3/9/90
==============================================================================
RPL Description
------------------------------------------------------------------------------
00b Indicates that spindle synchronization is disabled or not supported.
01b The target operates as a synchronized-spindle slave.
10b The target operates as a synchronized-spindle master.
11b The target operates as a synchronized-spindle master control.
==============================================================================
IMPLEMENTORS NOTE: The signals and connectors used for rotational position
locking are external to the SCSI bus and are not part of this standard.
If a target fails to achieve synchronization it shall create a unit attention
condition to all initiators. The sense key shall be set to UNIT ATTENTION and
the additional sense code set to RPL STATUS CHANGE.
If subsequent to achieving synchronization the target detects a change of
synchronization:
(1) and, if the logical unit is not presently executing an I/O process for the
initiator, the target shall create a unit attention condition. The sense key
shall be set to UNIT ATTENTION and the additional sense code set to RPL STATUS
CHANGE.
(2) and, if the logical unit is presently executing an I/O process and no
other error occurs, then the target shall return CHECK CONDITION status. The
sense key shall be set to RECOVERED ERROR if the target is able to complete
the I/O process or HARDWARE ERROR if the target is unable to complete the I/O
process. The additional sense code is set to RPL STATUS CHANGE.
The rotational offset indicates the amount of rotational skew that the target
shall use when synchronized. The rotational skew is applied in the retarded
direction (lagging the synchronized spindle master control). The value in the
field is the numerator of a fractional multiplier that has 256 as its
denominator (e.g., a value of 128 indicates a one-half revolution skew). A
value of zero indicates that rotational offset shall not be used. This value
may be rounded as defined in 6.5.4. The rotational offset is not used when a
target is configured as synchronized-spindle master.
The medium rotation rate indicates the speed at which the medium rotates. The
unit of measure is rotations per minute (e.g., 3600 rpm).
8.3.3.8. Verify Error Recovery Page
SCSI-2 draft proposed American National Standard 8-96 Revision 10c96
Direct-Access Devices 3/9/90
Table 8-63: Verify Error Recovery Page
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | PS |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 page (Table 8-63) specifies the error recovery
parameters the target shall use during the VERIFY command, the verify
operation of the WRITE AND VERIFY command and the verify operation of the COPY
AND VERIFY command.
The parameters savable (PS) bit is only used with the MODE SENSE command.
This bit is reserved with the MODE SELECT command. A PS bit of one indicates
that the target is capable of saving the page in a non-volatile vendor-
specific location.
The AWRE bit as defined in the read-write error recovery page (see Table 8-
55) applies to the WRITE AND VERIFY command. The VERIFY and COMPARE commands
shall not perform automatic reallocation. The COPY and COPY AND VERIFY
commands might or might not perform automatic reallocation depending on the
settings of the mode parameters.
The EER, PER, DTE and DCR bits are defined in Table 8-56. The combinations of
SCSI-2 draft proposed American National Standard 8-97 Revision 10c97
Direct-Access Devices 3/9/90
these bits are defined in Tables 8-57 through 8-60.
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 and the verify recovery time limit are both specified, the one
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. If the
target does not implement this field, a value of zero is returned in MODE
SENSE data.
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 an individual logical block. The target may
round this value as described in 6.5.4. If the verify retry count and the
verify recovery time limit are both specified, the one 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 retries and recovery time limit to zero.
8.4. Glossary for Direct-Access Devices
cache memory. A temporary (and often volatile) data storage area outside the
user-accessible area. A cache memory is usually faster to access than the
medium and thus has the effect of increasing data throughput by reducing the
number of accesses to the medium.
non-volatile medium. Physical storage medium that retains data written to it
for a subsequent read operation through a power-on condition. An example of
this is a disk device that stores data as magnetic fields that do not require
device power to exist.
notch. A notch refers to all or part of the medium having a consistent set of
geometry parameters. Notches are used to increase storage capacity by
optimizing the number of sectors per track between the inner and outer tracks.
read hit. When the logical block requested for a read operation is accessed
from the cache memory, this is called a read hit.
user-accessible. The area of the medium that can be read from or written to
by READ and WRITE commands.
volatile medium. Medium that may not retain data written to it for a
SCSI-2 draft proposed American National Standard 8-98 Revision 10c98
Direct-Access Devices 3/9/90
subsequent read operation through a power-on condition. An example of this is
a silicon memory device that loses data written to it if device power is lost.
SCSI-2 draft proposed American National Standard 8-99 Revision 10c99