9 Generic Buyers' Guide

Contents of this section

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.

9.1 Transfer types

The biggest factor affecting performance (in terms of throughput and interactive response time during SCSI I/O) is going to be the transfer type used.

Pure Polled handshaking.

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

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 utilitization and extremely poor responsiveness during SCSI/IO. Slow CDROMs which don't disconnect/reconnect will kill interactive performance with these boards.

Not recommended.

Interlocked Polled handshaking

Boards using interlocked polled I/O are essentially the same as pure polled I/O boards, only the SCSI REQ/ACK signals 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 re 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 dependant 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 CDROMs 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 transfering 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 Barcuda with an Adaptec 1520.

CPU utilization is dependant 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 tollerant of broken devices which don't disconnect/reconnect (typically cheap CSG limit DROM 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 upin 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 queing, 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).

9.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 allways 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 transfering 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.

9.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, and must be modified to take advantage of the features present on newer chips.

9.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 peripherials.

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 aquisition 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 incompatable 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 propperly 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 arround 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 unaccessable. 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 noticably.

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 and poor return policies

EISA ISA VESA PCI

Performance, and typical hobbiest installations

PCI EISA VESA ISA

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.

9.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 very important if you are mixing devices of different speeds, like a tape drive 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, for example. With two disk drives, the problem will not be as noticeable, allthough throughput would approach the average of the two transfer rates rather than the sum of the two transfer rates.

9.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 compatable, with new features being introduced as options and not mandatory. So, the descision to call a SCSI adapter SCSI, SCSI-II, or SCSI-III is almost entirely a marketing one.

9.7 Driver feature comparison

Driver feature comparison (supported chips are listed in parenthesis)


Driver Transfer mode Simultaneous Commands SG >1
total/LUN Limit
aha152x FIFO(8k) Polled 1s/1s 255s
(AIC6260,
AIC6360)
aha1542 Busmastering DMA 8s/1s 16 Y
aha1740 Busmastering DMA 32s 16
aha274x Busmastering DMA 4s/1s 255s Y
buslogic Busmastering DMA Y 64s, 8196h
eata dma Busmastering DMA 64s/16s 64s Y
fdomain FIFO(8k) Polled 1s 64s
TMC1800 except TMC18c30
TMC18c30, with 2k FIFO
TMC18c50,
TMC36c70
in2000* FIFO(2k) Polled 1s 255s
g NCR5380 Pure Polled 16s/2s 255s Y
(NCR5380,
NCR53c80,
NCR5381,
NCR53c400)
gsi8* Slave DMA 16s/2s 255s
(NCR5380)
PAS16 Pure Polled or 16s/2s 255s Y
(NCR5380) Interlocked Polled
(fails on some systems!)
seagate Interlocked Polled 1s 255s N
wd7000 Busmastering DMA 8s 1
t128 Interlocked Polled 16s 255s Y
(NCR5380)
ultrastor Busmastering DMA Y
53c7,8xx Busmastering DMA 1s/1s 255s Y
(NCR53c810)

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.

9.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 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
Always IN2000 in2000 ISA
Buslogic 445S aha1542, VLB $250 FAST SCSI-II, active
buslogic termination, w/FDC
Buslogic 747S aha1542 EISA FAST SCSI-II, active
buslogic termination, w/FDC
Buslogic 946S buslogic PCI FAST SCSI-II, active
termination.
DPT PM2011 eata dma ISA FAST SCSI-II
DPT PM2012A eata dma EISA FAST SCSI-II
DPT PM2012B eata dma EISA FAST SCSI-II
DPT PM2021 eata dma ISA $245 FAST SCSI-II
DPT PM2022 eata dma EISA $449 FAST SCSI-II
active termination
DPT PM2024 eata dma PCI $395 FAST SCSI-II
active termination
DPT PM2122 eata dma EISA $595 FAST SCSI-II
active termination
DPT PM2124 eata dma PCI $595 FAST SCSI-II
active termination
DPT PM2322 eata dma EISA FAST SCSI-II
active termination
DPT PM3021 eata dma ISA $1595 FAST SCSI-II
multichannel
raid/simm sockets
active termination
DPT PM3122 eata dma EISA $1795 FAST SCSI-II
multichannel/raid
active termination


DPT PM3222 eata dma EISA $1795 FAST SCSI-II
multichannel
raid/simm sockets
active termination
DPT PM3224 eata dma PCI $1995 FAST SCSI-II
multichannel
raid/simm sockets
active termination
DPT DTC 3 aha1542 EISA Although it should work,
due to documentation
release polcies, DTC
hardware is unsupported
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 $70 +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 $115 NCR53c810 plus
Intel PCISCSIKIT, bios
NCR8150S, etc)
NCR53c825 53c7,8xx PCI 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 IOS 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-existant at this time.
  3. Various Buslogic boards other than the 545S, 445S, 747S, and 946S _should_ work, although to my knowledge have not been tried.
  4. The $70 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. If you can't find one at that price, try Technoland at 1-800-292-4500 or 1-408-992-0888 if you live in California, InteliSys at (703)385-0347, Superpower 1 (800) 736-0007, SW (swt@netcom.com) 214-907-0871 fax 214-907-9339 Insight Electronics at 1-609-985-5556 stocks NCR8150S '815 boards for $115 if you don't have a NCR SDMS BIOS in your main ROM.
  5. 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. 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 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.
  6. All given prices for the DPT controllers are official list prices. Street prices should be considerably lower. All boards can be upgraded with chache and raid modules, most of the boards are also available in Wide and/or Differential versions.

9.9 Summary

Most ISA, EISA, and VESA users will probably be served best by a Buslogic board, due to its performance, features such as active termination, and Adaptec 1540 compatability. 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.

People with PCI systems should consider NCR53c810 based boards. These are bus mastering SCSI controllers, available in Q1 for about $70 (ie, cheaper than the Adaptec 1520) with larger quantities being cheaper (I've seen $62 in Q20). In addition to being the cheapest PCI SCSI boards, the NCR boards were also benchmarked as faster than the Adaptec 2940 and Buslogic BT-946, and demonstrate excellent performance under Linux (up to 4M/sec through the file system ) inspite of the performance optomizations being disabled in the current driver. The disadvantages of these boards versus the Buslogics are that they aren't Adaptec 1540 compatable, don't come with active termination, and to my knowledge are only supported under DOS+Windows, OS/2, Windows NT, SCO, NeXTstep, and Free BSD. Currently, the Linux driver appears quite stable on most systems (We've moved several gigabytes of data to NCR based devices with no problems), surprisingly fast (I've seen 4M/sec through the filesystem) and will eventually become more featureful. On the downside, the current Linux driver implementation doesn't support disconnect/reconnect, so you will be unable to access your SCSI disks if rewinding,retensioning,etc. SCSI tapes at the same time.

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 Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter