Справочник Пользователя для Samsung 3.5" hard disk drives

Скачать
Страница из 115
DISK DRIVE OPERATION 
 
SpinPoint V40 Product Manual 
64
 
6.4.13  Read Multiple Command (C4h)  
 
The Read Multiple command performs similarly to the Read Sectors command. Interrupts are not generated 
on every sector, but on the transfer of a block which contains the number of sectors defined by a Set Multiple 
command. 
 
Command execution is identical to the Read Sectors operation except that the number of sectors defined by a 
Set Multiple command are transferred without intervening interrupts. DRQ qualification of the transfer is 
required only at the start of the data block, not on each sector. 
 
The block count of sectors to be transferred without intervening interrupts is programmed by the Set Multiple 
Mode command, which should be executed prior to the Read Multiple command. When the Read Multiple 
command is issued, the Sector Count register contains the number of sectors (not the number of blocks or the 
block count) requested. 
 
If the number of requested sectors is not evenly divisible by the block count, as many full blocks as possible 
are transferred, followed by a final, partial block transfer. The partial block transfer shall be for n sectors, 
where 
 
n = Remainder (Sector Count / Block Count) 
 
If the Read Multiple command is attempted before the Set Multiple Mode command has been executed or 
when Read Multiple commands are disabled, then the Read Multiple operation is rejected with an Aborted 
Command error. 
 
Disk errors encountered during Read Multiple commands are posted at the beginning of the block or partial 
block transfer, but DRQ is still set and the data transfer takes place as it normally would, including transfer of 
corrupted data, if any. 
 
The contents of the Command Block registers, following the transfer of a data block, which had a sector in 
error, is undefined. The host should retry the transfer as individual requests to obtain valid error information. 
 
Subsequent blocks or partial blocks are transferred only if the error was a correctable data error. All other 
errors cause the command to stop after transfer of the block, which contained the error. Interrupts are 
generated when DRQ is set at the beginning of each block or partial block.