CCS 1202 Lecture 3_VonNeuman Architecture
CCS 1202 Lecture 3_VonNeuman Architecture
VonNeuman Architecture
1
General System Architecture
• The General System Architecture is divided into two major
classification units.
• Stored Program Control Concept
• Flynn's Classification of Computers
Flynn's Classification of Computers
Stored Program Control Concept
• The term Stored Program Control Concept refers to the storage of
instructions in computer memory to enable it to perform a variety of tasks
in sequence.
• The idea was introduced in the late 1940s by John von Neumann who
proposed that a program be electronically stored in the binary-number
format in a memory device so that instructions could be modified by the
computer as determined by intermediate computational results.
• Parallel processing may occur in the instruction stream, in the data stream,
or both.
Flynn's Classification of Computers
The Von Neumann Architecture
The architecture is named after the mathematician,
John Von Neumann, who supposedly proposed storing
instructions in the memory of a computer and using a
control unit to handle the fetch-decode-execute cycle.
Processor
W
Memory Size / Speed
• Typical memory in a personal computer (PC):
• 64MB – 16 GB or more
• Memory sizes:
• Kilobyte (KB) = 210 = 1,024 bytes ~ 1 thousand
• Megabyte(MB) = 220 = 1,048,576 bytes ~ 1 million
• Gigabyte (GB) = 230 = 1,073,741,824 bytes ~ 1 billion
• Memory Access Time (read from/ write to memory)
• DRAM - 50 to 150 nanoseconds (billionths of a second)
• SRAM - 10 nanoseconds (1 nsec. = 0.000000001 sec.)
• RAM is
• volatile (can only store when power is on)
• relatively expensive
Operations on Memory
• Fetch (address):
• Fetch a copy of the content of memory cell with the specified address.
• Non-destructive, copies value in memory cell.
• Store (address, value):
• Store the specified value into the memory cell specified by address.
• Destructive, overwrites the previous value of the memory cell.
• The memory system is interfaced via:
• Memory Address Register (MAR)
• Memory Data Register (MDR)
• Fetch/Store signal
Structure of the Memory Subsystem
• Fetch(address)
• Load address into MAR.
MAR MDR
• Decode the address in MAR.
F/S
Memory
• Copy the content of memory cell with
Fetch/Store specified address into MDR.
decoder
controller
circuit • Store(address, value)
• Load the address into MAR.
• Load the value into MDR.
• Decode the address in MAR
... • Copy the content of MDR into memory
cell with the specified address.
Input/Output Subsystem
• Handles devices that allow the computer system to:
• Communicate and interact with the outside world
• Screen, keyboard, printer, ...
• Store information (mass-storage)
• Hard-drives, floppies, CD, tapes, …
• Consists of:
• Circuits to do the arithmetic/logic operations.
• Registers (fast storage units) to store intermediate computational
results.
• Bus that connects the two.
Structure of the ALU
• Registers:
• Very fast local memory cells, that R0
store operands of operations and R1
intermediate results.
R2
• CCR (condition code register), a
special purpose register that stores
the result of <, = , > operations
• ALU circuitry: Rn
• Contains an array of circuits to do
mathematical/logic operations.
• Bus: ALU circuitry
• Data path interconnecting the
registers to the ALU circuitry.
GT EQ LT
The Control Unit
• Program is stored in memory
• as machine language instructions, in binary
• Compare
• COMPARE X, Y
Compare the content of memory cell X to the content of memory cell Y
and set the condition codes (CCR) accordingly.
• E.g. If CON(X) = R then set EQ=1, GT=0, LT=0
Example
• Pseudo-code: Set A to B + C
• Assuming variable:
• A stored in memory cell 100, B stored in memory cell 150, C stored in
memory cell 151
• Machine language (really in binary)
• LOAD 150
• ADD 151
• STORE 100
• or
• (ADD 150, 151, 100)
Structure of the Control Unit
• PC (Program Counter):
• stores the address of next instruction to fetch
• IR (Instruction Register):
• stores the instruction fetched from memory
• Instruction Decoder:
• Decodes instruction and activates necessary circuitry
PC IR
+1
Instruction
Decoder
How does this all work together?
• Program Execution:
• Decode Phase
• IR -> Instruction decoder (decode instruction in IR)
• Instruction decoder will then generate the signals to activate the
circuitry to carry out the instruction
Program Execution (cont.)
• Execute Phase
• Differs from one instruction to the next.
• Example:
• LOAD X (load value in addr. X into register)
• IR_address -> MAR
• Fetch signal
• MDR --> R
Instruction Set for Our Von Neumann Machine
Opcode Operation Meaning
0000 LOAD X CON(X) --> R
0001 STORE X R --> CON(X)
0010 CLEAR X 0 --> CON(X)
0011 ADD X R + CON(X) --> R
0100 INCREMENT X CON(X) + 1 --> CON(X)
0101 SUBTRACT X R - CON(X) --> R
0101 DECREMENT X CON(X) - 1 --> CON(X)
COMPARE X If CON(X) > R then GT = 1 else 0
0111 If CON(X) = R then EQ = 1 else 0
If CON(X) < R then LT = 1 else 0
1000 JUMP X Get next instruction from memory location X
1001 JUMPGT X Get next instruction from memory loc. X if GT=1
... JUMPxx X xx = LT / EQ / NEQ
1101 IN X Input an integer value and store in X
1110 OUT X Output, in decimal notation, content of mem. loc. X
1111 HALT Stop(c)program execution
Yngvi Bjornsson
Data Bus
• Data lines that provide a path for moving data among system
modules
• May consist of 32, 64, 128, or more separate lines
• The number of lines is referred to as the width of the data bus
• The number of lines determines how many bits can be transferred at
a time
• The width of the data bus is a key factor in determining overall
system performance
Address Bus Control Bus
• Used to designate the source • Used to control the access and the
or destination of the data on use of the data and address lines
the data bus
• Because the data and address lines
• If the processor wishes to read a
word of data from memory it are shared by all components there
puts the address of the desired must be a means of controlling their
word on the address lines use
• Width determines the • Control signals transmit both
maximum possible memory command and timing information
capacity of the system among system modules
• Also used to address I/O ports • Timing signals indicate the validity of
• The higher order bits are used to data and address information
select a particular module on the
bus and the lower order bits • Command signals specify operations
select a memory location or I/O to be performed
port within the module
Computer Systems architectures
• The bottleneck in von-Neumann is the fetch-decode-execute cycle.
• It is difficult to speed up operations due to use of one processor.
Processors in a pipeline
Shared-Memory
Shared Memory