3
\$\begingroup\$

I was reading this article that explains the difference between a thread and a core and it says the following:

A CPU core is a hardware component and is called the ‘brain’ of a CPU. It is like a small CPU within the bigger CPU.

My question is, what does the CPU contain apart from the core? All this time I thought the CPU itself was "the core".

Can someone please help clarify this?

\$\endgroup\$
2
  • 1
    \$\begingroup\$ In the microprocessor world (which is not the topic of this article), what is "core" and what is "peripheral" is usually an organizational thing -- e.g. for ARM CPUs, the "core" is the bit that is licensed from ARM ltd. The boundary of the "core" is also well defined there: the debug interface wraps around the core and allows disconnecting it from the rest of the system. \$\endgroup\$ Commented Nov 7, 2022 at 0:45
  • 1
    \$\begingroup\$ the CPU is usually the component that plugs into the system board ... the CPU core is a subsection inside the CPU \$\endgroup\$
    – jsotola
    Commented Nov 7, 2022 at 1:07

4 Answers 4

10
\$\begingroup\$

In the old days the CPU and the CPU core were the same thing. There was nothing else on the die.

Gradually more things were added as technology progressed. First cache was added (formly on the motherboard). Then memory controllers started to be brought onto the die (formerly in the chipset). Then multiple processors were tiled into the same piece of silicon (formerly you would have two physical CPUs if you needed two processors). Gradually caches were adapted such that individual cores had their own private cache and the system gained a last level cache that was shared between the cores. Next PCIe and GPUs were integrated into CPUs (although even today not all integrate a GPU). More and more chipset functions were brought over too, with some CPUs now having USB, image processing hardware and even Thunderbolt controllers on the CPU. Take for example Intel's Ice Lake mobile parts:

icelake diagram

Thunderbolt, an image processing unit, PCIe, display controllers, GPU, last level cache. The die photographs drive this home:

ice lake die

At least in the mobile parts, most of the die is NOT the CPU cores.

(taken from: https://en.wikichip.org/wiki/intel/microarchitectures/ice_lake_(client) )

\$\endgroup\$
4
  • \$\begingroup\$ So is all of this put together called the "CPU"? \$\endgroup\$
    – penguin99
    Commented Nov 7, 2022 at 3:38
  • 2
    \$\begingroup\$ @penguin99 Yes. Today a "CPU" means the physical chip that you plug into the motherboard - with all the above components on it. Alternatively, if you're talking from software point of view, a "CPU" can also be an abstract thing that executes the program, so you can talk about things like "CPU usage". \$\endgroup\$
    – Vilx-
    Commented Nov 7, 2022 at 7:41
  • \$\begingroup\$ These days, especially for mobile devices which don’t have a dedicated GPU the big chip is also called “System On Chip” (SoC). Apple’s M1/M2 are an example. \$\endgroup\$
    – Michael
    Commented Nov 7, 2022 at 7:54
  • \$\begingroup\$ @penguin99 depends on context. In software, a CPU still means a CPU core, usually. \$\endgroup\$
    – user20574
    Commented Jan 16, 2023 at 17:54
4
\$\begingroup\$

For a very long time, a CPU could only process one execution flow at a time. Read instruction, decode instruction, execute instruction, and repeat.

At some point it was found that it would be interesting to process multiple execution flows at the same time — in parallel.

This started by having multiple CPUs, a so-called multiprocessor setup.

After a while, manufacturers starting putting multiple processors in the same chip. These processors inside the chip are often called cores, while the chip itself it called a multi-core CPU. But this is just one convention, and from the operating system or software point of view, the multiple cores are often considered as multiple CPUs.

Each core will contain a number of units used in the processing of an execution flow, but there may be additional stuff in the chip that is not part of any core, especially cache memory (there may be a small cache within each core and a larger cache shared by multiple cores), the necessary stuff to manage arbitration between the multiple cores, some execution units may be shared, there will be RAM interfaces (or built-in RAM in some cases), I/O interfaces (USB, SATA, PCIe…) and in recent “CPU” chips which contain a lot more than execution units, video-related stuff (VPU encoder/decoder, 3D GPU, video input and/or output), sometimes flash, etc.

So a “CPU” can either refer to a single core inside a chip which contains multiple cores and a lot of other stuff, or the whole chip. The latter is often called a SoC nowadays (system on chip) as more and more components which used to be external get integrated into a single chip.

In the PC world nowadays you’ll have nearly everything in the chip except RAM and some I/O, while in the world of mobile phones, tablets, embedded devices and recent Mac models even RAM is often integrated.

\$\endgroup\$
3
  • \$\begingroup\$ Isn't having multiple execution flows in parallel called 'superscalar'? \$\endgroup\$
    – penguin99
    Commented Nov 7, 2022 at 0:04
  • 3
    \$\begingroup\$ @penguin99 Multiple instruction executions in the same core is super scalar, and not necessarily every instruction can be executed simultaneously with every other. This is different than outright having multiple independent cores in the same processor. \$\endgroup\$
    – DKNguyen
    Commented Nov 7, 2022 at 0:56
  • 1
    \$\begingroup\$ @penguin99 Technically, it's multiple instruction pipelines in the same core. \$\endgroup\$
    – DKNguyen
    Commented Nov 7, 2022 at 2:17
0
\$\begingroup\$

Actually, it's a processor or microprocessor in this context that contains CPU cores, not a CPU.

Some texts use the established terminology, unfortunately some misuse it through misunderstanding or choose alternatives through preference, like many things in naming.

A Central Processing Unit (CPU) is a logic circuit capable of executing instructions and programs. Designers may refer to their CPU IP as a CPU core.

A microprocessor is a CPU plus external bus interface circuitry, cache controller etc, all on a single IC. To implement a computing device, a microprocessor requires external ICs such as memories and I/O devices. These days, microprocessor is often shortened to processor.

A microcontroller (MCU) is a CPU, bus interfacing, memories and I/O devices all on a single IC. To implement a computing device, it doesn't require external ICs.

(MCU is an abbreviation of Microcontroller Unit, a term dating back to 1976 and (coined for) Intel's MCS-48 family, which is where I first saw it. MPU for Microprocessor Unit came along a bit earlier from Motorola.)

\$\endgroup\$
-3
\$\begingroup\$

CPU core is a single logical unit of a CPU. Meanwhile, the CPU itself could be just a single core, or more commonly, multiple cores. If you, for example, have a eight-core CPU, then you have one CPU and eight cores.

That's the straight-to-the-point answer, without all the unnecessary and distracting barely-relevant fluff included in the other answers.

\$\endgroup\$
3
  • 1
    \$\begingroup\$ The "fluff" in the other answers is quite relevant, and directly addresses the question. It shouldn't be dismissed and doesn't need to be boiled down. \$\endgroup\$
    – TypeIA
    Commented Nov 7, 2022 at 10:16
  • 1
    \$\begingroup\$ @TypeIA It takes skill and understanding to condense information. Any fool can ramble and go on unrelated tangents by dumping long salad of paragraphs. As Oscar Wilde said, "if I had more time, I would have written a shorter letter". \$\endgroup\$ Commented Nov 7, 2022 at 10:54
  • 2
    \$\begingroup\$ But you haven't defined what a single logical unit of a CPU is or does. Saying is is what it is doesn't help. \$\endgroup\$ Commented Nov 7, 2022 at 20:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.