Processador

O processador (CPU) é o cérebro do computador. Com ele, você pode manipular as informações digitais, ou seja, as informações codificadas na forma binária no computador e executar instruções armazenadas na memória.

O processador é uma parte importante do computador, já que ele transfora dados em programas que o usuário executa.

O primeiro microprocessador, o Intel 4004, foi inventado em 1971. Era uma unidade de cálculo de 4 bits, cadenciado a 108 kHz. Desde então, o poder dos microprocessadores cresceu consideravelmente. A rapidez da resposta do computador às instruções para executar programas, carregar páginas e fazer downloads é, em grande parte, tarefa do processador. Quais são esses pedacinhos de silício que dirigem os nossos computadores?
processador Intel 4004

Como funciona um processador

O processador é um circuito eletrônico cadenciado por um relógio interno, graças a um cristal de quartzo ou a frequência da corrente elétrica que, submetido a uma corrente elétrica, emite impulsos, chamados de top. A frequência do relógio, também chamada de ciclo, correspondente ao número de impulsos por segundo, é expressa em Hertz. Assim, um computador de 200 MHz tem um relógio que envia 200 milhões de batidas por segundo. Geralmente, a frequência do relógio é um múltiplo da frequência do sistema FSB (Front-Side Bus), ou seja, um múltiplo da frequência da placa-mãe.

A cada toque do relógio, o processador executa uma ação correspondente a uma instrução, ou parte dela. O indicador chamado CPI (Ciclos Por Instrução) indica o número médio de ciclos do relógio, necessário à execução de uma instrução em um microprocessador. Assim sendo, a potência do processador pode ser caracterizada pelo número de instruções processadas por segundo. A unidade utilizada é o MIPS (Milhões de Instruções Por Segundo), correspondente à frequência do processador que divide o CPI.

O que é uma instrução

Uma instrução é a operação mais elementar que o processador pode efetuar. As instruções são armazenadas na memória principal para serem tratadas pelo processador. Uma instrução é composta de dois campos: o código operacional, que representa a ação que o processador deve efetuar, e o código operando, que define os parâmetros da ação. O código operando depende da operação. Pode ser um dado ou um endereço da memória.

O número de bytes de uma instrução varia de acordo com o tipo de dado (a ordem de grandeza é de um a quatro Bytes). As instruções podem ser divididas em categorias, como o acesso à memória: acessos à memória ou transferências de dados entre registros; as operações aritméticas: adições, subtrações, divisões ou multiplicações; as operações lógicas: E, OU, NÃO, NÃO exclusivo; o controle: controles de sequência, conexões condicionais, entre outras.

Quais são os registros

Quando o processador executa as instruções, os dados são armazenados, temporariamente, nas pequenas memórias rápidas de 8, 16, 32 ou 64 bits que chamamos registros. Dependendo do tipo de processador, o número global de registros pode variar entre uma dezena e várias centenas.

Os principais registros são: registro acumulador (ACC), que armazena os resultados das operações aritméticas e lógicas; registro do status (PSW), que permite o armazenamento dos indicadores sobre o status do sistema (retenção, excesso, etc.); registro de instrução (RI), com a instrução em curso do processamento; contador de programa (CO), com o endereço da próxima instrução a ser processada; e registro reserva, que armazena, temporariamente, um dado vindo da memória.

O que é a memória cache

A memória cache, também chamada de anti memória ou memória reserva, é uma memória rápida que diminui o tempo de espera das informações armazenadas na memória RAM. Na verdade, a memória central do computador é mais lenta que o processador. No entanto, existem memórias muito mais rápidas, porém muito mais caras. A solução consiste, então, em incluir este tipo de memória rápida perto do processador e armazenar, temporariamente, os dados fundamentais que devem ser tratados pelo processador.

Os computadores mais recentes possuem vários níveis de cache: o cache de primeiro nível (L1 Cache) está diretamente integrado ao processador. Ele se subdivide em duas partes: a primeira contém o cache de instruções com instruções vindas da RAM decodificadas durante a passagem pelas pipelines (técnica que possibilita à CPU buscar instruções para além da próxima a ser executada) e o segundo, que é o cache de dados e que contém os dados vindos da memória RAM e os recentemente utilizados nas operações do processador. Os caches de primeiro nível são acessados mais rapidamente. Seu tempo de acesso tende a se aproximar daquele dos registros internos dos processadores.

Há também o cache de segundo nível (L2 Cache). Ele fica na caixa com o processador (no chip). O cache de segundo nível se interpõe entre o processador com o seu cache interno e a memória RAM. Ele tem acesso mais rápido do que a RAM, mas mais lento do que o cache de primeiro nível. Por fim, está o cache de terceiro nível (L3 Cache) anteriormente localizada na placa-mãe (usando a memória principal) e agora integrado diretamente à CPU.

Todos estes níveis de cache reduzem o tempo de latência das diversas memórias durante o processamento e a transferência das informações. Enquanto o processador funciona, o controlador do cache de primeiro nível pode ser conectado com o de segundo nível para transferir dados, sem bloquear o processador. Da mesma forma, o cache de segundo nível se conecta com a memória RAM (na falta do cache de terceiro nível integrado), para permitir transferências, sem bloquear o funcionamento normal do processador.

O que são sinais de controle

Os sinais de controle são sinais elétricos que orquestram as diversas unidades do processador que participam da execução de uma instrução. Os sinais de controle são distribuídos graças a um elemento chamado sequenciador. O sinal Read/Write (Ler/Escrever) diz para a memória que o processador quer ler ou escrever uma informação.

Quais são as unidades funcionais

O processador é constituído de um conjunto de unidades funcionais conectadas entre si. A arquitetura de um microprocessador é extremamente variável de uma para outra, mas existem características gerais que podem ser listadas.

Todo processador possui uma unidade de instrução que lê e decodifica os dados de entrada para depois enviá-los à unidade de execução. Ela é constituída do sequenciador (ou bloco lógico de comando) encarregado de sincronizar a execução das instruções ao ritmo de um relógio. Ele é, assim, o responsável pelo envio dos sinais de comando, do 'contador de programa', que contém o endereço da instrução em curso e do 'registro de instrução', que contém uma unidade de execução ou unidade de processamento, que executa as tarefas dadas pela unidade de instrução.

A unidade de execução é composta pela 'unidade aritmética e lógica', chamada pela sigla UAL. A UAL assegura as funções básicas de aritmética e as operações lógicas (E, OU, OU exclusivo, etc.). Pela 'unidade de ponto flutuante' (FPU), que realiza os cálculos complexos e não inteiros, que não podem ser realizados pela unidade aritmética e lógica; um registrador de status e um registrador de dados ou acumulador; uma unidade de gerência dos bus ou unidade de entradas e saídas, que administra o fluxo de informações entrando e saindo, na interface com a memória RAM do sistema.

A imagem abaixo mostra uma representação simplificada dos componentes do microprocessador (a organização física dos componentes não corresponde à realidade):

Como funciona o transistor

Para efetuar o processamento da informação, o microprocessador possui um conjunto de instruções, chamado jogo de instruções, realizado por circuitos eletrônicos. Mais especificamente, o jogo de instruções é feito através de semicondutores usando o transistor de efeito, descoberto em 1947 por John Barden, Walter Brattain e William Shockley, que receberam o Prêmio Nobel em 1956 por esta descoberta.

Um transistor (Transfer Resistor - Resistência de transferência) é um componente eletrônico semicondutor com três eletrodos, capaz de modificar a corrente que o atravessa com a ajuda de um dos seus eletrodos (chamado eletrodo de controle). Também se fala de componente ativo, em oposição aos componentes passivos, como a resistência ou o condensador, com apenas dois eletrodos (conhecido como bipolar).

O transistor MOSFET (Metal Oxide Semicondutor Field Effect Transistor) é o tipo de transistor usado para o projeto de circuitos integrados. O transistor MOSFET é composto de duas áreas de carga negativa, conhecidas respectivamente como fonte (com um potencial próximo de zero) e dreno (com um potencial de 5V), separadas por uma região de carga positiva, chamada de substrato. O substrato é coberto por um eletrodo de controle chamado porta, que implementa uma tensão no substrato:


Quando nenhuma tensão é aplicada ao eletrodo de controle, o substrato com carga positiva age como barreira e impede a movimentação dos elétrons da fonte para o dreno. Em compensação, quando uma tensão é aplicada na porta, as cargas positivas do substrato são repelidas e estabelece-se um canal de comunicação, com carga negativa, ligando a fonte ao dreno:


Assim, o transistor age, de maneira geral, como um interruptor programável graças ao eletrodo de controle. Quando uma tensão é aplicada ao eletrodo de controle, ele age como um interruptor fechado e, em caso contrário, como um interruptor aberto.

Como acontecem os circuitos integrados

Reunidos, os transistores podem constituir circuitos lógicos que, também reunidos, constituem os processadores. O primeiro circuito integrado apareceu em 1958 e foi desenvolvido pela empresa Texas Instruments.

Os transistores MOSFET são produzidos em lâminas de silício - uma camada de polisilício colocada sobre o canal, mas separada deste por uma fina camada de dióxido de silício isolante, chamadas wafer, obtidas após sucessivos processamentos. Estes wafers de silício são cortados em pedaços retangulares, constituindo o que chamamos de circuito. Os circuitos são então colocados em caixas com conectores de entrada/saída, formando um circuito integrado. A finura da gravação, expressa em micrômetros, define o número de transistores por unidade de área. Assim, um único processador pode conter vários milhões de transistores.

A lei de Moore, publicada em 1965 por Gordon E. Moore, cofundador da empresa Intel, previa que o desempenho dos processadores (por extensão, o número de transistores integrados no silício) dobrariam a cada 12 meses. Esta lei foi revista em 1975 e o número de meses aumentou para 18. A lei de Moore é válida até hoje.

O termo chip é comumente usado para designar os circuitos integrados.

Quais são os tipos de microprocessador

Todo tipo de microprocessador possui seu próprio jogo de instruções. Assim, podemos distinguir as famílias dos seguintes microprocessadores, cada um com seu próprio jogo de instruções: 80x86: o X representa a família. Falamos assim de 386, 486, 586, 686, etc, ARM, IA-64, MIPS, Motorola 6800, PowerPC e SPARC. Isso explica como um programa feito por um tipo de processador pode não funcionar diretamente em um sistema com outro tipo de processador, a não ser com uma tradução de instruções chamada emulação. O termo emulador (que reproduz as funções de um determinado ambiente) é utilizado para indicar o programa que realiza esta tradução.

O que é o jogo de instrução

Chamamos de jogo de instrução todas as operações básicas que um processador pode executar. O conjunto de instruções de um processador determina sua arquitetura, sendo que a mesma arquitetura pode levar a aplicações diferentes, dependendo do fabricante. Ele funciona de forma eficaz graças a um número limitado de funções diretamente ligadas aos circuitos eletrônicos. A maioria das operações pode ser realizada graças às funções básicas. Porém, algumas arquiteturas incluem funcionalidades avançadas, ainda em execução, no processador.

Como é estruturada a arquitetura CISC

A arquitetura CISC (Complex Instruction Set Computer - Computador com conjunto complexo de instruções) consiste em conectar no microprocessador as instruções complexas, difíceis de criar a partir das instruções básicas. Ela é usada, em particular, pelos microprocessadores do tipo 80x86. Este tipo de arquitetura é caro devido aos recursos avançados impressos no silício. Por outro lado, as instruções são de tamanhos variáveis e podem, às vezes, exigir mais do que um ciclo de relógio. Ora, um processador baseado na arquitetura CISC só pode processar uma instrução de cada vez, resultando em um tempo de execução maior que a média.

Como é construída a arquitetura RISC

Um microprocessador que utiliza a tecnologia RISC (Reduced Instruction Set Computer - Computador com conjunto reduzido de instruções) não tem funções avançadas com cabos. Os programas devem ser traduzidos em instruções simples, resultando em um desenvolvimento mais difícil e/ou um compilador mais potente. Esse tipo de arquitetura tem baixo custo de fabricação em relação aos processadores CISC. Além disso, as instruções, simples por natureza, são executadas em apenas um ciclo de relógio, o que torna a execução dos programas mais rápida do que nos processadores de arquitetura CISC. Na verdade, estes processadores são capazes de processar, simultânea e paralelamente, várias instruções (multitarefas).

Quais são as melhorias tecnológicas

Ao longo dos anos, os fabricantes de microprocessadores, chamados fundadores, desenvolveram uma série de melhorias para otimizar o funcionamento do processador.

Paralelismo

O paralelismo consiste em executar, simultaneamente, em vários processadores, as instruções relativas ao mesmo programa. Isso se traduz pelo corte de um programa em vários processos tratados paralelamente, para diminuir o tempo de execução. Tal tecnologia, porém, exige a sincronização e a comunicação entre os diferentes processos, como o corte de tarefas em uma empresa: o trabalho é dividido em pequenos processos distintos, processados por serviços diferentes. O funcionamento de tal empresa pode ser perturbado pelo mal funcionamento da comunicação entre os serviços.

Pipeline

Pipeline é uma tecnologia que visa obter maior velocidade de execução das instruções, paralelizando as etapas. Para entender o seu mecanismo, é preciso, em primeiro lugar, entender as fases de execução de uma instrução. As fases de execução para um processador que contém um pipeline tradicional de 5 andares são as seguintes: LI: leitura da instrução a partir do cache, DI: decodificação da instrução e busca das operações (registro ou valores imediatos), EX: execução da instrução (se for ADD, somamos, se for SUB, subtraímos, etc.), MEM: acesso à memória, gravação na memória, se necessário, ou carregamento a partir da memória, ER: gravação do valor calculado nos registros.

As instruções são organizadas em uma fila de espera na memória e são carregadas uma após a outra. Graças ao pipeline, o processamento das instruções precisa, no máximo, das cinco etapas anteriores. Na medida em que a ordem dessas etapas é invariável (LI, DI, EX, MEM e ER), é possível criar no processador certo número de circuitos específicos para cada uma dessas fases.

O objetivo do pipeline é poder executar cada etapa em paralelo com as etapas anteriores e posteriores, ou seja, poder ler uma instrução (LI), enquanto a anterior estiver sendo decodificada (DI), a anterior a esta estiver sendo executada (EX), a anterior à anterior acesse a memória (MEM) e, finalmente, que a primeira da série esteja já gravada nos registros (ER):

pipeline de 5 andares
Em geral, devemos prever de um a dois ciclos de relógio (raramente mais que isso) para cada fase do pipeline, ou seja, 10 ciclos de relógio, no máximo, por instrução. Para duas instruções, serão necessários 12 ciclos de relógio no máximo (10+2 = 12 em vez de 10x2=20), porque a instrução anterior já estava no pipeline. Ambas as instruções estão sendo tratadas no processador, com um desfasamento de um ou dois ciclos de relógio. Para três Instruções, serão necessários 14 ciclos de relógio e assim por diante.

O princípio do pipeline é comparável a uma linha de montagem de carros. O carro passa de uma estação de trabalho para outra ao longo da linha de montagem e sai do prédio completamente montado. Para entender bem o princípio, é preciso observar a cadeia como um todo e não veículo por veículo. São necessárias três horas para montar um carro, porém, um carro é produzido a cada minuto.

Saiba que existem diferentes tipos de pipeline, de dois a 40 andares, mas o princípio de seu funcionamento é sempre o mesmo.

Tecnologia superescalar

A tecnologia superescalar (Superscaling - Em escalas) consiste em dispor de várias unidades de processamento, em paralelo, para poder processar várias instruções por ciclo.

HyperThreading

A tecnologia HyperThreading consiste em definir dois processadores lógicos dentro de um processador físico. Assim, o sistema reconhece dois processadores físicos e se comporta como um sistema multitarefas, enviando dois threads simultâneos, chamados SMT (Simultaneous Multi Threading - Multi rastreamentos simultâneos).

Multinúcleo

Um processador multi núcleo (multicore) é um processador composto de duas ou mais unidades de cálculo. Assim, para um processador DualCore, o processador dispõe da frequência de relógio equivalente a uma potência de cálculo duas vezes maior. No entanto, o ganho nem sempre é visível. Na verdade, é preciso que os softwares e sistemas operacionais saibam lidar adequadamente com esses processadores para que um ganho significativo seja perceptível.

Foto: © golubovy - 123RF.com

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.
Este documento, intitulado 'Processador', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.

Assine nossa newsletter!

Assine nossa newsletter!