18
1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

Embed Size (px)

Citation preview

Page 1: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

11998 Morgan Kaufmann Publishers

MIPS MULTICICLOFluxo de Dados e Controle

Page 2: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

21998 Morgan Kaufmann Publishers

• Máquinas de estado finito:

– Um conjunto de estados e

– Função próximo estado (determinado pelo estado atual e entrada)

– Função de saída (determinada pelo estado atual e possivelmente entrada)Usaremos uma máquina Moore (saída baseada somente no estado atual)

Usa máquina de estado finito para controle

Next-statefunction

Current state

Clock

Outputfunction

Nextstate

Outputs

Inputs

Page 3: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

31998 Morgan Kaufmann Publishers

• Quebrar as instruções em passos, cada passo leva um ciclo

– Balancear a quantidade de trabalhos a realizar

– Restringir cada ciclo para usar somente uma unidade funcional

• No fim de um ciclo

– Armazenar valores para serem usados nos ciclos posteriores

– introduzir registradores internos adicionais

Técnica multiciclo

Shiftleft 2

PC

Memory

MemData

Writedata

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Mux

0

1

Mux

0

1

4

Instruction[15– 0]

Signextend

3216

Instruction[25– 21]

Instruction[20– 16]

Instruction[15– 0]

Instructionregister

1 Mux

0

3

2

Mux

ALUresult

ALUZero

Memorydata

register

Instruction[15– 11]

A

B

ALUOut

0

1

Address

Page 4: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

41998 Morgan Kaufmann Publishers

• Busca da instrução (Instruction Fetch)

• Decodificação da instrução e busca do registrador

• Execução, Computação do endereço de memória, ou conclusão de uma instrução de branch

• Acesso à memória ou conclusão de uma instrução R-type

• Passo de Write-back

INSTRUÇÕES LEVEM DE 3 - 5 CICLOS!

Cinco passos de Execução

Page 5: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

51998 Morgan Kaufmann Publishers

• Usar o PC para a leitura da instrução e carga da mesma no registrador de instrução (Instruction Register).

• Incrementar o valor do PC por 4 e carregar o resultado no PC.

• Pode ser descrito sucintamente usando RTL "Register-Transfer Language"

IR = Memory[PC];PC = PC + 4;

Podemos obter os valores dos sinais de controle?

Quais as vantagens de atualizar o PC neste passo?

Passo 1: Busca da instrução (Instruction Fetch)

Page 6: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

61998 Morgan Kaufmann Publishers

• Leitura dos registradores rs e rt

• Computar o endereço de branch no caso da instrução de branch

• RTL:

A = Reg[IR[25-21]];B = Reg[IR[20-16]];ALUOut = PC + (sign-extend(IR[15-0]) << 2);

• Estamos acionando as linhas de controle baseadas no tipo de instrução

(a instrução está sendo "decodificada" na lógica de controle)

Passo 2: Decod. da Instrução e Busca de Registradores

Page 7: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

71998 Morgan Kaufmann Publishers

• ALU está realizando uma das três funções, baseadas no tipo de instrução

• Referência à memória:

ALUOut = A + sign-extend(IR[15-0]);

• R-type:

ALUOut = A op B;

• Branch:

if (A==B) PC = ALUOut;

Passo 3 (dependente da instrução)

Page 8: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

81998 Morgan Kaufmann Publishers

• Acesso à memória através de loads e stores

MDR = Memory[ALUOut];or

Memory[ALUOut] = B;

• Fim das instruções R-type

Reg[IR[15-11]] = ALUOut;

A escrita é realizada no fim do ciclo, na borda

Passo 4 (R-type ou acesso à memória)

Page 9: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

91998 Morgan Kaufmann Publishers

• Reg[IR[20-16]]= MDR;

E as outras instruções?

Passo Write-back

Page 10: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

101998 Morgan Kaufmann Publishers

Resumo:

Step nameAction for R-type

instructionsAction for memory-reference

instructionsAction for branches

Action for jumps

Instruction fetch IR = Memory[PC]PC = PC + 4

Instruction A = Reg [IR[25-21]]decode/register fetch B = Reg [IR[20-16]]

ALUOut = PC + (sign-extend (IR[15-0]) << 2)

Execution, address ALUOut = A op B ALUOut = A + sign-extend if (A ==B) then PC = PC [31-28] IIcomputation, branch/ (IR[15-0]) PC = ALUOut (IR[25-0]<<2)jump completion

Memory access or R-type Reg [IR[15-11]] = Load: MDR = Memory[ALUOut]completion ALUOut or

Store: Memory [ALUOut] = B

Memory read completion Load: Reg[IR[20-16]] = MDR

Page 11: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

111998 Morgan Kaufmann Publishers

• Para os dois primeiros passos, os sinais de controle são iguais para todas as instruções.

• A partir do passo 3, os sinais de controle são dependentes de:

– Que instrução está sendo executada

– Que passo está sendo realizada

• Usar as informações acumuladas para especificar uma máquina de estado finito

– Especificar uma máquina de estado finito:

1) para os dois primeiros passos correspondem dois estados da máquina

2) a partir do passo 3, cada combinação de instrução e passo resulta num estado diferente.

Implementando o Controle

Page 12: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

• Quantos bits de estado são necessários?

Especificação da FSM

PCWritePCSource = 10

ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond

PCSource = 01

ALUSrcA =1ALUSrcB = 00ALUOp= 10

RegDst = 1RegWrite

MemtoReg = 0

MemWriteIorD = 1

MemReadIorD = 1

ALUSrcA = 1ALUSrcB = 10ALUOp = 00

RegDst = 0RegWrite

MemtoReg =1

ALUSrcA = 0ALUSrcB = 11ALUOp = 00

MemReadALUSrcA = 0

IorD = 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource = 00

Instruction fetchInstruction decode/

register fetch

Jumpcompletion

BranchcompletionExecution

Memory addresscomputation

Memoryaccess

Memoryaccess R-type completion

Write-back step

(Op =

'J')

(Op

= 'L

W')

4

01

9862

753

Start

Page 13: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

131998 Morgan Kaufmann Publishers

• Implementação:

Máquina de estado finito para controle (controle hardwired, controle fixo)

PCWrite

PCWriteCond

IorD

MemtoReg

PCSource

ALUOp

ALUSrcB

ALUSrcA

RegWrite

RegDst

NS3NS2NS1NS0

Op5

Op4

Op3

Op2

Op1

Op0

S3

S2

S1

S0

State register

IRWrite

MemRead

MemWrite

Instruction registeropcode field

Outputs

Control logic

Inputs

PCWritePCSource = 10

ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond

PCSource = 01

ALUSrcA =1ALUSrcB = 00ALUOp= 10

RegDst = 1RegWrite

MemtoReg = 0

MemWriteIorD = 1

MemReadIorD = 1

ALUSrcA = 1ALUSrcB = 10ALUOp = 00

RegDst = 0RegWrite

MemtoReg=1

ALUSrcA = 0ALUSrcB = 11ALUOp = 00

MemReadALUSrcA = 0

IorD = 0IRWrite

ALUSrcB = 01ALUOp = 00

PCWritePCSource = 00

Instruction fetchInstruction decode/

register fetch

Jumpcompletion

BranchcompletionExecution

Memory addresscomputation

Memoryaccess

Memoryaccess R-type completion

Write-back step

(Op = 'LW') or (Op = 'SW') (Op = R-type)

(Op

= 'B

EQ')

(Op

= 'J

')

(Op = 'SW

')

(Op

= 'L

W')

4

01

9862

753

Start

Page 14: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

141998 Morgan Kaufmann Publishers

Implementação em PLA da lógica de controle

Op5

Op4

Op3

Op2

Op1

Op0

S3

S2

S1

S0

IorD

IRWrite

MemReadMemWrite

PCWritePCWriteCond

MemtoRegPCSource1

ALUOp1

ALUSrcB0ALUSrcARegWriteRegDstNS3NS2NS1NS0

ALUSrcB1ALUOp0

PCSource0

Page 15: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

151998 Morgan Kaufmann Publishers

Controle microprogramado – uso de memória de microprograma (microcódigo)

• O que são “microinstruções” ?

PCWritePCWriteCondIorD

MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite

AddrCtl

Outputs

Microcode memory

IRWrite

MemReadMemWrite

RegDst

Control unit

Input

Microprogram counter

Address select logicO

p[5–

0]

Adder

1

Datapath

Instruction registeropcode field

BWrite

Page 16: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

161998 Morgan Kaufmann Publishers

• Uma metodologia de especificação– Apropriado se centenas de opcodes, modos, ciclos, etc.– sinais especificados simbolicamente usando microinstruções

• Duas implementações da mesma arquitetura tem o mesmo microcódigo?

• O que faria um microassembler?

Microprogramação

LabelALU

control SRC1 SRC2Register control Memory

PCWrite control Sequencing

Fetch Add PC 4 Read PC ALU SeqAdd PC Extshft Read Dispatch 1

Mem1 Add A Extend Dispatch 2LW2 Read ALU Seq

Write MDR FetchSW2 Write ALU FetchRformat1 Func code A B Seq

Write ALU FetchBEQ1 Subt A B ALUOut-cond FetchJUMP1 Jump address Fetch

Page 17: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

171998 Morgan Kaufmann Publishers

Comparação: Controle fixo e Microprogramado

• Controle fixo:

- complexidade do circuito cresce linearmente com o número

de instruções.

- após a construção é difícil a alteração do conjunto de

instruções implementado

- apresenta melhor desempenho

• Controle Microprogramado:

– a complexidade do circuito não muda enquanto usar a mesma

memória de microcódigo

– é fácil mudar o conteúdo da memória de microprograma e

portanto alterar o conjunto de instruções implementado

– o desempenho é menor em relação ao controle fixo.

Page 18: 1 1998 Morgan Kaufmann Publishers MIPS MULTICICLO Fluxo de Dados e Controle

181998 Morgan Kaufmann Publishers

Comparação: Controle fixo e Microprogramado

Contro

le fix

o

Controlemicroprogramado

Número de instruções

com

plex

idad

e

20 40 60 80 100 120