Instruction Set Architecture (ISA) is the abstract model of a computer that defines the set of instructions a processor can execute, along with the data types, registers, addressing modes, and memory architecture it supports. The ISA forms the interface between hardware and software, allowing compilers and programmers to write code without knowing the underlying circuit details. Common ISA families include x86, ARM, RISC-V, and MIPS, each with distinct trade-offs between instruction complexity, power consumption, and performance.
| ISA | Type | Word Size | Primary Use | Example Processor |
|---|---|---|---|---|
| x86-64 | CISC | 64-bit | Desktop/Server | Intel Core i9 |
| ARM64 (AArch64) | RISC | 64-bit | Mobile/Embedded | Apple M4 |
| RISC-V | RISC | 32/64-bit | Open-source/IoT | SiFive U74 |
| MIPS32 | RISC | 32-bit | Networking/Education | Cavium Octeon |
| PowerPC | RISC | 32/64-bit | Aerospace/Console | IBM POWER10 |
Wikimedia Commons, CC BY-SA
Assembly language is a low-level programming language that uses human-readable mnemonics (such as MOV, ADD, JMP) to represent the machine-code instructions of a specific processor's instruction set architecture. Each assembly instruction corresponds directly to one or a few machine instructions, making assembly programs tightly coupled to the hardware they run on. Assembly is used in performance-critical code, device drivers, bootloaders, and situations where direct hardware manipulation is required.
A computer interrupt is a signal sent to the processor indicating that an event requiring immediate attention has occurred, causing the CPU to pause its current execution, save its state, and transfer control to an interrupt service routine (ISR). Interrupts can originate from hardware (e.g., a keypress, network packet arrival, timer expiry) or software (e.g., system calls, exceptions). The interrupt mechanism is fundamental to efficient multitasking and real-time responsiveness, as it allows the CPU to react to asynchronous events without continuously polling devices.
A Field-Programmable Gate Array (FPGA) is an integrated circuit containing an array of configurable logic blocks (CLBs), programmable interconnects, and I/O elements that can be reconfigured after manufacturing to implement virtually any digital circuit. Unlike fixed-function ASICs, FPGAs are reprogrammable using hardware description languages such as VHDL or Verilog, enabling rapid prototyping and field updates. FPGAs are widely used in signal processing, telecommunications, hardware acceleration, aerospace, and as prototyping platforms for ASIC designs.
From Latin "instructio" (to build, arrange) and "architectura" (building craft). The term was formalized in the 1960s by IBM engineers Gene Amdahl, Gerrit Blaauw, and Fred Brooks while designing the IBM System/360, the first major family of computers sharing a common ISA.