On Aug 17, 2016, at 3:01 PM, Maciej W. Rozycki
<macro at linux-mips.org> wrote:
On Wed, 17 Aug 2016, Mouse wrote:
SCSI is more than just the physical interface.
Traditional SCSI is a
parallel interface, with a bunch of signals and grounds. But, layered
atop the physical interface, there is also a command/response protocol
which is, strictly, independent of the physical layer. (I have seen it
said that the SCSI protocol is very similar to both ATAPI and SAS,
probably because it influenced their design, though I haven't read
enough of any of them to really have a good handle on it myself.)
I don't know of SAS offhand, however ATAPI is pretty much SCSI over ATA.
That is really SCSI commands and responses wrapped into the so called ATA
packets (hence the ATAPI acronym, standing for ATA Packet Interface) which
are chunks of data sent and retrieved with the ATA data write and read
commands. The USB storage protocol works similarly as well.
Actually, SCSI is a distributed storage protocol, somewhat like an RPC. It is layered on
top of your choice of one of many possible transports; the original SCSI bus is one of
those. (The fact that both the protocol and that old bus are called "SCSI" is
an unfortunate source of confusion.)
Other transports include Fibre Channel, iSCSI, and SAS. In all cases, the packets going
back and forth are SCSI packets. Some addressing details change as you change transports,
but the basic I/O remains consistent. For example, if you read the iSCSI standard,
you'll find some target discovery machinery, session (communication channel)
establishment, etc. But the core of iSCSI is a set of packets for carrying SCSI packets,
and for the definition of what those packets look like and how they are used, you'd
read the SCSI standard, not the iSCSI one.
paul