Your first statement you made above, is the non sequitur in logic that
bothers me.
It's not the fault of the bus. You haven't characterized a bus - you're
looking at a bottleneck caused by the head movement of a disk drive.
The bus has absolutely nothing to do with it. The bus is dumb.
It has a percent occupancy. If the hard drive is doing seeks,
there is nothing going across the bus. If the hard drive is pulling
data off the drive, the bus is still not fully occupied.
This is a 500MB/sec bus carrying 180MB/sec sustained transfer
rate data (like on that Seagate 15K hard drive). The bus is
occupied about 1/3rd of the time. The bus is not impacting performance.
______ ______
| | | |
______| |_______________| |_______________
If the disk is not busy, the cache has drained, and a command
comes along, the bus can "burst" until the cache is filled. In
HDTune, they attempt to measure the "burst" performance.
(Note that several of the benchmark utilities, have needed
continuous code adjustments. It's actually pretty hard to
measure these things accurately. Many times, you see
results that don't make sense. You can't always trust
the results in a benchmark tool as being gospel.)
This is my bus, if the disk is idle, and we're filling the cache.
Once the cache is full, we're head limited again (back to the
sustained pattern above).
|<--- 8MB of data fills 8MB cache --->
_____________________________________ ______
| | | |
______| |____________| |__
"bus" and "fragmentation" should not be used in the same sentence !!!
Fragmentation in a file system, requires additional head movement, to
locate fragments of data. The issue is the time it takes the head to move
from A to B. When the head is moving, no data can be transferred. The
head must be stationary above the track, the embedded servo detected
to prove that is the case, the sector header located (if one is
present) and so on. That takes milliseconds, during which the
bus has nothing to do.
None of that has anything to do with busses or the theoretical
maximum transfer rate a bus can provide.
SSDs come closer to sustaining near-bus-rate transfers,
because there is no head movement. There is still
quantization at the SSD, because flash memory is arranged
in blocks or pages, and certain operations work at a larger
size than some other operations. But if you look at the results,
like that flat HDTune graph running at 450MB/sec, they're hiding
any internal details pretty well. A flash memory does need
time to locate your data, but the delay is pretty well hidden.
The fact the natural storage size of the SSD, doesn't exactly
align with a 512 byte sector, becomes apparent when you do a
large number of small transfers to the SSD. The results
can seem pathetic, except when you compare them to a hard
drive which couldn't even get close to the same performance
level (due to head movement). If the orientation in the flash
better aligned with sectors, it might go faster, but at the
expense of being a less-dense chip. You only get the 450MB/sec
if you do blocks 512KB or larger (in this example). The
flash page size might be 128KB, but I haven't checked
a datasheet lately to see how that has changes. (Every generation
of flash, is going to need some dimensional tweaking or
additional ECC code bits and so on.)
http://www.legitreviews.com/images/reviews/1760/cdm-sata3.jpg
People who design buses, take these insults personally...
Lay the blame, at what is inside the HDA and how it works.
Paul