5.3 Host Commands
C141-E050-02EN 5-25
(6) WRITE MULTIPLE (X’C5’)
This command is similar to the WRITE SECTOR(S) command. The device does
not generate interrupts (assertion of the INTRQ) signal) on each sector but on the
transfer of a block which contains the number of sectors for which the number is
defined by the SET MULTIPLE MODE command.
The implementation of the WRITE MULTIPLE command is identical to that of
the WRITE SECTOR(S) command except that the number of sectors is specified
by the SET MULTIPLE MODE command are transferred without intervening
interrupts. In the WRITE MULTIPLE command operation, the DRQ bit of the
Status register is required to set only at the start of the data block, not on each
sector.
The number of sectors (block count) to be transferred without interruption is
specifed by the SET MULTIPLE MODE command. The SET MULTIPLE
MODE command should be executed prior to the WRITE MULTIPLE command.
When the WRITE MULTIPLE command is issued, the Sector Count register contains
the number of sectors requested (not a number of the block count or a number of
sectors in a block).
Upon receipt of this command, the device executes this command even if the
value of the Sector Count register is less than the defined block count the value of
the Sector Count should not be 0).
If the number of requested sectors is not divided evenly (having the same number
of sectors [block count]), as many full blocks as possible are transferred, then a
final partial block is transferred. The number of sectors in the partial block to be
transferred is n where n = remainder of (“number of sectors”/”block count”).
If the WRITE MULTIPLE command is issued before the SET MULTIPLE
MODE command is executed or when WRITE MULTIPLE command is disabled,
the device rejects the WRITE MULTIPLE command with an ABORTED
COMMAND error.
Disk errors encountered during execution of the WRITE MULTIPLE command are
posted after attempting to write the block or the partial block that was transferred.
Write operation ends at the sector where the error was encountered even if the sector is
in the middle of a block. If an error occurs, the subsequent block shall not be
transferred. Interrupts are generated when the DRQ bit of the Status register is set at
the beginning of each block or partial block.
The contents of the command block registers related to addresses after the transfer
of a data block containing an erred sector are undefined. To obtain a valid error
information, the host should retry data transfer as an individual request.