Buscar

IAC-INF1029-Vol6-Paralelismo em Nível de Instruções e Processadores Superescalares

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Introdução à Arquitetura de 
Computadores
Anderson Oliveira da Silva
Ph. D. Ciências em Informática
Engenheiro de Computação
anderson@inf.puc-rio.br
Departamento de Informática
PUC-Rio
2
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Parte II –
Unidade Central de Processamento
Paralelismo em Nível de Instruções e 
Processadores Superescalares
– Visão Geral
» Superescalar x Superpipeline
– Aspectos de Projeto
» Paralelismo em nível de instrução e paralelismo de máquina
– Microarquitetura Intel Core
– ARM Cortex-A8
– ARM Cortex-M3
– Intel Tremont
3
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Unidade Central 
de Processamento
4 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Processador Superescalar
– A essência da abordagem superescalar é a habilidade de 
executar instruções independente e concorrentemente em 
pipelines diferentes.
– A abordagem superescalar requer a habilidade de executar 
múltiplas instruções em paralelo. 
– O termo paralelismo em nível de instruções é usado para 
indicar o grau em que, em média, as instruções de um 
programa podem ser executadas em paralelo.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
5 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Processador Superescalar
– Organização escalar:
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
6 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Processador Superescalar
– Organização superescalar:
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
7 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Superescalar versus Superpipeline
– O superpipeline explora o fato de que muitos estágios de 
pipeline executam tarefas que requerem menos do que metade 
de um ciclo de clock, o que dobrada a possibilidade do 
desempenho de duas tarefas em um ciclo de clock externo.
– Enquanto um pipeline base inicia uma instrução por ciclo de 
clock e executa um estágio de pipeline, o superpipeline executa 
mais de um estágio de pipeline por ciclo de clock.
– A implementação superescalar é capaz de executar duas 
instâncias de cada estágio em paralelo.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
8 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Superescalar
versus 
Superpipeline
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
9 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Aspectos de Projeto: Paralelismo em nível de instrução
– O paralelismo em nível de instrução pode ser usado quando 
as instruções de uma sequência são independentes e, assim, 
podem ser executadas em paralelo por sobreposição.
– Como um exemplo do conceito de paralelismo, considere os 
dois pedaços de código a seguir (JOUPPI, 1989b):
– No bloco à esquerda, as instruções são independentes e podem 
ser executadas em paralelo. Já, no bloco à direita, ocorre 
dependência verdadeira de dados entre as instruções.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
10 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Aspectos de Projeto: Paralelismo de máquina
– O paralelismo de máquina é uma medida da habilidade do 
processador para obter vantagem do paralelismo em nível de 
instruções. 
– É determinado pelo número de instruções que podem ser 
obtidas e executadas ao mesmo tempo (o número de pipelines 
paralelos) e pela velocidade e sofisticação dos mecanismos que 
o processador usa para localizar instruções independentes.
– O paralelismo em nível de instruções e o de máquina são 
fatores importantes para melhorar o desempenho.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
11 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Aspectos de Projeto: Renomeação de registradores
– Para minimizar a dependência dos registradores entre 
instruções sequencias, alguns processadores usam uma técnica 
chamada de renomeação de registradores.
– O hardware do processador aloca registradores dinamicamente 
para associá-los com os valores usados pelas instruções.
– A criação do registrador R3c na instrução I3 evita a dependência 
da instrução I2, que faz referência ao registrador R3b, assim 
como a instrução I1.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
I1: R3b <= R3a op R5a
I2: R4b <= R3b + 1
I3: R3c <= R5a + 1
I4: R7b <= R3c op R4b 
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
I1: R3 <= R3 op R5
I2: R4 <= R3 + 1
I3: R3 <= R5 + 1
I4: R7 <= R3 op R4 
12 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Microarquitetura Intel Core
– Versão da arquitetura x86 
com pipeline superescalar:
» Busca de Instruções:
• ITLB (Instruction Translation
Lockaside Buffer) auxilia na 
tradução do endereço no IP 
(Instruction Pointer) para o 
endereço físico da cache.
» Pré-decodificação:
• Pode escrever até 6 instruções
por ciclo na fila de instruções.
• Determina a extensão das instruções.
• Marca as propriedades de uma 
instrução (ex: é desvio).
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
13 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Microarquitetura Intel Core
– Versão da arquitetura x86 
com pipeline superescalar:
» Fila de instrução:
• Mantém uma fila de instruções
resultante da busca de instruções.
» Decodificador:
• Composto de um decodificador 
complexo e três decodificadores 
simples.
• As instruções CISC são convertidas
em micro-ops (instruções RISC de 
118 bits), mais fáceis de serem 
manejadas.
• A sequencia de micro-ops resultante é
entregue ao módulo de renomeação/
alocação.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
14 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Microarquitetura Intel Core
– Versão da arquitetura x86 
com pipeline superescalar:
» Renomeador de Registradores:
• Remapeia as referências aos 16 
registradores da arquitetura para 
128 registradores físicos.
» Alocador:
• Aloca os recursos necessários para
a execução de uma micro-op
(ex: registradores).
• Aloca uma micro-op no buffer de 
reordenação (ROB - Re-Order Buffer).
» Unidade de Retirada:
• Retira as micro-ops da ROB quando a unidade
de execução apropriada e todos os itens 
de dados requeridos estão disponíveis.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
15 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Microarquitetura Intel Core
– Versão da arquitetura x86 
com pipeline superescalar:
» Escalonador/Estação de reserva:
• Obtém as micro-ops das filas de 
micro-ops e as despacha para 
execução.
• Se mais de uma micro-op estiver 
disponível para execução, então o
escalonador as despacha na 
sequência da fila (FIFO).
• Até 6 micro-ops podem ser 
despachadas por ciclo.
• As micro-ops que acessam memória 
são despachadas apenas para as portas 
3 e 4; as de desvio para a porta 0; e as 
demais para as portas 0, 1 ou 2.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.brFonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
16 Paralelismo em Nível de Instruções e 
Processadores Superescalares
ARM Cortex-A8
– Processador de aplicação:
» Unidade de busca 
das instruções:
• Pode ler até quatro 
instruções por ciclo.
• No estágio F0, a 
unidade de geração 
de endereços 
(AGU - Address
Generation Unit) 
gera um novo 
endereço virtual.
• O estágio F0 não é 
contado como parte 
do estágio de pipeline.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
17 Paralelismo em Nível de Instruções e 
Processadores Superescalares
ARM Cortex-A8
– Processador de aplicação:
» Unidade de busca 
das instruções:
• No estágio F1, 
o endereço calculado 
é usado para obter 
instruções da cache 
de instruções L1.
• No estágio F2, os 
dados da instrução 
são colocados na 
fila de instruções.
• Pode obter e enfileirar 
até 12 instruções.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
18 Paralelismo em Nível de Instruções e 
Processadores Superescalares
ARM Cortex-A8
– Processador de aplicação:
» Unidade de decodificação 
de instruções:
• Decodifica e sequencia 
todas as instruções 
ARM e Thumb.
• D0: instruções Thumb
são descompactadas 
em instruções ARM de 
32 bits.
• D1: a função de 
decodificação de 
instruções é finalizada.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
19 Paralelismo em Nível de Instruções e 
Processadores Superescalares
ARM Cortex-A8
– Processador de aplicação:
» Unidade de decodificação 
de instruções:
• D2: escreve e lê 
instruções da 
estrutura de fila 
pendente/reenvio.
• A fila de pendente 
possibilita que duas 
instruções prossigam 
pelo pipeline duplo 
juntas mesmo que 
tenham sido lidas e 
enviadas em ciclos 
diferentes.
• A operação de reenvio 
lida com os efeitos do 
sistema de memória 
sobre o tempo da 
instrução (atrasos).
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
20 Paralelismo em Nível de Instruções e 
Processadores Superescalares
ARM Cortex-A8
– Processador de aplicação:
» Unidade de decodificação 
de instruções:
• D3: contém a lógica de
agendamento de 
instruções.
• Usa um scoreboard
para prever a 
disponibilidade de 
registradores com 
base em número 
de ciclos.
• Faz a verificação de 
hazards de pipeline.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
21 Paralelismo em Nível de Instruções e 
Processadores Superescalares
ARM Cortex-A8
– Processador de aplicação:
» Unidade de decodificação 
de instruções:
• D4: efetua a 
decodificação final 
para todos os sinais 
de controle requeridos 
pelas unidades de 
execução de inteiros 
e de carga/armaze_
namento.
• Duas instruções são 
enviadas em paralelo 
para a unidade de 
execução, a não ser 
que encontre uma 
restrição de emissão.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
22 Paralelismo em Nível de Instruções e 
Processadores Superescalares
ARM Cortex-A8
– Processador de aplicação:
» Unidade de execução
de inteiros:
• Consiste em dois 
pipelines de ALU 
simétricos, um 
gerador de endereços 
para ler e armazenar 
instruções, e um 
pipeline de 
multiplicação.
• Os pipelines de 
execução efetuam 
a atualização nos 
registradores.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
23 Paralelismo em Nível de Instruções e 
Processadores Superescalares
ARM Cortex-A8
– Processador de aplicação:
» Unidade NEON –
Pipeline SIMD e 
Ponto Flutuante:
• Todas as instruções 
SIMD e de ponto 
flutuante passam pelo
pipeline de inteiros e 
são processadas em 
um pipeline separado 
de 10 estágios desta 
unidade.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
24 Paralelismo em Nível de Instruções e 
Processadores Superescalares
ARM Cortex-M3
– Microcontrolador:
» Core do processador:
• Pipeline de 3 estágios;
• Banco de registradores;
• Interface de memória.
» Unidade de Proteção de 
Memória:
• Protege os dados do 
sistema operacional 
desabilitando o acesso 
às regiões de memória.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
25 Paralelismo em Nível de Instruções e 
Processadores Superescalares
ARM Cortex-M3
– Pipeline:
» Busca:
• Palavra de 32 bits;
• Utiliza um buffer de palavras;
• Instruções Thumb e Thumb-2.
» Decodificação:
• Decodificação de instrução 
e leitura de registrador.
• A unidade de geração de endereço 
(AGU) cria endereços da memória 
principal para a unidade de 
carga/armazenamento.
• Desvio baseado no deslocamento 
imediato em instrução de desvio 
ou um retorno baseado nos 
conteúdos do registrador de 
ligação (registrador R14).
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
26 Paralelismo em Nível de Instruções e 
Processadores Superescalares
ARM Cortex-M3
– Pipeline:
» Execução:
• Estágio de execução único 
para a execução de instrução, 
que inclui ALU, carga e 
armazenamento, e instruções 
e desvio.
» Tratamento de desvios:
• Adiantamento de desvio: o 
processador adianta certos tipos 
de desvio ao menos um ciclo antes 
do que quando o opcode atinge a 
execução.
• Especulação de desvio: nos 
desvios condicionais, o endereço 
de instrução é apresentado de 
modo especulativo, na qual a 
instrução é buscada da memória 
antes de saber se a instrução 
será executada.
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Arquitetura e Organização de Computadores, 
Willian Stallings, 10a edição - Editora Pearson - 2018 
27 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Intel Tremont
– Ultra-Low Power (Superescalar):
» Buscador:
• Duas filas de instrução.
• Pré-buscador Inteligente.
• Predição de desvios aprimorado.
» Decodificador:
• Dois Cluster de Decodificação.
• Decodificação fora de ordem.
• Decodificação de 3-vias por cluster.
» Alocador:
• (ROB - Re-Order Buffer) com mais 
capacidade.
» Escalonador/Estação de Reserva:
• 10 portas de comunicação com as unidades de processamento.
• 2 portas dedicadas para carga/armazenamento (2 operações por ciclo).
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Intel Tremont Micriarchtecture - WikiChip
URL: https://en.wikichip.org/wiki/File:tremont_block_diagram.svg
28 Paralelismo em Nível de Instruções e 
Processadores Superescalares
Intel Tremont
– Ultra-Low Power
(Superescalar):
» Versão Desktop:
• 10W
» Versão Mobile:
• 6W
Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Fonte: Introducing Intel Tremont Microarchitecture - Intel
URL: https://newsroom.intel.com/wp-content/uploads/ 
sites/11/2019/10/introducing-intel-tremont-microarchiture.pdf

Continue navegando