CompactFlash Memory Card Product Manual
SanDisk CompactFlash Memory Card Product Manual © 1998 SANDISK CORPORATION
66
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.