Previous Next Contents

10. Buyers' Guide

A frequent question is:

"Linux supports quite a number of different boards, so which scsi host adapter should I get."

The answer depends upon how much performance you expect or need, motherboard, and the scsi peripherals that you plan on attaching to your machine.

10.1 Transfer types

The biggest factor affecting performance (in terms of throughput and interactive response time during SCSI I/O) is the transfer type used. The table below lists the various transfer types, the effects they have on performance, and some recommendations as to their use.

Transfer type

Description / Performance / Recommendations

Pure Polled

A pure polled I/O board will use the CPU to handle all of the SCSI processing, including the REQ/ACK handshaking.

Even a fast CPU will be slower handling the REQ/ACK handshake sequence than a simple finite state machine, resulting in peak transfer rates of about 150K/sec on a fast machine, perhaps 60K/sec on a slow machine (through the filesystem).

The driver also must sit in a tight loop as long as the SCSI bus is busy, resulting in near 100% CPU utilization and extremely poor responsiveness during SCSI I/O. Slow CDROMs which don't disconnect/reconnect will kill interactive performance with these boards.

Not recommended.

Interlocked Polled

Boards using interlocked polled I/O are essentially the same as pure polled I/O boards, only the SCSI REQ/ACK handshaking signals are interlocked with the PC bus handshaking signals. All SCSI processing beyond the handshaking is handled by the CPU.

Peak transfer rates of 500-600K/sec through the filesystem are possible on these boards.

As with pure polled I/O boards, the driver must sit in a tight loop as long as the SCSI bus is busy, resulting in CPU utilization dependent on the transfer rates of the devices, and when they disconnect/reconnect. CPU utilization may vary between 25% for single speed CDs which handle disconnect/reconnect properly to 100% for faster drives or broken CD ROMs which fail to disconnect/reconnect.

On my 486-66, with a T128, I use 90% of my CPU time to sustain a throughput of 547K/sec on a drive with a headrate of 1080K/sec with a T128 board.

Sometimes acceptable for slow tapes and CDROMs when low cost is essential.

FIFO Polled

Boards using FIFO polled I/O put a small (typically 8K) buffer between the CPU and the SCSI bus, and often implement some amount of intelligence. The net effect is that the CPU is only tied up when it is transferring data at top speed to the FIFO and when it's handling the rest of the interrupt processing for FIFO empty conditions, disconnect/reconnect, etc.

Peak transfer rates should be sufficient to handle most SCSI devices, and have been measured at up to 4M/sec using raw SCSI commands to read 64K blocks on a fast Seagate Baracuda with an Adaptec 1520.

CPU utilization is dependent on the transfer rates of the devices, with faster devices generating more interrupts per unit time which require more CPU processing time. Although CPU usage may be high (perhaps 75%) with fast devices, the system usually remains usable. These boards will provide excellent interactive performance with broken devices which don't disconnect/reconnect (typically cheap CDROM drives)

Recommended for persons on a budget.

Slave DMA

Drivers for boards using slave DMA program the PC's DMA controller for a channel when they do a data transfer, and return control to the CPU.

Peak transfer rates are usually handicapped by the poor DMA controller used on PCs, with one such 8-bit board having problems going faster than 140-150K/sec with one mainboard.

CPU utilization is very reasonable, slightly less than what is seen with FIFO polled I/O boards. These boards are very tolerant of broken devices which don't disconnect/reconnect (typically cheap CSG limitDROM drives).

Acceptable for slow CDROM drives, tapes, etc.

Busmastering DMA

These boards are intelligent. Drivers for these boards throw a SCSI command, the destination target and lun, and where the data should end up in a structure, and tell the board "Hey, I have a command for you." The driver returns control to various running programs, and eventually the SCSI board gets back and says that it's done.

Since the intelligence is in the host adapter firmware and not the driver, drivers for these boards typically support more features - synchronous transfers, tagged queuing, etc.

With the clustered read/write patches, peak transfer rates through the file system approach 100% of head rate writing, 75% reading.

CPU utilization is minimal, irregardless of I/O load, with a measured 5% CPU usage while accessing a double speed CDROM on an Adaptec 1540 and 20% while sustaining a 1.2M/sec transfer rate on a SCSI disk.

Recommended in all cases where money is not extremely tight, the main board is not broken (some broken main boards do not work with bus masters), and applications where time to data is more important than throughput are not being run (bus master overhead may hit 3-4ms per command).

10.2 Scatter/gather

The second most important driver/hardware feature with respect to performance is support for scatter/gather I/O. The overhead of executing a SCSI command is significant - on the order of milliseconds. Intelligent bus masters like the Adaptec 1540 may take 3-4ms to process a SCSI command before the target even sees it. On unbuffered devices, this overhead is always enough to slip a revolution, resulting in a transfer rate of about 60K/sec (assuming a 3600RPM drive) per block transfered at a time. So, to maximize performance, it is necessary to minimize the number of SCSI commands needed to transfer a given amount of data by transferring more data per command. Due to the design of the Linux buffer cache, contiguous disk blocks are not contiguous in memory. With the clustered read/write patches, 4K worth of buffers are contiguous. So, the maximum amount of data which can be transfered per SCSI command is going to be 1K * # of scatter/gather regions without the clustered read/write patches, 4K * # of regions with. Experimentally, we've determined that 64K is a reasonable amount to transfer with a single SCSI command - meaning 64 scatter/gather buffers with clustered read/write patches, 16 without. With the change from 16K to 64K transfers, we saw an improvement from 50% of headrate, through the filesystem, reading and writing, to 75% and 100% respectively using an Adaptec 1540 series board.

10.3 Mailbox vs. non-mailbox

A number of intelligent host adapters, such as the Ultrastor, WD7000, Adaptec 1540, 1740, and BusLogic boards have used a mailbox-metaphor interface, where SCSI commands are executed by putting a SCSI command structure in a fixed memory location (mailbox), signaling the board (ie, raising the outgoing mail flag), and waiting for a return (incoming mail). With this high level programming interface, users can often upgrade to a newer board revision to take advantage of new features, such as FAST + WIDE SCSI, without software changes. Drivers tend to be simpler to implement, may implement a larger feature set, and may be more stable.

Other intelligent host adapters, such as the NCR53c7/8xx family, and Adaptec AIC-7770/7870 chips (including the 274x, 284x, and 2940 boards) use a lower level programming interface. This may prove faster since processing can be shifted between the board's processor and faster host CPU, allow better flexibility in implementing certain features (ie, target mode for arbitrary devices), and these boards can be built for less money (In some cases, this is passed on to the consumer (ie, most NCR boards)). On the down side, drivers tend to be more complex (read : there is more potential for bugs), and must be modified to take advantage of the features present on newer chips.

10.4 Bus types

Bus type is the next thing to consider, with choices including ISA, EISA, VESA, and PCI. Marketing types often spout of absurd bandwidth numbers based on burst transfer rates and fiction, which isn't very useful. Instead, I've chosen to state "real-world" numbers based on measured performance with various peripherals.

Bus

Bandwidth, description,

ISA

Bandwidth is slightly better than 5M/sec for busmastering devices. With an ISA bus, arbitration for busmasters is performed by the venerable 8237 third party DMA controller, resulting in relatively high bus acquisition times. Interrupt drivers are tri-state and edge triggered, meaning interrupts cannot be shared. Generally, ISA is unbuffered, meaning the host/memory bus is tied up whenever a transfer is occuring. No mechanism is provided to prevent bus-hogging.

VESA

Bandwidth is about 30M/sec. Some VESA systems run the bus out of spec, rendering them incompatible with some boards, so this should be taken into consideration before purchasing hardware without a return guarantee. Generally, VESA is unbuffered, meaning meaning the host/memory bus is tied up whenever a transfer is occuring.

EISA

Bandwidth is about 30M/sec, with busmastering operations generally being faster than VESA. Some EISA systems buffer the bus, allowing burst transfers to the faster host/memory bus and minimizing impact on CPU performance. EISA interrupt drivers may be either tri-state edge-triggered or open collector level-active, allowing interrupt sharing with drivers that support it. Since EISA allocates a separate address space for each board, it is usually less prone to resource conflicts than ISA or VESA.

PCI

Bandwidth is about 60M/sec. Most PCI systems implement write posting buffers on the host bridge, allowing speed mismatches on either side to have a minimum impact on bus/CPU performance. PCI interrupt drivers are open collector level-active, allowing interrupt sharing with drivers that support it. Mechanisms are provided to prevent bus hogging, and for both master and slave to suspend a bus-mastering operation.

Since PCI provides a plug-n-play mechanism with writeable configuration registers on every board, in a separate address space, a properly implemented PCI system is plug-and play.

PCI is extremely strict as to trace length, loading, mechanical specifications, etc. and ultimately should be more reliable than VESA or ISA.

In summary, PCI is the best PC bus, although it does have its dark side. PCI is still in its infancy, and although most manufacturers have ironed out the problems, there is still stock of older, buggy PCI hardware and broken main BIOSes. For this reason, I _strongly_ recommend a return guarantee on the hardware. While the latest PCI mainboards are truly plug-and-play, older PCI boards may require the user to set options with both jumpers and in software (ie, interrupt assignments). Although many users have resolved their PCI problems, it has taken time and for this reason I cannot recommend a PCI purchase if having the system operational is extremely time critical.

For many slower SCSI devices, such as disks with head rates around 2M/sec or less, CDROMs, and tapes, there will be little difference in throughputs with the different PC bus interfaces. For faster contemporary SCSI drives (Typical high end multi-gigabyte drives have a head rate of 4-5M/sec, and at least one company is currently ALPHA testing a parallel head unit with a 14M/sec head rate), throughput will often be significantly better with controllers on faster busses, with one user noting a 2.5 fold performance improvement when going from an Adaptec 1542 ISA board to a NCR53c810 PCI board.

With the exception of situations where PCI write-posting or a similar write-buffering mechanism is being used, when one of the busses in your system is busy, all of the busses will be unaccessible. So, although bus saturation may not be interfering with SCSI performance, it may have a negative effect on interactive performance. Ie, if you have a 4M/sec SCSI disk under ISA, you'll have lost 80% of your bandwidth, and in an ISA/VESA system would only be able to bitblt at 6M/sec. In most cases, a similar impact on processing jobs in the background would also be felt.

Note that having over 16M of memory does not preclude using an ISA busmastering SCSI board. Unlike various broken operating systems, Linux will double buffer when using a DMA with an ISA controller and a transfer is ultimately destined for an area above 16M. Performance on these transfers only suffers by about 1.5%, ie not noticeably.

Finally, the price difference between bus masters offered with the different bus interfaces is often minimal.

With all that in mind, based on your priorities you will have certain bus preferences

Stability, time critical installations,         EISA ISA VESA PCI
            and poor return policies
Performance, and typical hobbiest               PCI EISA VESA ISA
            installations

As I pointed out earlier, bus mastering versus other transfer modes is going to have a bigger impact on total system performance, and should be considered more important than bus type when purchasing a SCSI controller.

10.5 Multiple devices

If will you have multiple devices on your SCSI bus, you may want to see whether the host adapter/driver that you are considering supports more than one outstanding command at one time. This is almost essential if you'll be running a tape drive, and very desirable if you are mixing devices of different speeds, like a CD ROM and a disk drive. If the linux driver only supports one outstanding command, you may be locked out of your disk drive while a tape in the tape drive is rewinding or seeking to end of media (perhaps for half an hour). With two disk drives, the problem will not be as noticeable, although throughput would approach the average of the two transfer rates rather than the sum of the two transfer rates.

10.6 SCSI-I, SCSI-II, SCSI-III FAST and WIDE options, etc.

Over the years, SCSI has evolved, with new revisions of the standard introducing higher transfer rates, methods to increase throughput, standardized commands for new devices, and new commands for previously supported devices.

In and of themselves, the revision levels don't really mean anything. Excepting minor things like SCSI-II not allowing the single initiator option of SCSI-I, SCSI is backwards compatible, with new features being introduced as options and not mandatory. So, the decision to call a SCSI adapter SCSI, SCSI-II, or SCSI-III is almost entirely a marketing one.

10.7 Driver feature comparison

Driver feature comparison (supported chips are listed in parenthesis)

Driver                                  Simultaneous    SG              > 1 
                Transfer mode           Commands        limit           Boards
                                        total/LUN
AM53C974        Busmastering DMA        12s/1s          255s            Y
aha152x         FIFO(8k) Polled         7s/1s           255s            N
    (AIC6260,
    AIC6360)
aha1542         Busmastering DMA        8s/1s           16              Y
aha1740         Busmastering DMA        32s             16              N
aha274x         Busmastering DMA        4s/1s           255s            Y
BusLogic        Busmastering DMA        192/31          128s, 8192h     Y
(values are for BT-948/958/958D, older boards support fewer commands)
eata_dma        Busmastering DMA        64s-8192h/2-64  512s, 8192h     Y
fdomain         FIFO(8k) Polled         1s              64s             N
    (TMC1800,   except TMC18c30
    TMC18c30,   with 2k FIFO
    TMC18c50,
    TMC36c70)

in2000*         FIFO(2k) Polled         1s              255s            N
g_NCR5380       Pure Polled             16s/2s          255s            Y
    (NCR5380,
    NCR53c80,
    NCR5381, 
    NCR53c400)
gsi8*           Slave DMA               16s/2s          255s
    (NCR5380)
PAS16           Pure Polled             16s/2s          255s            Y
    (NCR5380)   or Interlocked Polled
                (fails on some systems!)
seagate         Interlocked Polled      1s/1s           255s            N
wd7000          Busmastering DMA        16s/1s          16              Y
t128            Interlocked Polled      16s             255s            Y
    (NCR5380)
qlogic          Interlocked Polled      1s/1s           255s            N
ultrastor       Busmastering DMA        16s/2s          32              Y
53c7,8xx        Busmastering DMA        
    (NCR53c810,
     NCR53c815,
     NCR53c820,
     NCR53c825)
    rel5                                1s/1s           127s            N
    rel10                               8s/1s           127s            Y

Notes :

  1. drivers flagged with an '*' are not included with the distribution kernel, and binary boot images may be unavailable.
  2. numbers suffixed with an 's' are arbitrary limits set in software which may be changed with a compile time define.
  3. hardware limits are indicated by an 'h' suffix, and may differ from the software limits currently imposed by the Linux drivers.
  4. unsuffixed numbers may indicate either hard or soft limits.
  5. rel5 of the NCR53c810 driver is included in the stock 1.2.x and 1.3.x kernels; rel10 is available via anonymous FTP.
  6. With the exception of the AM53C974, the busmastering DMA boards are intelligent; with the NCR executing microcode from main memory, the AIC7770 executing microcode from on-chip RAM, and the rest using a mailbox-style interface.

10.8 Board comparison

Board                   Driver          Bus     Price   Notes
Adaptec AIC-6260        aha152x         ISA             chip, not board
Adaptec AIC-6360        aha152x         VLB             chip, not board
    (Used in most 
    VESA/ISA multi-IO
    boards with SCSI,
    Zenon mainboards)
Adaptec 1520            aha152x         ISA              
Adaptec 1522            aha152x         ISA     $80     1520 w/FDC
Adaptec 1510            aha152x         ISA             1520 w/out boot ROM,
                                                        won't autoprobe.
Adaptec 1540C           aha1542         ISA             
Adaptec 1542C           aha1542         ISA             1540C w/FDC
Adaptec 1540CF          aha1542         ISA             FAST SCSI-II
Adaptec 1542CF          aha1542         ISA     $200    1540CF w/FDC
Adaptec 1640            aha1542         MCA             

Adaptec 1740            aha1740         EISA            discontinued
Adaptec 1742            aha1740         EISA            discontinued, 1740 
                                                        w/FDC
Adaptec 2740            aha274x         EISA
Adaptec 2742            aha274x         EISA            w/FDC
Adaptec 2840            aha274x         VLB
Adaptec 2842            aha274x         VLB             w/FDC
Adaptec 2940            aha274x         PCI             
Always IN2000           in2000          ISA
BusLogic BT-948         BusLogic        PCI     $180    Ultra SCSI
BusLogic BT-958         BusLogic        PCI     $230    Wide Ultra SCSI
(see the section BusLogic MultiMaster Host Adapters for additional BusLogic board descriptions)
DPT     PM2011          eata_dma        ISA             FAST SCSI-II
        PM2012A         eata_dma        EISA            FAST SCSI-II
        PM2012B         eata_dma        EISA            FAST SCSI-II
        PM2021          eata_dma        ISA             FAST SCSI-II
        PM2022          eata_dma        EISA            FAST SCSI-II
        PM2024          eata_dma        PCI             FAST SCSI-II  
        PM2122          eata_dma        EISA            FAST SCSI-II
        PM2322          eata_dma        EISA            FAST SCSI-II
        PM2124          eata_dma        PCI             FAST SCSI-II
        PM2124          eata_dma        PCI             FAST SCSI-II
        PM2124          eata_dma        PCI             FAST SCSI-II
        PM2124          eata_dma        PCI             FAST SCSI-II
        PM2124          eata_dma        PCI             FAST SCSI-II
        PM2124          eata_dma        PCI             FAST SCSI-II
        PM2041W         eata_dma        ISA             Wide Single-ended 
                                                        SCSI-II
        PM2041UW        eata_dma        ISA             Ultra Wide Single-ended
        PM2042W         eata_dma        EISA            Wide Single-ended 
        PM2042UW        eata_dma        EISA            Ultra Wide Single-ended
        PM2044W         eata_dma        PCI             Wide Single-ended 
        PM2044UW        eata_dma        PCI             Ultra Wide Single-ended
        PM2142W         eata_dma        EISA            Wide Single-ended
        PM2142UW        eata_dma        EISA            Ultra Wide Single-ended
        PM2144W         eata_dma        PCI             Wide Single-ended 
        PM2144UW        eata_dma        PCI             Ultra Wide Single-ended
        PM3021          eata_dma        ISA             multichannel
                                                        raid/simm sockets 
        PM3122          eata_dma        EISA            multichannel/raid
        PM3222          eata_dma        EISA            multichannel
                                                        raid/simm sockets 
        PM3224          eata_dma        PCI             multichannel
                                                        raid/simm sockets 
        PM3334          eata_dma        PCI             Wide Ultra SCSI
                                                        multichannel
                                                        raid/simm sockets 

DTC 3290                aha1542         EISA            Although it should work,
                                                        due to documentation
                                                        release polcies, DTC
                                                        hardware is unsupported
DTC 3130                53c7,8xx        PCI             '810
DTC 3130B               53c7,8xx        PCI             '815
DTC 3292                aha1542         EISA            3290 w/FDC
DTC 3292                aha1542         EISA            3290 w/FDC
Future Domain 1680      fdomain         ISA             FDC
Future Domain 3260      fdomain         PCI
NCR53c810 (boards sold 53c7,8xx         PCI     $60     chip, not board. Boards
    by FIC, Chaintech,                          (board) don't include
    Nextor, Gigabyte, etc.                              BIOS, although most
    Mainboards with chip by                             non-NCR equipped main
    AMI, ASUS, J-Bond,                                  boards have the SDMS
    etc. Common in DEC                                  BIOS
    PCI systems)
NCR53c815 (            53c7,8xx         PCI     $100    NCR53c810 plus 
    Intel PCISCSIKIT,                                   bios
    NCR8150S, etc)
NCR53c825              53c7,8xx         PCI     $120    Wide variant of 
                                                        NCR53c815.  Note that
                                                        the current Linux 
                                                        driver does not 
                                                        negotiate for wide
                                                        transfers.
Pro Audio Spectrum 16   pas16           ISA             Sound board w/SCSI
Seagate ST01            seagate         ISA     $20     BIOS only works with
                                                        some drives
Seagate ST02            seagate         ISA     $40     ST01 w/FDC
Sound Blaster 16 SCSI   aha152x         ISA             Sound board w/SCSI
Western Digital 7000    wd7000          ISA             w/FDC
Trantor T128            t128            ISA             
Trantor T128F           t128            ISA             T128 w/FDC and 
                                                        support for high IRQs
Trantor T130B           g_NCR5380       ISA             
Ultrastor 14F           ultrastor       ISA             w/FDC
Ultrastor 24F           ultrastor       EISA            w/FDC
Ultrastor 34F           ultrastor       VLB 

Notes :

  1. Trantor was recently purchased by Adaptec, and some products are being sold under the Adaptec name.
  2. Ultrastor recently filed for Chapter 11 Bankruptcy, so technical support is non-existent at this time.
  3. The price for the busmastering NCR53c810 boards is not a typo, includes the standard ASPI/CAM driver package for DOS, OS/2 and Windows (32 bit access), and other drivers are available for free download. Some people have had luck with the following companies :
    SW (swt@netcom.com) (214) 907-0871 fax (214) 907-9339
    
    As of 23 Dec 1995, their price was $53 on '810 boards.
  4. Adaptec's recent SCSI chips show an unusual sensitivity to cabling and termination problems. For this reason, I cannot recommend the Adaptec 154x C and CF revisions or the 2xxx series. Note that the reliability problems do not apply to the older 154x B revision boards, 174x A revision boards, or to my knowledge AIC-6360/AIC-6260 based boards (1505, 1510, 1520, etc). Also, the quality of their technical support has slipped markedly, with long delays becoming more common, and their employees being ignorant (suggesting there were non-disclosure policies affecting certain literature when there were none), and hostile (ie, refusing to pass questions on to some one else when they couldn't answer them). If users desire handholding, or wish to make a political statement, they should take this point into consideration. Otherwise, the Adaptec 152x/1510/1505 are nicer than the other ISA boards in the same price range, and there are some excellent deals on used and surplus 154x B revision boards and 1742 boards which IMHO outweigh the support problems.
  5. All DPT boards can be upgraded with cache and raid modules, most of the boards are also available in Wide and/or Differential versions.
  6. The various NCR boards are not entirely equivalent. Ie, while the ASUS SC200 uses active termination, many other NCR53c810 boards use passive termination. Most '825 boards use active termination, but some use a ROM for BIOS and others have a FLASH ROM. Most '825 boards have a WIDE external connector, WIDE internal connector, and narrow internal connector, although a few (ie, CSC's less expensive model) lack the narrow internal connector.

10.9 Summary

Most ISA, EISA, VESA, and PCI users will probably be served best by a BusLogic MultiMaster board, due to its performance, features such as active termination, and Adaptec 1540 compatibility. There are a number of models available with EISA, ISA, PCI, and VESA local bus interfaces, in single ended and differential, and 8/16 bit SCSI bus widths. The most recent Ultra SCSI PCI models, the BT-948/958/958D, also include Flash ROM for easy firmware updates, as well as automatic "smart" termination.

People with the need for the highest possible IO performance at their fingertips should consider the boards from DPT, which are the only ones that support RAID, caching and more than one SCSI channel.

People with PCI systems should consider NCR53c8xx based boards. These are bus mastering SCSI controllers, '810s are available quantity one for $53 (ie, cheaper than the Adaptec 1520). C't magazine benchmarked the boards as faster than both the Adaptec 2940 and BusLogic BT-946C (under DOS), and they get reasonable performance under Linux (up to 6M/sec through the file system ). The disadvantages of these boards versus the BusLogics are that they aren't Adaptec 1540 compatible, may or may not come with active termination, you'll need the latest driver revision (standard in 1.3.5x, also available via anonymous FTP for 1.2.x) to make full use of the hardware, and are more likely to have problems than with a mailbox interface board like a BusLogic or DPT.

Where everything working right on the first try is imperative, a BusLogic MultiMaster or DPT board is probably optimal due to the complexity and potential for problems in non-mailbox interface boards like the NCR53c8xx and Adaptec AIC7xxx .

People wanting non-PCI SCSI on a limited budget will probably be happiest finding a surplus or used Adaptec 154x B revision or 174x A revision, or an Adaptec 1520 clone of some sort (about $80) if they want new hardware. These boards offer reasonable throughput and interactive performance at a modest price.


Previous Next Contents