Computing & Digital Codexery

Computer architecture

Conceptual design defining how computer components interact.

Last updated

Computer architecture is the blueprint for a computer system, describing how its components are organized and interact to run programs efficiently. It typically focuses on the overall design rather than exact implementation details, covering the instruction set architecture, CPU microarchitecture, memory, and input/output systems. It also involves balancing tradeoffs among performance, cost, power, reliability, and security.

History

The earliest documented computer architecture appears in correspondence between Charles Babbage and Ada Lovelace about the analytical engine. In 1936, while building the Z1 computer, Konrad Zuse described in patent applications the idea that machine instructions could be stored in the same memory as data—the stored-program concept. Two other foundational examples are John von Neumann's 1945 paper on the EDVAC, which outlined an organization of logical elements, and Alan Turing's 1945 proposal for the Automatic Computing Engine, which cited von Neumann's work.

The term "architecture" in computing was introduced by Lyle R. Johnson and Frederick P. Brooks, Jr. in 1959 at IBM's main research center. Johnson, writing about the Stretch supercomputer, used "system architecture" to describe formats, instruction types, hardware parameters, and speed enhancements, finding it more useful than "machine organization." Brooks, a Stretch designer, later wrote that computer architecture is the art of determining user needs and designing to meet them within economic and technological constraints. Brooks helped develop the IBM System/360 line, where "architecture" became a noun defining what a user needs to know. The System/360 line was succeeded by compatible lines, including the current IBM Z line, though the term later came to be used in many less precise ways.

Early computer architectures were designed on paper and built directly into hardware. Later, prototypes were physically built as transistor–transistor logic (TTL) computers—such as for the 6800 and PA-RISC—tested, and tweaked before final hardware. Since the 1990s, new architectures are typically simulated inside another computer, implemented inside an FPGA as a soft microprocessor, or both, before being committed to hardware.

The discipline has three main subcategories. Instruction set architecture (ISA) defines the machine code a processor reads, including word size, memory address modes, registers, and data types. Microarchitecture, or computer organization, describes how a processor implements the ISA; for example, CPU cache size is generally unrelated to the ISA. Systems design covers all other hardware components, such as direct memory access, virtualization, and multiprocessing.

Instruction set architecture

Other technologies, estimated in 2002 to account for 1% of all computer architecture and used in larger companies like Intel, include: macroarchitecture (layers more abstract than microarchitecture); assembly instruction set architecture (a smart assembler converting an abstract assembly language into different machine languages for different implementations); programmer-visible macroarchitecture (higher-level language tools like compilers defining a consistent interface, abstracting differences between ISAs and microarchitectures, as with C, C++, or Java standards); microcode (software that translates instructions to run on a chip, presenting a preferred instruction set interface and giving designers flexibility—for instance, a new chip version can use microcode to present the same instruction set as an older version, or microcode can present multiple instruction sets for the same chip); and pin architecture (the hardware functions a microprocessor must provide to a hardware platform, such as x86 pins A20M, FERR/IGNNE, or FLUSH, as well as messages for invalidating external caches—these functions are more flexible than ISA functions because external hardware can adapt to new encodings).

Quick Facts

Field
Computer science and computer engineering
Subcategories
  • Instruction set architecture (ISA)
  • microarchitecture (computer organization)
  • systems design

Facts from the source article.

Lore & Background

The first documented computer architecture was in correspondence between Charles Babbage and Ada Lovelace describing the analytical engine. While building the Z1 in 1936, Konrad Zuse described in patent applications that machine instructions could be stored in the same storage used for data, the stored-program concept. Two other early examples are John von Neumann's 1945 paper 'First Draft of a Report on the EDVAC' and Alan Turing's 'Proposed Electronic Calculator for the Automatic Computing Engine', also 1945. The term 'architecture' in computer literature traces to Lyle R. Johnson and Frederick P. Brooks, Jr., members of IBM's Machine Organization department in 1959.

Johnson used 'system architecture' to describe the Stretch supercomputer. Earliest computer architectures were designed on paper and built directly into hardware. Later, prototypes were built as transistor–transistor logic (TTL) computers, tested, and tweaked before final hardware. As of the 1990s, new architectures are typically built, tested, and tweaked inside a computer architecture simulator or inside an FPGA as a soft microprocessor, or both, before committing to final hardware.

Reader's Guide

Computer architecture is significant as the foundational discipline that defines how hardware and software interact in computing systems. Its three main subcategories—instruction set architecture (ISA), microarchitecture, and systems design—provide a structured approach to balancing performance, efficiency, cost, and reliability. The ISA serves as the interface between software and hardware, defining machine code, word size, memory address modes, registers, and data types. Microarchitecture describes how a particular processor implements the ISA, including details like CPU cache size that are independent of the ISA.

Systems design encompasses all other hardware components, such as direct memory access, virtualization, and multiprocessing. The field has evolved from paper designs to TTL prototypes to modern simulation and FPGA-based development. Additional technologies such as macroarchitecture, assembly instruction set architecture, programmer-visible macroarchitecture, microcode, and pin architecture provide further layers of abstraction and flexibility, allowing chip designers to present consistent interfaces across hardware generations and to support multiple instruction sets on the same underlying chip.

Frequently Asked Questions

What exactly is computer architecture?

It is the blueprint-level design of a computer system, specifying how the CPU, memory, and I/O components are laid out and communicate so that programs execute efficiently. Think of it as the set of rules and structural choices that govern everything inside the machine.

What are the main subcategories of computer architecture?

The field splits into instruction set architecture (the programmer-facing vocabulary of operations), microarchitecture (how hardware physically implements those operations), and broader systems design (memory hierarchy, I/O paths, and interconnect decisions).

How is computer architecture different from computer organization?

Architecture describes the abstract, programmer-visible contract—what instructions exist and how addresses map to memory—while organization (microarchitecture) covers the concrete hardware realization, such as pipeline depth and cache layout. The distinction separates what software sees from how the silicon actually performs the work.

More in Computing & Digital

Sources

Compiled from Wikipedia and the sources listed below. Text from Wikipedia is available under CC BY-SA 4.0; this entry is adapted from it.

Spotted an error? Know more?

Reader corrections go straight into our review queue. Suggest an edit · How this site is sourced

Comments

Loading…
Open in the interactive codex →