|
Troubleshooting, Maintaining & Repairing PCs Stephen Bigelow $54.95 0-07-913732-6 |
|
| Chapter: 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
| Reserve your copy at a Beta Bookstore near you! |
Contact Bet@books © 1998 The McGraw-Hill Companies, Inc. All rights reserved. Any use of this Beta Book is subject to the rules stated in the Terms of Use. |
CHAPTER 14
CPU identification and troubleshooting
The central processing unit (also called a CPU, microprocessor, or simply a processor) has become one of the most important developments ever realized in integrated circuit technology (Fig. 14-1). On the surface, a CPU is a rather boring device - in spite of its relative complexity, a typical CPU only performs three general functions; mathematical calculations, logical comparisons, and data manipulation. This isn’t a very big repertoire for a device carrying millions of transistors. When you look deeper, however, you realize that it is not the number of functions that makes a CPU so remarkable, but that each function is carried out as part of a program which the CPU reads and follows. By changing the program, the activities of a CPU could be completely re-arranged without modifying the computer's circuitry.
Once the concept of a generic central processing function was born, designers realized that the same system could be used to solve an incredibly diverse array of problems (given the right set of instructions). This was the quantum leap in thinking that gave birth to the computer, and created the two domains that we know today as "hardware" and "software". As you might have guessed, the idea of central processing is hardly new. The very earliest computers of the late 1940s and 1950s applied these concepts to simple programs stored on punched cards or paper tape. The mainframe and minicomputers of the 1960s and 1970s also followed the central processing concept. However, it was the integration of central processing functions onto a single IC (the microprocessor) in the mid-1970s that made the first "personal" computers possible, and spawned the explosive developments in CPU speed and performance that we have seen ever since.
Although a CPU can handle mathematical calculations, the CPU itself was not (until recently) designed to handle floating-point math as an internal function. Of course, floating point math was possible through software emulation, but the performance of such an approach was unacceptable for math-intensive applications (such as CAD and scientific programs). In order to deal with high-performance floating point math in hardware, a math co-processor (MCP) or numerical processing unit (NPU) was developed to work in conjunction with the CPU. While the classical MCP was implemented as a stand-alone device, newer generations of CPU incorporate the MCP's functions right into the CPU itself.
The CPU is closely related to the overall speed and performance of personal computers. As a technician, you should understand the essential specifications and characteristics of CPUs. This chapter is intended to provide some insights into CPU evolution and capabilities, and illustrate some of the problems that can manifest themselves in microprocessor operation. Table 14-1 provides a "quick index" of CPUs used in personal computers.
The basic CPU
A generic microprocessor can be represented by a block diagram such as the one in Fig. 14-2. As you can see, there are several sets of signals (or busses) that you should be familiar with; the data bus, the address bus, and the control bus. It is these three busses that allow the CPU to communicate with the other elements of the PC and control its operations.
The busses
The data bus carries information to and from the CPU, and it is perhaps the most familiar yardstick of CPU performance. The number of wires in the bus represents the number of bits (or data volume) that can be carried at any point in time. Data lines are typically labeled with a "D" prefix (i.e. D0, D1, D2, Dn, and so on). The size of a data bus is typically 8, 16, 32, or 64 bits. As you might expect, larger data busses are preferred since it allows more data to be transferred faster.
In order for the CPU to read or write data, it must be able to specify the precise I/O port or location in system memory. "Locations" are defined through the use of an address bus. The number of bits in the address bus represent the number of physical locations that the CPU can access. For example, a CPU with 20 address lines can address 220 (1048576) bytes. A CPU with 25 address lines can address 224 (16777216) bytes, etc. Address lines are generally represented with an "A" prefix (i.e. A0, A1, A19, and so on).
Control signals are used to synchronize and coordinate the operation of a CPU with other devices in the computer. While the number and use of each control signal varies a bit from generation to generation, most control signals fall into several categories:
Addressing modes
When you consider a microprocessor, you must also consider the means it uses to address its memory. As you will see later in this chapter, the original Intel CPUs (such as the 8088 and 8086) used only 20 address lines (labeled A0 to A19). With 20 address lines, the CPU can access only one million addresses (actually 1048576 addresses). Technically, this was not a problem, and DOS was written to work within this 1MB of space. Unfortunately, when newer CPUs were designed to break the 1MB memory barrier, DOS was stuck with this 1MB limitation (although more sophisticated software such as DOS extenders and extended memory managers allow DOS programs to access memory areas above 1MB).
To maintain backward compatibility with older CPUs, newer CPUs can operate in one of two modes. In the real-mode, a CPU behaves like an 8088/8086, and will only access up to 1MB. DOS and DOS programs operate in the real-mode exclusively. Newer operating systems (such as Windows 95 and OS/2) allow a CPU to utilize all of its address lines when accessing memory. This is known as protected-mode operation. Protected-mode operation not only supports much greater amounts of physical memory, but it also supports virtual memory. When a program calls for more memory than actually exists in a system, the CPU is able to swap code between memory and the hard drive - in effect, the hard drive can be used to simulate extra RAM. The software running on a CPU in protected-mode could be far more sophisticated than real-mode programs.
Modern CPU concepts
There is a lot more to CPU technology than just busses and addressing modes - in fact, there are entire books written on CPUs. We won’t get into many of those concepts in this book, but there are a wide range of concepts that you SHOULD understand when working with today’s PCs.
The P-rating (PR) system
CPUs are traditionally classified by their clock speed. For example, a 233MHz Pentium is generally regarded as a better performing CPU than a 166MHz Pentium. However, this presents unique and perplexing marketing problems for competing CPU manufacturers - even though Intel continues to lead CPU development, other CPU makers like AMD and Cyrix are keeping the pressure on by packing more performance into fewer clock cycles. Unfortunately, it is difficult for an ordinary user to understand that a non-Intel CPU at a given clock speed can perform as well as an Intel processor at another clock speed. In early 1996, Cyrix, IBM Microelectronics, and SGS Thomson (all Intel competitors) gathered to create the P-rating (or PR) system for describing their CPUs. By using a "PR" designation, a CPU can be equated to an Intel Pentium. As an example, the AMD 133MHz Am5x86 processor is marked PR75, and performs comparably to an Intel 75MHz Pentium. When the rating includes a "+" or "++" suffix (i.e. PR75++), it means that the CPU is delivering better performance than the corresponding Intel part. P ratings are determined through a method of direct comparison:
CPU sockets
Another important idea in CPU development and upgradeability is the concept of "sockets". Each generation of CPU uses a different number of pins (and pin assignments), so a different physical socket must be used on the motherboard to accommodate each new generation of processor. Early CPUs were not readily interchangeable, and upgrading a CPU typically meant upgrading the motherboard. With the introduction of the i486 CPUs, the notion of "OverDrive" processors became popular - replacing an existing CPU with a pin-compatible replacement processor which operated at higher internal clock speeds to enhance system performance. Table 14-2 shows that the earliest "sockets" were designated Socket 1 for early 486SX and DX processors (you can see the corresponding sockets illustrated in Fig. 14-3). As CPUs advanced, socket types proliferated to support an ever-growing selection of compatible processors.
Today, the most common type of socket is Socket 7. Socket 7 motherboards support most Pentium-type processors (i.e. Intel Pentium, Intel Pentium MMX, AMD K5, AMD K6, Cyrix 6x86, and Cyrix 6x86MX). By setting the proper clock speed and multiplier, a Socket 7 motherboard can support a variety of Pentium-type CPUs without making any other hardware changes. It is this kind of versatility which has made sockets to important, and extended the working life of current PCs by providing an upgrade path for CPUs.
CISC vs. RISC CPUs
You may sometimes see processors referred to as "CISC" or "RISC" processors. Traditional CPUs are based on a CISC (Complex Instruction Set Computing) architecture. This approach allows any number of instructions to be used in the CPU, and the CPU must provide all of the internal circuitry needed to process each instruction. Since each new instruction requires many new transistors for processing, CISC offers versatility at the expense of CPU performance. CISC CPUs (such as Intel Pentium MMX and AMD K6 devices) are typically found in general-purpose desktop and mobile computers. By comparison, a RISC (Reduced Instruction Set Computing) architecture uses a limited number of very powerful instructions. This requires less transistors in the CPU for processing, and generally results in faster CPU performance with far lower power consumption. However, RISC processors are often less versatile than their CISC counterparts. CISC CPUs appear in dedicated peripheral devices such as laser printers. Designers are still trying to develop processors that combine CISC versatility with RISC performance, though a number of RISC CPUs (like the DEC Alpha or MIPS Orion 4600 devices) appear in high-end workstations.
Pipelining
CPUs process instructions and generate results through a complex series of transistor switches inside the CPU die itself (just like any other logic IC). Early CPUs processed one instruction at a time - that is, an instruction was fetched and processed completely, then a new instruction was fetched. Processing could be accomplished in several clock cycles (the exact number of clock cycles depended on the particular instruction). Simple instructions could be processed in 2 or 3 clocks, while complex instructions might demand as much as 7 or 8 clocks.
The pipelining technique (also called instruction pipelining) allows a new instruction to start processing while a current instruction is still being processed. This way, a CPU can actually work on several instructions during the same clock cycle. In other words, for any given clock cycle, there may be several instructions "in the pipeline". Pipelining lets the CPU make use of execution resources which would otherwise sit idle while an instruction is being completed. Still, the CPU can only finish (generate results for) one instruction per clock cycle.
Branch prediction
Since pipelined CPUs must fetch the next instruction before they have completely executed the previous instruction, this presents a processing dilemma - if the previous instruction was a branch (an "if/then" statement), then the next instruction fetch could have been from the wrong place. Branch prediction is a technique that attempts to infer the proper address of the next instruction while knowing only the current one. If the improper branch is predicted (called a "mispredict"), the proper branch must be determined, and this can cause delays that impair processing performance. As a consequence, the branch prediction feature of a modern CPU must be extremely powerful.
Superscalar execution
Traditional CPUs used a single "execution engine" to process instructions. Even if the CPU supports instruction pipelining, the CPU can only generate results for one instruction for any given clock cycle. By adding more than one "execution engine" to the CPU, designers have provided the CPU with an ability to process more than one instruction per clock. These are known as superscalar processors. For example, the Pentium Pro processor uses two execution "pipes" (dubbed U and V). By combining pipelining with the multiple execution engines of a superscalar architecture, CPUs are making extremely efficient use of every clock cycle.
Dynamic execution
Even the fastest CPU executes instructions in the order in which they are written within the particular program. This means an improperly or inefficiently-written program can reduce the processing efficiency of the CPU. In many cases, even well-written code can become impaired during the software assembly and linking process. The dynamic execution technique allows the processor to evaluate the program’s flow and "choose" the best order in which to process instructions. When implemented properly, this "selective reordering" of instructions allows the CPU to make even better use of its processing resources - and aids overall CPU performance.
The Intel CPUs
There is little doubt that Intel Corporation has been a driving force behind the personal computer revolution. Each new generation of microprocessor represents not just mediocre improvements in processing speed, but technological leaps in execution efficiency, raw speed, data throughput, and design enhancements (such as dynamic execution). This part of the chapter provides a historical overview of Intel microprocessors and compares their characteristics. You can find a breakdown of Intel CPU specifications in Table 14-3.
8086/8088 (1978/1979)
The 29000-transistor 8086 marked the first 16-bit microprocessor - that is, there are 16 data bits available from the CPU itself. This immediately offered twice the data throughput of earlier 8-bit CPUs. Each of the 24 registers in the 8086/8088 is expanded to 16 bits rather than just 8. 20 address lines allow direct access to 1048576 bytes (1MB) of external system memory. Although 1MB of RAM is considered almost negligible today, IC designers at the time never suspected that more than 1MB would ever be needed. Both the 8086 and 8088 (as well as all subsequent Intel CPUs) can address 64KB of I/O space (as opposed to RAM space). The 8086 was available for four clock speeds; 5MHz, 6MHz, 8MHz, and 10MHz. Three clock speeds allowed the 8086 to process 0.33, 0.66, and 0.75 MIPS (Millions of Instructions Per Second) respectively. The 8088 was only available in 5MHz and 8MHz versions (for 0.33 and 0.75 MIPS respectively), but its rather unique multiplexing nature reduces its data bandwidth to only 2MB/s.
For all intents and purposes, the 8088 is identical to the 8086. They are exactly the same microprocessor - with only one exception; the 8088 multiplexes (time-shares) 8 of the 16 address lines between the address bus and the data bus. If you look at a pinout of an 8088, you will see only 8 data lines available to the outside world (D8 to D15). During one part of a bus cycle, the lower 8 address lines serve as the lower 8 data bits (D0 to D7). During another part of the bus cycle, those 8 shared bits are used as the lower 8 bits of the address bus (A0 to A7). Both CPUs are designed to work with the 8087 MCP.
80186 (1980)
The 16-bit 80186 built on the x86 foundation to offer additional features such as an internal clock generator, system controller, interrupt controller, DMA (Direct Memory Access) controller, and timer/counter circuitry right on the CPU itself. No Intel CPU before or since has offered so much integration in a single CPU. The x186 was also first to abandon 5MHz clock speeds in favor of 8 MHz, 10 MHz, and 12.5 MHz. Aside from these advances, however, the x186 remained similar to the 8086/8088 with 24 registers and 20 address lines to access up to 1MB of RAM. The x186 were used as CPUs in embedded applications and never saw service in personal computers. The limitations of the early x86 architecture in the PC demanded a much faster CPU capable of accessing far more than 1MB of RAM.
80286 (1982)
The 24 register, 134000-transistor 80286 CPU (first used in the IBM PC/AT and compatibles) offered some substantial advantages over older CPUs. Design advances allow the i286 to operate at 1.2 MIPS, 1.5 MIPS, and 2.66 MIPS (for 8, 10, and 12.5MHz respectively). The i286 also breaks the 1MB RAM barrier by offering 24 address lines instead of 20 which allow it to directly address 16MB of RAM. In addition to 16MB of directly-accessible RAM, the i286 can handle up to 1GB (gigabytes) of virtual memory which allows blocks of program code and data to be swapped between the i286's real memory (up to 16MB) and a secondary (or "virtual") storage location such as a hard disk. To maintain backward compatibility with the 8086/8088 which can only address 1MB of RAM, the i286 can operate in a real-mode. One of the great failings of the i286 is that it can switch from real-mode to protected-mode, but it can not switch back to real-mode without a warm reboot of the system. The i286 uses a stand-alone math co-processor, the 80287.
80386 (1985-1990)
The next major microprocessor released by Intel was the 275000-transistor, 32 register, 80386DX CPU in 1985. With a full 32-bit data bus, data throughput is immediately double that of the 80286. The 16, 20, 25, and 33 MHz versions allow data throughput up to 50MB/s and processing power up to 11.4 MIPS at 33MHz. A full 32-bit address bus allows direct access to an unprecedented 4GB of RAM in addition to a staggering 64 TB (tera bytes) of virtual memory capacity. The i386 was the first Intel CPU to enhance processing through the use of instruction pipelining which allows the CPU to start working on a new instruction while waiting for the current instruction to finish. A new operating mode (called the virtual real-mode) enables the CPU to run several real-mode sessions simultaneously under operating systems such as Windows.
Intel took a small step backward in 1988 to produce the 80386SX CPU. The i386SX uses 24 address lines for 16MB of addressable RAM and an external data bus of 16 bits instead of a full 32-bits from the DX. Correspondingly, the processing power for the i386SX is only 3.6 MIPS at 33MHz. In spite of these compromises, this offered a significantly less expensive CPU which helped to propagate the i386 family into desktop and portable computers. Aside from changes to the address and bus width, the i386 architecture is virtually unchanged from that of the i386DX.
By 1990, Intel integrated the i386 into an 855000-transistor, low-power version called the 80386SL. The i386SL incorporated an ISA (Industry Standard Architecture)-compatible chip set along with power management circuitry that optimized the i386 for use in mobile computers. The i386SL resembled the i386SX version in its 24 address lines and 16-bit external data bus.
Each member of the i386 family use stand-alone math co-processors (80387DX, 80387SX, and 80387SL respectively). All versions of the 80386 can switch between real-mode and protected-mode as needed, so they will run the same software (and are backwardly compatible with) the 80286 and the 8086/8088.
80486 (1989-1994)
The consistent push for higher speed and performance resulted in the development of Intel's 1.2 million-transistor, 29 register, 32-bit microprocessor called the 80486DX in 1989. The i486DX provides full 32 bit addressing for access to 4GB of physical RAM and up to 64TB (tera bytes) of virtual memory. The i486DX offers twice the performance of the i386DX with 26.9 MIPS at 33MHz. Two initial versions (25MHz, 33MHz) were available.
As with the i386 family, the i486 series uses pipelining to improve instruction execution, but the i486 series also adds 8KB of cache memory right on the IC. Cache saves memory access time by predicting the next instructions that will be needed by the CPU and loading them into the cache memory before the CPU actually needs them. If the needed instruction is indeed in cache, the CPU can access the information from cache without wasting time waiting for memory access. Another improvement of the i486DX is the inclusion of a floating-point unit (an MCP) in the CPU itself rather than requiring a separate co-processor IC. This is not true of all members of the i486 family however. A third departure for the i486DX is that it is offered in 5 volt and 3 volt versions. The 3 volt version is intended for laptop, notebook, and other low-power mobile computing applications.
Finally, the i486DX is upgradeable. Up to 1989/1990, personal computers were limited by their CPU - when the CPU became obsolete, so did the computer (more specifically the motherboard). This traditionally forced the computer user to purchase new computers (or upgrade the motherboard) every few years in order to utilize current technology. The architecture of the i486 is intended to support CPU upgrades where a future CPU using a faster internal clock can be inserted into the existing system. Intel has dubbed this as "OverDrive" technology. While OverDrive performance is not as high as a newer PC would be, it is much less expensive, and allows computer users to protect their computer investments for a longer period of time. It is vital to note that not all i486 versions are upgradeable, and the CPU socket on the motherboard itself must be designed specifically to accept an OverDrive CPU (see the "CPU sockets" section above).
The i486DX was only the first in a long line of variations from Intel. In 1991, Intel released the 80486SX and the 80486DX/50. Both the i486SX and i486DX/50 offer 32 bit addressing, a 32 bit data path, and 8KB of on-chip cache memory. The i486SX takes a small step backward from the i486DX by removing the math co-processor and offering slower versions at 16, 20, 25, and 33MHz. At 33MHz, the i486SX is rated at 20.2 MIPS. Such design compromises reduced the cost and power dissipation of the i486SX which accelerated its acceptance into desktop and portable computers. The i486SX is upgradeable with an OverDrive CPU (if the computer's motherboard is designed to accept an OverDrive CPU), is compatible with an 80487 CPU/MCP, and the i486SX is available in 5 volt and 3 volt versions. The i486DX/50 operates at a clock speed of 50MHz where it performs at 41.1 MIPS. The i486DX/50 does integrate an on-board math co-processor, but it is not OverDrive upgradeable, and it is not available in a 3 volt version.
The first wave of OverDrive CPUs arrived in 1992 with the introduction of the 80486DX2/50 and the 80486DX2/66. The "2" along with the "DX" indicates that the IC is using an internal clock which is double the frequency of the system. The i486DX2/50 actually runs in a 25MHz system, yet the CPU performs at 40.5 MIPS. The i486DX2/66 runs in a 33MHz system, but it runs internally at 54.5 MIPS. The slower system speed allowed the CPU to work directly with existing PC motherboard designs. Both OverDrive CPUs offer on-board math co-processors, and are themselves upgradeable to even faster OverDrive versions. The i486DX2/50 is available in 5 volt and 3 volt versions, while the i486DX2/66 is only available in the 5 volt version.
In 1992, Intel produced a highly-integrated, low-power version of the 80486 called the 80486SL. Its 32 bit data bus, 32 bit address bus, 8KB of on-board cache, and integrated math co-processor make it virtually identical to other i486 CPUs, but the SL uses 1.4 million transistors. The extra circuitry provides a low-power management capability that optimize the SL for mobile computers. The i486SL is available in 25 and 33MHz versions, as well as 3 volt and 5 volt designs. At 33MHz, the i486SL operates at 26.9 MIPS.
Intel rounded out its i486 family in 1993 with the introduction of three other CPU models; the 80486DX2/40, the 80486SX/SL-enhanced, and the 80486DX/SL-enhanced. The i486DX2/40 is the third OverDrive CPU intended to run in 20MHz PCs, while the CPU's internal clock runs at 40MHz and performs at 21.1 MIPS. The i486SX/SL (26.9 MIPS at 33MHz) and i486DX/SL (26.9 MIPS at 33MHz) are identical to their original SX and DX versions, but the SL enhancement provides power management capability intended to support portable computers such as notebook and sub-notebook computers.
By 1994, Intel was finishing its work with the i486 series with the DX4 OverDrive processors. Contrary to the DX4 designation, these 3.3V OverDrive devices are clock triplers - so an i486DX4/100 actually runs at a motherboard clock speed of 33MHz. It is important to note that all versions of the 80486 will run the same software, and are backwardly compatible with all CPUs back to the 8086/8088.
Pentium (1993 - current)
By 1992, the i486 series had become well-entrenched in everyday desktop computing, and Intel was already laying the groundwork for its next generation of CPU. While most users expected Intel to continue with its traditional numbering scheme and dub its next CPU the 80586, legal conflicts regarding trademarking forced Intel to use a name which it could trademark and call its own. In 1993, the 3.21 million-transistor Pentium microprocessor (dubbed "P5" or P54 series) was introduced to eager PC manufacturers. The Pentium retains the 32-bit address bus width of the i486 family. With 32 address bits, the Pentium can directly address 4GB of RAM, and can access up to 64TB of virtual memory. The 64-bit external data bus width can handle twice the data throughput of the i486s. AT 60MHz, the Pentium performs at 100 MIPS, and 66MHz yields 111.6 MIPS (twice the processing power of the i486DX2/66). Table 14-4 shows a comparison of Pentium performance ratings in versions from 75MHz to 200MHz. All versions of the Pentium include an on-board math co-processor, and are intended to be compatible with future OverDrive designs.
The Pentium uses two 8KB caches - one for instructions and another for data. A dual pipelining technique allows the Pentium to actually work on more than one instruction per clock cycle. Another substantial improvement in the Pentium's design include on-board power management features (similar to the i486SL line) allowing it to be used effectively in portable computers. Early Pentium models started at 5 volts, but all models starting at about 100MHz (P54C) use 3.3 volts or less. Finally, the Pentium is fully backward-compatible with all software written for the 8086/8088 and later CPUs. As of this writing, Intel has released various versions of the Pentium up to 200MHz. Faster versions are unlikely because of more powerful processors such as the Pentium MMX, Pentium Pro, and Pentium II. For technicians who want the nitty-gritty details on Pentium operation, you can download the Pentium processor manuals from the Internet as listed in Table 14-5.
The number of Pentium versions and features has simply proliferated over the last few years - so much so that it is extremely difficult to tell whether a motherboard is configured properly for a given CPU. However, you can use the S-spec rating marked on each Pentium or Pentium MMX processor to reveal key operating characteristics of the particular CPU. Table 14-6 presents the S-specs for Pentium and Pentium MMX processors.
Pentium Pro (1995 - current)
Even though the Pentium has proven adept at handling 16 and 32-bit operating systems, designers continued to seek ways to optimize the Pentium for 32-bit performance - especially for operating systems like Windows NT, and the then-emerging Windows 95. The Pentium Pro (dubbed "P6" or "PPro") evolved as an "optimized" Pentium intended to support "business systems" such as high-end desktop workstations and network servers. The P6 processors range from 150MHz to 200MHz, and can handle multiprocessing in systems up to four CPUs.
The Pentium Pro uses dynamic execution to improve its performance, and employs two separate 8KB L1 caches - one for data, and one for instructions. Another major improvement in the Pentium Pro is its use of up to 1MB of on-board L2 cache. This maximizes the P6’s performance without relying on the motherboard to supply L2 cache. You can see the use of L1 and L2 cache and Pentium Pro family performance in Table 14-7.
While not as prolific as the "classic" Pentium and Pentium MMX, there are still a number of Pentium Pro versions and features to contend with - this can make it difficult to determine the proper motherboard configuration for a given P6. However, you can use the S-spec rating marked on each Pentium Pro processor to reveal key operating characteristics of the particular CPU. Table 14-8 presents the S-specs for Pentium Pro processors.
Pentium MMX (1997 - current)
The data processing demands imposed by "multimedia" applications continue to be a burden to most PCs - especially for graphics-intensive games and other video applications. In 1997, Intel released an important enhancement to the Pentium known as multimedia extensions (or MMX). By streamlining and improving the existing Pentium architecture, and adding 57 new "MMX instructions", the Pentium MMX seems poised as the premier mid-range CPU into the late 1990s. With current speeds at 166MHz (iCOMP 2.0 = 160), 200MHz (iCOMP 2.0 = 182), and 233MHz (iCOMP 2.0 = 203), the Pentium MMX can typically execute existing software 10-20% faster than "classic" Pentium processors at the same clock speed. When using software written specifically for "MMX instructions", the PC can deliver higher color depths and higher resolutions, while still maintaining high frame rates for rendering and video.
The Pentium MMX has doubled code and data caches to 16KB each. Larger separate internal caches improve performance by reducing the average memory access time and providing fast access to recently-used instructions and data. The data cache supports a write-back (or write-through on a line-by-line basis) policy for memory updates. Pentium MMX processors also employ improved dynamic branch prediction to boost performance by predicting the most likely set of instructions to be executed.
There are many other features included in the Pentium MMX line. The superscalar architecture is capable of executing two integer instructions in parallel in a single clock cycle for improved integer processing performance. A pipelined Floating-Point Unit (FPU) supporting 32-bit, 64-bit, and 80-bit formats is capable of executing two floating-point instructions in a single clock. An additional instruction pipe has been added to further improve instruction processing. A pool of four write buffers is now shared between the dual pipelines to improve memory write performance. There is also a multiprocessor interrupt controller on-chip which allows low-cost symmetric multiprocessing (SMP), and SL technology power management features for efficient power control. Table 14-6 lists the S-spec numbers for Pentium MMX processors.
Pentium II (1997 - current)
With the Pentium MMX and Pentium Pro processors firmly entrenched in the PC community, Intel sought to combine the best features of both - the software performance of the Pentium Pro, and the multimedia performance of the Pentium MMX. The result appeared in 1997 as the Pentium II (or P II, previously dubbed the "Klamath"). As with the Pentium Pro, the Pentium II is optimized for use with 32-bit operating systems and software (such as Windows 95 or Windows NT). Yet the P II also includes the architecture and 57 new instructions needed to handle MMX applications. At 266MHz, the Pentium II processor can provide from 1.6 to over 2 times the performance of a 200MHz Pentium processor.
The Pentium II also employs the dynamic execution technology used in the Pentium Pro. Dynamic execution uses multiple branch prediction to predict the flow of the program through several branches (accelerating the flow of work to the processor). A data flow analysis then creates an optimized (reordered) schedule of instructions by analyzing the relationships between instructions. And speculative execution finally carries out the instructions "speculatively" (believing the execution order to be correct) based on this optimized schedule. Dynamic execution keeps the processor's superscaler "execution engines" busy, and boosts overall performance.
The Pentium II uses a 32KB L1 cache - this allows a 16KB cache for data, and a 16KB cache for instructions. It also provides 512KB of L2 cache right in the CPU package to maximize the processor’s performance without relying on the motherboard for cache. The P II supports up to 64GB of physical RAM, and allows dual processors - so motherboards can be designed for basic symmetric multiprocessing (SMP). A pipelined Floating-Point Unit (FPU) supporting 32-bit, 64-bit, and 80-bit formats is capable of executing two floating-point instructions in a single clock, and sustaining over 300 million floating point instructions per second at 300MHz. Table 14-9 outlines the performance comparison for Pentium II processors at 233MHz, 266MHz, and 300MHz.
One of the most noticeable departures from previous CPUs is the package style. Intel has abandoned the use of Socket 7 (Pentium) and Socket 8 (Pentium Pro) packages, and adopted a "cartridge style" package known as the Single Edge Contact (or SEC) cartridge.
While not nearly as prolific as the "classic" Pentium and Pentium MMX (or even as prolific as the Pentium Pro), there are still a number of Pentium II versions and features to contend with - this can make it difficult to determine the proper motherboard configuration for a given P II. However, you can use the S-spec rating marked on each Pentium II processor to reveal key operating characteristics of the particular CPU. Table 14-10 presents the S-specs for Pentium II processors.
The AMD CPUs
Advanced Micro Devices (AMD), once Intel’s ally, has become its single biggest competitor. AMD is known for providing well-designed and highly-compatible "alternative" processors to the PC industry, and has been active in processor manufacturing and marketing since the days of the 386 (such as AMD’s Am386). Although AMD tends to lag behind the release of new Intel CPUs, that gap is closing fast - especially with some of AMD’s latest products.
Am486DX series (1994 - 1995)
The Am486 series (see Table 14-3) was AMD’s answer to Intel’s i486 clock doubling and tripling OverDrive processors of the early 1990s. They incorporate write-back cache and enhanced power management features; including 3 volt operation, SMM (system management mode), and clock control (appealing for Energy Star-compliant "green" desktop systems and portable PCs). Available as Am486DX4/75, Am486DX4/100, and Am486DX4/120, the AMD 486 line saw service in many late-model 486 platforms.
Am5x86 (1995 - current)
This is really the processor that put AMD "on the map". With the appearance of Intel’s Pentium line, PC users were faced with the choice of upgrading their motherboard to accommodate a "true" Pentium CPU, or use a "Pentium OverDrive" processor in a 486 system. AMD rose to the challenge by developing the Am5x86 (or simply 5x85) as an alternative to Intel’s Pentium OverDrive processors. The Am5x86 achieves Pentium-level performance by running "clock quadrupled" at 133MHz (using a 33MHz bus speed). This native 33MHz speed also supported the then-emerging 33MHz PCI bus prefectly. Additional features such as a unified 16KB cache using write-back technology further improved the 5x86’s performance. In actual practice, Am5x86 microprocessors provide greater performance than a Pentium 75MHz while costing far less than a Pentium at the time. The 5x85 became the standard CPU upgrade for 486 owners who wanted utilize Pentium-class software without a major hardware upgrade.
The 5x86 also offered integrated power management features; including 3 volt operation, SMM, and clock control. This allowed the 5x86 to consume less power and run cooler than Pentium 75MHz or i486DX4/100 processors. Both desktop and mobile PCs benefited from these features.
K5 series (1996 - current)
Although the Am5x86 proved to be an extremely popular processor, it was not a "true" Pentium alternative. It was not until 1996 that AMD released its K5 series to the PC industry. As a "true" Pentium alternative, it is fully compatible with Socket 7 (Pentium) motherboards - a drop-in replacement. At most, the K5 might require a motherboard BIOS upgrade for proper identification and support with the motherboard’s chipset. But the K5 is fully compatible with all x86 operating systems and software.
The K5 series is rated using the "P-rating" (or PR) system (see "The P-rating system" section above). Rather than using iCOMP or SPEC benchmarks to categorize the processor’s performance, each K5 is assigned a PR number which corresponds to an Intel Pentium operating at the given clock speed. For example, a K5 PR120 performs equivalently to a true Pentium at 120MHz. Table 14-11 lists a comparison of K5 performance figures.
K6 series (1997 - current)
The K6 processor is AMD’s most ambitious and timely processor design for the PC. Based on AMD’s RISC86 superscalar micro-architecture, the K6 is touted as being competitive with Intel’s Pentium II processor in terms of performance. The K6 also incorporates a full suite of support for MMX instructions, and should be fully compatible with all x86 operating systems and software (as well as software designed for MMX enhancements). Since the K6 continues to use the well-established Socket 7 architecture, it should serve as a drop-in replacement for K5 and Pentium CPUs to provide MMX capability. At most, the K6 may require an upgrade to the motherboard BIOS for proper identification and support with the motherboard chipset.
The K6 incorporates seven parallel "execution engines" and employs two-level branch prediction. When coupled with speculative and full-out-of-order execution techniques, the K6 is poised to present a serious challenge to Intel’s Pentium MMX and Pentium II processors. A large 64KB L1 cache provides 32KB for data and 32KB for instructions. The IEEE 754-compatible floating-point unit (FPU) should provide performance at least equivalent to the Pentium MMX, and full support for SMM (system management mode) should ensure excellent power control.
The Cyrix CPUs
Cyrix emerged as a major "alternative" processor manufacturer in 1992 with their release of the Cyrix 486SLC, and later in 1993 with the 486DX4. By 1995, the Cyrix 5x86 (the M1sc) had presented the only serious competition to the AMD 5x86. Based in no small part on their relationship with IBM, Cyrix has established itself in the PC industry behind Intel and AMD, but they have been working very hard to close the technology and performance gap which seems to have plagued some of the recent Cyrix offerings.
6x86 series (1995 - current)
Cyrix introduced their 6x86 (dubbed the M1 - later versions were called M1R) in 1995 as an answer to the Intel Pentium optimized for both 16-bit and 32-bit software. The 6x86 Socket 7 processor achieves its performance through the use of two optimized super-pipelined integer units and an on-chip FPU. The integer and floating point units are tailored for maximum instruction throughput by using techniques including register renaming, out-of-order completion, data dependency removal, branch prediction, and speculative execution. It includes a 16KB unified write-back cache. In most respects, the 6x86 uses many of the same techniques found in other Pentium-class processors.
The 6x86 series uses "P-rating" (or PR) figures instead of iCOMP or SPEC numbers to indicate relative performance. For example, a Cyrix PR150+ processor will perform as well as a Pentium processor running at 150MHz. You’ll find PR120+, PR133+, PR150+, PR166+, and PR200+ versions of the 6x86 available (the "+" indicates performance better than the corresponding Pentium). Table 14-12 outlines the various clock settings for each version.
There are two drawbacks to the Cyrix 6x86. First, the floating-point unit (FPU) does not perform as well as those of similar Intel and AMD processors. While this does not really effect most basic software and operating systems, math-intensive programs (especially 3D computer games) can suffer reduced performance. There is little that can be done with this issue in the 6x86 family, though subsequent processors (like the M2) should provide a better FPU. The second drawback to the 6x86 has been excessive heating. In practice, 6x86 processors produce more heat than their AMD or Intel counterparts. Cyrix has addressed this issue by releasing the 6x86L (or M1R) series in 1996. The "L" designation means "low power". More specifically, the 6x86L uses a split voltage of 3.3 volts to handle I/O operations with other chips, and 2.8 volts to run the core of the CPU itself. Traditional 6x86 processors use 3.3 volts or 3.52 volts only. In order to support a 6x86L, a motherboard must provide split voltages, or a voltage regulator module must be added between the CPU socket and processor.
NOTE: the split voltage operation of a 6x86L uses the same voltage levels as an MMX processor. However, the 6x86L is NOT an MMX processor. These split voltages were chosen so that the 6x86L would be compatible with split voltage motherboards, and could be later replaced with an MMX-compatible device such as the 6x86MX (or M2).
MediaGX (1996 - current)
Traditional PCs need use stand-alone media-related devices such as a video card and a sound card. This increases the overall cost of a PC, and opens the opportunity for hardware conflicts. The Cyrix MediaGX processor incorporates the features of audio and video, along with many other conventional motherboard components. This high level of integration provides the basis for low-cost entry-level systems that still offer good performance. The 3.3-3.6 volt MediaGX system actually consists of two chips - the MediaGX processor itself, and the MediaGX Cx5510 companion chip.
The MediaGX processor is a 64-bit device with a proven x86-compatible processor core. The CPU directly interfaces to a PCI bus and DRAM memory. High-quality SVGA graphics are provided by an advanced graphics accelerator right on the MediaGX processor. The graphics frame buffer is stored in main memory without the performance degradation associated with traditional Unified Memory Architecture (UMA) system designs due to Cyrix's Display Compression Technology (DCT) approach. The processor is available at 133, 150, 166, and 180MHz. It includes a 16KB unified L1 cache, a floating-point unit, and enhanced system management mode (SMM) features. The PCI controller handles fixed, rotating, hybrid or ping pong bus arbitration. It supports four masters (three on PCI Bus). It uses a synchronous CPU/PCI bus frequency, and supports concurrent CPU and PCI operations. The video system supports up to 1280x1024x8, and 1024x768x16 display modes. The MediaGX also works with EDO RAM, and supports up to 128MB of RAM in four banks.
The MediaGX Cx5510 companion chip represents a new generation of integrated, single-chip controllers for Cyrix's line of MediaGX-compatible processors. The Cx5510 bridges the MediaGX processor over the PCI bus to the ISA bus, performs traditional chip-set functions, and supports a sound interface compatible with industry-standard sound cards such as the Creative Labs Sound Blaster.
The key issue to keep in mind with the MediaGX series is that it is NOT Socket 7 compatible. The MediaGX and companion chip are a surface-mounted solution designed for dedicated motherboards. This means that MediaGX motherboards are NOT upgradeable to other Socket 7 processors.
6x86MX (M2) (1997 - current)
The 6x86MX (referred to as the M2) is the Cyrix response to MMX processors like the AMD K6 and Intel Pentium MMX. The 6x86MX design quadruples the original 6x86 internal cache size to 64KB, and increases the operating frequency to 200MHz and beyond. Additionally, it features the 57 new MMX instructions that speed up the processing of certain computing-intensive loops found in multimedia and communication applications. The 6x86MX processor also contains a scratch-pad RAM feature, and supports performance monitoring. It delivers optimum 16-bit and 32-bit performance while running Windows 95, Windows NT, OS/2, DOS, UNIX, and other x86 operating systems. The 6x86MX processor features a super-pipelined architecture and advanced techniques including register renaming, out-of-order completion, data dependency removal, branch prediction and speculative execution.
You’ll find 6x86MX processors available in 150MHz (PR166), 166MHz (PR200), 188MHz (PR233), 225MHz (PR266), and 250MHz (PR300) versions. As with other Cyrix processors, performance is rated using the P-rating (or PR) nomenclature. For example, a Cyrix 6x86MX at 166MHz performs equally to an Intel Pentium processor at 200MHz.
CPU overclocking
PC evolution is often a race for performance, and designers are constantly struggling to make the most of every last clock tick. Many factors are involved in computer performance, but CPU speed is one of the most important - faster and better CPUs have been a driving force in computer development, and older CPUs are frequently upgraded with new ones in order to wring ever-more performance from current systems. While outright CPU replacements are common, they can also be expensive. As an alternative to CPU replacement, PC users and technicians alike are turning to overclocking as a means of maximizing the performance of an existing CPU. This part of the chapter offers comprehensive set of guidelines and procedures that can help you make informed overclocking decisions.
"Overclocking" is basically the practice of reconfiguring a PC to operate a CPU at a higher clock speed (or bus speed) than the particular CPU has been specified for. A system can be reconfigured to overclock a CPU in a matter of minutes simply by changing one or two jumpers on the motherboard. Ideally, this higher clock speed should increase the CPU’s performance WITHOUT damaging the CPU or reducing its working life. The economics of overclocking can be compelling. In most cases, overclocking can be accomplished with a Pentium-class CPU at less than $30 (US) for a new cooling unit - as opposed to $200-$500 (US) for a new CPU.
NOTE: Overclocking carries inherent risks to the CPU which includes permanent damage to the CPU itself, and should never be undertaken without careful consideration of the consequences. CPU overclocking is NOT encouraged as a regular practice, and can be illegal if an overclocked system is sold without informing the buyer.
Requirements for overclocking
The most important factor to grasp about CPU overclocking is that it is not a universally successful technique. In many cases, your efforts to overclock a PC will fail. There are four critical elements of any PC that influence overclocking; the CPU, the motherboard, system RAM, and CPU cooling. Trouble in any one of those elements will result in overclocking problems.
CPU issues - CPUs manufactured by Intel seem to be the most successful at overclocking - usually because AMD and Cyrix/IBM CPUs are often running very close to their rated limits already to compete with their Intel counterparts. However, not all Intel CPUs are so suitable. CPUs marked with the SY022 and SU073 S-spec numbers are often limited to clock multipliers of more than x2. Also check for "faked" CPUs (which have been remarked and resold at higher clock speeds already). Remarked CPUs are a frequent practice in Europe, but it’s always worth a check of the CPU first before proceeding. As a rule, if you can peal off any stickers underneath the CPU, it is remarked, and most likely running over its originally rated speed anyway.
Motherboard issues - Even if your CPU seems perfect for overclocking, the motherboard may not be. Signal reflections and other electrical limitations on the bus can cause the system to crash or hang. Overclocked CPUs are also more sensitive to unstable signals from the bus and will crash if the motherboard can't deliver "clean" signals. Brand-name motherboards such as Tyan (www.tyan com) or Supermicro (www.supermicro.com) will tend to support CPU overclocking better than cut-priced no-name motherboards. As a result, you may find that some PCs can be overclocked easily, while others suffer severe performance problems (or will not operate at all after overclocking).
Motherboard bus speeds can present another wrinkle. Most traditional motherboards only support bus speeds up to 66MHz, but more recent motherboard designs can operate at 75MHz or 83MHz. These higher bus speeds will greatly effect the clock multiplier ratio when configuring your overclocking strategy, so be sure to understand the clock speed limits and multipliers for your particular motherboard.
The motherboard should also support a wide range of CPU supply voltages. A STD voltage of 3.3V and a VRE voltage of 3.45V are common. If you use an MMX-type CPU (i.e. the P55C, the 6x86MX, or the K6) you’ll need access to "split voltage" support (2.8V and 3.3V are typical). This may not sound so important because you’re not "changing" the CPU. But in some cases, you may need to boost the CPU supply voltage just a bit to support overclocking.
RAM issues - System RAM can also be a problem in overclocked systems when the bus speed exceeds 66MHz - you’ll require high-end EDO RAM or SDRAM. As a rule, EDO RAM works best with 66MHz motherboards, while SDRAM tends to be best with 75MHz and 83MHz motherboards.
Cooling issues - Perhaps the most overlooked problem with CPU overclocking is insufficient cooling. CPUs draw current with each clock tick. The more clock cycles in a given period, the more current is required - and the more heat is generated. Most current CPUs run hot to begin with, but when overclocked, a CPU can easily overheat and crash (or perhaps suffer permanent damage). As a consequence, you should never attempt to overclock a CPU without making accommodations for better cooling. Consider a high-capacity, top-quality heat sink/fan assembly with a reliable ball-bearing fan with a K/W (Kelvin per Watt) value of 1K/W or less. You may need to go to a hobby electronics store or full-featured computer store to find a good heat sink/fan. When installing the cooling unit, make sure that it fits to the CPU tightly without any air gaps, and use a thin layer of thermal grease between the CPU and heat sink.
Potential pitfalls
Before we actually get into the techniques of CPU overclocking, there are some potential faults that you should be aware of. There are three typical failures associated with CPU overclocking; intermittent operation, shortened life span, and outright failure. All three faults are heat related:
Overclocking the system
At this point, you’re ready to try some overclocking yourself. Generally speaking, overclocking requires three basic steps; change the bus speed, change the multiplier, and change the supply voltage. Note that you do not always have to change ALL three settings in order to successfully overclock a CPU. The general steps to overclock a CPU are outlined below. Tables 14-13 and 14-14 list some generic overclocking suggestions:
NOTE: Windows 95 is very sensitive to overclocking. You may not be able to overclock a system with Windows 95, even though the system may overclock fine under DOS or Windows 3.1x.
Change the bus speed - The internal clock of a CPU runs at a different speed than the external clock (or "bus speed"). The external clock is the speed at which the cache and the main memory run - and when divided by two yields the speed of the PCI bus. There are only three different "official" bus speeds used by the Pentium, Pentium Pro, and the AMD K5; 50, 60, and 66MHz. The Cyrix/IBM 6x86 uses five bus speeds; 50, 55, 60, 66, and 75MHz. There are also new motherboards available which support the unofficial bus speed of 83MHz.
To change the bus speed, look in your motherboard manual for something like "Clock Speed" or "CPU External (BUS) Frequency Selection" - these are the jumpers you will have to change. You will probably have to change several different jumpers to establish each new bus speed. If you are lucky and happen to have a motherboard with "SoftMenu" technology, you can change the bus speed settings in the CMOS Setup menu without even opening the case.
Only increase the bus speed one step at a time (i.e. go from 60MHz to 66MHz, not 60MHz to 75MHz). This is the most successful way to overclock. Using this method, almost every P150 CPU runs at 166MHz, and most 6x86 P150+ CPUs run at a P166+ level.
Change the multiplier - The CPU’s internal clock is controlled by an internal clock multiplier in each CPU which is programmed via CPU pins. Intel Pentium CPUs support the following multipliers; x1.5, x2, x2.5 and x3. Intel Pentium Pro CPUs support; x2.5, x3, x3.5, and x4. 6x86 CPUs only support x2 and x3, but the upcoming M2 will support x2, x2.5, x3, x3.5.
To change the multiplier setting, find a set of jumpers marked such as "Clock Multiplier" or "CPU to BUS Frequency Ratio Selection" in your motherboard manual. There are usually two jumpers used to change these settings. Again, you can do all of this in the CMOS Setup menu if you have a SoftMenu motherboard such as the new Abit motherboards (www.abit.com.tw).
Change the supply voltage - There are some circumstances when boosting the CPU supply voltage from 3.3V (STD) to 3.45V (VRE) may be necessary to make the CPU run reliably at a higher bus speed. This is due to a bigger voltage difference between the digital "high" and "low" conditions which results in "cleaner" signals for the CPU and other motherboard devices. If you can't run your CPU reliably at one particular clock speed, it's always worth considering jumping to the higher supply voltage. However, more voltage will produce more heat, so you must be very careful about cooling.
Special notes for 75 and 83MHz bus speeds
Many traditional Pentium-class motherboards handle clock speeds up to 66MHz, but newer motherboards are appearing which operate up to 75MHz, and even 83MHz. There are some precautions to keep in mind when using these faster motherboards:
Overclocking notes for the Intel Pentium
Intel's Pentium and Pentium MMX processors are generally regarded as the easiest CPUs to overclock. This can be attributed to Intel's increased quality demands put in place after their early floating-point flaw disaster with the 60 and 66MHz Pentiums. A Pentium MMX 200 seems to run fine with 2.8V at 208/83MHz and 225/75MHz. For 250/83MHz, you may need to increase the voltage to 2.9V. Table 14-15 lists some options for Pentium overclocking.
Overclocking notes for the Intel Pentium Pro
The Pentium Pro is typically not overclocked , but according to the information that’s available, you should be able to overclock a Pentium Pro the same as you would a classic Pentium or Pentium MMX. The main problem seems to be that there are few (if any) motherboards that operate at 75 or 83MHz (leaving only 50, 60, and 66MHz). Table 14-16 lists some overclocking options for the Pentium Pro.
Overclocking notes for the Cyrix/IBM 6x86
The Cyrix/IBM 6x86 CPUs are much more difficult to overclock than comparable Intel CPUs. There are two reasons for this. First, Cyrix CPUs (even the later production steps) produce tremendous amounts of heat. Overclocking them would produce so much heat that it would be difficult to remove it all without huge heat sink/fans or powered Peltier coolers. Second, 6x86 CPUs only support two multiplier settings (x2 and x3), so there are far fewer overclocking options available. Try a Cyrix P120+ (100MHz) as a P133+ (110MHz). Try a P133+ (110MHz) as a P150+ (120MHz). Finally, try a P150+ (120MHz) as a P166+ (133MHz).
NOTE: You'll generally achieve the best success with 2.7 or 3.7 stepped 6x86 CPUs - they are more stable and produce less heat.
NOTE: Cooling is CRITICAL for overclocked 6x86 CPUs, so don't even consider overclocking a 6x86 without a very capable heat sink/fan or a powered Peltier cooler.
Overclocking the AMD K5
AMD has put itself on the map with its 5x86/133MHz CPU, and earned a lot of respect with the K5. However, the older PR75, PR90, and PR100 versions of the K5 do not seem to tolerate overclocking very well - probably because those CPUs were running at their performance limits already. By comparison, the later K5 versions (such as the PR120, PR133, PR150, and PR166) and the newer K6 seem to be much more tolerant of overclocking. When selecting an overclocking level, choose the next level up. For example, if you have a K5 PR120, try configuring it as a PR133, and so on.
Tips for controling heat
Heat remains the greatest enemy of overclocking, so managing that heat is an important priority. Try some of the following suggestions to help you overcome CPU heating issues:
Troubleshooting CPU problems
The term "microprocessor troubleshooting" is not the misnomer it once was. Early CPUs such as the 8088 carried only 29000 transistors. When one of those transistors failed, it would usually result in a complete system failure - the PC would crash or freeze entirely. Further, the system would subsequently fail to boot at all. However, CPUs have become far more complex in the last 15 years or so, and new generations such as the Pentium are exceeding 8 million transistors. With so many more transistors, the probability of an immediate catastrophic fault is far less. Of course, any CPU fault is very serious, but there are now many cases where a system may boot, but crash when certain specific CPU functions are attempted (i.e. trying to execute protected-mode instructions). These kinds of errors may give the impression that a piece of software is corrupt, or that one or more expansion devices may be faulty. This part of the chapter looks at a selection of CPU failure modes, and offers some tactics to help resolve the problem.
Companion CD: Your Companion CD offers several utilities that can help you identify and quantify your CPU. Use MAXSPEED.EXE to test the clock speed of a system. You can identify processors with general system inspection tools like CONF810E.ZIP and SNOOP330.ZIP.
General symptoms and solutions
Symptom 14-1. The system is completely dead (the system power LED lights properly). CPU faults are NEVER subtle. When a CPU problem manifests itself, the system will invariably crash. Consequently, systems that do not boot (or freeze without warning during the boot process) stand an excellent chance of suffering from a CPU fault. The frustration with this kind of symptom is that the PC typically does not run long enough to execute its POST diagnostics, nor does the system boot to run any third-party DOS diagnostics. As a result, such "dead" systems require a bit of blind faith on the part of a technician.
Before considering a CPU replacement, you should use a multimeter and check the power supply outputs very carefully. Even though the power LED is lit, one or more outputs may be low or absent. Excessively low outputs can easily result in logic errors that will freeze the system. If this problem occurred after adding an upgrade, the supply may be overloaded - try removing the upgrade. If system operation returns, consider upgrading the power supply. If an output is low or absent and there has been no upgrade (or the problem continues after removing the upgrade), try replacing the power supply.
Next, strip the system of its peripherals and expansion boards, then try the system again. If operation returns, one of the expansion devices is interrupting system operation. Re-install one device at a time and check the system. The last expansion device to be installed when the PC fails is the culprit. Replace the defective device. If the failure persists, try a new CPU
Remember to shut down and unplug the PC before continuing. When removing the original CPU, be extremely careful to avoid bending any of the pins (you may want to re-install the CPU later). Use care when installing the new CPU as well - bent pins will almost always ruin the IC. If a new CPU fails to correct the problem, replace the motherboard outright.
Symptom 14-2. You get a beep code or I/O POST code indicating a possible CPU fault. The system will almost always fail to boot. When the POST starts, it will test each of the PC's key motherboard components (including the CPU). If a CPU fault is indicated during the POST (usually a single-byte hexadecimal code written to port 80h and read with a POST card), check each output from the system power supply. If one or more outputs is low or absent, there may be a problem in the supply. Try a new supply. If all supply outputs measure properly, try a new CPU. If a new CPU does not resolve the problem, replace the motherboard. Refer to Chapter 19 for beep codes and POST code messages.
Symptom 14-3. The system boots with no problem, but crashes or freezes when certain applications are run. It may seem as if the application may be corrupt, but try a diagnostic such as AMIDIAG from AMI or The Troubleshooter by AllMicro. Run repetitive tests on the CPU. While the CPU may work in real-mode, diagnostics can detect errors running protected-mode instructions and perform thorough register checking. AMIDIAG stands out here because of the very specific error codes that are returned. Not only will it tell you if the CPU checks bad, but you will also know the specific reason why. When en error code is returned suggesting a CPU fault, try another CPU. If a CPU fault is not detected, expand the diagnostic to test other portions of the motherboard. If the entire system checks properly, you may indeed have a corrupt file in your application.
Symptom 14-4. The system boots with no problem, but crashes or freezes after several minutes of operation (regardless of the application being run). Also, you will probably note that no diagnostic indicates a CPU problem. If you shut the system off and wait several minutes, the system will probably boot fine and run for several more minutes before stopping again - this is typical of thermal failure. When the system halts, check the CPU for heat. Use extreme caution when checking for heat - you can be easily burned. An i486-series CPU may or may not be fitted with a heat sink. As a rule, i486 CPUs below 25MHz are run without a heat sink, while i486 CPUs running at 33MHz and higher do use a heat sink. DX2 and DX4 versions almost certainly use a heat sink. All Pentium processors require a heat sink. Recent Pentium, Pentium MMX, and Pentium Pro processors require a heat sink/fan assembly for adequate cooling.
If the CPU is not fitted with a heat sink, make sure that the system cooling fan is working, and that there is an unobstructed path over the CPU. If not, consider applying a heat sink with a generous helping of thermal compound. If the CPU is already fitted with a heat sink, make sure that there is a ample layer of thermal compound between the CPU case and heat sink base. In many cases, the compound is omitted. This ruins the transfer of heat, and allows the CPU to run much hotter. If you find that there is no thermal compound, allow the PC to cool, then add thermal compound between the CPU case and heat sink.
Symptom 14-5. An older system refuses to run properly when the CPU’s internal (L1) cache is enabled. This type of symptom occurred frequently with older processors (such as the AMD Am486), and can almost always be traced to a configuration issue. The processor may fail if run at an incorrect bus speed (i.e. overclocking), so check and correct the motherboard bus speed to accommodate the CPU. This symptom can also occur when running the CPU at an incorrect operating voltage. Check the voltage level and reconfigure the motherboard for the correct voltage (if necessary). Finally, the motherboard must be compatible with the L1 cache type on the CPU. For example, installing a CPU with a write-back cache on a motherboard that doesn’t support write-back cache can cause problems.
Symptom 14-6. You cannot run a 3.45V CPU in a 5V motherboard, even though an appropriate voltage regulator module is being used. Double-check the voltage regulator module (VRM). The VRM must have adequate current handling capacity to support the CPU’s power demands. Otherwise, the VRM will be overloaded and fail to provide adequate power. Check with the CPU manufacturer for their VRM recommendations. You might also try the CPU/VRM in another 5V motherboard. If the CPU/VRM fails in another 5V motherboard, chances are that the VRM is underrated or has failed. If the CPU/VRM does work on another 5V motherboard, it is possible that the original motherboard’s BIOS could not support the particular requirements of the new CPU. Check with the motherboard manufacturer to see if there is an updated BIOS (either flash or ROM IC) available for the system.
Symptom 14-7. A system malfunctions under HIMEM.SYS or DOS4GW.EXE after installing a new CPU. This type of symptom occurred frequently with older CPUs, and could generally be traced to errors in the motherboard CPU voltage and type settings (opposed to the newer bus speed/multiplier configurations). Check the motherboard’s CPU configuration jumpers. Also, running a 3.45V CPU at 5V, or running a non-SL enhanced CPU as an SL enhanced part can cause these types of problems to occur. So make sure that the correct part is being used, and see that the CPU voltage is correct (use a voltage regulator module if necessary).
Symptom 14-8. The system runs fine, but reports the wrong type of CPU. In virtually all cases, the motherboard BIOS was not written to support the particular CPU directly. Start by checking the motherboard’s CPU configuration jumpers to see that it is set properly for the particular CPU. If the problem persists, you’ll probably need a BIOS upgrade (either a flash file or ROM IC) to accommodate the processor. Check with the motherboard or system maker to determine whether an appropriate BIOS upgrade is available.
Symptom 14-9. After reconfiguring a VL motherboard for a faster CPU, the VESA VL video card no longer functions. Other VL cards may also malfunction. This frequently occurs on older VL motherboards with support for 40MHz bus speeds. Since the VL bus speed is tied to the motherboard bus speed, setting the motherboard to 40MHz can cause some VL cards to malfunction. Try running the motherboard at 33MHz (the native frequency for VL cards) and set the Local Bus Clock Rate jumper for <=33MHz. If the problem disappears, you have an issue with one or more VL cards. Try altering the number of VL bus wait states until the VL devices will support 40MHz (this will compromise system performance). If you cannot resolve the issue, you may not be able to use the motherboard at 40MHz. You may also try finding a VL board that WILL operate properly at 40MHz.
Symptom 14-10. Some software locks up on systems running 5x86 processors. This is a frequent problem with high-end software such as AutoDesk’s 3D Studio. Often, programs like 3D Studio use software timing loops in the code. The 5x86 processor executes these loop instructions faster than previous x86 CPUs which interferes with timing dependent code inside the program. In most cases, the software manufacturer will offer a patch for the offending program. For 3D Studio, you can download the fstcpufx.exe file from Kinetix (ftp://ftp.ktx.com/download/patches/3dsr4/fast_cpu/fstcpufx.exe). Run the executable patch file and follow the instructions. The patch alters the 3D Studio executable file.
Another prime example of software-related problems is with Clipper applications. Clipper inserts software timing loops into the applications when the code is compiled, and this also interferes with timing-dependent code in the program. For Clipper, you can download the pipeloop.exe file (ftp://ftp.cyrix.com/tech/pipeloop.exe) and put it in your autoexec.bat file.
Symptom 14-11. The Windows 95 Device Manager identifies the CPU incorrectly. In many cases, the CPU is mis-identified as a 486 or other older CPU. This is due to an issue with Windows 95. The algorithm used in Windows 95 to detect the CPU was likely completed before the particular CPU was released, and therefore the CPU responds to the algorithm just as a 486 does. Use a diagnostic which WILL identify your particular CPU correctly, or check with the CPU maker for a Windows 95 patch which will support proper identification. This problem happens often with Cyrix 6x86 CPUs, and can be corrected by downloading a patch such as 6xopt074.zip (see the "Performance enhancement software" bullet under the "Cyrix 6x86 issues" section below).
Symptom 14-12. The heat sink/fan will not secure properly. It is not tight against the surface of the CPU. This can be a serious problem for the system because a loose heat sink/fan will NOT cool the processor correctly. There are three classical solutions to this issue. First, make sure that you have the heat sink/fan model which is recommended for your particular CPU (a common error when building a new PC). Second, make sure that the heat sink attaches to either the CPU chip itself, or the ZIF socket that the CPU mounts in. Third, verify that the CPU has not been altered or faked. Faked CPUs are often ground down to remove their original markings, then new markings are placed on the CPU. The grinding process reduces the package thickness, and can prevent the heat sink/fan from being secure (faked CPUs are a common occurrence in Europe).
Cyrix 6x86 issues
From a technological standpoint, the Cyrix 6x86 (or M1 as it used to be called) is a strong competitor to the Intel Pentium - in a properly-configured system, the 6x86 can actually outclass the Pentium in some areas. In addition, the 200MHz version of the 6x86 uses a bus speed of 75MHz (replacing the established 66MHz bus speed). However, there are some special circumstances and symptoms to keep in mind when working on Cyrix-based platforms:
Symptom 14-13. The Cyrix 6x86 system is crashing or freezing after some period of operation. This is almost always a heat-related problem caused by inadequate cooling of the 6x86. If you’re not using a heat sink/fan, install one before continuing (be sure to use a thin layer of thermal grease to improve heat transfer between the CPU and heat sink). Make sure that you are using a good-quality heat sink/fan with PLENTY of capacity, and see that it is securely attached to the CPU. Also see that the CPU itself is securely seated in its socket.
You might also consider installing a different 6x86 model. The Type C028 version uses 3.52 volts, and the Type C016 uses 3.3 volts, so just changing models can reduce power demands. You might also try installing a version 2.7 or later 6x86 which is better able to deal with heat. Best yet, install a 6x86L CPU (and regulator). A third possible cause of intermittent system operation is a poorly-compatible BIOS. Check with the motherboard maker or system manufacturer and see if there is a BIOS upgrade to better support Cyrix CPUs.
Symptom 14-14. The Cyrix 6x86 system crashes and refuses to restart. This is another classic heat-related problem, and may often indicate that the CPU or its associated voltage regulator has failed. Check the voltage regulator - regulators are more susceptible to failure with Cyrix 6x86 CPUs because of the higher current demands. If the voltage regulator checks out, replace the CPU itself (perhaps with a lower-power model as mentioned in Symptom 14-13).
Symptom 14-15. You notice poor Cyrix 6x86 performance under Windows NT 4.0. In virtually all cases, NT has detected the 6x86, and has elected to shut down the write back L1 cache completely. This results in the performance hit. Fortunately, there are several ways to address this problem. First, you can download a patch from the Cyrix web site (www.cyrix.com) which re-enables the L1 cache under NT 4.0. This brings performance back up, but it also can cause instability for NT. A more practical resolution is to replace the CPU with a 6x86 version 2.7 or higher, or a 6x86L (and suitable voltage regulator) as mentioned in Symptom 14-13.
Symptom 14-16. You can’t get Quake (or other graphics-intensive program) to run nearly as well on a Cyrix 6x86 system as it does with a similar Pentium system. This is due to the issues with Cyrix FPU performance. There is no real resolution for the problem at this time - later 6x86 versions do not correct the FPU. You may replace the CPU with an AMD or Intel model, or wait to see the performance offered by the Cyrix 6x86MX (M2).
Symptom 14-17. A Cyrix 6x86 CPU won’t work on your motherboard. There are several possible problems when upgrading to any non-Intel CPU. First, check the motherboard’s chipset and make sure that the chipset (and other attributes such as bus speed) are compatible with the 6x86. As you saw earlier, some 6x86 iterations require unusual bus speeds in order to function.
Motherboard settings are always important when installing a CPU. You will probably need to set a new clock speed to accommodate the 6x86. In some cases, you may also need to specify a CPU type. Finally, you’ll need to set the CPU voltage (if your motherboard provides a "switchable" voltage regulator). Otherwise, you’ll need to install a voltage regulator with enough power capacity to handle a 6x86 adequately. If you select an underrated regulator, the regulator can overheat and burn out.
The last issue to consider is your BIOS. Often the BIOS must detect a CPU correctly, and make slight variations in BIOS routines to use the new CPU most effectively. If the BIOS does not support your 6x86, you’ll need to get a BIOS upgrade from the motherboard maker or system manufacturer.
If all else fails, try slowing down the clock speed to the next slower level. If the CPU runs properly then, there is probably an incompatibility between your motherboard and the 6x86. Check with the motherboard manufacturer (or system maker) and see if there is any compatibility issues have been identified (and if there is a fix available).
Symptom 14-18. You notice performance degradation when using a Cyrix 6x86 under Windows 3.1x or Windows 95. In many cases, performance problems when using non-Intel CPUs is related to BIOS support. Often the BIOS must identify a CPU, and adjust to accommodate any particular nuances. If the BIOS is not supporting the CPU correctly, it can result in overall performance problems. Check with the motherboard maker or system manufacturer for any BIOS upgrades that will better support your new CPU.
Clock speed and cache are two other issues that can effect system performance. Check the motherboard jumpers and verify that the clock speed is set correctly for your Cyrix CPU. Also check for cache jumpers and see that any cache settings are correct. You may also verify that Internal (L1) and External (L2) caching are enabled in BIOS.
Overclocking troubleshooting
The process of CPU overclocking is hardly a perfect one. There are many variables involved such as the CPU type, motherboard quality, and available clock speed and multiplier settings. There are many cases when overclocking results in system problems. Some of the more common problems are identified below:
Symptom 14-19. The system does not boot up at all after reconfiguring the system for overclocking. This is a common problem which almost always means that you cannot overclock the CPU at the level you have chosen. Scale back the clock speed or the multiplier until the system starts up, or return the clock and multiplier to their original values.
Symptom 14-20. The system starts after overclocking, but locks up or crashes after some short period of time. Overclocking causes substantial heat dissipation from the CPU, and cooling must be improved to compensate for this additional heat - otherwise, the overheated CPU can lock-up and crash the system. Check the heat sink/fan and see that it is attached correctly with a thin layer of thermal grease between the CPU and heat sink. It may be necessary to "up-size" the heat sink/fan, or use a Peltier cooler.
Symptom 14-21. You see memory errors after increasing the bus speed for overclocking. Memory performance is tightly coupled to bus speed (or "clock speed"). Most 60ns RAM types will work fine up to 66MHz, but you may need high-end 50ns EDO RAM or 50ns SDRAM when pushing the bus speed to 75MHz or 83MHz. Try some faster memory in the PC, or do not attempt to overclock the system.
Symptom 14-22. After reconfiguring for overclocking, the system works, but you see a rash of CPU failures. Chances are that the CPU is running far too hot, and is resulting in premature CPU failures. Check the cooling unit and see that it is securely attached using a thin layer of thermal grease between the CPU and heat sink. It may be necessary to "up-size" the heat sink/fan, or use a Peltier cooler.
Symptom 14-23. After reconfiguring for overclocking, you find that some expansion board or other hardware is no longer recognized or working. Since PCI and ISA clocks are typically tied to the system clock speed, increasing the clock speed will also increase the PCI and ISA clocks. This can upset the operation of some sensitive adapter boards. You may be able to replace the suspect hardware with a more tolerant adapter, but it is often safer to return the clock speed and multiplier settings to their original values.
Symptom 14-24. After reconfiguring for overclocking, you notice that a number of recent files are corrupt, inaccessible, or missing. In effect, the system is not stable. Check for excessive heat first (as in Symptom 14-4). Otherwise, you should not overclock this particular system. Try scaling back the overclocking configuration, or return the clock speed and multiplier settings to their original values.
Further study
That concludes Chapter 14. Be sure to review the glossary and chapter questions on the accompanying CD. If you have access to the Internet, take some time to review a few of the CPU manufacturers and other resources listed below:
AMD: http://www.amd.com
AMI: http://www.megatrends.com (AMIDIAG)
ARM: http://www.arm.com/
Cyrix: http://www.cyrix.com
DEC Alpha: http://www.digital.com/info/semiconductor/alpha.htm
HAL Sparc64 Processor: http://www.hal.com/docs/
HP PA-RISC: http://www.wsg.hp.com/wsg/strategies/strategy.html
IBM PowerPC: http://www.chips.ibm.com/products/ppc/
Intel: http://www.intel.com
MIPS: http://www.sgi.com/MIPS/
NexGen: http://www.nexgen.com
TI: ftp.ti.com
Newsgroups:
comp.sys.arm
comp.sys.dec
comp.sys.hp.hardware
comp.sys.intel
comp.sys.mips
comp.sys.powerpc
comp.sys.sun.hardware
Chapter: 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
| Reserve your copy at a Beta Bookstore near you! |
Contact Bet@books © 1998 The McGraw-Hill Companies, Inc. All rights reserved. Any use of this Beta Book is subject to the rules stated in the Terms of Use. |