Digital Computing: Canonical Domain Analysis
Status: Canonical reference. Full 12-step analysis of digital computing as the substrate below the entity system. Position in the topology: The realization substrate for the entity system. Connected downward to physical hardware through realization edge, upward to entity system through bridge {Enc,Hsh,Prt,Prs,Sch,Net}.
Step 1 — Information Gathering
1.1 What we're analyzing
Digital computing — the domain of computational machinery that all software runs on. Not any specific computer or architecture, but the structural space of what digital computation IS. What every computer, from a microcontroller to a supercomputer to a phone, has in common.
1.2 Sources
- Computer architecture literature (Patterson & Hennessy, Hennessy & Patterson)
- Operating systems (Tanenbaum, Silberschatz)
- Networking (Kurose & Ross, Stevens)
- Historical: von Neumann architecture (1945), Turing machine (1936), stored program concept
- Real systems: x86, ARM, RISC-V, GPU, FPGA, microcontrollers, mainframes, cloud instances
1.3 The landscape
| System | Era | What it is |
|---|---|---|
| ENIAC (1945) | First | Electronic, not stored-program, programmed by rewiring |
| von Neumann machines (1950s+) | Foundation | Stored program, fetch-decode-execute cycle |
| Mainframes (1960s-70s) | Shared | Multi-user, time-sharing, batch processing |
| Minicomputers (1970s) | Distributed | Smaller, departmental, interactive |
| Microprocessors (1970s+) | Personal | CPU on a chip, personal computers |
| RISC (1980s+) | Simplified | Reduced instruction set, pipelining |
| GPUs (2000s+) | Parallel | Massively parallel, data-parallel computation |
| Cloud instances (2010s+) | Virtual | Abstracted hardware, elastic, API-provisioned |
| FPGAs | Reconfigurable | Hardware programmable at gate level |
| Microcontrollers | Embedded | Minimal, single-chip, resource-constrained |
| Quantum computers | Emerging | Qubits, superposition, entanglement |
Step 2 — Landscape Analysis
2.1 What recurs across ALL digital computing systems
Every digital computer, regardless of architecture:
- Stores binary data — bits in registers, memory, storage
- Executes instructions — fetch-decode-execute or equivalent processing cycle
- Has addressable memory — locations where data can be read and written
- Has a processing clock — timing mechanism that sequences operations
- Communicates with external devices — I/O of some form
- Manages concurrent operations — even single-core systems interleave via interrupts
2.2 What varies
- Word size (8-bit to 64-bit+)
- Memory architecture (von Neumann vs Harvard, flat vs segmented vs virtual)
- Instruction set (CISC vs RISC vs VLIW vs GPU vs custom)
- Parallelism (single core, multi-core, SIMD, GPU, distributed)
- I/O model (programmed I/O, DMA, memory-mapped, message passing)
- Persistence (volatile RAM vs non-volatile storage vs in-memory)
Step 3/3b — Primitives and Partial Levels
3.1 Six primitives
| # | Primitive | What it is |
|---|---|---|
| 1 | Word (Wd) | The atomic unit of data — a fixed-width binary value. Bits, bytes, words, registers. |
| 2 | Memory (Mm) | Addressable storage — locations where words are read and written. RAM, cache, registers, storage. |
| 3 | Instruction (In) | An executable operation — what the processor does in one step. Opcodes, operations. |
| 4 | Cycle (Cy) | The timing/sequencing mechanism — how operations are ordered in time. Clock, pipeline, scheduling. |
| 5 | Channel (Ch) | Communication pathway to external devices — I/O, network, bus, port. |
| 6 | Process (Pr) | An isolated execution context — a running program with its own state. Thread, task, VM. |
3.2 Stability under 3/3b iteration
Splitting candidates:
- Memory (Mm) into Volatile + Persistent? Registers/RAM vs disk/SSD. These have fundamentally different latency and persistence properties. BUT: from the computing perspective, both are addressable storage — the difference is partial levels (speed, volatility, capacity), not separate primitives. Modern memory hierarchies blur the boundary (NVM, persistent memory, swap). Keep as one primitive with rich partial levels.
- Channel (Ch) into Input + Output? Most I/O is bidirectional at the hardware level. And the concept is "communication pathway" which is one structural concern regardless of direction. Keep as one.
Collapsing candidates:
- Instruction + Cycle? Instructions need cycles to execute, but instructions describe WHAT to do while cycles describe WHEN/HOW FAST. Independently variable — you can change the clock speed without changing the instruction set, or change the ISA without changing the clock. Keep separate.
6 primitives stable.
3.3 Partial levels
Word (Wd):
| Level | Description | Instance |
|---|---|---|
| Wd0 | No data representation | Analog-only, no discretization |
| Wd1 | Single bit | Binary flip-flop, relay |
| Wd2 | Fixed-width byte | 8-bit byte — standard unit |
| Wd3 | Fixed-width word | 16/32/64-bit machine words — native processing unit |
| Wd4 | Typed word | Words carry type information — tagged architectures, capability machines |
| Full Wd | Self-describing word | Data carries its own encoding description — metadata in the word itself |
Phase transition: Wd2→Wd3 (Machine word). Below: operations on individual bytes. Above: native word operations (32/64-bit arithmetic, pointer-width addressing). Defines the machine's natural data width.
Memory (Mm):
| Level | Description | Instance |
|---|---|---|
| Mm0 | No addressable memory | Combinational logic only, no storage |
| Mm1 | Registers | Small number of fast, named storage locations |
| Mm2 | Linear memory | Flat address space — RAM, addressable by index |
| Mm3 | Hierarchical memory | Cache hierarchy — L1/L2/L3/RAM/disk with transparent caching |
| Mm4 | Virtual memory | Address space abstraction — paging, segmentation, memory-mapped I/O |
| Full Mm | Distributed memory | Memory spanning multiple machines — RDMA, distributed shared memory, persistent memory |
Phase transition: Mm2→Mm3 (Cache hierarchy). Below: all memory accesses equal cost. Above: memory has LOCALITY — access patterns matter, spatial/temporal locality rewarded. Fundamentally changes how programs perform.
Phase transition: Mm3→Mm4 (Virtual memory). Below: programs see physical addresses. Above: programs see VIRTUAL addresses — isolation, protection, overcommit. Enables multi-process systems.
Instruction (In):
| Level | Description | Instance |
|---|---|---|
| In0 | No programmable instructions | Hardwired logic — fixed function |
| In1 | Fixed instruction set | ROM-based microcode, simple state machine |
| In2 | Stored program | von Neumann — instructions in memory, modifiable |
| In3 | Rich ISA | Complex instructions — CISC, string ops, crypto instructions |
| In4 | Parallel instructions | SIMD, vector, GPU kernel launch — multiple data elements per instruction |
| Full In | Meta-instructions | JIT compilation, binary translation, self-modifying code — instructions that produce instructions |
Phase transition: In0→In2 (Stored program). THE foundational transition. Below: the computer does one fixed thing. Above: the computer can do ANYTHING — it's programmable. The stored program concept (von Neumann, 1945) is digital computing's genesis transition.
Cycle (Cy):
| Level | Description | Instance |
|---|---|---|
| Cy0 | No clock | Asynchronous, event-triggered only |
| Cy1 | Fixed clock | Single frequency, synchronous |
| Cy2 | Pipelined | Multiple instructions in-flight simultaneously |
| Cy3 | Superscalar | Multiple instructions issued per cycle |
| Cy4 | Out-of-order | Instructions reordered for efficiency — speculative execution |
| Full Cy | Dynamic scheduling | Runtime-adaptive execution — frequency scaling, power management, heterogeneous scheduling |
Phase transition: Cy1→Cy2 (Pipelining). Below: one instruction completes per clock cycle. Above: multiple instructions overlap — throughput increases without faster clock. The beginning of instruction-level parallelism.
Channel (Ch):
| Level | Description | Instance |
|---|---|---|
| Ch0 | No I/O | Isolated computation, no external communication |
| Ch1 | Programmed I/O | CPU directly reads/writes device registers |
| Ch2 | Interrupt-driven | Devices signal CPU, interrupt handler processes |
| Ch3 | DMA | Direct memory access — devices transfer data without CPU involvement |
| Ch4 | Network | Packet-based communication across machines — Ethernet, TCP/IP |
| Full Ch | Programmable network | Software-defined networking, RDMA, smart NICs — network as programmable resource |
Phase transition: Ch2→Ch3 (DMA). Below: CPU mediates ALL data transfer — bottleneck. Above: devices move data directly — CPU freed for computation. Enables high-throughput I/O.
Phase transition: Ch3→Ch4 (Network). Below: single-machine I/O. Above: multi-machine communication. The transition to distributed computing.
Process (Pr):
| Level | Description | Instance |
|---|---|---|
| Pr0 | No process isolation | Bare metal — single program runs directly on hardware |
| Pr1 | Batch processing | One program at a time, sequential execution |
| Pr2 | Multi-process | Multiple programs isolated by OS — time-sharing |
| Pr3 | Threads | Lightweight processes sharing address space — concurrent within a process |
| Pr4 | Virtual machines | Hardware-virtualized isolation — hypervisors, containers |
| Full Pr | Distributed processes | Processes spanning machines — orchestration, service mesh, serverless |
Phase transition: Pr1→Pr2 (Multi-process). Below: one program owns the machine. Above: multiple programs coexist safely. This enables multi-user systems and modern operating systems.
Phase transition: Pr3→Pr4 (Virtualization). Below: processes share one OS. Above: multiple OS instances on one machine. Enables cloud computing, elastic infrastructure.
Step 4 — Dependencies
Wd → (nothing; foundation — data must exist)
Mm → Wd (memory stores words)
In → Wd, Mm (instructions operate on words in memory)
Cy → In (cycles sequence instruction execution)
Ch → Wd, Mm (channels transfer words to/from memory)
Pr → In, Mm (processes are instruction sequences with memory state)
DAG:
Wd (hub)
├── Mm → In → Cy
│ ↑
│ Mm → Pr
│ ↑
└── Ch In
More precisely:
Wd (hub — no dependencies)
├── Mm (stores words)
│ ├── In (instructions operate on words in memory)
│ │ ├── Cy (cycles sequence instructions)
│ │ └── Pr (processes are instruction sequences — needs In + Mm)
│ └── Ch (channels transfer words to/from memory)
└── (Mm needs Wd; In needs Wd+Mm; Ch needs Wd+Mm; Pr needs In+Mm; Cy needs In)
Hub: Word (Wd). Everything operates on binary data.
Depth: Maximum chain: Wd → Mm → In → Cy (depth 3) or Wd → Mm → In → Pr (depth 3).
Step 5-6 — Pairs and Load Classification
C(6,2) = 15 pairs.
Heavy pairs
| # | Pair | Content | Why heavy |
|---|---|---|---|
| 1 | Wd-Mm | Words in memory | THE foundational pair — data stored at addresses |
| 2 | Mm-In | Instructions access memory | Instructions read/write memory — the stored program |
| 3 | In-Cy | Instruction execution timing | Fetch-decode-execute cycle — instructions sequenced by clock |
| 4 | Mm-Pr | Process memory | Each process has its own memory state — address space isolation |
| 5 | In-Pr | Process instructions | A process IS a sequence of instructions executing |
| 6 | Wd-Ch | Data I/O | Words transferred through channels — all I/O |
| 7 | Mm-Ch | Memory-mapped I/O, DMA | Channels transfer data directly to/from memory |
Medium pairs
| Pair | Why medium |
|---|---|
| Wd-In | Instructions are encoded as words — real but thin (the encoding, not the content) |
| In-Ch | Interrupt handling — instructions triggered by I/O events |
| Cy-Pr | Process scheduling — how cycles are allocated to processes |
| Ch-Pr | Process I/O — each process has its own I/O resources (file descriptors, sockets) |
Light pairs
| Pair | Why light |
|---|---|
| Wd-Cy | Word width doesn't directly interact with clock speed |
| Wd-Pr | Word width doesn't directly interact with process isolation |
| Cy-Ch | Clock and I/O timing are loosely coupled (DMA is asynchronous) |
| Mm-Cy | Memory timing (latency, bandwidth) relates to clock but isn't a structural pair |
7 heavy of 15 (47%). Moderate — appropriate for a well-structured computing substrate.
Step 7 — Coherent Sub-lattice
Dependencies
Wd is hub. Mm→Wd. In→Wd+Mm. Cy→In. Ch→Wd+Mm. Pr→In+Mm.
Valid subsets of {Mm, In, Cy, Ch, Pr} given Wd:
- In requires Mm
- Cy requires In (which requires Mm)
- Ch requires Mm
- Pr requires In+Mm (In requires Mm, so Pr requires Mm+In)
Enumerate:
| # | Subset | Valid? | Why |
|---|---|---|---|
| 1 | {} | ✓ | Wd only |
| 2 | {Mm} | ✓ | Memory stores words |
| 3 | {Ch} | Needs Mm → ✗ | |
| 4 | {Mm, Ch} | ✓ | Memory + I/O |
| 5 | {Mm, In} | ✓ | Stored program |
| 6 | {Mm, In, Cy} | ✓ | Clocked stored program |
| 7 | {Mm, In, Ch} | ✓ | Stored program with I/O |
| 8 | {Mm, In, Pr} | ✓ | Multi-process stored program |
| 9 | {Mm, In, Cy, Ch} | ✓ | Clocked stored program with I/O |
| 10 | {Mm, In, Cy, Pr} | ✓ | Clocked multi-process |
| 11 | {Mm, In, Ch, Pr} | ✓ | Multi-process with I/O |
| 12 | {Mm, In, Cy, Ch, Pr} | ✓ | Full |
| 13 | {Mm, Ch, Pr} | Pr needs In → ✗ | |
| 14 | {Mm, Cy} | Cy needs In → ✗ | |
| 15 | {Mm, Pr} | Pr needs In → ✗ | |
| 16 | {In} | Needs Mm → ✗ |
Valid: {}, {Mm}, {Mm,Ch}, {Mm,In}, {Mm,In,Cy}, {Mm,In,Ch}, {Mm,In,Pr}, {Mm,In,Cy,Ch}, {Mm,In,Cy,Pr}, {Mm,In,Ch,Pr}, {Mm,In,Cy,Ch,Pr} = 11.
Including {} and {Wd}: {} is 1, the 11 above each include Wd.
Total: 1 + 11 = 12 coherent subsets of 64.
Filter: 12/64 = 18.75%. Tight — the dependency chain Wd→Mm→In→{Cy,Pr} creates strong filtering. Comparable to entity system (14%) and biology (12.5%).
Step 8 — Hasse Walks (Build-up Paths)
Path α — The historical path (how computing actually developed)
{} → {Wd} → {Wd,Mm} → {Wd,Mm,In} → {Wd,Mm,In,Cy} → {Wd,Mm,In,Cy,Ch} → Full
Data → memory → stored program → clocked execution → I/O → processes.
This IS roughly the historical order: binary representation (1930s-40s) → memory (1940s) → stored program (von Neumann 1945) → clocked execution (practical computers) → I/O (peripherals) → multi-process (time-sharing 1960s).
Path β — I/O before clock
{} → {Wd} → {Wd,Mm} → {Wd,Mm,Ch} → {Wd,Mm,In,Ch} → {Wd,Mm,In,Cy,Ch} → Full
Memory with I/O before stored program — like a DMA controller or I/O processor that moves data before computation is programmable. Rare historically but exists in some embedded systems.
Path γ — Process before clock
{} → {Wd} → {Wd,Mm} → {Wd,Mm,In} → {Wd,Mm,In,Pr} → {Wd,Mm,In,Pr,Ch} → Full
Multi-process before pipelining — like early time-sharing systems where process isolation came before instruction-level parallelism. This WAS the actual path for mainframes (multi-process in 1960s, pipelining in 1970s-80s).
Phase transitions along paths
| Transition | What changes | Historical moment |
|---|---|---|
| +Mm (Mm2, linear) | Addressable storage | Core memory, RAM (1950s) |
| +In (In2, stored program) | GENESIS: programmable computer | von Neumann architecture (1945) |
| +Cy (Cy2, pipelined) | Instruction-level parallelism | Pipelined processors (1980s) |
| +Ch (Ch4, network) | Distributed computing | ARPANET/Ethernet (1970s-80s) |
| +Pr (Pr2, multi-process) | Multi-user, multi-tasking | Time-sharing (1960s) |
| +Pr (Pr4, virtual) | Cloud computing | VMware/Xen/KVM (2000s) |
In0→In2 (stored program) is the genesis transition — the moment computing becomes GENERAL-PURPOSE. Before: fixed-function machines. After: any computation expressible as a program.
Step 9 — Load-bearing Compositions
Core triad
{Wd, Mm, In} — Word, Memory, Instruction.
"What is a stored-program computer?" → Binary WORDS stored in MEMORY executed as INSTRUCTIONS. The von Neumann architecture in three primitives.
All three pairs heavy: Wd-Mm ✓, Mm-In ✓, Wd-In (medium — instructions encoded as words) — borderline.
This IS the minimal computer. Everything else (clock, I/O, processes) builds on this foundation.
Secondary triad
{Mm, In, Pr} — Memory, Instruction, Process.
"What is a multi-process computer?" → INSTRUCTIONS executing in MEMORY within isolated PROCESSES. The operating system core.
All three pairs heavy: Mm-In ✓, In-Pr ✓, Mm-Pr ✓.
Named compositions
| Composition | Name | What it captures |
|---|---|---|
| {Wd, Mm, In} | Stored program computer | The von Neumann core — programmable computation |
| {Mm, In, Pr} | Multi-process system | Isolated concurrent execution — OS foundation |
| {Mm, In, Cy} | Pipelined processor | High-throughput instruction execution — CPU core |
| {Mm, Ch, Pr} | Networked processes | Distributed system foundation (needs In implicitly) |
| {In, Cy, Pr} | Scheduled execution | Process scheduling — how CPU time is allocated |
Quad
{Wd, Mm, In, Pr} — The general-purpose multi-process computer. This is what every modern OS runs on — stored program with process isolation. Add Cy for performance, Ch for communication.
Higher / full set
{Wd, Mm, In, Cy, Ch, Pr} — Modern computer. The maximal substrate: general-purpose (stored program) + high-throughput (pipelined) + networked (channels) + virtualized (processes). Peaks at the most-complete manifestations (cloud instance, x86 server). Carried as an explicit higher composition for full-set coverage, consistent with the entity-system complete-substrate composition.
Step 10 — Emergent Properties
| Composition | Regime | Emergent Property |
|---|---|---|
| {Wd, Mm} | Mm2+ | Addressable storage — data can be stored and retrieved by location |
| {Wd, Mm, In} | In2+ | General-purpose computation — any computation expressible as a program. Turing completeness. |
| {In, Cy} | Cy2+ | Instruction-level parallelism — throughput beyond one instruction per cycle |
| {Mm, In, Pr} | Pr2+ | Multi-tasking — multiple programs coexist safely |
| {Mm, Ch} | Ch3+ | DMA-capable I/O — high-throughput data transfer without CPU bottleneck |
| {Ch, Pr} | Ch4+, Pr2+ | Networked computation — processes communicate across machines |
| {Mm, Pr} | Pr4+ | Virtualization — hardware abstracted, elastic allocation |
| Full set | All high | Modern computer — general-purpose, high-throughput, networked, virtualized |
Step 11 — Cross-Domain Patterns
Comparison to entity system substrate
| Property | Digital computing | Entity system |
|---|---|---|
| Primitives | 6 | 6 |
| Filter | 18.75% | 14% |
| Heavy pairs | 7/15 (47%) | 11/15 (73%) |
| Core triad | {Wd, Mm, In} | {E, I, T} |
| Hub | Wd (binary data) | E (typed data) |
| Genesis | In2 (stored program) | X2 (open dispatch) |
Both are substrates with tight filters and 6 primitives. The entity system is MORE integrated (73% heavy pairs vs 47%) because it was designed for all primitives to interact, while digital computing has more independent axes (clock and I/O are loosely coupled to other concerns).
How digital computing connects to entity system
The bridge primitives {Enc, Hsh, Prt, Prs, Sch, Net} translate between:
- Wd (binary words) ↔ E (typed entities) — via Encoding (Enc)
- Mm (memory addresses) ↔ I (content hashes) — via Hash (Hsh)
- Ch (network channels) ↔ P (peer connections) — via Network (Net)
- Pr (processes) ↔ X (handlers) — via Scheduler (Sch)
- Mm (persistent storage) ↔ T (tree state) — via Persistence (Prs)
- Ch (wire protocol) ↔ M (emit events) — via Protocol (Prt)
Step 12 — Manifestation Landscape
Positioned systems
| System | Wd | Mm | In | Cy | Ch | Pr |
|---|---|---|---|---|---|---|
| Arduino Uno | 2 (8-bit) | 2 (flat RAM, no cache) | 2 (AVR ISA) | 1 (fixed clock) | 2 (interrupt, SPI/I2C) | 0 (bare metal) |
| Raspberry Pi | 3 (32/64-bit ARM) | 4 (virtual memory) | 3 (ARM ISA) | 3 (superscalar) | 4 (Ethernet, USB) | 3 (Linux processes+threads) |
| x86 desktop | 3 (64-bit) | 4 (virtual, huge pages) | 3 (x86-64 CISC) | 4 (out-of-order, speculative) | 4 (PCIe, NVMe, Ethernet) | 3 (processes, threads) |
| NVIDIA GPU | 3 (32-bit float/int) | 3 (hierarchy: registers→shared→global) | 4 (SIMD/SIMT) | 3 (warp scheduler) | 3 (PCIe, NVLink) | 4 (thousands of threads, warps) |
| AWS Lambda | 3 (64-bit) | 4 (virtual, ephemeral) | 3 (x86/ARM) | 4 (transparent) | Full (API Gateway, VPC) | Full (containers, auto-scaling) |
| ENIAC (1945) | 1 (10-digit decimal) | 1 (accumulators, no stored program originally) | 0→1 (rewired, then stored-program conversion) | 1 (fixed 5kHz) | 1 (punch cards) | 0 |
| Quantum computer | 4 (qubits — superposition) | 1 (qubit registers, no RAM) | 2 (quantum gates) | 1 (pulse sequences) | 1 (classical interface) | 0 (single program) |
What the landscape reveals
The Pr axis differentiates eras: ENIAC at Pr0 (bare metal), mainframes at Pr2 (multi-process), cloud at Pr-Full (distributed/elastic). Process isolation IS the arc of computing history.
GPUs are Pr-heavy, Mm-moderate: Thousands of threads with hierarchical memory. This is the OPPOSITE of traditional CPUs (moderate Pr, heavy Mm with virtual memory). Different computational models occupy different lattice positions.
Quantum computers are early across everything — Wd4 (qubits are novel) but Mm1, In2, Cy1, Ch1, Pr0. Analogous to the earliest classical computers. The landscape correctly positions quantum as embryonic.
AWS Lambda is Full on Ch and Pr — the cloud abstracts everything below. This IS what "serverless" means structurally: Ch-Full (network as programmable resource) + Pr-Full (processes as elastic, distributed units). The underlying Wd/Mm/In/Cy are abstracted away.
Summary
| Property | Value |
|---|---|
| Domain name | Digital Computing |
| Primitives | 6: {Wd, Mm, In, Cy, Ch, Pr} |
| Hub | Word (Wd) — binary data |
| Core triad | {Wd, Mm, In} — the stored-program computer |
| Filter | 12/64 = 18.75% (tight) |
| Heavy pairs | 7/15 = 47% |
| Dependency depth | 3 |
| Genesis transition | In0→In2 (stored program — computing becomes general-purpose) |
| Key phase transitions | Mm3→Mm4 (virtual memory), Ch3→Ch4 (networking), Pr1→Pr2 (multi-process), Pr3→Pr4 (virtualization) |
| Three Hasse paths | α (historical: program→clock→I/O→process), β (I/O before clock), γ (process before clock) |
Referenced by the model
Cited as a source by 1 model record (browse the model census):
- digital-computing —
domainentity/sc1