Baixe o app para aproveitar ainda mais
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
Compartilhar