Implementação do MIPS
- Para cada uma das seguintes instruções, siga o trajecto da
informação correspondente à sua execução tendo em conta a
implementação multi-ciclo do MIPS e a correspondente máquina de
estados associada ao control-path:
- lw $t2, 100($t1)
- sw $s2, -12($t1)
- add $s1, $t1, $s2
- beq $t1, $s5, 64
- j 5164
- Considere que as 5 etapas do data-path têm as seguintes latências:
- IF: 250ps
- ID: 200ps
- EX: 150ps
- MEM: 300ps
- WB: 200ps
Qual o tempo mínimo de um ciclo do relógio (clock cycle time)
duma implementação do MIPS utilizando ciclo único, multi-ciclo e
pipelining? E qual o tempo de execução de cada uma das instruções
acima nessas 3 implementações?
- Considere que um dado programa tem a seguinte distribuição de
instruções:
- instruções do tipo load (e.g. lw): 20%
- instruções do tipo store (e.g. sw): 15%
- instruções aritméticas (e.g. add): 45%
- instruções de branch (e.g. beq): 15%
- instruções de jump (e.g. j): 5%
Considerando igualmente as latências acima (e respetivos tempos
mínimos de ciclos de relógio), compare o tempo de execução do programa
numa implementação do MIPS utilizando ciclo único, multi-ciclo e
pipelining (ignore os custos associados a pipeline hazards).