ADDRESSING MODES AND PIPELINING Mahdi Nazm Bojnordi Assistant - - PowerPoint PPT Presentation

addressing modes and pipelining
SMART_READER_LITE
LIVE PREVIEW

ADDRESSING MODES AND PIPELINING Mahdi Nazm Bojnordi Assistant - - PowerPoint PPT Presentation

ADDRESSING MODES AND PIPELINING Mahdi Nazm Bojnordi Assistant Professor School of Computing University of Utah CS/ECE 6810: Computer Architecture Overview Announcement Tonight: Homework 1 release (due on Sept. 4 th ) n Verify your


slide-1
SLIDE 1

ADDRESSING MODES AND PIPELINING

CS/ECE 6810: Computer Architecture

Mahdi Nazm Bojnordi

Assistant Professor School of Computing University of Utah

slide-2
SLIDE 2

Overview

¨ Announcement

¤ Tonight: Homework 1 release (due on Sept. 4th)

n Verify your uploaded files before deadline ¨ This lecture

¤ RISC vs. CISC ¤ Addressing modes ¤ Pipelining

slide-3
SLIDE 3

ISA Types

¨ Operand locations

slide-4
SLIDE 4

Which Set of Instructions?

¨ ISA influences the execution time

¤ CPU time = IC x CPI x CT

¨ Complex Instruction Set Computing (CISC) ¨ Reduced Instruction Set Computing (RISC)

slide-5
SLIDE 5

Which Set of Instructions?

¨ ISA influences the execution time

¤ CPU time = IC x CPI x CT

¨ Complex Instruction Set Computing (CISC)

¤ May reduce IC, increase CPI, and increase CT ¤ CPU time may be increased

¨ Reduced Instruction Set Computing (RISC)

¤ May increases IC, reduce CPI, and reduce CT ¤ CPU time may be decreased

slide-6
SLIDE 6

RISC vs. SISC

¨ Simple operations

¤ Simple and fast FU

¨ Fixed length

¤ Simple decoder

¨ Limited inst. formats

¤ Easy code generation

¨ Complex operations

¤ Costly memory access

¨ Variable length

¤ Complex decoder

¨ Limited registers

¤ Hard code generation

RISC ISA CISC ISA

slide-7
SLIDE 7

Memory Addressing

¨ Register

¤ Add r4, r3

¨ Immediate

¤ Add r4, #3

¨ Displacement

¤ Add r4,100(r1)

¨ Register indirect

¤ Add r4, (r1) Mem Reg Add

slide-8
SLIDE 8

Memory Addressing

¨ Register

¤ Add r4, r3

Reg[4]=Reg[4]+Reg[3]

¨ Immediate

¤ Add r4, #3

Reg[4]=Reg[4]+3

¨ Displacement

¤ Add r4,100(r1) …+Mem[100+Reg[1]]

¨ Register indirect

¤ Add r4, (r1)

…+Mem[Reg[1]]

Mem Reg Add

slide-9
SLIDE 9

Memory Addressing

¨ Indexed

¤ Add r3, (r1+r2)

¨ Direct

¤ Add r1, (1001)

¨ Memory indirect

¤ Add r1,@(r3)

¨ Auto-increment

¤ Add r1, (r2)+ Mem Reg Add

slide-10
SLIDE 10

Memory Addressing

¨ Indexed

¤ Add r3, (r1+r2)…+Mem[Reg[1]+Reg[2]]

¨ Direct

¤ Add r1, (1001) …+Mem[1001]

¨ Memory indirect

¤ Add r1,@(r3)

…+Mem[Mem[Reg[3]]]

¨ Auto-increment

¤ Add r1, (r2)+

…+Mem[Reg[2]]

¤

Reg[2]=Reg[2]+d

Mem Reg Add

slide-11
SLIDE 11

Memory Addressing

¨ Auto-decrement

¤ Add r1, -(r2)

¨ Scaled

¤ Add r1, 100(r2)[r3] Mem Reg Add

slide-12
SLIDE 12

Memory Addressing

¨ Auto-decrement

¤ Add r1, -(r2)

Reg[2]=Reg[2]-d

¤

…+Mem[Reg[2]]

¨ Scaled

¤ Add r1, 100(r2)[r3] ¤

…+Mem[100+Reg[2]+Reg[3] x d]

Mem Reg Add

slide-13
SLIDE 13

Example Problem

¨ Find the effective memory address

¤ Add r2, 200(r1) ¤ Add r2, (r1) ¤ Add r2, @(r1) 100 r1 200 r2 … … 400 100 500 200 600 300 700 400 800 500 Registers Memory

slide-14
SLIDE 14

Example Problem

¨ Find the effective memory address

¤ Add r2, 200(r1)

n r2 = r2 + Mem[300]

¤ Add r2, (r1)

n r2 = r2 + Mem[100]

¤ Add r2, @(r1)

n r2 = r2 + Mem[400]

100 r1 200 r2 … … 400 100 500 200 600 300 700 400 800 500 Registers Memory

slide-15
SLIDE 15

Instruction Format

¨ A guideline for generating/interpreting instructions ¨ Example: MIPS

¤ Fixed size 32-bit instructions ¤ Three opcode types

n I-type: load, store, conditional branch n R-type: ALU operations n J-type: jump

Opcode RS Immediate RT RD ShAmnt Funct Opcode RS RT Opcode

slide-16
SLIDE 16

Pipelining

slide-17
SLIDE 17

Processing Instructions

¨ Every RISC instruction may

require multiple processing steps

Processor Memory

slide-18
SLIDE 18

Processing Instructions

¨ Every RISC instruction may

require multiple processing steps

Processor Memory instructions data functional units register file

slide-19
SLIDE 19

Processing Instructions

¨ Every RISC instruction may

require multiple processing steps

¤ Instruction Fetch (IF) ¤ Instruction Decode (ID) ¤ Register Read (RR)

n All instructions?

¤ Execute Instructions (EXE) ¤ Memory Access (MEM)

n All instructions?

¤ Register Write Back (WB) Processor Memory instructions data functional units register file

slide-20
SLIDE 20

Single-cycle RISC Architecture

¨ Example: simple MIPS architecture

¤ Critical path includes all of the processing steps Write Back

  • Inst. Fetch
  • Inst. Decode

Execute Memory Inst. Memory Register File ALU Data Memory PC Controller

slide-21
SLIDE 21

Single-cycle RISC Architecture

¨ Example program

¤ CT=6ns; CPU Time = ? AND R1,R2,R3 XOR R4,R2,R3 SUB R5,R1,R4 ADD R6,R1,R4 MUL R7,R5,R6 Time CPU Time = CI x CPI x CT

slide-22
SLIDE 22

Single-cycle RISC Architecture

¨ Example program

¤ CT=6ns; CPU Time = 5 x 1 x 6ns = 30ns AND R1,R2,R3 XOR R4,R2,R3 SUB R5,R1,R4 ADD R6,R1,R4 MUL R7,R5,R6 Time CPU Time = CI x CPI x CT

How to improve?