Fundamentals Design

Computing classes

Different computing environments impose different design constraints:

  • Personal computers emphasize good single-user performance at low cost.
  • Servers prioritize throughput, scalability, and dependability.
  • Personal mobile devices prioritize energy efficiency, responsiveness, and packaging limits.
  • Warehouse-scale computers aggregate large numbers of servers and optimize for service-level performance, energy, and operational cost.

Architecture levels

Computer architecture can be separated into three levels:

  • instruction set architecture: the programmer-visible interface
  • organization or microarchitecture: the high-level arrangement of datapaths, control, memory, and interconnect
  • hardware: the detailed logic and packaging technology that implements the organization

Software and hardware interface

Software reaches hardware through a translation stack:

  • the operating system manages hardware resources, memory, I/O, and protection
  • the compiler translates high-level programs into assembly
  • the assembler translates assembly into machine code
  • machine language is the bit-level instruction form the hardware executes directly

The instruction set architecture is the main boundary between hardware and software. It defines the programmer-visible machine, including registers, instructions, memory access, and I/O behavior.

The application binary interface combines ISA-level rules with operating-system conventions.

Computer organization

All computers are built from a small set of major components:

  • input
  • output
  • memory
  • datapath
  • control

Within the CPU:

  • the datapath performs arithmetic and data movement
  • the control unit interprets instructions and coordinates the datapath, memory, and I/O

The memory system is also a design hierarchy:

  • main memory, typically DRAM, holds active programs and data
  • cache, typically SRAM, sits between the CPU and main memory to reduce average access time
  • secondary storage retains data persistently

Parallelism classes

Parallelism appears at both the application and hardware levels.

  • Data-level parallelism applies the same operation to many data items at once.
  • Task-level parallelism runs independent tasks concurrently.

Flynn’s taxonomy classifies hardware organizations:

  • SISD: single instruction, single data
  • SIMD: single instruction, multiple data
  • MISD: multiple instruction, single data
  • MIMD: multiple instruction, multiple data

Core design principles

Fundamentals design focuses on how systems are structured and exposed:

  • abstraction to control complexity
  • exploiting parallelism
  • exploiting pipelining
  • using a memory hierarchy
  • using redundancy for dependability

These principles describe structural organization choices rather than how those choices are measured.

Implementation technology

Processors and memories are implemented as integrated circuits built from large numbers of transistors on silicon dies.

  • silicon ingots are sliced into wafers
  • wafers are chemically processed and tested for defects
  • wafers are diced into dies

Technology limits and manufacturing constraints shape what designs are feasible.