O Processador

Componentes Classificação Termos e expressões Evolução histórica    

 

 

A sua denominação correcta é Unidade Central de Processamento (em inglês CPU-Central Processing Unit). No entanto os termos processador e microprocessador (µP) são vulgarmente usados para referir o mesmo elemento.

O que agora se chama de microprocessador, surgiu pela primeira vez em 1971, e teve como característica principal o facto de ter integrado numa única peça (chip) vários componentes que até então surgiam em separados, facilitando assim a implementação, as comunicações, diminuindo o tamanho, o consumo de energia e o preço. A empresa que desenvolveu era a então pouco conhecida Intel, e o processador o 4004.

Basicamente, um µ P tradicional contém muitas das características que os anteriores sistemas de processamento continham, mas que para além de estarem compactados num único chip foram sendo desenvolvidos e aperfeiçoados.

O CPU é o elemento central de coordenação e de processamento de todo o sistema, dito o computador. O CPU, recebe instruções (as aplicações, ou software) de manipulação dos dados. Dessa manipulação (processamento) são gerados novos dados, os resultados.

 

Os componentes fundamentais dum processador são os seguintes:

Unidade de Controlo (UC);

Unidade Lógica e Aritmética (ULA);

Registos;

Sistema de comunicações.

 

Unidade de Controlo

A Unidade de Controlo (UC) é responsável pela leitura e sequenciação do programa de processamento. É esta unidade que envia ordens de cálculo para a ULA, que indica os valores a processar, e os coloca nos registos para esse efeito. É também a partir da UC que a informação é transferida para as outras partes que constituem o computador, como a memória, os sistemas de I/O, etc..

 

Unidade Lógica e Aritmética

A Unidade Lógica e Aritmética é responsável, como o seu nome indica pelas operações matemáticas, e pelas operações lógicas (AND, OR, XOR, NOT, comparações, etc.) ocorridas no processamento. Para essas operações utiliza os dados existentes nos Registos, aí colocados pela UC e actualizados em certos casos pela própria ALU, aquando das operações.

 

Registos

Os Registos são células de memória, em número inconstante mas bastante limitado, e com capacidade normal de 8, 16, 32 ou 64 bits cada (consoante se trate de microprocessadores ditos a 8, 16, 32 ou 64 bits), embora no mesmo processador seja comum existirem registos com vários destes tamanhos.

 

Sistema de Comunicações

Para que todos estes subsistemas funcionem é necessário que haja comunicação entre eles. Para isso, existe um sistema de comunicações interno, composto nomeadamente por barramentos, que os interliga. O largura (em bits) destes barramentos é função da capacidade da UC, dos Registos e da ALU. Apenas é necessário existir um bus de dados com a capacidade máxima igual à menor dos componentes que interliga, no entanto, por vezes o barramento de dados tem maior capacidade que esses outros componentes.

Com o evoluir da técnica e da necessidade crescente de mais capacidade de cálculo, mais memória, etc., foram sendo introduzidos novos componentes e unidades, que estão lentamente a tornar-se standards. É o caso da memória cache interna, de co-processador (unidade de vírgula flutuante), pipelines, etc..

 

topo

Classificação

São várias formas de classificação dos CPU, das quais se destacam as seguintes:

Família;

Velocidade de relógio;

Número de bits;

CISC/RISC.

 

Família
A família diz respeito ao conjunto básico de instruções que o processador compreende (ou aceita). Cada família de processadores tem um conjunto básico de funcionamento e um conjunto básico de instruções que executa.
Cada especialização (cada processador dessa família) tem formas específicas de realização das instruções, durações diferentes para a mesma operação, mais instruções, etc.. No entanto, o conjunto básico é suportado por todos os elementos da família.
As famílias de processadores mais conhecidas daquelas utilizadas em computadores de uso pessoal são:
* Intel 80x86 (i8086, i80286, i80386, i80486, Pentium (i80586) )
* Motorola 680x0 (M68000, M68010, M68020, M68030, M68040, M68060)
* Motorola/IBM/Apple Power PC

Velocidade
A velocidade dum processador mede-se em função da velocidade do seu relógio, que se mede em frequência (Hertz (Hz) ou Mega Hertz (MHz)). A frequência corresponde ao número de ciclos por segundo. A frequência interna do relógio do processador varia de processador para processador, sendo comuns velocidades entre 2 MHz e 1200 MHz (1,2 GHz).

Instruções por segundo
Por vezes, erradamente, esta medida é confundida com o número de instruções que o processador realiza por segundo. Na realidade, cada instrução é realizada num número específico de ciclos, o que torna impossível definir com exactidão o número de instruções realizadas num segundo. Existem instruções que são realizadas num único ciclo de relógio (no limite é o que se deseja), enquanto outras demoram várias dezenas.

Multiplicação da velocidade do processador
Um dos problemas existentes na aplicação de microprocessadores é o baixo desempenho dos sistemas com que se interliga, nomeadamente barramento de dados e memória.
Aquando das primeiras gerações de microprocessadores, as velocidades do processador e do resto do computador eram as mesmas para que as interligações se realizassem em momentos específicos.

No entanto, constatou-se que:
* É fácil aumentar as velocidades do microprocessador;
* É difícil aumentar as velocidades dos restantes componentes;
* Enquanto processa, o CPU é independente dos outros componentes.Nesse sentido, é possível que o processador processe a velocidades superioras, mantendo no entanto a noção de velocidade e coordenação com o resto dos componentes. Assim, o processador, internamente trabalha a velocidades superiores, mas quando interage com o exterior, fá-lo à velocidade especificada pelo relógio do sistema.

Por exemplo, um processador que trabalhe a velocidade de 300 MHz e o resto do sistema funcione a velocidades de 50 MHz, então diz-se que o factor de multiplicação é de 6.
Esta técnica surgiu pela primeira vez na família Intel 80x86 em 1993 com o processador 80486. Tal processador tinha a sigla i80486DX2-50, que significa tratar-se dum processador Intel 80486, com co-processador (DX), com duplicação (2) de velocidade de relógio sendo a sua velocidade máxima a 50MHz. Posteriormente surgiu o i80486DX2-66, i80486DX4-100, etc.
Actualmente as siglas dos processadores desta família não incluem esta característica, mas a técnica continua a ser usada, e mais que nunca!...

Número de bits
A classificação baseada no número de bits está relacionada com a capacidade de manipulação do processador:
* Capacidade interna. Tal como foi referido em [Registos], um computador diz-se de n bits em função da capacidade dos seus registos. Por exemplo, a família Intel x86, varia entre 8 e 32 bits (ver evolução histórica).
* Capacidade externa. Esta capacidade diz respeito à quantidade de informação que é recebida pelo CPU do exterior. Raramente é menor que a capacidade interna, tradicionalmente é igual, mas as últimas implementações duplicam a capacidade externa (2x a capacidade interna).

CISC/RISC
Estes termos referem-se à arquitectura do processador. Podem ser:
* Complex Instruction Set Code (CISC), em português Conjunto de Instruções de Código Complexo.
* Reduced Instruction Set Code(RISC), em português Conjunto de Instruções de Código Reduzido.
Desde o surgimento do conceito de RISC (em 1974), que existem apologistas e cépticos em relação ao conceito. Mas pior do que isso é a falta de consenso em relação às características. As características mais importantes associadas ao conceito RISC são:
* Número pequeno e limitado de instruções, todas as instruções complexas são realizadas pela junção em software de instruções simples, aumentando o desempenho do processador;
* Instruções de formato fixo, cujo código tem sempre o mesmo tamanho, o que facilita a descodificação da instrução;
* Instruções simples com tempo de execução constante, permite diminuir a complexidade e tamanho do processador e consequentemente aumentar a velocidade de execução;
* Instruções de manipulação registo-registo. As outras instruções resumem-se a buscar e colocar nas posições de memória valores existentes em registos. Esta característica facilita a manipulação de memória.No entanto, estas características não são suficientes para definir o tipo de processador, pois da conjugação destas, alguns processadores são considerados simultaneamente CISC e RISC como é o caso do Pentium. Para alguns este processador é um processador RISC para outros é um processador CISC.
 

 

topo  

Termos e Expressões

Ciclos de Relógio — É a dimensão em que se mede a velocidade do processador, quanto maior for a velocidade maior é o desempenho. Não existe uma relação directa entre o número de ciclos de relógio e o número de instruções por segundo [ver Velocidade].

N de bits de endereçamento — É o número de bits com que os dados (informação) é representada. Assim, quanto maior for o número de bits que representa os dados maior é facilidade e maior a complexidade de cálculo do processador. Normalmente este valor refere-se ao processamento interno do processador e não ao sistema.

N de bits de barramento — É o número de bits com que as instruções e dados circulam no sistema, quer interna quer externamente ao processador. Como nos outros casos, quanto maior for a largura do barramento, maior é informação transmitida, logo maior é a performance.

CISC — Acrónimo de Complex Instruction Set Computer, que genericamente significa que o conjunto de instruções admitidas é substancialmente grande, complexo, de formato e duração diferentes. Internamente, o processador subdivide instruções complexas em instruções mais simples, o que obriga a aumentar a complexidade do chip (micro-código) e nesses termos diminuir a velocidade de relógio para não surgirem problemas electrónicos, com as resultantes e inconvenientes perdas de desempenho.

Co-processador — Este termo corresponde à unidade de vírgula flutuante (em inglês FPU-Floating Point Unit) existente dentro ou externamente ao processador, mas directamente interligado com este. De base, o processador apenas tem capacidade de processamento de números inteiros (sem vírgula), sendo necessário implementar esse processo ao nível de software, com a consequente degradação de desempenho e de aumento da complexidade de software. Assim, foi desenvolvido o co-processador, que permite a interligação com o processador e realiza por este as operações relacionadas com números com vírgula.

MIPS — Million Instructions Per Second, ou em português, Milhões de Instruções Por Segundo.

RISC — Reduced Instructions Set Computer, é o oposto de CISC, visto que a tecnologia pressupõe que cada instrução não seja subdivisível, tenha um tamanho fixo e seja exequível num número fixo de ciclos de relógio. Desta forma a complexidade do processador é menor e torna-se mais simples aumentar a velocidade de relógio e de processamento.

(Super)Escalar — Tecnologia usada no desenho de processadores, que possibilita através da utilização de dois ou mais pipelines (níveis de processamento) a execução de mais do que uma instrução por ciclo de processamento.   

 

 

topo

Evolução Histórica

Em 1971, pela primeira vez um microprocessador é colocado num único chip, o Intel 4004. Desde então as capacidades de processamento, velocidades de cálculo, mercado económico, utilizações, etc., dos seus sucessores não pararam de crescer.

Em 1974, a mesma empresa anuncia um novo processador, o 8080, a 8 bits (dados e endereçamento de memória) e atingia 5 MHz de velocidade de relógio, mas que apesar da suas características não foi utilizado a ponto de ser um marco na história.

Em 1975 surge o Zilog 80 (Z-80), que aparecia como sendo um melhoramento do 8080, e que o foi efectivamente. Funcionava com endereçamento de memória de 16 bits e dados a 8 bits.

Em 1978 surge o 8086, com barramento de 16 bits o que permitia desde logo endereçar (controlar) uma maior quantidade de memória (1MB), e com registos de 16 bits, o que permitia fazer cálculos complexos, como por exemplo operações com reais de vírgula flutuante, muito mais facilmente. Este seria o processador base de toda uma linha que se manteria extremamente compatível com os seus predecessores, o que aliado aos seus bons desempenhos e inovação, se tornou a mais popular e usada de todas as famílias de m P para micro-computadores, a família Intel x86.
Mas apesar do sucesso da linha x86, todo o sucesso começou com um não x86, o 8088 que era simplesmente uma versão menor do 8086. Surgiu em 1979, e a diferença principal e fundamental para o seu predecessor era o barramento a 8 bits. Deve o seu sucesso ao facto de a IBM o ter escolhido como base do seu futuro computador pessoal.
Só que a Intel, não continuou a linha 8080, mas apostou sim nas características e princípios do 8086, aliás como seria de esperar.

Assim, em 1982 surgiu o 80286. As suas principais características era o modo protegido, que permitia ultrapassar o problema de endereçamento de memória, e as velocidades de 8 e 12 MHz. Mas esta característica só alguns anos mais tarde viria a ser usada em larga escala, pelo que a sua compatibilidade com o 8086/88 e as suas velocidades de processamento foram as principais factores que fizeram dele um best seller.

O 80386 surge em 1985, inicialmente a velocidade de 16MHz, e mais tarde de 20, 25, 33, 40, ..., e executava 5-6 MIPS e era 15 vez mais potente que 8086. Funcionava a 32 bits quer no endereçamento de memória quer no barramento e nos registos de dados.

Em 1989 surge o 80486, a velocidades iniciais de 20, 33, 50 Mhz, e executava 20 MIPS, o que triplicava a capacidade do seu predecessor. Pelo facto de executar simultaneamente mais do que uma instrução (pipeline), permitia-lhe às mesmas velocidades de relógio suplantar as prestações do 80386. A especificação do 486 pressupunha também a existência de um co-processador matemático (FPU) integrado, o que em versões menores veio a ser desligado. Continha também 8KB de memória cache quer para dados quer para instruções.

Em 1993 surgiu o Pentium (x586). Tem capacidade de endereçamento de 32 bits e barramento de 64 bits, tem dupla cache interna, unidades de cálculo para inteiros e reais (vírgula flutuante), tecnologia super-escalar (possibilidade de executar mais do que uma instrução por ciclo de relógio), teste de paridade interno (detecção de erros), etc..

Foram sendo incorporados novos conjuntos de instruções, como a tecnologia MMX, desenvolveram-se especializações para servidores, o Pentium Pro com vários níveis de cache interna. O Pentium II, é um Pentium Pro ao qual foi adicionada a tecnologia MMX e duplicada a cache interna.

Esta é sem dúvida a mais popular das famílias de µP, mas estão desde sempre muito ligadas a computadores pessoais e com baixo poder de cálculo, embora nos dois últimos modelos, com a incorporação de co-processador, de cache interna, de unidades de aceleração de cálculo de reais com vírgula flutuante, etc., esta família (Pentium) comece a competir pelo mercado de estações de trabalho e servidores de médio porte.

Paralelamente à família Intel x86 foi-se desenvolvendo uma outra, a família Motorola 68000, que com mais ou menos diferenças estruturais e funcionais se acabam por equivaler em performance. Esta última, equipa desde há muito tempo uma linha de computadores pessoais da marca Apple, os Macintosh. Esta linha é um símbolo no universos das máquinas e sistemas operativos com interface gráfica desde há muitos anos e a esse símbolo está associado esta família de µP. Ao longo dos últimos 15 anos, foram aparecendo máquinas baseadas nesta família que tinham como principais características comuns a facilidade de uso, a sua vocação para a computação gráfica e dispositivos adicionais para multimédia.

Ano Processador Transístores Velocidade (MegaHertz) Bus de endereços Bus de dados Registers (tamanho) Caches
1978 8086 29 mil
4,75

20 bit

16 bit 16 bit
1982 286 134 mil
6 — 25
24 bit 16 bit 16 bit
1985 386 275 mil
16 — 40
24 bit 32 bit 32 bit
1989 486 1,2 milhões
25— 100
32 bit 32 bit 32 bit 1 nível
1993 Pentium 3,1 milhões
60— 233
32 bit 64 bit 32 bit 1 nível
1995 Pentium Pro 5,5 milhões
150— 200
32 bit 64 bit 32 bit 1 e 2 níveis
1997 Pentium II 7,5 milhões
233— 450
36 bit 64 bit 32 bit 1 e 2 níveis
1999 Pentium III 15 milhões
450— ...
36 bit 64 bit 32 bit 1 e 2 níveis

Quadro resumo da evolução das principais características da linha de processadores x86/Pentium

topo