58

Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Embed Size (px)

Citation preview

Page 1: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 2: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Data Processor Processed data

The brain of the computing system, meant to carry out the intended functionality, as and when needed.

Page 3: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Instructions

CPU

Processed data

Data

Opcode Mode register Address

Simplified example of an instruction:

Page 4: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Instruction / Data

Control

Memory

Process

Page 5: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Computer

Memory

InputOutput

SystemInterconnects

Peripherals

Communicationlines

CPU: CentralProcessing

Unit

Computer

Page 6: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Computer Arithmeticand Logic Units

ControlUnit

InternalInterconnects

Registers

CPU

I/O

Memory

Systembus

CPU

Page 7: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Computer Arithmeticand Logic Units

ControlUnit

InternalInterconnects

Registers

CPU

I/O

Memory

Systembus

CPU

Page 8: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 9: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 10: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 11: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 12: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Status Registers:A set of bits

Includes Condition CodesSign of last result

Zero, Carry, and EqualOverflow

Interrupt enable/disableSupervisor

Page 13: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 14: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

V1 Coldfire user visible registers‐ 16 general‐purpose 32‐bit registers 

(D0–D7, A0–A7)‐ 32‐bit program counter (PC)‐ 8‐bit condition code register (CCR)

Internal (system) registers‐ 16‐bit status register (SR)‐ 32‐bit supervisor stack pointer (SSP)‐ 32‐bit vector base register (VBR)‐ 32‐bit CPU configuration register 

(CPUCR)

Do NOT try to memorise this!

Page 15: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

ARM has a total of 37 registers‐ 31 general purpose / user visible registers‐ 6 internal (system) registers‐ Mostly 32‐bits each, depends on mode‐ 16 User visible registers at once

7 modes of operations:‐ User: normal execution mode‐ System: OS system‐privilege mode‐ FIQ: data transfer mode‐ Supervisor: SVC‐ Abort: abort instruction‐ IRQ: general purpose interrupt services‐ Undefined: when unintended 

instructions are executed

Do NOT try to memorise this!

Page 16: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

main(){int a,b,c[50];b = 2;for( a= 0; a < 50; a++)c[a] = a * b;

}

mov r3, #2str r3, [fp, #‐16]mov r3, #0str r3, [fp, #‐20]b .L2

.L3:ldr r1, [fp, #‐20]ldr r2, [fp, #‐20]ldr r3, [fp, #‐16]mul r0, r3, r2mvn r2, #207mov r3, r1, asl #2sub r1, fp, #12add r3, r3, r1add r3, r3, r2str r0, [r3, #0]ldr r3, [fp, #‐20]add r3, r3, #1str r3, [fp, #‐20]

.L2:ldr r3, [fp, #‐20]cmp r3, #49ble .L3sub sp, fp, #12ldmfd sp, {fp, sp, pc}

You’re not expected to learn ARM assembler from this lecture by the way! This shows Register use R0 R1…

Page 17: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Computer Arithmeticand Logic Units

ControlUnit

InternalInterconnects

Registers

CPU

I/O

Memory

Systembus

CPU

Page 18: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Fetch next instruction

Execute instruction

Decodeinstruction

Simplified view

Page 19: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Load PC addressinto Stack

Page 20: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 21: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 22: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 23: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Fetch Decode Execute

(Pre‐)Fetch Decode Execute

Instr. N

Instr. N+1

Page 24: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 25: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Detailed data flow

Page 26: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 27: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Instruction 3 caused a branch to 15

Instructions4‐7 have stalls

Page 28: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 29: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 30: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Prefetch the branch instructions and store somewhere non‐conflicting

Page 31: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 32: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

• Do not prefetch after branch

Page 33: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 34: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Instr.

Order

Time (clock cycles)

Load

Instr 1

Instr 2

Instr 3

Instr 4

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 6 Cycle 7Cycle 5

Reg ALU DMemIfetch Reg

Needs careful processor pipeline design with appropriate arbitration between streams(eg. skip the cycle 4)

Page 35: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

pipelined

dunpipeline

Time CycleTime Cycle

CPI stall Pipeline CPI Ideal

depth Pipeline CPI Ideal Speedup

pipelined

dunpipeline

Time CycleTime Cycle

CPI stall Pipeline 1

depth Pipeline Speedup

Instper cycles Stall Average CPI Ideal CPIpipelined

For simple pipeline, ideal CPI = 1:

CPI: Cycles per instruction

Without pipelining, CPI is equal to the number of stages in Data Flow; assumingeach stage requires 1 cycle (= Ideal CPI x Pipeline depth)

Clock rates

Page 36: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

remember LOADs are problematic

0

loads 

• Would you pay for a double port DRAM system or not?

Page 37: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

InstructionFetch

Shift + ALU MemoryAccess

RegWriteReg

ReadRegDecode

FETCH DECODE EXECUTE MEMORY WRITE

ARM9TDMI – 5 stage pipelineARM or ThumbInst Decode

Reg Select

RegRead Shift ALU Reg

WriteThumbARMdecompress

ARM decodeInstructionFetch

FETCH DECODE EXECUTE

ARM7TDMI – 3 stage pipeline

Page 38: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Computer Arithmeticand Logic Units

ControlUnit

InternalInterconnects

Registers

CPU

I/O

Memory

Systembus

CPU

Von NeumannHarvard

CISCRISC

Page 39: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

CENTRALPROCESSING

UNIT(CPU)

PROGRAMAND

DATAMEMORY

DATAMEMORYADDRESS

INPUTUNIT

OUTPUTUNIT

Page 40: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

CENTRALPROCESSING

UNIT(CPU)

PROGRAMMEMORY

DATAMEMORY

DATAPROGRAM

INSTRUCTION

PROGRAMMEMORYADDRESS

DATAMEMORYADDRESS

INPUT / OUTPUT

Page 41: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

CENTRALPROCESSING

UNIT(CPU)

MEMORY

(PROGRAMAND DATA)

ADDRESSBUS

INPUT/OUTPUTDEVICES

CONTROLBUS

DATABUS

Shared L1 Data/Instruction Cache typical in modern systems

Page 42: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Decoder

Program Counter

Instruction Register

Data Address Data

ALU Data Registers

Control Path Data Path

+1

Program Memory Workspace(Data Memory)

Program address

Program Instruction

Data Source 1

Data Source 2

Page 43: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

CISC: complex instruction set computerRISC: reduced instruction set computer

Berkeley group coined the term RISC and made a cpu called RISC 1soon after Stanford made a similar cpu: MIPS

SPARC also emerged from SUN

ARM has a range of RISC architectures

early RISC CPUs had about 50 instructions compared to 200‐300‐ aim was to simplify CPU to process  (and start) instructions faster

Page 44: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

RISC: Reduced Instruction Set Computer (e.g. ARM)

Page 45: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

CISC: Complex Instruction Set Computer (e.g. Intel Pentium)

Page 46: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 47: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Computer Arithmeticand Logic Units

ControlUnit

InternalInterconnects

Registers

CPU

I/O

Memory

Systembus

CPU

Page 48: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 49: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

To make an N‐bit ALU: Duplicate the 1‐bit ALU N times; connect carry‐out to neighbour's carry‐ins

An example: a one bit full adder

Page 50: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

Example: a 32‐bit full adder

By paralleling the one‐bit ALUs and some other modification on the logical circuits, we can create bigger ALUs.

This 32‐bit adder can be used to1. Add two 32‐bit numbers2. Subtract 32‐bit numbers3. Generate 

ZERO/NON_ZERO conditions

4. Set overflow flags

/enable(2’s complement)(2’s complement)

Page 51: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

The decoder determines the nature of the instruction in IR, and passes this on to the PLA.

The control Programmable Logic Array (PLA) takes in information from all the other modules, and generates the appropriate data path operations

Page 52: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

••

Page 53: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 54: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 55: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 56: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

•••

Page 57: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer
Page 58: Data Processor Processed - rishadshafik.netrishadshafik.net/onewebmedia/EEE2007-2017-Processors-coloured.pdf · Data Processor Processed ... Central Processing Unit Computer. Computer

1.

2.3.4.

a.

b.

c.

5.