What does dual-core mean? Dual-core or quad-core processor - what's the difference?

In reality, nothing like that happens. To understand why an eight-core processor does not double the performance of a smartphone, some explanation is required. The future of smartphone processors is now. Eight-core processors, which only recently could only be dreamed of, are becoming increasingly widespread. But it turns out that their task is not to increase the performance of the device.

These explanations were published in the article “Octa-core vs Quad-core: Does it make a difference?” on resource pages Trusted Reviews.

The terms “octa-core” and “quad-core” themselves reflect the number of CPU cores.

But the key difference between these two types of processors is the way the processor cores are installed.

With a quad-core processor, all cores can work simultaneously to enable fast and flexible multitasking, smoother 3D gaming, faster camera performance, and more.

Modern eight-core chips, in turn, simply consist of two quad-core processors that distribute different tasks among themselves depending on their type. Most often, an eight-core chip contains a set of four cores with a lower clock speed than the second set. When a complex task needs to be completed, the faster processor naturally takes on it.

A more accurate term than "octa-core" would be "dual quad-core." But it doesn't sound so nice and isn't suitable for marketing purposes. That's why these processors are called eight-core.

Why do we need two sets of processor cores?

What is the reason for combining two sets of processor cores, passing tasks to one another, in one device? To ensure energy efficiency! This solution is necessary for a battery-powered smartphone, but not for a head unit that is constantly powered by the car’s on-board power supply.

A more powerful CPU consumes more power and the battery needs to be charged more often. And batteries are a much weaker link in a smartphone than processors. As a result, the more powerful the smartphone processor, the more capacious battery it needs.

However, for most smartphone tasks you will not need such high computing performance as a modern processor can provide. Navigating between home screens, checking messages, and even web navigation are less processor-intensive tasks.

But HD video, games and working with photos are such tasks. Therefore, eight-core processors are quite practical, although this solution can hardly be called elegant. A weaker processor handles less resource-intensive tasks. More powerful - more resource-intensive. As a result, overall power consumption is reduced compared to the situation when only a processor with a high clock frequency would handle all tasks. Thus, a dual processor primarily solves the problem of increasing energy efficiency, not performance.

Technological features

All modern eight-core processors are based on the ARM architecture, the so-called big.LITTLE.

This eight-core big.LITTLE architecture was announced in October 2011 and allowed four low-performance Cortex-A7 cores to work in conjunction with four high-performance Cortex-A15 cores. ARM has repeated this approach every year since, offering more capable chips for both sets of processor cores on the eight-core chip.

Some of the major mobile device chip makers are focusing their efforts on this big.LITTLE "octa-core" example. One of the first and most notable was Samsung's own chip, the famous Exynos. Its eight-core model has been used since the Samsung Galaxy S4, in at least some versions of the company's devices.

More recently, Qualcomm also began using big.LITTLE in its eight-core Snapdragon 810 CPU chips. It is on this processor that such well-known new products in the smartphone market as the HTC One M9 and G Flex 2, which has become a great achievement for LG, are based.

At the beginning of 2015, NVIDIA introduced the Tegra X1, a new super-powerful mobile processor that the company intends for automotive computers. The X1's main feature is its console-challenging GPU, which is also based on the big.LITTLE architecture. That is, it will also become eight-core.

Is there a big difference for the average user?

Is there a big difference between a quad-core and an eight-core smartphone processor for the average user? No, in fact it is very small, says Trusted Reviews.

The term "octa-core" is somewhat confusing, but it actually means duplication of quad-core processors. The result is two independently operating quad-core sets, combined into one chip to improve energy efficiency.

Do every modern device need an eight-core processor? There is no such need; for example, Apple ensures decent energy efficiency of its iPhones with only a dual-core processor.

Thus, the eight-core ARM big.LITTLE architecture is one of the possible solutions to one of the most important issues regarding smartphones - battery life. As soon as another solution to this problem is found, the trend of installing two quad-core sets in one chip will stop, and such solutions will go out of fashion.

  • Tutorial

In this article I will try to describe the terminology used to describe systems capable of executing several programs in parallel, that is, multi-core, multi-processor, multi-threaded. Different types of parallelism appeared in the IA-32 CPU at different times and in somewhat inconsistent order. It’s quite easy to get confused in all this, especially considering that operating systems carefully hide details from less sophisticated application programs.

The purpose of the article is to show that with all the variety of possible configurations of multiprocessor, multi-core and multi-threaded systems, opportunities are created for programs running on them both for abstraction (ignoring differences) and for taking into account specifics (the ability to programmatically find out the configuration).

Warning about ®, ™ signs in the article

My comment explains why company employees should use copyright notices in public communications. In this article I had to use them quite often.

CPU

Of course, the oldest, most often used and controversial term is “processor”.

In the modern world, a processor is something that we buy in a beautiful Retail box or a not-so-nice OEM package. An indivisible entity inserted into a socket on the motherboard. Even if there is no connector and it cannot be removed, that is, if it is tightly soldered, it is one chip.

Mobile systems (phones, tablets, laptops) and most desktops have one processor. Workstations and servers sometimes boast two or more processors on a single motherboard.

Supporting multiple CPUs in a single system requires numerous design changes. At a minimum, it is necessary to ensure their physical connection (provide several sockets on the motherboard), resolve issues of processor identification (see later in this article, as well as my previous note), coordination of memory accesses and interrupt delivery (the interrupt controller must be able to route interrupts for several processors) and, of course, support from the operating system. Unfortunately, I could not find a documentary mention of the creation of the first multiprocessor system on Intel processors, but Wikipedia claims that Sequent Computer Systems supplied them already in 1987, using Intel 80386 processors. Support for multiple chips in one system is becoming widespread , starting with Intel® Pentium.

If there are several processors, then each of them has its own connector on the board. Each of them has complete independent copies of all resources, such as registers, execution devices, caches. They share a common memory - RAM. Memory can be connected to them in various and rather non-trivial ways, but this is a separate story beyond the scope of this article. The important thing is that in any case, the illusion of homogeneous shared memory accessible from all processors included in the system should be created for executable programs.


Ready for takeoff! Intel® Desktop Board D5400XS

Core

Historically, multi-cores in Intel IA-32 appeared later than Intel® HyperThreading, but in the logical hierarchy it comes next.

It would seem that if a system has more processors, then its performance is higher (on tasks that can use all resources). However, if the cost of communication between them is too high, then all the gains from parallelism are killed by long delays for the transfer of common data. This is exactly what is observed in multiprocessor systems - both physically and logically they are very far from each other. For effective communication in such conditions, it is necessary to come up with specialized buses, such as Intel® QuickPath Interconnect. Energy consumption, size and price of the final solution, of course, are not reduced by all this. High integration of components should come to the rescue - circuits executing parts of a parallel program must be brought closer to each other, preferably on one chip. In other words, one processor should organize several cores, identical to each other in everything, but working independently.

The first multi-core IA-32 processors from Intel were introduced in 2005. Since then, the average number of cores in server, desktop, and now mobile platforms has been steadily growing.

Unlike two single-core processors on the same system sharing only memory, two cores can also share caches and other memory-related resources. Most often, the first level caches remain private (each core has its own), while the second and third levels can be either shared or separate. This system organization allows you to reduce data delivery delays between neighboring cores, especially if they are working on a common task.


Micrograph of a quad-core Intel processor codenamed Nehalem. Separate cores, a common third-level cache, as well as QPI links to other processors and a common memory controller are allocated.

Hyperthread

Until about 2002, the only way to get an IA-32 system capable of running two or more programs in parallel was to use multiprocessor systems. The Intel® Pentium® 4, as well as the Xeon line codenamed Foster (Netburst), introduced a new technology - hyperthreads or hyperthreads - Intel® HyperThreading (hereinafter HT).

There is nothing new under the sun. HT is a special case of what is referred to in the literature as simultaneous multithreading (SMT). Unlike “real” cores, which are complete and independent copies, in the case of HT, only part of the internal nodes, primarily responsible for storing the architectural state - registers, are duplicated in one processor. The executive nodes responsible for organizing and processing data remain singular, and at any given time are used by at most one of the threads. Like cores, hyperthreads share caches, but from what level depends on the specific system.

I won't try to explain all the pros and cons of SMT designs in general and HT designs in particular. The interested reader can find quite a detailed discussion of the technology in many sources, and, of course, on Wikipedia. However, I will note the following important point, which explains the current restrictions on the number of hyperthreads in real products.

Thread restrictions
In what cases is the presence of “unfair” multi-cores in the form of HT justified? If one application thread is not able to load all the execution nodes inside the kernel, then they can be “lent” to another thread. This is typical for applications that have a bottleneck not in computation, but in data access, that is, often generating cache misses and having to wait for data to be delivered from memory. During this time, the core without HT will be forced to idle. The presence of HT allows you to quickly switch free executing nodes to another architectural state (since it is duplicated) and execute its instructions. This is a special case of a technique called latency hiding, when one long operation, during which useful resources are idle, is masked by the parallel execution of other tasks. If the application already has a high degree of utilization of kernel resources, the presence of hyperthreads will not allow for acceleration - “honest” kernels are needed here.

Typical scenarios for desktop and server applications designed for general-purpose machine architectures have the potential for parallelism implemented using HT. However, this potential is quickly being used up. Perhaps for this reason, on almost all IA-32 processors the number of hardware hyperthreads does not exceed two. In typical scenarios, the gain from using three or more hyperthreads would be small, but the loss in die size, its power consumption and cost is significant.

A different situation is observed in typical tasks performed on video accelerators. Therefore, these architectures are characterized by the use of SMT technology with a larger number of threads. Since Intel® Xeon Phi coprocessors (introduced in 2010) are ideologically and genealogically quite close to video cards, they may have four hyperthreading on each core - a configuration unique to the IA-32.

Logical processor

Of the three described “levels” of parallelism (processors, cores, hyperthreads), some or even all may be missing in a particular system. This is affected by BIOS settings (multi-core and multi-threading are disabled independently), microarchitecture features (for example, HT was absent from the Intel® Core™ Duo, but was brought back with the release of Nehalem) and system events (multi-processor servers can shut down failed processors if faults are detected and continue to “fly” on the remaining ones). How is this multi-level zoo of concurrency visible to the operating system and, ultimately, to application applications?

Further, for convenience, we denote the number of processors, cores and threads in a certain system by three ( x, y, z), Where x is the number of processors, y- the number of cores in each processor, and z- number of hyperthreads in each core. From now on I will call this three topology- an established term that has little to do with the branch of mathematics. Work p = xyz defines the number of entities called logical processors systems. It defines the total number of independent contexts of application processes on a shared memory system, executing in parallel, that the operating system is forced to take into account. I say "forced" because it cannot control the execution order of two processes on different logical processors. This also applies to hyperthreads: although they run “sequentially” on the same core, the specific order is dictated by the hardware and cannot be observed or controlled by programs.

Most often, the operating system hides from end applications the features of the physical topology of the system on which it is running. For example, the following three topologies: (2, 1, 1), (1, 2, 1) and (1, 1, 2) - the OS will represent two logical processors, although the first of them has two processors, the second - two cores, and the third - just two threads.


Windows Task Manager shows 8 logical processors; but how much is it in processors, cores and hyperthreads?


Linux top shows 4 logical processors.

This is quite convenient for application creators - they do not have to deal with hardware features that are often unimportant for them.

Software definition of topology

Of course, abstracting the topology into a single number of logical processors in some cases creates enough grounds for confusion and misunderstandings (in heated Internet disputes). Computing applications that want to squeeze maximum performance out of hardware require detailed control over where their threads will be placed: closer to each other on adjacent hyperthreads or, conversely, further away on different processors. The speed of communication between logical processors within the same core or processor is much higher than the speed of data transfer between processors. The possibility of heterogeneity in the organization of working memory also complicates the picture.

Information about the topology of the system as a whole, as well as the position of each logical processor in the IA-32, is available using the CPUID instruction. Since the advent of the first multiprocessor systems, the logical processor identification scheme has been expanded several times. To date, its parts are contained in sheets 1, 4 and 11 of the CPUID. Which sheet to look at can be determined from the following flowchart taken from the article:

I will not bore you here with all the details of the individual parts of this algorithm. If there is interest, the next part of this article can be devoted to this. I will refer the interested reader to, which examines this issue in as much detail as possible. Here I will first briefly describe what APIC is and how it relates to topology. Next we'll look at working with the 0xB sheet (eleven in decimal), which is currently the last word in "apico-building".

APIC ID
Local APIC (advanced programmable interrupt controller) is a device (now part of the processor) responsible for handling interrupts coming to a specific logical processor. Each logical processor has its own APIC. And each of them in the system must have a unique APIC ID value. This number is used by interrupt controllers for addressing when delivering messages, and by everyone else (for example, the operating system) to identify logical processors. The specification for this interrupt controller has evolved from the Intel 8259 PIC through Dual PIC, APIC and xAPIC to x2APIC.

Currently, the width of the number stored in the APIC ID has reached a full 32 bits, although in the past it was limited to 16, and even earlier - only 8 bits. Today, remnants of the old days are scattered throughout the CPUID, but CPUID.0xB.EDX returns all 32 bits of the APIC ID. On each logical processor that independently executes the CPUID instruction, a different value will be returned.

Clarification of family ties
The APIC ID value itself does not tell you anything about the topology. To find out which two logical processors are located inside one physical processor (i.e., they are “brothers” hyperthreads), which two are inside the same processor, and which ones are completely different processors, you need to compare their APIC ID values. Depending on the degree of relationship, some of their bits will coincide. This information is contained in CPUID.0xB sublists, which are operand encoded in ECX. Each of them describes the position of the bit field of one of the topology levels in EAX (more precisely, the number of bits that need to be shifted to the right in the APIC ID to remove the lower topology levels), as well as the type of this level - hyperthread, core or processor - in ECX.

Logical processors located inside the same core will have the same all APIC ID bits, except those belonging to the SMT field. For logical processors located in the same processor, all bits except the Core and SMT fields. Since the number of subsheets for CPUID.0xB can grow, this scheme will allow us to support the description of topologies with a larger number of levels, if the need arises in the future. Moreover, it will be possible to introduce intermediate levels between existing ones.

An important consequence of the organization of this scheme is that there may be “holes” in the set of all APIC IDs of all logical processors in the system, i.e. they won't go sequentially. For example, in a multi-core processor with HT turned off, all APIC IDs may turn out to be even, since the least significant bit responsible for encoding the hyperthread number will always be zero.

I note that CPUID.0xB is not the only source of information about logical processors available to the operating system. A list of all processors available to it, along with their APIC ID values, is encoded in the MADT ACPI table.

Operating systems and topology

Operating systems provide information about the topology of logical processors to applications using their own interfaces.

On Linux, topology information is contained in the /proc/cpuinfo pseudofile as well as the output of the dmidecode command. In the example below, I filter the contents of cpuinfo on some quad-core system without HT, leaving only entries related to the topology:

Hidden text

ggg@shadowbox:~$ cat /proc/cpuinfo |grep "processor\|physical\ id\|siblings\|core\|cores\|apicid" processor: 0 physical id: 0 siblings: 4 core id: 0 cpu cores: 2 apicid: 0 initial apicid: 0 processor: 1 physical id: 0 siblings: 4 core id: 0 cpu cores: 2 apicid: 1 initial apicid: 1 processor: 2 physical id: 0 siblings: 4 core id: 1 cpu cores: 2 apicid: 2 initial apicid: 2 processor: 3 physical id: 0 siblings: 4 core id: 1 cpu cores: 2 apicid: 3 initial apicid: 3

On FreeBSD, the topology is reported via the sysctl mechanism in the kern.sched.topology_spec variable as XML:

Hidden text

user@host:~$ sysctl kern.sched.topology_spec kern.sched.topology_spec: 0, 1, 2, 3, 4, 5, 6, 7 0, 1, 2, 3, 4, 5, 6, 7 0, 1 THREAD groupSMT group 2, 3 THREAD groupSMT group 4, 5 THREAD groupSMT group 6, 7 THREAD groupSMT group

In MS Windows 8, topology information can be seen in the Task Manager.

When answering the question of what the number of cores in a processor affects, I would like to say right away - the performance of the computer. But this is such a strong simplification that it even becomes a mistake at some point.

It would be nice if users were simply mistaken and did not lose anything. The problem is that misunderstanding the essence of multi-core leads to financial losses. Trying to increase performance, a person spends money on a processor with more cores, but does not notice the difference.

Multi-core and multi-threading

When we were studying the issue, we noticed a feature of Intel processors - standard Windows tools display a different number of cores. This is due to the work of Hyper-Threading technology, which provides multi-threading.

So that you no longer get confused in concepts, let’s sort it out once and for all:

  • Multi-core – the chip is equipped with several physical architectural cores. You can see them and touch them with your hands.
  • Multithreading – several simultaneously processed streams of information.
    The core may be physically one, but software technologies based on it create two threads of task execution; two cores – four threads, etc.

The impact of the number of cores on performance

Increased performance on a multi-core processor is achieved by breaking up task execution. Any modern system divides the process into several threads, even on a single-core processor - this is how multitasking is achieved, in which you can, for example, listen to music, type a document and work with a browser. The following applications love and constantly use multithreading:

  • archivers;
  • media players;
  • video encoders;
  • defragmenters;
  • antiviruses;
  • graphic editor.

The principle of stream separation is important. If the computer is running on a single-core processor without Hyper-Threading technology, then the operating system instantly switches between threads, so that for the user processes are visually running simultaneously. Everything happens within milliseconds, so you don't see much latency unless you're pushing the CPU hard.

If the processor is multi-core (or supports multi-threading), then ideally there will be no switching. The system sends a separate thread to each core. The result is increased productivity because there is no need to switch to another task.

But there is another important factor - does it support itself? program multitasking? The system can split processes into different threads. However, if you are running a very demanding game, but it is not optimized to run on four cores, there will be no performance gain compared to a dual-core processor.

Game and program developers are aware of this feature, so they constantly optimize their code to perform tasks on multi-core processors. But this optimization does not always keep pace with the increase in the number of cores, so you should not spend a lot of money on the latest powerful processors with the maximum possible number of supported threads - the chip’s potential will not be revealed in 9 out of 10 programs.

So how many cores should you choose?

Before you buy a processor with 16 cores, consider whether that number of threads will be required to perform the tasks you will assign to the computer.

  • If a computer is purchased for working with documents, surfing the Internet, listening to music, watching movies, then two cores are enough. If you take a processor with two cores from the upper price segment with a good frequency and support for multi-threading, then there will be no problems when working with graphic editors.
  • If you are buying a machine with the expectation of powerful gaming performance, then immediately install a filter for at least 4 cores. 8 cores with multi-threading support – the very top with a margin of several years. 16 cores are promising, but there is a high probability that by the time you unlock the potential of such a chip, it will become obsolete.

As I already said, game and program developers are trying to keep up with the progress of processors, but for now huge power is simply not needed. 16 cores are suitable for users who do video rendering or server computing. Yes, in stores such processors are called gaming processors, but this is only so that they can be sold - there are definitely more gamers around than those who render videos.

The benefits of multi-cores can only be seen with very serious computing work involving multiple threads. If, relatively speaking, a game or program is optimized for only four threads, then even your eight cores will be meaningless power that will not affect performance in any way.

It's like transporting a chair on a huge truck - it doesn't make the task any faster. But if you use the available opportunities correctly (for example, load the body with completely different furniture), then labor productivity will increase. Keep this in mind and don't be fooled by marketing tricks that add the word "gaming" to processors that won't reach their full potential even with the latest games.

Also on the site:

What is affected by the number of processor cores? updated: January 31, 2018 by: admin

The race for additional performance in the processor market can only be won by those manufacturers who, based on current production technologies, can provide a reasonable balance between clock speed and the number of processing cores. Thanks to the transition to 90- and 65-nm technical processes, it has become possible to create processors with a large number of cores. To a large extent, this was due to new capabilities for adjusting heat dissipation and core sizes, which is why today we are seeing the emergence of an increasing number of quad-core processors. But what about software? How well does it scale from one to two or four cores?

In an ideal world, programs that are optimized for multithreading allow the operating system to distribute multiple threads across the available processing cores, be it a single processor or multiple processors, single core or multiple. Adding new cores allows for greater performance gains than any increase in clock speed. This actually makes sense: more workers will almost always complete a task faster than fewer, faster workers.

But does it make sense to equip processors with four or even more cores? Is there enough work to load four cores or more? Do not forget that it is very difficult to distribute work between the cores so that physical interfaces such as HyperTransport (AMD) or Front Side Bus (Intel) do not become a bottleneck. There is a third option: the mechanism that distributes the load between the cores, namely the OS manager, can also become a bottleneck.

AMD's transition from single to dual cores was almost flawless, as the company did not increase the thermal envelope to extreme levels, as it did with Intel Pentium 4 processors. Therefore, the Athlon 64 X2 processors were expensive, but quite reasonable, and the Pentium D 800 line was famous for its hot work. But Intel's 65nm processors and, in particular, the Core 2 line have changed the picture. Intel was able to combine two Core 2 Duo processors in one package, unlike AMD, resulting in the modern Core 2 Quad. AMD promises to release its own quad-core Phenom X4 processors by the end of this year.

In our article we will look at the Core 2 Duo configuration with four cores, two cores and one core. And let's see how well the performance scales. Is it worth switching to four cores today?

One core

The term “single-core” refers to a processor that has one computing core. This includes almost all processors from the beginning of the 8086 architecture up to the Athlon 64 and Intel Pentium 4. Until the manufacturing process became thin enough to create two computing cores on a single chip, the transition to a smaller process technology was used to reduce operating voltage, increase clock speeds, or add functional blocks and cache memory.

Running a single-core processor at high clock speeds can provide better performance for a single application, but such a processor can only execute one program (thread) at a time. Intel has implemented the Hyper-Threading principle, which emulates the presence of multiple cores for the operating system. HT technology made it possible to better load the long pipelines of Pentium 4 and Pentium D processors. Of course, the performance increase was small, but the system responsiveness was definitely better. And in a multitasking environment, this can be even more important, since you can do some work while your computer is working on a specific task.

Since dual-core processors are so cheap these days, we don't recommend going for single-core processors unless you want to save every penny.


The Core 2 Extreme X6800 processor was the fastest in the Intel Core 2 line at the time of its release, operating at 2.93 GHz. Today, dual-core processors have reached 3.0 GHz, albeit at a higher FSB1333 bus frequency.

Upgrading to two processor cores means twice the processing power, but only on applications optimized for multi-threading. Typically, such applications include professional programs that require high processing power. But a dual-core processor still makes sense, even if you only use your computer for email, web browsing, and working with office documents. On the one hand, modern models of dual-core processors do not consume much more energy than single-core models. On the other hand, the second computing core not only adds performance, but also improves system responsiveness.

Have you ever waited for WinRAR or WinZIP to finish compressing files? On a single-core machine, you are unlikely to be able to quickly switch between windows. Even DVD playback can tax a single core as much as a complex task. The dual-core processor makes it easier to run multiple applications simultaneously.

AMD dual-core processors contain two full cores with cache, an integrated memory controller and a cross-connect that provides shared access to memory and the HyperTransport interface. Intel took a path similar to the first Pentium D, installing two Pentium 4 cores in the physical processor. Since the memory controller is part of the chipset, the system bus has to be used both for communication between the cores and for accessing memory, which imposes certain limitations on performance. The Core 2 Duo processor features more advanced cores that deliver better performance per clock and better performance per watt. The two cores share a common L2 cache, which allows data exchange without using the system bus.

The Core 2 Quad Q6700 processor runs at 2.66 GHz, using two Core 2 Duo cores inside.

If today there are many reasons to switch to dual-core processors, then four cores do not yet look so convincing. One reason is limited optimization of programs for multiple threads, but there are also certain architectural problems. Although AMD today criticizes Intel for packing two dual-core dies into a single processor, deeming it not a "true" quad-core CPU, Intel's approach works well because the processors actually deliver quad-core performance. From a manufacturing standpoint, it's easier to get high die yields and produce more products with small cores that can then be spliced ​​together to make a new, more powerful product in a new process. As for performance, there are bottlenecks - two crystals communicate with each other through the system bus, so it is very difficult to manage multiple cores distributed over several crystals. Although having multiple dies allows for better power savings and adjusting the frequencies of individual cores to suit the needs of the application.

True quad-core processors use four cores, which, along with cache memory, are located on a single chip. What is important here is the presence of a common unified cache. AMD will implement this approach by equipping 512 KB of L2 cache on each core and adding L3 cache to all cores. AMD's advantage is that it will be possible to turn off certain cores and speed up others to get better performance for single-threaded applications. Intel will follow the same path, but not before introducing the Nehalem architecture in 2008.

System information display utilities, such as CPU-Z, allow you to find out the number of cores and cache sizes, but not the processor layout. You won't know that the Core 2 Quad (or the quad-core Extreme Edition shown in the screenshot) consists of two cores.


But with the conquest of new peaks in frequency indicators, it became more difficult to increase it, as this affected the increase in TDP of processors. Therefore, developers began to increase the width of processors, namely adding cores, and the concept of multi-core arose.

Just literally 6-7 years ago, multi-core processors were practically unheard of. No, multi-core processors from the same IBM company existed before, but the appearance of the first dual-core processor for desktop computers, took place only in 2005, and this processor was called Pentium D. Also, in 2005, a dual-core Opteron from AMD was released, but for server systems.

In this article, we will not delve into historical facts in detail, but will discuss modern multi-core processors as one of the characteristics of the CPU. And most importantly, we need to figure out what this multi-core gives in terms of performance for the processor and for you and me.

Increased performance due to multi-core

The principle of increasing processor performance by using multiple cores is to split the execution of threads (various tasks) into several cores. To summarize, we can say that almost every process running on your system has multiple threads.

Let me make a reservation right away that the operating system can virtually create many threads for itself and perform it all at the same time, even if the processor is physically single-core. This principle implements the same Windows multitasking (for example, simultaneously listening to music and typing).


Let's take an antivirus program as an example. One thread will be scanning the computer, the other will be updating the anti-virus database (we have simplified everything very much in order to understand the general concept).

And let's look at what will happen in two different cases:

a) Single-core processor. Since we have two threads running simultaneously, we need to create for the user (visually) this same simultaneous execution. The operating system does something clever:there is a switch between the execution of these two threads (these switches are instantaneous and the time is in milliseconds). That is, the system “performed” the update a little, then abruptly switched to scanning, then back to updating. Thus, for you and me, it seems like we are performing these two tasks simultaneously. But what is lost? Of course, performance. So let's look at the second option.

b) Multi-core processor. In this case, this switch will not occur. The system will clearly send each thread to a separate core, which as a result will allow us to get rid of switching from thread to thread that is detrimental to performance (let’s idealize the situation). Two threads are executed simultaneously, this is the principle of multi-core and multi-threading. Ultimately, we will scan and update much faster on a multi-core processor than on a single-core processor. But there is a catch - not all programs support multi-cores. Not every program can be optimized this way. And everything happens far from being as ideal as we described. But every day, developers create more and more programs whose code is perfectly optimized for execution on multi-core processors.

Do you need multi-core processors? Everyday reason

At choosing a processor for a computer (namely when thinking about the number of cores), you should determine the main types of tasks that it will perform.

To improve your knowledge in the field of computer hardware, you can read the material about processor sockets .

Dual-core processors can be called the starting point, since there is no point in returning to single-core solutions. But dual-core processors are different. This may not be the “most” recent Celeron, but it may be a Core i3 on Ivy Bridge, just like AMD’s Sempron or Phenom II. Naturally, due to other indicators, their performance will be very different, so you need to look at everything comprehensively and compare multi-core with others processor characteristics.

For example, Core i3 on Ivy Bridge has Hyper-Treading technology, which allows you to process 4 threads simultaneously (the operating system sees 4 logical cores, instead of 2 physical ones). But the same Celeron does not boast of this.

But let us return directly to thoughts regarding the required tasks. If a computer is needed for office work and surfing the Internet, then a dual-core processor will suffice.

When it comes to gaming performance, most games require 4 cores or more to be comfortable. But here the same catch comes up: not all games have optimized code for 4-core processors, and if they are optimized, they are not as efficient as we would like. But, in principle, for games now the optimal solution is a 4-core processor.


Today, the same 8-core AMD processors are redundant for games, it is the number of cores that is redundant, but the performance is not up to par, but they have other advantages. These same 8 cores will greatly help in tasks where powerful work with high-quality multi-threaded workload is required. This includes, for example, video rendering (calculation), or server computing. Therefore, such tasks require 6, 8 or more cores. And soon, games will be able to efficiently load 8 or more cores, so in the future, everything is very rosy.

Don't forget that there are still a lot of tasks that create a single-threaded load. And it’s worth asking yourself the question: do I need this 8-nuclear unit or not?

Summing up, I would like to note once again that the advantages of multi-cores manifest themselves during “heavy” computational multi-threaded work. And if you don’t play games with sky-high requirements and don’t do specific types of work that require good computing power, then there’s simply no point in spending money on expensive multi-core processors (