zTOx Solution Alternatives

Envisioning alternatives to z/OS on System z
zTOx Home
About zTOx
Papers and Notes
zTOx SLA on a mainframe a
CPU vs Processor vs Core
Contact Us
Site Map
CPU vs Processor vs Core
There's quite a bit of confusion out there around the terms CPU and Processors Core and even the term Processor.  There is inconsistent usage of these terms, which leads to confusion and potential misunderstanding, or at least to communication inefficiency.  zTOx holds that the CPU is that entity which runs an OS thread of instruction execution, and therefore the term CPU is a reference to a processor core, not the physical processor packages that are plugged into processor sockets.  Explanation follows.

Central Processing Unit (CPU)

The definition of what is a CPU is well founded historically as “the portion of a computer system that carries out the instructions of a computer program”.  From the OS perspetive the CPU is that which runs an OS thread of execution.  Supporting this we cite the Wikipedia definition of CPU (text highlight added):

“The Central Processing Unit (CPU) or processor is the portion of a computer system that carries out the instructions of a computer program … . This term has been in use in the computer industry at least since the early 1960s (Weik 2007). The form, design and implementation of CPUs have changed dramatically since the earliest examples, but their fundamental operation remains much the same.”

 

And then later: “The fundamental operation of most CPUs, regardless of the physical form they take, is to execute a sequence of stored instructions called a program”.

So historically the terms processor and CPU were used interchangeably.  This was OK as the ‘P’ in “CPU” stood for processor was the and CPU had only one P(rocessor) there was a one-to-one relationship between processors and “CPUs.  The core source of the current terminology confusion (pun intended) is this historical interchangeable use of the terms which is prevalent in the literature.  A relevant example of this usage is the the Wikipedia definition of CPU which contains the phrase “(CPU) or processor”, giving them the same meaning.
 
Processor as product

The product that one buys and that AMD or INTEL or others sell is a processor.  Historical processor names include "486 processor", "Pentium processor" and "SPARC processor".  Current phrases that show continued usage of this meaning of the term processor are “AMD Opteron™ processor” and “Intel XEON™ Processor” or “Intel Core i7™ Processor”.

In fact today’s processors contain a lot of stuff, the CPU core being one (or more) of those things, such as memory cache.  AMD lays this out nicely in their feature description for the Opteron Processor.

 

Processor CPU Core

When manufacturers came to offer a product with more than one CPU they adopted the term core which is shorthand for “processor CPU core”.   (From reading their current literature, it seems that both AMD and INTEL today avoid the term CPU).

Differentiating Processor from CPU
 
In current AMD and INTEL based computers, a processor is that which is inserted into a processor socket and it's very clear in this context that the processor is not the CPU core, but rather the entity that contains one or more CPU cores.

Conclusion
What is a CPU?  It's pretty clear that the entity that is often simply called a core runs an OS thread in order to "execute a sequence of stored instructions called a program", and so the core is or contains the CPU.  And the corollary to this conclusion is that a CPU is not the processor in the sense that it is not the “AMD Opteron™ processor” and “Intel XEON™ Processor” each of which can concurrently run multiple OS threads.  (And also a CPU is also not the personal computer box that some PC users refer to as a CPU).
A processor core is a CPU, or better the processor core contains the CPU and also other components (such as cache memory).
 
Proposal
Let us consistently use the term processor core to mean the CPU as in "processor CPU Core".  This is especially important for vendors that license their products based on such,   Customer license agreements from multiple vendors should consistently use these terms with this common definition.
 
Here's the whole stack that puts the usage into a context that defends this usage:
 
  • A computer contains circuit boards.
    • Circuit boards have processor sockets.
      • Processors sockets hold processors.
        • Processors contain one or more CPU cores.
          • CPUs run OS threads of program execution.
            • The OS sees and dispatches threads to CPU cores.
If you agree then please join us in this consistent usage.  If not let us know why not.