5.3 Host Commands
C141-E262 5-89
(18) READ MULTIPLE (X 'C4')
The READ MULTIPLE command performs the same tasks as the READ
SECTOR(S) command except that this command sends the PIO Setup FIS before
sending data blocks of multiple sectors. The PIO Setup FIS is sent only before
the first data block is transferred, and it is not sent before any subsequent transfer
of sector blocks.
The number of sectors per block is defined by a successful SET MULTIPLE
MODE Command. The SET MULTIPLE MODE command should be executed
prior to the READ MULTIPLE command.
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 READ MULTIPLE command is issued when the READ MULTIPLE
command is disabled, the device rejects the READ MULTIPLE command with an
ABORTED COMMAND error.
If an uncorrectable disk read error occurs, the read operation stops at the sector
where the error occurred (even if the read operation has not reached the end of the
block). At this time, the number of sectors that have not been transferred
(including the error sector), and either the cylinder, head, and sector addresses of
the error sector (CHS mode) or the logical block address of the error sector (LBA
mode) are set in the Shadow Block Register.
Figure 5.12 shows an example of the execution of the READ MULTIPLE
command.
• Block count specified by SET MULTIPLE MODE command = 4 (number of
sectors in a block)
• READ MULTIPLE command specifies;
Number of requested sectors = 9 (Sector Count register = 9)