Re: SATA Cards: How is their actual bandwith calculated?
- From: dempson@xxxxxxxxxxxxx (David Empson)
- Date: Thu, 3 Jan 2008 15:39:33 +1300
tonetony <atsoukatos@xxxxxxxxxxxxxx> wrote:
Happy New Year to all and many thanks for your responses .
It has started making sense now, but:
They have an entry level "Tempo Serial ATA" card
This card only has a 32-bit PCI interface. In your PowerMac G4, the PCI
bus runs at 33 MHz. A 32-bit card is therefore limited to 4 * 33 = 132
MB/s maximum data throughput.
That is very-very interesting. Could you please explain to me why you
used the number 4?
The PCI bus (for that card) is 32 bits wide, which is 4 bytes (of 8 bits
each), hence 4 bytes times 33 million transfers per second = 132 MB/s.
I currently have a Tempo Trio [http://www.sonnettech.com/product/
tempo_trio.html] and a Tempo ATA133 on two of my G4s and both of them
are set up to RAID 0, using the OS X soft raid and with 2 ATA drives
connected to each of the separate channels.
A card like the Sonnet Tempo 133 would theoretically give 133MB/s per
channel right?
In theory, yes. The card supports four ATA drives via two connectors, so
each connector/channel is capable of transferring 133 MB/s.
But the 32-bit 33 Mhz bus can only provide 132MB/s.
For this card in a G4, yes - it has a 32-bit interface.
Isn't this slightly absurd on behalf of the card manufacturing
companies to advertise such a feat when is not actually true in real
life?
I can't see any suggestion that this card works with a faster PCI bus,
but in principle it could be used at 66 MHz, which would allow twice the
throughput, which would give near maximum throughput on both ATA
channels.
In a PowerMac G4, the PCI bus is only 33 MHz, so this isn't an option.
It might go faster if you used the same card in a PowerMac G5 with PCI-X
slots.
(The original "Yikes" PowerMac G4 with PCI Graphics has a 66 MHz PCI
slot for the video card, but the rest of the PCI slots in all G4 models
are 33 MHz.)
Consider the Tempo SATA X4i by comparison:
<http://www.sonnettech.com/product/tempo_sata_x4i.html>
This has a 64-bit PCI bus interface, so in your G4 it would have a
theoretical limit of 260 MB/s. This card definitely says it has 3 GB/s
maximum per port, so there is no question it will be able to saturate
your PCI bus and get maximum performance out of all connected drives
(given the limits of your computer).
Could you please explain what's the math behind the 260MB/s rate?
Double the data bus width to 64 bits, because the card has a 64-bit
interface to the PCI bus instead of 32-bit.
8 bytes times 33 millions transfers per second = 264 MB/s theoretical
limit.
In your PowerMac G4, the PCI bus is also used by the secondary ATA/66
controller, the EIDE bus (CD/DVD), audio circuitry and built-in USB. If
you are using any of those (or any other PCI cards), then something is
going to suffer limited throughput if you try to saturate your PCI bus.
Invaluable information. Thanks.
Note the potential conflict with other PCI cards, ATA/66, EIDE, USB and
audio.
Are there any known figures when the audio or usb bus are being used?
Should i assume that by disabling the sound outputs from the control
panel would free up some bandwidth?
I was thinking more of the other way around: if you saturate the PCI
bus, the USB and audio are likely to be starved. They are relatively low
bandwidth compared to PCI. I've heard of situations where a very busy
PCI bus can result in audio dropouts on a PowerMac G4.
Looking at raw numbers:
The maximum throughput of USB 1.1 is 12 Mbps, which is 1.5 MB/s (plus a
small amount of overhead for control operations). That's only about 1%
of the PCI bus limit so it isn't going to make much difference.
Audio is probably 44.1 kHz, 16-bit samples, 2 channels. Thats 44100 * 2
(bytes) * 2 (channels) = 176 KB/s. You probably won't even notice it if
it was using up some bandwidth that could be used by PCI.
With a single drive, you would only achieve this speed with data to/from
the drive's RAM cache, so the peak or burst rate is significant. The
sustained rate (for transfer to/from the drive platters) will be
considerably lower. It might get up to something like 120 MB/s for very
fast drives, but only in some parts of the drive. Most of it is likely
to be considerably slower.
What would be the average speed of a 7200rpm SATA drive?
It will vary depending on the data density. Higher capacity drives in
the same form factor can pack more data into the same area, so have a
higher transfer rate.
The data density also depends on the region of the disk. There is more
data at the outer edge of the disk than in the centre, and the average
transfer rate is highest at the outer edge. This means that an empty
drive will have the greatest average performance, and a nearly full one
(assuming linear filling) will be somewhat slower.
I don't know the actual numbers, but my experience over the last few
years is that a 250 GB 3.5" 7200 rpm ATA drive connected via Firewire
800 can achieve just over 50 MB/s average transfer rate near the outer
edge.
Now for some theory. Someone please correct me if these assumptions are
wrong. I haven't gone searching for actual data - a Google search may
reveal some more realistic numbers.
The transfer rate won't scale linearly according to the drive size.
"Best available" drives are probably the same number of platters for
each generation, with greater data density on each track and greater
track density. For a doubling in drive capactiy, that suggests something
in the order of a SQRT(2) increase in track density, times a SQRT(2)
increase in data density. The highest average rate of a 500 GB 7200 rpm
drive would therefore be about 1.4 * 50 = 70 MB/s, and a 1 TB 7200 rpm
drive would be about 1.4 * 70 = 98 MB/s.
There could of course be a greater increase in one dimension than in the
other, e.g. a better encoding technique could allow more data to be
packed onto the track without having to increase the track density as
much. This would result in a higher increase in average transfer speed
as the capacity increases (all other design factors being the same).
If the difference in capacity is simply an increase in platters then the
transfer rate will scale according to the number of heads which are
simultaneously able to transfer data.
I expect it usually works that for each generation, the highest capacity
drive has the maximum number of platters, and some smaller variants in
the same generation will reduce the number of platters, so will be
proportionally slower.
For a 10,000rpm perhaps?
Faster rotation speed should scale linearly if the data density is the
same. If a 7200 rpm 500 GB drive is able to achieve 70 MB/s, the same
media in a 10,000 rpm 500 GB drive would be about 98 MB/s
And should i simply multiply by 2, if i have a two drives in a RAID 0
to calculate the throughput?
Yes, as long as the drives can be accessed simultaneously (not if they
are on a shared ATA bus, for example).
Back to my current setup with the Sonnet Tempo 133;
Am i really achieving any higher HD speeds with the OS X RAID 0
feature and two separate drives on each of the card's channels?
Ignoring the PCI bus for a moment:
If you have a RAID 0 (striped) pair on a single ATA/133 bus, the maximum
speed that each drive can be accessed is half the bus bandwidth, or 66
MB/s. If my numbers about are right, then for 7200 rpm drives in the
order of 320 to 400 MB, that will be approaching the limit of what the
drive can achieve. If the drives are larger, then the shared ATA bus
will be limiting the throughput.
If you have larger drives, they may be able to achieve best average
transfer rates exceeding 66 MB/s, so the shared bus is a limitation and
you would be able to achieve better throughput by having the RAID pair
on different ATA buses.
Add in a second independent RAID 0 pair and the question is more
complicated as it will depend on the data access patterns of the drives.
If the computer is trying to access everything at the same time and the
drives are individually capable of greater than 66 MB/s average
throughput then the dual ATA arrangement will be a limit either way
around. If access is more random, you will probably get slightly better
performance by arranging the RAID pairs so that each pair is spread over
two buses (one bus has the first half of each pair, the other bus has
the second half of each pair).
Now, throw in the PCI bus limit, and everything turns to custard. The
132 MB/s PCI bus limit means that you are effectively halving the
available throughput. The average speed achievable for each drive is
therefore only 33 MB/s, well within the capabilities of any modern hard
drive (probably for the entire surface of the drive).
I doubt it will make any difference how you arrange the drives, because
the PCI bus is the limit.
Would it make any difference if i had four drives connected instead
(again in RAID 0)?
Probably not, due to the PCI bus.
In an ideal system with a fast enough PCI bus, then a RAID 0 quartet
might be more efficient than two RAID 0 pairs, because everything is
done in lockstep and the computer is dealing with a single volume and
file system rather than two. Overhead would be reduced slightly. With
dual ATA/133 buses, you will probably be limited by the bus speed if
using 500 GB or larger 7200 rpm drives, or any sized 10,000 rpm drives.
It also depends on your data access pattern. For example, if you were
doing something which involved accessing linear streams of separate
video and audio files, you get greatest performance by locating them on
different physical drives (or RAID sets) so that there is minimal seek
overhead. Putting both files on a single volume RAID would be less
efficient.
And come to think about it, what you would think is the average read/
write speed of a fairly good ATA 100 drive?
See above. The 50 MB/s figure for my 250 MB drive (Seagate Barracuda)
was probably using an ATA 100 bus inside my Firewire enclosure. I
haven't done any other speed tests. I suggest a Google search to get
some actual numbers.
And i think i am left to suppose that when i am using the Sonnet Tempo
Trio card then the two ATA 133 channels, the two USB ports and the
two Firewire ports that are all located on the card, are all sharing
that 132MB/s throughput. Wrong/ false?
Correct. USB 2.0 and Firewire 400 could potentially be occupying up to
60 MB/s (USB 2.0) or 50 MB/s (Firewire 400) - I expect the card has a
single USB and single Firewire bus. If you are actively using either of
these buses to transfer data between to/from the CPU, it will be taken
away from available PCI bandwidth for the ATA buses.
I don't know whether the card and/or software is able to achieve neat
tricks with transferring data directly between Firewire and ATA, but I
doubt it. (Even less likely with USB.)
Last but not least, would anyone tell how much the OS X raid taxes the
CPU?
I've only used software RAID (mirroring) in one old PowerMac G4, and
didn't notice a significant performance hit. Striping may be slightly
more complex but I wouldn't expect it to require a lot more work than
managing a single drive.
--
David Empson
dempson@xxxxxxxxxxxxx
.
- References:
- Re: SATA Cards: How is their actual bandwith calculated?
- From: tonetony
- Re: SATA Cards: How is their actual bandwith calculated?
- Prev by Date: Re: The RIAA goes completely insane
- Next by Date: Re: The RIAA goes completely insane
- Previous by thread: Re: SATA Cards: How is their actual bandwith calculated?
- Next by thread: Dead Aliases in iTunes
- Index(es):
Relevant Pages
|