Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Tópico 9: Microarquitetura (Processador com Pipeline)
Prof. Jhonattan Cordoba Ramirez
Escola de Engenharia
Universidade Federal de Minas Gerais (UFMG)
ELT123 - Arquitetura e Organização de Computadores
Introdução
• Subdivisão do processador de single-cycle em cinco estágios de pipeline.
• A latência de cada instrução fica inalterada, mas a eficiência é melhorada por um fator
de cinco.
• Paralelismo temporal.
• Buscar: Procura as instruções que serão executadas.
• Decodificar: Os operandos do banco de registro serão lidos e decodificados com a
finalidade de disponibilizar ao sistema os sinais de controle.
• Execução: Executa calculo feito na ALU.
• Memoria: Lê e escreve na memoria de dados.
• WriteBack: Resultado obtido é escrito no banco de registro
Distribuição temporal
Cada instrução é executada cada 950 ps
Latência = 950 ps
Total 1.05 Bi de instruções/seg
Cada estágio possui a duração do mais 
comprido
Comprimento total de cada estágio: 250 ps “MAIS LENTO”
Latência da instrução é de 5 x 250 ps = 1250 ps
Taxa de transferência é 1 instrução cada 250 ps ~ 4 Bi Instruções/seg
Distribuição temporal
Operação pipeline
(IM) Memoria de instrução
(RF) Banco de registro
Operação executada na ALU
(DM) Memoria de dados
WriteBack no banco de registros
Estágio RF é escrito na primeira 
parte do ciclo e lido na segunda
O banco de registro é escrito por 
todas as instruções exceto sw
Possíveis problemas?
Operação pipeline
Conflitos Hazard: Resultados
de uma instrução são
requeridos por uma instrução
posterior.
Exemplo: Trocar $s2 pelo $t2 na instrução add
O registrador $s2 deve ser escrito previamente na instrução lw.
Método de solução:
• Forwarding:
Encaminhamento de dados
• Stalls ou Flushes : Delay de
execução
Caminho de dados pipeline
O caminho de dados pipeline, é formado
dividindo o caminho de dados single-cycle
em cinco estágios separados
É usado os sufixos F, D, E, M ou W para
indicar cada fase.
A leitura do banco de registros é feita na
fase de decodificação, mas a escrita é feita
na fase de WriteBack.
O banco de registros no pipeline, escreve
no flanco descendente do clock.
Controle pipeline
Hazards
• Conflitos Hazard: Resultados de uma instrução são requeridos por uma
instrução posterior.
• Tipos de Hazard:
• Hazard de dados: Leitura de um registro que ainda não foi escrito.
• Hazard de controle: Decisão de qual é a próxima instrução, não foi
tomada no momento em que a busca é realizada.
• Método de solução:
• Forwarding: Encaminhamento de dados
• Stalls ou Flushes: Delay de execução
Hazards
Dado errado
Dado errado
Dado correto
Hazard RAW (Ready After Writer)
Hazards (Solução: Encaminhamento)
if rsE ! = 0 and rsE == WriteRegM and RegWriteM then ForwardAE = 10
elseif rsE ! = 0 and rsE == WriteRegW and RegWriteW then ForwardAE = 01
else ForwardAE = 01
SrcA – Verifica rs
SrcB – Verifica rt
Hazards (Solução: Encaminhamento)
Hazards (Solução: Delay de execução)
Nesse caso, o ciclo específico fica suspenso pela quantidade de ciclos que seja necessário, adicionalmente, 
as instruções subsequentes são retidas devido que o elemento à seguir está ocupado.
A instrução lw, não termina 
a leitura de dados até o 
final do estágio de 
memoria.
Hazards (Solução: Delay de execução)
• Suspenção de um estado
• Desativação dos registros pipeline
• Nesse caso, são zerados os sinais no estado de execução.
Hazards (Solução: Delay de execução)
lwstall = rsD == rtE or rtD == rtE and MemtoRegE
stallF = stallD = FlushE = lwstall
Hazards de controle
Na implementação de uma instrução beq apresenta um
hazard de controle: O processador com pipeline, não
sabe que instrução obter a seguir, devido que a decisão
do branch ainda não foi tomada no momento que o
estado de buscar da próxima instrução é realizado.
BranchM
ZerosM
PCSrcM
• Stall pode ser uma alternativa de 
solução?
SOLUÇÃO: Começar a execução do branch baseado em uma previsão.
• Previsão errada: Processador descarta as instruções executadas.
• Previsão correta: Sequencia de codigos, continua execução, seja positive ou negative a previsão
• Previsão feita: Branch não será realizado.
• Resultado após execução do beq: Branch deve ser
realizado sim.
• Sequência de execução continua.
• Próximas três instruções após beq serão descartadas
e o registro do pipeline limpo.
Hazards de controle
BRANCH MISPREDICTION PENALTY
Hazards de controle
Hazards de controle
• Ciclos de instrução desperdiçados.
• Como reduzir os Branch Misprediction Penalties?
• Incluir um comparador de igualdade para RD1 e RD2 no estágio de DECODIFICAÇÃO.
Hazards de controle
Introduz um nodo hazard
de dados (RAW)
Hazards de controle
O benchmark SPECint2000 considerado no Exemplo Multicycle é composto de
aproximadamente 25% cargas, 10% armazenamentos, 11% branch, 2% jumps, e 52%
instruções do tipo-R. Suponha que 40% das cargas são imediatamente seguidas por uma
instrução que usa o resultado, exigindo um stall, e que um quarto dos branchs são
erradamente previstos, exigindo um flush. Suponha que os jumps sempre descartam as
instruções subsequentes. Ignorar outros harzards. Calcular o CPI médio do processador com
pipeline.
• Interação com a memoria: CPI = 0,6 × 1 + 0,4 × 2 = 1,4
• Implementação de branchs: CPI = 0,75 × 1 + 0,25 × 2 = 1,25
• Jump sempre tem uma CPI = 2.
𝐂𝐂𝐂𝐂𝐈𝐈𝐦𝐦𝐦𝐦𝐦𝐦𝐦𝐦𝐦𝐦 = 𝟎𝟎,𝟐𝟐𝟐𝟐 × 𝟏𝟏,𝟒𝟒𝟎𝟎 + 𝟎𝟎,𝟏𝟏𝟎𝟎 × 𝟏𝟏,𝟎𝟎𝟎𝟎 + 𝟎𝟎,𝟏𝟏𝟏𝟏 × 𝟏𝟏,𝟐𝟐𝟐𝟐 + 𝟎𝟎,𝟎𝟎𝟐𝟐 × 𝟐𝟐,𝟎𝟎𝟎𝟎 + 𝟎𝟎,𝟐𝟐𝟐𝟐 × 𝟏𝟏,𝟎𝟎𝟎𝟎
= 𝟏𝟏,𝟏𝟏𝟐𝟐
Exemplo
Exemplo
Exemplo
𝑡𝑡𝑐𝑐 = 𝑚𝑚𝑚𝑚𝑚𝑚
𝑡𝑡𝑝𝑝𝑐𝑐𝑝𝑝 + 𝑡𝑡𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡𝑠𝑠𝑚𝑚𝑠𝑠𝑠𝑠𝑝𝑝
2(𝑡𝑡𝑅𝑅𝑅𝑅𝑅𝑅𝑚𝑚𝑅𝑅𝑅𝑅 + 𝑡𝑡𝑚𝑚𝑠𝑠𝑚𝑚 + 𝑡𝑡𝑚𝑚𝑝𝑝 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑚𝑚𝑠𝑠𝑚𝑚 + 𝑡𝑡𝑠𝑠𝑚𝑚𝑠𝑠𝑠𝑠𝑝𝑝)
𝑡𝑡𝑝𝑝𝑐𝑐𝑝𝑝 + 𝑡𝑡𝑚𝑚𝑠𝑠𝑚𝑚 + 𝑡𝑡𝑚𝑚𝑠𝑠𝑚𝑚 + 𝑡𝑡𝐴𝐴𝐿𝐿𝐿𝐿 + 𝑡𝑡𝑠𝑠𝑚𝑚𝑠𝑠𝑠𝑠𝑝𝑝
𝑡𝑡𝑝𝑝𝑐𝑐𝑝𝑝 + 𝑡𝑡𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑅𝑅𝑚𝑚𝑠𝑠𝑚𝑚 + 𝑡𝑡𝑠𝑠𝑚𝑚𝑠𝑠𝑠𝑠𝑝𝑝
2(𝑡𝑡𝑝𝑝𝑐𝑐𝑝𝑝 + 𝑡𝑡𝑚𝑚𝑠𝑠𝑚𝑚 + 𝑡𝑡𝑅𝑅𝑅𝑅𝑚𝑚𝑅𝑅𝑚𝑚𝑠𝑠𝑚𝑚)
Buscar
Decodificação
Execução
Memória
WriteBack
𝑡𝑡𝑐𝑐 = 𝑚𝑚𝑚𝑚𝑚𝑚
30 + 250 + 20
2(150 + 25 + 40 + 15 + 25 + 20)
30 + 25 + 25 + 200 + 20
30 + 220 + 20
2(30 + 25 + 100)
= 550 𝑝𝑝𝑝𝑝
Texec = 100 × 109 𝑖𝑖𝑖𝑖𝑝𝑝𝑡𝑡𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑝𝑝
1,15 𝑐𝑐𝑖𝑖𝑐𝑐𝑐𝑐𝑐𝑐
𝑖𝑖𝑖𝑖𝑝𝑝𝑡𝑡𝑖𝑖𝑖𝑖𝑖𝑖𝑐𝑐
550 × 10−12𝑝𝑝𝑖𝑖𝑠𝑠
Tempo de execução = 63,3 seg
Single-cycle = 92,5 seg
Multicycle = 133,9 seg
Exercício
1. MIPS single-cycle e controle:
a. Desenhe por completo uma microarquitetura single-cycle (via de dados e bloco de controle) capaz
de executar somente instruções add e bne da arquitetura MIPS. (Observações: 1. Sua resposta
deve apresentar somente os componentes imprescindiveis à execução das instruções propostas. 2.
Todos os componentes deverão estar completamente identificados, de forma que eu possa
reconhecer se o componente é combinacional ou sequencial, assim com suas entradas, saídas e
quantidade de bits dos sinais indicados).
b. Monte uma tabela que mostre o comportamento da unidade de controle. Essa tabela deverá conter
as instruções add e bne, bem como todos os sinais de controle necesários para executá-las.
Preencha os campos da tabela com os valores 0, 1 ou X. Considere que o código da adição para
ALU seja 00 e da subtração seja 11.
Exercício
2. MIPS multicycle e controle: Dada a microarquitetura multicycle da Figura 1 e o diagrama de maquina de
estados finitos da unidade de controle da mesma microarquitetura da Figura 2. Pede-se:
a. Marcar com uma X o(s) componente(s) da Figura 1 que precisará(ão) ser modificado(s) para que
esta microarquitetura execute a instrução slt (set less than).
b. Redesenhe o(s) componente(s) desta microarquitetura de maneira que ele(s) possa(m) executar de
forma correta o slt e todas as instruções que já executava antes.
c. Realize as modificações e/ou inclusões necessárias sobre a Figura 2, demaneira que o slt possa
ser executado de forma correta por essa microarquitetura.
Exercício
Exercício
Exercício
Exercício
	Tópico 9: Microarquitetura (Processador com Pipeline)
	Slide Number 2
	Slide Number 3
	Slide Number 4
	Slide Number 5
	Slide Number 6
	Slide Number 7
	Slide Number 8
	Slide Number 9
	Slide Number 10
	Slide Number 11
	Slide Number 12
	Slide Number 13
	Slide Number 14
	Slide Number 15
	Slide Number 16
	Slide Number 17
	Slide Number 18
	Slide Number 19
	Slide Number 20
	Slide Number 21
	Slide Number 22
	Slide Number 23
	Slide Number 24
	Slide Number 25
	Slide Number 26
	Slide Number 27
	Slide Number 28
	Slide Number 29
	Slide Number 30

Mais conteúdos dessa disciplina