As integrated circuit technology has progressed and microprocessor designers have increased the number of transistors that they can fit into a chip, the speed, performance, and complexity of their CPUs has continued to grow. Some activities that had previously taken place outside the processor chip are now incorporated into them. As long as Moore's Law continues to drive the industry, you can expect future generations of CPUs to become even faster and more complex than they are today.
Therefore, any description of CPU operation is a snapshot of a moving target. The processors in this section represent current products that are available at the time this is written, in mid-2006.
Figure 6.1 shows the internal organization of a typical CPU. This example happens to be based on an AMD design, but the same general principles also apply to Intel products.
Figure 6.1: The logical parts of a typical CPU
The CPU contains these elements:
A clock circuit that produces a continuous stream of pulses at a regular interval.
The core processor, which includes a control unit, an arithmetic logic unit (ALU), and other addressable registers. Each register is a group of memory bits that hold data that the processor will work with. The control unit in the core processor receives instructions from memory and tells the memory controller to move the necessary data from memory to the ALU.
The ALU can perform three types of actions in response to instructions from the control unit:
It can perform mathematical operations on the data, such as addition or subtraction.
It can move data from one location in the computer's memory to another.
It can jump to a different instruction.
After a string of instructions is complete, the control unit instructs the memory controller to send the results of those instructions to an output device such as a video display or a printer, or to external storage on a hard drive or other storage device.
The memory controller, which exchanges instructions and data with the computer's RAM.
The I/O bus controller, which moves data between the processor and the computer's input and output devices. The bus is the set of wires that carries the data.
A Level 1 (L1) instruction cache memory, which holds frequently used commands before they move to the core processor.
A Level 1 data cache memory, which receives data from the output of the core processor.
A larger Level 2 (L2 or secondary) cache memory that acts as an intermediary between the L1 caches and the computer's RAM. In older processors, the L2 cache was a separate chip from the microprocessor.
Because the clock speed of a modern CPU is measured in gigahertz (billions of cycles per second), the computer completes each action much more quickly than it takes to describe them.
Many of the latest CPUs have a dual core or multi-core architecture, with two or more parallel core processors that share the processing load. A single memory controller and I/O bus each coordinate communication with external devices and RAM. Because the computer can share the processing burden between the two (or more) cores, it can either handle more processing tasks within the same period of time, or reduce the amount of time needed to perform the same amount of work. In practice, a multi-core processor is particularly efficient for systems that run complex programs in background (such as searching a large database, rendering a 3-D image, or downloading large files), while a user runs other programs at the same time, and for running multiple tasks within the same program at the same time. As dual-core and multi-core processors become more common, many new application programs are being designed to take advantage of this feature.
As mentioned earlier, the two major manufacturers of CPUs for personal computers are Intel and AMD. Intel has been the traditional sales leader, but by mid-2006, both companies owned healthy shares of the total market.
As active competitors, Intel and AMD have each developed their own product designs and manufacturing methods. The details of the two companies' CPU architecture are not the same, but they are both fully compatible with the Windows operating system (and other operating systems such as Linux). Both companies work closely with Microsoft to make sure their products continue to work with future Windows releases.
Of course, both companies support their products with aggressive marketing programs (remember those Intel Inside labels?), and each has customers who take the superiority of one or the other as a matter of faith. Both companies and their supporters can point to plenty of Web sites and benchmark tests that demonstrate that their favorite is the better performer.
The truth is that most users won't see any difference between the two. It's possible that some particular cutting-edge game might run slightly better on a top-of-the-line AMD processor than a comparable Intel CPU (or vice versa), and one brand might use a more elegant internal instruction set than the other, but it doesn't really matter that much to the way the average person uses a computer. Fast and reliable day-to-day operation is much more important than the numbers produced by a performance test. And since both companies introduce faster versions of most of their CPU models several times a year, this month's performance leader will be a mid-range version a year from now.
Within each product line, there are significant differences in clock speeds, cache memory sizes, number of core processors, and other features and functions (see Table 6.2). Both companies publish a tremendous amount of information about their products on their Web sites (http://www.intel.com and http://www.amd.com) and each can point you to the best processor family within their product range for your particular requirements.
"Basic computing," e-mail, home computers[*]
"Digital home and office applications"[*] Image processing, games and multimedia
High performance laptop computers
Multimedia entertainment, digital photo editing, running multiple applications, supporting multiple users
Very-high-performance laptop computers
"Multiple demanding applications such as graphics-intensive games or serious number-crunching programs-while downloading music or running security programs in the background."[*]
Core 2 Duo
High-performance energy-efficient desktop and mobile computers
Business applications, including Application servers, e-mail servers, Internet servers
"Business-critical computing … with mainframe-class reliability"[*]
"Everyday computing with built-in security"[*]
"Leading edge performance with simultaneous 32-bit and 64-bit computing"[*]
Athlon 64 X2
Running multiple applications simultaneously
Athlon 64 FX
Running "the next generation of digital media and games"[*]
"Optimized to deliver AMD64 performance in thinner and lighter notebook PCs"[*]
Turion 64 X2
Multi-tasking, long battery life and compatibility with wireless and graphics technologies in high-performance laptops
Servers and workstations running simultaneous 32- and 64-bit computing
[*]Quotes are taken from the official Web site of the product listed.
Most computer motherboards use a mounting socket to hold the CPU chip, rather than permanently attach it directly to the printed circuit board itself. This method offers several benefits:
The very expensive CPU chip is not exposed to possible damage caused by heat from the soldering process during assembly.
The computer builder can produce a common design for a range of products and install different CPUs to provide different levels of performance.
The computer's user (or a service person) can remove and replace a damaged CPU or upgrade the computer's performance without using a soldering iron.
Both Intel and AMD offer processor chips designed for several different socket types, many of which can support more than one family of core processors. However, the CPU and the mounting assembly must share the same socket type, or the chip won't fit into the socket. Therefore, it's essential to identify the type of socket on your motherboard if you are assembling your own computer or if you have to replace or upgrade the CPU on an existing machine. The list of specifications in the owner's manual for your computer or motherboard should identify the socket type. The motherboard manufacturer's Web site should include the most recent list of compatible CPU models.
Most CPU chips are flat packages with their mounting pins on the bottom. Other processor chips mount into vertical sockets called slots.
The names of many socket types tell you how many pins (electrical contact points) are on the bottom of the chip. For example, an Intel Socket 478 Pentium 4 processor has 478 pins, and an AMD Socket 939 Athlon FX has 939 pins. However, you might also see some sockets that have arbitrary names or numbers, such as Socket 7 or Slot A.
It will come as no surprise to learn that a chipset is a group of one or more integrated circuits or chips. Remember those three other chips that the Intel 4004 needed for memory and I/O control? Today, the chipset on a personal computer's motherboard still controls the exchange of data among the CPU, memory, and the I/O devices that the CPU uses to communicate with the rest of the world. As Figure 6.2 shows, the chipset is the interface between the generic inputs and outputs on the CPU and the specific connections used by a particular type of RAM module, I/O connector, hard drive, and other devices.
Figure 6.2: The chipset converts between specific commands and data used by hardware and the generic instructions and data used by the CPU.
Integrated circuit technology has allowed the designers and manufacturers to squeeze more and more transistors into a smaller space. Some of the features and functions that had previously been located on the chipset have migrated to the CPU itself because data moves faster inside a single chip than from one chip to another. But there are still some good reasons to keep some actions separate. By keeping the controls for specific I/O devices on the chipset, you don't have to offer a lot of different models of expensive CPU chips; you can use the same processors with many different kinds of hardware, and you can use the same devices with more than one processor.
The chipset works closely with the BIOS. In fact, the code in your computer's BIOS was written to support a specific chipset; many of the instructions in the BIOS tell the CPU what signals to expect from the chipset. If a new chipset has a problem, the solution is often to install an updated version of the BIOS.
When Intel introduced the first microprocessors, they made their own chipsets to go along with them. It's still possible to use an Intel chipset with an Intel CPU, but they have also issued licenses to several other companies to make chipsets that are compatible with Intel processors. AMD, on the other hand, doesn't make their own chipsets, so their engineers and designers work closely with many of the same companies. As a result, it's often possible to find motherboards (and computers that contain those motherboards) that use the same Intel or AMD family of processors, but different chipsets.
Along with Intel, the other major chipset makers include NVIDIA, SiS, VIA Technologies, and ATI (which was purchased by AMD in 2006). In general, Intel's chipsets have a reputation for being extremely reliable from the first release; some of the others are often somewhat faster and they sometimes support new peripheral products sooner, but it might take a few months or more to wring out the bugs in their designs (that's not as bad as it sounds-if you have a buggy chipset, you can fix it by downloading and installing a free update to the BIOS).
Most of today's chipsets have two major elements, called the Northbridge and the Southbridge. This has nothing to do with the feng shui of your computer room; it's left over from some old block diagrams that showed the relationships among various components in a computer system. They're called bridges because they provide routes for data. North and south are their traditional positions on the flow chart (see Figure 6.3). The chipset makers usually use two separate chips for the Northbridge and Southbridge, so they can replace them one at a time when they come up with new designs. In this case, two smaller chips are easier to manufacture than one bigger one.
Figure 6.3: A computer's chipset gathers input and output signals through controllers called the Northbridge and Southbridge.
The Northbridge is closer to the processor chip because it communicates directly with the CPU at high speed. It connects the CPU to the fast I/O ports including the RAM modules and the AGP graphics socket. The Southbridge handles the relatively slower devices like disk drives, USB ports, and old ISA expansion cards. It communicates with the CPU through the Northbridge.
The Northbridge handles the controllers for the computer's memory, the graphics controller (using either an AGP or PCI Express interface), and the interface with the Southbridge. If the computer supports disk drives or other devices that use a SCSI interface, the Northbridge also exchanges commands and data with the SCSI controller.
For more information about AGP and PCI Express, see Chapter 9. Chapter 8 describes a SCSI interface.
One of the Northbridge's most important functions is to direct data traffic as efficiently as possible among the cache memory on the CPU, RAM, I/O devices, and through the Southbridge to and from the computer's disk drives. It uses multiple buffers to hold small pieces of data from the CPU and RAM until it can lump them into larger strings that it can transfer to a disk drive more efficiently.
The Southbridge controls these inputs and outputs:
ATA and SATA ports (for disk drives)
USB and Firewire ports
On-board LAN (Local Area Network)
PCI bus (for expansion cards)
Real Time clock
The Southbridge exchanges data between the CPU (through the Northbridge) and all these sources and destinations, plus a few others (like an external keyboard and mouse controller) that all have one thing in common: They communicate more slowly than the sources that use the Northbridge, so the sources that use the Southbridge don't need to connect directly to the processor. To communicate between the two, the chipset uses several wires (called buses) to move data in each direction between the Northbridge and Southbridge. AMD and Intel use different methods to meet this requirement, but they both accomplish the same thing.