71
MC542 3.1 2007 Prof. Paulo Cesar Centoducatte [email protected] www.ic.unicamp.br/~ducatte MC542 Organização de Computadores Teoria e Prática

mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.1

2007

Prof. Paulo Cesar Centoducatte

[email protected]

www.ic.unicamp.br/~ducatte

MC542

Organização de ComputadoresTeoria e Prática

Page 2: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.2

MC542

Arquitetura de Computadores

Micro-Arquitetura

“DDCA” - (Capítulo 7)

“COD” - (Capítulo)

Page 3: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.3

Micro-Arquitetura

• Micro-Arquitetura– Introdução– Recursos– MIPS Mono-Ciclo

» Lw» Sw» R-Type» Beq» j

– MIPS Múlti-Ciclos» Lw» Sw» R-Type» Beq» j

Page 4: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.4

Introdução

• Micro-arquitetura: como estáimplementada a arquitetura emhardware

• Processador:– Datapath: blocos funcionais

– Controle: sinais de controle

Physics

Devices

Analog

Circuits

Digital

Circuits

Logic

Micro-

architecture

Architecture

Operating

Systems

Application

Software

electrons

transistors

diodes

amplifiers

filters

AND gates

NOT gates

adders

memories

datapaths

controllers

instructions

registers

device drivers

programs

Page 5: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.5

Micro-Arquitetura

• Múltiplas implementações para uma mesmaarquitetura:

– Single-cycle» Cada instrução é executada em um único ciclo

– Multicycle» A execução de cada instrução é dividida em uma série de passos menores

– Pipelined» A execução de cada instrução é dividida em uma série de passos menores

» Múltiplas instruções (parte de) executando ao mesmotempo.

Page 6: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.6

Micro-Arquitetura

• Program execution time

Execution Time = (# instructions)(cycles/instruction)(seconds/cycle)

• Definições:– Cycles/instruction = CPI

– Seconds/cycle = clock period

– 1/CPI = Instructions/cycle = IPC

• Desafios na implementação de uma micro-arquitetura– Custo

– Power

– Desempenho

Page 7: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.7

Micro-Arquitetura

• Processador MIPS (Microprocessor without Interlolocked Pipeline Stages)

– Vamos implementar um sub conjunto das instruçõesMIPS:

– R-type instructions: and, or, add, sub, slt

– Memory instructions: lw, sw

– Branch instructions: beq

Page 8: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.8

Micro-Arquitetura

• Estado da Arquitetura

– Determina o estado do Processador em um dado instante de tempo

PC

32 registradores

Memória

Page 9: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.9

Micro-Arquitetura

• Elementos de estados do MIPS:

CLK

A RD

Instruction

Memory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Register

File

A RD

Data

Memory

WD

WE

PCPC'

CLK

32 32

32 32

32

32

32

32

32

32

5

5

5

Page 10: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.10

Processador MIPS Single-Cycle

• Datapath

• Controle

Page 11: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.11

Processador MIPS Single-Cycle

• Execução de lw

1: Fetch da Instrução

CLK

A RD

InstructionMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

RegisterFile

A RD

DataMemory

WD

WEPCPC'

Instr

CLK

Page 12: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.12

Processador MIPS Single-Cycle

• Execução de lw

2: Lê o operando fonte do RF

Instr

CLK

A RD

InstructionMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

RegisterFile

A RD

DataMemory

WD

WEPCPC'

25:21

CLK

Page 13: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.13

Processador MIPS Single-Cycle

• Execução de lw

3: Sign-extend o imediato

SignImm

CLK

A RD

InstructionMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

A RD

DataMemory

WD

WEPCPC' Instr

25:21

15:0

CLK

Page 14: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.14

Processador MIPS Single-Cycle

• Execução de lw

4: Calcula o endereço efetivo de memória

SignImm

CLK

A RD

InstructionMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

A RD

DataMemory

WD

WEPCPC' Instr

25:21

15:0

SrcB

ALUResult

SrcA Zero

CLK

ALUControl2:0

ALU

010

Page 15: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.15

Processador MIPS Single-Cycle

• Execução de lw

5: Lê o dado da memória e o escreva no RF

A1

A3

WD3

RD2

RD1WE3

A2

SignImm

CLK

A RD

InstructionMemory

CLK

Sign Extend

Register

File

A RD

DataMemory

WD

WEPCPC' Instr

25:21

15:0

SrcB20:16

ALUResult ReadData

SrcA

RegWrite

Zero

CLK

ALUControl2:0

ALU

0101

Page 16: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.16

Processador MIPS Single-Cycle

• Execução de lw

6: Determina o endereço da próxima instrução

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

A RD

DataMemory

WD

WEPCPC' Instr

25:21

15:0

SrcB20:16

ALUResult ReadData

SrcA

PCPlus4

Result

RegWrite

Zero

CLK

ALUControl2:0

ALU

0101

Page 17: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.17

Processador MIPS Single-Cycle

• Execução de sw

• Precisa escrever o valor do registrador na memória

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

A RD

DataMemory

WD

WEPCPC' Instr

25:21

20:16

15:0

SrcB20:16

ALUResult ReadData

WriteData

SrcA

PCPlus4

Result

MemWriteRegWrite

Zero

CLK

ALUControl2:0

ALU

10100

Page 18: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.18

Processador MIPS Single-Cycle

• Instruções R-Type: add, sub, and, or, ….

• Escrever ALUResult no RF– Escreve em rd e não em rt

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PCPC' Instr25:21

20:16

15:0

SrcB

20:16

15:11

ALUResult ReadData

WriteData

SrcA

PCPlus4WriteReg4:0

Result

RegDst MemWrite MemtoRegALUSrcRegWrite

Zero

CLK

ALUControl2:0

ALU

0varies1 001

Page 19: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.19

Processador MIPS Single-Cycle• Instrução beq

• Determina se os conteúdos dos registradores sãoiguais

• Calcula o endereço alvo do desvio (sign-extended immediate + PC+4)

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1

PC' Instr25:21

20:16

15:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

RegDst Branch MemWrite MemtoRegALUSrcRegWrite

Zero

PCSrc

CLK

ALUControl2:0

ALU

01100 x0x 1

Page 20: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.20

Processador MIPS Single-Cycle - or

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

0010

01

0

0

1

0

Page 21: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.21

Processador MIPS Single-Cycle - sw

+

+ALU

Page 22: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.22

Processador MIPS Single-Cycle

• Unidade de Controle

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Page 23: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.23

Processador MIPS Single-Cycle

RegDst

Branch

MemWrite

MemtoReg

ALUSrcOpcode5:0

ControlUnit

ALUControl2:0Funct5:0

MainDecoder

ALUOp1:0

ALUDecoder

RegWrite

Control Unit

Page 24: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.24

Processador MIPS Single-Cycle

• ALU

A & B000

A | B001

A + B010

not used011

A & B100

A | ~B101

A - B110

SLT111

FunctionF2:0

ALU

N N

N

3

A B

Y

F

Page 25: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.25

Processador MIPS Single-Cycle

• ALU

+

2 01

A B

Cout

Y3

01

F2

F1:0

[N-1] S

NN

N

N

N NNN

N

2

Ze

roE

xte

nd

Page 26: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.26

Processador MIPS Single-Cycle

• ALU Decoder

Not Used11

Look at Funct10

Subtract01

Add00

MeaningALUOp1:0

111 (SLT)101010 (slt)1X

001 (Or)100101 (or)1X

000 (And)100100 (and)1X

110 (Subtract)100010 (sub)1X

010 (Add)100000 (add)1X

110 (Subtract)XX1

010 (Add)X00

ALUControl2:0FunctALUOp1:0

Page 27: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.27

Processador MIPS Single-Cycle

• Decodificador Principal

01X010X0000100beq

00X101X0101011sw

00000101100011lw

10000011000000R-type

ALUOp1:0

MemtoRegMemWriteBranchAluSrcRegDstRegWriteOp5:0Instruction

Page 28: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.28

Processador MIPS Single-Cycle

• Extendendo a Funcionalidade: addi

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Page 29: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.29

Processador MIPS Single-Cycle

• Decodificador Principal

00000101001000addi

01X010X0000100beq

00X101X0101011sw

00100101100011lw

10000011000000R-type

ALUOp1:0MemtoRegMemWriteBranchAluSrcRegDstRegWriteOp5:0Instruction

Page 30: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.30

Processador MIPS Single-Cycle

• Extendendo a Funcionalidade: j

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

Page 31: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.31

Processador MIPS Single-Cycle

• Extendendo a Funcionalidade: j

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

0

1

25:0 <<2

27:0 31:28

PCJump

Jump

Page 32: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.32

Processador MIPS Single-Cycle

• Decodificador Principal

1XXX0XXX0000100j

0

0

0

0

0

Jump

00000101001000addi

01X010X0000100beq

00X101X0101011sw

00100101100011lw

10000011000000R-type

ALUOp1:0MemtoRegMemWriteBranchAluSrcRegDstRegWriteOp5:0Instruction

Page 33: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.33

Processador MIPS Single-Cycle

• Desempenho: Quão rápido é o processador?

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

0

1

25:0 <<2

27:0 31:28

PCJump

Jump

Page 34: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.34

Processador MIPS Single-Cycle

• O cycle time é limitado pelo caminho crítico: lw

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

1

0100

1

0

1

0 0

Page 35: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.35

Processador MIPS Single-Cycle

• Caminho crítico

Tc = tpcq_PC + tmem + max(tRFread, tsext) + tmux + tALU + tmem + tmux + tRFsetup

• Na maioria das implementações os caminhos limitantessão: memória, ALU, register file. Assim,

Tc = tpcq_PC + 2tmem + tRFread + 2tmux + tALU + tRFsetup

Page 36: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.36

Processador MIPS Single-Cycle

30tpcq_PCRegister clock-to-Q

Delay (ps)ParameterElement

20tsetupRegister setup

25tmuxMultiplexer

200tALUALU

250tmemMemory read

150tRFreadRegister file read

20tRFsetupRegister file setup

Tc = tpcq_PC + 2tmem + tRFread + 2tmux + tALU + tRFsetup= [30 + 2(250) + 150 + 2(25) + 200 + 20] ps

= 950 ps

Page 37: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.37

Processador MIPS Single-Cycle

• Para um programa 100 bilhões de instruções executando em um processador MIPS single-cycle,

Execution Time = (# instructions)(cycles/instruction)(seconds/cycle)

= (100 × 109)(1)(950 × 10-12 s)

= 95 seconds

Page 38: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.38

Processador MIPS Multicycle

• Datapath

• Controle

Page 39: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.39

Processador MIPS Multicycle

• Blocos Básicos

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

RegisterFile

PCPC'

WD

WE

CLK

EN

ALU

Restrição de Projeto:

Somente 1 pode ser usado por vez

Page 40: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.40

Processador MIPS Multicycle

• Datapath

– datapath para o lw

Exemplo: lw $s4, 27($t2)

• Fetch da Instrução

b

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

RegisterFile

PCPC' Instr

CLK

WD

WE

CLK

EN

IRWrite

Page 41: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.41

Processador MIPS Multicycle

• Leitura do operando fonte do RF (rs)

b

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

RegisterFile

PCPC' Instr25:21

CLK

WD

WE

CLK CLK

A

EN

IRWrite

Page 42: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.42

Processador MIPS Multicycle

• Sign-Extend o Imediato

SignImm

b

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

PCPC' Instr25:21

15:0

CLK

WD

WE

CLK CLK

A

EN

IRWrite

Page 43: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.43

Processador MIPS Multicycle

• Soma do Base Address ao Offset

SignImm

b

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

PCPC' Instr25:21

15:0

SrcB

ALUResult

SrcA

ALUOut

CLK

ALUControl2:0

ALU

WD

WE

CLK CLK

A CLK

EN

IRWrite

Page 44: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.44

Processador MIPS Multicycle

• Carga do dado a partir da Memória

SignImm

b

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

PCPC' Instr25:21

15:0

SrcB

ALUResult

SrcA

ALUOut

CLK

ALUControl2:0

AL

U

WD

WE

CLK

Adr

Data

CLK

CLK

A CLK

EN

IRWriteIorD

0

1

Page 45: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.45

Processador MIPS Multicycle

• Escrita do Dado no Register File

SignImm

b

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

PCPC' Instr25:21

15:0

SrcB20:16

ALUResult

SrcA

ALUOut

RegWrite

CLK

ALUControl2:0

ALU

WD

WE

CLK

Adr

Data

CLK

CLK

A CLK

EN

IRWriteIorD

0

1

Page 46: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.46

Processador MIPS Multicycle

• Incremento do PC de 4

PCWrite

SignImm

b

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1PCPC' Instr25:21

15:0

SrcB

20:16

ALUResult

SrcA

ALUOut

ALUSrcARegWrite

CLK

ALUControl2:0

ALU

WD

WE

CLK

Adr

Data

CLK

CLK

A

00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWriteIorD

0

1

Page 47: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.47

Processador MIPS Multicycle

• Datapath também para sw

SignImm

b

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1PC0

1

PC' Instr25:21

20:16

15:0

SrcB20:16

ALUResult

SrcA

ALUOut

MemWrite ALUSrcARegWrite

CLK

ALUControl2:0

ALU

WD

WE

CLK

Adr

Data

CLK

CLK

A

00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWriteIorDPCWrite

B

Page 48: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.48

Processador MIPS Multicycle

• Datapath para instruções R-Type

0

1

SignImm

b

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1PC0

1

PC' Instr25:21

20:16

15:0

SrcB20:16

15:11

ALUResult

SrcA

ALUOut

RegDstMemWrite MemtoReg ALUSrcARegWrite

CLK

ALUControl2:0

ALU

WD

WE

CLK

Adr

Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWriteIorDPCWrite

Page 49: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.49

Processador MIPS Multicycle

• Datapath para beq

SignImm

b

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC0

1

PC' Instr25:21

20:16

15:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

RegDst BranchMemWrite MemtoReg ALUSrcARegWrite

Zero

PCSrc

CLK

ALUControl2:0

ALU

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0

IRWriteIorD PCWrite

PCEn

Page 50: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.50

Processador MIPS Multicycle

• Datapath para o Processador Multicycle

ImmExt

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC0

1

PC' Instr25:21

20:16

15:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

RegDst BranchMemWrite MemtoReg ALUSrcARegWrite

Zero

PCSrc

CLK

ALUControl2:0

ALU

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0

IRWriteIorD PCWrite

PCEn

Page 51: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.51

Processador MIPS Multicycle

• Controle para o Processador Multicycle

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

31:26

Re

gD

st

Branch

MemWrite

Mem

toR

eg

ALUSrcA

RegWriteOp

Funct

ControlUnit

Zero

PCSrc

CLK

CLK

ALUControl2:0

ALU

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWrite

IorD

PCWrite

PCEn

Page 52: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.52

Processador MIPS Multicycle

• Unidade de controle

ALUSrcA

PCSrc

Branch

ALUSrcB1:0

Opcode5:0

ControlUnit

ALUControl2:0Funct5:0

MainController

(FSM)

ALUOp1:0

ALUDecoder

RegWrite

PCWrite

IorD

MemWrite

IRWrite

RegDst

MemtoReg

RegisterEnables

MultiplexerSelects

Page 53: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.53

Processador MIPS Multicycle

• Unidade de Controle– Finite state machine

– Diagrama de transição de estados para lw

Page 54: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.54

Processador MIPS Multicycle

• Fetch da Instrução

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

31:26

Re

gD

st

Branch

MemWrite

Mem

toR

eg

ALUSrcA

RegWriteOp

Funct

ControlUnit

Zero

PCSrc

CLK

CLK

ALUControl2:0

AL

U

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWrite

IorD

PCWrite

PCEn

0

1 1

0

X

X

00

01

0100

1

0

IorD = 0AluSrcA = 0

ALUSrcB = 01

ALUOp = 00

PCSrc = 0IRWritePCWrite

Reset

S0: Fetch

Page 55: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.55

Processador MIPS Multicycle

• Decodificação da Instrução

IorD = 0AluSrcA = 0

ALUSrcB = 01

ALUOp = 00

PCSrc = 0

IRWritePCWrite

Reset

S0: Fetch S1: Decode

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

31:26

Re

gD

st

Branch

MemWrite

Me

mto

Reg

ALUSrcA

RegWriteOp

Funct

ControlUnit

Zero

PCSrc

CLK

CLK

ALUControl2:0

ALU

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWrite

IorD

PCWrite

PCEn

X

0 0

0

X

X

0X

XX

XXXX

0

0

Page 56: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.56

Processador MIPS Multicycle

• Cálculo do endereço efetivo

IorD = 0AluSrcA = 0

ALUSrcB = 01ALUOp = 00PCSrc = 0

IRWritePCWrite

ALUSrcA = 1ALUSrcB = 10ALUOp = 00

Reset

S0: Fetch

S2: MemAdr

S1: Decode

Op = LWor

Op = SW

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

31:26

Reg

Dst

Branch

MemWrite

Mem

toR

eg

ALUSrcA

RegWriteOp

Funct

ControlUnit

Zero

PCSrc

CLK

CLK

ALUControl2:0

ALU

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWrite

IorD

PCWrite

PCEn

X

0 0

0

X

X

01

10

010X

0

0

Page 57: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.57

Processador MIPS Multicycle

• Leitura da Memória e

Escrita no RF IorD = 0

AluSrcA = 0

ALUSrcB = 01

ALUOp = 00

PCSrc = 0

IRWritePCWrite

ALUSrcA = 1

ALUSrcB = 10ALUOp = 00

IorD = 1

Reset

S0: Fetch

S2: MemAdr

S1: Decode

S3: MemRead

Op = LWor

Op = SW

Op = LW

RegDst = 0

MemtoReg = 1

RegWrite

S4: Mem

Writeback

Page 58: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.58

Processador MIPS Multicycle

• Diagrama de transição de estados para sw

IorD = 0

AluSrcA = 0ALUSrcB = 01

ALUOp = 00

PCSrc = 0

IRWritePCWrite

ALUSrcA = 1

ALUSrcB = 10ALUOp = 00

IorD = 1IorD = 1

MemWrite

Reset

S0: Fetch

S2: MemAdr

S1: Decode

S3: MemReadS5: MemWrite

Op = LWor

Op = SW

Op = LW

Op = SW

RegDst = 0MemtoReg = 1

RegWrite

S4: MemWriteback

Page 59: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.59

Processador MIPS Multicycle

• Diagrama de transição de estados para R-type

IorD = 0

AluSrcA = 0

ALUSrcB = 01

ALUOp = 00

PCSrc = 0

IRWrite

PCWrite

ALUSrcA = 1

ALUSrcB = 10

ALUOp = 00

IorD = 1

RegDst = 1

MemtoReg = 0

RegWrite

IorD = 1

MemWrite

ALUSrcA = 1

ALUSrcB = 00

ALUOp = 10

Reset

S0: Fetch

S2: MemAdr

S1: Decode

S3: MemReadS5: MemWrite

S6: Execute

S7: ALU

Writeback

Op = LW

or

Op = SW

Op = R-type

Op = LW

Op = SW

RegDst = 0

MemtoReg = 1

RegWrite

S4: Mem

Writeback

Page 60: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.60

Processador MIPS Multicycle

• Diagrama de transição de estados para beq

IorD = 0

AluSrcA = 0ALUSrcB = 01ALUOp = 00

PCSrc = 0IRWritePCWrite

ALUSrcA = 0ALUSrcB = 11

ALUOp = 00

ALUSrcA = 1

ALUSrcB = 10ALUOp = 00

IorD = 1RegDst = 1

MemtoReg = 0RegWrite

IorD = 1MemWrite

ALUSrcA = 1

ALUSrcB = 00ALUOp = 10

ALUSrcA = 1ALUSrcB = 00

ALUOp = 01PCSrc = 1

Branch

Reset

S0: Fetch

S2: MemAdr

S1: Decode

S3: MemReadS5: MemWrite

S6: Execute

S7: ALUWriteback

S8: Branch

Op = LWor

Op = SW

Op = R-type

Op = BEQ

Op = LW

Op = SW

RegDst = 0MemtoReg = 1

RegWrite

S4: MemWriteback

Page 61: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.61

Processador MIPS Multicycle

• FSM de ControleIorD = 0

AluSrcA = 0

ALUSrcB = 01

ALUOp = 00

PCSrc = 0

IRWritePCWrite

ALUSrcA = 0

ALUSrcB = 11

ALUOp = 00

ALUSrcA = 1

ALUSrcB = 10ALUOp = 00

IorD = 1

RegDst = 1

MemtoReg = 0RegWrite

IorD = 1

MemWrite

ALUSrcA = 1

ALUSrcB = 00ALUOp = 10

ALUSrcA = 1

ALUSrcB = 00

ALUOp = 01PCSrc = 1

Branch

Reset

S0: Fetch

S2: MemAdr

S1: Decode

S3: MemReadS5: MemWrite

S6: Execute

S7: ALU

Writeback

S8: Branch

Op = LW

or

Op = SW

Op = R-type

Op = BEQ

Op = LW

Op = SW

RegDst = 0

MemtoReg = 1RegWrite

S4: MemWriteback

Page 62: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.62

Processador MIPS Multicycle

• Extendendo a Funcionalidade para addi

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

31:26

Re

gD

st

Branch

MemWrite

Me

mto

Reg

ALUSrcA

RegWriteOp

Funct

ControlUnit

Zero

PCSrc

CLK

CLK

ALUControl2:0

ALU

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWrite

IorD

PCWrite

PCEn

Page 63: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.63

Processador MIPS Multicycle

• FSM de Controle para addi

IorD = 0

AluSrcA = 0

ALUSrcB = 01ALUOp = 00PCSrc = 0

IRWritePCWrite

ALUSrcA = 0ALUSrcB = 11ALUOp = 00

ALUSrcA = 1

ALUSrcB = 10ALUOp = 00

IorD = 1RegDst = 1

MemtoReg = 0

RegWrite

IorD = 1MemWrite

ALUSrcA = 1

ALUSrcB = 00ALUOp = 10

ALUSrcA = 1ALUSrcB = 00

ALUOp = 01PCSrc = 1

Branch

Reset

S0: Fetch

S2: MemAdr

S1: Decode

S3: MemReadS5: MemWrite

S6: Execute

S7: ALUWriteback

S8: Branch

Op = LW

orOp = SW

Op = R-type

Op = BEQ

Op = LW

Op = SW

RegDst = 0

MemtoReg = 1RegWrite

S4: MemWriteback

ALUSrcA = 1

ALUSrcB = 10ALUOp = 00

RegDst = 0MemtoReg = 0

RegWrite

Op = ADDI

S9: ADDI

Execute

S10: ADDIWriteback

Page 64: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.64

Processador MIPS Multicycle

• Extendendo a Funcionalidade para j

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1PC0

1

PC' Instr25:21

20:16

15:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

RegDst BranchMemWrite MemtoReg ALUSrcARegWrite

Zero

PCSrc1:0

CLK

ALUControl2:0

AL

U

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0

IRWriteIorD PCWrite

PCEn

00

01

10

<<2

25:0 (jump)

31:28

27:0

PCJump

Page 65: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.65

Processador MIPS Multicycle

• FSM de Controle para j

IorD = 0

AluSrcA = 0

ALUSrcB = 01

ALUOp = 00

PCSrc = 00

IRWrite

PCWrite

ALUSrcA = 0

ALUSrcB = 11

ALUOp = 00

ALUSrcA = 1

ALUSrcB = 10

ALUOp = 00

IorD = 1

RegDst = 1

MemtoReg = 0

RegWrite

IorD = 1

MemWrite

ALUSrcA = 1

ALUSrcB = 00

ALUOp = 10

ALUSrcA = 1

ALUSrcB = 00

ALUOp = 01

PCSrc = 01

Branch

Reset

S0: Fetch

S2: MemAdr

S1: Decode

S3: MemReadS5: MemWrite

S6: Execute

S7: ALU

Writeback

S8: Branch

Op = LW

or

Op = SW

Op = R-type

Op = BEQ

Op = LW

Op = SW

RegDst = 0

MemtoReg = 1

RegWrite

S4: Mem

Writeback

ALUSrcA = 1

ALUSrcB = 10

ALUOp = 00

RegDst = 0

MemtoReg = 0

RegWrite

Op = ADDI

S9: ADDI

Execute

S10: ADDI

Writeback

PCSrc = 10

PCWrite

Op = J

S11: Jump

Page 66: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.66

Processador MIPS Multicycle

• Desempenho: Quão rápido é o processador?

• Instruções gastam números diferentes de ciclos:– 3 ciclos: beq, j

– 4 ciclos: R-Type, sw, addi

– 5 ciclos: lw

• O CPI deve ser a média ponderada

• SPECINT2000 benchmark: – 25% loads

– 10% stores

– 11% branches

– 2% jumps

– 52% R-type

Average CPI = (0.11 + 0.2)(3) + (0.52 + 0.10)(4) + (0.25)(5) = 4.12

Page 67: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.67

Processador MIPS Multicycle

• Caminho Crítico

Tc = tpcq_PC + tmux + max(tALU + tmux, tmem) + tsetup

SignImm

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1 0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

31:26

Re

gD

st

Branch

MemWrite

Mem

toR

eg

ALUSrcA

RegWriteOp

Funct

ControlUnit

Zero

PCSrc

CLK

CLK

ALUControl2:0

ALU

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

ALUSrcB1:0IRWrite

IorD

PCWrite

PCEn

Page 68: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.68

Processador MIPS Multicycle

30tpcq_PCRegister clock-to-Q

Delay (ps)ParameterElement

20tsetupRegister setup

25tmuxMultiplexer

200tALUALU

250tmemMemory read

150tRFreadRegister file read

20tRFsetupRegister file setup

Tc = tpcq_PC + tmux + max(tALU + tmux, tmem) + tsetup= tpcq_PC + tmux + tmem + tsetup= [30 + 25 + 250 + 20] ps

= 325 ps

Page 69: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.69

Processador MIPS Multicycle

• Para um programa que executa 100 bilhões de instruções em um MIPS multicycle,

• CPI = 4.12

• Tc = 325 ps

Execution Time = (# instructions) × CPI × Tc

= (100 × 109)(4.12)(325 × 10-12)

= 133.9 seconds

• Ele é mais lento do que o MIPS single-cycle (95 segundos). Porque?– Os passos não tem o mesmo tamanho

– Overhead do seqüenciamento de cada passo (tpcq + tsetup= 50 ps)

Page 70: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.70

Revisão: Processador MIPS Single Cycle

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

0

1

25:0 <<2

27:0 31:28

PCJump

Jump

Page 71: mc542 A 03 2s07 - Instituto de Computaçãoducatte/mc542/Slides/mc... · “COD”- (Capítulo) MC542 3.3 Micro-Arquitetura • Micro-Arquitetura – Introdução – Recursos –

MC5423.71

Revisão: Processador MIPS Multicycle

ImmExt

CLK

ARD

Instr / DataMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1PC0

1

PC' Instr25:21

20:16

15:0

SrcB20:16

15:11

<<2

ALUResult

SrcA

ALUOut

Zero

CLK

AL

U

WD

WE

CLK

Adr

0

1Data

CLK

CLK

A

B00

01

10

11

4

CLK

ENEN

00

01

10

<<2

25:0 (Addr)

31:28

27:0

PCJump

5:0

31:26

Branch

MemWrite

ALUSrcA

RegWriteOp

Funct

ControlUnit

PCSrc

CLK

ALUControl2:0

ALUSrcB1:0IRWrite

IorD

PCWrite

PCEn

Re

gD

st

Me

mto

Re

g