arquitetura-1
208 pág.

arquitetura-1


DisciplinaArquitetura de Computadores3.582 materiais28.177 seguidores
Pré-visualização9 páginas
no programa.
O desempenho de processadores com Paralelismo no Nível da Instrução está limitado pela quantidade de 
paralelismo no nível da instrução que o compilador e o hardware podem localizar no programa.
 
O paralelismo no nível da instrução é limitado por diversos fatores: 
1.dependências de dados
2.dependências de nomes (riscos EAL e EAE)\u200f
3.desvios. 
Além disso, uma determinada capacidade do processador para explorar o paralelismo no nível da instrução 
pode ser limitada pelo número e pelo tipo de unidades de execução que estão presentes e por restrições aos 
tipos de instruções do programa que podem ser examinados de modo a localizar operações que passam ser 
executadas em paralelo. 
Existem dois tipos de paralelismo a nível de Instrução:
1. Paralelismo Temporal (Pipelinine)\u200f
2. Paralelismo Espacial
 
PARALELISMO TEMPORAL (Pipelinine ):
PIPELINE É A TÉCNICA DE SOBREPOR A EXECUÇÃO DE DIVERSAS 
INSTRUÇÕES PARA REDUZIR O TEMPO DE EXECUÇÃO DE UM CONJUNTO DE 
INSTRUÇÕES. 
CADA INSTRUÇÃO DEMORA UM DETERMINADO PERÍODO PARA 
SER EXECUTADA EM UM PROCESSADOR COM PIPELINE, DA MESMA FORMA 
QUE ELA DEMORARIA EM UM PROCESSADOR QUE NÃO TIVESSE 
PIPELINE (DEMORARIA MAIS, NA VERDADE, PORQUE O PIPELINIE 
ACRESCENTA HARDWARE AO PROCESSADOR), 
MAS A TAXA PELA QUAL AS INSTRUÇÕES SERIAM EXECUTADAS É 
AUMENTADA PELA EXECUÇÃO SOBREPOSTA DE INSTRUÇÕES. 
QUANDO DISCUTIMOS PIPELINE E O DESEMPENHO DE COMPUTADORES EM 
GERAL, DOIS TERMOS SÃO FREQÜENTEMENTE UTILIZADOS: LATÊNCIA E 
TAXA DE RENDIMENTO (THROUGHPUT). 
A LATÊNCIA É A QUANTIDADE DE TEMPO QUE 
UMA ÚNICA OPERAÇÃO DEMORA PARA SER EXECUTADA. 
A TAXA DE RENDIMENTO É A TAXA NA QUAL AS OPERAÇÕES SÃO 
EXECUTADAS (GERALMENTE EXPRESSA COMO OPERAÇÕES/SEGUNDO 
OU OPERAÇÕES/CICLO).
EM UM PROCESSADOR QUE NÃO TENHA PIPELINE, A TAXA DE 
RENDIMENTO É: 1/LATÊNCIA 
UMA VEZ QUE CADA OPERAÇÃO É EXECUTADA POR SI SÓ. 
EM UM PROCESSADOR COM PIPELINE, A TAXA DE 
RENDIMENTO É MAIOR QUE O INVERSO DA LATÊNCIA, 
UMA VEZ QUE A EXECUÇÃO DA INSTRUÇÃO É SOBREPOSTA. 
NO ENTANTO, A LATÊNCIA DE 
UM PROCESSADOR COM PIPELINE AINDA É IMPORTANTE, 
NA MEDIDA EM QUE 
ELA DETERMINA COM QUE FREQÜÊNCIA INSTRUÇÕES 
DEPENDENTES PODEM 
SER EXECUTADAS. 
PARA IMPLEMENTAR O PIPELINE, OS PROJETISTAS DIVIDEM O CAMINHO DE DADOS DE UM PROCESSADOR EM SEÇÕES
E COLOCAM LACHES ENTRE CADA SEÇÃO. NO INÍCIO DE CADA CICLO, OS LATCHES LÊEM AS SUAS ENTRADAS E AS COPIAM
PARA SUAS SAÍDAS, AS QUAIS PERMANECERÃO CONSTANTES POR TODO O RESTO DO CICLO. ISTO DIVIDE O CAMINHO DE 
DADOS EM DIVERSAS SEÇÕES, CADA UMA DAS QUAIS TÊM A LATÊNCIA DE UM CICLO DE RELÓGIO, UMA VEZ QUE UMA 
INSTRUÇÃO NÃO PODE PASSAR ATRAVÉS DE UM LATCH ATÉ QUE O PRÓXIMO CICLO SEJA INICIADO. 
A PARCELA DO CAMINHO DE DADOS QUE UM SINAL ATRAVESSA EM UM CICLO É CHAMADA DE ESTÁGIO DO PIPELINE, 
E OS PROJEISTAS FREQÜENTEMENTE DESCREVEM UM PIPELINE QUE TENHA N CICLOS COMO UM PIPELINE DE N ESTÁGIOS. 
BUSCA DE
INSTRUÇÃO
DECODIFICAR 
INSTRUÇÃO
CALCULAR
OPERANDOS
BUSCAR
OPERANDOS
EXECUTAR
INSTRUÇÃO
ESCREVER
OPERANDO
BUSCA DE
INSTRUÇÃO
LATCH
DECODIFICAR INSTRUÇÃO
LATCH
BUSCAR OPERANDOS
LATCH
EXECUTAR INSTRUÇÃO
LATCH
ESCREVER OPERANDO
CALCULAR OPERANDOS
LATCH
DIAGRAMA DE TEMPO PARA UM PIPELINE DE 6 ESTÁGIOS
DURAÇÃO DE CICLOS EM PROCESSADORES COM PIPELINE:
A duração do ciclo em um processador com pipelines é dependente de quatro fatores:
 
A duração do ciclo da parte do processador que não tem pipeline
O número de estágios do pipeline
A homogeneidade com que a lógica do caminho de dados é dividida entre os estágios 
A latência dos latches.
 Se a lógica pode ser dividida homogeneamente entre os estágios do pipeline, o período de relógio de um
 processador com pipelining é:
Duração do ciclocom_pipeline = duração do ciclosem_pipeline + latência do latch
			 número de estágios de pipeline
À medida que o número de estágios aumenta, a latência do latch toma-se uma parte cada vez maior da 
duração do ciclo, limitando o benefício de dividir um processador em um número muito grande de 
estágios de pipeline.
Exemplo Um processador sem pipeline tem uma duração de ciclo de 25 ns. Qual é a duração do ciclo de 
uma versão deste processador com pipeline de 5 estágios divididos homogeneamente, se cada latch tem 
uma latência de 1 \u3b7s? E se o processador foi dividido em 50 estágios de pipeline? 
Aplicando a equação acima, a duração do ciclo para o pipeline de 5 estágios = (25 ns/5) + 1 ns = 6 ns. 
Para o pipeline de 50 estágios, a duração do ciclo = (25 ns/50) + 1 ns = 1,5 ns. No pipeline de 5 estágios, a
latência do latch é apenas 1/6 da duração global do ciclo, enquanto que a latência do latch é 2/3 da 
duração total do ciclo no pipeline de 50 estágios. Uma outra maneira de ver isto é que o pipeline de 50
estágios tem uma duração de ciclo que é um quarto daquela do pipeline de 5 estágios, a um custo de 10 
vezes mais latches. 
Com freqüência, a lógica do caminho de dados não pode ser facilmente dividida em estágios de 
pipeline com latência igual. Por exemplo, acessar o banco de registradores em um processador pode 
demorar 3 ns, enquanto que decodificar uma instrução pode demorar 4 ns.
Quando um processador não pode ser dividido em estágios de pipeline com latência igual, a duração
do ciclo de relógio do processador é igual a latência do estágio de pipeline mais longo, mais o atraso 
do latch, uma vez que a duração do ciclo tem que ser longa o suficiente para que o estágio de 
pipeline mais longo possa completar e armazenar os seus resultados no latch que está entre ele e o 
próximo estágio. 
Exemplo Suponha que um processador sem pipeline, com uma duração de ciclo de 25 ns, esteja 
dividido em 5 estágios de pipeline com latências de 5, 7, 3, 6 e 4 ns. Se a latência do latch for de 1 ns, 
qual é a duração do ciclo do processador resultante? 
Solução
O estágio de pipeline mais longo demora 7 ns. Somando o atraso de latch de 1 ns a este estágio, resulta
Em uma latência total de 8 ns, que é a duração do ciclo. 
Pipelines com estágios não uniformes utilizam a mesma fórmula, embora tenham um aumento ainda 
maior na latência, porque a duração do ciclo precisa ser longa o suficiente para acomodar o estágio 
mais longo mesmo se os outros estágios forem muito mais curtos. Exemplo Suponha que processador 
sem pipeline, com uma duração de ciclo de 25 ns, está dividido e de pipeline com latências de 5, 7, 3, 
6 e 4 ns. Se a latência do latch for de 1 ns, qual é a latência do pipeline resultante? 
Solução 
Este é o mesmo pipeline do exemplo anterior e tem uma duração de ciclo de 8 ns. 
Uma vez que existam 5 estágios no pipeline, a latência total é de 40 ns. 
DEPENDÊNCIAS ENTRE INSTRUÇÕES:
\u2022 Num pipeline é necessário verificar e impedir situações de conflitos causadas pelo fluxo de várias instruções simultaneamente
\u2022 Existem três tipos de conflitos:
	\u2022 Dependências de Dados
		\u2022 dependências de dados verdadeira
		\u2022 Antidependências
		\u2022 dependência de saída
	\u2022 Dependências de Controle
	\u2022 Conflitos de Recursos
DEPENDÊNCIA DE DADOS:
\u2022 Dependências de Dados Verdadeira
Instruções necessitam de valores produzidos por instruções anteriores:
 LAE_ Leitura Após Escrita.
ADD ax, si
SUB si,ax
\u2022 Antidependência
Instrução emprega valor que é atualizado por instrução posterior
\u2022 EAL_ Escrita Após Leitura.
ADD bx, di
SUB di, dx
\u2022 Dependências de Saída
EAE _ Escrita Após Escrita
ADD cl, ah
SUB cl, bl
DEPENDÊNCIA DE CONTROLE:
\u2022 Chamada também Dependência Procedural
\u2022 Impossibilidade de conhecer o resultado de um desvio condicional antes de executá- lo
\u2022 O pipeline fica sem saber se executa o fluxo principal ou se desvia
\u2022 Para resolver o problema são criadas Técnicas de Previsão de Desvios.
DEPENDÊNCIA DE RECURSOS:
\u2022 Também conhecido por Hazard Estrutural
\u2022 Resultado da competição de duas ou mais instruções pelo mesmo recurso ao mesmo tempo
\u2022 Soluções:
	 uma das instruções