Estudante Universitário
DEP. DE ENG.ª ELECTROTÉCNICA E DE COMPUTADORES
FACULDADE DE CIÊNCIAS E TECNOLOGIA
UNIVERSIDADE DE COIMBRA
Pipelining
Pipelining é uma técnica que permite a execução de múltiplas instruções em paralelo, e que em geral permite melhorar de forma dramática o desempenho de microprocessadores. Neste laboratório pretende-se ilustrar algumas das ideias chave por detrás deste conceito, bem como as soluções típicas adoptadas para resolver dilemas de interdependência de instruções.
Exercício A
O processamento de uma instrução do MIPS tipicamente requer cinco passos:
1. Ler a instrução da memória (F = "Instruction Fetch").
2. Ler os registos enquanto descodifica a instrução. O formato das instruções do MIPS permite que a leitura dos registos e a descodificação sejam feitas em simultâneo
(D="Decode").
3. Executar uma operação ou calcular um endereço (A="Execute” or “Arithmetic").
4. Aceder a um operando na memória de dados (M="Memory Access").
5. Escrever o resultado num registo (R="Write Back").
Na tabela I são dados os tempos de execução de cada estágio para diferentes classes de instruções: Tabela I. Tempo total de execução de cada instrução calculado a partir do tempo de cada componente, para um processador fictício.
a) Calcule o valor mínimo do ciclo de relógio para execução de uma instrução por ciclo sem pipelining.
b) Repita a questão anterior para execução usando pipelining (em cada ciclo de relógio é executado um passo do processamento da instrução).
SMP-MiEEC
Pág. 1/5
1.º ano, 2.º sem., 2013/14, DEEC 2014
LAB 11
DEEC-FCTUC
As questões seguintes são baseadas no seguinte excerto de código: addi sw lw or lw add
$t0,
$t3,
$t5,
$t5,
$t2,
$t3,
$t1, 100
8($t0)
0($t6)
$t0, $t3
4($t0)
$t1, $t2
#
#
#
#
#
#
Linha
Linha
Linha
Linha
Linha
Linha
1
2
3
4
5
6
c) Calcule o tempo total de execução do programa num processador sem pipelining (nas