Central Processing Unit or CPU is a machine or an electronic circuit, which controls commands entered through the machinery or electrical circuits. Processor is too broader terminology which actually covers Central Processing Unit too – we mentioned this in our article on basics how the “Processor” works – Central Processing Unit (CPU), CPU should be the preferred term over Processor.
Basics of a Central Processing Unit (CPU)
Main components of a Central Processing Unit are the arithmetic unit (including arithmetic logic unit, ALU) and the control unit. In addition, they contain the relevant register and a memory manager (memory management unit, MMU) for the memory management. The central tasks of the processor include the execution of the program, arithmetic and logical operations to process data from internal or external sources, such as memory.
In addition to these, Central Processing Unit can provide specialized functions to relieve the actual processor, these units are mostly used as coprocessor . Examples include the separate math coprocessor for floating-point operations (the floating point unit ) and graphics and sound processors. In this context, the central processor, designated in the preceding paragraph, with its basic functions described as the main processor or Central Processing Unit. Other synonyms is central processor unit (CPU). The modern form of the processor is the microprocessor, where all the blocks of the processor is in an integrated circuit combined (microchip). Modern processors for desktop computers and laptops, smartphones and tablet computers are often multi-core processors with two, four or more processor cores. The processor cores are often alone are “processors” themselves. Examples include the Intel Core i7 with 6 cores.
Construction / Functional Units of a Central Processing Unit
A Central Processing Unit consists of registers, an arithmetic logic unit (ALU), an instruction decoder, a control unit and the data lines (buses), which allow the communication with other components. In addition, modern microprocessors sometimes much more finely divided, which allow the simultaneous processing of multiple commands. These include hardware multipliers or the floating point unit to increase computing speed and pipelines for the efficient processing of commands. In addition, there are also often specialized processing units, e.g. for vector functions.
The two essential basic architectures for CPUs are Von Neumann or the Princeton architecture and Harvard architecture.
When mathematician John von Neumann named Von Neumann architecture, there was no separation between the memory for data and program code. When on Harvard architecture; the data and program (s) are stored in strictly separated storage and address spaces, separated by two bus systems, they are accessed in parallel.
Both the architectures have their specific advantages and disadvantages. The Von Neumann architecture is simpler from a programming perspective, since a deterministic program execution is ensured by the single bus, the CPU accesses the data and program. It also allows the possibility of a program code such as data write access, self-modifying code etc .
On the other hand such a self-modification program can also lead to errors even larger errors. By separating these two into two physical memory buses, the Harvard architecture has potentially higher performance, because data and program requests can be made in parallel. In a Harvard architecture, the physical separation of data and program access rights simply does a separation and memory protection.
Virtually all modern CPUs are of the Von Neumann architecture, i.e. provide a deterministic execution, but in many respects they are rather of Harvard architecture. So, it is not unusual that a CPU internally has several independent data paths (particularly L1 cache) and cache hierarchy levels, in order to achieve as many parallel data paths possible with a higher performance. The resulting risk of possible data inconsistencies and access can be prevented by consuming internal protocols and data management. The modification of Harvard architecture is widespread in ARM architecture and x86 processors.