Before getting into the Multi-Core –
What is a Core?
Core or the Central Processing Unit (CPU) is the microprocessor fabricated in a single silicon chip forms the computation engine. Fundamental operation of the core is to read and execute the program instructions before providing us the expected output. Core is made up of numerous transistors and a clock is fed to it for its operation. This Clock freq plays an important role in determining the speed of a processor (cache memory is the other unit apart from the clock which determines the speed).
What is the neccissity of a Multi-Core Processor?
Mobile Phone or a Computer is the combination of Hardware and Software. If there is an advancement in the Hardware (for ex: increasing the speed of a core) then there should also be an equal advancement in the software applications (for ex: 3D games) which utilizes the hardware efficiently. So this led to development in both Hardware units and software units. The clock freq of the core got increased from a 20MHz to 4GHz to increase the processor speed. But there came a situation where the clock freq couldn’t be increased anymore. It could be due to the more power consumption and decrease in the lifetime of the processor. So designers came up with the Multi-Core technology hence introducing the Multi-Core Processors in a single Chip.
What is a Multi-Core Technology?
Single Core processor can process the instructions one at a time no matter how speed it is. This type of execution doesn’t help much while executing some advanced application like running an antivirus scan. So to overcome such limitations there led a development of Multi-Threaded or Hyper Threaded technology in the software on a single core (shown in fig 1). It means two or more threads can be processed in a single core allowing a partially parallel execution hence servicing number of applications at once.
But as the Software developers started developing some powerful applications (like high intense games), parallel processing of such applications became difficult (eg: playing games and simultaneously running an antivirus scan in the background). It decreased the speed of processing hence leading to slow response of the system. Therefore, Multi-threaded architecture on a single core was no more helpful to execute such applications parallely. This led to the development in the hardware system introducing the Multi-Core Processor. Hope by now you understood why this technology came to an existence.
What is a Multi-Core Processor?
Multi-Core Processor is a processing system composed of two or more independent processors. These cores are integrated into a single silicon chip. If there are two processors in a single chip then it is a Dual-Core processor, four cores means Quad-Core processors etc. Multi-Core processors allow multiple threads to be executed at the same time resulting in a truly parallel execution. Hence executing the number of demanding applications simultaneously & efficiently. The main aim of multicore processing technology is to execute the tasks parallel.
Many cores means more strength is the general assumption which many of us make. But this is not the case in all the situations. As i explained earlier, to utilize the hardware efficiently the software application should also be developed accordingly. Consider, if a software app is developed in such a way that it utilizes only the single core on a dualcore system. Then there will be no improvement in terms of speed and time compared to a single core system. Because the application will be executed by only one processor and the other processor may go to sleep hence contributing nothing towards the speed. So the app should be developed more powerful which makes both the cores work at a time.
For instance, Consider there is a software task which should run on a dual core system and utilizes both the processors. Software developer should develop this task in such a way that it gets divided into two parts and is executed by both the cores concurrently (same time). Hence utilizing both the cores effectively reduces the processing time and increases the throughput.