#
Upgrading and Repairing Networks

# - 6 -

# The Workstation Platform

In the last chapter, when examining the hardware involved in assembling a network server, we narrowed our vision to the high end of the current PC market. In this chapter, we discuss the network workstation, and our survey is necessarily much wider in scope. For the purposes of this chapter, the term workstation refers to a PC based on one of the Intel x86 microprocessors. Other types of desktop computers, such as UNIX and Macintosh machines, may also be referred to as workstations at times. The networking aspects of Macintoshes are covered in appendix C, "Adding Macintosh Access." As to UNIX, the subject is sufficiently enormous to preclude its inclusion in a book of this type.

As we have discussed, a file server and a workstation are, from the hardware perspective, more alike than they are different. Both contain the essential elements of a network PC: a microprocessor, memory chips, usually some form of storage medium, and, of course, the network interface that links the computer to all the other resources scattered around the enterprise. However, network workstations encompass a far greater range of assets and capabilities than servers do. While it is safe for me to say that a file server should be a 486-based machine or better, workstations can range from the original IBM PCs and XTs all the way to top-of-the-line Pentiums that could adequately function as servers themselves, given the proper software.

Obviously, the tasks that can be accomplished with a networked XT are substantially different from those that can be performed on a Pentium. Both have retained their usefulness in the workplace, however, and this chapter surveys the wide range of hardware that might be found in PCs that have been adapted for network use. Since most of the information already presented in the discussion of network servers is equally valid when examining a network workstation, it will not be repeated here. We will, however, cover the hardware that was glossed over in the last chapter, discussing in detail some of the technology that is more obviously suited to workstation use.

The lines between server and workstation hardware configurations often blur, so we will cover some material that could easily be germane in a further discussion of server configurations, including a detailed examination of the entire Intel microprocessor line. Some of the newer technologies on the market, such as Enhanced IDE hard drives and other peripherals, could well become standard equipment in smaller servers, and we will also discuss network interface cards (NICs) in greater depth. The topic of NICs was deferred from the last chapter because similar or even identical cards can be used in both the server and workstation platforms. Unless stated otherwise, any discussion of network interface hardware in this chapter is equally applicable to a server.

We also will discuss the viability of hardware upgrades on the workstation platform. In many cases, the most important information is to know which machines are worth upgrading at all and which components can be replaced or augmented without investing money in an obsolete technology that is destined for the high-tech junkyard.

## Workstation Types and Specifications

Although faster and more capable computers are available every year, many networks in the corporate world continue to operate productively despite a reliance on technology that dates back to the early 1980s. When a tool is created to accomplish a particular task, and the task does not change over the years, many LAN administrators see no reason to change the tool. Some companies that rely heavily on particular DOS-based programs--either commercial applications or custom-designed ones--are still running workstations as old as the original IBM XTs. This is not to say that their tasks couldn't be accomplished more quickly and efficiently with a faster machine, for they unquestionably could, but the economic factor often mitigates the drive for new technology. A shop that has hundreds of users running a simple application on a fleet of XTs may not realize a great enough gain in production to warrant replacing so many machines with newer models.

On the other hand, the problem with this philosophy is that very often the services required of the network do change and existing hardware might not be up to the task. A mass replacement of an entire fleet of machines not only incurs a large financial expense at one time, but also requires significant amounts of system downtime as well as retraining of personnel to use the new equipment. The alternative to this sort of procedure is the gradual upgrade or replacement of workstations as new technologies become available. Many shops have replaced all their workstation computers several times in the past decade. This certainly provides users with better tools to perform their tasks more efficiently, but it can be extremely expensive to regularly replace older equipment with newer equipment when the marketing pattern of the computer industry places such a high premium on the latest technology and relegates the old to the scrap heap. If you were to replace a fleet of XTs today with new machines, you very likely would have to pay someone to haul away the old hardware. Warehouses across the country have old computers stored away gathering dust because they have been replaced with newer machines and there is no market for the old ones. Occasionally, a company may engage in a project or division that requires only limited workstation capabilities, which may allow this old equipment to be put to further use. Some organizations also participate in programs that coordinate the donation of older computers to educational or charitable institutions, but this is usually the exception, not the rule.

In the following sections, we will take a walk through the Museum of Workstation Technology and examine some of the old machines that you may still find in use in network shops today. Obviously, as each day passes, fewer and fewer of the old computers remain usable, but you may someday find yourself tasked with maintaining machines such as these. We will also try to determine the exact point at which the upgrading of legacy machines such as these becomes economically and technologically impractical. In most cases, workstations based on the 80386 or earlier processors are nearing the end of their usefulness, and upgrading them is like living in a rented apartment--you don't want to make any changes that you can't take with you when you leave for use elsewhere. Indeed, the very oldest machines are nearly always not worth the effort. It usually becomes a matter of cannibalizing some of those old XTs for parts to keep others running. The intention here is to demonstrate that it is not always practical or even necessary to equip every user with a 486 or a Pentium (as much as the industry spin doctors would have you believe otherwise). A great many companies continue to use older technology to great effect, and having the knowledge and ability to maintain it demonstrates a sense of economic practicality that is lacking in many network administrators today.

### The IBM PC

In 1981, when IBM released the original PC, what had been a hobbyist's toy was transformed overnight into a practical business tool. Technologically, it was not the best PC available at the time, but it was a marketing coup that set the standard for the way the PC business is conducted to this day. Built using readily available and easily upgradable components, the PC design allowed for maximum marketability and minimal financial risk on IBM's part. No one, however--IBM included--had any clue that the concept would be as successful as it was. Suddenly, the PC was a business tool, and the basic designs created by IBM for their original machines became industry standards that persist to this day.

The original IBM PCs and XTs were based on the Intel 8088 microprocessor. Throughout the 1970s, Intel had steadily built increasingly more powerful processors that were designed more for general-purpose use than for installation in specific computers. The 8086 chip, released in 1978, was an expansion of their 8080 design and was the first Intel microprocessor to have a full 16-bit design. The processor had 16-bit registers, a 16-bit-wide data bus, and a 20-bit-wide address bus, allowing it to control a full megabyte (M) of memory (a huge amount at the time, considering that the original PC shipped with only 16K). That 1M was effectively divided into sixteen 64K segments, however, making it operate like 16 of the earlier Intel 8080 chips for compatibility purposes.

Although our history begins with the PC, this was not the first personal computer on the market by any means. IBM's design was mitigated by the need for backward compatibility, even at that early date. A significant number of applications already existed for the eight-bit computers of the time, such as the Apple II, the Radio Shack TRS-80, and other machines that used a CP/M operating system (OS). By today's standards, the applications were few and very rudimentary, but IBM was attempting to protect its investment in every possible way in this venture, and it ultimately decided not to alienate the earlier accomplishments by releasing a fully 16-bit computer.

The 8088 processor was released by Intel after the 8086. The two were nearly identical, except for the fact that the 8088 had a data bus that was only eight bits wide. Use of this processor allowed the PC to be built using eight-bit components (much more readily available) and allowed for the possibility of software conversion from the CP/M OS to the BASIC that was included in the PC's system ROM. The 16-bit internal registers of the 8088 processor allowed IBM to market the PC as a "16-bit computer" without alienating the existing user base. Later IBM PS/2 models utilized the 8086 processor.

The original 8088 processor ran at 4.77MHz and took approximately 12 clock cycles to execute a typical instruction. This is glacial performance by today's standards, but speed was not a major issue at that time. Desktop computers were utterly new to the business world, and the issue was having one or not having one, as opposed to how capable a machine was. Later models of the 8088 ran at 8MHz, providing some increased performance, but that was the limit for this microprocessor design.

The original PC was marketed for $1,355 at a base configuration including 16K of memory and no storage medium other than its built-in ROM. An interface port for a typical audio cassette drive was included, but a floppy disk drive would cost you an extra $500. It's astonishing to think that all those obsolete computers now taking up warehouse space were just as expensive when they were new as today's far more capable machines. It was also the original PC that saddled us with the 640K conventional memory limitation that remains an albatross around our necks to this day. At the time, 640K was considered to be far more than any program would ever need. In fact, the PC could only support up to 256K on its system board; additional memory had to be added through the use of an expansion card. This amount was therefore arbitrarily decided upon by IBM as the place where OS-usable memory would end, and system resources such as video memory and BIOS would begin. In fact, these early machines used only a small fraction of the 384K allotted for these purposes, but the standard was set, and we are still living with it.

### The XT

We have examined the original IBM PC because of its place in the history of desktop computing, but the first IBM model that can still be considered even a remotely usable network workstation today is the XT, which was first released in 1983. Still based on the Intel 8088 microprocessor, the XT is more recognizable as the prototypical business computer in many ways. From a hardware design standpoint, the placement of the XT's components and the layout of its motherboard are more akin to today's computers than the PC was. A 360K floppy drive and a whopping 10M (or later, 20M) hard disk drive were standard equipment, and the venerable ISA bus was already in place. A full 640K of memory could be mounted directly on the motherboard in later models, and serial and parallel connectors were available for connection to modems, printers, and other peripherals.

Although its original hard drive has barely the capacity to store today's entire DOS, the XT can easily be outfitted with a NIC and attached to a LAN. Obviously, its performance seems extremely slow to a sophisticated user, as its memory has a 200 nanosecond (ns) refresh rate, and its hard drive has a transfer rate of only 85K per second, but for use with small, simple applications it can be a viable workstation. Even a reasonably sophisticated program such as WordPerfect 5.1 for DOS (still a highly useful application, despite having been overshadowed by its bloated successors) runs on an XT.

This is not to say, however, that the XT is a suitable general-use computer by today's standards. It most definitely is not. I have worked in shops, though, where a company's old XTs have been put to profitable use. One such case involved the introduction of a proprietary software package that ran on an OS/2 application server and was designed for use with dumb terminals connected to the server by a "roll-your-own" network of serial connections and multiport serial concentrators. Rather than spend money on new terminals for what amounted to an experimental business venture, the company used its fleet of obsolete XTs to run a terminal emulation program over the existing LAN. This arrangement worked out very nicely--the company was able to outfit an entire department with workstations at virtually no cost, they managed to clear out some valuable storage space where the old XTs were kept, and they had a number of extra machines left over that could be used for parts to repair the operational ones. Most of the repairs needed, by the way, were minor, involving worn-out keyboards, blown monitors, and the like. The XTs had held up remarkably well, despite years of previous use, plus several more years collecting dust.

That was, of course, an isolated case where older machines were put to good use in a modern workplace. For today's LANs, the XT is rarely worth using as a workstation, for almost any worker becomes more productive on a faster machine. These old warhorses can be put to productive use as dedicated network print or fax servers, though, or even as routers, on less demanding networks. However, if asked whether someone should purchase old XT machines that they might find, I unhesitatingly answer no, unless that person has a specific purpose that the machines are suited to and the price is extremely low. If asked, however, whether a company's fleet of XTs should be stored or discarded, I almost always say to hang onto them. Donating them or even distributing them to employees for home use would be preferable to throwing them away, especially with today's environmental concerns, for it might be more expensive to dispose of them properly than it would be to keep them.

As to the prospect of upgrading XTs, don't even think about it. Like most older computing technologies, the XT is a unified whole whose parts have been selected to work together. The ST-506 hard drive that was standard equipment at the time (discussed later in this chapter) is incredibly slow by today's standards, for example, but moves data faster than the XT can operate on it. There is virtually no single component in the machine that could be upgraded to increase the overall performance of the system once it is fully populated with memory. Parts can be replaced easily from other machines (providing at least one good reason to buy any old units you come across), but the XT is essentially a dead end that is not worth an extensive amount of time, effort, or expense.

### The AT

In 1984, IBM released the AT computer. Based on the Intel 80286 processor, the AT was a great step forward from a hardware standpoint but was not utilized by software developers to anything approaching its capabilities. On the whole, the AT was treated like a better, faster XT, and on this basis, it became the prototype for a huge number of imitators to emulate, giving rise to the vast IBM clone market that has since overtaken the originator in sales by a huge margin.

While the 8088 mixed an eight-bit data bus with 16-bit registers, the 80286 was a 16-bit processor in every way. By that time, the 16-bit components that were used to build the ancillary circuitry of a PC were readily available, and IBM did not fail to realize that their fears concerning the compatibility of the 16-bit data bus were unfounded. The PC was now a growing concern for all involved, and even Intel began to design its microprocessors more specifically for use in computers. Components that had previously remained on separate chips were beginning to be incorporated into the microprocessor itself. Intel's earlier chips had deliberately avoided doing this to facilitate their use in devices other than computers. Other customers would not want to pay extra for circuitry that would go unused in another application, but now that there was a practically guaranteed market for the 80286 chip, microprocessors for use in PCs rapidly became the focus of Intel's development efforts.

The explosive growth of the PC industry was evident even in the various versions of the 80286 chip that were released. Originally designed to run at 6MHz, faster and faster versions of the chip were made available, up to 20MHz. This, combined with the doubled width of the data bus, yielded a machine that was already far faster than the XT. The 286 also increased the address lines from 20 to 24, allowing up to 16M of physical memory to be addressed, as opposed to the 1M of the 8088.

The 286 was also the first processor that could utilize virtual memory. Virtual memory is hard disk storage space that could be utilized by the processor as a substitute for actual memory chips. Data had to be swapped from the hard drive to RAM before it could be operated upon, but this technique allowed a 286-based machine to address up to 1G of total memory (16M of actual RAM chips and 1,008M of virtual memory). This was, of course, a far greater capacity than other hardware could accommodate at the time. The original AT could only mount 512K worth of DRAM chips on the motherboard, and the idea of a 1G-capacity hard drive for a desktop computer was completely absurd. The most obvious limitation, though, was that there was no OS available that could ade-quately make use of these capabilities. Once again, the specter of backward compatibility had risen, forcing the industry to try to accomplish the all but impossible task of satisfying the needs of an existing user base that demanded greater performance without sacrificing its existing investment.

Real Mode versus Protected Mode. In order to make it compatible with earlier software, the 80286 microprocessor was designed to run in two different modes: real mode and protected mode. Real mode exactly emulates the functionality of the 8086 processor (not the 8088, as the chip still uses a 16-bit data bus) including the ability to address only the first megabyte of memory. When the computer is powered up, it initially boots into real mode and is completely capable of running any software that was written for earlier IBM PCs. The processor's protected mode is where the real advances in its architecture are evident. Once switched into this mode by a software command, the processor can access all the memory capabilities, both physical and virtual, that are present in the machine. Protected mode also provides the processor with the ability to multitask, the now commonplace practice of running multiple virtual machines where separate programs can run without affecting each other's performance.

Several problems impacted the use of this protected mode, however. The first was that despite the increased amount of memory that could be addressed, that memory was still broken up into 64K blocks, just as it had been with the 8086 and 8088 processors. This left programmers with the same memory segmentation difficulties that they had always had to work around. The only difference was that they now had more segments to work with. The other major problem was that the 286 processor, once it had been switched from real mode into protected mode, could not be switched back again except by resetting the processor--in effect, restarting the computer.

It was here that a familiar pattern in the development of the microcomputer industry first emerged. Despite the extended capabilities of the 80286 chip, it was a full three years before an OS was developed that could take advantage of the chip's protected mode. This OS was OS/2, which in its early versions was a collaborative effort between IBM and Microsoft. OS/2 could effectively multitask programs written to take advantage of this feature and could access the entire range of the computer's memory, but then, as now, few applications were written specifically for it, and the OS never achieved a significant market share.

It was not until some time later, when Windows 3.0 was released by Microsoft, that a commercially successful OS could make use of the 80286's protected mode. Windows' Standard mode was specifically designed to take advantage of existing 286 systems, and while it could address all the memory in the machine, it could not multitask DOS programs. Only native Windows applications could run simultaneously. Besides, the Intel 80386 processor was already available by that time, and this new processor could make far better use of the Windows environment. Due to the lack of software support, the 286-based computer was essentially relegated to the role of a somewhat faster version of the XT.

The Clone Wars. While the XT remained primarily an IBM platform, the AT was the first microcomputer to be duplicated (or "cloned") in large numbers by other manufacturers. Hundreds of thousands of 80286-based computers were sold during the mid to late 1980s, and new systems were still widely available as late as 1992. The original IBM models ran at 6MHz, introduced the high-density 1.2M 5 1/4-inch floppy disk drive, and were equipped with 20M or 30M hard disk drives of the same ST-506 variety as in the XT.

By the time that their popularity began to wane, however, due to the arrival of the 80386 processors, many manufacturers had substantially improved on the capabilities of the basic AT. Most shipped with a full 640K on the motherboard (while IBM's could only fit 512K; an expansion board was needed for more), ran the processor at faster speeds (up to 20MHz), and included larger and faster hard disks, including some of the first IDE drives. The 1.44M, high-density 3 1/2-inch floppy drive was also a popular addition. Video options ranged from the monochrome display adapter (MDA) of the original PC, to the Hercules monochrome graphics adapter, to the later color graphics adapter (CGA) and enhanced graphics adapter (EGA) color standards.

As a result, the 286 machines still found in network use can have a wide range of capabilities. Some are little more than slightly accelerated XTs, while others might have color graphics and enough hard drive space to actually be functional in a modern environment.

Networking ATs. Like the XT, AT-compatible computers are easily adaptable to network use. An ISA bus NIC can be easily inserted and configured to connect the system to a network. The primary drawback with the networking of 286-based and earlier computers is their general inability to load drivers into the upper memory blocks above 640K. Certain chipsets (such as those manufactured by Chips & Technologies) do allow for this possibility, but for most ATs and AT clones, all network drivers have to be loaded into conventional memory. Given the size of most network requesters, which can run up to 100K or more, this can seriously diminish the capability of the workstation to run programs. As with the XT, only simpler programs can be considered for regular use on an AT. Despite the capability of Windows 3.x to run on a 286 machine (in Standard mode only), the AT most definitely is not a suitable Windows platform for everyday use.

Upgrading ATs. Given the wide range of possible hardware configurations available on 80286-based PCs, upgrades of certain components certainly are a possibility, but the question remains whether the process is worth the effort and expense. Intel, for example, marketed a replacement chip for the 80286 called the "snap-in 386" that was the only way in which a 286 microprocessor could be upgraded because of socket and signaling differences. This upgrade could easily be applied if you could locate this chip (which I doubt), but the performance gain would probably not be worth the effort.

On the other hand, certain upgrades are worth the effort if you are committed to using machines such as these in a production environment. For example, if you value the eyesight of your users, any machine utilizing a CGA display system should be upgraded. A video graphics array (VGA) card and monitor, or even an EGA package, would be a vast improvement, applied with very little effort. Even a monochrome solution is an improvement over CGA, but it has been some time since I have seen new monochrome monitors and display adapters available through a conventional source (a fact that I find infuriating when I end up installing 1M VGA cards and monitors on file servers).

Hard drives can be added or replaced in AT machines, although I would say that locating the hardware for anything other than an IDE or SCSI installation would not be worth the effort. See the "IDE" section, later in this chapter, for more information on this process.

I spent many years working primarily with 286-based machines, and while they can be sorely lacking in many of the advanced features that are taken for granted today, they are quite capable of running many DOS applications with satisfactory performance. WordPerfect and Lotus 1-2-3 were the mainstays of the shrink-wrapped software industry at the time of the AT's heyday, and both performed adequately on these machines. The current versions of these products contain capabilities that were unheard of in DOS applications of the late 1980s, but they pride themselves on retaining backward compatibility with their vast installed user base. This is not to say that the average secretary or bookkeeper should have to make do with a 286--anyone would be more productive with a newer, faster machine--but, as with the XT, there are places in the corporate world where this antiquated technology can be put to productive use.

### The Intel 80386

By the beginning of 1987, systems built around the next generation of Intel microprocessors had begun to appear on the market. The advent of the 386 was a watershed in personal computing in many ways. First of all, you may notice that this section is not named for a particular IBM computer. By this time, "clone" manufacturers were selling millions of systems around the world, and IBM had stopped being the trendsetter it had always imagined itself to be. In fact, the term "clone" could no longer be considered pejorative. Rival system manufacturers such as Compaq had long since proven themselves to be much more than makers of cheap knockoff versions of IBM machines. Compaq was, in fact, the first systems manufacturer to release an 80386-based PC.

People realized that the IBM systems, while still technologically competitive, added an extra premium to their prices for a sense of brand recognition that was of diminishing value in the real world. Therefore, while IBM's PS/2 systems did utilize the 80386 processor to great effect, and while a great many companies remained IBM-only shops for many years afterward, this was the real beginning of the commercial home computer market, and hundreds of manufacturers began turning out 386-based systems at a phenomenal rate, and selling them by means other than through franchised dealerships and traditional corporate sales calls.

The 80386 processor was a technological breakthrough as well as a marketing one. It was not simply a case of Intel creating a faster chip with a wider bus, although they did do this. The 386 increased the power of personal computers through some fundamental architectural changes that might not be immediately apparent to some users. Indeed, the 386 operates at about the same efficiency level as the 80286, taking approximately 4.5 clock cycles to execute a single instruction. An 80386-based system running a DOS program at the same clock speed as a 286 system will not be tremendously faster. The real innovation behind the 386 was the capability to move personal computing into the age of multitasking.

The 80386 processor was made available by Intel in two basic flavors: the 80386DX and the 80386SX, the latter designed more as an entry-level processor aimed at the home user or less-demanding business user. The DX chip was, first of all, a full 32-bit processor in every way. The internal registers, data bus, and memory address lines were all 32-bit. This doubled the width of the pathway in and out of the processor when compared to the 286. In addition, this meant that a 386-based system could address up to 4G of actual, physical memory chips, and up to 64 terabytes (1 terabyte=1,000G) of total (that is, physical and virtual) memory. Obviously, this is a great deal more RAM than any desktop computer can hold, even today.

Although originally offered at speeds of 12.5MHz and 16MHz, Intel quickly acceded to the demands of users and began producing chips that ran at speeds up to 25MHz and 33MHz. These two became the flagship processors of the Intel line, although other chip manufacturers such as Advanced Micro Devices (AMD) later manufactured 386-compatible chips that ran at speeds up to 40MHz.

The 80386SX chip ran at speeds of 16MHz and 20MHz and was identical to the DX version of the processor in every other way except that its external data bus was only 16 bits wide and that it had only 24 address lines, giving it the same memory-handling capacities as the 286: 16M of physical memory and up to 1G of total physical and virtual memory.

Operational Modes. The real innovation behind the 386, though, can be found in the modes that it can operate in. Like the 286, the 386 has a real mode and a protected mode similar in functionality to those of the earlier chip. The system always boots into real mode, which still emulates the 8086 processor exactly, for compatibility with existing DOS programs. The system can then be shifted into protected mode by the OS, just as the 286 can. However, unlike the 286, the 386 chips can be switched back from protected mode to real mode without resetting (that is, power cycling) the microprocessor. In addition, another operating mode was added, called virtual real mode. This mode allowed existing DOS programs to be multitasked without any alteration whatsoever to their code.

Virtual real mode allows individual virtual machines to be created on a single system, each of which functions like a completely independent DOS session. Attributes such as environment variables can be individually modified without affecting the rest of the system, and, should a program in one virtual machine crash, the others can continue running normally (in theory). This is done by distributing the processor's clock cycles evenly among the virtual machines in a rotational manner. This is the basis of multitasking and the fundamental innovation of Microsoft Windows.

Obviously, this function is as dependent on the OS as it is on the hardware. In this respect, the 80386 microprocessor must be considered alongside of Windows because together they completely changed the face of personal and business computing on the desktop. Within months of their release, 386-based systems had almost completely replaced 286s as the workstation of choice. With SX computers at very attractive entry-level prices and DXs positioned as the power user's platform, nearly every PC vendor on the planet signed an OEM agreement with Microsoft to bundle Windows with their computers. Other OSs also supported the multitasking capabilities of the 386, such as Quarterdeck's DESQview, IBM's OS/2, and various UNIX types, but none of these had the marketing push that Windows did, and they never caught on as suitable for everyday business use. Although the transition to Windows as the primary business platform of choice took a few years, this was the beginning of the revolution.

Networking 386s. As you can well imagine, the 386 machine became the preeminent business PC quite quickly and was just as rapidly introduced into network use. What Windows helped the 386 do to the desktop was equaled by what NetWare 386 did to the file server and the network. NOSs were able to take advantage of the chip's multitasking capabilities just as desktop OSs could, and the vastly improved memory handling of the processor allowed workstation network drivers to be loaded into the upper memory blocks between 640K and 1M, with the proper software support. This meant that most of the 640K of conventional memory could be used for running applications, instead of devoting a substantial part of it to network overhead.

The later microprocessor improvements that resulted in the 80486 chip were more of an incremental improvement than a revolutionary one. It was the 386 that set the foundation upon which today's most popular workstation processors are built. This leaves network administrators in a difficult situation, however. Millions of 386 computers were sold around the world, but now that 486s and Pentiums have garnered nearly the entire new computer market, everyone wonders what to do with the old machines.

The real problem is that these 386 workstations are not relics of another age, suitable only for use with archaic programs. 286 and earlier machines simply are incapable of running today's applications and OSs satisfactorily. This is not the case with 386s. Although somewhat slower (or even a great deal slower), a well-equipped 386-based PC can run any of the current productivity applications in use today. Their marketing cache is totally gone, however, and many computer users today express indignation at the prospect of being asked to use a 386 for general business use.

This is an unfortunate byproduct of the tremendous marketing efforts undertaken by Intel and other corporations to promote the latest PC technologies, especially the 486 and Pentium processors. Reaching out of the computer trade press and into the mainstream media, including high-tech television commercials, they have effectively convinced computer users and nonusers alike that nothing less than a 486-based machine is acceptable. Now, the message is changing to emphasize the Pentium. With the release of the Pentium Pro, even the 486 is suddenly a generation older. By the end of 1995, Intel all but ceased production of 486 processors, and now, nothing less than a Pentium is available in a new model computer. For the corporate LAN administrator, though, this should not be the case. Vendors that cater to corporate clients can still supply 486 machines in quantity and are likely to continue doing so for as long as the demand persists.

Clearly, a pattern is beginning to emerge here. Every so often, a new level of PC technology is introduced and, once the kinks are worked out, the industry tries to persuade the public that their older products must be abandoned or upgraded if they are to remain productive or competitive. Add to this the fact that product cycle times have been diminishing steadily for several years. Software upgrades are delivered every twelve or eighteen months, and Intel's primary defense against competitive processor manufacturers is no longer litigation, but simply an accelerated development cycle for its next wave of technology.

Notice also that the well-trumpeted upgradability of Intel processors has turned out to be far more limited than we were originally led to believe. The P24T Pentium Overdrive has only recently made it to market after many months of empty promises, and even this is not a true 64-bit Pentium. In fact, while some non-Intel products do exist that can effectively upgrade 386 systems to 486 performance levels, a 486 cannot be upgraded to a full Pentium, and due to architectural changes, there will be no upgrade platform at all from the Pentium to the Pentium Pro.

For the network administrator in a corporate environment, it is obviously not practical to junk an entire fleet of PCs every time a new processor is released. The 386 is really the first case in which truly usable technology is in danger of being discarded due to sales pressure applied by the computer industry. The fact remains that, for a great many PC users in the business world today, a 386-based PC with sufficient memory and hard drive space is a completely satisfactory production machine. For Windows-based e-mail, standard word processing and spreadsheet use, and even Internet access, this is quite sufficient. This is not to say that I recommend purchasing 386 machines today (even if you could find them), but to warehouse or give away existing units because they are not 486s is lunacy.

I consider 386s to be the most upgradable of PCs. Most of the system hardware packages sold when the 386 was most popular are deficient in the memory and storage capacities that are recognized as essential for business use today. Fortunately, RAM upgrades and hard drives are two components that can be added easily to an underpowered system to make it into a practical workstation. Moreover, both can be removed easily from the 386 when it is finally time to retire the machine from duty. The installation of additional system memory is covered in chapter 5, "The Server Platform," while hard drive upgrades are discussed later in this chapter.

### The Intel 80486

Intel marketed its first microprocessor, the 4004, in 1971. Designed for use in the first hand-held calculators, it had a 4-bit bus that made it capable of handling numerical input but very little else. During the next two decades, Intel continued to develop and refine its line of microprocessors, and in 1989, the company released its first model in the 80486 line.

Improvements of the 80486 Processor. The 486 has a full 32-bit bus, meaning that both the data and address buses of the I/O (input/output) unit are 32 bits wide. This allows up to 4G of physical memory to be addressed by the processor and up to 64 terabytes (1 terabyte=1,000G) of virtual memory. Virtual memory is a technique in which storage space on a disk drive can be utilized like actual memory through the swapping of data to and from the computer's memory chips.

When compared to the innovations of the 80386 processor, the 486 is more of an evolutionary step forward than a radical new design. The silicon of the chip is etched with finer details, as small as .8 microns (1 micron=1/1,000,000 of a meter), and faster clock speeds of up to 100Mhz are supported. The capabilities of the 486's I/O unit are also significantly enhanced over the earlier processor models, allowing for off-chip memory accesses in burst modes that can deliver data to the processor at a rate of up to 32 bits per single clock cycle.

A clock cycle is the smallest unit of time recognized by the processor. Electrical current is applied to a quartz crystal within the processor, causing it to vibrate at a predetermined frequency that is used as a baseline for the timing of all processor operations. Therefore, a chip running at a clock speed of 100MHz is actually operating at 100 million clock cycles per second. Improvements in the architecture of the 486 allow it to execute a single instruction in two clock cycles, while the 386 needed four.

These are the two fundamental ways in which processor design can be improved--increase the speed of the clock, or execute more instructions per clock cycle.

The architectural improvements of the 486, made possible in part by the increased number of transistors that can be packaged on a single chip, allow for several important resources to be built into the processor itself, as opposed to being located in separate units connected by the computer's system bus. Any operation that can be performed without accessing off-chip resources greatly enhances the overall speed and efficiency of the system.

Always remember that, although we are dealing with minute amounts of time and fantastic speeds, computing is all relative. Data that is moved about within the processor travels at a far greater speed (and over a much shorter distance) than that which must travel to the system's memory chips. Similarly, the memory is much faster than a hard drive, a hard drive is faster than a tape drive, a tape drive is faster than a floppy drive, and a floppy drive is faster than a pad and pencil.

The math coprocessor (sometimes called the floating point unit or FPU), for example, is now an integrated part of the microprocessor, as opposed to the separate chip that was required in the 80386 and earlier models. There is also now an 8K on-board cache that significantly increases the efficiency of the processor's I/O unit. This is a write-through cache of four-way set-associative design. This means that the cache is broken up into four 2K pieces, each of which can be utilized by a different process at the same time, making it particularly effective for multitasking OSs like NetWare and Windows.

A write-through cache means that when the processor receives a command to read from the computer's memory, it first consults the cache to see if the desired data is present there. If it is, then I/O from the memory chips is not necessary, and processing can begin immediately using the cached data. When the processor writes to memory, however, it immediately sends its data to both the cache and the memory chips. By caching in only one direction, a processor sacrifices a measure of additional speed for the sake of data integrity. Additional off-processor RAM caching, called Level 2 or L2 cache, can also be used to great effect with the 486 chip, without interfering with the on-board cache. This sort of static RAM cache is discussed in chapter 5, "The Server Platform."

The 80486 Processor Line. The 80486DX processor is available in speeds ranging from 25MHz to 50MHz. Intel also markets an 80486SX line of processors that differ primarily by lacking an integrated math coprocessor. The intention behind this effort was to emphasize the upgradability of the 486 chip. Users were able to purchase a system with a relatively inexpensive 80486SX chip and later upgrade to the full DX version. The strategy was primarily aimed at the home computer and workstation market and is discussed in greater detail in the "Processor Upgrades" section, later in this chapter. For use in a server, you should consider nothing less than a 33MHz 80486DX processor.

Another innovation of the 486 design over the 386 was the capability for clock-doubling or clock-tripling processors. These processors, called the DX2 and DX4 versions of the 80486, are basically 25MHz or 33MHz chips that have been altered to operate at double or triple their rated speed. Thus, the maximum speed rating achieved by the Intel 80486 family is the DX4 version of the 33MHz processor, which is tripled to run at 100MHz (the native speed of the chip is actually 33.3MHz). The silicon chip itself is quite capable of performing at these high speeds, but there are two important considerations when evaluating these processors.

The first is the fact that these clock-doubled processors only run at double-speed within the processor itself. Thus, when a 33MHz chip is doubled to operate at 66MHz, the internal math coprocessor and on-board cache are effectively doubled, but the communication between the I/O unit of the chip and the rest of the computer is still conducted at only 33MHz. It is the I/O unit itself that has been given the extra capability to translate between the two clock speeds, and that is therefore the buffer between the processor and the motherboard. Actually, this arrangement works out quite well because it is unnecessary to alter the motherboard or any of the computer's other hardware to accommodate the increased speed of the processor. This is, again, part of Intel's "upgradable processor" marketing strategy. DX2 and DX4 processor chips are also available on the retail market as Intel Overdrive processors. Identical in pinout configuration to the DX chips, which means that they can be installed into the same type of socket as the DX, these are designed to be installed in systems as a replacement for--or an addition to--an existing DX processor.

It should be noted, however, that older system boards containing an extra processor socket for the installation of the upgraded chip completely disable the old processor once the new one has been installed. While this is one of the few "chip-only" processor upgrades that I ever recommend be performed in a file server or workstation, I also recommend against the use of the second overdrive socket so that the original processor chip can be removed and used elsewhere or kept as a spare.

The second area of concern with clock-doubled chips is heat. The faster a microprocessor runs, the more heat it generates, and excessive heat can turn this exquisitely etched piece of silicon technology into a high-priced guitar pick with amazing rapidity. For this reason, most 486DX2 and 486DX4 chips, as well as all Pentium processors, come with a heat sink attached to the top of the chip. A heat sink is simply a piece of metal or plastic with protruding fins or fingers that increases the chip's surface area through which heat can be dissipated. Many computer manufacturers are now using specially designed fans, about an inch in diameter, that are mounted directly atop the processor chip to provide additional cooling. These fans are also available as add-on kits that can be easily installed on existing machines; the kits attach to the power supply, as opposed to factory-installed models which draw power directly from the processor socket. The use of one or both of these methods for cooling down processors is recommended, particularly in a file server that might contain a greater number of heat-generating components than the aver- age PC.

### Intel Pentium

Intel released the first generation of its next processor line, the Pentium, in early 1993. The Pentium represents a major step forward in microprocessing, while retaining full backward compatibility with all previous Intel designs. This step forward is not completely without repercussions to the rest of the industry. While the chip indeed runs existing software faster and more efficiently than the 486, its most revolutionary innovations will require some effort from software developers to be fully utilized.

> What's in a Name?
> Intel chose not to continue using the x86 naming scheme for its microprocessors after extended litigation failed to prevent rival chip manufacturers from using the term "486" to describe their own products. A number cannot be copyrighted, so a suitable name was chosen for Intel's next generation microprocessor and duly protected by copyright. Pentium-compatible chips by Cyrix and AMD are now appearing on the market, but they cannot use the Pentium name, and Intel has remained a jump ahead by bringing their newest processor, dubbed the Pentium Pro, to market with unprecedented speed.

The primary improvement of the Pentium is that it utilizes superscalar technology. Unlike the 486 and all previous Intel processors, which could only execute one instruction at a time, the Pentium has dual instruction pipelines, a feature that previously has been available only in high-speed RISC microprocessors. This gives the Pentium the capability to execute two simple integer instructions simultaneously, within a single clock cycle, under certain conditions.

The primary data path, called the u-pipe, can execute the full range of instructions in the processor's command set. A secondary path, called the v-pipe, has been added. The v-pipe is not as fully functional as the u-pipe. It can only execute a limited number of instructions in the processor's command set under particular conditions, but it can do so at the same time that the u-pipe is functioning.

Because each pipe has its own ALU, the result of this is that certain combinations of instructions can be "paired" to execute simultaneously, with the results appearing exactly the same as if the instructions were performed sequentially. Other commonly used instructions have been hardwired into the processor for enhanced performance.

To take full advantage of these innovations, however, software developers have had to recompile their programs to ensure that this parallel processing capability is utilized to its fullest. By organizing software to make instructional calls using pairs that the Pentium can run utilizing both pipelines, developers ensure that a greater number of instructions are executed in the same number of clock cycles. This results in tremendous speed benefits.

Some NOSs that run on the Intel processor, such as NetWare 4.x and Windows NT, have already been recompiled to take advantage of the Pentium's capabilities. Many desktop applications will also be recompiled as they are ported to 32-bit versions designed to take advantage of newer 32-bit desktop OSs such as Windows 95 and OS/2.

Another improvement found in the Pentium is the presence of two separate 8K memory caches within the processor. Each of the two caches is of two-way set-associative design, split into two 4K sections using 32-bit lines (the 486 used 16-bit lines for its cache). One cache is utilized strictly for code, and therefore deals only with data traveling into the processor from the system bus. This prevents any delay of instructions arriving at the processor because of conflicts with the data traveling to and from the twin instructional pipelines.

The other cache is a data-only cache that has been improved over its 486 counterpart by being write-back capable (the older model was strictly a write-through cache). A write-back cache stores data on its way to and from the processor. Thus, output data remains in the cache and is not written to memory until subsequent usage forces a portion of the cache to be flushed. The write-through cache of the 486 stores data only on its way to the processor; all output is immediately written to memory, a process that can cause delays while the processor waits for memory chips to signal their readiness to accept data. The Pentium data cache can also be configured by software commands to switch from write-through to write-back mode as needed, holding its output in on-board memory buffers when the programmer deems it necessary. This helps to eliminate any possible delays caused by multiple calls to system memory. The data cache also has two separate interfaces to the system board to accommodate the two instruction pipelines of the processor, thus enabling it to deliver data to both pipes simultaneously.

Like the 486, the Pentium has a 32-bit address bus, giving it the same memory addressing capabilities as the earlier chip. However, the data bus has been increased to 64-bit, doubling the bandwidth for data transfers to memory chips on the system board. Some of the on-chip data paths have even been widened to be 256-bit to accommodate the Pentium's burst-mode capabilities, which can send 256 bits into the cache in one clock cycle. These attributes combined allow the chip to transfer data to and from memory at up to 528 Mbps, while the maximum transfer rate of a 50MHz 486 is only 160 Mbps.

Improvements have also been made in the FPU, the processor's error detection protocols, and the processor's power-management features. The FPU of the Pentium has been completely redesigned. It now utilizes an eight-stage pipeline and can consistently perform floating-point calculations in one clock cycle. Error detection is performed by two separate mechanisms: one using parity checking at the interface with the system board and an internal procedure that checks the caches, buffers, and microcode on the chip itself.

As mentioned earlier, Intel in 1993 released the first generation of Pentium microprocessors. Running at 60MHz and 66MHz, these chips possessed all the capabilities previously described but were hampered by some aspects of their design that caused a number of problems.

First, the large number of transistors on the chip (3.1 million, up from 1.2 million on the 486), combined with Intel's continued use of the three-layer 0.8 micron complimentary metal oxide semiconductor (CMOS) manufacturing technology from the 80486DX-50, required a very large die--this caused complications in the manufacturing process that severely hampered Intel's ability to deliver the chips in the quantities needed. In addition, this design caused the resulting chips to use a large amount of power, thereby generating tremendous heat. Moreover, the 60MHz version of the processor was nothing more than a 66MHz chip that had exhibited instability problems during the quality-control process when run at 66MHz. Reports like these were not received well by the consumer, and this, in combination with the initial high prices of the chips, caused informed buyers to be very cautious when considering the use of the new processor.

By March 1994, though, when the second generation of Pentiums came to market, the manufacturing techniques had been modified extensively. The chips were then made using a four-layer 0.6 micron bipolar complementary metal oxide semiconductor (BiCMOS) technology that had already been adopted by other chip manufacturers, and they required significantly less power than their earlier counterparts (3.3v, as compared to 5v for the earlier Pentium models, despite an increase in the number of transistors from 3.1 to 3.3 million).

90MHz and 100MHz versions of the chip were released, along with a 75MHz version designed for use in lower-end machines and portables. Unlike the first-generation chips, in which the processor ran at the same speed as the bus, the second-generation chips run at 150% of the bus rate. Thus, if a chip runs at 100MHz internally, communication with the system bus is actually conducted at 66MHz. At this time, 66MHz is still the fastest possible communication rate with the system bus.

Extensive power-management capabilities were also added to the second-generation Pentium processor. The chip is capable of placing itself into one of several low-power consumption modes, depending on the activities being conducted, and can even be used to control the suspension of power to other devices in the computer when they are not in use. While features of this sort are of more concern to laptop configurations than to those of file servers, bear in mind that reduced power also means reduced heat, which is beneficial to any system.

In March 1995, Intel introduced the first chips in its next generation of Pentium microprocessors. Running at 120 and 133MHz, the newest Pentiums are manufactured using a 0.35 micron process that allows for a manufacturing die one-half the size of the previous generation's die, and one-fourth the size of the original Pentium's die. Still operating at 3.3 volts and utilizing four layers of metal between silicon BiCMOS wafers, these chips not only increase Pentium performance levels still further but also allow for more efficient manufacturing processes, which means lower costs and ready availability. These are now the processors of choice in high-end Pentium machines, and prices have dropped considerably with the advent of the Pentium Pro, which now occupies the position as the premium (read: most expensive) Intel processor on the market. Indeed, there are even rumors to the effect that the 150 and 160MHz Pentiums are ready for market, waiting only for an opportune release time that will not jeopardize Pentium Pro sales.

Rival Pentiums. After extended legal battles with AMD and other rival microprocessor manufacturers, Intel has been forced to allow other companies to manufacture processors that are Intel-compatible but don't infringe upon Intel's designs.

> Creating a Clean Copy
> Rival manufacturers usually design their chips using a clean room technique. First, a team of technicians examines the target technology (in this case, an Intel chip) and documents its capabilities in great detail. Then a second team that has never examined the original technology is given the materials generated by the first team and tasked with the creation of a component that can do everything specified. This way, a product is created with the same capabilities as the original but realized in a completely independent way.

Several companies have created processors that rival the 486, some of which exceed the capabilities of Intel's 80486 line, and now the Pentium clones have begun to hit the market. NextGen's Nx586 is currently available, as are Cyrix' 6x86 and the Am5x86 by AMD. All of these manufacturers claim performance levels comparable to a 133 MHz Pentium, but offer few real advantages over a true Pentium at this time. The NextGen chip has so far failed, in the first systems using it, to provide a pervasive reason not to use Intel. Several of the larger systems manufacturers, among them Compaq, have expressed great interest in using these new processors, but their motivations are certainly more economic than technological. Until these chips are thoroughly tested in real-world situations, I would not recommend their use, especially in servers, and even if they are found to be stable, performance or price would have to be substantially better than their Intel counterparts.

### Intel Pentium Pro

While the BiCMOS manufacturing method has yielded a Pentium of even greater speed than its predecessors, it has also set the stage for the next level in the Intel microprocessor family. Code-named P6 during development, and finally named the Pentium Pro for its release, this processor was developed with one primary goal in mind, according to an Intel press release: "To achieve twice the performance of [the] Pentium processor while being manufactured on the same semiconductor process." In order to do this, a new method of executing instructions had to be developed.

All microprocessors, up to and including the Pentium, are dependent on the system bus and memory chips of the computer to deliver instructions and data to the processor for calculation. Because these components operate at slower speeds than the internal workings of the processor, there have always been times when processing halts for short periods while data is being fetched from memory chips. These memory latency delays result in underutilization of the processor, and because the speed of memory devices has increased over the years at a rate far less than that of processors, simply requiring faster memory is not an adequate solution.

Intel's initial attempt to address this problem came in the form of a component that was introduced in the Pentium processor called the branch target buffer (BTB), which attempted to intelligently anticipate the next instruction that would be required in a string of commands and to execute that instruction before it was actually received. When an instruction called for a branch (that is, a direction to access a command from a particular memory address), this address--along with the command--was stored in the Pentium's 256-entry BTB. The next time the same branch was called, this memory address would be located in the buffer, and its corresponding command executed before the instruction could actually be accessed from system memory. If the BTB had correctly anticipated the desired command, then the processor delay time caused by memory latency was partially offset by the immediate availability of the command's result; in other words, the command was executed while it was being accessed. If the BTB's guess was wrong, then a process called branch recovery was initiated, in which the results of the buffered command were discarded. The correct instruction was then executed with no significant loss of processor time.

The design of the Pentium Pro processor leaps ahead of this technique by means of dynamic execution. Dynamic execution is a method in which chains of commands are stored on the processor in an instruction pool and executed out of order during lag periods.

For example, the fetch/decode unit of the processor accesses a series of instructions from the system bus using a multiple branch prediction algorithm and a 512-entry BTB, and places them in the pool. The dispatch/execute unit then begins to perform the calculations of instruction #1, but the data required by the instruction cannot be found in the processor's cache and therefore cannot be completed until the required data arrives via the system bus. The processor then begins a dataflow analysis procedure that looks ahead to the next command in line for execution, instruction #2, but finds that it cannot be executed yet at all because it relies heavily on the results of the uncompleted instruction #1. Analyzing the next waiting instructions, the processor finds that instructions #3 and #4 do not rely on earlier results, and that all data required for their completion is already present in the cache. Therefore, they can be executed during the idle time while the processor is waiting for the data needed by instruction #1.

The results of instructions #3 and #4 cannot yet be returned to the permanent machine state, as they are still the result of a speculative procedure, so they are stored in the retire unit, where they wait until the results of instructions #1 and #2 are available. The retire unit then is responsible for reordering the results of all four instructions into the correct sequence, and sending them back to the programmer-visible registers where normal operations can continue, oblivious to the machinations performed within the processor. Thus, instructions enter and exit the processor in the correct order, but are actually executed in whatever order serves to most efficiently minimize idle time at the processor core.

The Intel developers predict that with their new 0.35 micron manufacturing technology they will be able to realize Pentium Pro processors running at speeds of 200MHz or more with far greater efficiency than that of any microprocessor available today. The first Pentium Pro, though, will run at 133MHz and utilize the 0.6 micron BiCMOS technology of the second-generation Pentiums. The chip will integrate 5.5 million transistors into its design, require a reduced power supply of 2.9v, and include as part of the unit an off-chip Level 2 system cache connected to the processor by a dedicated high-speed bus. Intel is relying heavily on PCI bus mastering controllers to provide the system bus speeds necessary to accommodate the faster chip, which will, at its peak, execute three instructions per clock cycle. These fundamental architectural changes mean that, while the Pentium Pro will be 100% software compatible with all previous Intel processors, there will be absolutely no upgrade path from earlier processor families without motherboard replacement.

The first systems utilizing the Pentium Pro hit the market near the end of 1995, and unfortunately, these systems do not yet demonstrate a marked improvement in processing speed over the Pentium. It is even being opined that Intel is holding up the release of its 150 and 166MHz Pentiums for fear of eclipsing the performance of its own "next generation." Particularly in light of the relative inadequacy of the first 60/66MHz Pentiums that were released, it is safe to say that it's early days yet for the Pentium Pro. It offers little substantial improvement over the Pentium while carrying the high-ticket prices that are natural for a newly released technology. Too expensive for a workstation and too untried for a server, we can only hope that the next "next generation" will show the same refinement that was achieved in the Pentium line.

It is also important to note that the primary competition to the Intel processor type in the desktop market comes from companies that produce chips that are primarily used in high-end workstations costing anywhere from 10 to 50 times as much as the average PC. Their processors also are much more expensive, and because the market is much smaller, they tend to be manufactured in numbers counted by the thousands, while Intel manufactured more than 30 million 486 processors in 1994, and claims to be on track to surpass this number of Pentiums in 1995! The efficiency and reliability of the manu- facturing process is therefore a crucial element of any Intel processor design. The industry has now progressed to the point where Intel is marketing products comparable to the high-end RISC processors for a much lower price and in quantities that probably make their competitors salivate.

With these considerations in mind, it is no wonder that Intel holds a lock on the world microprocessor market that extends far beyond PC use and into devices found in nearly every American home. It is very likely that this hold on the market will continue for some time to come.

### Pentium FPU Flaws

In late 1994, the detection of a flaw in the FPU of the Pentium processor was publicized to a previously unheard-of degree, not only in trade publications, but in the mainstream press as well. The existence of the flaw, in itself, is not a terribly unusual occurrence. Indeed, many experts were quick to comment that it would be virtually impossible to produce a microprocessor of such complexity that didn't contain a flaw at some level. The problem was caused by an error in a script that was created to download a software lookup table into a hardware programmable lookup array (PLA). Five entries were omitted from the table, with the result that division operations performed on certain combinations of numbers by the Pentium's FPU return results with what Intel refers to as "reduced precision." (That means the answer is wrong.)

Determining whether or not your Pentium contains the flaw is a simple procedure. Use a spreadsheet to perform the following calculation: (4195835/3145727)x3145727 Obviously, the result should be the original number: 4195835. A flawed Pentium chip, though, generates a result that is off by 256. Incidentally, while many sources have introduced software "fixes" for the problem, most of these do nothing more than disable the floating-point logic in the processor, slowing down all FP calculations considerably, including those unaffected by the flaw. Some software vendors also have made patches or switches available that disable floating-point calculations for their individual applications, allowing for mission-critical data to be protected and for the FPU to function normally elsewhere. Intel has made public a patch that intercepts only the offending floating-point calculations and executes them in a different manner, to assure correct results. This patch is in the form of code that is intended to be incorporated into application software by compilers and developers. It is not available as an executable program for use with software that has already been compiled.

No one with any experience in the computer industry can deny that products sometimes ship with flaws. It might even be safe to say that all products do, to some degree. The tremendous backlash of publicity regarding the Pentium flaw was due not so much to the problem itself but to Intel's response to industry criticism. The mathematician who discovered the problem attempted to ascertain just how serious the situation was by computing the probability of the error's reoccurrence during normal processor use. Intel immediately responded with its own figures and estimates that appeared to demonstrate that the occurrence of errors should be far less frequent than the mathematician's figures seemed to indicate. This argument continued in the press with increasing amounts of anger and statistics bandied about by all interested parties. It was also revealed that Intel had been aware of the problem for some time but had been very careful not to publi- cize it.

To clarify a few points, it should be noted that the problem occurs only in the FPU of the processor and that only a relatively small number of applications utilize the FPU. In the commercial desktop software field, it is primarily in spreadsheets, CAD, and similar financial and graphic-design applications that the FPU is used. Network OSs are not affected, although some server-based financial and database engines might be. In addition, many of the processor calculations performed by these applications are dedicated to file management, screen display, and other "overhead" tasks that use only integer calculations and have nothing to do with the floating-point calculations that potentially yield incorrect results. In other words, Intel was correct in its steadfast declaration that the vast majority of Pentium users will never be in a situation in which it is possible for the flaw to manifest itself. Where Intel began to go astray, however, was in the company's dealings with those users who do, in fact, utilize the FPU.

All the elaborate mathematical arguments presented by various parties were based on attempts to predict the number of divide calculations performed by particular applications under normal conditions. This was then used to calculate a probability of the flaw being manifested within a certain period of time. Intel attested, for example, that the average spreadsheet user was likely to encounter one divide error for every 27,000 years of normal spreadsheet use. This may be comforting to some, but in fact, there is no less chance that the payroll figures you calculate tomorrow will be wrong than there is that your income tax figures in the year 2296 will be wrong. There is no reason why the one time in 27,000 couldn't occur right now, no matter how many charts, graphs, and white papers attempt to prove otherwise. The bottom line is that there is a flaw, and your calculation results could be wrong.

On the basis of its probability arguments, Intel refused to implement a blanket exchange policy for purchasers of the flawed chips. They proposed instead a program in which users were to be made to prove that they had a need for a processor that functioned properly before they were given one. After massive marketing campaigns in which Intel earnestly tried to get a Pentium into every home in America, this announcement denigrating the vast majority of its users as unworthy of a product that performs as advertised was an act of staggering gall, and industry commentators proceeded to tell them so.

The final result of the conflagration was that Intel suffered a tremendous amount of bad publicity and ultimately instituted a program that provides free replacements of the flawed chips to any user requesting one. The general consensus of the press was that people in the industry did not fault Intel so much for the flawed product as they did for the way they attempted to cover up the problem, and the way they reacted once it was exposed. Indeed, as of this writing, only about 10 percent of the flawed Pentium processors have been returned to Intel. There are, however, a great many users of the Pentium upon whose calculations rest the stability of bridges, the safety of automobiles, the lives of medical patients, and so on.

We can only hope that, as a result of the incident, a lesson was learned by some vendors in this industry. Consumers finally are becoming more conscious of the games that have been run on them successfully for many years. Consumers are becoming harder for the vendors to fool, and if consumers stay the course, we can hope that it will be cheaper and easier for vendors to become forthright in all their shortcomings than to become clever enough to fool us again.

To obtain a replacement Pentium chip, call Intel at (800) 628-8686. You will be required to furnish a credit card number so that, if you fail to return the flawed processor chip within 30 days, you can be charged for the replacement. Intel representatives say that the company is doing this so that there is no way for flawed chips to remain in use or to be submitted for repeated replacements.

### 486 and Pentium Workstations

In chapter 5, "The Server Platform," we examined in depth the architecture and capabilities of the Intel 80486 and Pentium microprocessors. Of course, these processors that are acceptable for use in file servers also offer superb performance in a workstation. At this point in time, the standard network workstation PC configuration offered by most corporate-oriented vendors is a 80486DX2 processor running at 50 or 66MHz, 16M of memory, and approximately 300M of hard drive space. Pentiums at the workstation level are more often reserved for users with special needs, such as desktop publishing and other graphics work, CAD, and the like.

However, by the time that the Pentium Pro comes into general release, prices will certainly plummet on Pentium processors, and this eventually will become the standard desktop platform of choice. Of course, it will then be time to throw away all your company's 486s, right?

## Upgrading Workstations

One of the secrets to administering a large fleet of PCs (or even one PC, actually) is to know that the processor is not the be-all and end-all of a workstation's existence. A well-designed PC can run better and more efficiently than a badly-designed one with a faster processor. To be economically realistic in today's business world, it is more important to purchase machines that can easily be upgraded in other ways to accommodate the needs of the ever-expanding software packages that will have to run on them.

Windows is the business environment of choice today, and is likely to remain so for the next few years. However, Windows applications are becoming more and more demanding of workstation resources such as memory and hard disk space. 16M of RAM is now a standard, whereas it was quite a luxury only a year or two ago. Power users and advocates of other OSs such as OS/2, Windows NT, or Windows 95 feel that 32M is now preferable. The office software suites that have sold so well recently require anywhere from 75M to 100M of storage for a full installation. (Wouldn't you love to go back in time and say this to that guy who was so proud of his new 10M hard drive in 1983?) Networking a PC, of course, can eliminate the need to have all resources present on the workstation's local drives, but there should be enough room for the OS and the user's most frequently used applications.

The key, then, to practical workstation administration is to categorize users on the basis of their computing needs and allot microprocessors accordingly. After that, make sure that all your computers have memory and disk storage sufficient for today's applications. This probably means adding additional RAM and hard drive space to virtually every 386 that you still own and assigning them to the users with the most basic needs.

The only real problem with this philosophy is that the pecking order in the corporate world sometimes does not allow for this sort of resource distribution. By purely practical standards, assistants who deal with extensive amounts of correspondence, mail-merges, and so on, should get the 486s or Pentiums, while executives who only use the computer to check their e-mail should get the older machines. I leave to the individual network administrator the task of explaining this to the executives.

For the remainder of this chapter, therefore, we examine the hardware and procedures necessary to attach a PC to the network and to keep it there as a usable resource for as long a period as possible. This means we must look at the memory and processor upgrades that are practical on the workstation platform, the addition or replacement of the hard drive types most commonly found in workstations, and the purchase and installation of NICs. The ability to perform procedures like these allows you to preserve the hardware investment your company has already made, while keeping your users productive and, if not happy, at least satisfied.

### Processor Upgrades

As stated earlier, the Intel 80486 processors were more of an incremental development than a revolutionary one. It is primarily for this reason that processor upgrades from a 386 to a 486 are even remotely possible. Intel, however, would rather see you purchase an entire new 486-based computer, so it was left to their competitors to realize such products.

80386 Upgrades. Cyrix markets a line of microprocessor upgrade kits for 386s that offer 486 performance levels for nearly any 386 machine. It should be noted at the outset, however, that this is not a true 486 upgrade, but rather a means of accelerating the performance of a 386 machine to levels approaching that of a 486. Cyrix is the first to admit that an upgraded 386 machine does not equal the capabilities of a true 486, whether a genuine Intel or one of Cyrix's own, but they do promise an overall performance increase of approximately 100% for less than $300, which may be helpful in keeping those 386 machines useful in the business network environment.

Two different upgrade kits are available from Cyrix, depending on the existing processor in the 386 machine. 80386DX-based machines running at 16MHz, 20MHz, 25MHz, and 33MHz require a complete processor replacement, and Cyrix includes a chip-pulling tool for removing the old processor. The microprocessors in 80386SX-based machines are soldered to the motherboard, and the Cyrix kit for these includes a specially designed chip that snaps in place over the existing one. Both kits are designed for installation by the average user, making the process a rather simple one.

It should be noted that there are certain 80386 microprocessors that cannot be upgraded with these products. 16MHz 386SX machines manufactured before 1991 lack a float pin that is required for the new chip to function; 33MHz 386SX and 40MHz 386DX machines also cannot be upgraded. Older 387 math coprocessor chips might be incompatible with the upgrades, requiring replacement with a newer model. Cyrix has made available a listing of specific manufacturers and models that can be upgraded, as well as a free software utility that can be used to determine whether a specific machine is a viable candidate for an upgrade.

As far as software compatibility is concerned, Cyrix has certified their processor upgrades for use with all the major desktop OSs, including DOS, Windows, Windows NT, OS/2, and several varieties of UNIX. They have also certified their upgrades for use in NetWare, Banyan, and LAN Manager client workstations. Software is required to initialize the on-board 1K cache of the processor, and this is included in the kit.

Although clearly not a replacement for a true 486 workstation, an upgrade such as this provides a simple and economical way to preserve the extensive investments many companies have made in 80386 technology.

80486 Upgrades. It is only with 486 and higher-level machines that actual processor chip replacement becomes a practical upgrade alternative. The practice of upgrading the microprocessor on a PC's motherboard is one that should be approached with a good deal of caution. Basically, there are two fundamental problems involved in the process: the actual chip replacement and hardware compatibility.

Replacing the Chip. The physical act of replacing the microprocessor chip on a motherboard can be very difficult or ridiculously simple, depending on the hardware. Changing the processor in a machine with a traditional socket can be a miserable experience. First of all, because inserting the new chip into the socket requires a force of 100 pounds (or 60 pounds for the "low insertion force" socket), it will likely be necessary to remove the motherboard from the case. Most computers utilize plastic spacers at the corners to hold the motherboard away from the computer's case. Pressing down hard on the center of the board could easily crack it, so depending on the design of your PC, you might have to disassemble virtually your entire computer to get the motherboard out, unless you can manage to provide support for the board from beneath. Once you have done this, you will need a chip puller (or a small screwdriver and a lot of courage) to pry the old processor out of the socket with even pressure from all sides so that it is lifted vertically away from the motherboard. Next, you must line up the new processor over the socket so that all 273 or 296 pins are precisely lined up with their respective pinholes, then place the heel of your hand atop this expensive piece of silicon, metal, and plastic, and gingerly press down with all your weight until the chip is well seated. There should be approximately 1/16 inch of space between the chip and the socket. If you bend one of the pins, you might be able to bend it back with a fine-nosed plier. If you break off even one pin, however, the chip is ruined.

As noted earlier, you might find that your motherboard already has a second, vacant Overdrive processor socket on it. In cases like this, you need to perform only the latter half of the above procedure, but the machine's original processor will be disabled once the new chip is in place. Worse yet, damaging the original socket in an attempt to remove the old processor could render both sockets unusable.

You probably have gathered that I generally do not recommend replacing microprocessor chips on this type of motherboard. This is true, but not only for the reasons outlined above. The process can be difficult and is not recommended for the uninitiated, but it can be done with the right tools and a lot of confidence. The primary reason I hesitate to recommend upgrading processors is that there generally is more risk in the process than gain in the result.

On the other hand, most new motherboards utilize a zero insertion force (ZIF) socket for the processor. This is a plastic construction with a lever on the side that, when engaged, locks the processor chip into place in the socket (see fig. 6.1). In these machines, replacing a microprocessor chip is simply a matter of flipping open the lever, taking out the old chip (no tools needed), inserting a new one, and closing the lever again. It fits so loosely into the pinholes that you would worry about it falling out if the lever wasn't there. The replacement procedure is so simple that most motherboard manufacturers have opted to include a single ZIF socket, rather than two of the conventional type, for overdrive capability. The only things you can possibly do wrong are to insert the processor the wrong way, or insert the wrong processor into the socket. The first problem has been eliminated by the pin distribution in Intel's socket designs--there is only one possible way to insert the chip. The second, more complicated problem is explained in the following section.

Microprocessor Interchangeability. By far, the more pervasive problem in upgrading processors is knowing which models can be safely upgraded to which other models in what has become an increasingly bewildering array of chips in the Intel processor line.

If your file server is running any chip from the 80386 family, you can forget about upgrading. 386 motherboards simply cannot handle the increased requirements of the more advanced processors.

If your file server is running any chip from the 80486SX or DX family, then you definitely can upgrade to a comparable DX2 Overdrive processor. If your computer's motherboard contains the original 169-pin Overdrive socket (Socket 1), then you can install the appropriate Overdrive chip for your original processor. For example, if your original CPU was a 486DX-25, you can install the 486DX2-50 Overdrive processor. Do not try to install a DX2-66, as your motherboard is configured only to run with a processor that communicates with the system bus at 25MHz.

Figure 6.1
This is an empty ZIF socket for a microprocessor.

Newer motherboards may contain the 238-pin socket, designated Socket 2 by Intel, which provides some added processor upgrade flexibility. Still running at 5v, like Socket 1, the second socket can also support the addition of the P24T, the Pentium Overdrive processor, in addition to those mentioned above. Be aware, however, that this processor is not a full 64-bit Pentium. It is a 32-bit knockdown version that might provide some additional speed but will not result in the dramatic improvement that you would expect given the earlier description of the Pentium chip's capabilities. Depending on the price and availability of the Pentium Overdrive, which is now on the market after repeated delays, you might find it more economical to upgrade to the fastest possible 486 and save your money for a true Pentium system later.

Another alternative is the clock-tripled version of the 486, called the 80486DX4. Although not originally available on retail market, an overdrive version of the DX4 can now be purchased that triples the internal speed of the processor, just as the DX2 doubles it. ("Overdrive" is simply a marketing term for these processors when they are released into the retail market. Except for the P24T, they are indistinguishable from the chips found as original equipment in preassembled systems.) The primary architectural difference is that the DX4 runs at 3.3v, while all the other 486s run at 5v. For this reason, you can only install a DX4 chip into a Socket 1 or Socket 2 motherboard with the use of a voltage-regulating adapter. If you plug a DX4 directly into a 5v socket, you will ruin the chip and probably produce a very unpleasant smell.

The Intel Socket 3 designation is the one most conducive to successful upgrades. With 237 pinholes and designed to operate at either 3.3v or 5v, Socket 3 accommodates the entire 486 family as well as all the Pentium Overdrive chips. It is extremely important to determine which socket is installed on the motherboard that you wish to upgrade (see table 6.1). Some motherboard manufacturers also incorporate DIP switches into their upgradable processor designs. It is always safest to check the documentation of the motherboard or to call the manufacturer to determine whether or not a particular upgrade is advisable, and what additional adjustments to the motherboard might be necessary.

Table 6.1 Intel 486/Pentium CPU Socket Types and Specifications

Socket Number | Number of Pins | Pin Layout | Voltage | Supported Processors
Socket 1 | 169 | 17x17 PGA | 5v | SX/SX2, DX/DX2*
Socket 2 | 238 | 19x19 PGA | 5v | SX/SX2, DX/DX2*, Pentium Overdrive
Socket 3 | 237 | 19x19 PGA | 5v/3.3v | SX/SX2, DX/DX2, DX4, Pentium Overdrive, DX4 Pentium Overdrive
Socket 4 | 273 | 21x21 PGA | 5v | Pentium 60/66, Pentium 60/66 Overdrive
Socket 5 | 320 | 37x37 SPGA | 3.3v | Pentium 75/90/100/120/133, Pentium 90/100 Overdrive
Socket 6 | 235 | 19x19 | 3.3v | DX4, DX4 Pentium Overdrive

PGA=Pin Grid Array
SPGA=Staggered Pin Grid Array
*DX4 can also be supported with the addition of a 3.3v voltage regulator adapter.

An upgrade from a 486 to a full Pentium chip is not possible without replacement of the motherboard, due to the differences in their pinouts and voltage requirements. This is just as well, in a way, because a good Pentium machine requires a motherboard that has been built to accommodate the needs of the faster processor. For the same reasons, the first-generation Pentiums running at 60MHz and 66MHz and requiring the 273-pin, 5v Socket 4, cannot be upgraded to the second-generation chips running at 90MHz, 100MHz or faster, which use the 320-pin, 3.3v Socket 5.

The currently available family of Pentium processors, running at 75, 90, 100, 120, and 133MHz, all utilize this same socket, allowing them to be interchangeable on many motherboards, as long as the heat considerations of the faster chips are accounted for, which should not be a problem in most of today's Pentium systems. The Pentium Pro, however, as stated earlier, does not present a practical upgrade path from lesser processors, due to its fundamental architectural differences, particularly the integrated L2 cache.

### Memory Upgrades

When considering a business-oriented workstation running Windows 3.1 or one of the newer 32-bit OSs, no other upgrade yields as immediate an increase in productivity as an installation of additional memory. A faster processor can speed up individual tasks, but memory is the lifeblood of a multitasking environment. The more RAM that is available, the greater the number of applications that can be opened and used simultaneously. For the business user, this can be critical, as the workflow of a typical day at the office often consists of numerous interruptions and digressions that require access to various resources and documents. The ability to open an additional program without having to close others can add up to tremendous time savings over long periods.

The capability of the microprocessor to utilize disk drive space as virtual memory is useful as a safety buffer. When all the system's RAM is being utilized, further operations are carried out by swapping memory blocks to and from the hard drive. Once a system is loaded to the point at which virtual memory is used, however, performance levels drop precipitously, as hard drives are far slower than RAM chips are; hard drive speeds are measured in milliseconds (thousandths of a second), while RAM speeds are measured in nanoseconds (billionths of a second). It is best, therefore, to try to avoid the use of virtual memory whenever possible, and the only way to do this without limiting the capabilities of the machine is to install more RAM.

In chapter 5, "The Server Platform," we examined the way that system memory is organized into banks that determine the possible ways in which RAM can be upgraded. To reiterate the basic rule: a bank must be completely filled with identical RAM chips or must be left completely empty. You can consult table 6.2 to learn how most workstation computers have their memory organized, but the best way to find out what type and capacity of memory modules may be safely added to a particular PC is to check the documentation for the motherboard.

Table 6.2 Memory Bank Widths on Different Systems

Processor | Data Bus | Bank Size(w/Parity) | 30-Pin SIMMs per Bank | 72-Pin SIMMS per Banks
8088 | 8 bit | 9 bits | 1 | 1 (4 banks)
8086 | 16 bit | 18 bits | 2 | 1 (2 banks)
286 | 16 bit | 18 bits | 2 | 1 (2 banks)
386SX, SL, SLC | 16 bit | 18 bits | 2 | 1 (2 banks)
386DX | 32 bit | 36 bits | 4 | 1
486SLC, SLC2 | 16 bit | 18 bits | 2 | 1 (2 banks)
486SX, DX, DX2, DX4 | 32 bit | 36 bits | 4 | 1
Pentium | 64 bit | 72 bits | 8 | 2

The primary problem with upgrading memory in 386-based machines is that many vendors, at the time of the 386's popularity, utilized 1M SIMMs in their computers. These machines usually shipped in 4M or 8M memory configurations, and the existing SIMMs might have to be removed from the system to make room for larger-capacity modules in order to bring the system up to the 16M that is currently the typical amount of RAM for a networked Windows workstation. For example, a typical 386DX system might have eight memory slots broken into two banks of four each. The only way for the manufacturer to populate the machine with 8M of RAM would be to use 1M SIMMs in all eight slots. To perform a memory upgrade, at least one bank has to be cleared in order to install 4M SIMMs. The problem might be that you have no ready use for the 1M modules in this day and age, but letting those SIMMs go to waste is better than saddling a user with an underpowered machine.

Consult chapter 5, "The Server Platform," for more information on the actual installation of additional memory modules. The procedures are the same for a workstation as they are for a server. With memory prices hovering in the range $30 to $40 per megabyte, it might cost $500 or more to bring a machine up to 16M of RAM, but this will make the difference between a barely usable relic and a viable productivity platform. Also, remember that the SIMMs can be removed when it is finally time to retire the machine.

### Workstation Storage Subsystems

Like every other component in the personal computer, the minimum requirement for hard disk drive storage has greatly increased over the past several years. While the average 386-based machine sold in the early 1990s may have had a 120M drive as a standard component, a typical workstation configuration today may have 300M, 500M, or even more storage. Even more astonishing is the way that hard drive prices have dropped. Just five years ago, it was common to pay $2 or more per megabyte of storage (we won't even discuss the $1,500 10M drives of the early 1980s). Prices today are now often less than fifty cents per megabyte, and some hard drives have capacities of several gigabytes in the same form factor that could not hold one tenth of that amount in the past.

This is, of course, a direct reaction to the needs of computer users. The average Windows application today requires from 5M to 20M of drive space just for installation, and the advent of multimedia and true-color graphics has made multimegabyte data files commonplace. In addition, the increasing use of full-motion video on the desktop promises to expand these requirements to an even greater degree.

Attaching computers to a network, however, mitigates these requirements to some degree. It can often be difficult to decide how much disk space is truly necessary for a networked workstation. Some administrators swear by the use of a server for virtually all of a workstation's storage needs, including the OS. It is quite possible to run an entire Windows workstation without any local hard drive at all, but the burden that this places on the network, along with the decrease in performance that will be seen at the workstation, hardly compensates for the small savings on the price of even a modest workstation hard drive. Even a 100M drive allows for the installation of DOS, Windows, a good-sized permanent Windows swap file, and some basic applications. In today's market, though, a 100M drive costs more per megabyte than a larger unit.

Other factors also affect your decision of which hard drive size is ideal for a networked workstation. The type of work being done, the applications used, backup procedures, and the security of the data files all must be considered. Once the decision is made, however, it may be necessary to augment or replace the hard disk drives in some older or underpowered workstations, for reasons of increased capacity, increased speed, or even drive failure. The following sections examine some of the hard drive technologies that might be found in various workstations, paying particular attention to the ATA interface (also known as IDE), which is unquestionably the most popular workstation hard disk drive interface in use today. We also explore the latest enhancements to this interface that are contributing greatly to its speed and versatility. Unlike some older technologies, ATA hard drive upgrades are easy to perform, and the units can readily be moved to other machines when necessary. With this knowledge, a LAN administrator should be able to configure workstations to the needs of their users in a simple and economical manner.

Older Technologies: ST-506/ST-412. The original IBM PC had no hard drive storage capabilities built into the machine. BASIC was loaded from ROM and the typical program of the time could be stored on a small part of a low-density floppy disk, an audio cassette tape, or even typed in via the keyboard whenever it was needed. Even the XT had no inherent hard disk drive support, but the Seagate ST-506 and ST-412 hard drives began to be included in machines soon after this model's introduction.

The ST-506 was a 5M drive and the ST-412 held 10M, formatted. The interface used a separate controller on an expansion card that also contained its own BIOS, for the original XT BIOS had no support for hard disk drives. Later models such as the first AT machines did support hard drives on the system BIOS, in which case the controller's BIOS could be disabled or used in tandem with that of the system board. The controller was connected to the hard disk drive itself by two cables, a 20-pin data cable and a 34-pin control cable. In cases where two disk drives were installed into one machine, the control cable was daisy-chained from one drive to the other, but two separate data cables were used, one connecting each drive directly to the controller.

Other drives with greater capacities and using different encoding schemes were made available by Seagate and other, now defunct, drive manufacturers, but the interface became a de facto industry standard and was usually referred to by the name of its original progenitors. The capacity of drives using this technology is extremely limited. Drives using modified frequency modulation (MFM) encoding held up to 152M, and those using run length limited (RLL) encoding could store up to 233M. Although drives like these are sometimes referred to by the abbreviations MFM and RLL, these are only the methods by which binary data is encoded on the magnetic medium. The names have no connection to any particular drive interface. Indeed, most drives today still use RLL encoding, regardless of their interface type.

In today's workplace, the ST-506/ST-412 interface is completely obsolete. There is no market for new equipment using this interface, due to its slow performance (by today's standards), limited capacity, and the possibility of data corruption during communications between the controller and the hard disk drive. Although it was utilized by the first AT machines, many later 286-based clones had progressed to the point where they contained drives using the ATA interface that is prevalent today. If you are running machines that use ST-506 type drives, and they are functioning satisfactorily, they can be used as is until they fail. It is recommended that they not be touched except to completely remove them from the system and discard them. In cases of network workstations like XTs and ATs that use this technology, you will probably achieve greater performance levels by relying on the network for hard drive storage, and abandoning the local drive for everything except use as a boot device and for the OS.

ESDI. The enhanced small device interface (ESDI) was developed by Maxtor Corporation as a successor to the ST-506 standard. Utilizing the same cabling system as the earlier standard, as well as the concept of separating the controller from the drive, ESDI offered greater speeds and larger capacities, leading it to be a popular drive type for network servers in the late 1980s (see chapter 5, "The Server Platform," for more information on ESDI drives). As with the ST-506 interface, though, it is not used at all today in new installations, having been eclipsed by the low prices and increased efficiency of the ATA interface in the workstation market and by the greater capacity and versatility of SCSI in servers.

SCSI. The history and architecture of the small computer systems interface is covered in depth in chapter 5, "The Server Platform." The exact same hardware used in a server can also be installed in a workstation, usually with considerably more ease, as special server software drivers are not necessary. A SCSI subsystem running only hard disk drives can operate on a workstation using no software support beyond the BIOS on the SCSI host adapter. The use of other devices will require additional drivers, however.

Usually, cost prevents the use of SCSI in a workstation. A SCSI host adapter costs considerably more than an IDE interface because it is a considerably more complex mechanism. The growing popularity of Enhanced IDE (covered later in this chapter) and its ability to support virtually all of the features that have made SCSI the choice for high-end workstations in the past, is also making SCSI a less popular workstation alternative. In fact, the virtually identical construction of IDE and SCSI hard drives (except for SCSI's more complicated controller apparatus) often leads to the selection of IDE as the solution with less processing overhead.

The sole exception to this preference may be in the case of a workstation containing multiple devices that will be heavily used in a preemptive multitasking environment, such as Windows NT, Windows 95, or OS/2. SCSI's ability to simultaneously process multiple requests to different devices may make it the interface of choice in this case. For a networked workstation, though, this is likely to be a comparatively rare case, as it is usually more efficient to place such extensive resources on the network, rather than on a workstation. For this reason, the bulk of this section will be devoted to the IDE interface, which is most prevalent today.

IDE. By a substantial margin, the most popular hard disk drive interface in use today in the PC world is known as integrated drive electronics (IDE). This term, however, does not define a specific interface standard. It is used to refer to any hard drive whose controller has been integrated into the drive mechanism itself, forming a single unit. By combining the two, compatibility is guaranteed because they are manufactured by the same company. An IDE drive unit can also utilize any innovative communications techniques that the manufacturer cares to develop as a protected and proprietary standard because the two units operate as a closed system. Many of the more advanced features found in hard disk drives today, such as defect handling, error recovery, cache management, and power management require full integration of the controller with the various components of the disk drive itself. In the absence of a highly detailed standard outlining the implementation of such features, it would be virtually impossible to achieve any measure of compatibility between controllers and hard drives made by different manufacturers. In addition, communications between the controller and the hard drive are far more efficient with IDE because the distance that the signals must travel is greatly reduced, and the potential for cable interference between the two is eliminated.

The most common implementation of the IDE drive type is defined by the AT attachment (ATA) standard. Work began on the ATA standard in 1988, although some IDE drives had already been in use for several years. The standard defined the configuration of the 40-pin connector cable still used today, the 16-bit connection to the AT ISA bus as well as the BIOS support by which these drives are recognized by the host computer. Other IDE bus types exist, among them an 8-bit XT IDE and a 16-bit MCA IDE. The MCA type uses a 72-pin connector, and the XT uses a 40-pin connector, but the pinouts for both types are not compatible with the ATA standard. Although useful as replacements for the specific machines that utilized them, both of these interfaces are obsolete today, having been overshadowed by the ATA standard.

The AT Attachment Standard. As with the SCSI bus standards covered in chapter 5, "The Server Platform," the ATA standard defines a great number of drive capabilities, many of which are optional. The earliest model IDE drives were, in fact, existing hard drive units with a controller bolted to them that was little different from the standard ST-506 type. They used a simple command set comprised of eight different instructions and addressed specific locations on the drive through the use of direct references to the cylinders, heads, and sectors on the drive that was being referenced. This became known as CHS addressing. The concept is still in use today and has given rise to some significant problems in the development of IDE technology, as we will see later. Drives such as these are known as nonintelligent IDE drives because they lack support for the optional features defined in the ATA standard.

The standard also defines the cable that is used to connect the IDE drive to the host adapter, which may exist on an ISA expansion card or be integrated onto the motherboard. The cable uses 40-pin connectors and is keyed by the removal of pin 20 and the plugging of the corresponding pinhole to prevent the cable from being attached in an upside-down position. In most cases, dual drive installations are daisy-chained using a single cable that runs from the host adapter to each drive in turn. Of the 40 connections, seven are designated as grounds, which are interspersed among the other signals to provide some isolation. Of the other connections, 16 are devoted to data and another 16 to control functions. The key pin, number 20, makes up the remainder of the connection (the key pin is actually a nonconnection).

One of the other basic requirements of the ATA standard defines a maximum of two drives on a single host adapter. Unlike a SCSI configuration, in which an intelligent host adapter sends instructions to a specified device on the bus, both devices on an ATA hard drive installation receive all commands from the system BIOS or OS. It is up to the drives themselves to know whether a specific command is intended for their own execution. To make this possible, the two drives are differentiated by one being designated as drive 0 and the other as drive 1. These two addresses are often referred to as master and slave, respectively, but this terminology has been officially supplanted by the authors of the ATA spec--the two are also referred to as primary and secondary drives. Although it has become customary to run the cable from the host adapter to the secondary drive first, and then to the primary drive, this is not required (see fig. 6.2).

Figure 6.2
This is the IDE master-slave relationship.

The configuration of each drive is accomplished most often through the use of DIP switches on the hard drive assembly; the switches represent settings for single drive operation, drive 0 or drive 1. These settings are followed irrespective of the drive's location on the cable in relation to the host adapter. In some cases, a special cable in a Y- configuration is used in combination with a signal on pin 28 of the connector named CSEL (cable select). This cable allows this signal to pass through one branch of the Y, designating this drive as the primary, while suppressing it on the other, indicating that drive as the secondary. In either case, both hard drives receive all commands from the host adapter indiscriminately, and based upon their configuration, either act upon or ignore each command as it arrives.

In the early days of IDE drives, this addressing technique caused some compatibility problems, especially when two drives made by different manufacturers were installed in the same system. This was because no standard for the configuration of IDE drives existed. Once the ATA specification began to be followed, however, this problem was virtually eliminated. Drives manufactured today should be able to coexist with any other modern IDE drive conforming to the ATA specification. In fact, the installation of a second IDE drive in a PC today should consist of nothing more than setting the primary and secondary attributes, physically mounting the drive unit in the computer case, connecting the power and data cables, and entering the proper values into the system BIOS.

As the technology of IDE drives matured, they began to use more and more of the optional features defined in the specification. The most useful options that were added by most manufacturers were support for enhanced commands beyond the basic set of eight and sector translation. Drives that could make use of these features became known as intelligent IDE drives.

Enhancements to the IDE Command Set. Once IDE hard drives were marketed that supported the enhanced commands outlined in the ATA specification, the interface reached new heights of performance and convenience. These commands are present in the original ATA specification and are not to be confused with the Enhanced IDE standard now promulgated by Western Digital as a further development of ATA technology. (See the "Enhanced IDE" section, later in this chapter, for more details.)

Possibly the most useful of the new commands adopted by most manufacturers is the Identify Drive command. Sending this command to the drive causes the drive to return the contents of a 512-byte block containing extensive information about its capabilities, including the number of cylinders, heads, and sectors it uses, the drive manufacturer and model, the buffer scheme, the firmware revision, and even the serial number of the drive. While many utilities are available that can send this command to a hard drive and display the results, its most conspicuous use is in the system BIOS, which can use the information to automatically configure the computer's CMOS settings for that hard drive. This can be a lifesaver should a CMOS or battery failure lose existing settings. In a network environment with dozens (or hundreds) of computers, this is certainly handier than having to maintain records of configuration data for each machine, particularly when most hard drives on the market today do not conform to one of the 46 standard BIOS configurations.

From a pure performance standpoint, the Read Multiple and Write Multiple commands are the most valuable additions to the IDE instruction set. These commands allow for transfers of data that span across multiple sectors utilizing only a single interrupt. In combination with the system's block mode programmed input/output (PIO) capabilities, this essentially amounts to the equivalent of a burst mode that provides much faster data transfers than were possible using older drive technologies. PIO can be defined as any data transfer that is accomplished with the use and cooperation of the system's microprocessor. It is basically the antithesis to DMA (direct memory access) mode, which performs the same functions using a separate controller, located on a host adapter or on the motherboard, rather than the main system processor. These terms will come into play again when we discuss the new Enhanced IDE specifications that extend the capabilities of these transfer modes.

Sector Translation. As stated earlier, IDE drives use a CHS addressing scheme that is able to pinpoint any location on a hard drive by numbering the cylinders, heads, and sectors present in the drive. The original IDE drives were configured by simply entering the actual number of cylinders, heads, and sectors into the CMOS registers of the system BIOS. Thus, the same addressing scheme was used by the BIOS interface, located at software interrupt 13 (INT 13h), as was used at the device interface. This became known as operating the drive in raw physical mode, or sometimes as physical CHS (P-CHS) addressing.

In today's ATA drives, however, all sector addresses used by the host adapter are based on logical CHS (L-CHS) addressing. They have no relationship to the actual physical position of the sector on the drive's platters or to the position of the heads! This is because today's drives operate in translation mode, which causes the CHS address used at the INT 13h interface (the L-CHS) to be different from that used at the device interface (the P-CHS). This mode was realized primarily to protect the vital sectors of the drive from being overwritten during a low-level format. It is implemented simply by altering the numbers that are entered into the system BIOS so that the resulting product remains the same. CylindersxHeadsxSectors=Total Drive Sectors For example, halving the number of cylinders while doubling the number of heads results in a product that is equal to that computed from the original physical CHS settings--the total number of sectors is the same. As long as the hard drive unit can translate between two address schemes in both directions, the system will function. Thus, with today's IDE drives, the figures specified by the drive manufacturer for entry into the system BIOS table as well as the figures furnished by the Identify Drive command have absolutely nothing to do with the physical geometry of the drive. Every time an address location is sent through the host adapter to the hard drive, a translation occurs. The actual physical properties of the drive are completely isolated from every other part of the computer.

IDE drives are low-level formatted at the factory. This process outlines the tracks and sectors of the drive by writing over the entire surface of the disk. It also incorporates the configuration settings of several important drive features into data that are meant to be permanently stored on the drive. With earlier drive types, features such as head interleave and head and cylinder skew had to be manually configured by the user in order to optimize the performance of the drive. In addition, the inevitable defective blocks found on the platters during configuration at the factory would be manually noted on a sticker attached to the unit. These bad blocks had to be manually entered into a defect table before the drive would be completely reliable. With IDE drives, however, all these elements are preset at the factory during the low-level formatting process, and their configuration parameters are stored on the drive in protected areas. When a system BIOS is configured to address the drive in raw physical mode, the performance of a low-level format by the user erases the interleave and skew settings as well as the defect table from the drive. These items can be re-created, most often through the use of specialized utilities available from the drive manufacturer, but considerable effort is required, with virtually no benefit gained in the process. When running in translation mode, a low-level format cannot overwrite these elements.

This has led to the mistaken belief by many users that performing a low-level format on an IDE drive will result in irreparable damage to the unit, and that it must be returned to the factory to be properly reformatted. This is not true, but there is no real reason to have to perform a low-level format on an IDE drive. It should be noted that a low-level format does not refer to the functions performed by the DOS FORMAT and FDISK utilities--these are high-level operations. Low-level formats are only performed by other disk utilities, some commercially available (such as Microscope or Spinrite) and others distributed by drive manufacturers specifically for use with their drives.

Sector translation, therefore, is a means of protecting the vital configuration settings of an IDE drive from accidental erasure, and insulating the end user from the need to worry about minutiae involved in the mechanical operation of hard disk drives. It has, however, led to some compatibility problems that were not even remotely anticipated by the original developers of system BIOSs, hard drives, and the ATA specification.

IDE Drive Limitations. The ATA standard allows for an IDE hard drive unit to have up to 65,535 cylinders, 16 heads, and 63 sectors. What this all means is that up to 228 total sectors or 137G of storage can be addressed. The logical CHS addressing used by the system BIOS at the INT 13h interface uses two 16-bit registers, referred to as DX and CX, for each address. These are broken down as follows:

- The DX register uses eight bits to specify the head number and eight bits for the drive number.
- The CX register uses 10 bits to specify the cylinder number and six bits for the sector number.

The largest possible eight-bit number is 255, the largest 10-bit number is 1,023, and the largest six-bit number is 63. Therefore, the BIOS is limited in its addressing to 1,024 cylinders (0-1,023), 256 heads (0-255), and 63 sectors (1-63), thus supporting drives of up to 8G in capacity.

Unfortunately, the ATA specification's maximum of 16 heads, in combination with the 1,024 cylinder maximum of the INT 13h interface, results in a maximum capacity for a single IDE hard disk drive of 1,024 cylindersx16 headsx63 sectors=1,032,192 1,032,192 sectorsx512 bytes/sector=528,482,304 bytes=504M Please note that this is not in any way a hardware limitation but is simply an unfortunate clash of two software specifications. Note also that the INT 13h interface uses an eight-bit value for the head number, resulting in a maximum value of 255. This excess (since no drive has 255 physical heads) has been used to implement different translation schemes for other drive types, like ESDI and SCSI, that allow drives up to 8G in size to be addressed. Meanwhile, the 504M IDE drive size limitation, while considered to be an astronomical amount of storage to the original developers of these specifications, has become a real disadvantage in the modern computing world. This and the limitation of the interface to only two hard disk devices, as well as the inability to support other types of peripherals such as tape and CD-ROM drives, has led to the formation of several different committees attempting to expand the capabilities of the ATA interface. The following sections examine some of the ways in which these limitations are being addressed by products already on the market today, and take a look at the standardization efforts currently under way to expand the capabilities of the ATA interface even further.

Enhanced IDE. Enhanced IDE is actually no more than a marketing campaign by the Western Digital Corporation for a line of products that expand the capabilities of the ATA interface. Seagate Technologies has a similar program in place, which it refers to as Fast ATA, and as both are quite new, it remains to be seen which of the two (if either) will ultimately take control of the market. Enhanced IDE, however, is more expressive of the industry's attempts to improve more than just the speed of the interface.

The question at this point isn't whether or not to embrace this technology; it's here. If you purchase a new system today, it almost certainly includes some kind of enhancements to the ATA interface. If you buy a Seagate or a Western Digital IDE drive, it is a Fast ATA or Enhanced IDE drive. Attaching it to an existing system without any other modifications allows the device to function according to the existing ATA standard because all the hardware is fully backward compatible.

The problem is that because no specific standards have been ratified yet, a product can be called Enhanced IDE, EIDE, or Fast ATA if it possesses just one of the several features that are generally accepted to define the technology. Also needing to be considered is the matter of which of these features can be supported by an existing PC. Enhanced IDE is both a hardware and a software solution. Nearly all machines can take advantage of at least one of the improvements provided by Enhanced IDE, but for the upgrade to be economically worthwhile, a greater degree of compatibility should be desired. The following sections examine the features that are provided by the various standards, and then discuss how to implement them in existing machines.

ATA Enhancements. Enhanced IDE can be defined as a system providing any combination of the following features:

- Support for hard disk drives larger than 504M
- Support for twin connectors allowing the attachment of up to four devices
- Support for non-hard disk drive peripherals, such as CD-ROM and tape drives
- Support for the high-speed PIO mode 3 or DMA mode 1 data transfers specified by the ATA-2 standard

These features require varying degrees of support from the host adapter, BIOS, OS, and peripheral devices to function properly. Table 6.3 illustrates which of the components of a PC require modification to accommodate each of these features. We then examine each one in turn, discussing how each is accomplished and what hardware or software changes are required to implement it.

#### Table 6.3 Hardware and Software Support Required for IDE Enhancements

Features | Peripherals | Host Adapter | BIOS | Operating System
>504M | Yes | No | Yes | Yes, except DOS
Fast Data Transfers | Yes | Yes | Yes | Yes
Dual Host Adapters | No | Yes | Yes | Yes
Non-HDD Devices | Yes | Yes | Yes | Yes

Host Adapter and BIOS support are considered separately, though both may be supplied by the same expansion card.

Breaking the 504M Barrier. Having examined the cause for the 504M IDE drive capacity limitation, we now will cover the various means by which it can be transcended. Given the sector translation that already takes place inside modern hard drives, increasing the maximum capacity allowed is basically a matter of altering the translation algorithm so that one of the limiting factors is modified. This can be done in several ways.

The most immediately obvious solution is one that has already been exploited by SCSI host adapters for some time. Although an ATA-compatible disk drive has only four bits dedicated to the head address, for a maximum value of 16, the INT 13h interface has six or eight bits that can be devoted to this purpose. Because a sector translation is already taking place, and the values entered into the BIOS do not reflect the physical geometry of the drive, it is a fairly simple matter to alter the BIOS settings in order to increase the possible value of the head address. Of course, one of the other parameters must be decreased by the same factor so that the total number of sectors (that is, the product of cylindersxheadsxsectors) remains the same. When a call is then made to the hard drive, the translation algorithm that is executed within the unit has to be changed to accommodate the altered addresses furnished by the BIOS.

For the hard drive, this is simply a modification of a translation procedure that is taking place already in another form. At the other end, however, things become a bit more difficult. Support for the modified addressing scheme must be provided by the system BIOS and, in some cases, the OS. While BIOS manufacturers have, over the years, added greater functionality in the form of features such as automatic hard drive detection and other utilities of various types, the basic functionality of the BIOS has changed little since the introduction of the AT in the 1980s. Support for drives larger than 504M must be added eventually to the system BIOS of the average PC, but it will be difficult to overcome the complacency of this particular branch of the industry and persuade them to agree on a standard implementation to be followed by all.

In the interim, support for these devices can be provided by the use of either software drivers or an additional BIOS that replaces the functionality of the original system BIOS. As an alternative, a software solution might occur in the form of a driver that resides in one of the disk boot sectors, overriding the INT 13h BIOS with one that supports the modified translation. This usually is accomplished by having the driver utilize two of the unused bits from the head address for addition to the cylinder address, thus increasing the maximum value of this setting. At the peripheral side, the same basic process is used to "borrow" two bits from the cylinder address and "lend" them to the head address. The result is support for drives up to 8.4G in size.

Other drivers may accomplish the same end in a different manner, for there is as yet no standardized protocol for the design of these drivers. Such drivers may be supplied by the disk drive manufacturer or may be a third-party product such as OnTrack's Disk Manager. The other problem is that, while this procedure may be satisfactory for DOS-based systems, protected-mode OSs often overwrite the memory resident driver when loading their kernel. This is because these drivers are loaded very near the beginning of the boot process, modifying the master boot record (MBR) of the hard drive and storing a dynamic drive overlay on the first disk track in order to allow the system to be booted from a supported device. If an OS, in loading itself and shifting from real to protected mode, overwrites the modified MBR, then access to the drive's partitions is lost unless another driver is provided specifically for the use of that OS.

Even the Windows 32-bit Disk Access feature will not function with this sort of driver, requiring a replacement for the standard *WDCTRL driver. This can become quite a complex array of drivers, especially for systems that are used in a multiple-boot configuration to accommodate various OSs. Also, this kind of driver has no function other than to provide access to drives larger than 504M in size. It does not support any of the other IDE enhancements.

The BIOS-based solution to breaking the 504M barrier is no more standardized than the software solution but is usually more effective. Several manufacturers have developed different solutions to the same problem. The closest thing to a standard is found in the Microsoft/IBM INT 13 Extensions document, but Phoenix has created what is essentially a superset of this specification that has been adopted for use by several of the best-known BIOS vendors, including Phoenix, AMI, and Award. Another implementation developed by Western Digital seems to be trailing behind these other specifications in popularity--it is reputed to be flawed and lacking in features found in the other BIOSs mentioned.

A standard system BIOS maintains a fixed disk parameter table (FDPT) that contains a single set of CHS addressing information. An enhanced BIOS functions by constructing, when necessary, an enhanced disk parameter table (EDPT) that contains two sets of CHS addressing information. This is the reference point through which the address translation takes place. Another type of translation may also be supported by an enhanced BIOS, named logical block addressing (LBA). This is a completely different form of sector addressing that abandons the traditional cylinder/head/sector divisions in favor of a single address that is used to number each sector of the hard drive consecutively. Support for this type of addressing was first introduced to the IDE world as part of the ATA-2 standard, but it has always been utilized by SCSI. In order to be utilized, both the BIOS and the disk drive must support it.

Since most OSs generate their disk access requests using LBA addressing, it would be logical to assume that this is the preferred mode of operation. It is likely that within a few years, this will be the case. Because a layer of conversion overhead is being removed, it should follow that performance levels will be slightly increased. This is not always true, however. First of all, DOS, its FDISK utility, and the master boot record are all CHS-based, so support for some type of CHS-to-LBA translation will have to be provided, and because this conversion is generally slower and more complex than an L-CHS-to-P-CHS translation, additional overhead actually may be added. Second, the developers of ATA-compatible hard disk drive designs have spent many years optimizing their CHS translation procedures. LBA is relatively new to them, and drive performance levels might be reduced as a result, at least until drive designs using the technology have had some time to mature.

Determining whether or not the system BIOS of a particular machine supports the extended translation capabilities can sometimes be difficult. A BIOS that allows the specification of more than 1,024 cylinders in the CMOS table is not conclusive. Any BIOS with a copyright date prior to 1994 almost certainly does not include these capabilities, which eliminates a great many of even the newer machines on the market. In my experience, a surprisingly large number of computer manufacturers rely on BIOSs that are several years old, even in their higher-end machines.

Extended translation capabilities are most likely to be found in the products of the more popular BIOS manufacturers. An AMI BIOS dated April 24, 1995, or later and Phoenix BIOSs with version numbers of 4.03 or later should support IDE drives larger than 504M, although exceptions may be found. Disk drive settings such as "LBA," "ECHS," or even "Large" are also indications that a BIOS supports these drives. Some drive manufacturers have made utilities available that query a BIOS for the existence of an EDPT.

While support for these various types of sector translation will eventually be included in the system BIOS of every PC, they are available today primarily as BIOS implementations on the Enhanced IDE adapter cards that are designed to support some or all of the features discussed in this section. The BIOSs on these cards function much in the same way as those on SCSI host adapters, replacing or augmenting only the hard disk functionality of the system BIOS.

In the case of products that support several different types of extended translation, it is important first to be sure that your ATA peripherals all support the type of addressing that you select in the BIOS. It is important second to remember that once you have selected a particular translation mode, partitioned the drive, and installed your software, this setting should not be changed. Your existing data will not only be inaccessible but may also be corrupted beyond any hope of recovery. The same warning holds true with drives that have been partitioned and formatted using a BIOS that does not support extended translation. Although such drives have been transferred successfully to a machine with an EIDE-equipped BIOS, it is usually necessary to completely repartition and reformat the drive and then restore its files from a backup. Always make backups before attempting a transfer of this type. This technology is too new to guarantee this kind of compatibility.

In addition to BIOS support, it also is necessary to install additional drivers for most protected-mode OSs. For instance, Windows' 32-bit Disk Access feature (also known as FastDisk) will not function with BIOSs of this type without modification. This feature is named somewhat inaccurately, as it does not have anything to do with 32-bit transfers. This driver essentially replaces the disk access routines of the BIOS with Windows' own routines that operate in protected mode. DOS sessions within Windows cannot utilize virtual memory without this driver, requiring 640K of actual RAM for each one, and its presence also reduces the number of switches that have to be made between real and protected mode, offering a modest performance improvement.

Most manufacturers of Enhanced IDE host adapters have begun to include with their products a replacement for the *WDCTRL driver that provides this feature in the basic Windows environment. This driver is usually a file with a 386 extension that is loaded from the Windows SYSTEM.INI file. Incidentally, the *WDCTRL driver that ships with Windows is also incapable of functioning with SCSI drives, more than two hard drives, 32-bit host bus transfers, block transfers, or non-hard disk IDE peripherals--several reasons why you may want to replace this driver with an enhanced version.

Fast Data Transfers. The ATA specifications define several different data transfer modes for both PIO and DMA modes. As stated earlier, the difference between these two is that the PIO modes utilize the system's microprocessor as an intermediary between the disk drive and system memory, while the DMA modes utilize a separate controller for arbitration and data transfers. PIO modes 0 through 2, as outlined in table 6.4, are defined in the original ATA specification. Modes 3 and 4 were added in the ATA-2 standard, utilizing the IORDY signal for hardware flow control to slow down the interface when necessary.

#### Table 6.4 PIO Data Transfer Modes Defined in the ATA and ATA-2
Specifications

PIO Mode | Data Cycle Time (ns) | Transfer Rate (M/sec) | Bus Type
0 | 600 | 3.3 | ISA
1 | 383 | 5.2 | ISA
2 | 240 | 8.3 | ISA
3 | 180 | 11.1 | VLB or PCI
4 | 120 | 16.6 | VLB or PCI

The transfer rates are arrived at by multiplying the data cycle time (the time it takes to transfer one word, or 16 bits, of data) by the number of words per sector (256) by the number of sectors per megabyte (2,048).

DMA transfers can be separated into two distinct types: bus mastering and non-bus mastering. Both require more hardware than the PIO modes: a DMA arbitration unit, a DMA transfer unit, and signals from the system bus that allow the DMA controller to assume command of the bus. The difference between the two types is primarily in the location of the DMA controller. A non-bus mastering system utilizes the DMA controller located on the motherboard of the computer. The efficiency of the system is therefore dependent on the bus type used in the machine. The DMA controller on ISA systems is far too outdated and slow to achieve any of the faster transfer rates, and VLB systems are incapable of acting as DMA targets. The EISA and PCI buses, however, both have their own higher-speed DMA transfer modes defined in their specifications, providing transfer speeds of up to 4M/sec for EISA and 6 to 8M/sec for PCI.

For any bus type, though, better performance can be realized through a bus mastering host adapter, in which the DMA controller resides on the expansion card itself, resulting in less communications overhead and better integration with the rest of the system. This, of course, adds to the complexity and cost of the host adapter. As with PIO, the initial DMA modes--single-word modes 0 and 1, and multiword mode 0--were defined in the original ATA specification, while single-word mode 2 and multiword modes 1 and 2 were added in the ATA-2 document. Table 6.5 identifies the various modes available and their transfer rates.

#### Table 6.5 DMA Data Transfer Modes Defined in the ATA and ATA-2
Specifications

DMA Mode | Cycle Time (ns) | Transfer Rate (M/sec) | Bus Type Required
Single Word
0 | 960 | 2.1 | ISA
1 | 480 | 4.2 | ISA
2 | 240 | 8.3 | PCI
Multiword
0 | 480 | 4.2 | ISA
1 | 150 | 13.3 | PCI
2 | 120 | 16.6 | PCI

Enhanced IDE products usually provide support for PIO modes 3 or 4 and DMA modes 1 or 2, in addition to the slower modes for backward compatibility. Unfortunately, the exact modes supported by individual products vary. This is one of the differences between the Seagate Fast ATA specification and the Western Digital Enhanced IDE specification, for example. Enhanced IDE calls for support of all four of the higher-speed modes added in the ATA-2 standard, while Fast ATA only defines support for PIO mode 3 and DMA mode 1. In case you aren't confused enough, Seagate also has defined a Fast ATA-2 standard, which incorporates PIO mode 4 and multiword DMA mode 2 into its specification (again, nomenclature here is not as accurate as it might be: this standard must accurately be thought of as [Fast ATA]-2, rather than Fast [ATA-2]).

Currently, the higher-speed PIO modes are more widely supported by available hardware than the DMA modes, although this situation will change, as advanced DMA support surely will become more prevalent. Notice, however, that the fastest modes of both types run at the same speed, 16.6M/sec, and although this is nowhere near the actual throughput that you will receive, either one is far faster than the 3.3M/sec of traditional IDE. For use with DOS and Windows 3.1, DMA transfers offer little real advantage over PIO, as the system processor has to wait for the transfer to be completed anyway before proceeding to the next task. When running a preemptive multitasking OS, however--such as OS/2, Windows 95, or Windows NT--the processor can execute other tasks while transfers are occurring, giving DMA a definite advantage over PIO. Whatever the mode used by an Enhanced IDE system, however, it must be supported by both the drive and the host adapter. The failure of one of the devices to support a given mode causes the transfer rate to drop to the fastest mode supported by both devices.

The question of whether or not a particular computer can support the higher-speed transfer modes is, for once, a simple one. In short, any computer with a PCI or VLB slot for the installation of an ATA-2 host adapter (or a motherboard with the components integrated) can support the higher speeds, and other machines cannot. These host adapters may provide other advantages as well, including 32-bit transfers on the system bus, which require FIFO logic and data buffers on the host adapter. As with the higher- capacity drives previously discussed, additional drivers for particular OSs may be needed to take advantage of the increased transfer speeds in certain environments. A FastDisk replacement for Windows 3.1 definitely is needed.

It is also necessary for an ATA-2 host adapter to have access to IRQ 14 to function properly. Some early PCI systems did not include IRQ 14 on the local bus slots, and most today only provide it on one of the PCI slots. If you are forced to use a slot that does not have access to IRQ 14, it is necessary to use a paddle card in an ISA slot to provide it. A paddle card is a separate expansion card--attached to the host adapter by a ribbon cable--that plugs into another slot to take advantage of attributes not provided by the slot in which the host adapter is installed. This problem does not exist in VLB machines.

One of the common misbeliefs regarding Enhanced IDE is that two devices installed on a single connector can run only as fast as the speed of the slower device--for example, that a drive capable of running in PIO mode 4 is slowed down to PIO mode 0 when a second drive is installed that supports only the latter mode. This is not the case, as long as the interface provides the proper support. The Identify Drive command defined in the ATA-2 specification can provide the host adapter with the maximum transfer rates supported by each device, and as long as the interface supports independent timing for the two devices, such a slowdown does not occur.

As with any consideration of an interface between a hard disk drive and the rest of the computer, the transfer speeds specified by manufacturers rarely provide any indication of real-life performance. Remember that no matter how fast an interface is, it cannot improve the capabilities of the drive itself. A local bus IDE interface might already provide sufficient bandwidth to accommodate the capabilities of the installed hard drives, without the need for the enhanced transfer modes. In a case like this, the installation of a new host adapter yields little or no perceivable improvement in disk performance. An IDE interface running over the ISA bus, however, rarely exceeds 2.5M/sec, in which case a bottleneck probably exists that will be eliminated by the use of an enhanced host adapter running over the local bus.

With any IDE hard drive upgrade or addition performed today, the primary concern is to try to pay only for the features that the host system can take advantage of or to try to take advantage of all of the features provided. Most of the hard drives on the market today provide support for one or more of the high-speed DMA or PIO transfer modes. A computer with only an ISA bus will not be able to operate the drive in any of these modes but will have no difficulty running at the best possible ISA speed.

Non-Hard Disk Device Support. The ever-increasing storage needs of the average PC user and the rising popularity of the CD-ROM as a data delivery medium have made it necessary for the industry to provide an interface that can support devices such as tape and CD-ROM drives, as well as hard disk drives, without resorting to the higher costs of a SCSI installation. For a networked workstation, these capabilities might not be as essential as they would be for a stand-alone PC because backups and CD-ROM access can be provided by a server, but most implementations of the various Enhanced IDE specifications include support for such alternative devices, and they are rapidly becoming standard equipment in new computers marketed for stand-alone use.

This support is provided through a specification called the ATA Packet Interface (ATAPI). A separate specification is needed because the eight-bit task file used by hard disk drives is not large enough to support some of the required CD-ROM command structures. ATAPI devices use the ATA hardware interface at the physical level, but utilize a subset of the SCSI command set at the logical level. To prevent their being mistaken by non-ATAPI-aware software as a hard disk drive, the devices remain dormant until awakened by a special command sequence, at which point they begin to operate using a command protocol that is radically different from that used by hard drives.

While ATAPI remains compatible with and utilizes the existing eight-bit ATA task file, commands may also be sent to the target device by means of the ATAPI transport protocol in packets of at least 12 bytes, as data, through the data register. For compatibility reasons, certain ATA instructions, such as the Identify Drive and Read commands, are not executed and instead are aborted immediately, generating an interrupt to signal the completion of the command with an error status of "aborted." This is done deliberately, to prevent the BIOS and older drivers from mistaking the ATAPI device for a standard ATA hard disk drive. The standard also provides support for command overlapping, which is similar in basic functionality to SCSI disconnection, in that it allows a peripheral device to release its hold on the controller so that other tasks may be performed while a command is executed by the ATAPI device. This is necessary because of the nature of CD-ROM and tape drive commands such as REWIND, which take far longer to execute than do hard drive commands.

Due in part to this use of the data register for purposes other than those for which it was originally designed, support for ATAPI devices must be provided by every component of the Enhanced IDE system. A controller that is not ATAPI-aware will not know how to handle a 12-byte packet arriving over a register that is expected to transport only 512-byte sectors. BIOSs and OSs must also be aware of the difference and not attempt to utilize the device as if it were a hard disk drive. Finally, the peripheral itself must be modified to be used with an IDE interface, although since the command set used is essentially a subset of the SCSI command set, radical redesigns are not necessary in most cases. ATAPI support is nearly always provided in IDE host adapters that provide access to more than two devices, as covered in the next section.

Dual Host Adapters. In order to be competitive with the versatility and storage capacities offered by SCSI, it is necessary for Enhanced IDE to overcome the two-device limitation to which it has always been subjected. The ability to attach non-hard disk drives to the interface makes this feature all the more essential.

Actually, the basic capability to run dual IDE host adapters has been present in PCs for a long time. The PC I/O map reserves a port for a secondary IDE adapter at IRQ 15 and base address 170, and IDE host adapters have long been available that could be configured to use it. BIOS support has not been widely available, however. The innovation of Enhanced IDE, in this respect, is to provide this BIOS support and place dual host adapter connectors on a single expansion card (see fig. 6.3). Separate cables are used to connect two separate chains of two devices each. Separating the two chains in this manner can be particularly useful when troubleshooting problems that occur through the combination of different device types. Although the ATAPI specification specifically intends for non-HDD devices to be able to exist on the same cable as a hard drive, some of the more advanced hard disk interfaces have features that can confuse device drivers that are not ATAPI-aware. The ability to segregate a tape or CD-ROM drive on its own cable may be a more acceptable solution than waiting for a new driver to be written.

Figure 6.3
This is how an IDE dual host adapter installation looks.

Even on systems that lack a local bus interface, ISA expansion cards are available that provide support for up to four IDE devices, including non-hard disk drives. BIOS support for drives larger than 504M can also be provided. The faster PIO and DMA transfers specified in the ATA-2 specification are not available, but the availability of these products means that the storage capacity and versatility of almost any PC can be enhanced for a very modest cost (beyond the prices of the peripherals themselves).

The Future of Enhanced IDE. As you might readily imagine, after reading about the dearth of standards and specifications that make up Enhanced IDE technology, a great deal of work needs to be done to consolidate the many options available into a more coherent market structure. The physical installation of an Enhanced IDE subsystem is usually quite simple. The difficult part is the purchasing of products that will work together to provide all of the different features and enhancements that are expected of them. In nearly every problematic installation, however, access to the data on the drive will be provided. Troubleshooting Enhanced IDE usually amounts to answering questions like "Why am I not getting the 16M/sec transfers that I was promised?" or "Why does one particular method of sector addressing fail to work when the others do?" The answer, in most cases, is that one of the vital components lacks the support for that particular feature, be it BIOS, host adapter, OS, or the peripheral itself. As the standards mature, support for all of the enhancements to the interface will become far more commonplace in most devices, and the need to investigate the capabilities of each component will diminish.

At the workstation level, a simple matter of adding an additional IDE hard disk drive should be just that: simple. It will only be the newer systems that require the fast transfer modes, and few networked PCs require more than two devices. Future plans for the ATA specification, however, include the possibility for command overlapping and other features that may allow Enhanced IDE to become a competitor in the server market as well. As it stands today, a small network could be adequately serviced by a file server using Enhanced IDE drives. A loss in performance will definitely be realized, though, in larger machines with multiple drives, as the ATA specs do not yet support the multitasking capabilities of SCSI. At the workstation, though, an important bottleneck is eliminated by the ATA-2 transfer modes when used in combination with a PCI or VLB interface. It is now up to the hard drive manufacturers to provide devices that can fill the bandwidth now made available by a fully featured Enhanced IDE storage system.

### Network Interface Cards

The network interface card (NIC), also called a LAN adapter, is the gateway through which a stand-alone PC communicates with a LAN. Requests for access to network resources that are generated by the workstation's OS are fed to the NIC by the LAN drivers resident in the computer's memory. It is the NIC that converts these signals into packets of the proper format to be sent over the network. The packets are then sent to a transceiver, usually located on the NIC itself, which converts them from a digital format to an analog one that can be sent over the network medium. The NIC also monitors the transmissions traveling over the network medium, allowing the translated packets to pass from the workstation onto the LAN only when traffic conditions allow it. At the same time, it checks each transmission that passes by on the network to see whether it is destined for that workstation. If it is, the NIC intercepts the transmission and routes it to the OS, where it is processed as though the signal had originated within the workstation.

As with nearly every other component in a PC, NICs range from simple, inexpensive devices offering basic functionality for well under $100, to complex, high-performance units that can cost up to $1,000. Very often, a relatively low-priced NIC is perfectly adequate for the average network workstation.

The basis of computer networking is the communication that takes place between hardware devices on a great many levels. When a user at a workstation requests a file that is located on a server in the next room--or even the next state--the goal of the network administrator is to see that that file is delivered in the most efficient manner possible.

Bottlenecks rob the network of efficiency, and the NIC is one more location where bottlenecks can conceivably occur. As we have discussed in many other contexts, an improvement in the efficiency of a particular component is only needed when that component is the location of a bottleneck. A faster NIC will not provide any improvement if the desired file is stored on a slow hard drive, if the network itself is saturated with traffic, or if the workstation's bus is slow in delivering the data to the processor.

A selection of the correct NIC for a particular workstation must take into account not only the capabilities of the workstation itself but also the capabilities of the network. If you, as the administrator, have assigned available workstations to your users on the basis of their computing needs, then NIC selection should simply be an extension of those decisions. The biggest variable in the equation, however, as with all computing technology, is the question of what the needs of users will be in the future, and what solutions will be made available by the industry to satisfy them. The same advances that have led to the need for larger hard drives and more workstation memory have also placed a burden on networks, which may soon result in the need for a reassessment of the fundamental networking standards that have been sufficient for many years.

Upgrading or installing an entire network is, after all, a very different matter from adding a hard drive or even replacing an entire PC. You must consider whether or not the equipment that your network communications take place on are adequate for your company's needs, both now and several years from now. Chapter 7, "Major Network Types," examines the different network types in use today, as well as the new innovations that will most likely comprise the networks of tomorrow. The following sections do the same for NICs because NIC type and network type must be considered together if the administrator is to be forward thinking in his plans.

Two Interfaces. Since the basic function of a NIC is to be a gateway between the LAN and the workstation, the NIC must, by definition, interface with both of those resources. Therefore, there must be a connection to the workstation, usually in the form of a bus connector, as well as an interface with the LAN medium, usually in the form of a socket for a particular type of cable connector (see fig. 6.4).

Although NICs are available that interface with the workstation by plugging into a system's parallel or serial port, these are used mostly for portable computers that cannot easily support the insertion of any other kind of adapter. In virtually all other cases, a NIC is an expansion card that is connected to the computer by means of the system bus. In chapter 5, "The Server Platform," we discussed the various bus types available in PCs today--NICs are available for all those bus types, each card taking advantage of particular attributes that a certain bus provides. EISA and PCI adapters, for example, in most cases utilize the automatic configuration capabilities native to those buses, eliminating the need for manually specifying hardware parameters. ISA and VLB cards, on the other hand, might still have to be configured by the installer before they can be used.

System Bus Parameters. As with any expansion card plugged into the system bus, the computer must have some way of identifying and addressing the device. This usually is done by specifying unique interrupts and memory locations that will be used by both the card and its accompanying driver software. Early NICs used jumpers or DIP switches for this purpose. The manufacturer designed the card with a number of different IRQs and memory addresses hardwired into the device. Before the card was installed, jumpers had to be set to select particular parameters. Then the card was inserted into the slot, the computer was booted, and the driver software was configured to utilize the same settings. That way, when the OS generated network requests, they were intercepted by the driver, which routed them to the NIC according to the specified settings, and thereby to the network.

Figure 6.4
This is a typical network interface card.

Of course, if another device in the system happened to be using any of the same hardware settings, the NIC failed to function, and the other device likely failed as well. In this case, the entire process had to start over. The card had to be removed from the slot, different settings had to be chosen, and the installation had to be performed again. It might even happen that all the possible settings provided by the manufacturer resulted in some sort of conflict. In such cases, it was necessary to reconfigure another device to free up a resource that the NIC could utilize.

This process could easily end up with most of a PC disassembled, many different manuals consulted, and a great deal of time wasted. For the network administrator, this was unacceptable, primarily because there could be fifty other machines that needed to be taken through the same process. For this reason, most NICs manufactured today--indeed, most expansion cards in general--provide some means by which this process can be more efficiently completed.

As stated earlier, for EISA, PCI, and MCA cards, installation usually is a matter of simply plugging the card in the slot and then installing the drivers. At the workstation level, however, it usually is not practical, or even beneficial, to install higher-end NICs of these types. The demands of the average network user today do not warrant the performance levels they provide, and the average network does not supply the bandwidth needed for them to be fully utilized on every machine. Certainly, they are not worth purchasing simply for their ease of installation.

Most network workstations today can be adequately serviced by a NIC that uses the ISA bus. This bus, however, has no native features that support automatic configuration, so it has become necessary for individual manufacturers to develop ways to simplify the installation procedure for their products. Most ISA NICs today can configure both hardware and software through the use of a program that is supplied with the card. The program might be included on floppy disk or might be permanently installed in flash memory on the card itself. In either case, it is only necessary to insert the card into the slot once, after which all the parameters can be adjusted by the software. Different levels of interaction exist, as far as this software is concerned. Some cards can query the system themselves and determine the optimum settings without operator intervention, while others merely provide a menu-driven interface through which selections can be made. The difference, not surprisingly, is reflected in the price of the card.

One thing to remember when considering options like these is the number of systems that will have to be configured to utilize the cards that you purchase. If you have dozens of different machines that must be retrofitted for network use, highly-automated installation options are preferable. If you are installing NICs into a large number of identical new machines, however, the settings will be the same in every case, allowing you to resolve any hardware conflicts only once and simply duplicate the correct settings for all the other cards.

Another method of connecting a NIC to a workstation that has been considered by many PC manufacturers lately is the integration of the adapter circuitry onto the computer's motherboard itself. Advanced Micro Devices, for example, manufactures a single-chip, full-duplex Ethernet controller designed for integration onto motherboards. Several system vendors already offer this as an option, and although the basic philosophy is sound, I advise against purchasing systems of this type. Integrating any adapter onto the motherboard does reduce the distance that signals have to travel to reach the device and eliminates a good deal of the signal interference that may occur during a bus transfer. These advantages, though, are virtually imperceptible, and the other side of the coin is that you are locked into utilizing an adapter with features chosen by the system manufacturer. If the network is ever upgraded or modified to utilize a different medium, a new adapter must be installed into the machine, forcing the integrated unit to go to waste. The question also arises as to what different cable connectors will be made available (and how) by the manufacturer. A traditional expansion card can be relocated to a different machine or even purchased with future network upgrades in mind.

Another item to be considered is whether or not a particular NIC requires an area of memory to be reserved for its use. For some cards, it is necessary to exclude an area of upper memory from use by the workstation's memory manager or OS. This is memory that could otherwise be used to load device drivers or other TSRs high, freeing up more conventional memory for use by applications. This can be a significant factor for workstations that already will utilize an extensive amount of memory for network client software, and this should be considered when making purchasing decisions.

Network Connections. The other side of the gateway is, of course, the network connection. NICs can be purchased in models that provide sockets for all the network media currently in use. The most widely used network medium, by a substantial margin, is 10BaseT, which runs over UTP cable and utilizes standard RJ-45 connectors. Token-ring networks can also use this type of connector. Adapters are also available with BNC connectors for thinnet networks running over coaxial cable, 15-pin connectors for thicknet, and standard sockets for use with FDDI and other media.

Some NICs are sold with multiple connectors on a single expansion card. There is usually some means in the configuration software of selecting which connection is to be used, and this setting might have other effects on the card besides simply choosing a socket. The classic NE2000 card, for example, a very popular adapter manufactured by various companies for Novell, comes with a BNC connector for thinnet, as well as a 15-pin connector for thicknet. Selecting the 15-pin connector, however, not only causes that socket to be activated, but also deactivates the transceiver on the card because thicknet traditionally utilizes an external transceiver, while thinnet uses a transceiver on the NIC. This is one possible explanation for the virtual disappearance of thicknet in local area networking today.

There is very little to be gained by the user from the purchase of NICs with multiple connector types, unless a definite plan for a change in medium already exists. For example, if a network is located in a temporary space, it may be preferable to utilize thinnet, switching later to 10BaseT after a move to a more permanent location. In a case like this, NICs with a BNC and an RJ-45 connector may be worth purchasing. In any case, these NICs are usually manufactured that way as a cost-saving measure because it's cheaper in some cases to design, manufacture, and market a single card with two connectors, rather than two different cards.

Another type of dual-purpose network adapter that is becoming increasingly prevalent in today's market is the type that supports traditional 10 Mbps Ethernet as well as one of the new 100 Mbps Fast Ethernet standards. These new technologies are discussed in greater depth in chapter 7, "Major Network Types," but realize for now that NICs are available today that can automatically shift to a higher-speed mode when a concentrator supporting this mode is installed on the network, and the cable to the NIC is switched to an alternative socket. Other models do not even require the cable switch but instead auto-sense the different speeds. The workstation only has to be rebooted for the change from 10 Mbps to 100 Mbps to take effect. This allows for a gradual introduction of the new technology, thus providing sufficient time for testing and preventing downtime, while allowing the economic burden of such a project to be spread out over a longer period. Token-ring NICs have long been available that can shift between speeds of 4 Mbps and 16 Mbps, but this is the first time that a radically new network transport technology has been made available in such an efficient manner. Most other high- bandwidth alternatives now coming to market require a complete replacement of the network adapter, along with a lot of other hardware, such as hubs, switches, concentrators, and sometimes even the network cabling. For this reason alone, Fast Ethernet has a distinct edge on the competition.

Full Duplex Ethernet is another technology designed to speed up existing LAN connections. This concept essentially eliminates the need for the standard Ethernet CSMA/CD collision detection method, as two dedicated connections are provided for each adapter. Thus, workstations can send and receive data simultaneously, doubling the theoretical throughput of the LAN to 20 Mbps. Full Duplex Ethernet does not seem to be catching on with the rapidity of Fast Ethernet, but it remains to be seen which of these technologies will become the next dominant desktop standard. Indeed, the answer to this may even be both, as Full Duplex can be combined with Fast Ethernet to provide up to 200 Mbps speeds.

Also at the cutting edge of networking technology today are NICs that provide a wireless connection to the network. Utilized most often in laptops and other portables, NICs such as these utilize infrared or radio frequencies to establish a connection with the network. Drivers usually are provided that remain resident in memory, but lie dormant until the computer is carried within the network transceiver's effective range. At that time, the drivers become active, automatically attach the workstation to the network, and sometimes are even able to execute predefined tasks, such as downloading e-mail or updating databases. Technology of this type is still in its infancy, however, and well-defined standards do not yet exist. The wireless NICs on the market today function effectively with their network-based counterparts from the same manufacturer, but the universal connectability that has been realized by the more conventional NIC types is not yet available for wireless NICs. In addition, the performance levels of wireless NICs do not yet rival that of traditional wired LANs. The average wireless model generally performs data transfers at slightly more than half the speed of a 10BaseT connection, with rates diminishing dramatically as the host machine is moved farther away from the transmitting station.

Performance Features. When evaluating the various basic 10 Mbps Ethernet NICs on the market today, there is actually little difference between the various models, except for price. Most of the NICs utilize some form of the parallel tasking architecture pioneered by 3Com, a company that holds about 30 percent of the market share. Different manufacturers have different names for the process (SMC calls it simultasking), but the techniques are basically the same, allowing the NIC to transmit data onto the network before the entire packet has been received. Early NICs imposed delays by needing to wait until the entire packet had been transferred from the system bus to the NIC's buffers before transmission could begin.

Another technique that adds to the overall performance of a NIC is the presence of RAM on the card that can be used as a buffer when network traffic is high or when delays are imposed while the NIC waits for the proper time to transmit its data. 16K worth of SRAM is a fairly common configuration, but additional amounts of RAM (at an additional cost, of course) will contribute to better performance if your network is already heavily trafficked.

Bus mastering is also available on NICs that utilize the higher-speed system buses such as EISA, MCA, VLB, or PCI. This gives the NIC the ability to take control of the system bus to conduct data transfers without intervention from the computer's CPU. As with other bus mastering devices, however, you must be sure that the NIC is plugged into a slot that supports this feature. Very often a PC has several slots of a particular bus type, but not all of them are capable of bus mastering. You might also have difficulty purchasing machines that are capable of supporting several different bus mastering devices on the same bus, so a decision may have to be made as to whether the advantages of bus mastering are better devoted to a NIC or to another interface card, such as a SCSI or Enhanced IDE adapter.

In the same manner as the purveyors of SCSI and Enhanced IDE peripheral interfaces, NIC manufacturers are exploring the prospect of utilizing the PCI bus to improve the overall performance of their products. As with other interfaces, however, many of the products now available show signs of their relative newness, particularly in their drivers. There is a great amount of OEM activity in the NIC market. Cards based on the same chipsets are sold under many different names, offering varying price levels dependent on the presence of additional features such as drivers, technical support, and warranties.

Many different manufacturers even utilize the same drivers, and this has led to a recent situation in which several different PCI NICs all shipped with a driver that had been written in accordance with the wrong specification. PCI bus slots are designed to share interrupts, supposedly eliminating the need to perform any sort of manual hardware configuration. These drivers did not allow interrupts to be shared and did not function properly even when specific interrupts were assigned to specific slots. It was not until a new driver was written that conformed to the proper standard that the NICs could be made to function properly. Once this was accomplished, the NICs all performed admirably, but the fact that several different products actually shipped in this haphazard manner seems to indicate that the manufacturers are overly desperate to get their products to market to remain competitive, and quality-assurance standards are therefore given low priority. For the busy LAN administrator, it is usually preferable to wait until situations of this type are resolved by others before making any kind of serious commitment to a new technology. I do not doubt that PCI eventually will be the high-performance bus of preference--in NICs as well as other technologies--but I will wait until the products have made it through their initial growing pains before using them.

Another thing to be aware of is the tendency for some manufacturers to implement proprietary features that do not conform to accepted industry standards in their NICs. It can sometimes be difficult to determine when this is the case. You might have to wade through a great deal of "marketspeak" to find out what a flashy term really does, but it is important to find out. Some of the techniques that are touted as providing greater speed and enhanced performance might do just that, but they also might require that the same manufacturer's NICs be installed at both ends of the connection. Unless you are building a network from scratch, you want to avoid "features" such as these like the plague. Even if you are building a new network, the dangers of proprietary systems are the same as for any technology: if that manufacturer disappears, you might be stuck with unsupported hardware and no means of acquiring additional equipment.

Finally, you need to check on the driver support provided with the NICs that you decide to purchase. If you are running different OSs on your network, or if, like many users today, you are experimenting with the many new OSs coming to market in a multiple-boot environment, you want to make sure that drivers are readily available for all the OSs that you might ever use. Driver size is another consideration. As mentioned earlier in this section, equipping a PC with a network connection can require large amounts of system memory from either the conventional or upper memory areas. A well-written driver that requires only a small amount of RAM helps to optimize the performance of any network workstation.

Workstation NIC Selection. Obviously, the requirements of the individual user must determine the appropriate NIC for her workstation. Basic network services such as file access and printer sharing are adequately served by an ISA NIC connected to a standard Ethernet or token-ring network. People doing CAD, graphics, desktop publishing, or other network-intensive occupations will likely require better performance and can benefit from an EISA, VLB, or PCI NIC. Once you go beyond this into the realm of multi-media and videoconferencing, you rapidly approach the line at which the traditional network types are themselves insufficient, and a high-performance NIC alone will provide little improvement. At this time, it would be necessary to consider a more comprehensive upgrade program that will incorporate better NICs with an improved network infrastructure.

NICs are readily available that can easily accommodate all of these requirements. At this point, though, purchasing decisions begin to stretch beyond the world of the individual workstation. Quantity pricing, hardware standardization, and future network development strategies should all be taken into account before making a large investment in NICs. In the next chapter, we will examine the network types and new innovations that may have an effect on your NIC purchases. In most situations, having a good idea of where your network will be five years from now may help to avoid purchasing products that will need to be replaced later.

NIC Configuration Settings. Having discussed in general terms the functions and various types of NICs available, the following sections will examine in detail the actual process of configuring a NIC for use in a client workstation or file server. While servers and workstations use different software drivers for NICs, their hardware requirements are identical. Any hardware considerations discussed in these sections are equally applicable to both types of machines.

Each NIC model will have its own installation and configuration procedure. Many NICs can be configured using special software supplied with the NIC, while others--particularly older models--use physical jumpers that must be moved manually to change settings. In either case, the essential configurable elements are as follows:

- Hardware Interrupt (IRQ)
- I/O Port Address
- Shared RAM
- DMA Channel
- Optional ROM
- Connector Type

These parameters allow the NIC to communicate with the workstation's CPU and bus. They are described in turn in the following sections.

Hardware Interrupt (IRQ). An IRQ line or interrupt channel allows the NIC to grab the CPU's attention whenever it requires it, using the following procedure:

- The NIC needs the CPU to perform some processing, perhaps because it has received data from the network.
- It uses a connector in the adapter slot to signal to the motherboard that it needs attention.
- The system interrupts whatever it was doing and saves the CPU register contents to a stack.
- The system looks in its interrupt vector table for the memory address corresponding to the interrupt that was received. In the NIC's case, this is the address in memory of the NIC's software driver.
- The system jumps to that memory address and executes the code it finds there. This performs the processing required by the NIC.
- When the software driver finishes processing, the original CPU register contents are returned from the stack to the CPU.
- The CPU resumes whatever task it was carrying out before it was interrupted.

This system allows the NIC to interrupt the current CPU process whenever it wants to, ensuring that network traffic is handled promptly.

Interrupts can interrupt each other, too. Each interrupt channel has a priority level, with the lowest IRQ numbers having the highest priority. If an interrupt is being processed when another interrupt occurs with a lower number than the first interrupt, the CPU registers are pushed onto the stack, processing of the first interrupt is suspended and the second interrupt is processed. When it finishes, the register stack is accessed, the CPU returns to its original (first interrupt) state, and processing of the first interrupt continues as described.

Traditionally, interrupt channels cannot usually be shared. There are exceptions to this, and newer bus types such as Microchannel, EISA, and PCI theoretically allow for interrupt sharing, but hardware incompatibilities are not infrequent, requiring the use of individual interrupts for each adapter. Even where it is possible, it is not desirable to share interrupts if it can be avoided, as it is less efficient than assigning one interrupt per adapter.

In brief, IRQ configuration for a NIC consists of identifying an unused interrupt channel and assigning it to the NIC.

I/O Port Address. The workstation reserves a range of low memory addresses for communication between I/O devices and the CPU. The first serial port, for example, usually uses uses memory starting at 03F8h.

Configuring an I/O port for a NIC means identifying the start address of an unused range of memory.

Shared RAM. The simplest way for a NIC to get data into the workstation's memory is for the NIC to pass the data on to the CPU and to let the CPU store the data in memory. Similarly, the CPU can read data from memory and transmit it to the NIC when asked to do so.

The problem with this approach is that it is quite inefficient. Data must be stored twice, once in the workstation's RAM and once on the NIC. The CPU must also spend valuable cycles passing the data from one storage area to the other.

Many NICs use a shared area of RAM for greater efficiency. The NIC stores its data directly in RAM, from where the workstation can read it. Likewise, the workstation needs only to store data in the right location for the NIC to be able to access it.

Not all NICs use shared RAM. If your NIC uses it, you will need to configure it when setting up the NIC. This involves identifying an available area of RAM, setting the NIC to use it, and making sure that no other software tries to use the designated shared area.

DMA Channel. Some NICs use DMA (Direct Memory Access) channels to communicate with the bus. This allows the NIC to bypass the CPU and access the workstation's memory directly. DMA transfers, however, are not as efficient as transfers using shared RAM.

A NIC will use shared RAM or DMA but not both. If your NIC uses DMA, configuration will involve locating a free DMA channel and adjusting the NIC settings to use it.

Optional ROM. If your NIC uses an optional ROM chip, such as a remote boot ROM, you need to enable it at setup time. How this is done varies from one NIC to the next. In general, there will either be a jumper on the NIC that can be set or a software setup menu option that you can choose to enable or disable the ROM. If you enable a ROM, you may also need to specify the RAM area where the ROM code is to be stored. Consult the documentation for your NIC and ROM option for detailed instructions.

Connector Type. The NIC may have more than one type of network connector, RJ-45 and AUI, for example. You should set the NIC to use the correct connector type, but when you're deep in the details of IRQs and I/O ports, it can easily be forgotten.

Configuring the Adapter. The following sections describe how to select and change settings, how to test that the NIC works with these settings, and how to set about resolving conflicts between the NIC and other system components. The configuration procedure is different for every NIC model, so the documentation for the particular NIC model being installed should always be consulted for detailed instructions.

Choosing NIC Settings. Choosing settings is easy if your workstation has a PCI, EISA, or MCA bus. The system configuration utility will generally not allow you to choose values that are already in use and will usually perform a quick check for resource conflicts before exiting.

ISA bus machines require that you do the checking yourself. Before you start, try to find out what resources are already in use on the workstation. Check interrupt channels, I/O port addresses, RAM areas, and DMA channels as necessary. One way to do this is using Microsoft's MSD utility, which has been shipped with Windows since version 3.1 and DOS since version 6.

In practice, most NICs are restricted to a small range of port addresses choices. NICs that use hardware jumpers typically offer a choice of one or two jumper combinations to select a port address. Some may only let you choose predetermined IRQ/port address combinations. NICs that come with a software setup utility tend to be more flexible but usually offer a choice of only seven or eight port addresses.

In either case, the narrow range of choices makes it possible to check all possible settings, should it be necessary in the case of a particularly recalcitrant NIC. This is rarely necessary though. The default setting is quite often acceptable and if not, one of its neighbors in the region of 280h or 300h generally does the trick.

MSD can also help when choosing a shared RAM area. Figure 6.5 shows a typical MSD memory map.

In this case, any RAM area from C800 to EFFF inclusive may be chosen. Make sure to exclude the NIC's RAM area on the EMM386 load line in CONFIG.SYS, though.

Setting the NIC. Now that appropriate settings for the NIC have been identified, it is time to implement them. Refer to the NIC's documentation for detailed instructions on how to do this for your particular NIC model.

> CAUTION: Write down the settings in use on the NIC before you start to change them. You may want to restore the NIC to its original state if your choice of settings turns out to be inappropriate.

    Legend:  Available "  "  RAM "##"  ROM "RR"  Possibly Available ".."
             EMS Page Frame "PP"  Used UMBs "UU"  Free UMBs "FF"
      1024K FC00 RRRRRRRRRRRRRRRR FFFF  Conventional Memory
            F800 RRRRRRRRRRRRRRRR FBFF                 Total: 639K
            F400 RRRRRRRRRRRRRRRR F7FF             Available: 572K
       960K F000 RRRRRRRRRRRRRRRR F3FF                        586064 bytes
            EC00                  EFFF
            E800                  EBFF  Extended Memory
            E400                  E7FF                 Total: 7424K
       896K E000                  E3FF
            DC00                  DFFF  XMS Information
            D800                  DBFF           XMS Version: 3.00
            D400                  D7FF        Driver Version: 3.10
       832K D000                  D3FF      A20 Address Line: Not Enabled
            CC00                  CFFF      High Memory Area: Available
            C800                  CBFF             Available: 7360K
            C400 RRRRRRRRRRRRRRRR C7FF    Largest Free Block: 7360K
       768K C000 RRRRRRRRRRRRRRRR C3FF        Available SXMS: 7360K
            BC00 ################ BFFF     Largest Free SXMS: 7360K
            B800 ################ BBFF
            B400                  B7FF
       704K B000                  B3FF
            AC00                  AFFF
            A800                  ABFF
            A400                  A7FF
       640K A000                  A3FF

Figure 6.5
Use MSD to obtain a memory map.

There are a few catches to watch out for. Some NICs (the SMC Elite 16, for example) are completely software configurable but have a jumper which, when set, prevents any configuration changes being saved on the card. This is a useful security feature, but it can cause confusion when settings changes are required. If your NIC has such a jumper, check if it is in the enabled position. If so,

  1. Turn off the workstation.
  2. Disable the jumper.
  3. Run the NIC's setup utility.
  4. Make the necessary settings changes.
  5. Save the new settings.
  6. Test the new settings.
  7. Turn the workstation off again.
  8. Enable the jumper again.

Some NICs (the DEC Etherworks III NIC is one example) don't register all settings changes without a cold reset of the workstation. If this is the case for your NIC, make the necessary changes using the setup utility, save the changes, and exit the utility. Then cold boot the machine and test the new settings.

Finally, don't forget to select the right connector type! This may be done using a jumper or a software utility depending on your NIC model.

Testing. If at all possible, test the settings before moving on to the next stage. You may be able to detect a settings conflict in a few seconds at this stage, which could cause a much longer delay later on.

> TIP: If the workstation has any other installed adapters, such as a sound card or a SCSI controller, make sure the device is active and its drivers are loaded when you test the NIC. You may find that the NIC works fine on its own but not when the other adapter is in use, indicating a settings conflict.

Nearly all NICs come with a diagnostic utility that verifies that the NIC is functioning normally. These utilities generally have "internal" tests that verify that the NIC can communicate properly with the system and "external" or network tests which verify that packets can be sent and received using the designated network connector.

If your NIC came without a diagnostic utility, you may still be able to perform some simple diagnostics: Many NICs have link pulse LEDs beside the connector that flash to indicate network traffic, valid/invalid network connection, and so on. Check the LED activity against the NIC's documentation to determine if a fault is indicated.

There isn't much you can do by way of testing at this stage if you have no diagnostic utility and the NIC has no LEDs. Conflicts may manifest themselves by failure of another piece of equipment besides the NIC--for example, the video display or another adapter if one is installed. If the machine fails to boot, locks up when in use, displays garbage characters, or acts in any way unusual, a conflict of settings is most likely the cause.

A settings conflict is more likely to occur with another adapter such as the video subsystem than with the main system components. This is because adapter manufacturers generally avoid default settings that may clash with common workstation components. Instead, they tend to choose from the range of commonly available settings: IRQ 5, I/O port 280, and a RAM address starting at D000h are common defaults for many adapter types. With all manufacturers choosing from the same restricted range of settings, it's quite possible that the default settings for your NIC will clash with the settings in use for another adapter.

So if another adapter was already installed, run its diagnostic utility to verify that it hasn't stopped working. This is far from a comprehensive test, but in the absence of proper diagnostics for your NIC, it may help to catch some of the more common conflicts.

Otherwise, you will have to wait until the network software is installed and then debug your software and hardware setup at the same time. Avoid this if at all possible. It can be difficult enough trying to sort out software settings for an adapter that definitely works; trying to debug software problems on an adapter that may or may not work properly is a frustrating exercise.

> NOTE: All that has been tested at this point is the availability of any resources that the card has been set to use--IRQ, I/O address, etc.--and the connection to the network. More testing remains to be done at the software configuration stage later on.

Resolving Conflicts. If your NIC doesn't pass its diagnostics after you implement your choice of settings, you may have a resource conflict of some sort.

Some diagnostic utilities (SMC Elite for example) will tell you where the conflict occurred. If the diagnostics report, for example, that the RAM area you selected is already in use, you can try another setting and test again. In many cases the diagnostic and software setup utilities are one and the same, so you can easily change settings and run diagnostics again.

Other diagnostic utilities will simply tell you that the NIC failed to pass its internal tests. In that case, you're only slightly better off than you would be if you had no diagnostic utility at all but suspected a settings conflict anyway.

Identifying the source of a settings conflict may require a certain amount of trial and error. If the system has completely locked up and will not boot, you will need to remove the NIC and restart the computer before trying a different combination of settings.

If there is a second adapter in the system, run its diagnostic software to see if there is a conflict between its settings and those of the NIC. If you don't have diagnostic software for the other adapter, temporarily disable or remove it and see if you can get the NIC to work on its own. If you can, there is clearly a resource conflict between the two adapters. If you can't get the NIC to work on its own, it may be faulty.

Once you identify the source of the conflict, you can change the relevant settings values and test the NIC again. Take note of each combination of settings you try so that time isn't wasted trying them again.

If you have tried all possible combinations of settings without success, you will have to consider the possibility of faulty hardware. The adapter slot may be faulty: move the NIC to a different slot in the workstation and try again. The NIC itself may be faulty: borrow a working NIC from another workstation and see if it works in this workstation.

> CAUTION: Remember, if EMM386 or another memory manager is active on the workstation, make sure it is not trying to manage any shared RAM area used by the NIC. If in doubt, disable the memory manager temporarily until you have resolved all conflicts.

At this point, all that can be accomplished to configure a NIC from the hardware perspective should have been done. The next task is to proceed to the installation and configuration of software. How this is done will, of course, depend on the OS used on the machine. File server network software configuration is covered in chapters 8, "Novell NetWare," and 9, " Microsoft Windows NT." Workstations running DOS or Windows 3.1 are covered in chapter 11, "Network Client Software," and the 32-bit Windows OSs (Windows NT and Windows 95) are discussed in chapter 12, "Network Client Software for 32-Bit Windows."

### Cases

This chapter has so far looked at virtually all the components of a PC that may have an effect on performance when connected to a network. This final section is devoted to the ways in which the entire computer can be packaged. Although it might seem a trivial matter when compared with some of the subjects covered earlier, the case that a work-station is housed in can be an important factor in the completion of the network administrator's daily tasks.

The first consideration for the case of a networked PC is, of course, its size. Cases of many different form factors have gone in and out of popularity over the years. Very early desktop models gave little thought to this subject. The idea of having a computer on your desk was so new, that users did not quibble about the "footprint" or the desk space required for the unit. Besides, there were very few choices at the time. Today, though, you must face the key decisions of where the computer's case will be located, and how much can fit within it.

Many PCs that are sold today as prepackaged network workstations offer little room for expansion within the case. Once manufacturers realized that many users balk at the idea of a large AT-style case occupying half the desktop, smaller boxes were developed, many of them packing their components inside in rather ingenious ways. Many machines using the "slimline" case have a card containing the system bus slots mounted on the motherboard, so that expansion cards can be installed into it, parallel to the motherboard. This conserves space on the main system board, often providing room for additional components to be integrated onto it. This arrangement, however, usually limits the number of expansion cards that can be installed into the machine and can make many other components difficult to access. If machines such as these are going to be used as is, with no modifications other than the insertion of a NIC, this is acceptable. If it ever becomes necessary to install an additional hard drive into the case, however, you might have difficulty squeezing even today's smallest drives in there.

Another alternative is the minitower, which can reside on a remote corner of the user's desk and generally provides more space for expansion and maintenance access. Don't, however, let your users use the case as a convenient location for refrigerator magnets to hold their notes.

Another possibility--one that I prefer to avoid--is locating the main unit of the computer under the user's desk. Mini-towers as well as traditional AT-style cases (resting on their sides) can be used this way, but maintenance access is tough on the administrator's back and knees and is rather undignified if you're in a "suit-and-tie" office. (Pardon me, would you mind sliding back a few feet so that I can crawl under your desk? Thank you very much.)

> NOTE: I have heard from various sources over the years that a computer containing hard disk drives that rests on its side should have the disks reformatted in that position. This supposedly would accommodate the different direction in which gravity pulls the platters. I have run dozens of machines on their sides without reformatting the drives, however, and have never experienced a drive failure that could be attributed to this cause.

## Summary

As we have seen, there is a tremendous amount of variance in the networked PCs currently being used in the corporate world today. Networked resources can give a new lease on life to older machines that would be all but useless on their own and can provide to even the most advanced PCs some benefits that were unheard of only a few years ago. To accommodate the needs of various types of users in as economical a manner as possible, the network administrator has to be familiar with a wide range of different machines and their capabilities. In this chapter, we have covered virtually the entire history of the personal computer, from the original IBM PC to today's cutting-edge Pentiums. This hopefully provides a means by which you can assess the continued viability of your existing equipment and realistically plan based on the future of networking in the industry in general and your organization in particular.

© Copyright, Macmillan Computer Publishing. All rights reserved.