Faculty of Media Engineering and Technology
Dept. of Computer Science and Engineering
A Research Report submitted by:
Khaled Mohamed Hassan 37-2956T-11
Yara Gamal Dorgham 37-2464T-11
Dr. Mohamed El MahdySpring 2018
Few years ago, we have worked with processors having a single computing processing unit(CPU), also called a core. Since the clock frequency of the processor, which determines the speed of it, can’t exceed certain limit, as increasing the frequency leads to increasing dissipated power and heat, manufacturers came up with a new idea and designed new processors, called the multi-core processors. Since then, multi-core processors have revolutionized the entire world and endless efforts are being made to fabricate fast and smart chips. Multi-core processors have two or more independent cores in the same chip. They allow higher performance at lower energy which can boost the performance of the system. Also, the cores work together by executing multiple instructions simultaneously using parallelism in an efficient manner. However, beside these advantages, we have to keep track of some challenges that may occur when adding more cores. This paper describes the history and the structure of multi-core processors in addition to different implementations and advantages in today’s world for these processors. Finally, the paper concludes by discussing some of the challenges that presently faced manufacturers and various solutions that have been developed.
Until few years back, single central processing units were used in all processors for reading and executing program instructions referred to as a core. Single core processors reached to a point that they can’t be upgraded anymore because the power dissipation increases as the clock frequency increases. Parallelism is one of the best way to overcome the problem of power and the conservation of performance that can be reached using lower frequency and voltage. As a result, the idea of multicore was presented which depends on much more transistors to decrease the overall power dissipation and density. The blooming market and the demand for better performance was a reason that let the industries to start manufacturing new faster and smarter chips. Performance improved using many techniques such as pipelining and several levels of parallel processing such as instruction and data level which showed efficiency. The manufacturers came up with a technique for designing the processors called multi-core processors which enhances the performance
Since the birth of microprocessors in 1971, the industry has never stopped to improve performance reaching to the multi-core processors. Multi-core processors started in the early 2000s; the credit goes to Intel and AMD after they realized that single core processors reached its threshold in performance. Processors have been manufactured with 2 cores “Dual Core”, 4 cores “Quad Core”, 6 cores “Hexa-Core” and so on. Processors have additionally been made with as many as 100 physical cores, as well as a thousand effective independent cores by way of the use of field Programmable Gate Arrays known as (FPGAs). Gorden Moore, the founder of Intel, suggested that the number of transistors will get doubled every 18 months to satisfy the increasing demand which is referred to as Moore’s law in the industry of semiconductor.
Multi-core architecture is referred to a system in which a single physical processor that contains multiple core on a chip that incorporates the core logic of more than one processor which reads and executes program instructions. The executed instructions are the ordinary CPU instructions such as add, branch and move data. A single integrated circuit used by manufacturers, called “A-die”, and also known as chip multiprocessor, is used to package, hold these cores, and it bundles them as a single physical processor. The core is a functional unit made up of computation units, controllers and caches. The target is to have a system that finishes many tasks at the same time, simultaneously, to achieve a better performance for the overall system. These multiple cores on a single chip combine to replicate the performance of a single faster processor by running concurrently as a single system. Although the individual cores on a multi-core processor don’t necessarily run as fast as a single core processor, they actually enhance the performance by doing more tasks in parallel. To interconnect multiple cores together, there are many topologies that are being practiced to achieve this task like Bus topology, Ring topology and Two-dimensional topologies such as mesh and crossbar. The choice of a particular topology affects the parameters of the performance such as speed and latency. Therefore, it must be selected with careful as the type of topology also affects the area consumed on a chip and also the power dissipation. The microprocessors that are currently used in almost all personal computers, mobile devices, desktops, workstations and servers are multi-core.
Different implementations of multi-core processors
Multi-core processors have different implementations depending on the requirements of the applications. It could be implemented either as a collection of homogenous cores or a collection of heterogeneous cores or an integration of both. In homogenous core architecture, all the cores within the CPU is just an image of the other, and they use divide and conquer technique to enhance the total processor performance by shattering apart a high computationally intensive program into much less computationally intensive programs and execute them in parallel. Added to that, homogenous multi-core processors are diminished design complication, reusability, minimum verification effort and for this reason simpler to meet time to marketplace criterion. However, heterogeneous cores comprise committed application particular processor cores that would mark the issue of running different applications to be executed on a computer. DSP core addressing multimedia applications is an example that need too much mathematical calculations, a complicated core addressing computationally intensive application and a remedial core which addresses less computationally intensive applications. In addition, Multi-core processors could be designed using the integration of both homogenous and heterogeneous cores that would help to improve the overall performance due to taking the advantages of both designs. An example of this is IBM’s multi-core processor known as CELL that uses both designs.
Multi-core processors helped in executing many instructions in parallel which in return enhanced the processing speed at lower frequency than the single core. Which means that at the same clock frequency the multi-core processor will be able to process much more data than the single core processor. Not only that, but also multi-core processors can tolerate complicated tasks and deliver high performance using lower energy and power in compare with single core processors which is an important factor in appliances that use batteries to operate such as laptops and mobile phones. In addition, cores are designed close to each other on the same chip, so the signals move shorter distance between them which leads to less attenuation of signals. As a result, in a given time much more data is transferred without repeating signals. A dual core processor uses less power compared to two coupled single core processor because of the decreased power used to drive signals external to chip. Another benefit of multi-core comes from individual applications; these applications can decompose a task into many smaller tasks and execute them in parallel. Parallelization is another optimization technique; the aim is to minimum down the execution time. For example, using 4 cores the execution time is ¼ of the single core time. Multi-core capabilities can improve user experiences in multitasking environments, where a number of foreground applications run at the same time with a number of background applications such as virus protection and security, wireless, management, compression, encryption and synchronization. The most significant benefits can be seen in applications such as Enterprise Resource Planning and Customer Relationship Management. Challenges
So far, we have seen the advantages of multi-core technology. In spite of the many advantages that multi-core processors come with, there are a few major challenges the technology is facing when more cores are added. The different challenges that were faced while adding of new cores are the level of parallelism in the application or algorithms, the interconnection issues, the power and temperature issues and consistency of caches’ data. Now we will discuss those mentioned challenges in detail.
One main issue seen is with regard to software programs which run slower on multi-core processors when compared to single core processors. It has been discovered that applications which run on multi-core systems don’t get faster automatically as cores are increased. Most of the applications used nowadays were written previously to run on single processors only, and not capable to run on multi-core processors. Programmers must write applications and algorithms that are capable to be run on multi-core processors. Although redesigning the programs is an applicable idea, it seems that it is not a technological decision these days as it is more or less a business decision. Companies have to keep in mind some key parameters such as cost reduction, customer satisfaction and time to market before deciding whether to redesign the software programs or not.
Another important issue is the interconnection issues that are resulted the chip’s components. The chip contains a lot of components such as cashes, cores, network controllers etc. If the interaction between all these components are not resolved and designed properly, it will affect the performance of the multicore processor. Bus was used for the interconnection between the components in the initial processors. However, in order to decrease the latency, crossbar and mesh topologies are used to communicate between the components. Also, packet based interconnection is actively used to increase the parallelism at the thread level. These packet based interconnection has been utilized by Intel and AMD.
One more concern is power and temperature. The chip will consume more power leading to the generation of large amount of heat, due to the increase of the number of cores placed on a single chip without further modification. This will may result in burning the computer if it overheats. The multicore designs also a power control unit that can force the unused cores that are not required at times to shut down, thus to reduce this unnecessary power consumption. The core which overheats in a multicore configuration is known as “hot-spot”. As the chip is designed in a way that allows the generated heat to be distributed evenly across the chip. Most of the heat in the CELL processor is dissipated in the Power Processing Element and the rest is distributed among the Synergistic Processing Elements. There are many ways to solve the problem of power loss and temperature increase which includes:
Thread migration: a process or a thread with low power consumption is moved to overheated core.
DVFS (Dynamic Voltage and Frequency Scaling): As the power loss or heating depends on both voltage and frequency, the hot core’s voltage and frequency is decreased which has an effect on the overall performance.
Another problem is that shared-memory between multiprocessors increases computational power and the programmability of the shared-memory model. However, sharing memory between processors leads to contention which delays memory accesses. Adding a cache memory for each processor reduces the average access time, but it creates the possibility of inconsistency among cached copies. Since each core has its own private caches, so the challenge here is to keep the data in the caches consistent across all caches. This problem called the cache coherence problem, and it may be handled by the software or the hardware using many different protocols. Conclusion
In this paper, we took a quick look at multi-core processors. With the release of the first multi-core processor, we enter a new era in processor architecture. Multi-core processor become the common way to deliver better performance as it enhances the user experiences in multitasking as foreground applications run simultaneously with background applications such as virus protection. In a clock cycle, more work can be done with lower frequencies when using multi-core chips instead of single-core chips. However, adding more cores may help in rising some challenges that must be carefully treated to get the benefits of multi-core. We also mentioned many challenges related with increasing the number of cores like interconnect issues, power and temperature etc. In coming days, many advancements in this field of technology are expected as many researches are held in this field to use multi-core processors in a more efficient way.
1Pawel Gepner and Michal F. Kowalik, Multi-Core Processors: New Way to Achieve High System Performance,IEEE ,January 2016
2 Vinayak Shinde, Anas Dange and Muhib Lambay, Study of Multicore processors:Advantages and Challenges, International Journal for Research in Engineering Application & Management (IJREAM),March 2016
3 Mohamed Zahran, Multicore Processors:Status Quo and Future Directions,
4 Anil Sethi and Himanshu Kushwah, MULTICORE PROCESSOR TECHNOLOGY- ADVANTAGES AND CHALLENGES, IJRET: International Journal of Research in Engineering and Technology,September 2015
5 Abdullah Kayi , Yiyi Yao , Tarek El-Ghazawi and Greg Newby , Experimental Evaluation of Emerging Multi-core Architectures,IEEE,2007
6 Balaji Venu, Multi-core processors – An overview,
7 Sukhdev Singh Ghuman, Comparison of Single-Core and Multi-Core Processor, International Journal of Advanced Research in Computer Science and Software Engineering,2016