You are on page 1of 13

Universidade Federal de Pelotas

Instituto de Fsica e Matemtica Departamento de Informtica


Bacharelado em Cincia da Computao

Arquitetura e Organizao de Computadores II


Aula 11
2. MIPS pipeline: conflitos por dados e paradas, conflitos em desvios condicionais. Prof. Jos Lus Gntzel
guntzel@ufpel.edu.br www.ufpel.edu.br/~guntzel/AOC2/AOC2.html

2. Organizaes do MIPS: pipeline


Conflitos por Dados e Paradas
Nem sempre o adiantamento ir resolver um conflito por dados. Exemplo:
lw and or add slt $2, 20($1) $4, $2, $5 $8, $2 , $6 $9, $4, $2 $1, $6, $7 # registrador $2 escrito # primeiro operando ($2) depende de lw; registrador $4 escrito # primeiro operando ($2) depende de lw # primeiro operando ($4) depende de and; segundo operando ($2) depende de lw # nenhuma dependencia

ComputaoUFPel Arquitetura e Organizao de Computadores II

slide 11.2

Prof. Jos Lus Gntzel

2. Organizaes do MIPS: pipeline


Conflitos por Dados e Paradas
Tempo, em Ciclos de clock
Ordem de execuo do programa (em instrues)

CC1

CC2

CC3

CC4

CC5

CC6

CC7

CC8

CC9

lw $2, 20 ($1)

MI

Reg

ULA

MD

Reg

Conflito no pode ser resolvido por adiantamento


Reg

and $4, $2, $5

MI

Reg

ULA

MD

or $8, $2 , $6

MI

Reg

ULA

MD

Reg

add $9, $4, $2

MI

Reg

ULA

MD

Reg

slt $1, $6, $7

MI

Reg

ULA

MD

Reg

ComputaoUFPel Arquitetura e Organizao de Computadores II

slide 11.3

Prof. Jos Lus Gntzel

2. Organizaes do MIPS: pipeline


Conflitos por Dados e Paradas
Unidade de Deteco de Conflito

Faz o pipeline parar quando houver uma instruo load word, seguida de uma instruo que leia o registrador onde esta instruo de load word escreveu Vai operar durante o estgio DI, inserindo uma parada entre a instruo load word e o uso de seu resultado Condio a ser verificada:
load word a nica instruo que l dados da memria

Se (DI/EX.LerMem = 1 E ((DI/EX.RegistradorRt = BI/DI.RegistradorRs ) OU (DI/EX.RegistradorRt = BI/DI.RegistradorRt ))) Ento pra o pipeline por um ciclo de relgio
ComputaoUFPel Arquitetura e Organizao de Computadores II

slide 11.4

Prof. Jos Lus Gntzel

2. Organizaes do MIPS: pipeline


Conflitos por Dados e Paradas
Tempo, em Ciclos de clock
Ordem de execuo do programa (em instrues)

CC1

CC2

CC3

CC4

CC5

CC6

CC7

CC8

CC9

lw $2, 20 ($1)

MI

Reg

ULA

MD

Reg

Assumindo que a existncia da unidade de adiantamento

and $4, $2, $5

MI

Reg

Reg

ULA

MD

Reg

or $8, $2 , $6

MI

Reg

Reg

ULA

MD

Reg

bolha
add $9, $4, $2
MI Reg
ULA

MD

Reg

slt $1, $6, $7

MI

Reg

ULA

MD

Reg

ComputaoUFPel Arquitetura e Organizao de Computadores II

slide 11.5

Prof. Jos Lus Gntzel

2. Organizaes do MIPS: pipeline


Conflitos por Dados e Paradas
Trancando o Prosseguimento das Instrues Posteriores a uma Instruo load word

Se a instruo que est no estgio DI estiver parada, ento o estgio BI tambm precisa parar Para impedir o avano de instrues pelo pipeline, basta evitar que tanto o PC quanto o registrador BI/DI sejam escritos As condies do item anterior fazem com que, no ciclo de relgio seguinte:

A instruo que est no BI seja lida novamente Os registradores lidos no estgio DI sero lidos novamente

ComputaoUFPel Arquitetura e Organizao de Computadores II

slide 11.6

Prof. Jos Lus Gntzel

2. Organizaes do MIPS: pipeline


Conflitos de Controle
FontePC
DI/EX 0

M U X
1 BI/DI

ER

instruo

EX/MEM

Controle

M EX

ER M

MEM/ER ER

ULAOp ULAFonte

+
4
[31-26]

EscReg
[25-21]

Desl. esq. 2 bits

+
DvC

PC

Endereo Instruo lida Memria de Instrues

32

[20-16]

Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita

Dado lido #1
0

MemParaReg Zero EscMem

Registradores
Dado lido #2
1

ULA
M U X Resultado

Endereo

3
Operao da ULA

Dado lido Memria de dados

M U X
1

16
[15-0]

32
Extenso de sinal

Dado a ser escrito

0 [15-11] 1

M U X

2
RegDst

LerMem

ComputaoUFPel Arquitetura e Organizao de Computadores II

slide 11.7

Prof. Jos Lus Gntzel

2. Organizaes do MIPS: pipeline


Conflitos por Dados e Paradas
Propagando uma Bolha pelo Pipeline

Como a instruo load word prossegue pelo pipeline, cria-se uma bolha de execuo, a qual deve tambm prosseguir pelo pipeline Uma bolha deve executar em cada estgio a mesma coisa que uma instruo NOP executa NOP:

Todos os sinais de controle em 0 (zero) para os estgios EX, MEM e ER. Estes valores de sinais de controle so passados adiante a cada ciclo de relgio, produzindo o efeito desejado (nenhum registrador ou memria escrito)
slide 11.8
Prof. Jos Lus Gntzel

ComputaoUFPel Arquitetura e Organizao de Computadores II

2. Organizaes do MIPS: pipeline


Conflitos de Controle
(ou Conflitos de Desvios Condicionais)
Desvio Condicional em Pipeline. Exemplo:
36 40 44 48 52 56 72 sub beq and or add slt lw $4, 50( $7) $10, $4, $8 $1, $3, 7 $12, $2, $5 $13, $2, $6 $14, $4, $2 $15, $6, $7 # desvio relativo ao PC para 40 + 4 + 7*4 = 72

ComputaoUFPel Arquitetura e Organizao de Computadores II

slide 11.9

Prof. Jos Lus Gntzel

2. Organizaes do MIPS: pipeline


Conflitos de Controle
Ordem de execuo do programa (em instrues)

Considerando o Bloco Operativo Pipeline Visto At Aqui


Tempo, em Ciclos de clock CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9

40 beq $1, $3, 7

MI

Reg

ULA

MD

Reg

Se o desvio ocorrer, 3 instrues tero que ser descartadas (flushed)


Reg

44 and $12, $2, $5

MI

Reg

ULA

MD

48 or $13, $6, $2

MI

Reg

ULA

MD

Reg

52 add $14, $2, $2

MI

Reg

ULA

MD

Reg

72 lw $4, 50($2)

MI

Reg

ULA

MD

Reg

ComputaoUFPel Arquitetura e Organizao de Computadores II

slide 11.10

Prof. Jos Lus Gntzel

2. Organizaes do MIPS: pipeline


Conflitos de Controle

Conforme j visto anteriormente, a parada no avano das instrues no uma soluo vivel para o desvio condicional Uma alternativa comum considerar que os desvios condicionais sempre ocorrem, considerando a seqncia normal de execuo das instrues Caso o desvio se realize, ser necessrio descartar as instrues que estiverem sendo buscadas e executadas E a execuo deve continuar a partir da instruo armazenada no endereo-alvo do desvio condicional

ComputaoUFPel Arquitetura e Organizao de Computadores II

slide 11.11

Prof. Jos Lus Gntzel

2. Organizaes do MIPS: pipeline


Conflitos de Controle

Para descartar instrues, basta mudar para 0 os valores originais dos sinais de controle e Tambm mudar as instrues que estiverem em BI, DI e EX, quando a instruo de desvio condicional chegar ao estgio MEM

ComputaoUFPel Arquitetura e Organizao de Computadores II

slide 11.12

Prof. Jos Lus Gntzel

2. Organizaes do MIPS: pipeline


Conflitos de Controle
FontePC
DI/EX 0

M U X
1 BI/DI

ER

instruo

EX/MEM

Controle

M EX

ER M

MEM/ER ER

ULAOp ULAFonte

+
4
[31-26]

EscReg
[25-21]

Desl. esq. 2 bits

+
DvC

PC

Endereo Instruo lida Memria de Instrues

32

[20-16]

Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita

Dado lido #1
0

MemParaReg Zero EscMem

Registradores
Dado lido #2
1

ULA
M U X Resultado

Endereo

3
Operao da ULA

Dado lido Memria de dados

M U X
1

16
[15-0]

32
Extenso de sinal

Dado a ser escrito

0 [15-11] 1

M U X

2
RegDst

LerMem

ComputaoUFPel Arquitetura e Organizao de Computadores II

slide 11.13

Prof. Jos Lus Gntzel

You might also like