← All posts

ARM vs X86

tech

Instruction Set Architecture

To simplify the life of programmers, the CPU has a set of predefined actions and calculations called the instruction set or ISA (instruction set architecture).

The X86 CPUs have a very rich instruction set. A single instruction can complete an entire calculation (like multiplication) or move a chunk of data directly from one place in memory to another and they require a lot of instructions at this low level. With x86 computers, this complex series of operations can be executed with a single cycle. Processing units with this type of instruction set are called complex instruction set computers (CISC). However, the powerful instructions in a CISC computer mean that it needs more transistors, which eat up space and power.

Researchers discovered that in real life, most computers used only a small subset of the huge set of instructions provided in a CISC computer. This ultimately led to the design of reduced instruction set computer (RISC) processors. RISC processors have an instruction set where each instruction represents only a simple operation using lower power. This makes the assembly language programmer’s job more complex, but simplifies the processor’s job. With RISC processors and advanced RISC machines, complex operations are performed either by running multiple instructions or by pushing the complexity over to the compiler rather than the CPU core.

Register and Direct Memory Access

RISC is register-centric, whereas CISC emphasizes memory access. CISC contains instructions for accessing memory directly, such as the MOV opcode. RISC doesn’t allow direct memory access

Different Emphasis

X86 CPUs tend to have very fast computing power and allow for more clarity or simplicity in the programming and number of instructions, but it comes at the expense of a larger, more expensive chip with a lot of transistors. ARM processors can be very fast for certain types of operations, but repeated cycles for individual instructions can slow it down as operations are more complex and more of the effort for defining and executing operations is pushed to the programming (and programmer) rather than the instruction set.

Since ARM processors are integrated as a SoC, the emphasis has long been on overall resource management, including low energy consumption and lower heat production. While both CPU designs can still have high performance (both ARM- and x86-architecture supercomputers compete for the fastest in the world), ARM designs tend to focus on smaller form factors, battery life, size, eliminating cooling requirements, and—perhaps most importantly—cost.