Why Dual Core Processors?
Total Page:16
File Type:pdf, Size:1020Kb
INTRODUCTION It has always been a frequent question -- "Will I benefit from multiple processors?" With the growing popularity of dual core processors, the topic is more important than ever! Will multiple processors or a dual core processor be beneficial to you, and what are the differences between them? These are the questions this article will attempt to lay to rest. A major question for some people getting ready to buy a high-end system is whether they want or need to have two processors available to them. For anyone doing video editing, multi-threaded applications, or a lot of multitasking the answer is a very clear 'yes'. Then the question becomes whether two separate processors (as in a dual Xeon or Opteron system) is the way to go, or whether a single dual core processor (like a Pentium D or Athlon64 X2) will do just as well. MULTI-CORE A multi-core CPU (or chip-level multiprocessor, CMP) combines two or more independent cores into a single package composed of a single integrated circuit (IC), called a die, or more dies packaged together. A dual-core processor contains two cores and a quad-core processor contains four cores. A multi-core microprocessor implements multiprocessing in a single physical package. A processor with all cores on a single die is called a monolithic processor. Cores in a multicore device may share a single coherent cache at the highest on-device cache level (e.g. L2 for the Intel Core 2) or may have separate caches (e.g. current AMD dual-core processors). The processors also share the same interconnect to the rest of the system. Each "core" independently implements optimizations such as superscalar execution, pipelining, and multithreading. A system with N cores is effective when it is presented with N or more threads concurrently. The most commercially significant (or at least the most 'obvious') multi-core processors are those used in computers (primarily from Intel & AMD) and game consoles (e.g., the Cell processor in the PS3). In this context, "multi" typically means a relatively small number of cores. However, the technology is widely used in other technology areas, especially those of embedded processors, such as network processors and digital signal processors, and in GPU’s. DEVELOPMENT While manufacturing technology continues to improve, reducing the size of single gates, physical limits of semiconductor-based microelectronics have become a major design concern. Some effects of these physical limitations can cause significant heat dissipation and data synchronization problems. The demand for more capable microprocessors causes CPU designers to use various methods of increasing performance. Some instruction-level parallelism (ILP) methods like superscalar pipelining are suitable for many applications, but are inefficient for others that tend to contain difficult-to-predict code. Many applications are better suited to thread level parallelism (TLP) methods, and multiple independent CPUs is one common method used to increase a system's overall TLP. A combination of increased available space due to refined manufacturing processes and the demand for increased TLP is the logic behind the creation of multi-core CPUs. DUAL CORE DEFINED As the tasks that computers can perform get more complicated, and as people desire to do more at once, computer manufacturers are trying hard to increase speed in order to keep up with demand. Having a faster CPU has been the traditional way to keep up, since a faster CPU can do a task then quickly switch and work on the next. However, due to size, complexity and heat issues it has become increasingly difficult to make CPUs faster. In order to continue to improve performance, another solution had to be found. Having two CPUs (and a motherboard capable of hosting them) is more expensive, so computer engineers came up with another approach: take two CPUs, smash them together onto one chip, and presto! The power of two CPUs, but only one socket on the motherboard. This keeps the price of the motherboards reasonable, and allows for the power of two CPUs (also known as cores) with a cost that is less than two separate chips. This, in a nut shell, is what the term "Dual Core" refers to - two CPUs put together on one chip. There are more subtle differences between brands (how they combined two cores onto one chip, and the speeds they run each core at) that can affect how much of a boost in performance you can get from having a dual core CPU. Additionally, different types of programs get differing benefits from having a dual core chip. Dual Core Implementation Because of the different ways AMD and Intel came into the dual-core market, each platform deals with the increased communication needs of their new processors differently. AMD claims that they have been planning the move to dual-core for several years now, since the first Athlon64s and Opterons were released. The benefit of this can be seen in the way that the two cores on their processors communicate directly -- the structure was already in place for the dual cores to work together. Intel, on the other hand, simply put two of their Pentium cores on the same chip, and if they need to communicate with each other it has to be done through the motherboard chipset. This is not as elegant a solution, but it does its job well and allowed Intel to get dual-core designs to the market quickly. In the future Intel plans to move to a more unified design, and only time can tell what that will look like. Intel did not increase the speed of their front-side-bus (the connection between the CPU and the motherboard) when they switched to dual-core, meaning that though the processing power doubled, the amount of bandwidth for each core did not. This puts a bit of a strain on the Intel design, and likely prevents it from being as powerful as it could be. To counteract this effect, Intel continues to use faster system memory to keep information supplied to the processor cores. As a side note, the highest- end Intel chip, the Pentium Extreme Edition 955, has a higher front-side-bus speed, as well as having a larger (2MB per core) cache memory and the ability to use Hyperthreading (which all non-Extreme Edition Pentium D processors lack). This makes it a very tempting choice for those wanting to overcome some of the design handicaps of Intel's dual-core solution. AMD, on the other hand, does not use a front-side-bus in the traditional sense. They use a technology called HyperTransport to communicate with the chipset and system memory, and they have also moved the memory controller from the chipset to the CPU. By having the memory controller directly on the processor, AMD has given their platform a large advantage, especially with the move to dual-core. The latest generation of AMD single-core processors can use single- or dual-channel PC3200 memory, but it is interesting to note that even though dual-channel operation doubles the memory speed, it does not double the actual memory performance for single-core processors. It appears that dual-channel memory just provides significanly more bandwidth than a single processor core can use. However, with dual-core processors all that extra bandwidth can be put to good use, allowing the same technology already present in single-core chips to remain unchanged without causing the same sort of bottleneck Intel suffers from. DUAL CORE PROCESSORS A dual core processor is a CPU with two separate cores on the same die, each with its own cache. It's the equivalent of getting two microprocessors in one. In a single-core or traditional processor the CPU is fed strings of instructions it must order, execute, then selectively store in its cache for quick retrieval. When data outside the cache is required, it is retrieved through the system bus from random access memory (RAM) or from storage devices. Accessing these slows down performance to the maximum speed the bus, RAM or storage device will allow, which is far slower than the speed of the CPU. The situation is compounded when multi-tasking. In this case the processor must switch back and forth between two or more sets of data streams and programs. CPU resources are depleted and performance suffers. In a dual core processor each core handles incoming data strings simultaneously to improve efficiency. Just as two heads are better than one, so are two hands. Now when one is executing the other can be accessing the system bus or executing its own code. Adding to this favorable scenario, both AMD and Intel's dual-core flagships are 64-bit. To utilize a dual core processor, the operating system must be able to recognize multi- threading and the software must have simultaneous multi-threading technology (SMT) written into its code. SMT enables parallel multi-threading wherein the cores are served multi-threaded instructions in parallel. Without SMT the software will only recognize one core. Adobe Photoshop is an example of SMT-aware software. SMT is also used with multi-processor systems common to servers. A dual core processor is different from a multi-processor system. In the latter there are two separate CPUs with their own resources. In the former, resources are shared and the cores reside on the same chip. A multi-processor system is faster than a system with a dual core processor, while a dual core system is faster than a single-core system, all else being equal. An attractive value of dual core processors is that they do not require a new motherboard, but can be used in existing boards that feature the correct socket.