Processadores Origens e Funcionamento

O processador é o cérebro do micro, encarregado de processar a maior parte das informações. Ele é também o componente onde são usadas as tecnologias de fabricação mais recentes. Existem no mundo(atualmente) apenas quatro grandes empresas com tecnologia para fabricar processadores competitivos para micros PC: a Intel (que domina mais de 60% do mercado), a AMD (que disputa diretamente com a Intel), a VIA (que fabrica os chips Via C3 e C7, embora em pequenas quantidades) e a IBM, que esporadicamente fabrica processadores para outras empresas, como a Transmeta.

A definição técnica para processadores é a seguinte :“É um circuito integrado de controle das funções de cálculos e tomadas de decisões de um computador, por isso é considerado o cérebro do mesmo. Ele faz parte de um importante elemento do computador, a Unidade Central de Processamento (em inglês CPU: Central Processing Unit). Hoje todos os circuitos e chips dispostos em diversas placas que compunham a Unidade Central de Processamento estão integrados no microprocessador.”

As origens

A historia dos processadores se mistura com a própria historia dos computadores. A ideia de se utilizar equipamentos para ajudar a “processar” não é nova. Os primeiros indícios de uso de instrumentos para auxílio na realização de operações matemáticas são do ábaco, em 500 A.C., pelos babilônicos. Este instrumento toma a forma que conhecemos hoje, na China em 1300.

O tempo passa e as primeiras evoluções significativas começam a surgir. Primeiro, em 1614, Scotsman John Napier “descobre” o logaritmo. Ele mesmo constrói uma máquina capaz de multiplicar, dividir e calcular raízes quadrada e cúbica de números. Depois, Wilhelm Schickard, em 1623, constrói o que é chamado de “Calculating Clock”, capaz de somar e subtrair números de até 6 dígitos, e que batia um sino quando havia overflow.

Em 1642, Blaise Pascal constrói uma máquina mecânica de somar que, apesar de ser mais limitada que o “Calculating Clock” de Schickard, fica muito mais conhecida. Ele consegue vender algo como uma dúzia delas em várias versões, calculando números de até 8 dígitos.

Em 1822, Charles Babbage teoriza seu primeiro computador mecânico, a sua máquina de diferença, que resolveria polinômios. Ele também teoriza sobre a máquina analítica, um dispositivo de propósito matemático geral. Na época, estas máquinas eram muito complicadas para serem construídas, mas a teoria funcionava. Estas máquinas utilizariam cartões perfurados para o armazenamento dos dados. Tentativas de construção da máquina de diferença foram feitas em 1832, juntamente com Joseph Clement, mas apenas um protótipo é construído.

Um outro avanço importante vem em 1848, quando George Boole cria sua álgebra booleana. Uma álgebra que trabalha com valores binários, o que veio dar sustentação e base para a construção dos computadores binários, quase um século depois. Em 1890, os Estados Unidos estão com um problema: o processamento dos dados do censo de 1880, feito à mão, demorou 7 anos. Estimava-se que o de 1890 demorasse 10 ou mais anos para ser processado. Então lançou-se uma competição para achar métodos melhores. Esta foi vencida por Herman Hollerith, que propunha a utilização de máquinas e cartões perfurados para guardar os dados. Resultado: o censo foi feito em 6 semanas. Isso impulsionou Hollerith a fundar, em 1896, a Tabulating Machine Company, que futuramente se tornaria a famosa IBM.

Lee De Forest, em 1906, inventa a válvula. Esta invenção é aquela que possibilita a futura construção de computadores digitas. O ENIAC, considerado um dos primeiros computadores, possuía 18.000 delas. Em 1911, a Tabulating Machine Company se funde a outras empresas, incluindo a Computing - Tabulating - Recording Company. Mais fusões acontecem e, em 1924, a International Business Company (IBM) é fundada, por Hermann Hollerith. Esta empresa será a responsável pelo lançamento do IBM PC, um sucesso de vendas, baseado em microprocessadores Intel.

Em 1928, outra companhia importante surge: a Galvin Manufacturing Corporation. Esta será a futura Motorola, hoje uma das grandes empresas em tecnologia de comunicação sem fio, e que produz processadores também. George Stibitz, no Bell Telephony Laboratories, constrói, em 1937, um somador binário de 1 bit utilizando relés. Apesar de ser considerando um dos primeiros computadores binários, era apenas uma demonstração.

A Hewlett-Packard (HP), hoje uma empresa importante, que adquiriu a Compaq recentemente, é fundada em uma garagem da Califórnia, em 1939. Neste ano também começa a segunda guerra mundial. Apesar de seu caráter, esse fato propicia o surgimento de várias novas tecnologias, que ajudam no desenvolvimento dos computadores, e processadores como um todo. O ENIAC, um dos primeiros computadores, é terminado de ser construído em 1946. Era enorme. Pesava cerca de 30 toneladas, e utilizava cerca de 18.000 válvulas em sua construção. Era capaz de realizar 100.000 cálculos por segundo, e foi utilizado principalmente para cálculo de trajetórias balísticas e testes de teorias relativas à bomba de hidrogênio.

Um dos mais importantes momentos para a história da computação, e para a dos processadores, aconteceu em 1947, no Bell Laboratories. Estudando maneiras de amplificar sinais elétricos, William B. Shockley, John Bardeen e Walter H. Brattain inventam o transistor. De tamanho e consumo de energia menores que a válvula, e com funcionamento imediato (a válvula precisava “esquentar” para funcionar), este invento possibilitaria a construção dos processadores como nós os conhecemos hoje.Podemos dividir a era moderna da computação em 4 gerações.

  • A primeira geração de chips (1945-1959) era lenta, enorme, usava válvulas, quilômetros de fios e os equipamentos esquentavam muito, muito mesmo.
  • A segunda geração (1959-1964) introduz os transistores e as placas de circuitos impressos. Isso diminuiu o tamanho dos equipamentos deixando-os mais rápidos.
  • Já a terceira geração (1964-1970) trouxe os circuitos integrados, que permitiram uma compactação muito grande dos elementos do computador e o processamento na ordem dos microssegundos.
  • A quarta geração (a partir de 1970) aperfeiçoou a tecnologia existente e iniciou uma miniaturização dos componentes. Afora, a velocidade de processamento de dados chegou aos nanosegundos. (bilionésima parte do segundo). É nessa quarta geração que a Intel começou a mostrar sua força com a criação do primeiro microprocessador: o Intel 4004. Começa assim a indústria dos computadores pessoais.

Desde esse tempo os processadores impulsionaram o desenvolvimento dos PCs, trazendo nessa onda os outros componentes, como HDs, placa de vídeo, memória e ampliando a necessidade de novos sistemas operacionais e aplicações. Quando chegamos a 1985, os processadores entram na era dos 32 bits com o Intel 80386. A partir desse ponto a evolução foi cada vez mais rápida. Lembrando a Lei de Moore (nome baseado no fundador da Intel, Gordon Moore), que diz que o número de transistores de um microprocessador é duplicado a cada 18 meses, a capacidade de processamento e a velocidade dos processadores começam a disparar.

O ano de 1989 marca o lançamento do Intel 80486 e, nesse mesmo ano, a fase da informatização das empresas entra em expansão. Com o Windows 3.1, em 1991, insere-se uma nova maneira de trabalho com os computadores pessoais. Nas empresas, as estações de trabalho passaram a fazer muitas operações que antes eram de responsabilidade dos grandes servidores. Os novos editores de texto e planilhas eletrônicas e a evolução dos recursos multimídia trouxeram novos horizontes para as aplicações, exigindo mais processamento e memória dos equipamentos. O Intel 80486 era o processador da máquina-padrão para essa época.
Impulsionada pelas novas aplicações e recursos, a Intel lança em 1993 o Pentium, com incríveis 60 MHz.

O Pentium ganhou cada vez mais velocidade e capacidade de processamento, e nos próximos anos a Lei de Moore funcionou como nunca. Em 1995 chegou o Pentium Pro e em 1997 o Pentium MMX. O ano de 1998 marca a chegada do Pentium II seguido em 1999 do Pentium III até que em 2001 chega o Pentium 4. Com o Pentium 4 as aplicações começam a ser escritas com instruções específicas para tirar muito mais proveito do novo processador. Em paralelo, a fabricante de chips AMD avançava com seus processadores K5, de 1996, K7, de 1997, e Athlon, que conseguiu fazer frente ao Pentium e à hegemonia da Intel no mercado.

Em 2002 o aumento da força e o aquecimento resultante da aceleração dos processadores revelaram-se limitadores de performance dos equipamentos, levando-se em conta apenas o aumento de frequências. Surge assim uma nova maneira de pensar em processamento, com o processador de núcleo duplo, que chega ao mercado em 2006. Os chips de núcleo duplo, como a linha Core Duo da Intel e X2 da AMD, contam com dois núcleos ativos de processamento ao invés de um só, como acontece em chips convencionais, o que proporciona uma performance maior quando se utiliza vários programas simultaneamente. Isso acontece porque os núcleos dividem as funções de controle e podem trabalhar com freqüências mais baixas, otimizando principalmente o acesso à memória do computador. Já os chips de quatro núcleos aumentam ainda mais a produtividade, já que os processos de seu computador podem ser coordenados simultaneamente com a mesma performance.

O funcionamento dos processadores

Central Processing Unit - Unidade Central de Processamento, as instruções (processos) que ele executa consistem em operações matemáticas e lógicas, além de operações de busca, leitura e gravação de dados. Um conjunto organizado de instruções, forma um programa. Todas essas operações são executadas na linguagem de máquina os processadores trabalham apenas com linguagem de máquina (lógica booleana). E realizam as seguintes tarefas: - Busca e execução de instruções existentes na memória. Os programas e os dados que ficam gravados no disco (disco rígido ou disquetes), são transferidos para a memória. Uma vez estando na memória, o processador pode executar os programas e processar os dados; - Controle de todos os chips do computador.

O processador é composto basicamente de quatro partes:

  • Unidade lógica e aritmética (ULA) ou em inglês Arithmetic Logic Unit (ALU) é a unidade central do processador (Central Processing Unit, ou simplesmente CPU), que realmente executa as operações aritméticas e lógicas referenciadas pelos opcodes. É, na verdade, uma "grande calculadora eletrônica" do tipo desenvolvido durante a II Guerra Mundial, e sua tecnologia já estava disponível quando os primeiros computadores modernos foram construídos.
  • Unidade de controle, responsável por gerar todos os sinais que controlam as operações no exterior do CPU, e ainda por dar todas as instruções para o correto funcionamento interno do CPU; a apoiá-la/o terá a colaboração de uma outra estrutura/actor (o decodificador de instruções).
  • Registradores são outro elemento,uma memória veloz que armazena comandos ou valores que serão importantes para o processamento de cada instrução. Os registros mais importantes são: - Contador de Programa (PC) – Sinaliza para a próxima instrução; - Registro de Instrução (IR) – Registra a instrução da execução; Os outros realizam o armazenamento de resultados intermediários.
  • Memory Management Unit (MMU)é um dispositivo de hardware que transforma endereços virtuais em endereços físicos e administra a memória principal do computador.

Componentes

Unidade lógica e aritmética

A Unidade lógica e aritmética (ULA) ou em inglês Arithmetic Logic Unit (ALU) é a unidade central do processador (Central Processing Unit, ou simplesmente CPU), que realmente executa as operações aritméticas e lógicas referenciadas pelos opcodes. É, na verdade, uma "grande calculadora eletrônica" do tipo desenvolvido durante a II Guerra Mundial, e sua tecnologia já estava disponível quando os primeiros computadores modernos foram construídos.

O matemático John von Neumann propôs o conceito de ULA em 1945, quando escreveu um relatório sobre os fundamentos para um novo computador chamado EDVAC. A tecnologia utilizada foi inicialmente relés, herança da telefonia, e posteriormente válvulas, herança da radiofonia. Com o aparecimento dos transistores, e depois dos circuitos integrados, os circuitos da unidade aritmética e lógica passaram a ser implementados com a tecnologia de semi-condutores.

A ULA executa as principais operações lógicas e aritméticas do computador. Ela soma, subtrai, divide, determina se um número é positivo ou negativo ou se é zero. Além de executar funções aritméticas, uma ULA deve ser capaz de determinar se uma quantidade é menor ou maior que outra e quando quantidades são iguais. A ULA pode executar funções lógicas com letras e com números. Resumindo: A ULA executa operações aritméticas comuns. Também toma decisões lógicas, resolvendo sintaxes lógicas em uma programação.

Unidade de Controle

A Unidade de controle é responsável por gerar todos os sinais que controlam as operações no exterior do CPU, e ainda por dar todas as instruções para o correto funcionamento interno do CPU; a apoiá-la/o terá a colaboração de uma outra estrutura/ator (o decodificador de instruções). A unidade de controle executa três ações básicas intrínsecas e pré-programadas pelo próprio fabricante do processador, são elas: busca (fetch), decodificação e execução.

Assim sendo, todo processador, ao iniciar sua operação, realiza uma operação cíclica, tendo como base essas três ações. Dependendo do tipo de microprocessador, a unidade de controle pode se ser fixa ou programável. A unidade fixa é aquela unidade que já vem com todo o conjunto de instrução programado em uma PLA que é construída pelo fabricante,dentro da UC. Por exemplo: os microprocessadores 8080/8085/Z80/6800/6502 possuem unidade de controle fixa. Um exemplo de unidade de controle programável pode ser visto nos processadores conhecidos como Bit Slices, essa arquitetura, além de permitir a construção das partes do computador usando módulos básicos Bit slices, permite ao projetista de hardware programar seu próprio conjunto de instruções.

Inicialmente, a UC de controle fornece o endereço de memória de onde deve retirar um byte ou mais, conhecido como chunk, esse chunk pode conter um código de operação-opcode, ou um operando também conhecido como dado. Lembre-se, na primeira posição de memória deve sempre ser gravado um opcode, pois só o opcode pode informar para a UC qual ação deve ser tomada depois.

Além de controlar a posição de memória que contém a instrução corrente que o computador está executando a UC, ao decodificar o opcode, informa à ULA qual operação a executar: soma ou subtração nos processadores de 8 bits. Nos processadores de 16 bits podem ser efetuadas as instruções de soma, subtração, divisão e multiplicação.

Em adição a essas operações que chamamos de aritméticas, a partir da decodificação do opcode, a UC tem a capacidade de realizar operações que denominamos operações lógicas, onde se incluem: E, Ou, Xor, comparação, deslocamento de bits para a direita e para a esquerda. Essas operações são basicamente as mesmas para grande maioria de microprocessadores que existem no mercado. Contudo, cada fabricante atribui a cada uma delas um mnemônico diferente, registra-os em um manual de instruções específico daquele processador, e o denomina conjunto de instruções.

Uma característica muito importante de nota é que a arquitetura de um processador pode ser orientada de dois tipos: por registrador ou para a memória. Se for orientada para registradores como no caso da arquitetura Intel, a ULA, após executar qualquer operação lógica ou aritmética, sempre vai armazenar o resultado no acumulador.

No caso de ser orientado para registradores, como é o caso dos microprocessadores da Motorola, nem sempre o resultado é armazenado no acumulador, podendo esse ser armazenado em qualquer posição de memória. Terminada a primeira instrução, a unidade de controle auto incrementa um contador, chamado de contador de programa e vai para a próxima instrução (tipicamente localizada na próxima posição da memória (endereço de memória), a menos que a instrução seja uma instrução de desvio informando o computador que a próxima instrução está em outra posição).

Registradores

O Registrador de uma unidade central de processamento é um tipo de memória de pequena capacidade porém muito rápida, contida no CPU, utilizada no armazenamento temporário durante o processamento. Os registradores estão no topo da hierarquia de memória, sendo assim são o meio mais rápido e caro de se armazenar um dado.

São utilizados na execução de programas de computadores, disponibilizando um local para armazenar dados. Na maioria dos computadores modernos, quando da execução das instruções de um programa, os dados são movidos da memória principal para os registradores, então as instruções que utilizam estes dados são executadas pelo processador, e finalmente, os dados são movidos de volta para a memória principal. As ações operativas do processador são realizadas nas suas unidades funcionais: na unidade aritmética e lógica - ULA (Aritmetic and Logic Unit), na unidade de ponto flutuante - UFP (Float Point Unit - FPU) ou talvez em uma unidade de processamento vetorial. No entanto, antes que a instrução seja interpretada e as unidades da CPU sejam acionadas, o processador necessita buscar a instrução de onde ela estiver armazenada (memória cache ou principal) e armazená-la em seu próprio interior, em um dispositivo de memória denominado registrador de instrução.

Em seguida a este armazenamento da instrução, o processador deverá, na maioria das vezes, buscar dados da memória (cache, principal ou mesmo de unidades de disco em fita) para serem manipulados na ULA. Esses dados também precisam ser armazenados em algum local da CPU até serem efetivamente utilizados. Os resultados de um processamento (de uma soma, subtração, operação lógica, etc.) também precisam, às vezes, ser guardados temporariamente na CPU, ou para serem novamente manipulados na ULA por uma outra instrução, ou para serem transferidos para uma memória externa à CPU. Esses dados são armazenados na CPU em pequenas unidades de memória, denominadas registradores.
Um registrador é, portanto, o elemento superior da pirâmide de memória , por possuir a maior velocidade de transferência dentro do sistema (menor tempo de acesso), menor capacidade de armazenamento e maior custo. Analisando os diversos parâmetros que caracterizam as memórias, descritos no item anterior, temos:

  • Tempo de acesso/ciclo de memória - por serem construídos com a mesma tecnologia da CPU, estes dispositivos possuem o menor tempo de acesso/ciclo de memória do sistema (neste caso, não é aplicável distinguir-se tempo de acesso e ciclo de memória, por serem sempre iguais), algo em torno de l0 a 20 nanossegundos, dependendo de tratar-se de CPU de um supercomputador ou de um microprocessador mais lento.
  • Capacidade - os registradores são fabricados com capacidade de armazenar um único dado, uma única instrução ou até mesmo um único endereço. Desta forma, a quantidade de bits de cada um é de uns poucos bits (de 8 a 64), dependendo do tipo de processador e, dentro deste, da aplicação dada ao registrador em si. Registradores de dados têm, em geral, o tamanho definido pelo fabricante para a palavra do processador, tamanho diferente dos registradores usados exclusivamente para armazenar endereços (quando há registradores com esta função específica no processador). Por exemplo, o processador Intel 80486, cuja palavra é de 32 bits, tem registradores também de 32 bits, inclusive registradores de endereços (os números que indicam os endereços de célula de memória principal do processador têm 32 bits); o processador Motorola 68000 tem registradores de dados de 32 bits (palavra de 32 bits) e registrador de endereços de 24 bits, enquanto os processadores da família IBM 43xx possuem registradores de dados de 32 bits e endereços de 24 bits.
  • Volatilidade - registradores são memórias de semicondutores e, portanto, necessitam de energia elétrica para funcionarem. Assim, registradores são memórias voláteis. Para a CPU funcionar sem interrupção, mesmo quando eventualmente a energia elétrica para o computador é interrompida, é necessário que o sistema de computação seja ligado a um dispositivo de alimentação elétrica denominado "no-break", o qual é constituído de bateria ou gerador de corrente, conversor AC/DC.
  • Tecnologia - conforme mencionado no tópico anterior, os registradores são memórias de semicondutores, sendo fabricados com tecnologia igual à dos demais circuitos da CPU, visto que eles se encontram inseridos em seu interior. No entanto, há diversos modelos de tecnologia de fabricação de semicondutores, uns com tempo de acesso maior que outros, custos e capacidade de armazenamento, no mesmo espaço físico, diferentes. Tecnologias bipolar e MOS ("metal oxide semicondutor") são comuns na fabricação de registradores, sendo descritas na disciplina "Circuitos Lógicos".
  • Temporariedade - os registradores são memórias auxiliares internas à CPU e, portanto, tendem a guardar informação (dados ou instruções) o mais temporariamente possível. Acumuladores ou registradores de dados armazenam os dados apenas o tempo necessário para sua utilização na ULA.
  • Custo - devido à tecnologia mais avançada de sua fabricação, os registradores encontram-se no topo da pirâmide em termos de custos, sendo os dispositivos de maior custo entre os diversos tipos de memória.

Memory Management Unit

MMU (do inglês Memory Management Unit) é um dispositivo de hardware que transforma endereços virtuais em endereços físicos. Na MMU, o valor no registo de re-locação é adicionado a todo o endereço lógico gerado por um processo do utilizador na altura de ser enviado para a memória. O programa do utilizador manipula endereços lógicos; ele nunca vê endereços físicos reais. Normalmente o sistema atual de MMU divide o espaço de endereçamento virtual (endereços utilizados pelo processador) em páginas, cujo o tamanho é de 2n, tipicamente poucos kilobytes. A MMU normalmente traduz número de páginas virtuais para número de páginas físicas utilizando uma cache associada chamada Translation Lookaside Buffer (TLB). Quando o TLB falha uma tradução, um mecanismos mais lento envolvendo um hardware específico de dados estruturados ou um software auxiliar é usado.

Barramento

Para que o computador possa oferecer recursos e possibilidades diversas de uso ao usuário, é necessário a utilização de dispositivos adicionais, como placas de vídeo e de som, modem, disco rígido, teclado, etc. Estes componentes são conhecidos como Dispositivos de Entrada (teclado e mouse, por exemplo) e Saída (placa de vídeo e som, por exemplo). Em inglês, utiliza-se a sigla I/O, de Input/Output.

Para que o processador possa trabalhar com esses dispositivos, ele usa um barramento para se comunicar. Assim é possível que o processador envie informações (por exemplo, os dados para uma impressora, quando você pede para imprimir um arquivo) e receba (por exemplo, quando você digita algo no teclado). Esse barramento é conhecido como "barramento de dados" (ou data bus).

No entanto, quando o processador trabalha com a memória, ele faz uso de um "barramento de endereços" (também chamado de "clock externo"), pois através de um "endereço" é que o processador localizará os dados que precisa e que estão armazenados na memória do computador. É também por este barramento que o processador consegue determinar para qual dispositivo serão enviados os dados tratados. Seu valor é medido em Hz.

A grande maioria dos processadores, possui terminais ou pinos de contato (vulgarmente chamados de "perninhas"). Cada um destes pinos possui uma função e trabalha com 1 bit por vez. Assim, quando se diz que o barramento de dados trabalha a 16 bits, isso quer dizer que, pelo menos teoricamente, o processador destina 16 "perninhas" para esta função. A mesma regra vale para o barramento de endereços, ou seja, este também trabalha com uma certa quantidade de pinos, correspondentes à quantidade de bits.

Sinais de controle

Os processadores atuais possuem vários pinos (no mínimo, 400). Somente analisando friamente a arquitetura de cada tipo de processador existente (tarefa iminente a engenheiros eletrônicos) é possível saber qual a função de cada um. Os processadores, no entanto, possui algumas funções-padrão, ou seja, encontráveis em praticamente todos os processadores, independente do fabricante. Estas são conhecidas como "sinais de controle" (ou "sinais digitais"), também correspondem a pinos no chip do processador e algumas delas são citadas abaixo:

  • MIO: sinal para indicar se a operação em questão é de acesso a memória ou de E/S;
  • RW: sinal para indicar se a operação em questão é de leitura ou gravação;
  • INT: sinal para que dispositivos externos possam interromper o processador para que ele efetue uma operação que não pode esperar. Por exemplo, quando o HD interrompe o processador para avisar o término de uma operação de leitura. Como existe somente um sinal INT, o processador opera em conjunto com um mecanismo denominado "Controlador de Interrupções" (que trabalha com as conhecidas IRQs). Como vários dispositivos podem requisitar o processador num mesmo instante, através deste controlador é possível realizar todas as operações de forma organizada;
  • NMI: sinal de interrupção especial, usado em emergências, onde a interrupção enviada por este sinal deve ser atendida prontamente. O NMI geralmente é usado informar erros relacionados a dados na memória;
  • INT A: sinal usado para que o processador informe que aceitou uma interrupção e que está aguardando que o dispositivo que a gerou passe as instruções;
  • VCC: entrada de corrente elétrica que alimenta os circuitos internos do processador (pode haver vários VCC no processador);
  • GND: sinal usado para controle de energia (como se fosse um fio-terra). Também pode ser encontrados vários deste sinal no processador;
  • RESET: sinal ligado ao botão RESET do gabinete do computador. Ao ser ativado, o processador pára o que está fazendo e inicia as operações novamente, como se o usuário tivesse acabado de ligar a máquina;
  • CLOCK: este recebe um sinal digital usado internamente para sincronizar todo o funcionamento do processador.

O que é o clock

Clock é um circuito oscilador que tem a função de sincronizar e ditar a medida de velocidade de transferência de dados no computador, por exemplo, internamente ou externamente (barramento). Esta frequência é medida em ciclos por segundo, ou Hertz. A velocidade do processador está relacionada não exclusivamente ao clock, mas sim a instruções por ciclos deste clock. Qualquer alteração realizada de forma a fazer com que o processador trabalhe acima de sua capacidade normal de trabalho, para o qual foi projetado, é denominada Overclocking.

Como funciona o clock?

É um pequeno cristal de quartzo que fica na placa mãe, tem exatamente a mesma função: marcar o tempo. Para que o computador funcione, tudo tem que funcionar de maneira sincronizada, como uma orquestra. Cada vez que é gerado um pulso de clock, todos os dispositivos realizam uma operação, param e continuam o que estiverem fazendo no próximo ciclo. Como num cruzamento, onde os carros trafegam hora num sentido, hora no outro, orientados pelo farol.

O cristal vibra numa frequência de 4,77 MHz. Esta frequência é multiplicada pela placa mãe para gerar os 66 ou 100 MHz do barramento. Outros dispositivos podem dividir ou multiplicar a frequência da placa mãe: o barramento PCI por exemplo funciona a 33 MHz, caso a placa mãe esteja funcionando a 66 MHz, então a frequência será dividida por 2, ou seja, para cada 2 ciclos da placa mãe será gerado um ciclo do barramento PCI. Se a placa estiver funcionando a 100 MHz então a frequência será dividida por 3. O processador multiplica a frequência da placa mãe. Um Pentium II de 400 MHz por exemplo multiplica por 4 a frequência de 100 MHz da placa mãe, gerando 4 ciclos para cada ciclo da placa. Um 200 MMX multiplica por 3 a frequência de 66 MHz gerada pela placa mãe e assim por diante.

Clock interno e externo

Daqui que vem termos como processadores K6 II de 500 MHz, Pentium III de 800 MHz, Athlon XP de 2 GHz, etc. O clock é uma forma de indicar o número de instruções que podem ser executadas a cada segundo (ciclo). Sua medição é feita em Hz (sendo que KHz corresponde a mil ciclos, MHz corresponde a 1000 KHz e GHz corresponde a 1000 MHz). Assim, um processador Pentium II 800 MHz, indica que o mesmo pode realizar 800 milhões de ciclos por segundo. Algumas instruções podem precisar de vários ciclos para serem executadas, enquanto outras, uma ciclo só. A seguir, as diferenças entre clock interno e clock externo:

Clock interno: o clock interno indica a frequência na qual o processador trabalha. Portanto, num Pentium 4 de 2,8 GHz, o "2,8 GHz" indica o clock interno. Este geralmente é obtido através de um multiplicador do clock externo. Por exemplo, se o clock externo for de 66 MHz, o multiplicador terá de ser de 3x para fazer com o que processador funcione a 200 MHz (66 x 3).

Clock externo: também conhecido como FSB (Front Side Bus), o clock externo, por sua vez, é o que indica a freqüência de trabalho do barramento (conhecido como barramento externo) de comunicação com a placa-mãe (na verdade, chipset, memória, etc). Por exemplo, o processador AMD Sempron 2200+ trabalha com clock externo de 333 MHz.

Nos processadores da linha Athlon 64, a AMD (fabricante) passou a adotar a tecnologia HyperTransport que, basicamente, usa dois barramentos para comunicação externa: um para acesso à memória e outro para acesso ao chipset. Na verdade, é este último que recebe o nome de HyperTransport. Até então, os processadores usavam apenas o barramento externo para os dois tipos de acesso. Com o HyperTransport, a AMD passou a indicar a velocidade de trabalho deste ao invés do clock externo. Um detalhe de extrema importância, é que esses ciclos de clock diferem de fabricante para fabricante. Por isso, um Pentium 4 de 2.4 GHz (2400 MHz), não é igual ao Athlon XP de 2.4 GHz. Este último, na verdade, trabalha a 2.0 GHz, mas sua velocidade é semelhante ao de um Pentium 4 de 2.4 GHz. Por isso, a AMD informa a velocidade que é semelhante ao do processador do fabricante concorrente.

Memória cache

Os processadores, evidentemente, sofreram grandes aperfeiçoamentos ao longo dos anos. No entanto, chegou-se a um ponto em que estes evoluíram de forma tão rápida que o acesso à memória do computador ficou comprometida, pois apesar de também ter sofrido boas mudanças, a memória é mais lenta para ser acessada, fazendo com que o processador não conseguisse trabalhar com toda sua velocidade, devido a sua dependência da velocidade de acesso aos dados da memória. Esse problema ficou notável a partir do ano de 1990, quando os processadores passaram a trabalhar acima de 25 MHz.

Uma solução para este problema seria usar memórias rápidas, como a SRAM, mas estas eram muito caras e inviabilizariam a compra de computadores. Além disso, tais memórias eram complexas e grandes, o que exigiria mais espaço interno no gabinete da máquina. Mesmo assim, a ideia não foi totalmente descartada, pois serviu de base para uma solução eficiente: a memória cache. A memória cache consiste numa pequena quantidade de memória SRAM, incluída no chip do processador. Quando este precisa ler dados na memória RAM, um circuito especial, chamado de controlador de Cache, transfere os dados mais requisitados da RAM para a memória cache. Assim, no próximo acesso do processador, este consultará a memória cache, que é bem mais rápida, permitindo o processamento de dados de maneira mais eficiente. Enquanto o processador lê os dados na cache, o controlador acessa mais informações na RAM, transferindo-as para a memória cache. De grosso modo, pode-se dizer que a cache fica entre o processador e a memória RAM.

Atualmente, existem 3 tipos de memória cache, que serão mostrados a seguir:

Cache L1 (Leve 1 - Nível 1 ou cache interno): trata-se de um tipo de cache em uso desde o processador 486. É chamado de cache interno porque se localiza dentro do processador. O cache L1 é tão importante para o processador, que este, mesmo tendo clock inferior, pode ser mais rápido que um processador de clock superior, mas sem cache. O tamanho deste cache pode ir de 16 KB (como o Pentium) a 512 KB (como o Pentium 4). Os processadores 486 tinham cache de 8 KB.

Cache L2 (Level 2 - Nível 2 ou cache externo): o cache L1 não era totalmente perfeito, pois tinha tamanho pequeno e apresentava alguns erros, que obrigavam o processador a buscar os dados na memória RAM. Um solução foi a implantação de uma memória cache fora do processador. Eis a cache L2, que para ser usada, necessita de um controlador, que geralmente é embutido no chipset da placa-mãe. É este chip que também determina o tamanho máximo do cache L2. O tamanhos mais comuns são os de 256 KB e 512 KB, mas é perfeitamente possível a existência de caches maiores. Um fato importante a ser citado, é que diversos processadores trazem o cache L2 embutido dentro de si, fazendo com que as terminologias Interno e Externo perderem o sentido.

Cache L3 (Level 3 - Nível 3): trata-se de um tipo incomum, usado pelo processador AMD K6-III. Este possui o cache L2 embutido em si, de forma que o cache L2 existente na placa-mãe pudesse ser usado como uma terceira cache. Daí o nome L3. Tal fato fez do K6-III um processador muito rápido em sua época.

Co-processador aritmético

Dois dos primeiros processadores existentes, o 8086 e 8088, poderiam trabalhar em conjunto com um processador especial, chamado 8087. A função deste processador era a de realizar cálculos matemáticos complexos. O processador, quando muito, passaria então a executar cálculos mais simples e a se preocupar com outras instruções. O 8087 é o que conhecemos hoje como "Co-processador aritmético" ou "Co-processador matemático". Seu nome em inglês é FPU (Floating Point Unit - Unidade de de Ponto Flutuante).

Esse recurso, hoje em dia, é embutido no processador, e seu uso é considerado indispensável, pois ele é projetado para realizar os mais diversos tipos de cálculo. Só para dar uma noção da importância do co-processador, uma operação matemática, que no processador necessita de várias instruções para ser concluída, pode ser realizada em uma única instrução pelo co-processador.

Modos de Operação

Para que os processadores mantivessem a compatibilidade de operação entre eles foram desenvolvidos 2 modos de operação:

  • Modo Real – O processador se porta exatamente como um 8086, possuindo exatamente o mesmo conjunto de instruções e acessando apenas 1 MB de memória. (nenhum recurso extra é conseguido).
  • Modo Protegido – Onde o processador pode atingir o máximo de seu desempenho com um conj. de instruções mais complexo e uso de recursos extras como : Proteção de Memória e Multitarefa

Referencias:

http://www.htmlstaff.org/ver.php?id=10926
http://www.di.ufpb.br/raimundo/Hierarquia/Registradores.html
http://www.infowester.com/processadores1.php
http://www.infowester.com/processadores2.php
Link para download do artigo em PDF.