Multi-core Processor Architecture

Riya Joshi
8 min readJan 6, 2022

Contents:

  1. Introduction to Multi-core Processors
  2. History of Multi-core Processors
  3. Multi-core Processor Architecture
  4. Multi-core Processor Machines
  5. Advantages of using Multi-core Processors
  6. Disadvantages of using Multi-core Processors
  7. Applications of using Multi-core Processors
  8. Future of Multi-core Processors

A multi-core processor is an integrated circuit in which two or more processors are connected to process multiple tasks at the same time faster, reduce power consumption, and improve performance. It has multiple instructions which means that different cores execute different threads, which operate on different parts of memory. It usually consists of two or more processors that read and execute program instructions. As all processors are on the same chip, it is also called MIMD (Multiple Instructions Multiple Data).

Simply put, a multi-core processor consists of many processing units, or “cores,” on a single chip, each of which can perform different tasks. For instance, while performing many tasks at the same time, like, watching a movie and using WhatsApp, one core will perform activities such as watching a movie and the other core will be performing another task of WhatsApp. Parallel computing is the primary idea around which the concept of multi-core is processor is centered. This can significantly boost computer speed and efficiency as it includes two or more central processing units (CPUs) in a single chip.

There are two types of multi-core processors that are shown in the Fig. 1 given below.

Fig. 1: Types of Multi-core Processor

There are many applications that benefit from multi-core like database servers, compilers, web-servers, multimedia and scientific applications. In general, it has applications which have a Thread-level parallelism.

History of Multi-core processors:

In earlier days, the companies which designed the preliminary chip based processors could fit only a single processor on a single chip. As the chip making technology progressed, chipmakers succeeded in designing and manufacturing chips with more than one processor. This resulted in a multi-core chip architecture.

The initial multi core processor was invented and developed by Kunle Olukotun, a professor at Stanford and his group of students in 1998.

The first commercially successful and accessible multi core chips were from Intel and Advanced Micro Devices (AMD) in 2005. Now, almost every other chip maker and manufacturer has started to create multi core processors.

Multi-core Architecture:

The multi-core processor design allows communication between all available cores, and all processing tasks are divided and assigned accordingly. The processed data of each core is sent back to the computer’s main board (motherboard) via a single common gateway after all processing operations are completed. This method is superior to a single core CPU in terms of overall performance.

Fig. 2 depicts the architecture of a Multi-core processor. The processors contain two cores. The system bus and main memory is shared between the two processors. Each of the cores has an independent L1 cache or Level 1 cache. L2 cache or Level 2 cache behaves like a common repository for the individual L1 cache. If the processor is unable to locate the data required to perform the next task in the L1 cache, it can be searched in the L2 cache. L2 cache is slower as compared to L1 cache but is larger in terms of memory. L2 cache being shared between the core acts advantageous as it can be used to the fullest.

The architecture of a multicore processor enables communication between all available cores which in turn ensures that the processing tasks are divided and assigned properly between the cores. During the process of task completion, the processed data from each core is delivered back to the motherboard by means of a single shared gateway. This technique significantly enhances performance compared to a single-core processor of similar speed.

Multicore technology is very effective in challenging tasks and applications, such as encoding, 3-D gaming and video editing.

Some of the advantages of shared cache between cores are:

  1. If one of the cores are not utilizing the cache, the other one can which ensures efficient utilization of the resources.
  2. Provides flexibility to the programmers by enabling larger data sharing options between cores having threads running separately.
  3. One of the cores can preprocess/postprocess the data for the other core.
  4. Less workload is required to maintain coherency.
  5. Allows effective sharing of data between the cores and enables data requests to be resolved at the shared-cache levels instead of taking it up to the system memory.

Multi-core Processor Machines:

Intel Multi-core Processors

Intel first implemented multi-core processing through dual-core processors across all key sectors (desktop, workstation, mobile, and mainstream server). In accordance with our new cadence for process technology and microarchitecture, Intel’s second generation of dual core processors, released in the third quarter of 2006, uses the new Intel Core microarchitecture. These products include Intel Core 2 Duo desktop and mobile processors, and Dual-Core Intel Xeon 5100 processor 5100 series for dual-processor servers. By transitioning the majority of the volume products to Intel Core micro architecture based dual-core processors, Intel took the lead in performance and energy efficiency in most of these product segments.

TILEPRO64

This multi-core processors machine has 64 homogeneous cores that are arranged in a mesh network. Each core consists of a full-featured processor, L1 and L2 cache, and a non-blocking switch that connect the core with the whole mesh. The Tile pro family incorporates Tilera’s Dynamic Distributed Cache (DDC) technology which accelerates the cache coherence performance by a factor of two when compared to other multi-core processors machines. The TIELPro64 has many attractive features such as the massively scalable performance, power efficiency, and it is considered as an Integrated solution. Its processor cores combines the features of a general-purpose Central Processing Unit (CPU) along with a powerful signal processing and Single Instruction, Multiple Data (SIMD) capabilities, which will result in integrating multiple functionalities on the same single processor that reduces the system cost and simplifies the system design.

Tilepro64 architecture (Credits: https://techgage.com/news/tilera_launches_tilepro64_processors/)

EPIPHANY-IV 64-CORE 28NM MICROPROCESSOR (E64G401)

This multi-core processors machine has 64 High Performance Reduced Instruction Set Computer (RISC) CPU Cores arranged in a 8 * 8 mesh network, each core operates at 800 MHz and 1.6 GFLOPS/sec. The CPU has an efficient general-purpose instruction set that excels at compute intensive applications while being efficiently programmable in C/C++ without any need to write code using assembly or processor specific intrinsics. This machine’s memory architecture is based on a flat memory map in which each compute node has a small amount of local memory as a unique addressable slice of the total 32-bit address space.

Advantages of using Multi-core processor:

Multi-core processor is capable of doing more tasks, in comparison to the single core processor. It can also process larger amounts of data while maintaining a low energy consumption. Due to these qualities, Multi-core processors are a popular choice and are preferred over single core processors. Some of the advantages of choosing a multi-core processor over a single core-processor are:

  1. Reliability: As the software is assigned to different cores, it stays unaffected even when one part of it fails. IOnly one core is affected in case of a defect.
  2. Multitasking: A multi-core CPU is utilized by the operating system for executing multiple programs simultaneously.
  3. Performance: Multi-core processor works more efficiently than a single-core processor, thus speeding up the processes.
  4. Power Consumption: The part generating heat in a multi-core CPU is the only part that will be used. This reduces the power consumption and in turn, less utilization of battery.

Disadvantages of using Multi-core processor:

  1. Application Speed: When an application is processing, the multi-core processor can bounce from one core to another filling up the cache. This results in more time to finish the process.
  2. Analysis: Additional memory models need to be added in multi-core processors due to its ability to multitask, making the interference analysis complex with the increase in the number of cores.
  3. Jitter: Jitters can develop in a multi-core processor as more cores cause more interference. This can result in frequent failures in the operating system.
  4. Software Interference: Spatial and temporal isolation are some common problems caused due to resource sharing.

Applications of Multi-core processors:

Nowadays, devices like laptops, tablets, gaming systems, tablets commonly use multi-core processors. The dual-core type is better suited for portable laptops which require a longer battery life and consume less power. But more power is used by desktops that use a CPU , such as the quad-core model, as it does not require battery life. Few applications of the multicore processor are as follows:

  • Games with high graphics, such as Overwatch and Star Wars Battlefront, as well as 3D games.
  • The multicore processor is more appropriate in Adobe Premiere, Adobe Photoshop, iMovie, and other video editing software.
  • Solidworks with computer-aided design (CAD).
  • High network traffic and database servers.
  • Industrial robots, for example, are embedded systems.

Fig. 3: Application structure of Multi-core processors

Parallel application maximizes utilization of CPU in a multi-core processor. All the applications should be closely examined for chances to parallelize tasks. In fig. 3 each application is divided into threads which can execute independently on individual cores. The ratio of computation to communication overhead defines the application parallelism. The amount of time that the CPU spends executing application code is the communication overhead. In a multi core architecture, this communication overhead shows the frequency of messages being sent between cores. The more the threads, the more are the chances that they are scheduled on separate cores, which by the end increases communication overhead.

Future of Multi-core processors:

Multi-core processors replace traditional single-core processors, resulting in fewer single-core processors manufactured and supported. As a result, single-core processors are becoming technically obsolete. Heterogeneous multi-core processors, such as computer on-chip processors, are becoming more and more common. The multi-core processor has significantly saturated some application domains (cloud computing, data warehousing, online shopping, etc.), but it is only used in real-time, safety- and security-critical, cyber-physical systems. Some of the more prevalent areas where multi-core processing is gaining popularity is size, weight, performance, and cooling (SWAPC) constrained environments that demand significantly higher performance.

In the future, chip manufacturers will make their multicore chips much faster by enhancing the speed of every core. During the next few years, as the chip’s feature sizes will decrease from 90 nanometers to 65 nanometers, room for more cores will increase. They might be used the most in servers. While on the other hand, as single chip processors are inexpensive considering their manufacturing costs, they could continue to be used in low priced PCs.

Nonetheless, Multicore processors can be considered as the new megahertz. And multicores will act as a transition from brute-force performance to architectural elegance.

Authors: Kasturi Joshi, Riya Joshi, Rohan Joshi, Sumedh Joshi

References:

  1. https://www.computer.org/csdl/magazine/co/2005/05/r5011/13rRUwhpBQV
  2. https://www.javatpoint.com/what-is-a-multicore-processor
  3. https://www.cs.cmu.edu/~fp/courses/15213-s07/lectures/27-multicore.pdf
  4. https://www.quora.com/What-is-the-future-of-multicore-computing-and-processors
  5. https://aircconline.com/ijcsit/V10N1/10118ijcsit01.pdf

--

--