cmput101.ch5.1.ppt

48
The Von Neumann Architecture Chapter 5.1-5.2 Von Neumann Von Neumann Architecture Architecture

Transcript of cmput101.ch5.1.ppt

Page 1: cmput101.ch5.1.ppt

The Von Neumann Architecture

Chapter 5.1-5.2

Von NeumannVon NeumannArchitectureArchitecture

Page 2: cmput101.ch5.1.ppt

Designing Computers•All computers more or less based on the same

basic design, the Von Neumann Architecture!

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

2

Page 3: cmput101.ch5.1.ppt

The Von Neumann Architecture

• Model for designing and building computers, based on the following three characteristics:

1) The computer consists of four main sub-systems: Memory ALU (Arithmetic/Logic Unit) Control Unit Input/Output System (I/O)

2) Program is stored in memory during execution.

3) Program instructions are executed sequentially.

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

3

Page 4: cmput101.ch5.1.ppt

The Von Neumann Architecture

CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 4

Memory

Processor (CPU)

Input-OutputControl Unit

ALUStore data and programStore data and program

Execute programExecute program

Do arithmetic/logic operationsDo arithmetic/logic operationsrequested by programrequested by program

Communicate withCommunicate with"outside world", e.g. "outside world", e.g. • ScreenScreen• KeyboardKeyboard• Storage devices Storage devices • ......

Bus

Page 5: cmput101.ch5.1.ppt

Memory Subsystem• Memory, also called RAM (Random Access Memory), ▫Consists of many memory cells (storage units) of a

fixed size. Each cell has an address associated with it: 0, 1, …

▫All accesses to memory are to a specified address.A cell is the minimum unit of access (fetch/store a complete cell).

▫The time it takes to fetch/store a cell is the same for all cells.

•When the computer is running, both▫Program▫Data (variables)

are stored in the memory.

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

5

Page 6: cmput101.ch5.1.ppt

RAM• Need to distinguish

between ▫ the address of a memory cell

and the content of a memory cell

• Memory width (W):▫ How many bits is each

memory cell, typically one byte (=8 bits)

• Address width (N):▫ How many bits used to

represent each address, determines the maximum memory size = address space

▫ If address width is N-bits, then address space is 2N (0,1,...,2N-1)

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

6

...

00

11

22

22NN-1-1

1 bit1 bit

WW

00000000000000010000000000000001

NN

22NN

Page 7: cmput101.ch5.1.ppt

Memory Size / Speed

• Typical memory in a personal computer (PC):▫ 64MB – 2GB n above

• 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)▫ 50-75 nanoseconds (1 nsec. = 0.000000001 sec.)

• RAM is▫ volatile (can only store when power is on)▫ relatively expensive

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

7

Page 8: cmput101.ch5.1.ppt

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

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

8

Page 9: cmput101.ch5.1.ppt

Structure of the Memory Subsystem

•Fetch(address)▫Load address into MAR.▫Decode the address in MAR.▫Copy the content of memory

cell with specified address into MDR.

•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.

CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 9

MAR MDR

...

Memorydecodercircuit

Fetch/Storecontroller

F/S

Page 10: cmput101.ch5.1.ppt

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, …

•Mass-Storage Device Access Methods:▫Direct Access Storage Devices (DASDs)

Hard-drives, floppy-disks, CD-ROMs, ...▫Sequential Access Storage Devices (SASDs)

Tapes (for example, used as backup devices)

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

10

Page 11: cmput101.ch5.1.ppt

I/O Controllers

•Speed of I/O devices is slow compared to RAM▫RAM ~ 50 nsec.▫Hard-Drive ~ 10msec. = (10,000,000 nsec)

•Solution: ▫I/O Controller, a special purpose processor:

Has a small memory buffer, and a control logic to control I/O device (e.g. move disk arm).

Sends an interrupt signal to CPU when done read/write.

▫Data transferred between RAM and memory buffer.

▫Processor free to do something else while I/O controller reads/writes data from/to device into I/O buffer.

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

11

Page 12: cmput101.ch5.1.ppt

Structure of the I/O Subsystem

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

12

I/O controller

I/O Buffer

Control/Logic

I/O device

Data from/to memoryInterrupt signal (to processor)

Page 13: cmput101.ch5.1.ppt

The ALU Subsystem

•The ALU (Arithmetic/Logic Unit) performs▫mathematical operations (+, -, x, /, …)▫logic operations (=, <, >, and, or, not, ...)

•In today's computers integrated into the CPU

•Consists of:▫Circuits to do the arithmetic/logic

operations. ▫Registers (fast storage units) to store

intermediate computational results.▫Bus that connects the two.

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

13

Page 14: cmput101.ch5.1.ppt

Structure of the ALU• Registers:

▫ Very fast local memory cells, that store operands of operations and intermediate results.

▫ CCR (condition code register), a special purpose register that stores the result of <, = , > operations

• ALU circuitry:▫ Contains an array of circuits

to do mathematical/logic operations.

• Bus:▫ Data path interconnecting the

registers to the ALU circuitry.CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 14

ALU circuitry

GT EQ LT

R0R1R2

Rn

Page 15: cmput101.ch5.1.ppt

The Control Unit•Program is stored in memory ▫as machine language instructions, in binary

•The task of the control unit is to execute programs by repeatedly:▫Fetch from memory the next instruction to

be executed.▫Decode it, that is, determine what is to be

done.▫Execute it by issuing the appropriate signals

to the ALU, memory, and I/O subsystems.▫Continues until the HALT instruction

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

15

Page 16: cmput101.ch5.1.ppt

Machine Language Instructions

• A machine language instruction consists of:▫Operation code, telling which operation to perform▫Address field(s), telling the memory addresses of

the values on which the operation works.• Example: ADD X, Y (Add content of memory

locations X and Y, and store back in memory location Y).• Assume: opcode for ADD is 9, and addresses X=99,

Y=100

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

16

00001001 0000000001100011 0000000001100100Opcode (8 bits)Opcode (8 bits) Address 1 (16 bits)Address 1 (16 bits) Address 2 (16 bits)Address 2 (16 bits)

Page 17: cmput101.ch5.1.ppt

Instruction Set Design•Two different approaches:

▫Reduced Instruction Set Computers (RISC) Instruction set as small and simple as

possible. Minimizes amount of circuitry --> faster

computers▫Complex Instruction Set Computers

(CISC) More instructions, many very complex Each instruction can do more work, but

require more circuitry.

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

17

Page 18: cmput101.ch5.1.ppt

Typical Machine Instructions•Notation:▫We use X, Y, Z to denote RAM cells▫Assume only one register R (for simplicity)▫Use English-like descriptions (should be

binary)•Data Transfer Instructions

▫LOAD X Load content of memory location X to R

▫STORE X Load content of R to memory location X

▫MOVE X, Y Copy content of memory location X to loc. Y

(not absolutely necessary)

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

18

Page 19: cmput101.ch5.1.ppt

Machine Instructions (cont.) •Arithmetic

▫ADD X, Y, ZCON(Z) = CON(X) + CON(Y)▫ADD X, Y CON(Y) = CON(X) + CON(Y)▫ADD X R = CON(X) + R▫similar instructions for other operators, e.g.

SUBTR,OR, ...•Compare

▫COMPARE X, YCompare 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

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

19

Page 20: cmput101.ch5.1.ppt

Machine Instructions (cont.)•Branch

▫JUMP X Load next instruction from memory loc. X

▫JUMPGT XLoad next instruction from memory loc. X only if GT flag in CCR is set, otherwise load statement from next sequence loc. as usual. JUMPEQ, JUMPLT, JUMPGE,

JUMPLE,JUMPNEQ•Control

▫HALT Stop program execution.

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

20

Page 21: cmput101.ch5.1.ppt

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)

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

21

Page 22: cmput101.ch5.1.ppt

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

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

22

Instruction Decoder

IR

+1

PC

Page 23: cmput101.ch5.1.ppt

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

23

von Neumannvon Neumann

ArchitectureArchitecture

von Neumannvon Neumann

ArchitectureArchitecture

Page 24: cmput101.ch5.1.ppt

How does this all work together?•Program Execution:

▫PC is set to the address where the first program instruction is stored in memory.

▫Repeat until HALT instruction or fatal error Fetch instruction Decode instruction Execute instruction

End of loop

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

24

Page 25: cmput101.ch5.1.ppt

Program Execution (cont.)• Fetch phase

▫PC --> MAR (put address in PC into MAR)▫Fetch signal (signal memory to fetch value into

MDR)▫MDR --> IR(move value to Instruction Register)▫PC + 1 --> PC (Increase address in program

counter)• 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

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

25

Page 26: cmput101.ch5.1.ppt

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

▫ADD X left as an exercise

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

26

Page 27: cmput101.ch5.1.ppt

Instruction Set for Our Von Neumann Machine

CMPUT101 Introduction to Computing

(c) Yngvi Bjornsson

27

OpcodeOpcode OperationOperation MeaningMeaning0000 LOAD X CON(X) --> R0001 STORE X R --> CON(X)0010 CLEAR X 0 --> CON(X)0011 ADD X R + CON(X) --> R0100 INCREMENT X CON(X) + 1 --> CON(X)0101 SUBTRACT X R - CON(X) --> R0101 DECREMENT X CON(X) - 1 --> CON(X)

0111COMPARE X If CON(X) > R then GT = 1 else 0

If CON(X) = R then EQ = 1 else 0

If CON(X) < R then LT = 1 else 01000 JUMP X Get next instruction from memory location X1001 JUMPGT X Get next instruction from memory loc. X if GT=1... JUMPxx X xx = LT / EQ / NEQ1101 IN X Input an integer value and store in X1110 OUT X Output, in decimal notation, content of mem. loc. X1111 HALT Stop program execution

Page 28: cmput101.ch5.1.ppt

Digital Design & Computer Architecture

Dr. Robert D. Kent

Lecture 1Von Neuman Architecture

Page 29: cmput101.ch5.1.ppt

Review AgendaReview Agenda Von Neumann Architecture

◦ 5 component design of the stored program digital computer

◦ the instruction cycle Basic Exceptions

◦ instruction architecture software design hardware circuits

Digital Design◦ Boolean logic and gates◦ Basic Combinational Circuits ◦ Karnaugh maps◦ Advanced Combinational Circuits ◦ Sequential Circuits

Page 30: cmput101.ch5.1.ppt

von Neumann Architecturevon Neumann ArchitecturePrinciples

◦ Data and instructions are both stored in the main memory(stored program concept)

◦ The content of the memory is addressable by location (without regard to what is stored in that location)

◦ Instructions are executed sequentially unless the order is explicitly modified

◦ The basic architecture of the computer consists of:

Computer

Main Memory

CPU

Control

Data

Bus

Page 31: cmput101.ch5.1.ppt

von Neumann Architecturevon Neumann Architecture A more complete view of the computer system

architecture that integrates interaction (human or otherwise) consists of:

Computer

Main Memory

CPU

Control

DataInput

Device

Output Device

Secondary Storage Device

Computer System

Bus Bus

BusFive Main Components:1. CPU2. Main Memory (RAM)3. I/O Devices4. Mass Storage5. Interconnection network (Bus)

Page 32: cmput101.ch5.1.ppt

Another view of a digital Another view of a digital computercomputer

Page 33: cmput101.ch5.1.ppt

The Instruction CycleThe Instruction Cycle

The Instruction Cycle◦ Basic◦ Intermediate◦ Exceptions

Page 34: cmput101.ch5.1.ppt

The Instruction Cycle - Basic The Instruction Cycle - Basic ViewView

Once the computer has been started (bootstrapped) it continually executes instructions (until the computer is stopped)

Different instructions take different amounts of time to execute (typically)

All instructions and data are contained in main memory

Fetch Instruction

Start

Execute Instruction

Page 35: cmput101.ch5.1.ppt

The Instruction Cycle - Intermediate The Instruction Cycle - Intermediate ViewView

A complete instruction consists of ◦ operation code◦ addressing mode◦ zero or more operands

immediately available data (embedded within the instruction)

the address where the data can be found in main memory

Fetch Instruction

Start

Execute Instruction

Fetch Operand

Decode Instruction

Page 36: cmput101.ch5.1.ppt

The Instruction Cycle - The Instruction Cycle - ExceptionsExceptions

Exceptions, or errors, may occur at various points in the instruction cycle, for example:

Fetch Instruction

Start

Execute Instruction

Fetch Operand

Decode Instruction

Possible Exception?

Possible Exception?

Possible Exception?

Possible Exception?

Page 37: cmput101.ch5.1.ppt

The Instruction Cycle - The Instruction Cycle - ExceptionsExceptions

Exceptions, or errors, may occur at various points in the instruction cycle, for example:

◦ Addressing - the memory does not exist or is inaccessible

Fetch Instruction

Start

Execute Instruction

Fetch Operand

Decode Instruction

Page 38: cmput101.ch5.1.ppt

The Instruction Cycle - The Instruction Cycle - ExceptionsExceptions

Exceptions, or errors, may occur at various points in the instruction cycle, for example:

◦ Operation - the operation code does not denote a valid operation

Fetch Instruction

Start

Execute Instruction

Fetch Operand

Decode Instruction

Page 39: cmput101.ch5.1.ppt

The Instruction Cycle - The Instruction Cycle - ExceptionsExceptions

Exceptions, or errors, may occur at various points in the instruction cycle, for example:

◦ Execution - the instruction logic fails, typically due to the input data divide by zero integer addition/subtraction

overflow floating point

underflow/overflow

Fetch Instruction

Start

Execute Instruction

Fetch Operand

Decode Instruction

Page 40: cmput101.ch5.1.ppt

Instruction ArchitectureInstruction Architecture

Software design Hardware circuits

Page 41: cmput101.ch5.1.ppt

Instruction Architecture - Software Instruction Architecture - Software DesignDesign

Each computer CPU must be designed to accommodate and understand instructions according to specific formats.

Examples:◦ All instructions must have an operation code specified◦ NOP no operation◦ TSTST test and set

OpCode

Page 42: cmput101.ch5.1.ppt

Instruction Architecture - Software Instruction Architecture - Software DesignDesign

Each computer CPU must be designed to accommodate and understand instructions according to specific formats.

Examples:◦ Most instructions will require one, or more, operands◦ These may be (immediate) data to be used directly◦ or, addresses of memory locations where data will be found (including the address of yet another

location)

OpCode Operand (Address)

Page 43: cmput101.ch5.1.ppt

Instruction Architecture - Software Instruction Architecture - Software DesignDesign

Sometimes the instruction format requires a code, called the Mode, that specifies a particular addressing format to be distinguished from other possible formats◦ direct addressing

◦ indirect addressing

◦ indexed addressing

◦ relative addressing

◦ doubly indirect addressing

◦ etc.

OpCode Op. (Addr.)Op. (Addr.) ModeMode

Page 44: cmput101.ch5.1.ppt

Instruction Architecture - CPUInstruction Architecture - CPU The CPU must be designed to accommodate the

instructions and data to be processed

System Bus

System Bus

Control B

us

Data

Bus

Address B

us

I/O 1

CPU RAM

I/O 2

ALU

CU

Regs

PC

PSW

IR

InternalCPU Bus

I/O n

Page 45: cmput101.ch5.1.ppt

Instruction Architecture - Hardware Instruction Architecture - Hardware CircuitsCircuits

Everything that the computer can do is the result of designing and building devices to carry out each function – no magic!

At the most elementary level the devices are called logic gates.◦ There are many possible gate types, each perform a

specific Boolean operation (e.g. AND, OR, NOT, NAND, NOR, XOR, XNOR)

ALL circuits, hence all functions, are defined in terms of the basic gates.

We apply Boolean Algebra and Boolean Calculus in order to design circuits and then optimize our designs.

Page 46: cmput101.ch5.1.ppt

Instruction Architecture - Hardware Instruction Architecture - Hardware CircuitsCircuits

Data is represented by various types of “signals”, including electrical, magnetic, optical and so on. Data “moves” through the computer along wires that form the various bus networks (address, data, control) and which interconnect the gates.

Combinations of gates are called integrated circuits (IC).

All computer functions are defined and controlled by IC’s of varying complexity in design. The manufacture of these may be scaled according to size/complexity:◦ LSI large scale integration◦ VLSI very large scale integration◦ ULSI ultra large scale integration

Page 47: cmput101.ch5.1.ppt

Instruction Architecture - CUInstruction Architecture - CU

The control unit must decode instructions, set up for communication with RAM addresses and manage the data stored in register and accumulator storages.

Each such operation requires separate circuitry to perform the specialized tasks.

It is also necessary for computer experts to have knowledge of the various data representations to be used on the machine in order to design components that have the desired behaviours.

Page 48: cmput101.ch5.1.ppt

Instruction Architecture - ALUInstruction Architecture - ALU

All instructions together are called the instruction set◦ CISC complex instruction set◦ RISC reduced instruction set

Each ALU instruction requires a separate circuit, although some instructions may incorporate the circuit logic of other instructions