Friday, August 3, 2007

CPU & CACHE

How important is CPU speed?
CPU speed is not a reliable indicator of CPU performance.
Many factors inside and outside of the CPU exert a significant impact on CPU performance, and on overall system performance.
The CPU
CPU speed is measure in megahertz. A 1MHz CPU can accomplish one million CPU cycles in one second.
Does this mean that a 2MHz CPU is twice as fast as a 1Mhz CPU?
Not necessarily. This depends on how much work each CPU accomplishes in each clock cycle.
The 1MHz CPU might very well be faster, in practice, than the 2Mhz CPU - if it is more efficient or can process more tasks in each CPU cycle.
The Cache
The purpose of a cache is to enable the CPU to access recently used information very quickly.
A cache will significantly affect CPU performance.
However, caches also represent some difficulties in simple comparison.
Some caches are bigger than others. A typical L1 cache is 256Kb and a typical L2 cache is 1MB.
Generally speaking, the larger the cache, the better the system performance boost. However, this is not always the case.
A cache operates at a certain speed, just like the core of the CPU. Some caches operate at the full speed of the CPU, while others operate at half that speed or less.
A small cache which operates at full speed may be much more useful than a cache which is twice as large but operates at only half the speed of the CPU.
Even comparing cache sizes can be difficult. Some CPU's utilize inclusive caches. In a CPU with an exclusive cache, the data stored in the L1 cache is often duplicated in the L2 cache. Only CPUs which employ exclusive caches will have the full capacity of their L2 caches available.
The Front Side Bus
The Front Side Bus (FSB) is the connection between the CPU and system memory.
The Front Side Bus operates at a speed which is a percentage of the CPU clock speed.
The faster the speed at which the Front Side Bus allows data transfer, the better the performance of the CPU.
System Memory
RAM has an access speed. Faster RAM will mean the CPU has to wait less often for data. This will, effectively, make the CPU faster.
What is a L1 cache?
L1 cache is a small, fast memory cache that is built in to a CPU and helps speed access to important and frequently-used data.
L1 cache is typically smaller and faster than L2 cache.
L1 cache is an abbreviation of Level 1 cache.

What is L2 cache?
L2 cache is a set of memory circuits designed to speed access to important and frequently used data.
Early L2 cache designs involved fast static RAM memory chips placed near the CPU. Modern L2 caches involve RAM built directly into the CPU.
L2 cache is typically larger but slower than L1 cache.
L2 cache is an abbreviation of Level 2 cache.




What is Hyper-Threading?
Hyper-Threading technology is a technique which enables a single CPU to act like multiple CPU's.
A CPU is made up of many smaller components. At any given time, one of these components might be busy, while the other components are waiting to be utilized.
Hyper-Threading enables different parts of the CPU to work on different tasks concurrently. In this way, a CPU with Hyper-Threading appears to be more than one CPU.
A CPU with Hyper-Threading has two sets of the circuits which keep track of the state of the CPU. This includes most of the registers and the instruction pointer. These circuits do not accomplish the actual work of the CPU, they are the temporary storage facilities where the CPU keeps track of what it is currently working on.
The vast majority of the CPU remains unchanged. The portions of the CPU which do computational work are not replicated, nor are the onboard L1 and L2 caches.
Hyper-Threading duplicates about 5% of the circuits of the CPU. Depending upon the software applications in use, Hyper-Threading can results in a performance increase up to six times that amount.
Hyper-Threading is Intel's trademark for what is more commonly referred to in the industry as Simultaneous Multi-Threading (SMT).
Software Support for Hyper-Threading
Hyper-Threading performance advantages will only be realized when using Operating Systems which support multiple CPU's.
In these operating systems, each CPU with Hyper-Threading will be seen as two CPU's.
Operating Systems which support Hyper-Threading include Microsoft Windows NT 4.0, Microsoft Windows 2000, Microsoft XP Professional, and most Unix variants.

CPU's which support Hyper-Threading
Hyper-Threading is supported by some Intel Xeon and Pentium processors.
To determine if a CPU supports Hyper-Threading, look for the special "HT" marking on the CPU logo:




What is dual core?
A dual core processor is a processor chip with two CPUs built onto a single die.
A dual-core processor shares most of the benefits of a two-processor system, with a few crucial differences.
In a dual-core system, the two CPU's can communicate with each other much faster -- because they are both on the same piece of silicon.
Dual-core processors face a disadvantage if they both share one Front Side Bus. This highlights the advantages of the HyperTransport bus, where bandwidth is not shared between CPUs.
Dual-core is really just a specialized case of multi-core processor design. No manufacturers are currently selling multi-core CPU designs for PC's with more than two cores.
Dual-Core Processors
AMD Athlon-64 and Opteron processors are available in dual-core models.
Intel Pentium 4 Extreme Edition and Xeon processors are available with a dual-core.



What is MMX?
MMX stands for Multimedia Extensions.
MMX is a technology designed to accelerate multimedia and communications applications. This acceleration and simplification is done through a set of multimedia instructions which are built into microprocessors to enable them to handle common multimedia operations like DSP, or Digital Signal Processing.
MMX works by taking certain operations, such as moving a pixel of graphics, which are usually processed as 8-bit integers, and instead packing a number of these pixels into one larger data unit. MMX then performs the requested operation on the larger data unit as a whole and writes the results in parallel, thus increasing performance of the operation.
Multimedia applications such as graphics, MPEG video, video games, image processing, and music files can all be enhanced by MMX technology.
MMX technology can only be used by software that is written specifically to call the MMX instructions. These applications are often referred to as MMX enabled.

No comments: