Product manual

Preliminary CompactFlash Memory Card Product Manual
SanDisk CompactFlash Memory Card Product Manual Rev. 8 © 2001 SANDISK CORPORATION
65
6.1.10 Read Multiple - C4H
Bit -> 7 6 5 4 3 2 1 0
Command (7)
C4H
C/D/H (6)
1 LBA 1 Drive Head (LBA 27-24)
Cyl High (5)
Cylinder High (LBA 23-16)
Cyl Low (4)
Cylinder Low (LBA 15-8)
Sec Num (3)
Sector Number (LBA 7-0)
Sec Cnt (2)
Sector Count
Feature (1)
X
Note: The current revision of the CompactFlash Memory Card only supports a block count of 1 as indicated in the Identify
Drive Information command. This command is provided for compatibility with future products which may support a
larger block count.
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 is 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 must 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 is for n sectors, where
n = (sector count) - modulo (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, 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 will take place as it normally would,
including transfer of corrupted data, if any.
Interrupts are generated when DRQ is set at the
beginning of each block or partial block. The error
reporting is the same as that on a Read Sector(s)
Command. This command reads from 1 to 256
sectors as specified in the Sector Count register. A
sector count of 0 requests 256 sectors. The transfer
begins at the sector specified in the Sector Number
Register.
At command completion, the Command Block
Registers contain the cylinder, head and sector
number of the last sector read.
If an error occurs, the read terminates at the sector
where the error occurred. The Command Block
Registers contain the cylinder, head and sector
number of the sector where the error occurred. The
flawed data is pending in the sector buffer.
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.