Promise, a company that is known for their dedication to IDE hard drive controllers since the days of 'EIDE' or 'enhanced IDE' had a pretty hard time when chipset makers as Intel or VIA started to integrate IDE-controllers into their chipsets. People simply didn't need an extra hard drive controller unless they wanted to use SCSI. Each time when a new IDE-specification had been released however, Promise was able to supply a product that would upgrade current systems to the latest IDE-standards. This was the case with 'ATA33', a IDE controller spec that offers up to 33 MB/s data transfer rate between the hard drive and the system, which was first introduced with Intel's good old 430TX-chipset in 1997. At that time, people who owned motherboards with 430FX/HX/VX chipsets (supporting only modes up to 22 MB/s) could upgrade their system with a Promise Ultra33 card, enabling ATA33 mode. Today, Intel's 8xx and VIA's latest chipsets support 'ATA66'. This spec requires new cables between the motherboard and the hard drives, and it's offering up to 66 MB/s data transfer rate. Motherboards with Intel's BX-chipset don't support ATA66 and so Promise could sell their 'Ultra66'-controller to owners of systems with those motherboards.
Now there's one important thing to remember though. Even the fastest IDE drives today can only supply data rates of 30 MB/s when reading the data directly from the disk. Only data that happens to reside in the dedicated read/write cache on the hard drive can be transferred at a higher speed. The same is valid for writes. Data can be transferred to the drive pretty fast, until the cache is full. Then the write speed rate is again limited by the physical abilities of the hard drive, which today is in the range of 20-30 MB/s. Thus you can hardly ever see any improvement when you switch from ATA33 to ATA66. Especially hard drives with small caches can take only little advantage of ATA66. This does of course not mean that the physical read/write rates of IDE hard drives won't skip the 33 MB/s limitation of ATA33 very soon, so ATA66 does make perfect sense as long as it doesn't come at a too high premium.
Besides the normal IDE-controller cards, Promise is also offering RAID-cards for IDE drives. This article will have a close look at Promise's RAID-controller card with ATA66-support, the 'FastTrak66'.
When the average computer user hears the term 'RAID', he either doesn't have a clue what it is altogether, or he might have heard about it in combination with large servers and security issues. Even normal workstations are rarely using RAID, so you might wonder why I am going on about it here.
I also used to put 'RAID' into the world of high-end servers and SCSI-systems, so that it sounded pretty weird to me, when I heard of IDE-RAID for the first time sometime in 1998. However, I finally had to find out that I had been wrong. Once RAID is affordable, it also makes sense in a lot of average systems.
The definition or 'invention' of RAID goes back some 12 years. In a 1988 publication, A Case for Redundant Arrays of Inexpensive Disks (RAID), three University of California-Berkeley researchers (David Patterson, Randy Katz, and Garth Gibson) proposed guidelines for these arrays. The idea was to use 'inexpensive' hard drives to create a large, fast and reliable/secure mean of data storage. If you want to learn more about RAID, I would suggest to read the excellent white paper 'RAID Technology' from Dell's website. I will only concentrate on the RAID levels offered by Promise's FastTrak66 controller, to keep this article at a reasonable length.
RAID 0 - Striping
RAID 0 is by many not seen as a real RAID level, because it does not add any redundancy. As a matter of fact RAID 0 is even less reliable than a normal single hard drive, because all data of the array will be lost if only one drive should fail. RAID 0 has still got a lot of charm though, because it offers excellent performance.
RAID 0 is using a mechanism called 'data striping'. It maps data across a number of different hard drives to create one large drive. The data is stored onto the physical drives in consecutive 'stripes', which are of defined size. This means that a file that is larger than the actual stripe size is distributed over the hard drives in the array, so that the different stripes of that file can be read in parallel. In this case the data transfer rate of the RAID 0 Array or 'Stripe Set' is the product of the data transfer rate of the slowest drive in the array times the number of drives that are in the array. If identical hard drives are used, the data transfer bandwidth is simply multiplied by the number of drives. A stripe set of four drives with a data transfer speed of 20 MB/s can therefore reach speeds of 80 MB/s, because data is read or written to or from the four drives in parallel. Of course this example is only valid if the data is indeed distributed over all the four hard drives. Making the stripe size small enough can insure this.
Alternatively, in an environment with a lot of simultaneous requests for small amounts of data the stripe size should be chosen rather large, so that the data is typically found on only one drive in the set, making the access faster, because the request doesn't need to wait until all drives have found and delivered the data.. This example is not valid for IDE though, it only works with SCSI.
What you should know about RAID 0 or 'Stripe Sets'
- The size of the array will always be the number of drives in the array times the size of the smallest drive in the array. This is because the data is distributed equally over the drives in the set. Therefore it's best to use identical drives or at least drives that have very similar sizes, unless you want to waste drive space.
- The data transfer rate of the array is always the number of drives times the data transfer rate of the slowest drive, as long as the stripe size is small enough. This is also not too difficult to understand if you realize that the requested chunk needs to be read completely, before another chunk can be read. Therefore each drive has to deliver its stripe of the data chunk before the data can be sent to the processor or DMA-device and so the slowest drive defines the speed.
- The data access time of a RAID 0 array is either the same as of the slowest drive, or in case of identical drives the access time is equal or slightly higher than of one drive in the array, because all drives need to access their data for the data transfer and unless they are synchronized (only possible with SCSI drives), one of the drives may take longer to access the data than the other.
- If one drive in the array fails, all data will be lost, because if one stripe of a file is missing, the file cannot be retrieved anymore.
RAID 1 - Mirroring
RAID 1 is also called 'mirroring', because it simply keeps a complete copy of one drive on another drive. A RAID 1 array of two hard drives has the storage capacity of only one drive, because the other drive contains the 'mirror'. RAID 1 is obviously the most reliable kind of array, because it always keeps a complete backup of your data. Its performance is naturally not as high as RAID 0 though. Read requests are actually faster than from one single drive, because the data is simply read from the one drive of the two that delivers it faster. RAID 1 is therefore reducing the access time. Write requests are usually slower on RAID 1, because the data needs to be written on two drives and then compared.
RAID 1 is usually offering 'hot swap', which means single drives in the array can be removed or replaced while the system is running, without interruption. However, once one drive in the array has failed, you need to replace it to ensure data integrity, and if you replace it with a new drive, this one needs to be 'filled' with the mirror again. This has naturally an impact on the performance of the array until the mirroring is finalized.
As you can imagine, RAID 1 is not only a very secure, but also a rather expensive RAID-solution, because you need two hard drives for the capacity of only one.
RAID 10 or 0,1
This RAID level resembles a combination of RAID 0 and RAID 1. The idea is to mirror a stripe set or to stripe a mirror. The effect is the same. Due to striping, the read and write performance is excellent, as long as no failed drive needs to be rebuilt by the mirror-process. The reliability is also excellent, because you still have a complete backup of your data on another drive. However, you require double the amount of drives than with RAID 0 to achieve the same capacity.
'Spanning' is no RAID level, but it is another option offered by the FastTrak66. It simply makes one drive out of a number of drives, regardless of their size. It does neither stripe nor mirror, but it simply hangs one drive on another, so that e.g. a 13 GB and a 8 GB drive make one 21 GB drive. Data stored on this 'spanning-array' is first stored on the first drive and when this drive is full the next data goes onto the next drive. The performance in each dedicated 'area' of the span-array is identical to the performance of the single drive that represents this area.
The FastTrak66 is an IDE RAID controller that offers RAID 0 (Striping), RAID 1 (Mirroring), RAID 0,1 or 10 (Mirror of Stripes/Stripe of Mirrors) and Spanning. The two ATA66 IDE-channels can theoretically transfer up to 66 MB/s each, so that in theory FastTrak66 could utilize the whole bandwidth of the PCI-bus, which is 133 MB/s. FastTrak66 is only using one interrupt for both channels, which is already making it more attractive than the onboard IDE that's always using IRQ 14 and 15 for its two channels.
Promise's FastTrak66 is a nice little PCI-card with two IDE-connectors. It looks just a bit too similar to its little brother, the Ultra66 from Promise, which is supposed to upgrade systems that don't have onboard ATA66.
Make Your Own FastTrak66 Out of an Ultra66
If we take a close look at the FastTrak66 and the Ultra66, we find that the cards are physically identical except for one well hidden little detail. Underneath the EPROM-chip there are two special places for SMD-resistors. The location of the resistor decides if the card will be an Ultra66 or a FastTrak66.
You can see the SMD-resistor underneath the EPROM chip. If it's close to the lower row of pins of the EPROM chip, you've got an Ultra66.
The FastTrack66 is carrying the resistor close to the upper row of pins of the EPROM, as you can see in the picture above.
This little difference and the BIOS that's stored/flashed inside the EPROM can make a FastTrak66 out of an Ultra66 for a third of its price. However, you will certainly agree that it's a bit tough to solder this SMD into the other place, because you'd have to remove the EPROM from the card as well.
The Changing Procedure
There are several different procedures that have the same effect as swapping the SMD-resistor underneath the EPROM-chip, and all of them keep you from having to remove this integrated circuit from the card. I chose the simplest method, but you can find all of them on this page of Ole Pedersen. All of those methods are using the same steps:
- Flash the BIOS of the FastTrak66 (downloaded from Promise's website) onto the Ultra66 card, which actually renders your Ultra66 useless until you do the soldering procedure. Don't forget this step, because once the controller 'believes' it's a FastTrak66 after the soldering procedure, it won't let you flash the BIOS anymore and you'll have to reverse the soldering procedure to flash the FastTrak66-BIOS.
- Do the soldering. That's it.
Changing back is similar:
- Flash the Ultra66-BIOS onto to changed card, so that it won't work as FastTrak66 anymore.
- Reverse the soldering procedure.
As published on Ole Pedersen's page, there are several different soldering procedures you can use. I personally vouch for one in particular, which involves soldering a 100 - 1000 Ohm resistor (1/4 W is just fine) from pin 23 of the EPROM to ground, pulling down pin 23.
As you can see, I didn't even use a new resistor, because I couldn't wait trying it out once I had heard about it. Pin 23 is the seventh pin from the left of the EPROM's bottom row of pins.
Here is the new 'FastTrak66' RAID-controller for the price of an Ultra66-card plus the price of one little resistor:
As usual I'd like to point out that soldering should only be done by people who have the required skills and please do me the favor and use a fine circuit board soldering iron with a fine tip, not a 100 W overkill model that will fry the whole card. You know that Tom's Hardware Guide will not take any responsibility if you send your computer system or parts of it into Nirvana due to this article.
Installation and Handling
One of the beauties of FastTrak66 is the fact that all RAID and disk settings are actually done right after boot up in FastTrak's own BIOS-setup, which you invoke by pressing 'Ctrl-F' when the screen message appears.
You enter the following menu:
If your drives aren't already set up, you can use the extremely easy and convenient 'Auto Setup' feature. In this Auto Setup you simply choose between three different set up options.
||FastTrak creates a RAID 0 Stripe Set out of the connected drives.
||FastTrak either creates a RAID 1 mirror if only 2 or 3 drives are connected, or a RAID 0,1 mirror of stripes if you hooked up 4 drives to the controller.
||FastTrak makes one large drive out of all the connected drives using 'Spanning'. This set up is best if you've got several drives of completely different sizes and speeds.
Installation and Handling, Continued
Alternatively you can also set up your arrays manually:
In either case you can chose the size of the stripe block for RAID 0 arrays. I recommend leaving this setting alone at 64 kB. We tested the performance at different settings. Regardless in which direction we changed it and regardless which applications we used, 64 kB stripe size was always the fastest solution.
The menu naturally offers you the chance to delete an array as well and you can change the ATA-settings of the controller in two different menus:
Here you can tell FastTrak how it should handle each drive individually.
This bad picture shows the Config-Menu, where you can adjust the general Ultra ATA mode and the way FastTrak treats errors. The IRQ and port-settings cannot be changed.
FastTrak Driver and Utilities
If you should be one of the few people who are still using DOS, the FastTrak66 will be to your liking. You don't need any driver to take advantage of FastTrak's performance or security under DOS. However, you can only access the first 8 GB of an array under DOS.
The driver installation under Windows 98 is very simple. Place the driver disk into the floppy drive and that's it. Additionally Promise supplies two utility programs on their website. No. 1 is the 'Fast Check Monitor Utility', which looks nice and shiny, but it comes without any documentation.
This one simply shows you the arrays that you've got.
FastTrak Driver and Utilities, Continued
The next demonstrates the controller. Again it's only to look, you can't change anything here.
Last but not least comes this one here, but since there's neither a documentation, nor a help function, you will have to guess what settings as 'Engine Rebuild Rate' might mean. All in all this utility is mainly eye candy.
The 'Ultra Tune Utility' is not much more important as well.
It lets you change the amount of time the FastTrak is grabbing the PCI bus for itself. In video playback situations it might be that you encounter frame drops unless you decrease the PCI bus utilization of FastTrak a bit.
Drive Failure in RAID 1 or RAID 0,1 Situations
We have just learned that RAID 1 or mirroring is using half of the hard drives in an array to keep an identical image of your data, thus making your data a lot less sensitive to hard drive failures. Let's see how FastTrak66 handles a failing drive when running a RAID 1 or RAID 0,1 array.
We simulated a hard drive failure by simply pulling the power connector of one drive while the system was running. Here the FastTrak66 showed one major flaw that is due to its IDE support. A SCSI RAID controller wouldn't have this problem.
The failure of one drive in a RAID 1 or RAID 0,1 configuration will in most cases cause the other drive connected to the same channel to fail as well. The reason for this behavior is rather simple. Most drives, es e.g. IBM and WD hard drives, have different jumper settings for 'single drive', 'master drive' and 'slave drive'. If one hard drive of the same channel fails, the other slave or master drive suddenly becomes a 'single drive'. Unfortunately the jumper settings of the drive don't represent that status and so it fails as well. This means that you must run 1:1 mirrors only by connecting each drive to a different IDE channel, because otherwise both drives will fail and you won't get anything out of the mirror-situation.
Here is what happens if one drive fails in a 2:2 RAID 0,1 mirror of stripes configuration:
The monitoring utility reports both drives of this channel as failed. This is not so bad, because FastTrak mirrors across channels, so your data won't be lost. However, both drives need to be rebuild again.
Drive Failure in RAID 1 or RAID 0,1 Situations, Continued
This brings us to the next step of this test. What happens after a drive failure?
Unlike in professional SCSI-RAIDs, FastTrak does not rebuild the drives in the background. It simply disables the mirroring until you reboot the system. Then you get this:
After you did as you were told, you can start rebuilding the mirror in FastTrak's BIOS setup:
Depending on the size of the failed drives it can take quite a while. In this time your system is completely idle and you have to wait until two drives have been rebuilt even if only one drive failed.
All in all you can see that in terms of mirroring, FastTrak66 is not quite up to competing against its much more expensive SCSI-RAID opponents.
RAID 0 - What Performance Gain Can We Expect?
Before I will supply you with the benchmark results of FastTrack66, I would like to take the time and consider our expectations. Even though this RAID-controller might offer high performance, there's always the question if one will benefit from it.
RAID 0 is able to supply a very high data bandwidth. This doesn't have to speed up all of your applications though. The software that benefits most from that is video and photo editing software. Large and highly detailed pictures will load much faster and you can much better tape and edit videos if your mass storage device can handle large data streams. Office applications will only run faster if you are actually using very large files, data base software that accesses smaller portions of data all over the drive will not go much faster. 3D games don't care much about hard drive performance altogether, except for the moments when you store or load large amounts of gaming data, as e.g. when you are loading a new level. This can be important if you are playing a multiplayer game and you want to be the first one in a new level.
Hard drive performance depends on a few things and data bandwidth is only one of them. Seek time and access time is very important as well, particularly when software requires smaller chunks of data spread all over the drive. Under certain conditions a large on-drive cache can improve both, access time as well as data bandwidth.
Benchmarking the FastTrack66
Benchmarking hard drives and producing meaningful results is not that easy. The best example is the comparison of the latest ATA drives from Seagate and IBM. The Barracuda ATA drive can supply up to 28 MB/s while IBM's Deskstar DPTA can't transfer data at a higher speed than 24 MB/s. The access time of both is almost identical. Now most of you would expect that the Barracuda outruns the Deskstar. However, a system with the Deskstar scores 4 points (!!) higher than one with the Barracuda in Sysmark2000.
We used the today most common benchmark for data transfer speed and access time, Winbench99 from Ziff-Davis. The Business and High end Disk Winmarks were used as well, although I have my doubts about their meaningfulness. Then we ran Sysmark2000 to simulate some real world conditions as well.
This article is meant to look at the usefulness of the FastTrak66 as an inexpensive solution of enhancing performance or data security in an average system. That's why I decided to only benchmark under Windows98 for the time being. Windows NT or Windows 2000 offer a built-in software RAID solution, which I consider as just as good but cheaper than the FastTrak. Promise just added a beta Linux driver for FastTrak66 as well and we will have a look at that in the near future.
The Benchmark Setup
for all tests
|NVIDIA GeForce 256
120MHz Core, 300MHz DDR-RAM 32MB
for all tests
|1-4 IBM Deskstar DPTA-372050
for all tests
|Intel Pentium III 1GHz, 133 MHz FSB
for all tests
ACPI BIOS 1005 beta 03, March 2000
currently the fastest Giga-platform
for all tests
|128 MB, Enhanced Memory Systems PC133 HSDRAM CAS2
for all tests
||NVIDIA 4.12.01.0508 pre-release
||Promise FastTrak66 driver rev. 1.14
||Windows 98 SE 4.10.2222 A
Screen Resolution 1024x768x16x85
The tests of a single hard drive were done using a Promise Ultra66 controller.
The Benchmark Results - Transfer Rate of ATA Stripe Sets
Looking at the single drive first shows the typical 'zoning' of a hard drive. In the outer area of the disk there are more sectors per track and so it transfers more data per rotation than in the inner tracks. IBM's Deskstar has obviously got 11 different zones.
The stripe of two hard drives doubles the bandwidth over the whole drive almost exactly, just as we would have expected it. FastTrak66 encounters problems however, once three of four fast drives are used for the array. You can see that only in the inner and slower zones a stripe set of three or four is supplying triple or quadruple the bandwidth. The faster zones are limited however, which is particularly strong in case of the stripe set of four.
The Benchmark Results - Transfer Rate of ATA Stripe Sets, Continued
Here you can see the same in numbers. If you look at the 'ending transfer rate', you will see that the bandwidth is directly proportional to the number of drives in the array. The 'beginning transfer rate' however shows that the stripe of three and four is cut off.
This graph should show how much of the possible bandwidth is indeed cut off by FastTrak66. The stripe of two hard drives delivers exactly as we expect it. The stripe of three loses some 8 MB/s in the first three zones of the hard drives. Striping four fast drives creates a loss of some hefty 20+ MB/s in bandwidth over the first 7 zones though. Only the last 4 zones are represented properly.
This strange behavior is most likely caused by bandwidth problems within FastTrak66. The controller is simply not able to transfer data that fast. The other possible explanation could be the PCI-bus. 133 MB/s are an ideal mark that can only be reached if no other device is using the PCI bus. However, this does not explain the loss in case of the stripe of three, since FastTrak66 is obviously able to transfer more than 61 MB/s once you are using four drives.
The Benchmark Results - Transfer Rate of Spanning
As already said, 'spanning' means that FastTrak66 creates one large drive out of the drives connected to it, by hanging one after the other. With RAID 0 you also get one large drive, but its size is determined by the smallest drive in the array. This is not the case with spanning. There is no reason or sense to use spanning unless the sizes of the hard drives are very different. If the sizes are close or even identical, you should always use striping instead, because it supplies almost or exactly the same capacity as spanning, but a multiple of its bandwidth.
You can nicely see how one drive comes after the other. The performance is exactly the same as the performance of a single drive. The only advantage of spanning is that you don't have to fight with several logical drives in your system, which can often make it difficult to find something. Spanning makes one logical drive out of 2 - 4 physical ones.
The Benchmark Results - Winbench Disk Winmarks
The Disk Winmarks don't show as much of a performance difference between the different stripe configurations as the transfer rate did. This is mainly because data access time comes into play and this value doesn't get improved by RAID 0.
You can see however that mirroring can indeed cost some performance. The Highend Disk Winmark runs quite a bit slower on the 2x2 mirror/stripe than the pure stripe of two.
Looking at the above numbers shows that mirroring indeed shortens the access time. This is because data gets read from the one of the two mirror disks that can supply the data faster. You also see that striping doesn't do much about the access time, as from a single drive over the x2 and x3 to the stripe of four the access time stays almost identical.
FastTrak66's CPU utilization is very low and obviously depending on the amount of data that is transported. It was taken at full load in each of the cases.
The Benchmark Results - BAPCo Sysmark2000
Most office applications simply don't need the huge amounts of transfer speed offered by FastTrack66, but there's at least a tiny improve in scores from one to the next faster array. Excel turned out to be the one program that benefits from the stripe sets most. The increase in Excel scores it not quite as little as tiny as in case of the Sysmark overall score.
The Benchmark Summary
Summarizing the results forces me to point out two things.
- FastTrak66 is not quite able to handle the amount of transfer rate supplied by a stripe of three of four fast hard drives.
- Normal software doesn't benefit much from FastTrak's superior data transfer power.
Special Problem - FDISK on Arrays Larger than 64 GB
Promise does not advise to use any other partitioning software under Win9x than Microsoft's own and super old 'FDISK'. Unfortunately this software reports the drive size of an array modulo 64 GB. This means that FDISK reports arrays larger than 64 GB as the proper size minus 64 GB. However, once you partitioned the array and go into Windows you get the correct size and can fully use it. Thus the only problem is to actually divide such large areas into smaller partitions. With FDISK it's currently impossible to make e.g. two 40 GB partitions out of one 80 GB array. People who want to use the full array as one partition won't have any trouble though. Only FDISK reports the array size wrong. After creating the partition with FDISK you have full access to the complete partition from within Win9x.
FastTrak66 has the following advantages:
- Easy and very inexpensively 'made' out of an Ultra66 controller from Promise.
- Offers a lot of different choices of what to do with older hard drives. You can use those drives with FastTrak instead of throwing them away.
- Superior performance for video and photo editing at a rather low price. Performance freaks should be pleased as well.
- Interesting alternative to backup if used as inexpensive mirror solution. Today another hard drive costs hardly more than a halfway decent backup device. You save the time of the backup process, but data you accidentally erase will be gone forever.
- Tidy way of using old hard drives as one partition by spanning them all with FastTrak66. This way you can use e.g. an old 5 GB, two 8 GB and one 13 GB hard drive and get one 31 GB partition that is much easier to maintain than four logical drives of different sizes.
- It saves one complete interrupt if you use it instead of the onboard IDE-controller.
This is the list of disadvantages:
- Definitely too expensive if officially purchased as FastTrak66.
- Not able to supply full performance if 3 or even 4 fast hard drives are used in a stripe set.
- Mirroring solution not completely convincing. Hot swap is not possible, because the exchanged hard drive does not get rebuilt unless you reboot and wait. If you are using two hard drives for a 1:1 mirror make sure that you always use both channels, since otherwise you might lose all your data if one drive fails. In RAID 0,1 configuration one failing drive leads to two drives that need to be rebuilt, you also don't know which of the two drives at the channel is actually faulty.
- Common applications do not make much use of the vast data bandwidth supplied by the stripe sets. Only people who move or edit large files can really benefit from FastTrak66.
I personally like the FastTrak66 made out of a Promise Ultra66 controller, because it offers a performance that is very impressive at a rather small price. However, this performance may not be required by you. I'd also like to point out that I don't appreciate the high price of the FastTrak66 if you should be honest enough to buy it as such. Promise cannot possibly tell me that the $50-$80 price difference to the technically identical Ultra66 can be justified by high development costs for the RAID-software. The predecessor 'FastTrak33' was using the same software and is available for a long time already. Promise is trying to make big money with a product that doesn't cost them a penny more to produce than the Ultra66.
I suggest that performance hungry people who've got the right soldering iron and who want top notch hard drive performance cannot go too wrong in buying an Ultra66 and modifying it, as long as they realize that they need at least two identical hard drives to make usage of RAID 0. If you are into digital video or photo editing you get excellent performance without the need for SCSI.
I doubt that FastTrak66 is an alternative for servers, even at entry level. The problem with two failing hard drives if only one is broken in a RAID 0,1 array is too annoying.