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.