Before you start
Objectives: learn what is CPU and all associated terms.
Prerequisites: no prerequisites.
Key terms: processor, cache, speed, cpu, performance, memory, virtualization, clock, multi-core, heat, instruction
32-bit Versus 64-bit
Some CPUs contain a 32-bit architecture, some a 64-bit architecture. 64-bit processors can manage twice the data of a 32-bit processor, but 64-bit operating systems and 64-bit applications are required to take full advantage of their 64-bit architecture. A 32-bit processor can process 32-bits of information at a time. A 64-bit processor can process 64-bits of information. Over the last several years, processors have been moving from 32-bit processors to 64-bit processors. The biggest advantage of 64-bit processors over 32-bit processors is in the amount of memory they can use. 32-bit processors have a limit of 4GB. 64-bit processors have a theoretical limit of 16.8 TB, although operating system and current hardware limitations impose a much lower practical limit.
The processor instruction set identifies all instructions (operations) that a processor can perform. All 32-bit CPUs utilize the IA-32 instruction set (also referred to as x86). Intel’s Itanium processor utilizes its own IA-64 set, while both AMD and Intel 64-bit CPUs use the x64 instruction set. As we said, while 32-bit applications and operating systems will run on 64-bit processors, we really need a 64-bit OS and 64-bit applications to take full advantage of their capabilities. Itanium processors use a software layer to translate between IA-32 and IA-64 while x64 processors execute both 32-bit and 64-bit instructions in the hardware.
CPUs operate at a certain clock speed measured in megahertz or gigahertz. Our motherboard must support not only the form factor or packaging of our CPU, but also its clock speed.
Some CPUs support Hyper-threading. Hyper-threading is a feature of some Intel processors that allows a single processor to run threads (instructions) in parallel, as opposed to processing threads linearly. Hyper-threading enables a processor to execute two threads at the same time. For example, on a quad-core Intel system that supports Hyper-threading, the processor can execute 8 threads at a time (2 on each core). Hyper-threading gives us about a 20% increase in performance. Hyper-threading is not to be confused with multi-core or multi threading technology. Multi threading is a feature of an application that allows it to send multiple threads at the same time. Applications are typically written to support multi threading to take advantage of multiple cores (executing threads on two or more processors at the same time) or hyper-threading features.
Most CPUs in the past contained a single executing core, or a single CPU. A multiple core processor has multiple processors within a single processor package. Dual-core, triple-core and quad-core processors are typical in desktop systems. With multi-core CPUs, we can purchase dual, triple, quad or even 8 core CPU packaging. Operating systems and applications should be designed to take full advantage of multi-core technology. Multi-core systems enable the operating system to run multiple applications simultaneously. Without multiple processors, applications appear to run at the same time, but actually must wait their turn for processing time from the single processor. Older motherboards had two (or more) processor sockets to provide a multiple processor solution. Newer multi-core processors use a single motherboard socket to support multiple processors.
Cache is memory that the processor can access directly without using the system RAM. Cache memory is fast, static memory. There are three types of processor cache. Level 1 (L1) cache is integrated on the processor die itself and stores instructions for the processor. On multi-core systems, each processor typically has its own L1 cache. Some processors might have two L1 caches, one for instructions and one for data. Level 2 (L2) cache is additional cache used for both instructions and data. Depending on the processor, L2 cache might be shared between two or more cores, or exclusive to single core. Level 3 (L3) cache is additional cache beyond the level 2 cache. For multi-core systems, L3 cache is shared between all cores.
The size of the cache increases as we move from L1 to L3, with L1 cache being the smallest. As a general rule, a processor with more cache performs better than a processor with less cache (all other things being equal). Originally, only L1 cache was on the processor die, with L2 cache being on the motherboard between the CPU and the RAM. As processor technology has advanced, L2 cache moved to the processor die, with L3 cache being on the motherboard. Today, all three cache levels can be located on the processor.
The process size refers to the manufacturing process used to etch transistors onto the silicon wafer that will become the CPU. A smaller process size means smaller transistors, which translates into a smaller CPU die with more transistors and less power consumption. Process size is expressed in microns (such as .25 microns) or nanometers (90 nm which equals .09 microns).
Throttling is the process of modifying the operating characteristics of a processor based on current conditions. Throttling allows a CPU to slow down or speed up as the need dictates. Throttling is often used in mobile processors to change the operating frequency to minimize power consumption and heat output. Throttling can also be used in low memory conditions to slow down the processing of I/O memory requests, processing one sequence at a time in the order the request was received. Multi-core CPUs can even shut down entire processing cores to preserve power. Intel’s Turbo Boost technology can allow a CPU to over-clock as the need dictates. Turbo Boost, the opposite of throttling, allows the processor to dynamically run above its rated speed to improve performance. Over-clocking, or pushing a CPU beyond its designed specifications can give us a marginal increase in performance, but can certainly decrease our CPU’s life. Mobile CPUs work with a mobile chipset to conserve battery life. Special versions of processors are built for mobile devices to minimize power consumption and the amount of heat generated .
Overclocking is a feature that causes the processor to operate at a higher speed. Overclocking is typically performed by those who want to get the maximum performance from their systems. But beware, overclocking can cause system instability, component damage, and can void our warranty. Motherboard bus, processor, and memory settings should be adjusted to match. Overclocking may require more voltage and it often increases heat output. For this reason, it may be necessary to upgrade our cooling devices.
Virtualization allows one computer, typically a high end server, to perform multiple roles as if it were multiple servers. For example, let’s say that we have a data center in which we have four servers which are four physical computers. One computer is a database server, other an application server, third is an email server, and fourth is a file server. Now, imagine that we combine these services virtually onto one server platform. For all intents and purposes, these servers still exist, but they exist as virtual machines (VMs) running under a single host OS on a single hardware platform. Virtualization allows a single physical machine (known as the host operating system) to run multiple virtual machines (known as the guest operating systems). The virtual machines appear to be self-contained and separate physical systems. Virtualization is performed by adding a layer between the physical system and the operating system. This layer acts as the hardware to the guest system. Early virtualization was performed using software only. Newer virtualization uses special instructions supported by the processor to improve performance. VMware is the most popular virtualization solution. Microsoft has several virtualization products including Virtual PC, Virtual Server, and Hyper-V. If we are planning on implementing a virtual solution, check to see whether hardware support in the CPU is required. Hardware support is provided by processors with the Intel’s Virtualization Technology (VT) or AMD’s AMD Virtualization (AMD-V) features.
On the picture below we have a PGA (Pin Grid Array), or SPGA (Staggered Pin Grid Array) form factor CPU and his Zero Insertion Force (ZIF) socket on a system board. The CPU resides on the system’s Front Side bus along with two other very important integrated circuits, the Northbridge and the Southbridge chipset.
Image 232.1 – CPU
These integrated circuits offload work from the CPU so it can handle key processing tasks. The Northbridge handles IO to video and to memory, things that we want to happen very quickly on our system board. The Southbridge chip manages input and output to other internal and external expansion buses.
Image 232.2 – North and South Bridge
The Front Side Bus must clock with the speed of the CPU. The faster the clock, the better.
Integrated Memory Controller
In a traditional processor design, the processor is connected to the Front Side Bus and the Northbridge chip. The processor communicates with other system components through the Front Side Bus. Smaller manufacturing size has reduced the overall size of a processor, leaving more room on the processor die for additional cores or cache. To improve performance, some processors include the memory controller on the processor die rather than in the Northbridge chip, resulting in faster memory access by the processor.
Processors require some form of heat dissipation system to function properly. Without a heat dissipation system, a processor will overheat and burn out in less than a minute. Most modern CPUs require a heat sink and a fan. Between the CPU and the heat sink, thermal paste or a thermal pad helps in the transfer of heat from the CPU to the cooling unit.
Processors operate using an internal clock that is the same as, or is a multiple of, the motherboard bus speed. The speed is represented in MHz and is also referred to as the frequency. We can purchase processors of the same type but with different speed ratings. When selecting a processor, we have to make sure that the motherboard supports the processor speed by reading the motherboard documentation first. Most motherboards automatically detect the processor speed. If not, we might need to use jumpers or edit the CMOS to configure the processor speed. Clock speed is not the only measure of a CPUs performance. There are many other factors to take into consideration. Cache memory is important. The more the better. 64-bit and multi-core CPUs give better performance, but we’ll want to purchase an appropriate operating system and applications to take advantage of their capabilities. Hyper-threading within a CPU can also boost its performance. And remember, overall system performance can also be improved with more memory, better cooling and faster disks. Once we choose our CPU and system board, we must use proper cleaning and maintenance to keep our system working for years.
For a long time, processor clock speed was used as a measure of processor performance. This is not necessarily true for newer processors. If two processors are of the same type, higher speed typically means higher performance. With processors of different types, speeds might not be comparable. It is important to make sure our motherboard can support the speed of our processor. Many processors use a performance rating instead of speed with a higher number indicating a better-performing processor. However, performance ratings are typically only applicable between models of the same manufacturer. In some cases, buying a processor with double cache can nearly double the performance. Dual core processors offer better performance, but typically not double. Software must be specially written to take best advantage of the dual core processors. Special instruction sets supported by a processor can also increase performance. For example, Hypert-hreading support on Intel processors can boost performance for specific types of operations.
Installing a CPU
When installing a CPU we have to make sure to prevent electrostatic discharge. This step is important because CPUs are made of very small and sensitive components. It takes very little static discharge to damage the CPU.
When installing a CPU, we will typically also install a heat sink and a fan. Remember that we have to establish a heat connectivity between the top of the CPU and the heat sink itself. This is typically done by using a thermal paste. We put a bit of paste on the heat sink and spread it, so that when it touches the CPU the heat will be conducted between them. This is very important withmodern CPUs since they generate a lot of heat.
Keep in mind that the CPU and motherboard socket type must match. The socket identifies the number and layout of pins. Also, motherboard must support the CPU speed. If the CPU is newer than the motherboard, we can try and update the BIOS in order for motherboard to support new speeds.
CPU sockets typically have a Zero Insertion Force (ZIF) socket. That means that all we will have to do is lift the level on the socket, and we will be able to slip in our CPU in the socket. Keep in mind that we have to orient the CPU properly. Modern CPUs are keyed, however, we should still make sure to follow the triangle marks on the socket and the CPU. The triangle indicates the pin 1 direction. Once we put the CPU in the socket, we can pull the level back down. The lever will grip the CPU in place. After that, we can put the heat sink and the fan on the CPU. Make sure to follow instructions on how to do that. Make sure to plug the fan to the fan power connector on the motherboard.
After we install the CPU, we should check our settings in the CMOS program. Most important parameter to look and configure is the multiplier. Depending on the motherboard, the CPU, BIOS and CMOS, most of the time that parameter will be auto detected, so we won’t have to configure it. In some cases we will have to configure it manually.
When installing a processor in a multi-processor system, unused processor slots must be filled with a special terminating resistor. Also a multi-processor system that the speed of the processors should be the same.
Some CPUs will be unlocked, meaning that we can change the its speed above their rated speed through over clocking. With over clocking, we increase the speed and often the voltage to increase the performance of the processor. Over clocking typically voids the CPU warranty and could lead to shorter component lifetime.
When troubleshooting CPU problems, we should have the following in mind. CPUs don’t have movable parts, however they can still wear out. The key reason for that is the excessive heat. If the CPU stays to hot to long, it will degrade and eventually fail. CPUs can also fail because of ESD. Another issue that can cause the CPU to fail is over clocking. If we go to far, CPU will degrade and fail faster. Some problems can come up if we decide to upgrade our CPU. This is because our BIOS might not support the speeds of the newer CPU, although we can fit the CPU in the socket. In that case we can try to update the BIOS (using the original CPU). In most cases and in most newer motherboards, BIOS will query the CPU for the correct multiplier for the CPU. If we can override that configuration, we are talking about over clocking. In this case we can set the multiplier to high (the CPU will degrade or fail), or we can set it to low (the CPU will run slower). We should check the specification for the correct multiplier. When installing CPUs we should always make sure that it is sited flat. It is possible that the pins are not fully inserted into the socket. Also, make sure that the CPU is properly oriented when inserting it. If we don’t have any display after we install our CPU, this typically means that our BIOS doesn’t support the CPU bus speed (although the CPU fits our socket). We should always make sure that our CPU is not overheating. Overheating is the number one issue with CPUs. This problem comes with dust which acts as a thermal insulator. We have to get rid of the dust from the CPU. Most motherboards provide some utility that will let us check the current CPU tepmerature. We should check the CPU temperature on regular basis.
A 32-bit processor can process 32-bits of information and 64-bit processor – 64-bits of information. 32-bit processors have a limit of 4GB. 64-bit processors have a theoretical limit of 16.8 TB. The processor instruction set identifies all instructions (operations) that a processor can perform. CPUs operate at a certain clock speed measured in megahertz or gigahertz. Hyper-threading is a feature of some Intel processors that allows a single processor to run threads (instructions) in parallel, as opposed to processing threads linearly. A multiple core processor has multiple processors within a single processor package. Cache is memory that the processor can access directly without using the system RAM. The process size refers to the manufacturing process used to etch transistors onto the silicon wafer that will become the CPU. Throttling allows a CPU to slow down or speed up as the need dictates. Over clocking is a feature that causes the processor to operate at a higher speed. Virtualization allows one computer, typically a high end server, to perform multiple roles as if it were multiple servers. Processors require some form of heat dissipation system to function properly. Processors operate using an internal clock that is the same as, or is a multiple of, the motherboard bus speed. The speed is represented in MHz and is also referred to as the frequency.