Baixe o app para aproveitar ainda mais
Prévia do material em texto
Mario A. Monteiro ARQUITETURA DE COMPUTADORES Unidade 4 Tópicos 4.1 e 4.2 PROCESSADORES Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES TÓPICOS • ORGANIZAÇÃO • COMPONENTES BÁSICOS • INSTRUÇÃO DE MÁQUINA • CICLO DE INSTRUÇÃO • EXECUÇÃO DE PROGRAMAS Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES Todo processador pode ser analisado como sendo organizado em duas áreas funcionais: Cada uma possuindo componentes específicos. Área de controle Área de execução (ou processamento) Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES Função de um Processador Realizar, etapa por etapa, a execução do ciclo de uma instrução, permitindo que elas sejam executadas de forma automática. O ciclo pode ser compreendido com atividades em duas categorias: as cerebrais (de interpretração e emissão dos sinais de controle apropriados para execução) e as de execução de uma operação propriamente dita. Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES A Arquitetura de qualquer Processador é projetada para executar Instruções de Máquina. ARQUITETURA DE UM PROCESSADOR 1001010101110101010101010110 Na fábrica, os engenheiros projetistas definem quais operações serão realizadas diretamente pelo Hardware. As operações são implementadas por sequências binárias denominadas INSTRUÇÕES DA MÁQUINA. Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES Todo o conjunto de dispositivos existente em um processador (decodificadores, unidades de cálculo, registradores, etc) servem para executar as instruções. Na realidade, servem para realizar as etapas de um ciclo de instrução. Principalmente o conjunto de instruções e os registradores de dados formam a ARQUITETURA DO PROCESSADOR (podem servir a mais de um modelo de processador). ARQUITETURA DE UM PROCESSADOR Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES EXEMPLOS DE ARQUITETURAS DE PROCESSADORES Arquitetura X86 e IA 64 (da INTEL) Arquitetura ARM (da ARM – tipo RISC) Arquitetura POWER (da IBM, usada nos processadores CELL). Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES Usualmente, uma Instrução de Máquina deve conter um grupo de bits que identifica a operação (denomina-se CÓDIGO DA OPERAÇÃO) e outro grupo de bits que identifica a localização dos dados que serão manipulados na referida operação. (denomina-se OPERANDO) Conjunto de bits que identifica uma determinada operação primitiva a ser realizada diretamente pelo HW. Instrução de Máquina 110101 1010101010101010101010 Cód. operação Operando (s) Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES OPERAÇÕES PRIMITIVAS - EXEMPLOS - Operações aritméticas – somar, subtrair, multiplicar e dividir - Operações lógicas – AND, OR, XOR - Operações de entrada e saída de dados - Operações de desvio de controle - Operações de movimentação de dados Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES INSTRUÇÃO DE MÁQUINA – EXEMPLOS Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES PARTES DE UMA INSTRUÇÃO DE MÁQUINA Código de Operação – C.Op. – campo da instrução que indica qual a operação a ser realizada e sua decodificação inicia a execução da referida operação. Operando(s) – Op – campo da instrução, cujos bits representam o(s) dado(s) que será(ão) manipelado(s) na operação. A instrução pode conter um ou mais campos operando, bem como pode representar o endereço do dado (caso de uma variável) ou o próprio valor do dado (caso de uma constante do programa). Cod.Oper. Operando (s) Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES INSTRUÇÃO DE MÁQUINA -Formato Básico: 2 partes: - (C.Op) - Código de Operação - (Op) - Operando (s). Pode ter 1, 2 ou 3. C. Op Oper 1 Oper 2 Oper 3 ADD A, B, C C. Op C. Op Operando Oper 1 Oper 2 ADD A ADD A, B Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES EXEMPLOS DE INSTRUÇÕES DE MÁQUINA ADD Op1, Op2 – soma o valor cujo endereço é Op1 com o valor cujo end. é Op2 e armazena o resultado no endereço indicado por Op1. Os valores Op1 e Op2 podem ser endereço de memória ou endereço de registradores de dados. Nesse caso, a sintaxe da instrução costuma ser: ADD R1, R2 ADD Nota A, Nota B MOV Op1, Op2 – significa: mover o valor do endereço Op2 para Op1. ADD C.Op Op. 1 Op. 2 Nota A Nota B Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES CICLO DE INSTRUÇÃO Início 1. Buscar a instrução na Memória (endereço = CI) e armazenar no RI. BUSCA 2. Incrementar o CI para apontar para a próxima instrução. PROX. INST 3. Decodificar o C. Op. para definir qual a operação a ser realizada e emissão dos sinais apropriados para sua execução. INTERPRETAÇÃO 4. Se houver operando(s) buscar na memória. 5. Executar a operação na unidade de cálculo EXECUÇÃO Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES Componentes da área de controle Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES Registrador CI (etapa 1 do Ciclo de Instrução) CI (PC ou programa counter) – armazena o endereço da próxima instrução Registrador RI (etapa 1 do Ciclo de Instrução) RI (IR ou instruction register) – armazena a instrução a ser executada (ou seu C. Op.) Decodificador de Instrução (etapa 3 do Ciclo de Instrução) atende à etapa 3 do Ciclo de Instrução Possui n bits de entrada (n = largura do C.Op) e 2n fios de saída, sendo UMA única saída verdade (bit 1) para cada entrada. COMPONENTES PARA A ÁREA DE CONTROLE Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES Unidade de Controle – UC – contém a programação para execução do ciclo básico de qualquer instrução, bem como as sequências de microoperações para execução de cada instrução existente. Relógio - dispositivo que produz uma sequência de pulsos em uma frequência determinada, os quais servem para sincronizar e cadenciar as diversas microoperações do processador. Há um único relógio físico no sistema, que passa por uma distribuidor (multiplica ou divide a quantidade de pulsos) e os envia, na sequência requerida para: processador (maior velocidade); barramentos. Veloc= 1MHz = 1 * 106 . Intervalo entre pulsos (ciclo do relógio) = 1 / 1 * 106 = 1 microseg ou 10-6 COMPONENTES PARA A ÁREA DE CONTROLE Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES Componentes da área de processamento Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES Componentes da área de processamento Unidades de cálculo (ULA) – unidade lógica e aritmética – realiza as operações aritméticas e lógicas existentes no conjunto de instruções do processador. Unidade de Ponto Flutuante – FP –Executa operações aritméticas com números fracionários e números muito grandes ou muito pequenos. Registradores de Dados - armazenam os dados a serem manipulados pelas unidades de cálculo. Registrador de Controle – armazena elementos de ajuda na interpretação de ocorrências em operações (bit de overflow, bit de underflow, bit de “vai 1” em operações de soma, bit indicador de resultado zero, etc) Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES PROCESSAMENTO PARALELO OBJETIVO: aumentar a capacidade de processamento. Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES PROCESSAMENTO PARALELO Há diversos métodos de um processador realizar seu trabalho – executar as etapas de um ciclo de instrução. Processamento simples,sequencial – SISD (uma instrução manipulando um dado) Processamento paralelo: - por instrução – SIMD – uma instrução manipulando múltiplos dados - controle por pipeline – diversas instruções em etapas diferentes de execução “simultânea” - processamento superescalar – diversas execuções - multiprocessamento Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES PROCESSAMENTO PIPELINE Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES PROCESSAMENTO PIPELINE B – estágio de busca E – estágio de execução Diagrama de tempo de um ciclo de instrução com 2 estágios Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES PROCESSAMENTO PIPELINE Diagrama de tempo de um ciclo de instrução com 6 estágios Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES EXEMPLO DE ARQUITETURA SUPERESCALAR Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES DIAGRAMA EM BLOCOS DE UM PROCESSADOR PENTIUM Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES PROCESSADOR PENTIUM 4 (P4) Mario A. Monteiro ARQUITETURA DE COMPUTADORES EXECUÇÃO DE PROGRAMAS Mario A. Monteiro ARQUITETURA DE COMPUTADORES - Um programa executável(.EXE) é constituído de um conjunto de instruções de máquina(código binário). - O processador executa instrução por instrução(ciclo de instrução) e NÃO o programa inteiro. Isto é, ele não entende o programa, mas sim a instrução que vai ser executada no momento. EM RESUMO O processador busca uma instrução da memória, interpreta o que ela faz(qual a operação) e executa; em seguida, repete as mesmas atividades para instrução seguinte… e assim por diante. EXECUÇÃO DE PROGRAMAS Mario A. Monteiro ARQUITETURA DE COMPUTADORES EXECUÇÃO DE PROGRAMAS O DESEMPENHO DE UM PROCESSADOR É DEPENDENTE DE DIVERSOS FATORES. Um deles refere-se ao tempo de execução de cada instrução – quantidade de ciclos de relógio (“clock”) Mario A. Monteiro ARQUITETURA DE COMPUTADORES O PONTO CRÍTICO DO PROJETO DE UM PROCESSADOR É, ENTÃO : EXECUÇÃO DE PROGRAMAS O CICLO DE INSTRUÇÃO Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES CICLO DE INSTRUÇÃO Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES EXECUÇÃO DE PROGRAMAS PELO PROCESSADOR CIRI Processador 52 Decod. Instrução UAL Registrador de Dados 1. Buscar Instrução RI � (CI) Ciclo de Instrução 2. Incrementa o CI para próxima Instrução CI � CI + 1 Decodificar COD. Operação 4. Executar a Operação 5. Voltar para etapa 1 Mem Principal Instrução 1 Instrução 2 52 54 Instrução 3 53 11 Instrução 1 Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES EXECUÇÃO DE PROGRAMAS PELO PROCESSADOR CIRI Processador 52 Decod. Instrução UAL Registrador de Dados 1. Buscar Instrução RI � (CI) Ciclo de Instrução 2. Incrementa o CI para próxima Instrução CI � CI + 1 Decodificar COD. Operação 4. Executar a Operação 5. Voltar para etapa 1 Mem Principal Instrução 1 Instrução 2 52 54 Instrução 3 53 Instrução 1 2 53 Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES EXECUÇÃO DE PROGRAMAS PELO PROCESSADOR CIRI Processador 52 Decod. Instrução UAL Registrador de Dados 1. Buscar Instrução RI � (CI) Ciclo de Instrução 2. Incrementa o CI para próxima Instrução CI � CI + 1 3. Decodificar COD. Operação 4. Executar a Operação 5. Voltar para etapa 1 Mem Principal Instrução 1 Instrução 2 52 54 Instrução 3 53 3 Instrução 1 Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES EXECUÇÃO DE PROGRAMAS PELO PROCESSADOR CIRI Processador 52 Decod. Instrução UAL Registrador de Dados 1. Buscar Instrução RI � (CI) Ciclo de Instrução 2. Incrementa o CI para próxima Instrução CI � CI + 1 3. Decodificar COD. Operação 4. Executar a Operação 5. Voltar para etapa 1 Mem Principal Instrução 1 Instrução 2 52 54 Instrução 3 53 4 Instrução 1 Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES EXECUÇÃO DE PROGRAMAS PELO PROCESSADOR CIRI Processador 53 Decod. Instrução UAL Registrador de Dados 1. Buscar Instrução RI � (CI) Ciclo de Instrução 2. Incrementa o CI para próxima Instrução CI � CI + 1 3. Decodificar COD. Operação 4. Executar a Operação 5. Voltar para etapa 1 Mem Principal Instrução 1 Instrução 2 52 54 Instrução 3 53 Instrução 2 5 5 Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES ETAPAS DE EXECUÇÃO DE UM PROGRAMA Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES ARQUITETURAS C I S C X R I S C CISC – Complex Instruction Set Computer (computador com conjunto complexo de instruções) RISC – Reduced Instruction Set Computer (computador com conjunto reduzido de instruções) Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES - Poucos Registradores de Dados - Conjunto de Instruções de Máquina * O controle é implementado por microprogramação. * Muitas Instruções (alguns processadores chegaram a ter mais de 300 instruções) * Maior tempo de decodificação * Muitos modos de endereçamento, a maioria não sendo usados pelos compiladores. * Diversas instruções com acesso à memória (lento) CARACTERÍSTICAS DE ARQUITETURAS CISC Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES CARACTERÍSTICAS DE ARQUITETURAS CISC POR QUE MUITAS INSTRUÇÕES? Para facilitar a tarefa dos compiladores (bem como seu projeto e implementação) Reduzindo o GAP entre o comando do código fonte e as instruções do código objeto. Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES CARACTERÍSTICAS DE ARQUITETURAS RISC Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES CARACTERÍSTICAS DE ARQUITETURAS RISC * Devem completar cada instrução em 1 ciclo de relógio * Possuem grande quantidade de registradores, com o propósito de reduzir acesso à memória. Os dados permanecem nos registradores sendo reutilizados de lá e não da memória. * Acesso à memória apenas para buscar (inicialmente) o dado e retornar eventual resultado de operação) Somente instruções LOAD e STORE. Todas as operações usam instruções que manipulam dados nos registradores (são menores em largura e mais rápidas). Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES EXEMPLOS DE PROCESSADORES CISC – IBM/64; Intel Pentium 1, II, III e alguns modelos P4, bem como os correspondentes AMD (mesma arquitetura X86) RISC - Berkeley RISC 1 – SPARC - MIPS – RS6000 – Power PC Intel i3, i5, i7 - ARM (celulares, palms, embutidos, etc) Mario A. Monteiro ARQUITETURA DE COMPUTADORES PROCESSADORES CARACTERÍSTICAS DA ARQUITETURA ARM - Desenvolvida (1983) pela empresa Acorn (atualmente licencia) - Baixo custo – baixo consumo de energia (poucos transistores) - Exemplos: celulares – tablets – console jogos - Características, típicas de arquitetura RISC: • Palavra de 32 bits • Bastante registradores (32 de emprego geral) • Apenas instruções LOAD/STORE para acesso memória • Instruções de tamanho fixo • Instruções aritméticas com 3 operandos • Coprocessador (extende uso do processador) (Advanced Risc Machine)
Compartilhar