Resolu O Exerc Cio Extra Pipeline
O seguinte programa em assembly é executado na arquitetura ARQ apresentada no exercício 21 da lista geral de exercícios: start: MOV R2, 0
MOV R3, 1 calc: ADD
SUB
BMZ
MOV
R2, R0
R1, R3 calc R0, R2
Considerando que o pipeline de ARQ tem as seguintes características:
5 estágios: IF (busca de instrução), ID (decodificação de instrução), EX (execução de instrução), MEM (leitura/escrita de memória) e WB (atualização de registradores).
Na ausência de conflito, todos os estágios operam em 1 ciclo de clock.
Em instruções que não acessam a memória para escrita ou leitura de dados, a execução passa diretamente do estágio EX para o estágio WB.
Estágios IF e MEM possuem conflito estrutural.
Todas as atualizações de registradores ocorrem no final do estágio WB.
Implementa register forwarding a partir do final do estágio EX.
A condição de um branch condicional só pode ser avaliada, durante o estágio EX da instrução de branch condicional, após o final do estágio EX da última operação aritmética executada
(ADD ou SUB).
Endereços de destino de branches condicionais só estão disponíveis ao final do estágio EX.
Elabore uma tabela com o cenário de execução das instruções no pipeline (ou seja, qual instrução está ocupando cada estágio), ciclo por ciclo, para a execução completa do programa em assembly apresentado, considerando que o valor inicial armazenado em R0 é 4 e o valor inicial armazenado em
R1 é 2. Utilize a tabela abaixo como modelo:
Ciclo
Instrução
Instr1
Instr2
...
1
IF
...
2
ID
IF
...
3
EX
ID
...
4
...
EX
...
5
...
...
...
6
...
...
...
...
...
...
...
onde Instr1, Instr2 e subsequentes correspondem à sequência de execução das instruções do programa.. 1 mov r2, 0 IF mov r3, 1 add r2, r0 sub r1, r3 bmz calc add r2, r0 sub r1, r3 bmz calc mov r0, r2
2 3
4
5
6
7
8
9 10
11 12
13 14 15 16
ID EX WB
IF ID EX WB
IF ID EX
WB
IF ID
EX WB
IF
ID EX
WB
IF IF
IF ID
EX WB
IF
ID EX
WB
IF ID
EX WB
IF
IF IF
ID EX WB
B – situação