INTERFACECOMMANDS
Read DMA
Identical to the Read Sector(s) command, except that
1.The host initializes a
2.Data transfers are qualified by DMARQ and are performed by the
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.
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.
7 – 3