The Von Neumann Computer Architecure
The Von Neumann Computer Architecure
Von Neumann computer systems The following block diagram shows major
contain three main building relationship between CPU components:
blocks:
o the central processing unit
(CPU),
o memory,
o and input/output devices
(I/O).
These three components are
connected together using
the system bus.
The most prominent items within
the CPU are the registers: they
can be manipulated directly by a
computer program.
4. CPU data-path
Hardware units like ALU's, registers, memory, etc., are linked together into a data-
path.
The flow of bits around the data-path is controlled by the "gates" which allow the bits
to flow (on) or not flow (off) through the data-path.
The binary instructions (1 = on; 0 = off) that control the flow are called micro-
instructions.
Memory Operations:
6. Understanding the MAR and the MDR
The size of input quantities of ALU is often referred to as word length of the computer.
Many processors today have word length of 32 and 64 bit.
Processing unit also includes a set of registers for temporary storage of data and memory
addressing.
8. ALU and the Word Length
The size of quantities processed by ALU is the word length of the computer.
The word length does not affect what a computer can compute.
A computer with a smaller word length can do the same computation as one with a larger
word length...
o ...but it will take more time.
For example, to add two 64 bit numbers,
word length = 16 takes 4 adds.
word length = 32 takes 2 adds.
word length = 64 takes 1 add.
9. Control Unit
Processor and I/O interface points for exchanging data are called I/O ports.
Two ways of mapping I/O ports:
1. Memory-mapped I/O:
I/O ports are mapped to the memory address space.
Reading/writing I/O is similar to reading/writing memory.
Can use memory read/write instructions.
Motorola 68000 uses memory-mapped I/O.
2. Isolated I/O:
Separate I/O address space.
Intel 80x86 processors support isolated I/O.
Requires special I/O instructions, like IN and OUT on x86.
Central idea of von Neumann model is that both program and data stored in computer
memory:
o Program is a sequence of instructions
o Instruction is a binary encoding of operations and operands:
o For example, an arithmetic expression
-a + b * c
where NEG, IMUL, ADD are arithemtic instructions, AX, BX, and CX are
operands.
The x86 Intel CPU family is generally classified as a Von Neumann Architecture Machine.
Most pervasive ISA in the marketplace.
Opcodes have zero or more operands.
Instructions and operands have strong support for data types.
All x86 Assemblers are free, including Microsoft Macro Assembler, MASM.
Fullscreen 32-bit debuggers WinDbg, OllyDbg, and MS Visual Studio.
Instruction set architecture (ISA) is an important design issue for CPU designers:
o caches, pipelining, superscalar implementation can be added to the design later, but
o it is very difficult to change the CPU instructions once in production and people
writing software...
...LOOP instruction on the x86 CPU sees very little use in modern high-
performance programs.
Challenges:
o Expandability is a big concern (predicting future needs.)
o Legacy support is almost the opposite of expandability.
Each instruction requires some number of transistors on the CPU's silicon die.
Instruction formats:
19. History of IBM PC
Design a simple instruction set to begin with and leave room for later expansion -
o main reason the x86 is so popular and long-lived.
Intel started with a relatively simple CPU and figured out how to extend the instruction set
to accommodate new features.
IBM decided that open documentation is a good thing.
IBM published the IBM PC Technical Reference Manual, with everything the engineers
knew about the machine, which was another reason for the success of the IBM PC
platform.
See also: 25 Years of the IBM PC and CNN article Meet the inventor of Ctrl-Alt-Delete
Year 1979
The 8088, 8086, and 80286 are 16-bit CPUs.
Internal registers are 16 bits in size.
The 8086 is faster than the 8088 because of its 16-bit data bus; the 8088 has
only an 8-bit data bus.
The 16-bit data bus allows you to use EVEN and ALIGN on an 8086 processor
to word-align data and thus improve data-handling efficiency.
Memory addresses on the 8086 and 8088 refer to actual physical addresses.
The 8086 and 8088 have 20 address pins, and 1 megabyte of addressable
memory (which is the real mode segmented memory explained later) requires
addresses of 20 bits in size.
See also: Brief History of Microprocessors
Year 1982.
Introduced protected mode addressing.
Enhanced with memory protection capabilities with some instructions to control protected
mode.
Runs faster.
24-bit address bus.
16 MB address space.
Segmentation in protected mode is different from the real mode.
Allows the operating system to run multiple processes at the same time.
The 80286 was the minimum for running Windows 3.1 and higher.
Backwards compatible.
Year 1985.
The 80386 and many of its successors are 32-bit CPUs.
Internal registers are 32 bits in size.
Unlike its predecessors, the 80386 processor can handle both 16-bit and 32-bit data.
Supports entire instruction set of 80286.
Adds several new instructions as well.
Software written for the 80286 runs unchanged on the 80386, but the chip is faster.
The 80386 implements many new hardware-level features, including
o paged memory.
o segmentation can be turned off (flat model).
o support for multiple virtual 8086 processes.
o addressing of up to 4 gigabytes of memory.
o specialized debugging registers.
Year 1989.
The 80486 processor is an enhanced version of the 80386 with
o instruction pipelining allows parallel execution capability to instruction decode and
execution units.
o executes many instructions 2-3 times faster.
o achieves scalar execution of 1 instruction per clock cycle.
The chip incorporates
o math coprocessor for performing floating-point arithmetic
o 8 Kilobyte memory cache.
(The math coprocessor was disabled on a variation of the chip called the 80486SX.)
New instructions.
Fully compatible with 80386 software.
Later versions introduced energy savings for laptops.
See also: Intel 486 Manuals
Introduced in 1995.
Three-way superscalar performance, 3 instructions per clock cycle.
36-bit address bus.
64 GB address space.
Introduced dynamic execution:
o Out-of-order execution.
o Speculative execution.
In addition to the level-1 cache, has 256 KB level-2 cache.
29. Pentium II
Introduced in 1997.
Added multimedia (MMX) instructions.
Doubled on-chip level-1 cache:
o 16 KB for data
o 16 KB for instructions.
Introduced comprehensive power management features:
o Sleep
o Deep sleep.
In addition to the level-1 cache has 256 KB level-2 cache.
RISC design
o (All previous x86 designs were CISC.)
64-bit processor
Uses 64-bit address bus
128-bit data bus
Introduced several advanced features:
o Speculative execution
o Predication to eliminate branches
o Branch prediction