Microprocessadores

O primeiro microprocessador comercial foi projetado pela Intel em 1971 para atender uma empresa japonesa que precisava de um circuito integrado especial para as suas atividades.[1] A Intel projectou o 4004, que era um circuito integrado programável que trabalhava com registradores de 4 bits, 46 instruções, clock de 740 kHz e possuía cerca de 2 300 transistores. Percebendo a utilidade desse invento a Intel prosseguiu com o desenvolvimento de novos microprocessadores: 8008 (o primeiro de 8 bits) e a seguir o 8080 e o microprocessador 8085. O 8080 foi um grande sucesso e tornou-se a base para os primeiros microcomputadores pessoais na década de 1970 graças ao sistema operacional CP/M. Da Intel saíram alguns funcionários que fundaram a Zilog, que viria a lançar o microprocessador Z80, com instruções compatíveis com o 8080 (embora muito mais poderoso que este) e também de grande sucesso. A Motorola possuía o 68000 e a MOS Technology o 6502. A Motorola ganhou destaque quando implantou o MC68000P12, de 12 MHz com arquitetura de 32 bits (embora seu barramento de dados fosse de 24 bits e o de endereços de 16 bits), no Neo-Geo, um poderoso Arcade da SNK que posteriormente ganharia a versão AES (console casero) e CD (versão CD), todos eles com o mesmo hardware inicial.

Todos os microprocessadores de 8 bits foram usados em muitos computadores pessoais (Sinclair, Apple Inc.TRSCommodore, etc).

Em 1981 a IBM decidiu lançar-se no mercado de computadores pessoais e no seu IBM-PC utilizou um dos primeiros microprocessadores de 16 bits, o 8088 (derivado do seu irmão 8086 lançado em 1978) que viria a ser o avô dos computadores atuais. A Apple nos seus computadores Macintosh utilizava os processadores da Motorola, a família 68000 (de 32 bits).

Outros fabricantes também tinham os seus microprocessadores de 16 bits, a Zilog tinha o Z8000, a Texas Instruments o TMS9900, a National Semiconductor tinha o 16032, mas nenhum fabricante teve tanto sucesso como a Intel, que sucessivamente foi lançando melhoramentos na sua linha 80X86, tendo surgido assim (por ordem cronológica) o 8086, 8088, 8018680188802868038680486PentiumPentium ProPentium MMXPentium IIPentium IIIPentium IVPentium MPentium DPentium Dual CoreCore 2 DuoCore 2 QuadCore i3Core i5Core i7 e Core i9. Para o IBM-AT foi utilizado o 80286, depois um grande salto com o 80386 que podia trabalhar com memória virtual e multitarefa, o 80486 com coprocessador matemático embutido e finalmente a linha Pentium, com pipeline de processamento.

Como grande concorrente da Intel, a AMD aparece inicialmente como fabricante de microprocessadores da linha x86 alternativa mas a partir de um certo momento deixou de correr atrás da Intel e partiu para o desenvolvimento de sua própria linha de microprocessadores: K6, AthlonDuronTurionSempronPhenom.

Paralelamente à disputa entre Intel e AMD, a IBM possuía a linha PowerPC utilizada principalmente pelos microcomputadores da Apple.

A evolução tecnológica envolvida é surpreendentemente grande, de microprocessadores que trabalhavam com clock de dezenas de KHz e que podiam processar alguns milhares de instruções por segundo, atingiu-se clocks na casa dos 7 GHz e poder de processamento de dezenas de bilhões de instruções por segundo. A complexidade também cresceu: de alguns milhares de transístores para centenas de milhões de transístores numa mesma pastilha.

O CPU tem como função principal unificar todo o sistema, controlar as funções realizadas por cada unidade funcional, e é também responsável pela execução de todos os programas do sistema, que deverão estar armazenados na memória principal.

Componentes

O processador é composto por alguns componentes, cada um tendo uma função específica no processamento dos programas.

Unidade lógica e aritmética

Ver artigo principal: Unidade lógica e aritmética

Unidade lógica e aritmética (ULA) é a responsável por executar efetivamente as instruções dos programas, como instruções lógicas, matemáticas, desvio, etc.

Unidade de controle

Ver artigo principal: Unidade de controle

Unidade de controle (UC) é responsável pela tarefa de controle das ações a serem realizadas pelo computador, comandando todos os outros componentes.

Registradores

Ver artigo principal: Registrador (informática)

Os registradores são pequenas memórias velozes que armazenam comandos ou valores que são utilizados no controle e processamento de cada instrução.

Os registradores mais importantes são:

  • Apontador de Instruções (PC) – Guarda o endereço da próxima instrução a ser executada;
  • Registrador de Instrução (RI) – Armazena a instrução que está sendo executada;
  • Apontador de Pilha (SP) – Guarda o endereço da pilha de execução do programa.

Unidade de Gerenciamento de Memória

Ver artigo principal: Unidade de Gerenciamento de Memória

MMU (em inglês: Memory Management Unit) é um dispositivo de hardware que transforma endereços virtuais em endereços físicos e dá suporte para o sistema operacional administrar a alocação da memória principal do computador entre os diversos programas em execução no computador.

Unidade de ponto flutuante

Nos processadores atuais são implementadas unidades de cálculo de números reais. Tais unidades são mais complexas que ULAs e trabalham com operandos reais, também chamados de ponto flutuante, com tamanhos típicos variando entre 32, 64 e 128 bits.

Frequência de operação

O relógio do sistema (Clock) é um circuito oscilador a cristal (efeito piezoelétrico) que tem a função de sincronizar e ditar a medida de tempo de transferência de dados no computador. Esta freqüência é medida em ciclos por segundo, ou Hertz.

A capacidade de processamento do processador não está relacionada exclusivamente à frequência do relógio, mas também a outros fatores como: largura dos barramentos, quantidade de memória cache, arquitetura do processador, tecnologia de co-processamento, tecnologia de previsão de saltos (branch prediction), tecnologia de pipeline, conjunto de instruções, etc.

O aumento da frequência de operação nominal do processador é denominado overclocking.

Arquitetura

Existem duas principais arquiteturas usadas em processadores:

  • A arquitetura de Von Neumann. Esta arquitetura caracteriza-se por apresentar um barramento externo compartilhado entre memória de dados e memória de programa. Embora apresente baixo custo, esta arquitetura apresenta desempenho limitado pelo gargalo do barramento;
  • A arquitetura de Harvard. Nesta arquitetura existem dois barramentos externos independentes (e normalmente também memórias independentes) para dados e instruções. Isto reduz de forma sensível o gargalo de barramento, que é uma das principais barreiras de desempenho, em detrimento do encarecimento do sistema como um todo.

Modelos de computação

Existem dois modelos de computação usados em processadores:

  • CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; possui um grande conjunto de instruções (tipicamente centenas) que são armazenadas em uma pequena memória não-volátil interna ao processador. Cada posição desta memória contém as microinstruções, ou seja, os passos a serem realizados para a execução de cada instrução. Quanto mais complexa a instrução, mais microinstruções ela possuirá e mais tempo levará para ser executada. Ao conjunto de todas as microinstruções contidas no processador denominamos microcódigo. Esta técnica de computação baseada em microcódigo é denominada microprogramação;
  • RISC (em inglês: Reduced Instruction Set Computing, Computador com um Conjunto Reduzido de Instruções) usada em processadores PowerPC (da Apple, Motorola e IBM), SPARC (SUN), MIPS, ARM e RISC-V; possui um conjunto pequeno de instruções (tipicamente algumas dezenas) implementadas diretamente em hardware. Nesta técnica não é necessário realizar a leitura em uma memória e, por isso, a execução das instruções é muito rápida (normalmente um ciclo de clock por instrução). Por outro lado, as instruções são muito simples e para a realização de certas tarefas são necessárias mais instruções que no modelo CISC.

Com o passar do tempo, as características de um modelo passaram também a serem incorporadas ao outro, tanto aumentando o número de instruções das arquiteturas RISC, em especial com as extensões vetoriais como NEON do ARM, quanto simplificando o processo de execução das arquiteturas CISC, onde mais de um tipo de decodificador de instrução permite a decodificação e execução rápida das instruções simples, deixando o microcódigo apenas para as instruções mais complexas.


Notice: ob_end_flush(): failed to send buffer of zlib output compression (0) in /home/bytingmo/public_html/wp-includes/functions.php on line 5107