Você está na página 1de 15

2010 

 
 

Processadores 
Grupo Major Geeks 
 
Trabalho sobre processadores desenvolvido para aula de Organização de 
computadores. 
 
 
 
 
Diogo Antonino da Silva 
Igor Schmidt 
Rafael Souza Fona 
Robson Gomes dos Santos 
Rogério das Neves  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

                                                        Universidade Estácio Uniradial ‐ Jabaquara 
Análise e Desenvolvimento de Sistema – 1° Semestre 
27/09/2010 
 

O que é um processador? 
 
Processador  é  um  circuito  integrado  que  realiza  cálculos  e  tomar  decisões.  Os  circuitos  integrados  são  circuitos 
eletrônicos  funcionais,  constituídos  por  um  conjunto  de  transistores,  díodos,  resistências  e  condensadores, 
fabricados  num  mesmo  processo,  sobre  uma  substância  comum  semicondutora  de  silício  que  se  designa 
vulgarmente por chip. A baixo temos um projeto de circuito integrado. 
 

 
Circuito integrado desenvolvido no DEL 
 
Os  processadores  buscam  e  executam  instruções  existentes  na  memória.  Um  processador  (também  conhecido 
como  CPU ou  unidade  central  de  processamento)  é  uma  máquina  completa  de  computação  embutida  em  um 
único  chip,  apesar  disso  está  longe  de  ser  um  computador  completo.  Para  que  possa  interagir  com  o  usuário 
precisa de: memória, dispositivos de entrada/saída, um clock, controladores e conversores de sinais, entre outros. 
Cada um desses circuitos de apoio interage de modo peculiar com os programas e, dessa forma, ajuda a moldar o 
funcionamento do computador. Afinal nosso cérebro não vive sem um corpo. 
 
Lógica básica de um processador 
 
Um processador executa uma série de instruções de máquina que dizem a ele o que fazer. As três funções básicas 
de um processador são: 
 
• utilizando  sua  ALU  (Unidade  Lógico‐Aritmética),  o  processador  pode  executar  operações  matemáticas 
como  adição, subtração,  multiplicação e  divisão.  Os  processadores  modernos contêm  processadores  de 
ponto  flutuante  que  podem  executar  operações  extremamente  sofisticadas  com  número  grandes  em 
pontos flutuantes; 
 
• um processador pode mover dados de um endereço de memória para outro; 
 
• um  processador  pode  tomar  decisões  e  desviar  para  um  outro  conjunto  de  instruções  baseado  nestas 
decisões. 
 
O  processador  pode  fazer  coisas  muito  complicadas,  mas  as  três  atividades  citadas  acima  são  as  suas  principais 
ações. O diagrama a seguir mostra um processador extremamente simples que é capaz de fazer estas três coisas: 

 
 
 


 
 
 
Este processador simples possui: 
 
• um barramento de endereços (pode ser de 8, 16, 32 ou 64 bits) que envia um endereço para a memória; 
 
• um  barramento  de  dados  (pode  ser  de  8,  16,  32  ou  64  bits)  que  envia  e  recebe  dados  da  memória; 
 
• uma  linha  RD  (Read  ou  Leitura)  e  WR  (Write  ou  Escrita)  que  diz  à  memória  se  ela  deve  gravar  ou  ler  o 
conteúdo  da  posição  de  memória  endereçada; 
 
• um  sinal  de  clock  que  fornece  uma  seqüência  de  pulsos  de  relógio  para  o  processador; 
 
• um sinal de reset que reinicia o contador do programa para zero (ou outro valor) e recomeça a execução 
do programa. 
 
FSB ‐ Front‐side bus 
 
Barramento frontal (Front Side Bus ou FSB em inglês) é o barramento de transferência de dados que transporta 
informação entre a processador e o northbridge da placa‐mãe. O northbridge também conhecido como memory 
controller  hub  (MCH)  é  tradicionalmente  um  dos  dois  chips  que  constituem  o  chipset  numa  placa‐mãe  de  PC, 
sendo  o  outro  o  southbridge.  O  southbridge  também  conhecido  como  I/O  Controller  Hub,  é  um  chip  que 
implementa as capacidades mais "lentas" da placa‐mãe numa arquitetura de chipset northbridge/southbridge. O 
southbridge  pode  ser  geralmente  diferenciado  do  northbridge  por  não  estar  diretamente  conectado  ao 
processador. 
Alguns computadores também possuem um barramento traseiro (ou backside bus) o qual conecta o processador à 
memória  cache  interna.  Este  barramento  e  a  memória  cache  associada  a  ela  podem  ser  acessados  muito  mais 
rapidamente do que a RAM do sistema através do barramento frontal. 
A largura de banda ou throughput o valor máximo do barramento frontal é determinado pelo produto da largura 
da via de dados, frequência de clock (ciclos por segundo) e a quantidade de transferências de dados realizadas por 
ciclo do clock. Por exemplo, um FSB com largura de 32 bits (4 bytes) operando a uma frequência de 100 MHz e que 
realize 4 transferências por ciclo, possui uma largura de banda de 1600 megabytes por segundo (MB/s). 
A quantidade de transferências por ciclo de clock é dependente da tecnologia usada. Por exemplo, a GTL+ realiza 
uma transferência/ciclo, a EV6 2 transferências/ciclo e a AGTL+ 4 transferências/ciclo. A Intel denomina a técnica 
de 4 transferências por ciclo de Quad Pumping. 
Deve  ser  observado  que  muitos  fabricantes  hoje  em  dia  anunciam  a  capacidade  do  FSB  em  megatransfers  por 
segundo (MT/s), não na frequência do clock do FSB em megahertz (MHz). Isto se deve ao fato de que a frequência 
real é determinada pela quantidade de transferências que podem ser realizadas a cada ciclo de clock, bem como 
pela frequência do clock. Por exemplo, o  processador possui um FSB de 200 MHz e realiza 4 transferências por 
ciclo de clock, o FSB é dito como de 800 MT/s. 
 
ORGANIZAÇÃO DO PROCESSADOR 
 
Para entender a organização da CPU, devemos considerar as ações que ela deve executar: 
Busca de instrução: a CPU lê uma instrução da memória. 
Interpretação de instrução: a instrução é decodificada para determinar a ação requerida. 
Busca de dados: a execução de uma instrução pode requerer efetuar uma operação aritmética ou lógica sobre os 
dados. 
Escrita de dados: os resultados da execução podem requerer escrever dados na memória ou em um módulo de 
E/S. 
 
Para executar essas ações, a CPU precisa armazenar alguns dados temporariamente. Ela deve manter a posição de 
memória da última instrução, para saber onde obter a próxima instrução, e precisa também armazenar instruções 
e dados temporariamente, enquanto uma instrução está sendo executada. Em outras palavras, a CPU necessita de 
uma pequena memória interna. 
A  Figura  1  é  uma  visão  simplificada  de  uma  CPU,  que  indica  também  sua  conexão  com  o  resto  do  sistema,  por 
meio  do  barramento  de  sistema.  Uma  interface  semelhante  é  necessária  para  qualquer  das  estruturas  de 
interconexão descritas na aula de Barramentos. Os componentes mais importantes da CPU são a unidade lógica e 
aritmética ou ULA e a unidade de controle ou UC. A ULA efetua o processamento de dados. A UC controla não só a 

 
transferência de dados e instruções para dentro e para fora da CPU, como também a operação da ULA. A figura 
mostra,  além  desses  componentes,  uma  memória  interna  mínima,  constituída  de  um  conjunto  de  posições  de 
armazenamento denominadas registradores. 
 

 
 
A Figura 2 é uma visão um pouco mais detalhada da CPU. São indicados os caminhos de transferência de dados e 
de  sinais  de  controle,  o  que  inclui  um  elemento  denominado  barramento  interno  da  CPU.  Esse  elemento  é 
necessário pra transferir dados entre os vários registradores e a ULA, uma vez que esta última apenas opera sobre 
dados  localizados  na  memória  interna  da  CPU.  A  figura  mostra  ainda  os  elementos  básicos  típicos  de  uma  ULA. 
Note  a  semelhança  entre  a  estrutura  interna  do  computador  como  um  todo  e  a  estrutura  interna  da  CPU.  Em 
ambos os casos, existe uma pequena coleção de elementos importantes, conectados por caminhos de dados. 
 

 
ORGANIZAÇÃO DE REGISTRADORES 
Um sistema de computação emprega uma hierarquia de memória. Nos níveis mais altos da hierarquia, a memória 
é mais rápida, menor e mais cara (custo por bit). Dentro da CPU, existe um conjunto de registradores que funciona 
como um nível da hierarquia de memória acima da memória principal e da memória cache. Os registradores da 
CPU têm duas funções: 
 


 
• Registradores visíveis para o usuário: possibilitam ao programador de linguagem de montagem 
ou de máquina minimizar referências à memória, pela otimização do uso de registradores. 
• Registradores de controle e de estado: são usados pela unidade de controle para controlar a 
operação  da  CPU  e  por  programas  privilegiados  do  sistema  operacional  para  controlar  a  execução  de 
programas. 
 
Não  existe  uma  separação  clara  entre  os  registradores  dessas  duas  categorias.  Por  exemplo,  em  algumas 
máquinas, o contador de programa é visível para o usuário (no VAX), mas em muitas outras não é. 
 
Registradores Visíveis para o Usuário 
 
Um registrador visível para o usuário é aquele que pode ser referenciado pela linguagem de máquina que a CPU 
executa. Esses registradores podem ser classificados nas seguintes categorias: 
 
• Registradores de propósito geral 
• Registradores de dados 
• Registradores de endereço 
• Registradores de códigos de operação 
 
Registradores de propósito geral  
 
Podem  ser  usados  pelo  programador  para  uma  variedade  de  funções.  Algumas  vezes,  seu  uso  no  conjunto  de 
instruções é ortogonal ao código de operação, ou seja, qualquer registrador de propósito geral pode conter um 
operando  para  qualquer  código  de  operação.  Esse  é  o  real  significado  de  propósito  geral.  Entretanto,  existem 
freqüentemente  algumas  restrições.  Por  exemplo,  podem  existir  registradores  dedicados  para  operações  sobre 
números de ponto flutuante e para operações sobre a pilha. 
Em  alguns  casos,  os  registradores  de  propósito  geral  podem  ser  usados  para  endereçamento.  Em  outros,  existe 
uma  separação  clara  ou  parcial  entre  registradores  de  dados  e  registradores  de  endereços.  Registradores  de 
dados  podem  ser  usados  apenas  para  conter  dados  e  não  podem  ser  empregados  no  cálculo  de  endereços  de 
operados.  Registradores  de  endereço  podem  também  ser  empregados  até  certo  ponto  como  registradores  de 
propósito geral ou podem ser dedicados para um determinado modo de endereçamento. Alguns exemplos são: 
 
• Registradores  de  segmento:  em  uma  máquina  com  endereçamento  segmentado,  um 
registrador  de  segmento  é  usado  para  conter  o  endereço  da  base  de  um  segmento.  Podem  existir 
múltiplos registradores de segmento: por exemplo, um para o sistema operacional e um para o processo 
corrente. 
• Registradores  de  índices:  são  usados  para  endereçamento  indexado,  possivelmente  com 
auto‐indexação. 
• Apontador de topo de pilha: se houver endereçamento de operandos na pilha visível para o 
usuário,  então  tipicamente  a  pilha  será  alocada  na  memória  e  existirá  um  registrador  dedicado  que 
aponta  para  o  topo  da  pilha.  Isso  possibilita  um  endereçamento  implícito,  ou  seja,  as  instruções  de 
empilhar e desempilhar não requerem um operando explícito. 
 
O  projeto  do  conjunto  de  registradores  envolve  diversas  questões.  Uma  questão  importante  é  decidir  se  os 
registradores  serão  de  propósito  geral  ou  se  terão  uso  específico.  Com  o  uso  de  registradores  especializados,  o 
tipo  de  registrador  referenciado  como  operando  de  uma  instrução  geralmente  é  implícito,  sendo  determinado 
pelo código de operação. O campo de operando apenas identifica um registrador de um conjunto de registradores 
especializados,  economizando,  portanto,  alguns  bits  de  instrução.  Por  outro  lado,  essa  especialização  limita  a 
flexibilidade de programação. Embora não exista melhor solução, para essa questão de projeto, a tendência atual 
é usar registradores especializados. 
Outra questão de projeto é o número de registradores a serem disponibilizados, seja de propósito geral seja para 
registradores de dados e de endereços. Isso também afeta o projeto do conjunto de instruções, uma vez que um 
número maior de registradores requer maior número de bits para especificar um operando. O número adequado 
parece  ser  entre  8  e  32  registradores.  Um  pequeno  número  de  registradores  resulta  em  mais  referências  à 
memória,  mas  o  uso  de  um  número  muito  grande  de  registradores,  não  reduz  substancialmente  o  número  de 
referências  à  memória.  Uma  abordagem  diferente  é  adotada  na  arquitetura  RISC  que  obtém  vantagem  com  a 
utilização de centenas de registradores. 


 
Finalmente, existe a questão do tamanho do registrador. Registradores de endereço devem ter tamanho suficiente 
para conter o maior endereço usado no sistema. Registradores de dados devem ser capazes de conter valores da 
maioria dos tipos de dados. Algumas máquinas permitem o uso de dois registradores contíguos para conter valores 
de tamanho duplo. 
Uma última categoria de registradores que são visíveis para o usuário, pelo menos parcialmente, contém códigos 
de  condição  (também  conhecidos  como  flags).  Códigos  de  condição  são  bits  atualizados  pelo  hardware  da  CPU 
como resultados de operações. Por exemplo, em uma operação aritmética, esses bits podem indicar se o resultado 
produzido é positivo, negativo, zero ou overflow. Além de o próprio resultado da operação ser armazenado em um 
registrador  ou  na  memória,  são  também  atualizados  os  registradores  que  contêm  códigos  de  condição.  Esses 
códigos podem ser testados em seguida, por uma operação de desvio condicional. 
Normalmente, os bits de código de condição fazem parte de um registrador de controle, embora algumas vezes 
possam ser organizados em mais de um registrador. As instruções de máquina geralmente possibilitam ler esses 
bits, por meio de uma referencia implícita, mas não permitem que eles sejam alterados pelo programador. 
 
Registradores de Controle e de Estado 
 
Vários registradores da CPU são empregados para controlar a operação da CPU. Na maioria das máquinas, eles não 
são visíveis para o usuário. Alguns deles podem ser visíveis para instruções de máquinas executadas em um modo 
de controle ou de sistema operacional. 
É claro que máquinas diferentes têm organizações de registradores diferentes e usam uma terminologia distinta. 
Quatro registradores são essenciais para a execução de instruções: 
 
• Contador de programa (PC): contém o endereço da instrução a ser buscada. 
• Registrador de instrução (IR): contém a última instrução buscada. 
• Registrador de endereçamento à memória (MAR): contém o endereço de uma posição de 
memória. 
• Registrador  de  armazenamento  temporário  de  dados  (MBR):  contém  uma  palavra  de 
dados a ser escrita na memória ou a palavra lida mais recentemente. 
 
Tipicamente, o contador de programa é atualizado pela CPU depois de cada busca de instrução, de modo que ele 
sempre  indique  a  próxima  instrução  a  ser  executada.  Uma  instrução  de  desvio  ou  de  salto  também  modifica  o 
conteúdo  do  contador  de  programa.  A  instrução  buscada  é  carregada  no  IR,  onde  o  código  de  operação  e  as 
referências a operando são analisadas. A troca de dados com a memória é feita usando o MAR e o MBR. Em um 
sistema com barramento, o MAR é conectado diretamente ao barramento de endereço e o MBR, ao barramento 
de dados. Registradores visíveis ao usuário, por sua vez, trocam dados com o MBR. 
Os quatro registradores relacionados são usados para transferência de dados entre a CPU e a memória. Dentro da 
CPU, os dados devem ser apresentados à ULA para processamento. A ULA pode ter acesso direto ao MBR e aos 
registradores  visíveis  para  o  usuário.  Alternativamente,  podem  existir  registradores  adicionais  para 
armazenamento  temporário  de  dados,  que  servem  como  registradores  de  entrada  e  de  saída  da  ULA  e  trocam 
dados com o MBR e os registradores visíveis para o usuário. 
Todo  o  projeto  da  CPU  inclui  um  registrador,  ou  conjunto  de  registradores,  freqüentemente  conhecido  como 
palavra de estado de programa (PSW), que contém informação de estado. Tipicamente, o registrador PSW contém 
códigos de condição e outras informações de estado, incluindo os seguintes campos: 
 
• Sinal: contém o bit de sinal do resultado da última operação aritmética. 
• Zero: atualizado com o valor 1 se o resultado da última operação for 0. 
• ‘Vai‐um’: atualizado com o valor 1 se uma operação resultar em um ‘vai‐um’ para fora do 
bit de ordem superior (adição) ou em um ‘vem‐um’ para o bit de ordem superior (subtração). É usado por 
operações aritméticas de múltiplas palavras. 
• Igual: atualizado com valor 1 se uma comparação lógica resultar em igualdade. 
• Overflow: usado para indicar overflow aritmético. 
• Habilitar/desabilitar interrupção: usada para habilitar ou desabilitar interrupções. 
• Supervisor: indica se a CPU está executando em modo supervisor ou em modo de usuário. 
Certas  instruções  privilegiadas  apenas  podem  ser  executadas  no  modo  supervisor,  assim  como  certas 
áreas de memória apenas podem ser acessadas no modo supervisor. 
 
O projeto de uma CPU pode também incluir outros registradores relacionados ao estado e ao controle. Além do 
registrador PSW, deve existir um registrador que aponta para um bloco de memória que contém informação de 


 
estado  adicional  (por  exemplo,  blocos  de  controle  de  processo).  Em  máquinas  que  usam  vetor  de  interrupções, 
pode existir um registrador de vetor de interrupções. Se for usada uma pilha para implementar certas funções (por 
exemplo, chamada de sub‐rotina), será necessário um registrador indicador de topo de pilha. EM um sistema com 
memória virtual, um registrador é usado para apontador para a tabela de páginas. Finalmente, podem também ser 
usados registradores para o controle de operações de E/S. 
Diversos fatores devem ser considerados no projeto da organização de registradores de controle e de estado. Uma 
questão‐chave  é  o  suporte  para  o  sistema  operacional.  Certos  tipos  de  informação  de  controle  são  úteis 
especificamente para o sistema operacional. Se o projetista da CPU tem entendimento funcional sobre o sistema 
operacional a ser usado, a organização dos registradores pode ser feita razoavelmente de acordo com o sistema 
operacional. 
Outra  decisão  de  projeto  importante  é  a  alocação  de  informação  de  controle  entre  registradores  e  memória.  É 
comum  reservar  as  primeiras  (de  endereço  mais  baixo)  centenas  ou  milhares  de  palavras  da  memória  para 
armazenar  informações  de  controle.  O  projetista  deve  decidir  que  parte  das  informações  de  controle  deve  ser 
mantida  em  registradores  e  que  parte  deve  ficar  na  memória,  levando‐se  em  conta  o  custo  e  a  velocidade  de 
acesso. 

CICLO DE INSTRUÇÃO 
Conforme podemos ver na figura 4, o ciclo de instrução inclui os seguintes subciclos: 
• Busca: lê a próxima instrução da memória para a CPU. 
• Execução: interpreta o código de operação e efetua a operação indicada. 
• Interrupção: se as interrupções estão habilitadas e ocorreu uma interrupção, salva o estado 
do processo atual e processa a interrupção. 
 

 
 
 
 
Fluxo de Dados 
A seqüência exata de eventos durante um ciclo de instrução depende do projeto da CPU. É possível, entretanto, 
indicar  o  que  pode  acontecer  em  termos  gerais.  Suponha  que  a  CPU  empregue  um  registrador  de  endereço  de 
memória (MAR), um registrador de armazenamento temporário de dados (MBR), um contador de programa (PC) e 
um registrador de instrução (IR). 
Durante o ciclo de busca, uma instrução é lida a partir da memória. A figura 7 mostra o fluxo de dados durante 
esse  ciclo.  O  contador  de  programa  contém  o  endereço  da  próxima  instrução  a  ser  buscada.  Esse  endereço  é 
movido  para  o  MAR  e  colocado  no  barramento  de  endereço.  A  unidade  de  controle  requisita  uma  leitura  na 
memória,  e  o  resultado  é  colocado  no  barramento  de  dados  e  copiado  no  MBR  e  então  movido  para  o  IR. 
Enquanto isso, o contador de programa é incrementado de 1, para preparar a próxima busca de instrução. 


 
 

Figura 7: Fluxo de dados no ciclo de busca 

Uma vez que o ciclo de busca termina, a unidade de controle examina o conteúdo do IR para determinar se a 
instrução especifica algum operando com endereçamento indireto. Se isso ocorrer, um ciclo indireto é efetuado. 
Como mostra a figura 8, esse ciclo é bastante simples. Os N bits mais à direita do MBR, que contém a referência ao 
endereço, são transferidos para o MAR. Então, a unidade de controle requisita uma leitura de memória, para 
transferir o endereço do operando desejado para o MBR. 

 
 
O  ciclo  de  busca  e  o  ciclo  indireto  são  simples  e  previsíveis.  O  ciclo  de  execução  pode  ter  muitas  formas, 
dependendo  de  qual  das  várias  instruções  de  máquina  está  contida  no  IR.  Ele  pode  envolver  transferência  de 
dados entre registradores, leitura e escrita na memória ou em dispositivos de E/S e invocação da ULA. 
Assim como o ciclo de busca e o ciclo indireto, o ciclo de interrupção é simples e previsível (Figura 9). O conteúdo 
corrente  do  PC  deve  ser  salvo,  para  que  a  CPU  possa  retomar  sua  atividade  normal  depois  de  processar  a 
interrupção. Assim,  o  conteúdo  do  PC  é  transferido  para o  MBR,  para  depois  ser  escrito  na  memória.  A posição 
especial da memória reservada para esse propósito é carregada no MAR pela unidade de controle. Ela pode ser, 
por exemplo, a posição apontada pelo registrador de topo de pilha. O PC é carregado com o endereço da rotina de 
interrupção. Como resultado, o próximo ciclo de instrução começará buscando a instrução apropriada. 
 


 
 
PIPELINE DE INSTRUÇÕES 
 
À medida que os sistemas de computação evoluem, é possível obter maior desempenho com o uso de tecnologias 
mais  avançadas,  tais  como  um  conjunto  de  circuitos  mais  rápidos.  Além  disso,  uma  melhor  organização  da  CPU 
pode  também  melhorar  o  desempenho.  Alguns  exemplos  disso  foram  vistos  anteriormente,  tais  como  o  uso  de 
múltiplos registradores no lugar de um único acumulador e o uso de memória cache. Outra abordagem comum na 
organização da CPU é o uso de um pipeline de instruções. 
 
Uma pipeline de instruções é semelhante a uma linha de montagem de uma industria. Uma linha de montagem 
tira proveito do fato de que um produto passa por vários estágios de produção: produtos em vários estágios do 
processo de produção podem ser trabalhados simultaneamente. Em uma pipeline de instruções, novas entradas 
são  aceitas  em  uma  extremidade,  antes  que  entradas  aceitas  previamente  apareçam  como  saídas  na  outra 
extremidade. 
 
Clock 
 
Quando vamos comprar um processador a primeira coisa que perguntamos é: qual sua freqüência de operação? 
(medida em Megahertz ‐ MHz ‐ ou milhões de ciclos por segundo, também chamada de clock). Acontece que nem 
sempre um processador com uma velocidade de operação mais alta é mais rápido do que outro que opera com 
uma freqüência um pouco mais baixa. A freqüência de operação de um processador indica apenas quantos ciclos 
de  processamentos  são  realizados  por  segundo,  o que  cada  processador  é  capaz de fazer  em  cada  ciclo  é outra 
história. 
Imagine um processador 80486 de 100 MHz ao lado de um Pentium também de 100 MHz. Apesar da freqüência de 
operação ser a mesma, o 80486 perderia em desempenho. O Pentium seria pelo menos 2 vezes mais rápido devido 
às diferenças da arquitetura interna que existe entre estes dois processadores. 
 
Cache 
 
Enquanto os processadores tornavam‐se mais rápidos a memória principal, sua principal ferramenta de trabalho, 
pouco evoluía em performance. 
Durante  o  desenvolvimento  do  processador  80386,  percebeu‐se  que  a  velocidade  de  trabalho  da  memória 
principal  não  seria  capaz  de  acompanhar  a  velocidade  do  processador.  Isto  faria  com  que  ele  tivesse  que  ficar 
“esperando” os dados serem liberados pela memória principal para poder concluir suas tarefas, ocasionando uma 
enorme perda de desempenho.  
Para solucionar este problema começou a ser usada a memória cache, um tipo ultra‐rápido de memória que serve 
para  armazenar  os  dados  usados  com  mais  freqüência  pelo  processador  evitando  que  ele  tenha  que  recorrer 
diretamente à memória principal 
São  usados  dois  tipos  de  memória  cache:  o  cache  primário,  ou  cache  L1,  e  o  cache  secundário,  ou  cache  L2.  O 
cache  primário  (cache  L1)  é  embutido  no  próprio  processador  e  é  rápido  o  bastante  para  acompanhá‐lo  em 
velocidade. Como este tipo de memória é extremamente caro é utilizada apenas uma pequena quantidade. 
O  cache  secundário,  por  ser  mais  barato,  é  usado  em  uma  quantidade  maior.  Dependendo  do  processador,  o 
cache  L2  pode  ser  embutido  no  próprio  processador  ou  ser  externo  ao  processador.  Atualmente  a  maioria  dos 
processadores trazem o cache L2 integrado, não permitindo qualquer modificação. 
 
 


 
Coprocessadores  
 
Nos  processadores  mais  antigos  como  o  486  e  o  386  era  comum  a  utilização  de  um  processador  auxiliar,  as 
operações  realizadas  pelo  coprocessador  podem  ser  de  ponto  flutuante  aritmético,  computação  gráfica, 
processamento  de  sinais,  processamento  de  cadeias  de  caracteres  ou  criptografia.  Ao  assumir  tarefas  que 
consomem  tempo  de  processamento,  os  coprocessadores  podem  acelerar  o  desempenho  geral  de  um  sistema. 
Abaixo uma foto de um processador i386 trabalhando em conjunto com um coprocessador i387. 
 
 

 
 
 
A partir do 486DX os coprocessadores foram integrados aos processadores. 
 
Processamento de Interrupção 
 
O processamento de interrupções dentro de um processador visa oferecer suporte para o sistema operacional. O 
uso de interrupções permite que um programa de aplicação seja suspenso, para que uma variedade de condições 
de interrupção possa ser atendida, sendo a execução do programa retomada mais tarde.  
 
Tecnologias usadas nos processadores 
 
MMX 
O  conjunto  de  instruções  MMX  melhorou  o  desempenho  do  processador  em  aplicações  multimídia  e  em 
processamento de imagens. Nestas aplicações algumas rotinas podem ser executadas até 400% mais rápido com o 
uso  das  instruções  MMX.  O ganho  de  performance  porém  não  é  automático,  sendo  necessário  que  o  programa 
seja otimizado para utilizar as novas instruções, caso contrário não haverá nenhum ganho de performance. 
Curiosidade: É possível instalar o MMX na maioria das placas‐mãe soquete 7, para Pentium, desde que ela suporte 
a voltagem de 2.9 volts usada pelo MMX. O Pentium trabalha com uma voltagem de 3,3 volts. 
 
As novas instruções SSE 
Basicamente as instruções SSE diferem das instruções 3D‐Now!, dos processadores AMD, devido à forma como são 
executadas. A vantagem é que o Pentium III é capaz de processar, simultaneamente, as instruções normais e as 
instruções SSE. Com as instruções 3D‐Now!, o programa tem que escolher, a todo momento, entre utilizar uma das 
instruções padrão ou uma das instruções 3D‐Now!. 
O Pentium III é capaz de usar os dois tipos de instruções, simultaneamente, mantendo o coprocessador aritmético 
ocupado durante mais tempo, o que resulta em ganho de performance. 
 
 
Hyper Pipelined Technology 
Esta  é  a  característica  mais  marcante  do  Pentium  4.  Pipeline  é  um  recurso  que  divide  o  processador  em  vários 
estágios, que trabalham simultaneamente, dividido o trabalho de processar as instruções. A partir do 486 todos os 
processadores  utilizam  pipeline.  O  Pentium  III  possui  pipeline  de  10  estágios,  o  Athlon  possui  pipeline  de  11 
estágios e o Pentium 4 possui pipeline de 20 estágios daí o nome Hyper Pipelined. 
O uso de pipeline permite que o processador possa processar várias instruções ao mesmo tempo, sendo que cada 
estágio cuida de uma fração do processamento. Quanto mais estágios, menor será o processamento executado em 
10 
 
cada um. No caso do Pentium 4 cada estágio do pipeline processa apenas metade do processado por um estágio 
do Pentium III, fazendo com que, teoricamente, o resultado final seja o mesmo já que existe o dobro de estágios. 
O  uso  de  mais  estágios  permite  que  o  processador  opere  com  freqüências  bem  mais  altas,  já  que  cada  estágio 
executa  menos  processamento.  O  problema  é  que  os  processadores  atuais  executam  várias  instruções 
simultaneamente, enquanto os programas aplicativos são uma seqüência de instruções. Se as instruções seguintes 
não dependem do resultado da primeira, o processador não terá nenhum problema para resolvê‐las rapidamente. 
Porém,  caso  ocorra  uma  tomada  de  decisão,  onde  o  processador  precisa  primeiro  resolver  uma  instrução  para 
saber qual caminho deve tomar, entra em cena o recurso de Execução Especulativa onde, enquanto é resolvida a 
primeira instrução, o processador escolhe um dos caminhos possíveis para ir “adiantando o serviço” enquanto não 
sabe qual caminho deverá seguir. Se, ao saber do resultado da primeira instrução, tiver tomado o caminho certo 
simplesmente  continuará.  Por  outro  lado,  se  o  processador  tiver  “adivinhado  errado”  então  terá  que  jogar  fora 
todo o trabalho já feito e tomar o outro caminho perdendo muito tempo. 
O  Pentium  4  perde  nesse  quesito  pois  demora  o  dobro  do  tempo  para  processar  a  primeira  instrução,  que  é 
processada em 20 estágios contra 10 estágios do Pentium III. Isto significa que, em cada tomada de decisão errada 
são  perdidos  20  ciclos  de  processamento.  Assim,  a  princípio,  o  Pentium  4  é  mais  lento  que  um  Pentium  III  do 
mesmo clock. Em compensação ele pode operar com freqüências mais altas. 
Todas  as  outras  alterações  feitas  pela  Intel  servem  como  paliativos  para  diminuir  esta  perda  de  desempenho 
trazida pelo maior número de estágios de pipeline. Devido a isto, a Intel lançou os modelos de 1,4 GHz e 1,5 GHz 
de clock, pulando as versões de 1,1 GHz e 1,2 GHz de clock. Caso fosse lançado um Pentium 4 de 1,1 GHz de clock 
ele perderia para um Pentium III de 1 GHz em quase todas as aplicações. 
Além  da  perda  de  desempenho,  outro  efeito  do  uso  de  mais  estágios  de  pipeline  é  o  de  tornar  o  processador 
maior, mais complexo e mais caro de ser produzir. O Pentium 4 tem quase o dobro de área de um processador 
Athlon. 
 
Execution Trace Cache 
O uso do cache L1 no Pentium 4 é, no mínimo, inovador. O Pentium III tem 32 KB de cache L1 dividido em 2 blocos 
de 16 KB cada, um para instruções e outro para dados. O Athlon tem 128 KB de cache L1, também dividido em dois 
blocos.  O  Pentium  4  tem  apenas  8  KB  de  cache  L1  para  dados  e  só.  Porém,  ele  traz  duas  inovações  que 
compensam esta aparente deficiência. A primeira é que, graças ao tamanho reduzido o cache de dados tem um 
tempo de latência (tempo que demora para reagir) menor, ou seja, é mais rápido que o cache L1 encontrado no 
Pentium III e no Athlon.  
A  segunda  inovação  é  que  o  cache  de  instruções  foi  substituído  pelo  Execution  Trace  Cache  que,  ao  invés  de 
armazenar instruções, armazena diretamente uOPs, que são as instruções já decodificadas e prontas para serem 
processadas. Isto garante que o cache tenha apenas um ciclo de latência, ou seja, o processador não perde tempo 
algum  ao  utilizar  um  dado  armazenado  no  Execution  Trace  Cache,  ao  contrário  do  que  acontece  no  Pentium  III 
onde perde‐se dois ciclos em cada leitura. 
Uma  explicação  resumida  sobre  o  que  é  um  uOP:  os  processadores  para  PC  usam  o  conjunto de  instruções  x86 
composto por 184 instruções mas, internamente, eles só são capazes de processar instruções simples. Existe um 
circuito  decodificador  que  converte  as  instruções  complexas,  usadas  pelos  programas,  nas  instruções  simples, 
entendidas  pelo  processador.  Uma  instrução  complexa  pode  ser  quebrada  em  várias  instruções  simples.  No 
Pentium 4 cada instrução simples é chamada de uOP. No Athlon cada conjunto de duas instruções simples ganha o 
nome de macro‐ops. 
 
Rapid Execution Engine 
Todo  processador  atual  é  dividido  em  dois  componentes  básicos:  as  unidades  de  execução  de  inteiros  e  as 
unidades de ponto flutuante. A parte que processa as instruções envolvendo números inteiros é responsável pela 
maior parte das instruções e pelo desempenho do processador nos aplicativos do dia a dia. As unidades de ponto 
flutuante, que compõe o que chamamos de coprocessador aritmético, são responsáveis pelo processamento das 
instruções envolvendo valores complexos usados por jogos e aplicativos gráficos. 
A Rapid Execution Engine do Pentium 4 consiste num reforço nas unidades de inteiros do processador. O Pentium 
4 possui um total de 5 unidades de processamento de inteiros, duas que processam as instruções mais simples, 
duas encarregadas de ler e gravar dados e uma encarregada de decodificar e processar as instruções complexas 
que, embora em menor quantidade, são as instruções que tomam mais tempo do processador. 
No  Pentium  4  as  encarregadas  das  instruções  simples  e  as  encarregadas  das  leituras  e  gravações  são  muito 
potentes.  Porém,  a  de  instruções  complexas  não  teve  a  mesma  evolução  e,  por  usar  20  estágios  de  pipeline, 
tornou‐se mais lenta que a do Pentium III. Temos então que as instruções simples são rapidamente processadas 
mas as instruções complexas ficam represadas causando perda de desempenho. 
No coprocessador aritmético o cenário é ainda mais complicado. Apesar das unidades de execução terem perdido 
desempenho devido ao pipeline de 20 estágios, não houve nenhum avanço para equilibrar a balança como feito 
11 
 
nas  unidades  de  inteiros.  Ao  contrário,  o  coprocessador  aritmético  encolheu  tendo  sido  retiradas  duas  das 
unidades de execução, uma que processava instruções MMX e uma que processava instruções SSE. 
Ao invés de evoluir o coprocessador aritmético do Pentium 4 tornou‐se mais frágil que o do Pentium III trazendo 
um  cenário,  no  mínimo,  curioso.  Enquanto  na  época  do  Pentium  II,  e  do  AMD  K6,  a  AMD  competia  com  um 
processador que, apesar de possuir um bom desempenho em aplicativos de escritório, era muito fraco nos jogos e 
aplicativos  gráficos  agora  temos  um  cenário  semelhante  porém  com  os  lados  invertidos:  a  Intel  tem  com  um 
processador que é potente em inteiros mas fraco em ponto flutuante. 
 
SSE 2 
A solução da Intel para tentar diminuir a deficiência do coprocessador aritmético foi a mesma que a AMD usou na 
época  do  K6‐2.  A  AMD  usou  as  instruções  3D‐Now!  para  melhorar  seu  desempenho  nos  jogos  que  fossem 
otimizados.  A  Intel  incorporpou  novas  instruções  ao  Pentium  4,  chamadas  de  SSE  2,  para  melhorar  seu 
desempenho nos jogos e em aplicativos gráficos que venham a ser otimizados. 
 
Tipos de processadores 
 
Processador 16‐Bit  x 32‐Bit x 64‐Bit  
 
Quando nos referimos a processadores de 16 bits, 32 bits ou 64 bits estamos falando dos bits internos do chip ‐ em 
poucas  palavras,  isso  representa  a  quantidade  de  dados e  instruções  que  o processador  consegue trabalhar por 
vez. Por exemplo, com 16 bits um processador pode manipular um número de valor até 65.535. Se certo número 
tem valor 100.000, ele terá que fazer a operação em duas partes. No entanto, se um chip trabalha a 32 bits, ele 
pode manipular números de valor até 4.294.967.296 em uma única operação. 
 
Para calcular esse limite, basta fazer 2 elevado à quantidade de bits internos do processador. Então, qual o limite 
de um processador de 64 bits? Vamos à conta: 
 
2^64 = 1.84467441 × 10^19 
 
Agora, suponha que você esteja utilizando um editor de textos. É improvável que esse programa chegue a utilizar 
valores grandes em suas operações. Neste caso, qual a diferença entre utilizar um processador de 32 bits ou 64 
bits, sendo que o primeiro será suficiente? Como o editor utiliza valores suportáveis tanto pelos chips de 32 bits 
quanto pelos de 64 bits, as instruções relacionadas serão processadas ao mesmo tempo (considerando que ambos 
os chips tenham o mesmo clock). 
Por  outro  lado,  aplicações  em  3D  ou  programas  como  AutoCad  requerem  boa  capacidade  para  cálculo  e  aí  um 
processador de 64 bits pode fazer diferença. Suponha que determinadas operações utilizem valores superiores a 
4.294.967.296. Um processador de 32 bits terá que realizar cada etapa em duas vezes ou mais, dependendo do 
valor usado no cálculo. Todavia, um processador de 64 bits fará esse trabalho uma única vez em cada operação. 
No entanto, há outros fatores a serem considerados. Um deles é o sistema operacional (SO). O funcionamento do 
computador está diretamente ligado à relação entre o sistema operacional e o hardware como um todo. O SO é 
desenvolvido  de  forma  a  aproveitar  o  máximo  de  recursos  da  plataforma  para  o  qual  é  destinado.  Assim,  o 
Windows XP ou uma distribuição Linux com um kernel desenvolvido antes do surgimento de processadores de 64 
bits são preparados para trabalhar a 32 bits, mas não a 64 bits. 
 
Processadores RISC X Processadores CISC 
 
Sempre houve uma grande polêmica em torno de qual dessas plataformas é melhor. Na verdade, você já deve ter ouvido muito 
boatos como “Os Macs são mais rápidos por que tem chips RISC” ou algo do gênero. O objetivo deste artigo é falar um pouco 
sobre as duas plataformas e como elas coexistem atualmente.  
 
CISC (Complex Instruction Set Computer, ou "computador com um conjunto complexo de instruções"), é capaz de 
executar  várias  centenas  de  instruções  complexas  diferentes,  sendo  extremamente  versátil.  Exemplos  de 
processadores CISC são o 386 e o 486. 
 
RISC (Reduced Instruction Set Computer, ou "computador com um conjunto reduzido de instruções"). Ao contrário 
dos complexos CISC, os processadores RISC são capazes de executar apenas algumas poucas instruções simples. 
Justamente por isso, os chips baseados nesta arquitetura são mais simples e muito mais baratos. Outra vantagem 
dos processadores RISC, é que, por terem um menor número de circuitos internos, podem trabalhar a freqüências 
mais altas. Um exemplo são os processadores Alpha, que em 97 já operavam a 600 MHz. 
12 
 
 
Pode parecer estranho que um chip que é capaz de executar algumas poucas instruções, possa ser considerado 
por  muitos,  mais  rápido  do  que  outro  que  executa  centenas  delas,  seria  como  comparar  um  professor  de 
matemática com alguém que sabe apenas as quatro operações. Mas o que acontece, é que um processador RISC é 
capaz de executar tais instruções muito mais rapidamente. A idéia principal, é que apesar de um processador CISC 
ser capaz de executar centenas de instruções diferentes, apenas algumas são usadas freqüentemente. Poderíamos 
então  criar  um  processador  otimizado  para  executar  apenas  estas  instruções  simples  que  são  usadas  mais 
freqüentemente. Em conjunto com um software adequado, este processador seria capaz de desempenhar quase 
todas as funções de um processador CISC, acabando por compensar suas limitações com uma maior velocidade de 
processamento. 
É indiscutível, porém, que em instruções complexas os processadores CISC saem‐se melhor. 
 
Apesar de por questões de Marketing, muitos fabricantes ainda venderem seus chips, como sendo "Processadores 
RISC",  não  existe  praticamente  nenhum  processador  atualmente  que  siga  estritamente  uma  das  duas  filosofias. 
Tanto  processadores  da  família  x86,  como  o  Pentium  II,  Pentium  III  e  AMD  Athlon,  quanto  processadores 
supostamente  RISC,  como  o  MIPS  R10000  e  o  HP  PA‐8000, ou  mesmo  o  G4,  utilizado  nos  Macintoshs  misturam 
características das duas arquiteturas, por simples questão de desempenho. 
 
Examinando de um ponto de vista um pouco mais prático, a vantagem de uma arquitetura CISC é que já temos 
muitas  das  instruções  guardadas  no  próprio  processador,  o  que  facilita  o  trabalho  dos  programadores,  que  já 
dispõe de praticamente todas as instruções que serão usadas em seus programas. Isso é muito importante para 
nós de ADS! 
 
O conjunto básico de instruções usadas em micros PC é chamado de conjunto x86. Este conjunto é composto por 
um total de 187 instruções, que são as utilizadas por todos os programas. Além deste conjunto principal, alguns 
processadores  trazem  também  instruções  alternativas,  que  permitem  aos  programas  executar  algumas  tarefas 
mais  rapidamente  do  que  seria  possível  usando  as  instruções  x86  padrão.  Alguns  exemplos  de  conjuntos 
alternativos de instruções são o MMX (usado a partir do Pentium MMX), o 3D‐NOW! (usado pelos processadores 
da AMD, a partir do K6‐2), e o SSE (suportado pelo Pentium III). 
 
Processadores ARM 
 
Um  processador  mais  simples  seria  mais  indicado.  Descomplicados  para  programar,  de  tamanho  reduzido  e 
consumindo pouca energia, os processadores ARM foram criados em 1983 e, de lá para cá, alcançaram uma fatia 
expressiva de mercado: 90% de todos os dispositivos embarcados e mais de 98% de todos os celulares vendidos no 
mundo  usam  algum  modelo  ARM.  Nessa  conta  entra  um  sem‐número  de  dispositivos  inteligentes,  que  vão  de 
relógios,  televisores  e  roteadores  domésticos  a  smartphones  sofisticados  como  o  iPhone  e  o  Palm  Pre  e  alguns 
modelos de netbooks. 
 
Não há apenas um processador ARM. A linha é composta por dezenas de modelos de processadores, cada um com 
uma aplicação e recursos específicos, divididos em 14 famílias. O projeto mais recente, batizado de Cortex A9, é 
destinado a netbooks e promete ser mais poderoso do que o Atom, da Intel. 
 
A  tecnologia  ARM  de  processadores  é  projetada  e  desenvolvida  pela  ARM  Holdings  –  que,  todavia,  não  possui 
nenhuma  fábrica.  Em  vez  disso,  licencia  o  projeto  a  outras  indústrias  que  queiram  fabricar  versões  dos  chips. 
Dentre  os  licenciados  da  ARM  Holdings  estão,  além  da  Broadcom,  empresas  como  Samsung,  Freescale,  LG, 
Phillips/NXP,  Sharp,  Yamaha  e  Texas  Instruments.  Mesmo  a  Intel,  através  de  sua  subsidiária  DEC,  fabrica  suas 
próprias versões licenciadas. 
 
Um fato curioso sobre os processadores ARM é que não há versão do Windows para eles, a não ser o Windows 
Mobile, cujo único ponto em comum com seu “irmão” para PCs é o nome. Todavia, há inúmeras versões de Unix e 
Linux para ele, entre elas o popular Ubuntu, o Android, o WebOS, sistema operacional do Palm Pre, e o iPhone OS.  
 
GPU 
 
A unidade de processamento gráfico ou GPU (por vezes chamado unidade de processamento visual ou VPU) é um 
microprocessador especializado que alivia e acelera renderizações 3D ou 2D de gráficos do microprocessador. Ela é 
usada  em  sistemas  embarcados,  celulares,  computadores  pessoais,  workstations,  e  consoles  de  jogos.  GPUs 
modernas são muito eficientes na manipulação de computação gráfica, e sua estrutura paralela altamente torna 
13 
 
mais eficaz do que o propósito geral CPUs para uma série de complexos algoritmos. Em um computador pessoal, 
uma GPU pode estar presente em uma placa de vídeo, ou pode ser na placa‐mãe. Mais de 90% dos novos desktop 
e notebook usam GPUs integradas, que geralmente são inferiores as placas de vídeo dedicadas. 
 
Consoles 
 
Playstation 3 – Terá o mais poderoso processador. Com o nome de Cell, o chip foi desenvolvido a partir de uma 
parceria entre IBM, Sony e Toshiba e trata‐se de um processador multicore (núcleos múltiplos) com chip Power de 
64  bits,  integrados  a  oito  núcleos  de  128  bits  especializados,  em  uma  tecnologia  chamada  SPE  (Máquinas  de 
Processamento Cooperativo, em português). Com isso, mesmo funcionando tecnicamente a 3,2 GHz, o Cell pode 
realizar diversas operações simultâneas, o que garante maior performance gráfica e sonora na hora de rodar os 
jogos. O processador gráfico é o NVIDIA G70, com clock de 550 MHz. 
 
 

 
 
 
 
 
 
 
Wii – O “cérebro” do console também foi desenvolvido pela IBM e se chama PowerPC Broadway. Em relação aos 
rivais,  apresenta  o  menor  poder  de  processamento,  funcionando  a  uma  velocidade  de  729MHz,  em  integração 
com uma memória Flash de 512 MB e seis unidades de execução. A menor potência do chip é compensada com 
uma  outra  estratégia  da  Nintendo:  a  configuração  do  Broadway  permite  um  console  mais  compacto,  barato  e 
econômico, permitindo que ele fique conectado à Internet 24 horas por dia, em modo de “hibernação”. O porém 
disso tudo é que nos jogos que ganharem versões para os três videogames e que exijam maior performance do 
harware, certamente o Wii sairá perdendo. O processador gráfico é o Hollywood da ATI com clock de 249 MHz. 

14 
 
Xbox 360 – A IBM também marca presença no console da Microsoft, com um chip IBM Power PC, que conta com 
três poderosos processadores simétricos de 3,2 GHz cada, com duas execuções simultâneas por núcleo. No ranking 
de rapidez de processamento, o Xbox 360 fica em segundo lugar e oferece um suporte competente para executar 
games mais pesados. O processador gráfico é o ATI com clock de 500 MHz 

NVIDIA  
(grafada antes como nVidia) é uma empresa multinacional com sede em Santa Clara (Califórnia) que fabrica peças 
de computador, e é mais popularmente conhecida por sua série de placas de vídeo GeForce 
 
Radeon 
É  a  marca  de  aceleradores  gráficos  3D  criada  pela  ATI  Technologies  em  2000  e  sucessora  da  sua  família  Rage. 
Podem  ser  separados  em  quatro  diferentes  grupos,  que  podem  ser  diferenciados  pela  versão  Direct3D  que 
implementam.  Distinções  mais  específicas  podem  ser  feitas  quanto  aos  recursos,  quantidade  de  memória,  e 
freqüência de processamento e memória. 
 
 
 
 
 
 
 
 
 
Sites consultados: 
http://www.hsw.uol.com.br/ 
http://www.guiadohardware.net 
http://pt.wikipedia.org 
http://www.geek.com.br 
http://www.infowester.com 
http://www.arm.com/products/processors/index.php 
 

15 
 

Você também pode gostar