Table of Contents

Processors, Chips and Systems

A CPU is an integrated circuit made of billions (some are even close to trillions!) of miniature transistors (plus other types of electronic components such as capacitors, resistors and inductors) closely packed into a substrate using Very Large Scale Integration (VLSI) technologies. Actually, this is the definition of an Integrated Circuit (IC), a class of devices where the processor belongs to! There are many other types of ICs such as amplifiers, voltage regulators, sensors, high power motor drivers etc.

So let's put it this way: the processor is an IC which receives some input (instructions and data) and emits some outputs according to a well known logical diagram, accomplishing logical & arithmetic calculations, instruction flow control, communication with peripherals using various electrical protocols etc.

An important consideration, though: a CPU cannot function alone! For starters, we need separate chips and circuits for memories, input / output peripherals and communication busses to connect them all. Plus, every electronic device also requires some carefully controlled power supplies (whose voltage deviations might permanently damage it), external oscillators to keep the clocks steady and several other components which cannot be integrated due to electrical / physical considerations (e.g., minimum distances and size constrains).

For these reasons, we rarely see CPUs alone in the wilderness. More often, they are integrated – either soldered or socketed – into Printed Circuit Boards (PCBs) which integrate all of those extra components. This makes a computing system.

Which brings us to the latest idea: the System-on-Chip (SoC), which goes all in on the miniaturization trend and tries to include as much of these pieces into a single sillicon package. This made devices such as smartphones possible!

Note that a PCB is still necessary to solder the SoC on (since it's pretty fragile on its own), mainly due to the fact that we need its small pins exposed as connectors to enable communication with the outside world! Hence, the Single Board Computer (SBC) category is often used for describing such computers (although the majority of boards make up the innards of various commercial electronic products).

CPU Architectures

There is one more concept we need to familiarize before beginning to discuss the specifics of a single CPU family: what is a CPU architecture?

Recall that the computer programs you write using a programming language (just ignore the interpreted ones) will usually get compiled to an assembly language, which will ultimately get translated into machine code. The machine code is made of specific binary instructions that the processor needs to understand in order to properly execute them. It is highly desirable (and enforced by market pressure) that already compiled programs continue to work the same on all newer models and variations of a CPU (there are some who even upgrade their components yearly!) – to which problem the engineers answered with a standardization effort resulting in a Instruction Set Architecture (ISA). Those are well documented and, very often, made freely available to all developers in the form of PDFs totalling to tens of thousands of pages (although they remain protected by copyright and patents).

Now, in order for the CPU producers to update their models and keep up with Moore's Law trend, they usually employ some ingenious tricks to optimize the inner workings of the chips while still retaining the ISA unchanged (or, at most, only backward and – obligatory – forward-compatible features may be added). As such, the internal architecture changes for every new release but, from a user / developer perspective, it can be regarded as a black box and is safe to ignore.

To summarize, the ISA is a contract that processor manufacturers must respect to the letter in order to ensure compatibility with already-written software. Each chip might have a different internal architecture (may even translate to use a different micro-instruction set), but the external interface must be well documented.

There are many different CPU architectures available (either now, or historically) on the market; some of the most popular ones: