Grátis 19 pág.
Pré-visualização | Página 6 de 6processador x86. 7.7 Pipeline Pipeline é uma técnica de hardware que permite que a CPU realize a busca de uma ou mais instruções além da próxima a ser executada. Estas instruções são colocadas em uma fila de memória dentro do processador (CPU) onde aguardam o momento de serem executadas: assim que uma instrução termina o primeiro estágio e parte para o segundo, a próxima instrução já ocupa o primeiro estágio (Figura 35). Em resumo, é o processo pelo qual uma instrução de processamento é subdividida em etapas, uma vez que cada uma destas etapas é executada por uma porção especializada da CPU, podendo colocar mais de uma instrução em execução simultânea. Isto traz um uso mais racional da capacidade computacional com ganho substancial de velocidade. Entre os problemas enfrentados estão a dependência de instruções anteriores e desvios que dificultam o processo, bem como a diferença de complexidade de instruções que fazem com que as mesmas possam levar um tempo variável para execução. A técnica de pipeline é u�lizada para acelerar a velocidade de operação da CPU, uma vez que a próxima instrução a ser executada está normalmente armazenada nos registradores da CPU e não precisa ser buscada da memória principal que é muito mais lenta. Figura 35 (a) Pipeline de 5 estágios. (b) Estado de cada um dos estágios como função do tempo. Estão ilustrados nove períodos de clock. Organização e Arquitetura de Computadores 61 Conceito A técnica de pipeline é semelhante a uma linha de produção de fábrica. Cada instrução de um microprocessador passa por diversas fases até sua execução. Estas fases podem ser: Decodificação, Acesso à memória ou aos registradores e Processamento aritmé�co. Se conseguirmos separar todas estas fases de forma independente, e separar cada fase por ciclo de relógio teríamos (neste exemplo) 3 ciclos por instrução. Se usarmos uma técnica de pipeline poderíamos colocar 3 instruções ao mesmo tempo no microprocessador (cada uma numa fase dis�nta) e termos 3 instruções em 3 ciclos (1 instrução por ciclo idealmente). Outros problemas advém desta técnica, como desvios (como saber as próximas instruções), e dependência de instruções (a próxima depende da anterior). Na prá�ca todos os microprocessadores modernos u�lizam-se de várias (dezenas) fases no processamento para usufruir de clocks maiores (quanto menor a fase, mais rápido pode ser o ciclo). 7.8 Arquiteturas Superescalares Se um pipeline é bom, com certeza dois serão ainda melhor. (Veja Figura 36). Neste caso, uma única unidade de busca de instruções lê 2 instruções e coloca cada uma em 1 pipeline. A execução dessas instruções é feita em paralelo e: • não pode haver conflitos pelo uso de recursos (mesmo registro, por exemplo) • o resultado de uma instrução não pode depender do resultado da outra • pode se pensar em pipelines com leitura inicial de 3 ou mais instruções porém hardware fica complexo. Figura 36 Dois pipelines de 5 estágios com uma unidade de busca de instruções comum a ambos. Máquinas de alta performance usam outra metodologia, a arquitetura Superescalar. A ideia básica é ter um único pipeline, com diversas unidades funcionais (Veja Figura 37) O estágio 3 pode distribuir instruções a uma velocidade consideravelmente mais alta do que o estagio 4 pode executá-las. Este estágio usa vários disposi�vos de hardware (inclusive mais do que uma UAL) para acelerar o processamento neste estágio. Organização e Arquitetura de Computadores 62 Figura 37 Processador superescalar com 5 unidades funcionais 7.9 Paralelismo ao Nível do Processador A medida que os processadores vão ficando mais rápido: � aparecem limitações de ordem Xsica (velocidade da luz em fios de cobre ou fibras óp�cas) � maior produção de calor pelo chip (problema para dissipar essa energia) Operação do processador em pipeline ou em superescalar possibilita ganhos de 5 a ~10 vezes Para ganhos maiores, 50-100 ou mais vezes, deve-se projetar computador com mais de um processador. Computadores Matriciais Processador matricial (veja Figura 38) � composto de grande número de processadores idên�cos � cada processador executa a mesma sequência de instruções sobre diferentes conjuntos de dados � tem uma única unidade de controle � tem uma UAL para cada processador Processador vetorial � muito parecido com processador matricial � operações aritmé�cas são executadas numa única UAL, que opera em pipeline � operandos são colocados em um registro vetorial para serem processados na UAL Processador matricial x vetorial � programação para o matricial voltada ao paralelismo (+diXcil) � processador matricial é, em geral, mais rápido principalmente para repe�ção de um mesmo processamento em vários "pedaços" dos dados � processador vetorial se adapta a processamentos paralelos e não paralelos � hardware do matricial é mais caro (muitas UALs) Organização e Arquitetura de Computadores 63 Figura 38 Processador Matricial do ,po ILLIAC IV Problema: Os processadores matriciais não são independentes, pois compar�lham uma única UC 7.10 Mul,processadores é composto de vários processadores independentes compar�lham uma mesma memória por um barramento principal (veja figura 2.8(a)) ou compar�lham uma memória e tem memórias locais (veja figura 2.8(b)) � executam processamentos locais � liberam trafego do barramento principal � é necessário gerenciar conflitos Figura 39 (a) Mul,processador organizado em torno de um único barramento. (b) Mul,computador com memórias locais. Problema: Sistemas com muitos processadores (>64) são de diXcil implementação. Dificuldade está na conexão dos processadores a memória. Organização e Arquitetura de Computadores 64 7.11 Mul,computadores � Sistemas com um grande número de computadores interconectados � Não existe nenhum �po de memória comum sendo compar�lhada � Comunicação entre computadores é feita através de troca de mensagens a uma velocidade bem alta � Computador pode não precisa estar ligados diretamente com todos os outros (uso de topologias em árvore, anéis, etc..) � Mensagens são roteadas do computador fonte para o des�no (usando computadores intermediários) � Existem em operação sistemas mul�computadores com cerca de 10000 computadores Importante: Como sistemas mul�processadores são mais fáceis de programar e sistemas mul�computadores são mais fáceis de construir, existem sistemas híbridos. Tais computadores dão a ilusão de compar�lhamento de memória, sem arcar com o ônus de implementá-la diretamente. Organização e Arquitetura de Computadores 65 Quais as etapas do ciclo completo de funcionamento de um processador CPU?Entendendo o funcionamento da CPU. – Busca.. – Decodificação.. – Execução.. Como funciona o ciclo da CPU?A CPU realiza repetidamente o seguinte ciclo chamado ``fetch-decode-execute'': Busca a instrução (apontada por PC) da memória e carrega-a no IR. Muda o PC para apontar para a próxima instrução da memória. Decodifica a instrução, determinando o seu tipo, operandos, etc.
Quais são as quatro etapas que as CPUS utilizam para executar instruções?seguintes etapas são definidas:. Busca da instrução.. Decodificação da instrução e busca dos.. Execução, cálculo do endereço de memória ou.. Etapa de acesso à memória ou conclusão de.. Etapa de conclusão da leitura da memória. (load). Quais são os elementos que compõem A CPU?São três as partes principais da CPU: Unidade de controle: busca a instrução da memória e decodifica-a. ALU (ou unidade aritmética e lógica): realiza operações aritméticas e booleanas. Registradores: memória rápida para guardar informações de controle, resultados intermediários.
|