von Neumann architecture and its rivals
A: The basic components of a computer include a Central Processing Unit (CPU), Primary
Storage or Random Access Memory (RAM), Secondary Storage, Input/Output devices
(e.g., screen, keyboard, mouse), and an interconnection referred to as the Bus.
and this is von Neumann architecture.
Q: Correct. What you've listed constitutes the basic components of the von Neumann architecture, a foundational model for modern general-purpose computers.
Here’s a more rigorous breakdown of the von Neumann architecture and its core components:
1. Central Processing Unit (CPU)
The CPU is the “brain” of the computer. It performs computation and control.
-
Arithmetic Logic Unit (ALU): Executes arithmetic and logical operations.
-
Control Unit (CU): Directs the operation of the processor. It fetches instructions from memory, decodes them, and coordinates execution.
-
Registers: Small, fast storage locations within the CPU used to hold intermediate data and instructions.
2. Primary Storage (RAM)
-
Volatile memory that temporarily holds data and instructions currently in use.
-
Directly accessible by the CPU.
-
Stores both the program and data, which is a hallmark of the von Neumann model (known as the stored-program concept).
3. Secondary Storage
-
Non-volatile memory used for persistent storage (e.g., SSDs, HDDs).
-
Holds operating systems, applications, and user data.
-
Slower than RAM and CPU registers.
4. Input/Output Devices (I/O)
-
Interface between the user and the system.
-
Examples:
-
Input: Keyboard, mouse, microphone.
-
Output: Monitor, printer, speakers.
-
-
Handled via device drivers and system calls, often mediated by Direct Memory Access (DMA) or interrupts.
5. System Bus (Interconnect)
-
A set of physical connections (wires, traces) that transport data, addresses, and control signals.
-
Typically subdivided into:
-
Data Bus: Transfers actual data.
-
Address Bus: Specifies memory addresses.
-
Control Bus: Carries control signals (read/write, clock, interrupt).
-
Von Neumann Bottleneck
One of the primary criticisms of the architecture:
-
Single bus for instructions and data leads to throughput limitations.
-
CPU and memory must wait for each other—limits parallelism.
Contrast with Harvard Architecture
-
Separate storage and buses for instructions and data.
-
Common in embedded systems and DSPs (Digital Signal Processors).
Summary
The von Neumann architecture is conceptually elegant but has practical limitations due to the shared bus and unified memory. Still, it remains the theoretical basis for most modern general-purpose computing systems.
Let me know if you want an annotated diagram or a comparison with other architectures (like Harvard or Modified Harvard).
Q: any other architectures? are there any books that deal with this topic?
A: Yes, there are multiple computer architectures beyond the von Neumann model, each developed to address specific limitations or application needs. Below is a categorization of major architectures along with recommended books that cover them in depth.
🧠 Major Computer Architectures
1. Von Neumann Architecture
-
Concept: Shared memory for data and instructions.
-
Problem: Von Neumann bottleneck (shared bus).
2. Harvard Architecture
-
Concept: Separate memories and buses for instructions and data.
-
Use Case: Embedded systems, microcontrollers.
-
Advantage: Higher throughput due to parallelism.
3. Modified Harvard Architecture
-
Hybrid: Uses separate caches or buses but a unified memory at the system level.
-
Common in: Modern CPUs, DSPs.
4. Dataflow Architecture
-
Idea: Program execution driven by availability of data (data tokens).
-
No Program Counter.
-
Advantage: Inherent parallelism.
-
Drawback: Complexity in hardware and control flow.
5. RISC (Reduced Instruction Set Computer)
-
Philosophy: Fewer, simpler instructions that execute in a single clock cycle.
-
Examples: ARM, RISC-V, MIPS.
-
Advantage: Pipeline-friendly, efficient.
6. CISC (Complex Instruction Set Computer)
-
Philosophy: Rich, complex instructions—closer to high-level language.
-
Examples: x86, VAX.
-
Advantage: Fewer instructions for complex tasks.
-
Drawback: Complex decoding, slower pipeline.
7. VLIW (Very Long Instruction Word)
-
Idea: Packs multiple operations into a single long instruction word.
-
Parallel execution without out-of-order hardware.
-
Used in: Intel Itanium, DSPs.
8. SIMD / MIMD / Flynn’s Taxonomy
-
SIMD: Single Instruction, Multiple Data (e.g., GPU, SSE/AVX).
-
MIMD: Multiple Instruction, Multiple Data (e.g., multi-core CPUs).
-
Flynn’s taxonomy: Classifies architectures into SISD, SIMD, MISD, MIMD.
9. Quantum Architecture
-
Qubits, entanglement, superposition.
-
Still theoretical and hardware-dependent.
10. Neuromorphic Computing
-
Emulates biological neural structures.
-
Example: IBM TrueNorth, Intel Loihi.
📚 Books on Computer Architecture
These are some of the most respected and comprehensive texts:
🔹 Computer Organization and Design – David Patterson & John L. Hennessy
-
Focus on RISC-V (newer editions).
-
Beginner-to-intermediate.
-
Lab-friendly, accessible style.
🔹 Computer Architecture: A Quantitative Approach – Hennessy & Patterson
-
The canonical advanced text.
-
Covers performance metrics, parallelism, power, multicore, etc.
-
Uses real-world processors (ARM, x86, MIPS, etc.).
🔹 Structured Computer Organization – Andrew S. Tanenbaum
-
Systematic build-up from logic gates to architecture.
-
Good for conceptual understanding.
-
Less mathematical, more didactic.
🔹 Digital Design and Computer Architecture – David Money Harris & Sarah Harris
-
Practical and hands-on.
-
Includes Verilog and FPGA perspectives.
🔹 Computer Systems: A Programmer’s Perspective – Randal Bryant & David O’Hallaron
-
Focused on how low-level architecture influences software.
-
Bridges systems programming and architecture.
🔹 Computer Architecture and Implementation – Harold Stone
-
Old but rigorous.
-
Details alternate architectures like stack machines, dataflow, etc.
🔹 The Architecture of Computer Hardware, Systems Software, and Networking – Irv Englander
-
Broad overview of hardware and system layers.
-
Touches on architectures, operating systems, and networks.
🧭 Recommendation for Your Case
Since you're interested in x86-64, RISC-V, FreeBSD, and low-level fluency, I recommend the following progression:
-
Start with:
-
Computer Organization and Design (RISC-V) – to get the RISC clarity.
-
Bryant & O’Hallaron – for OS/hardware interplay.
-
-
Then tackle:
-
Computer Architecture: A Quantitative Approach – for high-performance and modern CPU designs.
-
ISA manuals: Intel x86-64 manuals, RISC-V specs.
-
-
For deeper understanding:
-
Read real CPU datasheets (e.g., AMD64, ARM Cortex-A).
-
Study OpenRISC or RISC-V implementations.
-
Would you like a reading plan that ties these to FreeBSD internals or C-to-assembly exploration?

浙公网安备 33010602011771号