capítulo 4 - ufam - universidade federal do amazonas...

92
Capítulo 4 O Processador

Upload: nguyenkhanh

Post on 23-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Capítulo 4

O Processador

Page 2: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Introdução

Fatores de desempenho da CPU Contagem de instrução

Determinado pelo ISA e compilador

CPI e tempo de ciclo Determinado pelo hardware da CPU

Nós examinaremos duas implementações do MIPS Uma versão simplificada

Uma versão de pipeline mais realista

Subconjunto simples, mostra a maioria dos aspectos Referência de memória: lw, sw

Aritmética/lógica: add, sub, and, or, slt

Transferência de controle: beq, j

Page 3: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Execução da Instrução (1)

Para cada instrução, os dois primeiros passos são idênticos:

Envia o contador de programa (PC) para a memória que contém o código

busca a instrução a partir daquela memória

Lê um ou dois registradores, usando os campos da instrução para selecionar os registradores para ler

Para a instrução de carregar a palavra, nós precisamos ler somente um registrador

A maioria das outras instruções exigem que se leia dois registradores

Após estas etapas, as ações para completar a instrução depende da classe de instrução

Page 4: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Execução da Instrução (2)

Dependendo da classe de instrução

Usa a unidade lógica aritmética (ULA) para calcular

Endereço da memória para instruções load/store

Resultado aritmético para a execução da operação

Comparações para o endereço alvo de desvio

Instrução de referência de memória precisa ter acesso a memória para ler/escrever dados

Instruções de lógica aritmética deve escrever dados a partir da ULA ou memória no registrador

Instruções de desvio precisam alterar o próximo endereço de instrução baseado na comparação

PC endereço alvo ou PC + 4

Page 5: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Visão Geral da CPU

Fornece endereço da instrução

PC+4

- endereço de memória (resultado da ULA ou memória no reg.)- resultado aritmético (escreve resultado da ULA no reg.)- comparação (PC e offset do desvio são somados)

Linhas interligando as unidades funcionais representam barramentos

Page 6: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Multiplexadores

Não pode simplesmente juntar os fios Use multiplexadores

Deve-se acrescentar um elemento lógico que escolhe entre as várias fontes e dirige uma dessas fontes para o seu destino

Vindo de dois somadores

ULA / mem. dados

reg. / campo imediato da instrução

Page 7: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício

Considere um pequeno multiplexador com 4 entradas de dados de 1 bit

a) Este bloco contém somente lógica, somente flip-flops, ou ambos?

b) Mostre como este bloco pode ser implementado. Use somente AND, OR, NOT

c) Estenda a letra b) com buffers tri-state

A intenção do estado Z é permitir que diversoscircuitos compartilhem o mesmo barramentode dados, sem afetar umas as outras

Entrada SaídaA B C0 0 Z1 0 Z0 1 01 1 1

Page 8: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Controle

Memória de dados deve ler em um load e escrever em um storeregs. devem escrever

em uma instrução de load e aritmética

estas operações são dirigidas pelas linhas de controle que são definidas em função de vários campos da instrução

Page 9: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício

Diferentes instruções utilizam diferentes blocos de hardware na implementação básica do ciclo único

a) Quais são os valores dos sinais de controle gerados pelo controle do slide anterior?

b) Quais recursos (blocos) executam uma função útil?

Instrução Interpretação

a. AND Rd, Rs, Rt Reg[Rd] = Reg[Rs] AND Reg[Rt]

b. SW Rt, Offs(Rs) Mem[Reg[Rs] + Offs] = Reg[Rt]

Page 10: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Fundamentos de Lógica

Os dados são codificados em binário

Baixa tensão = 0, Alta tensão = 1

Um fio por bit

Dados de múltiplos bits codificados em barramentos de mútiplos fios

Elemento combinacional

Opera em dados

Saída é uma função da entrada

Elementos de estado (sequencial)

Armazena dados

Page 11: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Elementos Combinacionais

Porta AND

Y = A & B

A

BY

I0

I1Y

Mux

S

Multiplexador

Y = S ? I1 : I0

A

B

Y+

A

B

YALU

F

Somador

Y = A + B

Unidade lógica/aritmética

Y = F(A, B)

Page 12: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Elementos Sequenciais (1)

Registrador: armazena dados num circuito

Usa um sinal de relógio para determinar quando atualizar o valor armazenado

Disparado pela borda: atualiza quando Clk muda de 0 para 1

D

Clk

Q

Clk

D

Q

Clk D Q Comentário

0 X Qant Nenhuma mudança

1 0 0 Reseta

1 1 1 Seta

Page 13: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Elementos Sequenciais (2)

Registrador com controle de escrita

Somente atualiza na borda do relógio quando a entrada do controle de escrita é 1

Usado quando o valor armazenado é solicitado mais tarde

D

Clk

Q

Write

Write

D

Q

Clk

Page 14: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Metodologia de Relógio

Lógica combinacional transforma dados durante ciclos de relógio Entre as bordas do relógio

Entrada a partir de elementos de estado, saída para elemento de estado

Atraso mais longo determina o período de relógio

Uma metodologia de disparo de bordas permite que um elemento de estado possa ser lido e escrito no mesmo ciclo de relógio, sem criar uma corrida que poderia levar a valores de dados indeterminados

Page 15: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Construindo Caminho de Dados

Caminho de dados

Elementos que processam dados e endereços na CPU

Registradores, ULAs, muxes, memórias, …

Nós vamos construir um caminho de dados do MIPS de forma incremental

Refinando o design geral Unidade de memória: armazena as instruções de um

programa e fornece as instruções dado um endereço

Contador de programa (PC): armazena o endereço da instrução atual

Somador: incrementa o endereço de PC para o endereço da próxima instrução

Page 16: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Busca Instrução

Registrador de 32 bits

Incrementa por 4 para próxima

instrução

fornece as instruções dado um endereço

Page 17: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Instruções do Format-R

Lê dois operandos de registrador (Read Register)

Executa operação lógica/aritmética

Escreve resultado no registrador (Write Register)

No total, tem-se 32 regs (i.e., 25)

O barramento da entrada e saída de dados são de 32 bits

op rs rt rd shamt funct

6 bits 6 bits5 bits 5 bits 5 bits 5 bits

add, sub, AND, OR e slt

Fornece dado a ser escrito no registrador

Page 18: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Instruções de Load/Store

Lê operandos do registrador

Calcula endereço usando um deslocamento de 16 bits

Usa ULA, mas com deslocamento de sinal estendido

Load: Lê memória offset ($t2) e atualiza registrador ($t1)

Store: Escreve valor do registrador ($t1) para memória offset ($t2)

lw $t1,offset_value($t2)sw $t1,offset_value ($t2)

Soma registrador base ($t2) ao campo offset de 16 bits sinalizado

Usado pelo load

Usado pelo store

Page 19: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Instruções de Desvio (1)

Lê operandos do registrador

Compara operandos

Usa ULA, subtrai e checa saída Zero

Calcula endereço alvo

Deslocamento de extensão do sinal

Desloca 2 casas para esquerda (aumenta o intervalo efetivo do offset por um fato de 4)

Adiciona ao PC + 4 Já calculado pela busca de instrução

op rs rt constante ou endereço

6 bits 5 bits 5 bits 16 bits

beq $t1,$t2,offset

offset de 16 bits sinalizado

offset

Page 20: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Instruções de Desvio (2)

Somente redireciona

fios

Fio do bit de sinal replicado

Usa ULA para avaliar a condição do desvio

Um somador para calcular o alvo de desvio como a soma do PC incremento e a extensão do sinal

Saída zero é true se os dois valores forem iguais

O deslocamento vai jogar fora somente os bits de sinal

A unidade shift-left 2 é simplesmente um roteamento dos sinais entre a entrada e saída que adiciona 00 aos bits menos significativos da extensão do sinal de offset

Dobra a quantidade de fios

Page 21: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Compondo os Elementos

O caminho de dados tenta executar todas as instruções em um único ciclo de relógio

Nenhum dos recursos do caminho de dados pode ser usado mais de uma vez por cada instrução

de modo que, qualquer elemento necessário mais do que uma vez, deve ser duplicado

Por isso, precisamos de uma memória de instruções separada da memória de dados

Compartilhar elemento do caminho de dados entre duas diferentes classes de instrução

Usar multiplexadores e sinal de controle para selecionar entre as múltiplas entradas

Page 22: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Caminho de Dados Tipo-R/Load/Store

Instruções tipo-R usam dois regs

Instruções tipo load/storeusam sign-extended

O valor armzenado no registrador de destino vem da ULA (p/ uma instrução do tipo-R) ou da memória (p/ um instrução do tipo load)

load/store usam um reg + offset

Tipo-R

load

Page 23: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

O Caminho de Dados Completo

Page 24: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício 1

Quais das seguintes frases estão corretas para uma instrução load? Consulte o slide anterior

a) MemtoReg deve ser setado para fazer com que o dado da memória seja enviado para o arquivo de registrador

b) MemtoReg deve ser setado para fazer com que o registrador de destino correto seja enviado para o arquivo de registrador

c) Nós não nos importamos sobre a definição de MemtoReg para loads

Page 25: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício 2

O caminho de dados de ciclo único, descrito conceitualmente até aqui, deve ter memória de instruções e dados separada, porque

a) O formato das instruções e dos dados são diferentes no MIPS, e deste modo diferentes memórias são necessárias

b) Tendo memórias separadas é menos dispendioso

c) O processador opera em um ciclo e não pode usar uma memória de única porta para dois acessos diferentes dentro desse ciclo

Page 26: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício 3

Diferentes unidades de execução e blocos de lógica digital têm diferentes latências (tempo necessário para realizar o trabalho).

I-Mem Add Mux ULA Regs D-Mem Control

a. 200ps 70ps 20ps 90ps 90ps 250ps 40ps

b. 750ps 200ps 50ps 250ps 300ps 500ps 300ps

Qual é o tempo necessário para executar as instruções AND,LOAD e BEQ? Responda esta questão com base no circuito do slide 8

Page 27: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Controle da ULA (1)

ULA usada para

Load/Store: F = adiciona

Desvio: F = subtrai

Tipo-R: F = depende do campo funct

Controle da ULA Função

0000 AND

0001 OR

0010 add

0110 subtract

0111 set-on-less-than

1100 NOR

Page 28: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Controle da ULA (2)

Assume ALUOp de 2-bit derivado a partir do opcode

Lógica combinacional deriva o controle da ULA

opcode ALUOp Operação funct Função da ULA Controle daULA

lw 00 load word XXXXXX add 0010

sw 00 store word XXXXXX add 0010

beq 01 branch equal XXXXXX subtract 0110

R-type 10 add 100000 add 0010

subtract 100010 subtract 0110

AND 100100 AND 0000

OR 100101 OR 0001

set-on-less-than 101010 set-on-less-than 0111

Page 29: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Controle da ULA (3)

Tabela da verdade para os 4 bits de controle da ULA

As entradas são ALUOp e o campo de código de função

Os dois primeiros campos do campo de função são sempre 10

Don’t care terms = X

Page 30: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Controle da ULA (4)

Gera os 4 bits de controle baseado nos bits da ALUOp e o código de função

Page 31: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício

Projete um circuito lógico com três entradas A, B e C, cuja saída será nível alto apenas quando a maioria das entradas for nível alto

Page 32: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

A Unidade de Controle Principal

Sinais de controle derivados a partir da instrução

0 rs rt rd shamt funct

31:26 5:025:21 20:16 15:11 10:6

35 or 43 rs rt endereço

31:26 25:21 20:16 15:0

4 rs rt endereço

31:26 25:21 20:16 15:0

Tipo-R

Load/Store

Desvio

opcode sempre lê

lê, exceto p/ load

escrita p/ tipo-R e

load

sign-extend e add

Page 33: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Caminho de Dados com Controle

Page 34: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Instruções do Tipo-R

Page 35: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Instruções Load

Page 36: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Instruções Branch-on-Equal

Page 37: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Finalizando o Controle (1)

A função de controle pode ser precisamente definida usando a seguinte tabela:

Instruções do formato-R (add, sub, AND, OR, and slt):

Possuem regs fontes rs e rt e reg de destino rd Define como ALUSrc e RegDst são setados

Usam RegWrite=1, mas nunca lêem nem escrevem na memória de dados

Page 38: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Finalizando o Controle (2)

Quando o sinal de controle de branch é zero, o PC é substituído de forma incondicional por PC+4

Caso contrário, o PC é substituído pelo alvo de desvio se a saída Zero da ULA for também alto

O campo ALUOp para instruções do tipo-R é setado para 10 para indicar que o controle da ULA deve ser gerado a partir do campo funct

Instruções do formato load/store usam ALUSrce ALUOp para executar o cálculo do endereço

MemRead e MemWrite são setados para executar acesso a memória

RegDst e RegWrite são setados para um load para fazer com que o resultado seja armazenado em rt

Page 39: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Finalizando o Controle (3)

A instrução de desvio envia os regs rs e rtpara a ULA (similar ao formato-R)

ALUOp é setado para uma subtração (Controle da ULA = 01), que é usado para teste de igualdade

MemtoReg é irrelevante quando o sinal RegWrite é zero (uma vez que o registrador não está sendo escrito)

RegDst é também irrelevante quando RegWrite é 0

Page 40: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Finalizando o Controle (4)

A função de controle para uma implementação de um único ciclo

Page 41: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Finalizando o Controle (5)

Implementação estruturada da função de controle

Page 42: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício

A latência de componentes individuais do caminho de dados afetam o tempo de ciclo de relógio de todo caminho de dados

I-Mem Add Mux ULA Regs D-Mem Sign-extend

Shift-left-2

a. 200ps 70ps 20ps 90ps 90ps 250ps 15ps 10ps

b. 750ps 200ps 50ps 250ps 300ps 500ps 100ps 5ps

a) Qual é o tempo de ciclo de relógio se somente as instruções do tipo ULA (add, AND, etc.) são executdas?

b) Qual é o tempo de ciclo de relógio se somente instruções LW são suportadas?

c) Qual é o tempo de ciclo de relógio se somente instruções ADD, BEQ, LW e SW são suportadas?

Page 43: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Implementando Jumps

Jump usa endereço de palavra

Atualiza PC com concatenação de

Os 4 bits superiores do PC atual + 4 (estes são os bits 31:28 da instrução de endereço seguinte)

Endereço de jump de 26 bits

Os bits 002

Precisa de um sinal de controle extra (Jump) decodificado a partir do opcode

000010 endereço

31:26 25:0

Jump

Page 44: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Caminho de Dados com Jumps Adicionados

Page 45: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Aspectos de Desempenho

Atraso mais longo determina período de relógio

Caminho crítico: instrução de load

Memória de instrução registrador ULA memória de dados registrador

Não é viável variar período para diferentes instruções

O ciclo de relógio deve ter a mesma duração para cada instrução neste projeto de ciclo único

Viola princípio de projeto

Fazendo o caso comum rápido

Melhorar o desempenho através do pipeline

Page 46: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Analogia do Pipeline

Lavanderia pipelined: sobreposição de execução

Paralelismo melhora o desempenho

Quatro cargas:

Aceleração = 8/3.5 ≈ 2.3

Dependendo do número de cargas, aceleração pode ser igual ao número de estágios no pipeline

3.5

8

Page 47: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Pipeline do MIPS

Cinco estágios, um passo por estágio

1. IF: Busca instrução da memória

2. ID: Decodifica instrução & lê registrador

3. EX: Executa operação ou calcula endereço

4. MEM: Acessa o operando de memória

5. WB: Escreve o resultado de volta para o registrador

Page 48: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Desempenho do Pipeline (1)

Suponha que o tempo para os estágios é:

100ps para escrita e leitura do registrador

200ps para os outros estágios

Compara um caminho de dados com pipeline e com único ciclo

Instr BuscaInstr

Leiturado reg

OperaçãoULA

Acesso a memória

Escritado reg

Tempo total

lw 200ps 100 ps 200ps 200ps 100 ps 800ps

sw 200ps 100 ps 200ps 200ps 700ps

R-format 200ps 100 ps 200ps 100 ps 600ps

beq 200ps 100 ps 200ps 500ps

Page 49: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Desempenho do Pipeline (2)

Único ciclo (Tciclo= 800ps)

Pipeline (Tciclo= 200ps)

Page 50: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Aceleração do Pipeline

Se todos os estágios estiverem balanceados

i.e., todos têm o mesmo tempo

Tempo entre instruçõespipelined

= Tempo entre instruçõesnonpipelined

Número de estágios

Se não estiver balanceado, aceleração é menor

Aceleração devido ao aumento da taxa de transferência (throughput)

Latência (tempo para cada instrução) não diminui

Sob condições ideais e com um grande número de instruções, a aceleração (com o pipeline) é igual ao número de estágios

Tp = 800ps = 160ps5

Page 51: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Pipelining e Projeto do ISA

ISA do MIPS foi projetado para pipelining Todas as instruções são de 32 bits

Mais fácil de buscar e decodificar em um ciclo

c.f. x86: instruções de 1 byte a 17 bytes Implementações recentes do x86 traduzem as instruções em

operações mais simples, parecido com o MIPS

Poucos e regulares formatos de instruções e.g., o campo dos registradores fontes estão sempre

localizados no mesmo lugar em cada instrução

Pode decodificar e ler registradores em um passo

Endereçamento de load/store Operandos de memória somente aparecem no load/store

Pode calcular endereço no 3rd estágio, acessar memória no 4th estágio

Alinhamento de operandos de memória Acesso a memória leva somente um ciclo

Page 52: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Perigos

Situações que impeçam de iniciar a próxima instrução no próximo ciclo

Perigo estrutural O hardware não suporta a combinação de instruções

que desejamos executar no mesmo ciclo de relógio

Um recurso necessário está ocupado

Perigo de dados Precisa esperar pela instrução anterior para

completar a sua leitura / escrita de dados

Perigo de controle Decidir sobre a ação de controle depende da

instrução anterior

Page 53: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Perigo Estrutural (1)

Conflito por utilização de um recurso

e.g., usar uma combinação de máquina de lavar e secar em vez de uma lavadora e secadora separado

No pipeline do MIPS, suponha uma única memória e uma quarta instrução

No mesmo ciclo, uma instrução estaria acessando o dado da memória, enquanto a quarta instrução estaria buscando uma instrução da mesma memória

Page 54: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Perigo Estrutural (2)

Load/store exigem acesso aos dados

Busca da instrução teria que parar para aquele ciclo

Causaria uma “bolha” no pipleline

Deste modo, o caminho de dados no pipelineexige memórias de instruções e dados separados

Caso contrário, pode-se ter um perigo estrutural

Ocorre quando uma instrução planejada não pode executar no ciclo de relógio apropriado, pois o hardware não suporta a combinação de instruções que são definidas para executar

Page 55: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Perigo de Dados

Uma instrução depende da conclusão do acesso de dados por uma instrução anterior add $s0, $t0, $t1sub $t2, $s0, $t3

Não escreve o resultado até o quinto estágio

Desperdiçaria 3 ciclos de relógio

Page 56: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Emcaminhamento (Bypassing)

Usar resultado quando estiver calculado

Não esperar para ser armazenado em um registrador

Assim que a ULA produz a soma, pode-se fornecer o resultado como entrada para a subtração

Exige conexões extras no caminho de dados

Page 57: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Perigo de Dados no Uso do Load

Nem sempre é possível evitar atrasos através do encaminhamento

Se o valor não for calculado, quando necessário

Não é possível encaminhar para trás no tempo!

Disponível somente depois do quarto estágio

Ainda existe atraso de um estágio

Page 58: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Escalonamento para Evitar Atrasos

Reordenar o código para evitar o uso de resultados do load na próxima instrução

Código C para A = B + E; C = B + F;

lw $t1, 0($t0)

lw $t2, 4($t0)

add $t3, $t1, $t2

sw $t3, 12($t0)

lw $t4, 8($t0)

add $t5, $t1, $t4

sw $t5, 16($t0)

parada

parada

lw $t1, 0($t0)

lw $t2, 4($t0)

lw $t4, 8($t0)

add $t3, $t1, $t2

sw $t3, 12($t0)

add $t5, $t1, $t4

sw $t5, 16($t0)

11 ciclos13 ciclos

Page 59: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Perigos de Controle

Precisa realizar uma decisão baseado nos resultados de uma instrução Enquanto as demais estão executando

Desvio determina o fluxo de controle Busca pela próxima instrução depende do resultado

do desvio

No pipeline nem sempre é possível buscar a próxima instrução logo após uma instrução de desvio

Pois o processador ainda estará trabalhando no estágio ID do desvio

No pipeline do MIPS Precisa comparar registradores e calcular alvo no

início do pipeline

Adicionar hardware para fazê-lo no estágio do ID

Page 60: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Parada no Desvio

Espera até que o resultado do desvio seja determinado

Antes de buscar a próxima instrução para executar

Hardware extra para testar regs, calcular o endereço dedesvio e atualizar o PC no segundo estágio do pipeline

Page 61: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Previsão de Desvio

Pipelines mais longos não podem facilmente determinar o resultado do desvio mais cedo

Pena por parada torna-se inaceitável

Prever o resultado do desvio

Prevê sempre que os desvios não serão tomados

Apenas pára se a previsão estiver errada

Caso contrário, o pipeline continua na velocidade máxima

No pipeline do MIPS

Pode prever desvios que não foram tomados

Busca instrução depois do desvio, sem atraso

Page 62: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

MIPS com Previsão

Previsão correta

Previsão incorreta

Quando o desvio não é realizado

Quando o desvio é realizado

Page 63: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Previsão de Desvio mais Realística

Previsão de desvio estático

Baseado no comportamento de desvio típico

Exemplo: desvios de laço e instruções if Laços são desvios que pulam para o topo do laço

uma vez que são susceptíveis de serem tomados e que se desviam para trás, poderia prever que os desvios são tomados e que pulam para um endereço anterior

Previsão de desvio dinâmico

Hardware mensura o comportamento real do desvio e.g., registra história recente de cada desvio

Assume que o comportamento futuro continuará a tendência

Quando errado, pára enquanto busca instrução, e atualiza história

Page 64: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Resumo de Pipeline

Pipeline melhora o desempenho, aumentando a taxa de instrução

Executa múltiplas instruções em paralelo

Cada instrução tem a mesma latência

Não reduz o tempo que uma instrução individual leva para completar

Sujeio a riscos

Estrutura, dado e controle

Projeto do conjunto de instrução afeta a complexidade da implementação do pipeline

The BIG Picture

Page 65: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício 1

Examinaremos como pipeline afeta o tempo de ciclo do processador. Assuma as seguintes latências de cada estágio individual:

a) Qual é o tempo de ciclo de relógio em um processador com e sem pipeline?

b) Qual é o tempo entre instruções (Tp)?

c) Qual é o desempenho de três instruções LW indep. em um processador com e sem pipeline?

IF ID EX MEM WB

a. 250ps 350ps 150ps 300ps 200ps

b. 200ps 170ps 220ps 210ps 150ps

Page 66: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício 2

Para as seguintes instruções, assuma que elas são executadas em um caminho de dados com 5 estágios de pipeline

a) Quais são os perigos que podemos encontrar?

b) Como eles podem ser resolvidos?

ADD R5, R2, R1LW R3, 4(R5)LW R2, 0(R2)OR R3, R5, R3SW R3, 0(R5)

a) LW R2, 0(R1)AND R1, R2, R1LW R3, 0(R2)LW R1, 0(R1)SW R1, 0(R2)

b)

Page 67: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício 3

Para cada sequência de código abaixo, declare se o mesmo deve parar, pode evitar paradas usando encaminhamento ou pode executar sem parar ou encaminhar

lw $t0, 0($t0)add $t1, $t0, $t0

Sequência 1

add $t1, $t0, $t0addi $t2, $t0, #5addi $t4, $t1, #5

Sequência 2

addi $t1, $t0, #1addi $t2, $t0, #2addi $t3, $t0, #2addi $t3, $t0, #4addi $t5, $t0, #5

Sequência 3

Page 68: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Caminho de Dados - Pipeline do MIPS

WB

MEM

Fluxo da direita para a esquerda leva a riscos

Instruções e dados se movem geralmente da esquerda para direita através dos cinco estágios

Perigo de dados

Perigo de controle

apenas as instruções posteriores no pipeline são influenciadas por esses movimentos de dados reverso

Page 69: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Registradores do Pipeline

Precisa de registradores entre estágios

Para manter a informação produzida no ciclo anterior

Analogia com a lavanderia: Ter um cesto entre cada par de estágios para guardar as roupas para o próximo passo

Page 70: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Operação do Pipeline

Fluxo ciclo-por-ciclo de instruções através do caminho de dados com pipeline

Diagrama do pipeline com “ciclo de relógio único”

Mostra o uso do pipeline num único ciclo

Destaca recursos utilizados

c.f. diagrama de “mútiplos ciclos de relógio”

Gráfico de operações ao longo do tempo

Nós vamos olhar para os diagramas de “ciclo de relógio único” para o load & store

Pois os mesmos são ativos em todos os cincos estágios

Page 71: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

IF para o Load, Store, …

Destaca a metade direitaquando está sendo lido e destaca a metade esquerda quando está sendo escrito

O endereço incrementado é salvo no registrador IF/ID caso seja necessário para uma instrução posterior (e.g., beq)

Page 72: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

ID para o Load, Store, …

Escreve no registrador ID/EX o valor de PC incrementado, os dois registradores e o sinal estendido

Destaca a metade direitaquando está sendo lido e destaca a metade esquerda quando está sendo escrito

Page 73: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

EX para o Load

Lê o conteúdo do reg. 1 e o sinal estendido a partir do reg. ID/EX e os adiciona usando a ULA

O resultado da soma é colocado no reg. EX/MEM

Destaca a metade direitaquando está sendo lido e destaca a metade esquerda quando está sendo escrito

Page 74: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

MEM para o Load

Lê a memória de dados usando o endereço a partir do reg. EX/MEM e carrega o dado no reg. MEM/WB

Destaca a metade direitaquando está sendo lido e destaca a metade esquerda quando está sendo escrito

Page 75: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

WB para o Load

Número do registrador incorreto

Lê o dado a partir do reg. MEM/WB e o escreve no registrador mostrado no meio da figura

A instrução no reg. IF/ID fornece o número do registrador de escrita; esta informação ocorre consideravelmente depois da instrução de load

Page 76: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Caminho de Dados Corrigido para o Load

O número do registrador de escrita agora vem a partir do reg. MEM/WB juntamente com o dado

O número do registrador é passado a partir do estágio do ID até alcançar o reg/ MEM/WB

Page 77: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

EX para o StoreO endereço efetivo é colocado no registrador EX/EM

Destaca a metade direitaquando está sendo lido e destaca a metade esquerda quando está sendo escrito

Page 78: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

MEM para o StoreMostra o dado sendo escrito na memóriaA única maneira de ter o dado disponível durante o estágio MEM é colocar o dado no EX/MEM no estágio EX

Destaca a metade direitaquando está sendo lido e destaca a metade esquerda quando está sendo escrito

Page 79: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

WB para o StoreNada acontece no ciclo do write-back, pois cada instrução atrás do store já está em progresso (não existe maneira de acelerar aquelas instruções)

Destaca a metade direitaquando está sendo lido e destaca a metade esquerda quando está sendo escrito

Page 80: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Diagrama de Pipeline de Múltiplos-Ciclos

Pipeline é difícil de entender, pois várias instruções estão executando simultaneamente

Destaca a metade direitaquando está sendo lido e destaca a metade esquerda quando está sendo escrito

Mostra o uso de recursos

Page 81: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Diagrama de Pipeline de Múltiplos-Ciclos

Forma tradicional (usa o nome em cada estágio em vez do uso de recursos)

Page 82: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Diagrama de Pipeline de um Único Ciclo

Estado do pipeline em um dado ciclo

Diagrama correspondente ao ciclo de relógio (CC) 5

Page 83: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Controle do Pipeline (Simplificado)

identificação dos sinais de controle em azul

Page 84: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Controle do Pipeline (1)

Podemos dividir as linhas de controle em cinco grupos de acordo com o estágio do pipeline

IF: Sinais de controle para ler a memória de instrução e escrever no PC (não existe controle especial)

ID: Como no estágio anterior, a mesma coisaacontece em todo ciclo de relógio

EX: Os sinais para setar são RegDst, ALUOp e ALUSrc

MEM: Os sinais para setar são Branch, MemRead e MemWrite

WB: Os dois sinais de controle são MemtoReg e RegWrite

Page 85: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Controle do Pipeline (2)

Sinais de controle derivados a partir da instrução

Como uma implementação de ciclo único

O PC é escrito em cada ciclo de relógio

Não existem sinais de escrita separados para os registradores de pipeline (IF/ID, ID/EX, EX/MEM e MEM/WB), pois os registradores são escritos durante cada ciclo de relógio

Page 86: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Controle do Pipeline (3)

EX: RegDst, ALUOp e ALUSrc

MEM: Branch, MemReade MemWrite

WB: MemtoReg e RegWrite

Page 87: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Perigo de Dados em Instruções da ULA

Considere a seguinte sequência de código:

As últimas 4 instruções são dependents do resultadono registrador $2

sub $2, $1,$3and $12,$2,$5or $13,$6,$2add $14,$2,$2sw $15,100($2)

Nós podemos resolver perigos com o encaminhamento

Como é que podemos detectar quando encaminhar?

Page 88: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Dependências & Encaminhamento

O valor apropriado do reg. $2 só estádisponível no CC5

Page 89: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Detectar a necessidade de encaminhamento (1)

Passe o número dos registradores ao longodo pipeline e.g., ID/EX.RegisterRs = número do registrador

para Rs definido no registrador do pipeline ID/EX

Os números do registrador do operando da ULA no estágio EX são dados por ID/EX.RegisterRs, ID/EX.RegisterRt

Perigo de dados quando1a. EX/MEM.RegisterRd = ID/EX.RegisterRs

1b. EX/MEM.RegisterRd = ID/EX.RegisterRt

2a. MEM/WB.RegisterRd = ID/EX.RegisterRs

2b. MEM/WB.RegisterRd = ID/EX.RegisterRt

Enc. a partirdo reg. pipelineEX/MEM

Enc. a partirdo reg. pipelineMEM/WB

Page 90: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Mas somente se a instrução de encaminhamento for escrever no registrador!

EX/MEM.RegWrite, MEM/WB.RegWrite

E somente se Rd para aquela instrução não for $zero

EX/MEM.RegisterRd ≠ 0,MEM/WB.RegisterRd ≠ 0

No nosso exemplo, temos um perigo quando a instrução add está no estágio EX e a instrução

anterior está no estágio MEM (condição 1a)

EX/MEM.RegisterRd = ID/EX.RegisterRs=$2

Detectar a necessidade de encaminhamento (2)

Page 91: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício 1

Neste exercício, desenhe o diagrama de execução do pipeline para este código:

lw $t0, 1200($t1) add $t0, $s2, $t0 sw $t0, 1200($t1)

Label1: LW R2, 0(R2)BEQ R2, R0, Label1;

taken once, then not takenOR R2, R2, R3SW R2, 0(R5)

Sequência de código 1

Sequência de código 2

Assuma um processador com pipeline de 5 estágios, encaminhamentocompleto, previsor de desvio

Page 92: Capítulo 4 - UFAM - Universidade Federal do Amazonas ...home.ufam.edu.br/lucascordeiro/asd/slides/4_o_processador.pdf · Fatores de desempenho da CPU ... Registrador com controle

Exercício 2

Classifique as dependências nesta sequência:

sub $2, $1, $3and $12, $2, $5 or $13, $6, $2add $14, $2, $2sw $15, 100($2)