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 Estrutura e Função do Processador – Organização do Processador » UC, ALU, Registradores, Barramento Interno – Organização dos Registradores » Registradores visíveis ao usuário x Registradores de controle e estado – Ciclo da Instrução » Buscar, Executar e Interromper – Pipeline de Instruções » Estratégia do pipeline » Desempenho do pipeline » Hazards do pipeline – Família de Processadores x86 – Processadores ARM 3 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Unidade Central de Processamento 4 Estrutura e Função do Processador Operações básicas do processador – Busca da instrução: o processador lê uma instrução da memória (registrador, cache, memória principal). – Interpretação da instrução: a instrução é decodificada para determinar qual ação é necessária. – Busca dos dados: a execução de uma instrução pode necessitar a leitura de dados da memória ou de um módulo de E/S. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 5 Estrutura e Função do Processador Operações básicas do processador – Processamento dos dados: a execução de uma instrução pode necessitar efetuar alguma operação aritmética ou lógica com os dados. – Escrita dos dados: os resultados de uma execução podem necessitar escrever dados para a memória ou para um módulo de E/S. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 6 Estrutura e Função do Processador Organização do processador – CPU com barramento do sistema: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Unidade de Controle Registradores ALU Barramento de Controle Barramento de Dados Barramento de Endereço Barramento do Sistema 7 Estrutura e Função do Processador Organização do processador – Estrutura interna da CPU: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Unidade Lógica e Aritmética Arimética e Lógica Booleana Complementador Deslocador Flags de estado Barramento Interno da CPU Unidade de Controle Registradores ... Linhas de Controle 8 Estrutura e Função do Processador Organização dos registradores – Os registradores no processador são divididos em dois grupos: – Registradores visíveis ao usuário: possibilitam que o programador de linguagem de máquina ou de montagem minimize as referências à memória principal, maximizando o uso dos registradores. – Registradores de controle e de estado: usados pela unidade de controle para controlar a operação do processador e por programas privilegiados do Sistema Operacional para controlar a execução de programas. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 9 Estrutura e Função do Processador Registradores visíveis ao usuário – São aqueles que podem ser referenciados pelos recursos da linguagem de máquina que o processador executa. – Podem ser divididos nas seguintes categorias: » Uso geral: atribuídos a uma variedade de funções (operandos). » Dados: usados apenas para guardar dados. » Endereços: ponteiros de segmento, registradores de índice e ponteiros de pilha. » Códigos condicionais (flags): resultado de operações (positivo, negativo, zero ou overflow). Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 10 Estrutura e Função do Processador Registradores de controle e de estado – Quatro registradores são essenciais: » Contador de programas (PC): contém o endereço de uma instrução a ser lida (também conhecido como ponteiro de instrução – IP). » Registrador da instrução (IR): contém a instrução mais recentemente lida. » Registrador de endereço de memória (MAR): contém o endereço de um local de memória. » Registrador de buffer de memória (MBR): contém uma palavra de dados para ser escrita na memória ou a palavra mais recentemente lida. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 11 Estrutura e Função do Processador Registradores de controle e de estado – Muitos modelos de processador incluem um registrador ou conjunto de registradores que contém códigos condicionais e outras informações de estado, geralmente conhecido como palavra de estado do programa (PSW – Program Status Word), – Campos comuns ou flags presentes, são: » Sinal: contém o bit de sinal do resultado da última operação aritmética. » Zero: definido em 1 quando o resultado é 0. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 12 Estrutura e Função do Processador Registradores de controle e de estado – Campos comuns ou flags incluem: » Carry: definido em 1 se uma operação resultou em um carry ou um empréstimo de um bit de ordem maior (vai um). » Igual: definido em 1 se uma comparação lógica resultou em igualdade. » Overflow: usado para indicar overflow aritmético. » Habilitar/desabilitar interrupção: usado para habilitar ou desabilitar interrupções. » Supervisor: indica se o processador está executando no modo supervisor ou usuário. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 13 Estrutura e Função do Processador Exemplos de organização de 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 14 Estrutura e Função do Processador Ciclo da instrução – Inclui os seguintes estágios: – Buscar: lê a próxima instrução da memória para dentro do processador. – Executar: interpreta opcode e efetua a operação indicada. – Interromper: se as interrupções estão habilitadas e uma interrupção ocorre, salva o estado do processo atual e atende a interrupção. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 15 Estrutura e Função do Processador Diagrama de estado do ciclo de instruçã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 16 Estrutura e Função do Processador Fluxo de dados do ciclo de busca Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br CPU MAR PC Barramento de Endereço Barramento de Dados Barramento de Controle UCMBR IR Memória MBR = Registrador de Buffer de Memória MAR = Registrador de Endereço de Memória IR = Registrador de Instrução PC = Contador de Programa UC = Unidade de Controle 17 Estrutura e Função do Processador Fluxo de dados do ciclo indireto Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br CPU MAR Barramento de Endereço Barramento de Dados Barramento de Controle UCMBR Memória MBR = Registrador de Buffer de Memória MAR = Registrador de Endereço de Memória UC = Unidade de Controle 18 Estrutura e Função do Processador Fluxo de dados do ciclo de interrupção Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br CPU MAR PC Barramento de Endereço Barramento de Dados Barramento de Controle UCMBR Memória MBR = Registrador de Buffer de Memória MAR = Registrador de Endereço de Memória PC = Contador de Programa UC = Unidade de Controle 19 Estrutura e Função do Processador Pipeline de instruções – É semelhante ao uso de uma linha de montagem numa planta industrial. – Pode ser aplicado à execução da instrução pois uma instrução possui vários estágios. – O pipeline possui dois estágios independentes. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 20 Estrutura e Função do Processador Pipeline de instruções: dois estágios independentes – O primeiro estágio obtém a instrução e a coloca no buffer. – Quando o segundo estágio está livre, o primeiro estágio passa a instrução do buffer para o segundo.– Enquanto o segundo estágio está executando a instrução, o primeiro estágio aproveita qualquer ciclo de memória não utilizado para buscar a próxima instrução e colocá-la no buffer. – Essa operação é chamada de busca antecipada (prefetch) ou busca sobreposta. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 21 Estrutura e Função do Processador Pipeline de instruções de dois estágios – Se os estágios de leitura e execução forem de duração igual, o ciclo da instrução será reduzida pela metade. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 22 Estrutura e Função do Processador Pipeline de instruções de dois estágios – Porém, dobrar a taxa de execução é pouco provável pois: 1. O tempo de execução normalmente será maior que o tempo de busca. 2. Uma instrução de desvio condicional faz com que o endereço da próxima instrução a ser obtida não seja conhecido antecipadamente. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 23 Estrutura e Função do Processador Pipeline de instruções (aceleração) – Para obter mais aceleração, o pipeline deve ter mais estágios. » Buscar Instrução (FI – Fetch Instruction) » Decodificar Instrução (DI – Decode Instruction) » Calcular Operandos (CO – Calculate Operands) » Buscar Operandos (FO – Fetch Operands) » Executar Instrução (EI – Execute Instruction) » Escrever Operando (WO – Write Operand) Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 24 Estrutura e Função do Processador Diagrama de tempo para operação do pipeline de instrução Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Se as nove instruções fossem executadas em sequência sem o pipeline, a execução terminaria em t=54 (6 ciclos x 9 instruções), ou seja, a execução seria 3,8 vezes mais lenta! 1. Buscar Instrução (FI – Fetch Instruction) 2. Decodificar Instrução (DI – Decode Instruction) 3. Calcular Operandos (CO – Calculate Operands) 4. Buscar Operandos (FO – Fetch Operands) 5. Executar Instrução (EI – Execute Instruction) 6. Escrever Operando (WO – Write Operand) Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 2018 FI DI CO FO EI WO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI FO EI Linha do Tempo FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO WO Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 8 Instrução 9 CO 25 Estrutura e Função do Processador Efeito de um desvio condicional na operação do pipeline de instrução Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 1. Buscar Instrução (FI – Fetch Instruction) 2. Decodificar Instrução (DI – Decode Instruction) 3. Calcular Operandos (CO – Calculate Operands) 4. Buscar Operandos (FO – Fetch Operands) 5. Executar Instrução (EI – Execute Instruction) 6. Escrever Operando (WO – Write Operand) Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 2018 FI DI CO FO EI WO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 FI DI CO FO EI WO FI DI CO FO FI DI CO FI DI FI Linha do Tempo Penalidade por desvio FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 15 Instrução 16 A penalidade pelo desvio é alta. No mesmo período de 14 unidades de tempo, apenas 5 instruções serão executadas. Além disso, o pipeline precisará ser esvaziado antes do desvio efetivamente acontecer. 26 Estrutura e Função do Processador Outros efeitos que prejudicam a operação do pipeline de instrução – O estágio CO (Calculate Operand) pode depender do conteúdo de um registrador que pode ser alterado por uma instrução anterior que ainda esteja no pipeline. – Outros conflitos de registradores e memória desse tipo podem ocorrer com outras instruções que estão no pipeline. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 27 Estrutura e Função do Processador Pipeline de instrução de seis estágios (fluxograma) 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 28 Estrutura e Função do Processador Pipeline de instrução de seis estágios (visualização vertical) 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 29 Estrutura e Função do Processador Desempenho do pipeline – O tempo de ciclo t de um pipeline de instrução é o tempo necessário para que a instrução avance um estágio dentro do pipeline. – Seja Ƭk,n o tempo total necessário para que um pipeline com k estágios processe n instruções. Então, Por exemplo, para t = 1, k = 6, n = 9, Ƭ6,9 = 14. 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 30 Estrutura e Função do Processador Desempenho do pipeline – Considere agora um processador com funções equivalentes, mas sem pipeline, e suponha que o tempo do ciclo da instrução seja kt. – O fator de aceleração para o pipeline de instruções comparado com a execução sem pipeline é definido como 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 31 Estrutura e Função do Processador Desempenho do pipeline – Conforme esperado, no limite (n → ), temos uma aceleração pelo fator k. – Sendo assim, quanto maior o número de estágios do pipeline, maior o potencial para aceleração. – Porém, na prática, os ganhos potenciais dos estágios adicionais do pipeline são confrontados pelo aumento do custo, ou seja, pelas demoras entre estágios e pelo fato de que os desvios irão requerer o esvaziamento do pipeline. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 32 Estrutura e Função do Processador Desempenho do pipeline – Fator de aceleração com pipeline de instruçã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 Para grandes sequências de instruções sem desvio e com pouca dependência entre si, a quantidade de estágios provoca um ganho de aceleração quase de 1 para 1, enquanto que para pequenas sequências de instruções com desvio ou com interdependência, o ganho de aceleração é proporcionalmente bem menor. 33 Estrutura e Função do Processador Hazards do pipeline – Ocorre quando o pipeline, ou alguma parte dele, deve parar porque as condições não permitem a execução contínua. – Tal parada do pipeline é também conhecida como bolha de pipeline. – Existem três tipos de hazards: » Recursos; » Dados; e » Controle. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 34 Estrutura e Função do Processador Hazards de Recursos – Ocorre quando duas ou mais instruções que já estão no pipeline precisam do mesmo recurso. – O resultado é que as instruções devem ser executadas em série em vez de em paralelo para uma parte do pipeline. – Também é chamado de hazard estrutural. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 35 Estrutura e Função do Processador Hazards de Recursos – Exemplo: FO não pode ocorrer em paralelo com FI. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 Operando de I2 está na memóriaPipeline de 5 estágios, caso ideal 36 Estrutura e Função do Processador Hazards de Dados – Ocorre quando há um conflito no acesso de um local de operando. – Por exemplo, duas instruçõesem um programa estão em sequência e ambas acessam um determinado operando em memória ou registrador. – O programa poderá produzir um resultado incorreto se não ocorrer um atraso proposital no pipeline. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 37 Estrutura e Função do Processador Hazards de Dados – Leitura após escrita ou dependência verdadeira » O hazard ocorre quando a operação de leitura acontece antes da escrita ter sido completada. – Escrita após leitura ou antidependência » O hazard ocorre se a operação de escrita é completada antes da operação de leitura. – Escrita após escrita ou dependência de saída » O hazard ocorre se as operações de escrita acontecerem na sequência inversa da esperada. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 38 Estrutura e Função do Processador Hazards de Dados – Exemplo de leitura após escrita (dependência verdadeira). Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 Registrador EAX é alterado pelo ADD, do qual o SUB depende 39 Estrutura e Função do Processador Hazards de Controle – Ocorre quando o pipeline toma uma decisão errada ao prever um desvio e assim acaba trazendo instruções dentro do pipeline que precisam ser descartadas logo em seguida. – Também conhecido como hazard de desvio. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 40 Estrutura e Função do Processador Hazards de Controle – Exemplo: desvio ocorre após o ciclo da 3ª instrução. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 1. Buscar Instrução (FI – Fetch Instruction) 2. Decodificar Instrução (DI – Decode Instruction) 3. Calcular Operandos (CO – Calculate Operands) 4. Buscar Operandos (FO – Fetch Operands) 5. Executar Instrução (EI – Execute Instruction) 6. Escrever Operando (WO – Write Operand) Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 2018 FI DI CO FO EI WO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 FI DI CO FO EI WO FI DI CO FO FI DI CO FI DI FI Linha do Tempo Penalidade por desvio FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 15 Instrução 16 A penalidade pelo desvio é alta. O pipeline precisará ser esvaziado antes do desvio efetivamente acontecer. 41 Estrutura e Função do Processador Lidando com desvios – Um dos principais problemas ao se projetar um pipeline de instruções é garantir um fluxo estável de instruções para os estágios iniciais do pipeline. – Uma série de abordagens foram implementadas para lidar com desvios condicionais: » Múltiplos fluxos; » Busca antecipada do alvo do desvio; » Buffer de loops; » Previsão de desvios; e » Desvios atrasados. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 42 Estrutura e Função do Processador Lidando com desvios – Múltiplos fluxos » Um pipeline simples tem penalidades na execução de uma instrução de desvio. » Uma abordagem tipo força bruta é replicar as partes iniciais do pipeline e permitir que o pipeline busque as duas instruções, fazendo assim uso de dois fluxos. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 43 Estrutura e Função do Processador Lidando com desvios: Múltiplos Fluxos Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Instrução 3 FI DI CO FO EI WO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 FI DI CO FO EI WO FI DI CO FO FI DI CO FI DI FI Linha do Tempo FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 15 Instrução 16 FI DI CO FO EI WO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 FI DI CO FO EI WO Linha do Tempo FI DI CO FO EI WO Instrução 1 Instrução 2 Pipeline Ativo: Fluxo 1 carregado Pipeline Alternativo: Fluxo 2 carregado 44 Estrutura e Função do Processador Lidando com desvios: Múltiplos Fluxos Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br FI DI CO FO EI WO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 FI DI CO FO EI WO FI DI CO FO FI DI CO FI DI FI Linha do Tempo FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 15 Instrução 16 FI DI CO FO EI WO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 FI DI CO FO EI WO Linha do Tempo FI DI CO FO EI WO Instrução 1 Instrução 2 Instrução 3 Pipeline Alternativo: Fluxo 1 será descartado Pipeline Ativo: Fluxo 2 será executado 45 Estrutura e Função do Processador Lidando com desvios – Busca antecipada do alvo do desvio » Quando um desvio condicional é reconhecido, o alvo do desvio é lido antecipadamente, além da instrução que segue o desvio. Esse alvo é então salvo até que a instrução de desvio seja executada. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br FI DI CO FO EI WO 1 2 3 4 5 6 7 8 FI DI CO FO EI WO FI DI CO FO FI DI CO FI DI FI Linha do Tempo FI DI CO FO EI WO Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Cache L1 – Instrução I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 46 Estrutura e Função do Processador Lidando com desvios – Busca antecipada do alvo do desvio » Quando um desvio condicional é reconhecido, o alvo do desvio é lido antecipadamente, além da instrução que segue o desvio. Esse alvo é então salvo até que a instrução de desvio seja executada. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br FI DI CO FO EI WO 1 2 3 4 5 6 7 8 FI DI CO FO EI WO FI DI CO FO FI DI CO FI DI FI Linha do Tempo FI DI CO FO EI WO Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Cache L1 – Instrução I1 I2 I3 I4 I5 I6 I7 I15 I16 I17 I18 I19 I20 I21 47 Estrutura e Função do Processador Lidando com desvios – Buffer de loops » O buffer de loops é semelhante, em princípio, a uma cache dedicada para instruções, mantida pelo estágio do pipeline de busca de instruções, e contém as n instruções mais recentemente lidas na sequência. » Se um desvio está para ser tomado, o hardware primeiro verifica se o alvo do desvio já está no buffer. Se estiver, a próxima instrução é buscada do buffer. » Também é bastante útil para ocorrências muito comuns das sequências IF-THEN e IF-THEN-ELSE. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 48 Estrutura e Função do Processador Lidando com desvios: Buffer de loops Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Cache do Estágio da Pipeline I1 I2 I3 I4 I5 I6 I7 Cache L1 Instruções FI DI CO FO EI WO 1 2 3 4 5 6 7 8 FI DI CO FO EI WO FI DI CO FO EI FI DI CO FO Linha do Tempo FI DI CO FO EI WO Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 6 7 8 WO EI WO FI DI CO FO EI WO FI DI CO FO EI FI DI CO FO FI DI CO FO EI WO WO EI WO Instrução 2 Instrução 3 Instrução 4 Instrução 5 9 10 11 49 Estrutura e Função do Processador Lidando com desvios – Previsão de desvios » Várias técnicas podem ser usadas para prever se um desvio será tomado. » Previsão nunca tomada: a suposição é que o desvio nunca acontecerá. » Previsão sempre tomada: a suposição é que o desvio sempre acontecerá. » Previsão por opcode: decidido em função do opcode da instrução. » Estas três primeiras abordagens são estáticas e não dependem do histórico da execução até o momento da previsão. » Segundo Stallings, (LILIA, 1988) afirma que os desvios condicionais são tomados em mais de 50% das vezes. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 50 Estrutura e Função do Processador Lidando com desvios – Previsão de desvios » Várias técnicas podem ser usadas para prever se umdesvio será tomado. » Chave tomada/não tomada: associa bits de histórico de desvio às instruções para auxiliar na tomada de decisão em uma nova execução. » Tabela de histórico de desvio: mantém uma tabela de histórico de desvios com três elementos: o endereço da instrução de desvio, bits de histórico de desvios e informação sobre a instrução alvo (seu endereço ou a própria instrução). » Essas duas abordagens são dinâmicas e dependem do histórico da execução. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 51 Estrutura e Função do Processador Lidando com desvios – Previsão de desvios: Chave tomada/não tomada » Se a decisão for fazer o desvio, a instrução alvo deverá ser buscada na memória. – Previsão de desvios:Tabela de histórico de desvio » Se a decisão for fazer o desvio, a instrução alvo está na tabela. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Chave Instrução 110 JZ Endereço da Instrução de Desvio Bits de histórico Instrução Alvo 0x024f0100 110 MOV EAX,EBX 52 Estrutura e Função do Processador Lidando com desvios – Desvios atrasados » É possível melhorar o desempenho do pipeline rearranjando automaticamente as instruções dentro de um programa, atrasando a execução de algumas instrução para evitar a bolha no 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 - 201 53 Estrutura e Função do Processador Pipeline no Intel 80486 – Implementa um pipeline de cinco estágios: » Busca: o objetivo é preencher um de dois buffers de busca antecipada com dados novos assim que os dados antigos tenham sido consumidos pelo decodificador da instrução. » Estágio de decodificação 1: toda a informação de opcode e modo de endereçamento é decodificada no estágio D1. » Estágio de decodificação 2: o estágio D2 traduz cada opcode em sinais de controle para ALU. » Execução: este estágio inclui operações da ALU, acesso à cache e atualização de registradores. » Write back: este estágio, se necessário, atualiza registradores e flags de estado modificados durante o processo da execução anterior. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 54 Estrutura e Função do Processador Pipeline no Intel 80486 – Situação 1: » Não há atraso para carregar dados no pipeline quando é necessário fazer um acesso à memória( ex: dados estão na cache). Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 55 Estrutura e Função do Processador Pipeline no Intel 80486 – Situação 2: » Pode haver atraso para valores usados para calcular endereço de memória (atraso para carregar o ponteiro). » Para compensar o atraso, o estágio WB da primeira instrução alimenta o estágio D2 da instrução seguinte, o que acelera o processamento. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 56 Estrutura e Função do Processador Pipeline no Intel 80486 – Situação 3: » Temporização da instrução de desvio, supondo que o desvio seja tomado. » O estágio WB da instrução de comparação alimenta o estágio EX da instrução de desvio que, por sua vez, alimenta o estágio Fetch da instrução alvo, o que acelera o processamento. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 57 Família de Processadores x86 Registradores do processador x86 – Unidade de inteiros no modo 32-bits: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 58 Família de Processadores x86 Registradores do processador x86 – Unidade de inteiros no modo 64-bits: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 59 Família de Processadores x86 Registradores do processador x86 – Unidade de ponto flutuante: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 60 Família de Processadores x86 Registrador EFLAGS do x86 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 61 Família de Processadores x86 Registradores de controle do x86 » Usa 4 registradores de controle (CR0, CR2, CR3 e CR4). » O registrador CR0 é usado para o controle do modo e indica estados que se aplicam ao processador em vez da execução e uma determinada tarefa. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 62 Família de Processadores x86 Registradores MMX – Mapeamento de registradores MMX em registradores de ponto flutuante: » Utilizados pelas instruções MMX que fazem uma execução SIMD (Single Instruction Multiple Data) simples capaz de processar dados inteiros, empacotados em registradores de 64 bits. » Os pacotes são formados por inteiros de 8, 16 ou 32 bits, empacotados em grupos de 8, 4 ou 2 elementos. » Quando um valor é escrito no registrador MMX, os bits [79:64] do registrador FP correspondente são definidos com o valor 1. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 63 Família de Processadores x86 Instruções MMX – As 47 instruções MMX (com exceção da EMMS) utilizam o prefixo P e podem ser agrupadas em: » instruções aritméticas » instruções de comparação » instruções de conversão » instruções lógicas » instruções de deslocamento » instruções de transferência de dados » instrução de inicialização (EMMS) – Por causa da sobreposição dos registradores, instruções MMX não podem ser executadas em paralelo com instruções de ponto flutuante. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 64 Família de Processadores x86 Processamento de interrupções – Existem duas origens das interrupções e duas origens das exceções: » Interrupções mascaráveis: recebidas no pino INTR do processador. » Interrupções não mascaráveis: recebidas no pino NMI do processador. » Exceções detectadas pelo processador: quando o processador encontra um erro enquanto tenta executar uma instrução. » Exceções programadas: instruções que geram exceção (ex: INTO, INT3, INT e BOOUND). Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 65 Família de Processadores x86 Tabela de vetores de interrupções e exceções para x86 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 66 Família de Processadores x86 Tratamento de interrupções – Quando ocorre uma interrupção reconhecida, uma sequência de eventos acontece. » Se houver mudança de privilégio, os valores dos registradores de segmento de pilha (SS) e ponteiro estendido de pilha (ESP) são colocados na pilha. » O valor do registrador EFLAGS é colocado na pilha. » Flags de interrupção (IF) e trap (TF) são colocadas em zero, o que desabilita interrupções INTR e o trap ou recurso de passo único (depuração). » O ponteiro de segmento de código (CS)e o ponteiro da instrução (IP ou EIP) são colocados na pilha. » Se a interrupção tem um código de erro, então esse código é empilhado. » O conteúdo do vetor de interrupção é carregado nos registradores CS e IP ou EIP, o que passa a execução para a rotina que atende a interrupção. » A rotina que atende a interrupção encerra com IRET, o que restaura os valores salvos na pilha e a execução a partir do ponto de interrupção. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 67 Família de Processadores x86 Codinomes dos processadores – Historicamente, a Intel designa codinomes com base em nomes de cidades, rios e montanhas próximos da localidade onde os projetos dos processadores são elaborados. List of Intel CPU microarchitectures – Wikipedia URL: https://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Year Micro- architecture L1 cache L2 cache L3 cache Max. Clock Cores Tech Process 2008 Nehalem 64 KB 256 KB 4 MB to 24 MB shared 3.60 GHz 2/4/6/10 45 nm 2010 Westmere 64 KB 256 KB 4 MB to 30 MB shared 3.73 MHz 2/4/6/8/10 32 nm 2011 Sandy Bridge 64 KB 256 KB 3 MB to 20 MB shared 3.60 GHz 2/4/6/8 32 nm 2012 Ivy Bridge 64 KB 256 KB 2 MB to 8 MB shared 4.10 GHz 2/4/6/10/12/15 22 nm 2013 Haswell 64 KB 256 KB 2 MB to 45 MB shared 4.40 GHz 2/4/6/8/18 22 nm 68 Família de Processadores x86 Codinomes dos processadores List of Intel CPU microarchitectures – Wikipedia URL: https://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Year Micro- architecture L1 cache L2 cache L3 cache Max. Clock Cores Tech Process 2014 Broadwell 64 KB 256 KB 2 MB to 6 MB shared 3.7 MHz 2/4/6/8/10/12/16 14 nm 2015 Skylake 64 KB 256 KB 1 MB to 2 MB shared 4.2 GHz 2/4/6/8/10/12/14/16/18 14 nm 2016 Kaby Lake 64 KB 256 KB Up to 8 MB shared 4.5 GHz 2/4 14 nm 2017 Coffe Lake 64 KB 256 KB Up to 16 MB shared 5.0 GHz 2/4/6/8 14 nm 2019 Ice Lake 80 KB 512 KB Up to 16 MB shared 2.3 GHz 2/4 (mobile) 10 nm 2020 Cooper Lake 64 KB 1 MB Up to 38.5 MB shared 4.3 GHz 8/16/18/20/24/28 14 nm 2021 Ice Lake - SP 80 KB 50 MB Up to 60 MB shared 3.7 GHz 8/10/12/16/20/24/28/32 /36/38/40 10 nm 69 Família de Processadores x86 Linha Intel Core i3/i5/i7/i9 – Nomenclatura básica dos processadores: Saiba mais sobre os números de processadores Intel – Intel URL: https://www.intel.com.br/content/www/br/pt/processors/processor-numbers.html Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 70 Família de Processadores x86 Linha Intel Core i3/i5/i7/i9 – Nomenclatura básica dos processadores: » U (Ultra Low Power): consumo de energia ultra baixo. » Y (Low Power): consumo de energia extremamente baixo. » T (Power Optimized): alta eficiência energética. » Q (Quad-Core): possui quatro núcleos físicos de processamento. » H (High-Performance Graphics): possui GPU embutida. » K (Unlocked): desbloqueado (suporta overclock). » G (Graphics Performance): identificador do desempenho gráfico. Saiba mais sobre os números de processadores Intel – Intel URL: https://www.intel.com.br/content/www/br/pt/processors/processor-numbers.html Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 71 Processador ARM Organização do processador – Organização simplificada: » Rm – registrador de origem » Rn – registrador de origem » Rd – registrador de destino » Acc registrador acumulador » CPSR – registrador de estado » Deslocador – unidade que pode deslocar ou rotacionar o valor de Rm antes de entrar na ALU. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 72 Processador ARM Modos do processador – A arquitetura ARM suporta sete modos de execução. – A maioria dos programas aplicativos executa em modo usuário. » Enquanto o processador está no modo usuário, o programa sendo executado é incapaz de acessar os recursos protegidos do sistema ou de alterar o modo, causando uma exceção nesse caso. – Os seis modos de execução restantes são referidos como modos privilegiados e são usados para executar o software do sistema. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 73 Processador ARM Modos do processador – Os modos de exceção têm acesso total aos recursos do sistema e podem mudar os modos livremente: » Modo supervisor: modo em que o SO é executado; é ativado quando se executa uma instrução de interrupção de software. » Modo aborto de acesso: ativado como resposta a falhas de memória. » Modo indefinido: ativado quando se tenta executar uma instrução não conhecida pelo core principal ou por um dos coprocessadores. » Modo interrupção rápida: ativado quando se recebe um sinal de interrupção a partir de uma fonte designada de interrupção rápida e não pode ser interrompida, embora possa interromper uma interrupção normal. » Modo interrupção: ativado quando se recebe um sinal de interrupção de qualquer outra origem e só pode ser interrompida por uma interrupção rápida. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 74 Processador ARM Modos do processador – O modo privilegiado restante é o modo sistema. – Esse modo é usado para executar certas tarefas privilegiadas do sistema operacional. – Não é ativado por nenhuma exceção e usa os mesmos registradores disponíveis no modo usuário. – As tarefas desse modo podem ser interrompidas por qualquer uma das cinco categorias de exceçõ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 - 201 75 Processador ARM Organização dos registradores – Possui 37 registradores de 32 bits visíveis ao usuário, arranjados em bancos parcialmente sobrepostos e o modo atual do processador define qual banco está disponível. » 31 registradores são classificados como sendo de uso geral, embora alguns tenham propósito específico, como contadores de programa. » 6 registradores são de estado de programa. » Os registradores R0 a R7, registrador R15 (PC – Program Counter) e registrador de estado de programa (CPSR – Current Program Status Register) são visíveis e compartilhados por todos os modos. » Os demais registradores possuem versões acessíveis apenas em determinado modo do processador. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 76 Processador ARM Organização dos 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 - 201 77 Processador ARM Processamento de interrupções – A arquitetura ARM suporta sete tipos de exceções e cada tipo é processado em um modo do processador específico. – Quando uma exceção ocorre, a execução é forçada de um endereço fixo de memória correspondente ao tipo de exceção. – Esses endereços fixos são chamados de vetores de exceção. – Se mais do que uma interrupção está aguardando, elas são tratadas em ordem de prioridade. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings, 10a edição - Editora Pearson - 201 78 Processador ARM Processamento de interrupçõ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 - 201 79 Família de Processadores ARM ARM Holdings licencia a arquitetura ARM– Inúmeros fabricantes criam suas linhas e famílias de processadores baseados na arquitetura ARM. » Snapdragon (Qualcomm) » Exynos (Samsung) » Axx Bionic (Apple) – Estão presentes em diferentes tipos de dispositivos: » celulares, consoles de vídeo games, automóveis, dispositivos IoT, leitores e- reader, televisores, etc – Segundo a empresa, de 2013 a 2017, foram comercializados 50 bilhões de processadores em todo o mundo. Arm Processors for the Widest Range of Devices – from Sensors to Servers – ARM URL: https://www.arm.com/products/silicon-ip-cpu Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 80 Família de Processadores ARM Snapdragon (Qualcomm) – Todos os membros da família Snapdragon integram a GPU, os circuitos para GPS e o modem para as redes GSM e CDMA. – Também encontram-se integrados atualmente os circuitos para câmera digital, Wi-Fi, Bluetooth e codecs para áudio e vídeo. » Snapdragon 8cx Gen 2 5G Compute Platform (8 series Platform) • 5G Chipset, Qualcomm Kryo 495 CPU (octa-core), Qualcomm Adreno 680 GPU • 5G Chipset, Qualcomm Kryo 490 CPU (octa-core), Qualcomm Adreno 675 GPU • Qualcomm AI Engine (4th Gen) » Snapdragon 7c Gen 2 Compute Platform (7 Series Platform) • Up to 2.5 GHz, Qualcomm Kryo 468 CPU (octa-core), Qualcomm Adreno 692 GPU • Qualcomm AI Engine (5th Gen) – 5 TOPS (Trillion Operations Per Second) » Snapdragon 675 Mobile Platform (6 Series Platform) • Up to 2.0 GHz, Qualcomm Kryo 460 CPU (octa-core), Qualcomm Adreno 610 GPU Mobile PCs – Powering a new era of computing – Qualcomm URL: https://www.qualcomm.com/products/mobile-computing/mobile-pcs Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 81 Família de Processadores ARM Exynos (Samsung) – Todos os membros da família Exynos integram múltiplos processadores e a GPU (SoCs – System-on-Chips). » Exynos 9825 (9 Series) – 7nm EUV • Custom CPU Dual + Cortex-A75 Dual + Cortex-A55 Quad, Mali G76 MP12 GPU • AI Engine with NPU and DSP » Exynos 8 Octa (8890) – 14nm FinFET • Custom CPU 2.3GHz Quad + Cortex-A53 1.6GHz Quad, Mali T880 MP12 GPU » Exynos 7 Octa (7420) – 14nm FinFET • Ciotex-A57 2.1GHz Quad + Cortex-A53 1.5GHz Quad, Mali T760 MP8 GPU Samsung Exynos – Samsung URL: https://www.samsung.com/semiconductor/minisite/exynos/products/all-processors Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 82 Família de Processadores ARM A12 Bionic (Apple) – Design da Apple e fabricado pela TSMC (Taiwan Semiconductor Manufactoring Company). – A12 Bionic – iPhone XS, XS Max e XR » ARMv8.3-A six-core CPU – 64 bits (7nm FinFET), com 2 cores de alto desempenho de 2.49GHz (Vortex) e 4 cores com eficiência de energética (Tempest). » Integrado com uma GPU de 4 cores Apple G11P (desenvolvida pela Apple). » Integrado com 8 núcleos para processamento de Inteligência Artificial (Neural Engine). Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br https://en.wikipedia.org/wiki/Apple_A12 83 Família de Processadores ARM A13 Bionic (Apple) – Design da Apple e fabricado pela TSMC (Taiwan Semiconductor Manufactoring Company). – A13 Bionic – iPhone 11 (Pro/Pro Max) e SE (2nd Gen) » ARMv8.4-A six-core CPU – 64 bits (7nm N7P), com 2 cores de alto desempenho de 2.65GHz (Lightning), com blocos AMX (Machine Learning Accelerators), e 4 cores com eficiência de energética (Thunder). » Integrado com uma GPU de 4 cores Apple (desenvolvida pela Apple). » Integrado com 8 núcleos para processamento de Inteligência Artificial (Neural Engine). Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br https://en.wikipedia.org/wiki/Apple_A13 84 Família de Processadores ARM A14 Bionic (Apple) – Design da Apple e fabricado pela TSMC (Taiwan Semiconductor Manufactoring Company). – A14 Bionic – iPhone 12 (Mini/Pro/Pro Max) e iPad Air (4th Gen) » ARMv8.5-A six-core CPU – 64 bits (5nm N5), com 2 cores de alto desempenho de 2.65GHz (Firestorm), com blocos AMX (Machine Learning Accelerators – 2nd Gen), e 4 cores com eficiência de energética (Icestorm). » Integrado com uma GPU de 4 cores Apple (desenvolvida pela Apple). » Integrado com 16 núcleos para processamento de Inteligência Artificial (Neural Engine). Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br https://en.wikipedia.org/wiki/Apple_A13
Compartilhar