Dado que o ciclo de clock no modelo multiciclo dura 10 ns , calcule o tempo total para executar 200 instruções com a seguinte distribuição:
100 instruções do tipo R.
50 instruções de carga (LW).
50 instruções de armazenamento (SW).
100 instruções do tipo R.
50 instruções de carga (LW).
50 instruções de armazenamento (SW).
Passo 1
O enunciado fornece que o ciclo de clock dura
e pede o tempo total para executar
instruções com a seguinte distribuição:
-
instruções do tipo R; -
instruções de carga (LW); -
instruções de armazenamento (SW).
O que precisamos calcular é o tempo total gasto para executar essas
instruções, dado o número de ciclos que cada tipo de instrução consome e o tempo de cada ciclo.
Passo 2
Conceito essencial: o tempo total de execução é o produto do número total de ciclos pelo tempo de cada ciclo. Em fórmula:
onde
é o tempo total,
é a soma de todos os ciclos necessários para todas as instruções, e
é a duração de um ciclo de clock (aqui
).
Passo 3
No modelo multiciclo padrão (MIPS clássico) cada instrução é dividida em estágios comuns: busca de instrução (IF), decodificação/leituras de registradores (ID), execução/ cálculo de endereço (EX), acesso à memória (MEM) e escrita de resultado no registrador (WB). Dependendo do tipo de instrução, nem todos os estágios são usados para produzir um resultado final, portanto o número de ciclos por instrução varia. Aqui estão os counts típicos e por que:
-
Instrução R (operações registrador-registrador): passa por IF, ID, EX e WB. Não precisa de acesso à memória. Logo consome
ciclos. - IF: buscar opcode e instrução.
- ID: decodificar e ler registradores.
- EX: executar a operação ALU.
- WB: escrever resultado no registrador.
-
Instrução LW (load word): passa por IF, ID, EX (calcula endereço), MEM (ler memória) e WB (escrever no registrador). Logo consome
ciclos. -
Instrução SW (store word): passa por IF, ID, EX (calcula endereço) e MEM (escreve na memória). Não precisa de WB, logo consome
ciclos.
Se você ficar na dúvida na prova, basta lembrar: LW precisa de acesso à memória e depois de escrever no registrador => 5 ciclos; R-type não usa memória => 4 ciclos; SW escreve na memória mas não escreve registrador => 4 ciclos.
Passo 4
Agora calculamos o número de ciclos consumidos por cada grupo de instruções:
- Para as
instruções R, com ciclos cada:
- Para as
instruções LW, com ciclos cada:
- Para as
instruções SW, com ciclos cada:
Somando todos:
Passo 5
Agora aplicamos a fórmula do Passo 2 com
:
Convertendo para microssegundos (lembrando que
):
Passo 6
Verificação alternativa (útil para checar em prova): calcular o CPI médio e usar
.
Mesma resposta — sinal de que os cálculos estão coerentes.