Figure 5.1 shows an example of the execution of the READ MULTIPLE command.
∙Block count specified by SET MULTIPLE MODE command = 4 (number of sectors in a block)
∙READ MULTIPLE command specifies;
Number of requested sectors = 9 (Sector Count register = 9)
↓
Number of sectors in incomplete block = remainder of 9/4 =1
Parameter | Command Issue |
| |
Write | Status read |
~ |
|
BSY
DRDY
INTRQ
DRQ | Sector | 1 2 3 4 | |
| |||
| transferred |
|
|
|
|
|
|
|
|
| Block |
|
|
Status read | Status read |
5 | 6 | 7 | 8 |
| 9 |
|
| ||
|
|
|
|
|
|
|
|
| Partial |
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
| block |
| Block |
|
|
|
|
|
| ||
|
|
|
|
|
|
| |||
|
|
|
|
|
|
|
|
Figure 5.1 Execution example of READ MULTIPLE command
At command issuance (I/O registers setting contents)
1F7H(CM) | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
|
|
|
|
|
| |||
1F6H(DH) | × | L | × | DV | Start head No. /LBA [MSB] | |||
|
|
|
|
|
|
|
| |
1F5H(CH) |
| Start cylinder No. [MSB] / LBA |
|
| ||||
1F4H(CL) |
| Start cylinder No. [LSB] | / LBA |
|
| |||
1F3H(SN) |
| Start sector No. |
| / LBA [LSB] |
| |||
1F2H(SC) |
|
| Transfer sector count |
|
| |||
1F1H(FR) |
|
|
| xx |
|
|
|
|
At command completion (I/O registers contents to be read)
1F7H(ST) |
|
|
| Status information | |||
|
|
|
|
|
|
| |
1F6H(DH) | × | L | × |
| DV | End head No. /LBA [MSB] | |
|
|
|
|
|
|
| |
1F5H(CH) |
| End cylinder No. [MSB] | / LBA | ||||
1F4H(CL) |
| End cylinder No. [LSB] | / LBA | ||||
1F3H(SN) |
| End sector No. |
| / LBA [LSB] | |||
1F2H(SC) |
|
|
|
| 00H (*1) |
| |
1F1H(ER) |
|
|
| Error information |
*1 If the command is terminated due to an error, the remaining number of sectors for which data was not transferred is set in this register.
| 5 - 19 |