Estudante Universitário

Páginas: 6 (1307 palavras) Publicado: 20 de maio de 2014
Sistemas de Microprocessadores

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 pordetrá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 adescodificaçã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 cadainstruçã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, DEEC2014

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 (nascondições da alínea b)).
d) Considere

a

representada

representação
abaixo

perfeitamente

(F="Instruction

“pipelined”

Fetch",

do

mesmo

D="Decode",

programa

A="Execute”

ou

“Arithmetic", M="Memory Access", R="Write Back") :
addi
sw
lw
or
lw
add

$t0,
$t3,
$t5,
$t5,
$t2,
$t3,

$t1, 100
8($t0)
0($t6)
$t0, $t3
4($t0)
$t1, $t2

F D A M
F D A
F DF

R
M
A
D
F

R
M
A
D
F

R
M R
A M R
D A M R

Desenhe setas para indicar a dependência de dados entre os diferentes níveis. A seta
deve começar no nível em que os dados ficam pela primeira vez disponíveis (i.e. não
necessariamente no nível R) e terminar onde os dados são absolutamente necessários
(i.e. não necessariamente no nível D). Nota: pode resolver o exercício noutrafolha que
não a do enunciado se achar que isso permite uma maior clareza na resolução.
e) Com base no esquema que obteve acima acima, pode reparar que algumas das setas
estão dirigidas no sentido do fluxo temporal (i.e. para a a frente, “forward”),
indicando que os valores em questão são necessários pouco depois de estarem
disponíveis, que é o que se pretende. Outras setas não têm essapropriedade, e
estão dirigidas no sentido contrário ao do fluxo temporal (“backward”). Use estas
últimas setas para preencher a tabela seguinte. Mais especificamente, liste as
instruções que têm uma dependência crítica do tipo “leitura-após-escrita”, que não
pode ser resolvida com um mecanismo de “forwarding”. Note que pode não
necessitar de preencher todos os espaços em branco.

SMP-MiEEC

Pág.2/5

1.º ano, 2.º sem., 2013/14, DEEC 2014

LAB 11

DEEC-FCTUC

________ é dependente da instrução 1
________ é dependente da instrução 2
________ é dependente da instrução 3
________ é dependente da instrução 4
________ é dependente da instrução 5
f) Refaça a tabela da alínea (d) por forma a incluir “stalls” que resolvam os conflitos
que detectou. Um “Stall”

significa que...
Ler documento completo

Por favor, assinar para o acesso.

Estes textos também podem ser interessantes

  • Estudante Universitario
  • Quem é o estudante universitário
  • Estudante Universitário
  • Estudante universitário
  • Estudante Universitario
  • Estudante universitário
  • Estudante universitario
  • Estudante Universitário

Seja um membro do Trabalhos Feitos

CADASTRE-SE AGORA!