An instruction set, or an instruction set architecture, is the collective set of commands that a computer processor can execute. Everything that a computer does, from running a word processing application to encoding video files, is reducible to some combination of these commands. Programmers don’t directly create programs through these instructions but use a special type of software known as a compiler that translates programming code into machine instructions. Most personal computers use an instruction set that was first used in the 1970s, while smartphones, tablets, and other devices use simpler instruction sets optimized for low-power environments.
Computers may seem capable of limitless tasks, but the microprocessors inside them are only capable of executing a limited number of pre-defined commands, known as instructions. On its own, each instruction is relatively simple, perhaps telling the processor to add two numbers or to move a piece of data from one location to another. When combined, these basic instructions become quite powerful, and are used as the basis for all types of software. The performance and compatibility of a CPU is directly related to the number and type of instructions the CPU supports, making the instruction set a critical element in the commercial success or failure of any new design.
A CPU can only perform functions that are part of its instruction set, but very few computer programmers embed these commands in their software. Instead, an intermediate step known as compiling is used. In this process, a program known as a compiler translates human-friendly code used by programmers into a “machine code” that the processor understands. Since different computer processors support different instruction sets, a compiler must be designed for the type of processor the program is intended to run on. With modern microprocessors capable of executing as many as hundreds of millions or even billions of instructions in a single second, compilers have become the only practical means of creating software for computers.
The microprocessors used in nearly all personal computers sold since the 1980s use an instruction set called x86, which was originally designed for an Intel® processor that debuted in the mid 1970s. The desire for backward compatibility has helped keep x86 dominant in the PC market, though new instructions are occasionally added through extensions. Many smartphones, tablets, and other types of consumer electronics use microprocessors based on the ARM instruction set, which is simpler and more power efficient than x86. High end servers, super computers, and other specialized devices like game consoles may use different instruction sets.