The Compuer Level Hierarchy
- Divide and Conquer
- Look at the system as a series of layers
- User Level, executable programs, ...
- High Level Language, C++, Java, COBOL
- Assembly Language, Intel, Sparc, gnu
- System Software, OS, libraries
- Machine Language, X86, Sparc, HP-PA (ISA)
- Control, microcode or hardwired
- Digital Logic, gates and circuits.
The Von Neumann Model
- On early machines, programming was equivelent to moving wires
- Turn the machine on, wire your program, run your program, turn the machine off
- Mauchly and Eckert decided to use the concept of a stored program
- Put the program in memory with the data
- But they couldn't write a paper on this (Secret government research project)
- So John Von Neumann did
- Stored program or Von Neumann Architecture
- CPU, ALU, Registers, Memory, I/O system
- Ability to carry out sequential instruction processing
- A single path from main memory to the CPU, alternating fetches between the data and instruction.
-
- And employs the fetch execute cycle
- Fetch the instruction at the address stored in the program counter
into the instruction register
- Increment the PC
- Decode the instruction
- Fetch the operands based on the instruction
- Execute the instruction
- Possibly place results of instruction in memory
- An extension is the bus model
- This model has a built in bottleneck getting information from memory to the CPU
Non-Von Neumann Models
- Multiple approaches
- Parallel computing (multiple cpus, multiple memories, ...)
- MIMD, SIMD, ...
- Amdahl's Law - each program has a sequential part and a parallel part and the sequential part will limit the speedup