Dale & Lewis Chapter 5 Computing components. Let’s design a computer Generic CPU with...

Preview:

Citation preview

Dale & Lewis Chapter 5Computing components

Let’s design a computer• Generic CPU with registers

− Program counter (PC) – 5 bits (size of addresses)− Instruction register (IR) – 8 bits (op code + address)− Memory Address Register (MAR) – 5 bits Main Memory− Memory Data Register (MDR) – 8 bits (byte addressable)− Accumulator (A or Acc) – 8 bits

Instructions

• Instruction format: 3-bit op code, 5-bit address• Instructions and their op codes

op code Instruction

000 HALT (HLT)

001 LOAD (LDA)

010 STORE (STA)

011 ADD (ADD)

100 SUBTRACT (SUB)

101 BRANCH (BR)

110 BRANCH ON ZERO (BRZ)

111 BRANCH ON POSITIVE (BRP)

Types of instructions

• Data movement− Move data between memory and CPU− Move data between different memory locations− Input, output

• Arithmetic and logic operations− Integer arithmetic− Comparing two quantities− Shifting or rotating bits in a quantity− Testing, comparing and converting bits

• Program control− Starting a program− Halting a program− Skipping to another location− Testing data to decide whether to skip to another instruction

Instructions• LOAD instruction (LDA)

− PC MAR− MDR IR− IR [address] MAR− MDR A− PC + 1 PC

• ADD instruction (ADD)− PC MAR− MDR IR− IR [address] MAR− A + MDR A− PC + 1 PC

• STORE instruction (STA)− PC MAR− MDR IR− A MDR− IR [address] MAR− PC + 1 PC

• HALT instruction (HLT)− PC MAR− MDR IR− stop

FETCH – DECODE – GET DATA – EXECUTE

FETCH

• Address of next instruction is transferred from PC to MAR and the instruction is located in the memory

FETCH

• Instruction is copied from memory to the MDR

DECODE

• Decode the instruction

EXECUTE

• Execute the instruction – control unit sends signals to appropriate devices to carry out execution of the instruction

A small computer program

LOAD A 00100 00101000

ADD B 00101 01101001

STORE C 00110 01001010

HLT 00111 00000000

A DATA +5 01000 00000101

B DATA -3 01001 11111101

C DATA 01010

Program

Assembly language

Main memory

Address Contents

op code

Data

00000

00001

00010

00011

00100 00101000

00101 01101001

00110 01001010

00111 00000000

01000 00000101

01001 11111101

01010

01011

01100

01101

etc…

Address Contents

PC

IR

Acc

MAR

MDR

CPU

00000

00001

00010

00011

00100 00101000

00101 01101001

00110 01001010

00111 00000000

01000 00000101

01001 11111101

01010

01011

01100

01101

etc…

Address Contents

00100

PC

IR

Acc

MAR

MDR

CPU

The program starts

00000

00001

00010

00011

00100 00101000

00101 01101001

00110 01001010

00111 00000000

01000 00000101

01001 11111101

01010

01011

01100

01101

etc…

Address Contents

00100

00100

00101000

PC

IR

Acc

MAR

MDR

CPU

Fetch 1st instruction

00000

00001

00010

00011

00100 00101000

00101 01101001

00110 01001010

00111 00000000

01000 00000101

01001 11111101

01010

01011

01100

01101

etc…

Address Contents

00100

00101000 00100

00101000

PC

IR

Acc

MAR

MDR

CPU

Decode 1st instruction: LOAD A

00000

00001

00010

00011

00100 00101000

00101 01101001

00110 01001010

00111 00000000

01000 00000101

01001 11111101

01010

01011

01100

01101

etc…

Address Contents

00100

00101000

00000101

01000

00000101

PC

IR

Acc

MAR

MDR

CPU

Execute1st instruction: LOAD A

00000

00001

00010

00011

00100 00101000

00101 01101001

00110 01001010

00111 00000000

01000 00000101

01001 11111101

01010

01011

01100

01101

etc…

Address Contents

00101

00101000

00000101

01000

00000101

PC

IR

Acc

MAR

MDR

CPU

Advance PC

00000

00001

00010

00011

00100 00101000

00101 01101001

00110 01001010

00111 00000000

01000 00000101

01001 11111101

01010

01011

01100

01101

etc…

Address Contents

00101

00101000

00000101

00101

01101001

PC

IR

Acc

MAR

MDR

CPU

Fetch 2nd instruction

00000

00001

00010

00011

00100 00101000

00101 01101001

00110 01001010

00111 00000000

01000 00000101

01001 11111101

01010

01011

01100

01101

etc…

Address Contents

00101

01101001

00000101

00101

01101001

PC

IR

Acc

MAR

MDR

CPU

Decode 2nd instruction: ADD B

00000

00001

00010

00011

00100 00101000

00101 01101001

00110 01001010

00111 00000000

01000 00000101

01001 11111101

01010

01011

01100

01101

etc…

Address Contents

00101

01101001

100000010

01001

11111101

PC

IR

Acc

MAR

MDR

CPU

Execute 2nd instruction: ADD B

00000

00001

00010

00011

00100 00101000

00101 01101001

00110 01001010

00111 00000000

01000 00000101

01001 11111101

01010

01011

01100

01101

etc…

Address Contents

00110

01101001

00000010

01001

11111101

PC

IR

Acc

MAR

MDR

CPU

Advance PC, etc…

Recommended