Using off-the-shelf PC hardware for Open Systems

Luke Mewburn
Department of Computer Science, RMIT
<lukem@cs.rmit.edu.au>

Copyright © 1997 Luke Mewburn. All rights reserved.

Abstract

With the availability of cheap and fast PC components, many people want to build an Open Systems machine from this Pandora's box of parts. This paper attempts to outline how to build a reliable Open System from PC components, based on the author's experiences.

1. Introduction

In recent years, the performance of medium to high-end PC based hardware has been comparable to, if not in excess of, that of low-end workstations. However, choosing PC hardware of sufficient quality and reliability, especially given the diversity of products, is not an easy task.

Whilst a lot of Open Systems competent people have a lot of experience with workstation hardware, deciphering the twisty maze of marketing (mis-?)information in the PC industry to obtain a machine to meet your requirements can be difficult.

The three most common choices of hardware to purchase are:

This paper outlines various ideas that could be used to build a reliable Open Systems machine using PC hardware, based on direct experiences of the author, as well as research into other people's experiences. It does not cover using name brand hardware, and you're on your own if you just want to use PCs purchased from your local Cheap-n-Nasty-PCs-R-Us.

1.1 Disclaimers

I have no affiliation with any vendor mentioned, except as a satisfied or disgruntled customer (which can be determined by the context of the reference :)

All trademarks are the property of their respective owners.

This information is relevant as of August 1997.

1.2 Revision control

Document Ref: $Id: index.html,v 1.5 1999/06/06 16:14:08 lukem Exp $

2. Design Goals

When choosing equipment, the adage `fast, reliable, cheap - pick any two' is quite relevant. My focus will be on (in descending order): reliability, performance, cost. A slower reliable machine is more usable than an unstable speed demon.

2.1 Reliability

The reliability of the system is affected by a variety of elements:

Ensure that your target platform supports the various components that you're investigating. This information is usually found in the "Compatibility Guide" (or equivalent) for your operating system.

It can be useful to peruse on-line forums relevant to the target OS such as newsgroups, mailing lists, and the relevant FAQs; however be prepared to accept such information with a grain of salt - there's often multiple opinions, some or all of which may be incorrect.

Avoid bleeding edge technology, or esoteric/custom solutions that require driver support. Usually support for "UNIX" is just for an old version of SCO. The PC industry is starting to get a clue on using decent documented standards (PCI, SCSI), so use products with that meet them.

2.2 Performance

There are multiple factors which affect the overall performance of the system. In general, it is wiser to invest in a faster I/O system, as the cost of the CPU is usually the fastest item to devalue (and therefore, cheapest to upgrade in the medium term).

A method used by some people to obtain more performance is to overclock parts of their system - usually the CPU, memory, or PCI bus. I strongly recommend against this! In general, this results in a (marginal) increase in performance, for a reduction in reliability.

3. Component breakdown

Each major component of the system is covered below, with an outline of what to look for.

3.1 Motherboard

The motherboard is the most important part of the PC, and the most neglected when people build a system. Its interaction with the other core components (CPU and memory) should also be taken into consideration.

Features to look for in a motherboard:

ASUS Technologies manufacture very good boards. Good choices for Pentium motherboards include: P55T2P4, P55T2P4S (as the P55T2P4, but with Adaptec SCSI on board), and the XP55T2P4 (ATX form-factor P55T2P4).

ATX is a new standard form-factor being developed. It defines the locations of the mounting points, and the power supply connecter is better than that used on the common "standard" board. ATX power supplies also supply 3.3V as well as 5V and 12V, resulting in a cooler motherboard. (Most newer CPUs use 3.3V (or lower), and current motherboards have a 5.0V to 3.3V regulator with a heatsink, which generates more heat. These regulators will either be linear which dissipate lots of heat, or switching, which use coils and dissipate less heat).

Plug-and-play ("Plug-n-pray") is the PC industry's attempt to do what most workstation vendors have gotten right for years. It is only relevant for ISA cards. I'm not convinced it works properly, and my preference is to "lock down" resource settings of hardware (IRQs, DMA channels, memory buffers) to known values to assist in installation, debugging and support.

The expansion card interface on a PC is one of: ISA, EISA, MCA, VLB or PCI. The only ones to bother with are PCI, which is a high performance documented standard, and ISA, which is low performance but still useful for items such as serial/parallel/floppy controllers and sound cards.

3.2 CPU

The choice of CPU depends upon estimated workload requirements.

A CPU with a clock based on a 33MHz divisor (133MHz, 166MHz, or 200MHz) is a better choice than those with a 30MHz divisor (120MHz, 150MHz, or 180MHz). This is because the CPU to memory interface, and the PCI bus run ten percent faster.

Avoid motherboards that claim to support a 75MHz CPU to memory bus; this isn't supported by the PCI standard, and synchronisation problems with the PCI bus have been known to occur.

When choosing between Intel and other vendor's CPUs, take into account the actual pin footprint and memory bus width of the chip. The other vendor's nomenclature often refers to approximate performance relative to the Intel offering, not the actual pin layout (e.g, the Cyrix 5x86 fits in an Intel i486 socket, not a Pentium socket). Also be aware of any software compatibility issues with the non-Intel CPUs.

If Intel is your choice, the 200MHz Pentium (referred to as the "P5-200" in some literature) currently has the best bang/buck. The MMX version of this chip is nearly twice the price, offering a slightly larger on-board cache and a new set of instructions which generally are of little use to Open Systems users.

If performance is what you need, the 200MHz Pentium Pro ("P6-200"). The Pentium II's are still "bleeding edge", and it is debatable as to whether they're appreciably faster than a Pentium Pro, and they cost a lot more.

3.3 Cache

Whilst the current CPUs all come with on-board level 1 ("L1") cache, sized between 8K and 64K, a reasonable sized level 2 ("L2") cache is also mandatory. Various types of L2 cache are available, but currently a "pipeline burst SRAM cache" of at least 512K in size is the preferred solution. A separate L2 cache isn't necessary for the Pentium Pro CPU, since it has an on-board 256K L2 cache.

3.4 Memory

The final core component is the core (memory that is). Good quality memory with an advertised warranty is a must, rather than using the cheapest no-name brand.

If the motherboard supports ECC (Error Check/Correction) via parity SIMMs, then parity memory should be purchased for the enhanced reliability. Pentium motherboards based on Intel's 430HX chipset should support this (q.v.).

Over the last couple of years a lot of press has been given to EDO memory. Whilst this (and similar technologies) may give up to 5% more performance, parity EDO memory is generally not available. Therefore, for reliability reasons, choose parity memory to obtain the benefit of ECC over the slight performance gain of EDO. Ensure that the RAM supports true parity, as opposed to logic-generated parity.

Unless you have no choice, don't initially fill all your memory slots; you will want to upgrade in the future, and having a lot smaller SIMMs may be a bad investment. A lot of people have stockpiles of 1MB 30-pin SIMMs because of this, and I believe that 4MB or 8MB 72-pin SIMMs will fall into this category in the future.

The required speed of the memory can usually be found in the documentation for the motherboard, but in general, a CPU with a 33MHz clock divisor requires 60ns memory or faster.

Recently support for 168pin SIMMs has become available. Even though some motherboards can support both 72pin and 168pin SIMMs, it is not recommended to use both at the same time, as the life of the 168pin SIMMs may be degraded by this.

3.5 Video card

Depending upon your requirements, the machine will either need a low end video card just for 80x24 text consoles (a server), or a card suitable for medium to high-end graphics display.

The bus interface of the card may be either PCI or ISA. PCI is required for any form of performance, and cheap PCI cards are available that may be used for a text console. ISA cards are only suitable for text consoles.

There are many card vendors to choose from, as well as combinations of various graphics processor (GPU) and RAMDAC vendors. In general, avoid unknown clone brands, unless you are confident of support for the specific GPU and RAMDAC on the card.

The most common (and thus supported) GPU vendor is "S3". They have a large range of GPUs, but the current chips are the S3-968 (uses VRAM - q.v.), and the cheaper Trio-64V (which uses DRAM). Various RAMDACs exist, but most current S3 cards from well known card vendors should be supported, including Diamond, Hercules, and Number Nine.

Recently, the Matrox Millennium has taken the field as the high- performance bang/buck card. Support for this card is available in most OSes, and recently support was added in XFree86 (X11R6 for PC based UNIXes). The graphics performance of this card is very good, and far surpasses that of most workstations. However, watch out for the "OEM" version of this card, which has a slower RAMDAC (175MHz vs 220MHz) and therefore cannot support the higher refresh rates (q.v.) that you may wish to use. The Millennium II has recently been released but doesn't offer any significant performance enhancements for 2D operations.

The type of memory on the video card affects its performance and the price. DRAM is cheap, but low performing and tends to max out at medium refresh rates and resolutions. It is suitable, however, for text consoles or low resolution systems. VRAM is the fastest video memory, and is necessary for high refresh rates and resolutions. Matrox cards use WRAM, which appears to be a custom DRAM arranged for higher performance (comparable to VRAM).

The size of the video RAM limits the maximum resolution and colour depth that is supported. Not all OSes can support all the combinations of resolution/colour depth. The following table outlines the general resolution/colour depth available (assuming a card can drive the resolution):

Video RAM 800x600 1024x768 1152x900 1280x1024 1600x1200
2 MB 32 bit 16 bit 16 bit 8 bit 8 bit
4 MB 32 bit 32 bit 32 bit 16/24 (*) 16 bit
8 MB 32 bit 32 bit 32 bit 32 bit 24 bit (*)
(*) 32 bit is 24 bit colour, using 4 bytes per pixel. 24 bit is 24 bit colour, "packed" using 3 bytes per pixel. If this isn't supported, then 16 bit is the maximum colour depth for 1280x1024 on a 4 MB card. This is very card-dependant - so check the documentation.

The manufacturers references should be consulted to determine the maximum vertical refresh rates (q.v.) possible for a given resolution and colour depth. This should be taken into account when choosing a video card and monitor combination (more on this in the next section).

3.6 Monitor

For the regular user, the monitor is the most important item. For graphics based applications, skimping on this item should be avoided.

Basic attributes of a monitor include:

Monitors have two refresh rates:

Video bandwidth (in megahertz) is the highest number of dots per second that the monitor can emit to generate an image. It's the product of vertical refresh rate by the number of vertical lines (including non-displayable) by the number of effective horizontal pixels (displayable, plus the leading and trailing time and flyback time).

A good video bandwidth is 135MHz, and most high end monitors can support this. However, this is often limited by the video signal inputs to the monitor. There are two common signal input connectors:

BNC inputs are the preferred. To obtain even higher performance, and to reduce any "ghosting" effects, a custom video cable may be assembled which consists of a separate 75ohm low-loss cable for each signal from the video card to the monitor.

If Trinitron monitors are your choice, then the "-SE" series should be purchased in preference to the "-SF" series, as the latter have a much lower bandwidth. Some of the OEM monitors from Apple, DEC, and IBM are based on the "-SE" series.

3.7 Mass storage

Whilst the PC industry has common support for two competing drive interface standards, SCSI and (E)IDE, there is no question that (E)IDE should be avoided and SCSI-only solutions used instead.

IDE was originally designed to connect up to two hard disks to a PC. It depends upon the CPU to do a lot of the work when transferring data, and whilst benchmarks under single tasking operating systems may indicate otherwise, the performance under load in a pre-emptive multi-tasking system leaves a lot to be desired. EIDE attempts to rectify some of these pitfalls by allowing four devices (which may be CD-ROMs as well as hard disks), but the performance is still less than that of an equivalent SCSI system.

Most people familiar with workstation hardware will be familiar with SCSI, and another advantage of SCSI is the reusability of hardware between platforms.

SCSI comes in a variety of device interface types, including:

Active termination should always be used, as it increases the reliability of the data transfers. Cable lengths should be kept to a minimum.

If you have older narrow devices such as CD-ROMs or tape drives, and a couple of fast/wide disks, it is advised that a separate card is obtained for the legacy devices. This can reduce/prevent problems that may be caused by interaction between wide and narrow devices; the wide to narrow cable convertors don't always function very well.

The SCSI controller should have a PCI bus. ISA bus SCSI cards are limited to approximately 1.3MB/s, which is suitiable only for CD-ROMs slower than 6-speed, or tape drives (non-DLT or other high speed tapes).

Some common PCI SCSI implementations are:

There doesn't seem to be much support for the various hardware RAID cards that are available.

Whilst many vendors make SCSI disks, people have their favourite implementations. My experience indicates that, in general, Seagate make as reliable drives as any other vendor. Always purchase drives with a five year warranty, as these are usually made by Seagate rather than by a subsidery (such as at The Plant Formerly Owned By Conner) that has been rebadged.

High performance can be obtained using the 7200rpm Barracuda disks, and Seagate appears to have ironed out the reliability problems that plagued the first release of these had a few years ago. Ensure that adequate cooling is used (refer to the manual), and leave enough separation between each disk to ensure airflow is maintained.

Cheaper disks should be avoided; they often have a hidden gotchas such as a very small on-disk cache which reduces performance, or have lower long-term reliability.

Currently, avoid disks that spin at around 10000rpm as the technology hasn't been proven. Disks larger than 8GB are have longer average seek time than the equivalent smaller unit.

Most software is now shipped on CD-ROMs, so a SCSI CD-ROM drive is almost a necessity. A quad speed (4x) drive is usually acceptable for this task. However, 12x CD-ROMs are the slowest readily available CD-ROM drive. Anything faster (20x, 24x) is bleeding edge, and only work at the advertised speed on perfect media.

Backups are mandatory, and there's a large variety in the technology available. Common formats include:

I'd use DAT for lower end systems with less than about 8GB of capacity. Once 10GB or more of backup capacity is required, seriously investigate using DLT drives.

Further information on determining which SCSI hard disk and tape drives to purchase can be found in [1]. A great explanation of determining the performance of modern hard disks is also given.

3.8 Network card

The four main networking technologies (in ascending order of speed, and descending order of occurrance) are: 10base-X ethernet, 100base-T ethernet, FDDI/CDDI, and ATM.

10base-X

There are many brands of 10base-X ethernet cards, and of the underlying chipsets used. In my experience, SMC Elite Ultra cards are well supported, very reliable, and can easily maintain full wire speeds with slower machines (e.g, a 386 at 40MHz).

Unless absolutely necessary, don't purchase a card with a 10base-2 (coax) interface. As long as you have an AUI port, you can obtain a coax AUI transceiver for almost nothing, as a lot of places are converting from coax to UTP and now have a large surplus of coax transceivers. The reason to avoid coax is that the line transceiver can get rather hot, even if it's not being used at that time.

Depending upon your circumstances and availability of slots, an ISA or PCI based card is acceptable.

100base-X

Many vendors are releasing 100base-T cards, or combination 10/100base-T cards. Cards based on DEC's DC21140 "Tulip" chipsets are highly regarded. SMC, DEC, and others use this chipset, as do DEC's Alpha-based workstations.

Full duplex 100base-T isn't standardised yet, and many vendors only guarantee that their implementation will only talk to the same model as themselves. Investigate before purchasing.

FDDI

Whilst 100base-T is becoming popular as the high-speed networking solution, FDDI is still used in places. DEC have a chipset FDDI solution, sometimes referred to as DEC PDQ FDDI. PCI cards based on this are the DEC DEFPA PCI FDDI card. These cards are regarded highly, but I have had favourable experiences with the equivalent for other bus architectures/platforms (e.g, the DEFTA cards for TurboChannel based DECstations).

ATM, ISDN, X-25

I don't have any experience with ATM, ISDN, or X-25 cards. Further research into these technologies is required...

3.9 Case and power supply

There is a large variety of cases available, both in quality of manufacture and case design.

Avoid a case that appears to be made from thin gauge metal that is rivetted together; larger pieces of thicker gauge pressed metal are usually stronger and easier to work with. Another indicator of lack of quality is unfinished edges with sharp burrs; I've cut my fingers many times on cases in this category.

The power supply should be at least 250W. Even if your requirements aren't that great, there will be less stress on the unit if it's not running at its rated capacity.

If you choose an ATX motherboard, get an ATX case and power supply. The motherboard will mount more securely, and will run cooler because the on-board 5.0V-3.3V regulator won't be in use.

Be aware that with current non-ATX motherboards, there are many different form factors that all pretend to fit one of two common standards with respect to location of mounting holes:

With this is mind, don't be too alarmed if you can't put mounting pegs or risers under all of the mounting holes on the motherboard. At least attempt to get an even distribution of mounting points for stability.

Not all PC cards are of the same height either, and you may find that the mounting brackets of some cards vary up to 5mm from that of the other cards. Ensure that the card has a firm fit, and if necessary, re-bend the top mounting point to suit.

Ventilation is important - airflow is required to keep components cool. A "push-pull" arrangement is preferred; whereby fans are located at either ends of the case and force the airflow to follow a specific path. The most critical components to cool (usually disks) should be placed to take advantage of this.

3.10 Keyboard and mouse

Choose a keyboard that suits you. Honeywell are highly regarded, and the Microsoft ergonomic keyboard is either loved or hated by those with touch-typing skills.

If you just require a two button mouse, then I've found that Microsoft's ergonomic mouse is a good reliable choice. Ironically, some of Microsoft's most reliable products are hardware...

Logitech make a variety of three button mice that are good if you need the extra button.

Mice may have either a "bus" interface or serial interface. It's usually easier to obtain serial mice, and they're easier to debug as well.

3.11 Serial, Parallel, Floppy, Soundcard

Most modern motherboards have on-board serial, parallel and floppy controllers. The serial chip should be using a "NS16550A" or compatible UART, which has a FIFO, thus allowing speeds of 115200bps to be sustained. The combination "super-I/O" chip used in most modern motherboards meets this criteria.

The parallel port is usually just used to drive a printer, and there shouldn't be any compatibility problems with it.

A 3.5" floppy is probably necessary for software installation and data transfer. A server probably won't need the floppy much, so it could be removed after the system is functional to reduce the amount of dust that can enter through the dust cover.

Like video cards, there is a great variety in sound cards. The most supported cards are the Creative SoundBlasters. However, I find the audio quality is often sub-standard when using good speakers or headphones, due to the low quality digital-analog circuitry. If another brand is obtained (such as Gravis), ensure that support is available in the target OS.

4. Limitations

Some of the limitations of using PC hardware for Open Systems include:

Someone needs to come up with a motherboard that supports a command line text interface which can switch between serial and VGA text mode configuration, which supports specifying which device to boot off and running rudimentry tests (a'la Sun's OPENPROM or DEC's SRM firmware). Maybe one day...

5. Conclusion

Know what you're purchasing. Investigate support for a product in the relevant "Compatibility guide" for your target OS. Even the best vendors occasionally release "lemons" which end up having more compatibility problems than they're worth.

It is often useful to "track" your target OS for a while, following various discussion forums, looking for other experiences with particular hardware that you're interested in.

Be aware that there is too much variety in the PC industry, and that this can cause many compatibility and support problems.

In general; avoid variety between your systems - standardise on components, test them, and keep using them for as long as possible.

6. Acknowledgements

Thanks to Darrell Elton of Latrobe Uni, for invaluable advice on how to write a paper and prepare a talk, as well as information on workings of electronic toys in general. Also, talking to Rudi Heitbaum over the years has broadened my knowledge of PC hardware.

However, any errors in this paper are solely mine; no-one can take that from me. :)

7. References

[1] Paul Vixie, "Hardware Configurations for BSD/OS",
http://www.vix.com/pc-hw/bsd-os-hwconfig.html
[2] Lee A. Butler, "Snake Oil, Miracle Cures, and Computer Monitors",
http://hawks.ha.md.us/hardware/monitors.html
[3] Jeff Moe, "Build your own PC",
http://www.verinet.com/pc/
[4] ASUS Technologies home page,
http://www.asus.com.tw/
[5] Matrox,
http://www.matrox.com/
[6] Seagate,
http://www.seagate.com/