Prévia do material em texto
ARA0039 – Arquitetura de Computadores Aula 04 – Processadores Situação Problema O computador digital moderno é um dispositivo eletrônico destinado ao processamento de dados. Atualmente, está presente em nosso cotidiano em formatos e tamanhos variados, auxiliando na realização das mais diversas atividades. Considerando que essa indispensável 'máquina' tem seu funcionamento baseado na arquitetura de Von Neumann, sendo dividido em unidades funcionais, qual a finalidade e como são organizados os componentes da Unidade Central de Processamento (processador) e como são processadas as instruções? Processador O processador é o componente responsável pela realização de todas as operações do computador. Interpreta e executa instruções e controla os demais componentes do hardware. Executa os programas armazenados na memória principal, buscando as instruções do programa, uma a uma, examinando-as, e executando-as uma após a outra; Gera sinais de controle, além de reconhecer e responder sinais externos (interrupções); É o responsável pela supervisão e controle de todo o funcionamento da máquina e pela realização das operações lógicas e aritméticas sobre os dados Processador O processador ao interpretar uma instrução em código de máquina, identifica a operação a ser realizada. Essa interpretação deve fornecer, basicamente, a operação desejada e a localização dos valores que serão utilizados, mas ela não é tão simples assim. A interpretação humana de uma operação matemática, por exemplo, é gráfica com utilização de vários símbolos para diferentes atividades. Computadores não possuem inteligência e por isso todos os passos para execução de uma tarefa precisam ser detalhados. Os primeiro processadores, utilizavam método sequencial de execução do ciclo de instruções e por esse motivo obriga os programas terem as instruções armazenadas em endereços sucessivos (células) na RAM e isso define o ciclo de busca das instruções. Processador Processadores mais novos já passaram a utilizar mecanismos chamados de estágios de pipelining, mais eficientes para execução das instruções. Figura 6.3 Funcionamento do hardware do processador – ciclo de instrução básico (MONTEIRO, 2010, p. 158) Processador As funções realizadas pelo processador podem ser divididas em funções de processamento e funções de controle. Função Processamento Associada às atividades de efetiva execução de operações matemáticas, lógicas e outras. Seus componentes principais são: Unidade Aritmética e Lógica(ULA); e os registradores de uso geral. Funções Básicas da CPU Função Controle Associada às atividades de busca, interpretação e controle da execução das instruções, movimento de dados, desvios e operações de entrada ou saída, bem como ao controle dos demais componentes do sistema de computação. Seus principais componentes são: Unidade de Controle(UC); Decodificador; Registrador de Instruções(RI); Contador de Instruções(CI); Relógio; Registrador de Endereço de Memória(REM). Processador Figura 6.5 Esquema simplificado de uma UCP. (MONTEIRO, 2010, p. 159) Processador Figura 6.21 Esquema simplificado de uma UCP. (MONTEIRO, 2010, p. 180) As funções do processador: Buscar uma instrução na memória; Interpretar que operação está sendo requerida; Buscar os operandos necessários; Executar a operação; Guardar o resultado (se for o caso); Reiniciar o ciclo. Ciclo de Instruções Unidade de Controle A 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). Figura 6.8 Componentes básicos da área funcional de controle (MONTEIRO, 2010, p. 161). Unidade de Controle Movimenta dados e instruções de e para o processador. Se conecta a ULA, aos registradores e ao barramento externo de controle. O relógio ou clock, gera sinais de controle de duração fixa, que são encaminhados pela unidade de controle para sincronizar as diversas operações do ciclo de instrução. A forma como a unidade de controle gerencia a execução das instruções, está diretamente ligada a arquitetura do processador, que pode ser: Processamento em modo serial (SISD); Processamento em modo concorrente (pipeline ou linha de montagem); Processamento paralelo (várias instruções simultaneamente); Processamento vetorial. Unidade de Processamento A função processamento se encarrega de realizar as atividades relacionadas com a efetiva execução de uma operação, ou seja, processar, realizar um calculo aritmético ou logico, p.ex.. Figura 6.6 Componentes básicos da área funcional de processamento (MONTEIRO, 2010, p. 160). Clock O desempenho de uma CPU tem um grande impacto na velocidade com que os programas são carregados e na fluidez com que são executados, por isso a velocidade do clock (também “taxa de relógio” ou “frequência”) é uma das principais especificações da sua CPU. Um “ciclo” é tecnicamente um pulso sincronizado por um oscilador interno, mas para nossos propósitos, eles são uma unidade básica que ajuda a entender a velocidade de uma CPU. Durante cada ciclo, bilhões de transistores dentro do processador abrem e fecham. Clock Clock ou frequência de trabalho, é medido em Hertz (Hz). Embora seja um dado técnico importante sobre processadores, o clock não é o único referencial de performance que podemos observar na hora de comparar diferentes processadores. Um processador de 4,0 GHz (Gigahertz), por exemplo, executa 4 bilhões de ciclos em um único segundo. Cada uma das instruções que as aplicações executam consomem ciclos. Às vezes, várias instruções são concluídas em um único ciclo de clock; em outros casos, uma instrução pode precisar de vários ciclos de clock. Como diferentes designs de CPU lidam com instruções de maneira diferente, não se deve comparar a eficiência das CPUs baseado apenas nas velocidades de clock. Clock Diferentes processadores executam o ciclo de máquina com diferentes quantidades de ciclos de clock, isso significa que alguns serão mais eficientes por executarem o ciclo de máquina com menos ciclos de clock. Instruções por segundo (IPS) é uma medida da velocidade do processador de um computador. Muitos valores IPS reportados representam apenas os "picos" de execução de sequências de instruções artificiais com poucas bandas, enquanto trabalhos realísticos consistiriam de uma mistura de instruções e até mesmo aplicações, algumas das quais levariam mais tempo para executar do que outras. O desempenho da hierarquia de memória também afeta extremamente o desempenho do processador, uma edição considerada mal em cálculos do IPS. Registradores Os registradores de dados de alguns processadores tem uma largura (quantidade de bits que podem armazenar) igual ao tamanho estabelecido pelo fabricante para a palavra do referido processador, quando se trata de registradores para valores inteiros e que operam com a unidade de execução de cálculos de valores inteiros, enquanto possuem, em geral, o dobro da largura da palavra quando se trata de registradores para armazenar números representados em ponto flutuante, a serem manipulados pelas unidades de calculo de ponto flutuante (FPU). Desse modo, processadores que possuem palavra de largura igual a 16 bits devem ter seus registradores de dados com largura igual a 16 bits, assim como aqueles que possuem palavra de 32 ou 64 bits devem ser fabricados com seus registradores de dados com largura, respectivamente, de 32 bits e 64 bits. (MONTEIRO, 2010) Registradores Os dispositivos básicos que fazem parte da área funcional de controle são: unidade de controle – UC; relógio ou clock; registrador de instrução – RI ou IR – Instruction Register; contador de instrução – CI ou PC – Program Counter; decodificador de instrução; registrador de dados da memória – RDM (MBR) e registradores de endereço de memória – REM (MAR). Registradores Específicos Registrador de Instrução (RI) ou InstructionRegister (IR) armazena a instrução que está sendo executada pelo processador. Contador de Instrução (CI) ou Program Counter (PC) armazena o endereço da próxima instrução a ser executada. Registrador de estado (PSW - Program Status Word) armazena condições de estado geradas pela unidade aritmética e lógica, gerando informações para a unidade de controle; Registradores Específicos Registrador de Dados de Memória (RDM) ou Memory Buffer Register (MBR) Contém o dado a ser escrito na memória (write) ou lido da memória (read), possui um tamanho (capacidade de armazenamento de bits) igual ao do barramento de dados Registrador de Endereços de Memória (REM) ou Memory Address Register (MAR) Contém o endereço do dado a ser lido ou escrito na memória, possui um tamanho igual ao dos endereços da memória (e, consequentemente, do barramento de endereços do sistema). Registradores Especiais de Estado PSW – Program Status Word (Palavra de estado do programa ou registrador de controle) Diferente dos outros registradores, o PSW não armazena um dado de forma integral, ou seja, um dado que ocupa toda sua largura. Ele utiliza os diversos bits que possui para armazenar diversas informações de um bit. Os bits do PSW são setados (valor=1) ou não setados (valor=0) para indicar se determinada operação ocorreu ou não ocorreu. Registradores Especiais de Estado Os principais bits de estado mais frequentemente encontrados nos processadores são: Sinal –– contém o sinal resultante da última operação aritmética realizada pelo processador. Overflow –– quando setado (=1) indica que a última operação aritmética realizada resultou em estouro do valor, um erro. Zero –– quando setado (=1) indica que a última operação aritmética realizada resultou no valor zero. Vai 1 (carry) - indica que ocorreu “vai 1” para o bit mais à esquerda na última operação de soma realizada. Pode indicar, também, overflow em operações com números sem sinal. Paridade –– é setado (=1) ou não (=0), dependendo da quantidade de bits 1 no byte recebido. Tamanho da Palavra Segundo Monteiro, “nos processadores mais antigos o barramento externo de dados (o BD, existente na placa-mãe, também chamado em bloco de barramento do sistema ou FSB – front side bus) tinha uma largura, em bits, igual ao tamanho da palavra. Com a inserção da memória cache interna nos processadores, a partir do processador Intel 486, tornou-se vantajoso buscar mais dados de cada vez das memórias externas ao processador, já́ que estes poderiam ser armazenados na cache L1 antes de requeridos pelo processador, acelerando a velocidade de processamento. Desta forma, os barramentos de dados passaram a ter uma largura, em bits, maior do que o tamanho da palavra. Um tamanho maior ou menor de palavra (e, por conseguinte, da UAL e dos registradores de dados) acarreta, sem duvida, diferenças acentuadas de desempenho do processador. Pipeline A unidade de Controle – UC, cujo papel principal é realizar, de forma permanente e sucessiva, ciclos de instrução (que consistem em atividades para execução de uma instrução de maquina), pode funcionar de forma: sequencial ou serial – um ciclo completo de uma instrução de cada vez; pipelining – vários ciclos de instrução sendo executados de forma concorrente. A execução de forma sequencial é uma forma antiga e fora de uso no mercado desde os processadores de 8 bits (8080, Z-80, M6800 etc.), em face de suas inúmeras limitações, principalmente de desempenho. (MONTEIRO, 2010) Pipeline Programa sequencial Uma série de ações que produz um resultado; Contém um único thread de controle; É executado por um único processo. Um programa é considerado sequencial quando este é visto como uma série de instruções sequenciais que devem ser executadas em um único processador Pipeline A técnica de pipelining permite que o processador tire proveito máximo de suas estruturas internas, dividindo o ciclo de processamento em tarefas menores. A execução destas tarefas em sequência e que permitem o melhor aproveitamento do hardware. Para que ocorra pipelining é necessário: Instruções com tempo de execução próximos e previsíveis (execução em um único ciclo) Baixo número de instruções. Pipelining O Pipeline é uma técnica de paralelismo de instruções que consiste em permitir a execução de instruções sobrepostas. É uma técnica fundamental para tornar os processadores mais rápidos. A ideia fundamental é análoga à execução das tarefas em uma lavanderia de roupas, numeradas como etapas do processo: 1. Colocar a roupa suja na lavadora 2. Transferir a roupa lavada da lavadora para a secadora 3. Levar a roupa seca para a mesa de passar 4. Guardar a roupa no armário. Pipelining 1. Colocar a roupa suja na lavadora; 2. Transferir a roupa lavada da lavadora para a secadora; 3. Levar a roupa seca para a mesa de passar; 4. Guardar a roupa no armário. Pipelining 1. Colocar a roupa suja na lavadora; 2. Transferir da lavadora para a secadora e colocar roupa suja na lavadora; 3. Levar a roupa seca para a mesa de passar e colocar a roupa lavada na secadora; 4. Guardar a roupa no armário e colocar roupa seca na mesa de passar. Pipeline Pipeline de quatro estágios Estagio 1 – Unidade de busca de instrução busca a instrução na memória e coloca em buffer até que ela seja necessária. Estágio 2 – Unidade de decodificação de instrução identifica a instrução, determina o seu tipo e de quais operandos necessita. Estágio 3 – Unidade de busca de operando localiza e busca os operandos em memória ou registradores. Estágio 4 – Unidade de execução de instrução executa a instrução propriamente dita, fazendo uso dos operandos. Pipeline A execução de uma instrução em um computador com quatro pipelines perfeitos pode ser resumida em quatro passos principais: Busca de instrução (BI); Decodificação de instrução (DI); Busca de operando (BO); Execução da instrução (EI). t = estágios de pipe + instruções - 1 O diagrama espaço-tempo abaixo mostra a sequência de eventos para um processador pipeline. Pipeline No diagrama ao lado o pipeline tem quatro estágios (BI, DI, BO e EI) e executa cinco instruções (I1, I2, I3, I4 e I5). Sendo assim: t = estágios de pipe + instruções - 1 t = 4 + 5 -1 t = 8 tempos O diagrama espaço-tempo abaixo mostra a sequência de eventos para um processador pipeline. Pipeline O throughput de um pipeline é determinado pela frequência com que uma instrução sai do pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir. O tempo requerido para mover uma instrução de um estágio a outro é denominado ciclo de máquina. Desta forma, o tempo de um ciclo de máquina corresponde ao tempo requerido pelo estágio mais demorado. Exercício image2.jpeg image3.png image4.png image5.png image6.png image7.png image8.png image9.png image10.png image11.png image12.png image13.jpeg image14.jpeg image1.jpeg