> There are three places where it seems that SCSI might
> have an advantage.
> CPU blockage: It might be that during a transfer UDMA
> blocks the memory bus so that the CPU cannot fetch
> instructions and access data.
> Per-byte overhead: It might be that UDMA requires more
> per-byte computation for such things as computing checksums.
> Per-sector overhead: It might be that UDMA controllers
> interrupt and need to be rearmed after each sector.
> There are two possibilities.
> * the controller can rearm during the intersector gap,
> in which case the overhead is small, since the read
> head spends a very small percent of its time between
> * the controller cannot rearm during the intersector gap,
> in which case there is a serious problem, since sectors
> cannot be read sequentially at full disk transfer speed.
> The best that the controller can do is read every other
> I'm very curious as to exactly where SCSI gets its performance
The first two (blocking the memory bus and per-byte overhead)
are fairly unlikely. Some blockage of the memory bus will
occure, but it will be momentary. The CPU should be able to
make due with what it has in cache. Also, the SCSI system
would need to transfer the same data blocks over the memory
bus as would the UDMA system, so this won't be a loss or a win
for either one. As for the per-byte overhead, I would expect
that the UDMA system has all of that taken care of by the
drive controller electronics, the SCSI system certainly would.
As for the per-sector overhead, this is much more likely to be
a loss for UDMA. SCSI systems don't know anything about sectors
(or other disk geometry), they just request blocks from a device
and let the controller on the device take care of the details.
If UDMA has to worry about what the drive is doing between sectors
then it has a lot more work for the CPU than SCSI.
The main advantage for SCSI is, I think, the ability to have
multiple outstanding requests to multiple devices simultaneously.
I would bet that the advantage of SCSI over UDMA EIDE is fairly
small for a system with only a fixed disk and CD-ROM drive.
The ability to have multiple outstanding requests allows the
system to hide much of the disk access latency by issueing
further requests while the first request is still in process.
If you have several fixed disks, in you system then you can
stripe them and get much higher bandwidth than any single disk
In a *nix style system, where there is a lot of disk activity
due to virtual memory and logging daemons (not to mention the
disk activity inherent in your application) you can see a big
benefit from SCSI. Other systems are less likely to see much
benefit in SCSI over UDMA EIDE. Certain applications are also
likely to see a lot of benefit: CD mastering, digital video,
anything that need a LOT of disk bandwidth.
- Jeff Dutky