Disciplina: Organização de computadores Professora: Carolina D. G. dos Santos E-mail: [email protected] Página: profcarolinadgs.webnode.com.br Unip / Prof.a Carolina 1 Processador Componentes básicos de um computador Processador Dispositivo de Entrada Memória principal (RAM) ou primária Dispositivo de Saída Memória secundária 2 Processador (CPU) ● CPU (Central Processing Unit) é o coordenador de todas as “atividades” de um computador (“cérebro”) ou UCP (Unidade Central de Processamento). ● É interligado aos outros elementos do computador a partir de um barramento: – Barramento: coleção de fios para transmitir endereços, dados e sinais de controle. ● Existem barramentos internos e externos ao processador Buscar uma instrução Interpretar a instrução Executar a operação indicada pela interpretação 3 Analogia com o cérebro humano Se uma pessoa de repente deseja levantar seu braço direito (executar operação primitiva – o processador – executar a soma de dois números <seqüência de execução vem de fábrica embutida na UC do processador>). Realiza primeiro a atividade cerebral de interpretar a ordem (instrução de máquina) de levantar o braço (somar 2 valores) Gera sinais elétricos que percorrem os nervos (nossa “fiação” interna, barramento no processador) até os músculos do braço – essa seqüência faz parte da atividade cerebral, semelhante à da área de controle do processador. Ao atingir os músculos, os sinais acionam o movimento de suspender o braço (atividade muscular – atividade de execução da operação ou atividade de processamento). 4 Visão geral da CPU Unidade Central de Processamento (CPU) Unidade de Controle (UC) Unidade Aritmética Lógica (UAL) Busca e decodificação Operações lógicas e aritméticas Armazenamento para processar Dispositivos de I/O Registradores A B C D PC IR .. . .. . Memória Principal Disco Impressora Barramento 5 Processador (CPU) ● Função do processador: executar instruções (programas) obtidas a partir da memória principal. ● Um programa é composto por uma série de instruções que são executadas seqüencialmente pela CPU, através de operações básicas como somar, subtrair, comparar e movimentar dados. ● A CPU é composta por diversas partes: – Unidade de Controle (UC) – Unidade Aritmética e Lógica (UAL ou ULA) – Registradores (propósito geral e propósito específico) ● PC (Program Counter), IR (Instruction Register) 6 clock UC ULA R0 .. . RK PC RI ACC RDM REM 7 Processador (CPU) ● Unidade de controle (UC) – responsável pela busca das instruções na memória principal, sua decodificação e execução. – Controla todos os componentes e dispositivos de um computador, emitindo sinais elétricos periódicos (pulsos de controle) gerados por um dispositivo de relógio (clock). – Inicia ou termina a leitura de dados, controla o armazenamento de palavras na memória, a execução de uma instrução, o início de uma operação aritmética, etc. 8 clock UC ULA R0 .. . RK PC RI ACC RDM REM 9 Processador (CPU) – Contador de Instrução (Program Counter – PC): é quem armazena o endereço da (aponta para a) próxima instrução a ser executada. Determina a seqüência (fluxo) de execução de um programa, endereçando instrução por instrução – Registrador de Instruções (Instruction Register – RI): armazena (contém) a instrução que está sendo executada. 10 clock UC ULA R0 .. . RK PC RI ACC RDM REM 11 Processador (CPU) – Unidade de Lógica e Aritmética (ULA): possui os circuitos necessários para executar operações lógicas e aritméticas. • Exemplos: Somas, subtrações, determinação de sinal, comparações algébricas de números, verificar se um número é maior ou menor que zero, etc. – Possui também pelo menos um registrador encarregado de armazenar números a serem operados pela ULA ou resultados de operações. Esse registrador é chamado de Acumulador (ACC). 12 clock UC ULA R0 .. . RK PC RI ACC RDM REM 13 Processador (CPU) ● Registradores: os registradores são dispositivos de pequena capacidade e alta velocidade, localizados na CPU, para armazenamento temporário de dados e certas informações de controle. ● O número de registradores varia em função da arquitetura de cada processador. ● Formada por: • Registradores de uso geral: acessíveis ao usuário no nível convencional de máquina • Registradores de uso específico: acessíveis diretamente apenas pela UC durante a execução de um programa. 14 clock UC ULA R0 .. . RK PC RI ACC RDM REM 15 Processador (CPU) ● Registradores Especiais mais Comuns (de uso específico) - ACC - Acumulador (Accumulator) - guarda dados utilizados em operações matemáticas e lógicas, auxiliando a ALU. - RI - Registrador de Instruções (ou IR – Instruction Register) guarda o código binário da operação corrente (em linguagem de máquina) - CI - Contador de Instruções (ou PC – Program Counter) Guarda o endereço de memória da próxima instrução a ser executada. 16 Processador (CPU) ● Registradores Especiais mais Comuns (cont.): - RDM - Registrador de Dados da Memória (ou MBR - Memory Buffer Register, ou ainda, MAR - Memory Data Register) guarda os dados que serão lidos ou gravados na memória - REM - Registrador de Endereços da Memória (ou MAR Memory Address Register) - guarda o endereço de localização para o acesso à memória. 17 Processador (CPU) ● A velocidade de processamento (desempenho) de uma CPU é determinada pelo número de instruções que o processador executa por unidade de tempo. ● Alguns fabricantes utilizam unidades de processamento próprias, já que não existe uma padronização. ● O mais comum é o MIPS (Milhões de instruções por segundo) e o MFLOPS/GFLOPS (Milhões/Bilhões de instruções de ponto flutuante por segundo). 18 Processador (CPU) ● Clock: o clock é um dispositivo, localizado na CPU, que gera pulsos elétricos síncronos em um determinado intervalo de tempo (período). ● A quantidade de vezes que este pulso se repete em um segundo define a freqüência do clock. ● O sinal do clock é utilizado pela UC para sincronizar a execução das instruções. ● A freqüência do clock é expressa em Hertz, o que significa o número de pulsos gerados em um segundo. ● Então, um computador com um clock de 100 MHz significa que o pulso se repete cem milhões de vezes por segundo. 19 Clock Ciclo do relógio (clock cycle ou cycle) – intervalo de tempo entre o início da subida (ou da descida) de um pulso até o início da subida (ou da descida) do outro pulso; Período (cycle time ou period) – intervalo de tempo gasto para se obter um ciclo do sinal do relógio (ns - nanossegundos) Lado de subida (rising edge) – é a parte do pulso que realiza a transição do valor baixo para o valor alto; Tempo de subida (rising time) – é o período de tempo gasto pelo sinal para realizar toda a subida (ns - nanossegundos). 1 (clock cycle) 1 ciclo Lado de subida Lado de descida 0 tempo Período 20 Esquema Simplificado da CPU 21 Área funcional de processamento (Execução de operação) Área funcional do controle (Busca, interpretação e controle de instrução) Barramento interno Funções do Processador Funções de processamento Funções de controle ~~~ ~~~ ~~~ Para memória Barramento do Sistema (System bus) Diagrama de bloco (básico) de um processador 22 Funções do Processador Função de processamento se encarrega de realizar atividades relacionadas com a efetiva execução de uma operação, ou seja, processar, realizar um cálculo aritmético ou lógico. Função controle é exercida pelos componentes do processador que se encarregam das atividades de busca, interpretação e controle da execução das instruções, bem como do controle da ação dos demais componentes do sistema de computação (memória, entrada/saída). 23 Funções de Processamento Unidade Lógica e Aritmética (ULA, UAL, ALU) Registradores de dados e registradores especiais de estado (PSW – program status word) Componentes as área funcional de processamento 24 Componentes com função de Processamento 25 Funções de Controle Unidade de controle, relógio (clock) Registradores especiais • PC – program counter (CI - contador de instruções) • IR – instruction register (RI – registrador de instrução) • REM – registrador de endereços de memória (MAR) • RDM – registrador de dados de memória (MDR) 26 Componentes com função de Controle 27 Unidade de Controle Registrador de Instrução Código de operação Pulsos de Relógio DECODIFICADOR Sinal resultante da decodificação (apenas 1 saída ativada de cada vez) ... t0 Gerador de tempo t1 ... t2 UNIDADE DE CONTROLE tn Sinais de controle para o barramento de sistema Sinais de controle vindos do barramento de sistema Sinais de controle para Dispositivos internos da UCP (registradores, UAL, etc) BARRAMENTO DE CONTROLE 28 Processador (CPU) ● Conjunto de Instruções de um Processador: A CPU (hardware) espera encontrar um programa em linguagem de máquina (uma seqüência de instruções de máquina em código binário). ● Linguagem de Máquina: a linguagem de máquina é composta de códigos binários, representando instruções, endereços e dados e está totalmente vinculada ao conjunto de instruções da máquina. ● Todo processador já vem com seu conjunto de instruções pré-definido. 29 Instruções – São comandos fornecidos ao computador para que ele execute uma tarefa específica (soma, teste, desvio, etc) – Uma série dessas instruções constituem um programa. – Cada computador (processador) tem um repertório particular de instruções, cuja rapidez de execução é um fator determinante na “potência de computação” (desempenho / performance) da máquina – Conforme proposto por Von Neumann, as instruções, tal qual os dados, devem residir na MP, e dispostas seqüencialmente. – A seqüência de execução pode ser alterada por Instruções de Desvio 30 Formato das Instruções Código da Instrução (OpCode) Operando – Op (Informação Complementar) Código de Operação ou OPCODE - campo da instrução cujo valor binário identifica (código binário) a operação a ser realizada. Este código é a entrada no decodificador de instruções na unidade de controle. Cada instrução deverá ter um código único que a identifique. Operando(s) - campo(s) da instrução cujo valor binário indica a localização do dado (ou é o próprio dado) que será manipulado pela instrução durante a operação. Um operando pode conter: - o endereço de memória onde está o dado - o endereço onde o resultado da operação será armazenado - a indicação de um registrador que conterá o dado ou endereço de memória onde está armazenado o dado 31 Formato das Instruções Código da Instrução (OpCode) Operando – Op (Informação Complementar) – OpCode: identifica a instrução a ser efetuada – Op: identifica sobre o que (quem) a instrução manipulará – Existem instruções de 1, 2 ou 3 operandos – O tamanho do OpCode indica o número máximo de instruções da máquina. • n bits => até 2n instruções – Ciclo de Instrução: conjunto de operações realizadas pelo computador para completar a execução de uma instrução 32 Ciclo de Instrução básico Início Buscar instrução na memória Endereço da instrução está no Registrador PC (Program Counter) Interpretar a operação a ser realizada Conteúdo da instrução está no Registrador IR (Instruction Register) Buscar operandos (se houver) Executar a Operação Escrever resultado Término Este ciclo repete-se indefinidamente até que o sistema seja desligado ou reiniciado, ou ocorra algum tipo de erro ou, ainda, que seja encontrada uma instrução de parada. Projetado e fabricado com o propósito único de executar sucessivamente pequenas operações matemáticas (ou outras manipulações de dados), na ordem e na seqüência definidas pela organização do programa. 33 INÍCIO Ciclo de Instrução básico Buscar instrução na memória Interpretar a Instrução Buscar os Dados Executar a Instrução FETCH DECODE LOAD EXECUTE FIM Salvar os Resultados STORE 34 Ciclo de Instrução básico • Palavras são as unidades de dados movidas entre a memória e os registradores. • Instruções Registrador-Memória – Permitem que o conteúdo de palavras de memória seja armazenado nos registradores (LOAD) ou conteúdos de registradores armazenados na memória (STORE) • Referências a uma palavra deve ser feita através de Endereços • Instruções Registrador-Registrador – Típico: • busca dois operandos em registradores • coloca-os nas entradas da ULA • realiza alguma operação sobre eles • ... e armazena o resultado em um dos registradores – Determina um caminho de dados 35 Ciclo de Instrução básico • Caminho de Dados – Registradores – ULA – Controlado pela UC • A velocidade do ciclo do caminho de dados (Ciclo de Instrução) determina, em última análise, a velocidade do processador. 36 Ciclo de Instrução básico • Ciclo de Instrução – Conjunto de ações (operações) realizadas pela CPU para completar a execução de uma instrução – Divide-se em Ciclo de Busca (Fetch Cycle) e Ciclo de Execução (Execution Cycle). • Ciclo de busca (FETCH Cycle) 1. A UC lê (busca) a instrução na memória e carrega (armazena) a instrução em RI para ser decodificada e executada. 2. Atualização do valor de PC (incremento), fazendo-o apontar para a instrução seguinte 37 Ciclo de Instrução básico • Ciclo de execução (EXECUTION cycle) 3. Determinação do tipo de instrução que está armazenada em RI (decodificação) 4. Determinação de onde (endereço) uma palavra está armazenada, caso necessário 5. Busca da palavra, se necessário, e armazenamento em um dos registradores do processador 6. Execução da instrução 7. Retorno ao passo 1 para iniciar a execução da instrução seguinte 38