Address Space Flashcards
Address Space
The number of wires on the address bus defines the maximum amount of RAM a CPU can theoretically address. This is called the address space. With a 32-bit address bus, for example, the maximum amount of memory the CPU can address is 232, or 4,294,967,296 bytes (4 GB). Modern CPUs have address buses larger than 32-bit, so they can support substantially more than 4 GB of RAM. (See “64-Bit Processors” later in this chapter for details.)
Address Space
The number of wires on the address bus defines the maximum amount of RAM a CPU can theoretically address. This is called the address space. With a 32-bit address bus, for example, the maximum amount of memory the CPU can address is 232, or 4,294,967,296 bytes (4 GB). Modern CPUs have address buses larger than 32-bit, so they can support substantially more than 4 GB of RAM. (See “64-Bit Processors” later in this chapter for details.)
Clock Speed and Multipliers
The CPU clock speed, or frequency, tells you how many calculation cycles a CPU can (in theory) execute per second. One calculation cycle per second is equal to 1 hertz (Hz). Of course, nobody measures clock cycles in hertz, but rather in billions of calculation cycles per second, or gigahertz (GHz).
Two things determine clock speed: the maximum speed of the CPU itself and the maximum speed that the motherboard can handle. The CPU speed is determined by the manufacturer and is set at the factory. The system crystal—a quartz crystal circuit that oscillates at a fixed frequency when fed current—sets the motherboard’s clock speed.
Early CPUs ran at the speed of the bus, but engineers realized the CPU was the only thing working much of the time; if they could speed up just the CPU, they could speed up the whole process. Modern CPUs run at a multiple of the motherboard clock speed. The system bus on my 3.4 GHz Core i7 system runs at 100 MHz, so the clock multiplier goes up to ×35 at full load to support the maximum speed of the CPU at 3.5 GHz.
In the old days, the system bus speed and the multiplier on the CPU had to be manually configured via jumpers on the motherboard. Today’s CPUs actually report to the motherboard through a function called CPUID (CPU identifier), and the system bus speed and multiplier are often set automatically. Many motherboards offer manual configuration, but this is primarily for tweaking systems.
CPU Packages
All current CPUs come in a square package called a pin grid array (PGA), but variations exist within and among manufacturers. Collectively, Intel and AMD have used close to 100 variations of the PGA package over the years for hundreds of different CPU models. They’ve used names such as staggered-PGA, micro-PGA, ball grid array, or BGA (which uses tiny balls instead of pins), and land grid array, or LGA (which uses flat pads instead of pins).
zero insertion force (ZIF) sockets
To make CPU insertion and removal easier, these sockets—officially called zero insertion force (ZIF) sockets—use a small arm on the side of the socket or a cage that fits over the socket to hold the CPU in place. ZIF sockets are easily identified by their squarish shape.
T Socket
Most modern Intel sockets have official names such as “Socket T,” but they are usually referred to by names such as “Socket LGA 2066” to reflect the number of pins in the CPU socket. AMD’s latest sockets go by names such as “Socket AM4” and are generally not referred to by the number of pins on the CPU or in the socket.
Hyper-Threading
Hyper-Threading Technology is Intel’s implementation of simultaneous multithreading, which executes multiple threads at the same time on a single processor core to increase performance. To the OS, a multithreaded processor looks like more than one CPU, but it’s limited by having just one set of CPU resources.
64-Bit Processors
The address and general-purpose registers in a 64-bit CPU are typically 64 bits wide and can access tons more memory than a 32-bit CPU. Whereas 32-bit CPUs can only allocate 4 GB of RAM to a process, 64-bit CPUs already support hundreds of terabytes of RAM, even though they’re using just a fraction of what they can theoretically support. In practical terms, this greatly enhances the performance of programs such as video editors, which work with huge files. Most new CPUs are 64-bit, and 64-bit CPUs are even increasingly common in smartphones.
Multicore CPUs
CPU clock speeds hit a practical limit of roughly 4 GHz around the years 2002–2003, motivating the CPU makers to find new ways to get more processing power for CPUs. Although Intel and AMD had different opinions about 64-bit CPUs, both decided at virtually the same time to combine multiple CPUs onto the same physical processor die. CPUs with more than one processor core are known as multicore CPUs.
The first batch of multicore processors combined two CPU cores onto a single chip, creating a dual-core architecture, but today’s CPUs often have four or more.
Mobile CPUs
The inside of a laptop PC is a cramped, hot environment, where no self-respecting CPU should ever need to operate. Since the mid-1980s, CPU manufacturers have endeavored to make specialized versions of their processors to function in the rugged world of laptops. These are called mobile processors.
Intel and AMD create mobile versions of their CPUs that use less power than an equivalent desktop model. This enables the laptop’s battery to last longer and makes it easier to keep the CPU and laptop running cool. Modern CPUs also use throttling to reduce processing cycles and lower clock speeds when temperatures climb or the system is idle.
Throttling
Modern CPUs also use throttling to reduce processing cycles and lower clock speeds when temperatures climb or the system is idle.
Virtualization Support
Intel and AMD have built-in support for running more than one operating system at a time, a process called virtualization. The key issue from a CPU standpoint is that virtualization used to work entirely through software. Programmers had to write a ton of code to enable a CPU that was designed to run one OS at a time to run more than one OS at the same time.
Think about the issues involved. How does the memory get allocated, for example? Or how does the CPU know which OS to update when you type something or click an icon? With hardware-based virtualization support, CPUs took a lot of the burden off the programmers and made virtualization a whole lot easier.
Integrated Graphics Processing Unit
The video-processing portion of the computer—made up of the parts that put a changing image on the monitor—traditionally has a discrete microprocessor that differs in both function and architecture from the CPUs designed for general-purpose computing. The generic term for the video processor is a graphics processing unit (GPU). Because graphics processors can handle certain tasks much more efficiently than the standard CPU, integrating a GPU into the CPU enhances the overall performance of the computer while at the same time reducing energy use, size, and cost. With the proliferation of mobile devices and portable computers today, all of these benefits have obvious merit.
Both major CPU manufacturers have released CPUs with integrated GPUs. The architecture differs in some ways, such as how they use the cache on the chip. The Intel HD Graphics integrated into many Core i3/i5/i7 processors, for example, has the CPU cores and the GPU core sharing the “last level cache,” which is either L2 or L3, depending on the processor. With the AMD accelerated processing unit (APU), such as the AMD Fusion, the GPU has access to all levels of cache on the CPU.
AMD accelerated processing unit (APU)
the GPU has access to all levels of cache on the CPU
Overclocking
Most modern systems use the CPUID to set the clock speed and clock multiplier automatically for any CPU you install, so all but true enthusiasts are done with installation at this point. Boot up the PC, and watch the screen. Assuming you’ve done everything correctly, your system will start without any undue alarms or errors. If, however, something has gone wrong, you need to turn to troubleshooting.
Some motherboards enable you to adjust CPU settings manually by changing a UEFI BIOS setting, or by using other software. Many enthusiasts deliberately change these settings to enhance performance; this is called overclocking.
You can make a couple of adjustments to overclock successfully. First, increase the bus speed for the system. Next, you often have to increase the voltage going into the CPU just a little to provide stability. Always do only one thing at a time, document your change, and then reboot.