Specifications
INTERFACE COMMANDS
7 – 49
Read DMA
Multi-word DMA
Identical to the Read Sector(s) command, except that
1. The host initializes a slave-DMA channel prior to issuing the command,
2. Data transfers are qualified by DMARQ and are performed by the slave-DMA channel and
3. The drive issues only one interrupt per command to indicate that data transfer has terminated
and status is available.
Ultra DMA
With the Ultra DMA Read protocol, the control signal (DSTROBE) that latches data from DD(15:0) is
generated by the devices which drives the data onto the bus. Ownership of DD(15:0) and this data strobe
signal are given DSTROBE to the drive during an Ultra DMA data in burst.
During an Ultra DMA Read burst, the drive always moves data onto the bus, and, after a sufficient time to
allow for propagation delay, cable settling, and setup time, the sender shall generate a DSTROBE edge to latch
the data. Both edges of DSTROBE are used for data transfers.
Any unrecoverable error encountered during execution of a Read DMA command terminates data transfer
after the transfer of all sectors prior to the sector where the error was detected. The sector in error is not
transferred. The drive generates an interrupt to indicate that data transfer has terminated and status is available.
The error posting is identical to the Read Sector(s) command.
Read Multiple
Performs similarly to the Read Sector(s) command, except that for each READ MULTIPLE command data
transfers are multiple sector blocks and the Long bit is not valid.
Execution is also similar to that of the READ SECTOR(S) command, except that:
1. Several sectors are transferred to the host as a block, without intervening interrupts.
2. DRQ qualification of the transfer is required only at the start of each block, not of each sector.
The block count consists of the number of sectors to be transferred as a block. (The block count is programmed
by the Set Multiple Mode command, which must be executed prior to the Read Multiple command.) READ
LONG command is limited to single sector requests.
When the Read Multiple command is issued, the Sector Count register contains the number of sectors requested
— not the number of blocks or the block count. If the number of sectors is not evenly divisible by the block
count, as many full blocks as possible are transferred, followed by a final, partial block transfer. This final, partial
block transfer is for N sectors, where N = (sector count) modulo (block count)
The Read Multiple operation will be rejected with an Aborted Command error if attempted:
1. Before the Set Multiple Mode command has been executed, or
2. When Read Multiple commands are disabled.
The controller reports disk errors encountered during Read Multiple commands at the start of the block or partial
block transfer. However, DRQ still sets, and the transfer occurs normally, along with the transfer of any corrupt
data. Remaining block data from the following the sector in error is not valid.
Subsequent blocks or partial blocks transfer 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.
Set Multiple Mode
Enables the controller to perform Read and Write Multiple operations, and establishes the block count for these
commands. Before issuing this command, the Sector Count register should be loaded with the number of sectors
per block. The drives support block sizes of 2, 4, 8 and 16 sectors.
When this command is received, the controller sets BSY and examines the Sector Count register contents. If they
contain a valid and supported block count value, that value is loaded for all subsequent Read and Write Multiple
commands, and execution of those commands is enabled. An invalid and unsupported block count in the register
results in an Aborted Command error and the disallows Read Multiple and Write Multiple commands.