INTERFACE COMMANDS
7 – 3
Read DMA
Read DMA
Read DMA
Read DMA
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
Read Multiple
Read Multiple
Read Multiple
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.
If the Sector Count register contains 0 when the Set Multiple Mode command is issued, Read Multiple and
Write Multiple commands are disabled; no error is returned. Once the appropriate action has been taken, the
controller resets BSY and generates an interrupt. At power up, or after a hardware or software reset, Read
Multiple and Write Multiple commands are disabled by default.