Write an outline on Multi Core Processors: Improving CPU Technology …………..
1.1 Context of multi-core processors
1.2 Multi-core processor environment
2.0 The multi-core processors
2.1 Multi-core processor architecture
2.2 Homogeneous vs. heterogeneous cores
2.3 Optimization of multi-core processing
2.4 Development of the multi-core processing technology
2.5 The next step in the multi-core processor technology
2.6 Benefits of multi-core processors over single core processors
3.1 Retrospect into multi-core processor development
3.2 Opportunities in arising from multi-core processing
3.3 A possible future view of multi-core processing in retrospect to single core processing
Itanium Solutions (n.d.) explains the Moore’s law that computer processing power was initially measured by the number of transistors in the processor and that this number doubled after every eighteen to twenty four months. For quite sometime the overall performance of computer processors has been determined by the clock speed often expressed in gigahertz or megahertz. Evaluating a microprocessor currently goes beyond the clock speed. Microprocessor are more focused on techniques that leverage the best silicon technologies, designs and production processes that minimize power consumption, heat generation and the footprint size of the microprocessor.
The designers have also focused on the optimization of the microprocessor architecture, reliability, parallelism, inbuilt security features, efficiency in the memory structure and a high level of synergy between accompanying software tools like compilers and the computer hardware. Programmers currently pay greater attention to maximize the efficiency of the software code by making use of parallelism in order to achieve higher system performance. With multi core processors in use, programmers can no longer rely on the dynamic optimization of the system performance by the processor (Schauer 2008).
A good example of a processor whose design is based on the idea of multiple cores of small footprints is the Intel Itanium family of processors. The processor is substantially compact from the view of transistor count and especially when the amount of processing they accomplish is put under consideration. With the instruction level parallelism well optimized, the processors produce very high performance when coupled with parallelism at the thread level in leveraging more cores in terms of processors and more software threads per core (Itanium Solutions n.d.).
In the past, designs of microprocessors have been very complex relying on logic that is out-of-order to optimize and reshuffle software instructions. With time, the microprocessor designers are focusing on better software tools and better compilers with a higher level of software optimization. The designs are continuing to deliver high level of performance with no problems of thermal generation. The designs are more refined and simplified therefore allowing long-term and consistent improvement in the execution of code reducing the requirement for more advancement in hardware technologies (Schauer 2008).
The multi core processors
Generally, multi-core processor architectures adhere to certain specific aspects. They have level one (L1) cache closest to them which are extremely fast memories that store data that is frequently accessed by the processor. Level two (L2) cache, just off the chip, is larger and slower compared to level one cache but has a faster performance than the main memory. It performs a similar role as the level one cache. The main memory which is slower than the cache memory is therefore used to hold tasks that are not accessed so frequently and other supportive memory tasks such as storing a file that is currently being processed. The cache memories ensure that the very fast multi-core processor can maintain high performance through quick memory accesses. To achieve communication among the processor cores an interconnection network or a single communication bus is used. The bus technique is suitable for the shared memory model while interconnection network is suitable for a distributed memory model. The communication bus has limited scalability of up to thirty two cores beyond which performance diminishes (Schauer 2008).
In the implementation of multi-core processor systems with homogeneous cores, the cores are similar in all aspects including functionality, cache sizes and equivalent frequencies. In a heterogeneous system, the cores may have different frequencies, memory models and functionality. Heterogeneous cores present an apparent trade-off between customization and processor complexity. Despite the trade-offs and the complexity, heterogeneous processors have more thermal and power efficiencies that outweigh the complexity. A heterogeneous model processor can have a centralized core dedicated to running the operating system and performing generic processing and other cores for communication, graphics, enhanced mathematics, audio, cryptography, and so fourth (Schauer 2008).
According to Quinn, Yang and Turner (2005), the challenges of increasing the performance of processors with minimal heat generation and without a proportionate increase in the consumption of power were well solved by the architecture of dual and subsequent multi-core processors. By using more cores rather than a higher number of transistors in a single processor, the advancement in performance can continue rising indefinitely by the operational gains that leverage process concurrency and microprocessor parallelism. The advancement of the clock speed on single core processors is slowing down as more focus is put on advancing multiple cores that can take advantage of parallelism and other important techniques such as standard application programming interface normally used for distributed and/or parallel computing and the message passing interface. The architecture of the latest processing chips are developed to scale out rather than scale up and are offering more efficient and simultaneous execution of multiple tasks with reduced power consumption.
According to Intel Corporation (2007) the greatest transition into the multi-core computing was realized in April 2005 when Intel released the first dual-core processor. Intel went ahead to produce software tools which constitute a compiler family aimed at optimizing the performance of different microprocessor platforms such as Itanium and Xeon. Some of the compilers can work across varied platforms hence enabling source codes to be delivered in different platforms with a simple recompilation as the only requirement in some cases. In addition to the compilers, Intel developed an integrative performance primitive’s library (IPP) and a math kernel library (MKL) that is capable of enhancing the code performance for audio processing, video image processing, image recognition and scientific cluster applications. With advancing microprocessor technology and the coming up of new architectures, it is necessary to optimize the performance and efficiency thereof. The technique applied in order to achieve this is the shift to parallelism at the thread level from the instruction level and the development of multi-processing parallelism.
In a bid to advance beyond the x86 capabilities without increasing the number of transistors per processor, the design of microprocessors has taken two distinct paths. The first path involves embedding multiple x86 traditional design microprocessors on a single circuit board. The second path is the conceptual multi-core processor architecture in which a single processor chipset contains multiple computational engines or execution cores that perform fully parallel processing on multiple threads of software. The operating system therefore handles each of the execution cores with all the resources associated with it as a single discrete processor. The multi-core processors have the advantages of performing highly with more efficiency without the challenges such as the heat problems experienced by the single core processors that have to run at higher frequencies in order to achieve a similar performance (Quinn, Yang and Turner, 2005).
As the advancement in performance is being dramatically achieved, security features are also being incorporated in order to avoid the challenges often met by developers between security and performance. With respect to the Itanium processor architecture, the operating system can leverage four privilege levels providing a separation between the resources accessed by the user and those accessed by the virtual machine. It also provides a key protection scheme that is based on the container logic. A developer can therefore, with relevant application support, compartmentalize everything in the memory stores and consequently put a wrapper of security around each of the processes. With the ability to run multiple instructions per cycle, security layers that run with high efficiency can be created by the developers to secure code stacks against various attacks. Unique floating point units associated with this architecture provide quick encryption (Itanium solutions n.d.).
Schauer (2008) explains that manufactures have broken from the past trend of increasing the speed of the processor in order to realize high performance and have focused on multi-core processors as a solution. Heat dissipation and power consumption is a matter of concern during the laying out of the multi-core processing systems and therefore the floor plan should ensure distribution of heat throughout the chip with care being taken to avoid formation of hot spots. The multi-core processor systems also have shared and distributed caches operating on coherence protocols that ensure all reads made by the processor cores on memory are the latest from any previous updates by different cores. In the multi-core processor development, it is important to determine at the design and manufacture stages whether the cores should be homogenous or highly specialized, whether they should communicate with each other and how they will handle multithreaded applications.
A multi-core processor normally takes advantage of the fundamental connection between frequency and power. With multiple cores incorporated, individual cores are able to run at reduced frequency dividing the power that should have otherwise been used by a single core processor among them. This makes the multiple core processors realize a higher performance than a single core processor. Results from experiments indicate that increasing the clock frequency by twenty percent in a single-core processor results in a gain in performance of thirteen percent but with a seventy three percent increase in power consumption. Conversely, a decrease of twenty percent in the clock frequency leads to a reduction in power consumption by forty nine percent and only a thirteen percent lose in performance. However, reducing the clock frequency by twenty percent in a dual core (multi-core) processor results in a seventy three percent increase in performance while the power consumption remains approximately the same as for the processor with a single core at maximum frequency (Ramanathan, 2007).
The fundamental relationship between frequency and power has been effectively used in multiplying the number of cores in a processor from two in the dual core processor to four, then to eight and more in delivering a continuous performance increase without a relative increase in the usage of power. There are several advancements made to achieve this increase. The first one is the continuous advances done in the silicon process technology which has been diminished from sixty five to forty five and then to thirty two to enable an increase in transistor density. This is coupled with the delivery of energy-efficient, superior performance transistors. The second enhancement is the improvement of the performance in each core and then optimizing it for the multi-core processor. This has been seen through by the introduction of new and advanced micro architectures in about every two years. Another enhancement is the optimization of data access and the improvement in the memory subsystem in approaches that data is used the fastest possible among all the cores. It consequently improves speed and performance while minimizing latency (Intel Corporation, 2007).
Another improvement made is the expansion and the optimization of the instruction set to enhance the architecture’s capability and produce applications that are advanced with lower power requirements and greater performance. Among the instructions in the set, there are those that can dedicate a core effectively to deliver very specific capabilities. The last enhancement is the continued growth of the commitment to develop multi-core programs and software tools by closely working with academia, developers; operating system vendors (OSVs) and independent software vendors (ISVs). Such efforts enable the multi-core processor industry to come up with software that runs better and faster on multi-core platforms that are energy efficient (Intel Corporation, 2007).
According to Ramanathan, (2007) a significant milestone in the multi-core processor technology performance and design after the dual core technology was the introduction of the quad-core processors for workstations, desktop machines and volume servers. The processors have four execution cores embedded in one microprocessor chip. The quad-core processor is very suitable for intensive multitasking and relevant for the high requirement for processing power by the modern gaming and threaded applications. With the high levels of performance at relatively low costs, the quad-core processor is the ready solution for gamers, multimedia enthusiasts and workers whose tasks run in very demanding multitasking environments. The processor also enables server applications to realize a turbo boost through fewer cooling related challenges, energy efficient performance and greater density. With respect to their impeccable performance, the quad-core processor platform has advanced capabilities like the virtualization technology which is a hardware assisted technology that supports the leading industry’s virtualization software.
The quad-core technology supports the DIMM technology which is fully-buffered. The technology is among the latest in the memory technologies that provides greater capacity and performance while at the same time improving the memory reliability. Moreover, the quad-core technology accelerated the input and output technologies in the sense that it is capable of moving network data in a more efficient way using servers that are fast, scalable and provide very reliable networking (Ramanathan, 2007).
The current explosive growth in device intelligence coupled with the increasing globalization and the growth in digital data provides an assurance that the growth of processors with multiple cores will continue to advance even in the next decade. Applications are expected to be more intensive computationally than they have been to date. It is predicted that the next era is going to be the ‘tera era’ where computational needs shall be for teraflops (trillions of floating point operations per second), terabytes (trillions of bytes for data storage space) and terabits (trillions in bits per second of communication bandwidth). Microprocessor developers should address the software and hardware challenges of programming and building systems with hundreds of high performing and energy-efficient cores with highly sophisticated hierarchies of memory that can deliver the capabilities and performance of the ‘tera era’ systems (Ramanathan, 2007).
The greatest benefit of the multi-core processors is the way the ability of the operating system in terms of multitasking is improved. Normally a running program in the background such as a routine virus scan is known to degrade performance making the computer system less responsive to tasks on the foreground. With the multi-core processors in operation, the operating system can dedicate tasks to specific cores hence each task will run at the full performance level. The other benefit that the multi-core processing holds is the optimization of individual applications for multi-core processing. With proper programming, the applications can divide a task into smaller portions and run the smaller tasks in threads that are separate from each other. For example, in a game, the graphics algorithm with more needs for processing power could be handled as a single thread in bringing a scene on the fly while commands for the movement of characters would be responded to by another thread. The most critical elements in the use of multi-core processors are software related. The application should be prepared for multi-core processing by multithreading it in order to achieve high multitasking performance, high throughput and energy efficiency (Ramanathan, 2007).
Before the advent of the multi-core processors, increase in performance level was rated using an increase in processor frequency. Higher frequencies led to higher power consumption rates and heat dissipation a progression that proved detrimental. The ultimate solution was found in the use of processors with multiple cores running at lower frequencies. Multi-core processors thrive on an architecture that promotes low heat dissipation, reasonable power consumption and coherent cache protocols. Despite the fact that the multi-core processors are known to perform extremely better than the single core processors, their capacity can only be exploited using multithreaded applications. This poses challenges to programmers most of whom have less developed their multithreaded programming skills and also considering the fact that most applications were not written with parallelism in mind. There is also the need to improve the system interconnection networks and memory in order to make use of the multi-core processor systems.
The steps made in the building of multi-core processors represent the most advanced levels in the microprocessor technology development. The future of computing is seen to lie in the multi-core processors even as the complexity and wealth of data grows with time. Multi-core processor technologies are increasingly becoming paramount in the running of businesses, homes, government institutions and entertainment. The technology is empowering the growth of new usage models that are spearheading the rampant and wide-ranging advances in diverse areas including information and communication technology, the digital home, computer games, mobile devices, computing on the go as well as revolutionalizing the digital office.
The development of multi-core processors remains a very important step in the innovation and advancement of the microprocessor technology. With programmers developing valuable skills in the writing of multithreaded applications, the efficiency of the multi-core processors is increasing significantly. The future presents a great path for the improvement of the technology while transferring great computational power to the individual computer users. The multi-core processor is simple and efficient and does not have the problem of thermal generation even with its highly reduced size.
Thinking of the future at a time when the full power of the parallel and high performance computing will be available to all users of computers everywhere; it will be possible to have the very advanced computing power in the mobile devices on the palm of individual persons. Looking back to previous times from this point of view, it will be incomprehensible how people could manage with only a single execution core in their processors.
Itanium Solutions Alliance (n.d.). Fifty Years of Microprocessor Technology Advancements: 1965 to 2015. ISA white paper
Intel Corporation, (2007). Don’t Judge a CPU only by its GHz: Quad-Core Sets New Standards for Performance. Product Brief, Quad-Core Intel Xeon Processors
Quinn, K., Yang, J. and Turner, V. (2005). The Next Evolution in Enterprise Computing. International Data Corporation
Ramanathan, R. M. (2007). Intel Multi-Core Processors: Making the Move to Quad-Core and Beyond. Intel Corporation.
Schauer, B. (2008). Multi-core processors: A necessity. Proquest discovery guides
For a similar paper, please order with us…