SCSI Read10 vs Read16

Which case would be considered correct?

  • Performing a read using the Read 16 command regardless of whether the LBA is 32 or 64 bits.

  • If the maximum LBA is 32 bits, issue the Read 10 command, and if the maximum LBA is 64 bits, issue the Read 16 command.

What are the pros and cons of each choice?

I know that it is correct for the Read Capacity command to run 10, and if it returns FFFFFFFFh then run 16. Why is this so? The Read Capacity 16 command works for both cases and avoids even the need for Read Capacity 10.

+3


source to share


1 answer


Keep in mind that the reason SCSI has multiple "sizes" of these commands, in many cases, is because SCSI is a very old protocol . (It was first standardized in 1986 and has been in development for some time!). At the time, a large SCSI device would sit at low hundreds of megabytes - even a 32-bit LBA was considered overkill at the time. 64-bit LBA commands just didn't exist until much later.



The question is, do you really want to support these older devices. If you do this, you will need to use Read (10) to read on "small" devices, as they may not recognize Read (16). Likewise, using Read Read (10) before Read Capacity (16) is because older devices won't recognize the larger version.

+4


source







All Articles