3. Unidade Central de Processamento Um microprocessador é um chip responsável por buscar e executar instruções e dados existentes na memória RAM. Vai de regra as instruções são bastante simples, como por exemplo operações aritméticas, lógicas, comparações, leituras e gravações na memória. Um programa corresponde a um conjunto de instruções que vai ser executado pela CPU. O ciclo de funcionamento de uma CPU consiste em: 1. Buscar na memória a próxima instrução a ser executada; corresponde a etapa de leitura; 2. Interpretar a instrução a ser executada; é a etapa de decodificação; 3. Buscar na memória os dados associados a instrução; 4. Execução da instrução, operando sobre os dados; 5. Armazenar o resultado da execução na memória (se for o caso); 6. Reiniciar o processo, na etapa 1. A figura a seguir ilustra os principais elementos constituíntes de uma CPU: C ULA A UC B PC UDI dados endereço Barramento do Sistema Unidade Lógica e Aritmética (ULA): Responsável pela realização das instruções matemáticas e de comparação; Registradores: Utilizados para o armazenamento temporário de dados; no diagrama aparecem os registradores A, B, C e PC (que é o Program Counter, registrador que armazena o endereço da próxima instrução a ser executada); Unidade de Controle (UC): É responsável pela busca de instruções na memória controlando também a ULA e o Decodificar de Instruções Clock: gera pulsos (na forma de uma onde quadrada); a frequência com a qual o clock gera estes pulsos é medida em Hertz (um Hertz equivale a um ciclo por segundo). A CPU realiza suas operações no ritmo ditado pelo seu clock; atualmente as CPUs operam com frequências na ordem de Gigahertz. Um microprocessador da empresa AMD Tecnologia CISC/RISC Todo microprocessador é capaz de decodificar um certo número de instruções (que é chamado de seu Instruction Set). Quando uma instrução é decodificada pela CPU, ela executa uma sequência de microcódigo referente a esta instrução. Com a evolução das CPUs o conjunto de instrução aumentou de tamanho e microprocessadores com um conjunto grande de instruções é denominada CISC. Quanto maior o conjunto de instruções, menor o desempenho do microprocessador pois a decodfificação de uma determinada instrução e a sua execução irá demorar um tempo maior. Mas apesar de existir um conjunto de instruções grande, nota-se que geralmente somente algo em torno de 30% das instruções são efetivamente empregadas pelos programas. A partir desta constatação foi desenvolvida uma geração de CPUs com um conjunto reduzido de instruções, com uma consequente otimização do decodificador de instruções e também do microcódigo. Microprocessadores desenvolvidos desta forma são classificados como RISC (Reduced Instruction Set Computing). Algumas técnicas desenvolvidas a partir da família Pentium Previsão de desvio Empregada pela CPU quando existe uma condição do tipo “se A>B, vá para <endereço>”. O controlador de memória carrega para a cache todos os resultados possíveis ao invés de aguardar o núcleo do microprocessador acabar o processamento para saber qual o desvio a ser tomado. Arquitetura superescalar A arquitetura superescalar esta associada a estrutura do processador. Um único processador funciona internamente como se existisse vários processadores convencionais, permitindo realizar várias instruções ao mesmo tempo. Quando um processador com arquitetura superescalar possui dupla canalização, isto significa que pode realizar duas instruções simultaneamente. Multiprocessamento Quando um microprocessador consegue operar em uma placa-mãe com mais de um processador simultaneamente. Isto depende do tipo da placa-mãe (que deverá suportar mais de um processador), do chipset e também dos processadores, que deverão ser compatíveis. Tecnologias MMX, 3DNow e SSE Conjunto de instruções que consegue manipular vários dados simultaneamente. É um exemplo da aplicação da técnica SIMD (Single Instruction on Multiple Data). O conjunto de instruções MMX tem 57 instruções, e evoluiu com o tempo para tecnologias como SSE e SSE2. Um pouco da evolução da Família Intel x86