Você está na página 1de 48

Secretaria de Estado da Educação 

Colégio Estadual de Pato Branco 
Ensino Fundamental, Médio e 
Profissionalizante

CURSO TÉCNICO EM INFORMÁTICA 

ARQUITETURA DE COMPUTADORES 

Prof. Esp. Marcelo G. Kühl 
“O temor ao Senhor é o princípio da Sabedoria...!” Pv 9,10 
ÍNDICE 

1. HISTÓRICO DOS COMPUTADORES ............................................................. 4 
1.1 A E VOLUÇÃO DO  C OMPUTADO R .......................................................................................................................4 
1.1.1 O Início da Era da Computação ................................................................................................................4 
1.1.2 Computadores de Primeira Geração (1937 a 1951) ...................................................................................6 
1.1.3 Computadores de Segunda Geração (1952 a 1960)....................................................................................7 
1.1.4 Computadores de Terceira Geração (1961 a 1972) ....................................................................................8 

2. DEFINIÇÕES BÁSICAS................................................................................... 12 
3. UNIDADE CENTRAL DE PROCESSAMENTO ............................................ 13 
DIFERENÇAS NA ARQUITETURA............................................................................................................................... 14 
CO­PROCESSADOR ARITMÉTICO .............................................................................................................................. 15 
3.1 COMO SÃO FABRICADOS OS PROCESSADORES ..................................................................................... 15 

4. BARRAMENTOS .............................................................................................. 22 


4.1 BARRAMENTO DE DADOS.......................................................................................................................... 22 
4.2 BARRAMENTO DE ENDEREÇOS ................................................................................................................ 22 
4.3 BARRAMENTO DE CONTROLE .................................................................................................................. 22 

5. MEMÓRIAS....................................................................................................... 23 
5.1 ­ HIERARQUIA DE MEMÓRIA .................................................................................................................. 23 
5.1.1 Registradores........................................................................................................................................... 23 
5.1.2 Memória Cache ....................................................................................................................................... 23 
51.3 Memórias Auxiliares ................................................................................................................................ 24 
5.1.4 Memória Principal .................................................................................................................................. 24 
5.1.4.1 Estrutura Da Memória Principal ­ Células E Endereços ...................................................................... 24 
Registrador....................................................................................................................................................... 25 
5.2 CLASSIFICAÇÃO DAS MEMÓRIAS.......................................................................................................... 26 
5.3 TECNOLOGIAS ........................................................................................................................................... 27 
5.4 FUNCIONAMENTO ..................................................................................................................................... 27 

6. DISPOSITIVOS DE ENTRADA E SAÍDA ...................................................... 29 


6.1 TIPOS DE DISPOSITIVOS ............................................................................................................................. 29 

7. PORTAS LÓGICAS BÁSICAS ........................................................................ 31 


7.1 INTRODUÇÃO  ................................................................................................................................................... 31 
7.2 A PORTA AND................................................................................................................................................. 31 
7.3 A PORTA OR.................................................................................................................................................... 33 
7.4 A PORTA XOR ................................................................................................................................................. 33 
7.5 A PORTA NOT ................................................................................................................................................. 34 
7.6 A PORTA NAND .............................................................................................................................................. 34 
7.7 A PORTA NOR ................................................................................................................................................. 34 
7.8 A PORTA XNOR .............................................................................................................................................. 35 
7.10 PORTAS LÓGICAS DISPONÍVEIS C OMERCIALMENTE .......................................................................................... 36 
7.11 INTERLIGAÇÃO DE PORTA S  LÓGICAS .............................................................................................................. 36 
7.12 E QUAÇÃO BOOLEANA DE FUNÇÕES LÓGICAS  .................................................................................................. 36 

8. PIPELINE .......................................................................................................... 38 


8.1 O M ARIO R O BSTÁCULO DO  P IPELINE  – O S P IPELINES H AZARDS .................................................................... 38 

9. ARQUITETURAS CISC X RISC ..................................................................... 39 


10. CICLOS DE INSTRUÇÃO ............................................................................. 40 
10.1. CONJUNTO DE INSTRUÇÕES ............................................................................................................................ 40 
10.1.1 CONJUNTO DE  INSTRUÇÕES NO CONTEXTO DE SOFTWARE ............................................................................. 40


11. LINGUAGEM DE MONTAGEM (ASSEMBLY).......................................... 42 
11.1 CONJUNTO DE INSTRUÇÕES EM UM MICROCOMPUTADOR ............................................................... 42 

ASSEMBLER......................................................................................................... 42 
ASSEMBLER......................................................................................................... 42 
12 MECANISMOS DE INTERRUPÇÃO ............................................................ 44 
13 ARQUITETURAS PARALELAS .................................................................... 47 
13.1 MULTIPROCESSADOR............................................................................................................................... 47 
13.1.1 CARACTERÍSTICAS .............................................................................................................................. 47 
13.1.2 ARQUITETURA....................................................................................................................................... 48 
13.2 MULTICOMPUTADOR ............................................................................................................................... 48


1. HISTÓRICO DOS COMPUTADORES 

1.1 A Evolução do Computador  

A  história  do  computador,  ao  contrário  do  que  muitos  podem  imaginar,  tem  seu  início  há  muito 
tempo  atrás,  desde  quando  o  homem  descobriu  que  somente  com  os  dedos,  ou  com  pedras  e 
gravetos, não dava mais para fazer cálculos... 

Aproximadamente 4.000 a.C. ­ Um aparelho muito simples formado por uma placa de argila onde 
se  escreviam  algarismos  que  auxiliavam  nos  cálculos.  Esse  aparelho  era  chamado  de  ÁBACO  ­ 
palavra de origem Fenícia. Cerca de 200 a.C., o Ábaco era constituído por uma moldura retangular 
de madeira com varetas paralelas e pedras deslizantes. 

1642  ­  Um  francês  de  18  anos  de  nome  Blaise  Pascal,  inventou  a  primeira  máquina  de  somar: 
PASCALINA,  a  qual  executava  operações  aritméticas  quando  se  giravam  os  discos  interligados, 
sendo assim a precursora das calculadoras mecânicas. 

1642 ­ Pascalina 

1671 ­ Por volta deste ano na Alemanha, Gottfried Leibnitz inventou uma máquina muito parecida 
com a Pascalina, que efetuava cálculos de multiplicação e divisão, e qual se tornou à antecessora 
direta das calculadoras manuais. 

1802 ­ Na França, Joseph Marie Jacquard passou a utilizar Cartões Perfurados para controlar suas 
máquinas de tear e automatizá­las. 

1822  ­  Foi  desenvolvido  por  um  cientista  inglês  chamado  Charles  Babbage  uma  máquina 
diferencial que permitia cálculos como funções trigonométricas e logaritmas, utilizando os cartões 
de Jacquard. 

1834 ­ Charles Babbage desenvolveu uma máquina analítica capaz de executar as quatro operações 
(somar, dividir, subtrair, multiplicar), armazenar dados em uma memória (de até 1.000 números de 
50 dígitos) e imprimir resultados. Porém, sua máquina só pode ser concluída anos após a sua morte, 
tornando­se  a  base  para  a  estrutura  dos  computadores  atuais,  fazendo  com  que  Charles  Babbage 
fosse considerado como o "Pai do Computador". 

1.1.1 O Início da Era da Computação 

No  ano  de  1890,  época  do  censo  dos  EUA,  Hermann  Hollerith  percebeu  que  só  conseguiria 
terminar  de  apurar  os  dados  do  censo  quando  já  seria  o  tempo  de  se  efetuar  novo  censo  (1900).


Então aperfeiçoou os cartões perfurados (aqueles utilizados por Jacquard) e inventou máquinas para 
manipulá­los, conseguindo com isso obter os resultados em tempo recorde, isto é, 3 anos depois. 

Tabulador de Hollerith – 1890. Tabulava estatísticas com Cartões Perfurados 

Em  função  dos  resultados  obtidos,  Hollerith,  em  1896,  fundou  uma  companhia  chamada  TMC  ­ 
Tabulation  Machine  Company,  vindo  esta  a  se  associar,  em  1914  com  duas  outras  pequenas 
empresas, formando a Computing Tabulation Recording Company vindo a se tornar, em 1924, a tão 
conhecida IBM ­ Internacional Business Machine. 

Em 1930, os cientistas começaram a progredir nas invenções de máquinas complexas, sendo que o 
Analisador Diferencial de Vannevar Bush anuncia a moderna era do computador. Em 1936, Allan 
Turing publica um artigo sobre "Números Computáveis" e Claude Shannon demonstra numa tese a 
conexão entre lógica simbólica e circuitos elétricos. Em 1937, George Stibitz constrói em sua mesa 
de cozinha um "Somador Binário". 
Com a chegada da Segunda Guerra Mundial houve a necessidade de se projetar máquinas capazes 
de executar cálculos balísticos com rapidez e precisão para serem utilizadas na indústria bélica. 

Com isso surgiu, em 1944, o primeiro computador eletromecânico (construído na Universidade de 
Harvard,  pela  equipe do  professor  H.  Aiken  e  com  a  ajuda  financeira  da  IBM,  que  investiu  US$ 
500.000,00 no projeto), possuía o nome de MARK I, era controlado por programa e usava o sistema 
decimal. Tinha cerca de 15 metros de comprimento e 2,5 metros de altura, era envolvido por uma 
caixa de vidro e de aço inoxidável brilhante e possuía as seguintes características: 
760.000 peças 
800 km de fios 
420 interruptores para controle 
Realizava uma soma em 0,3 s 
Realizava uma multiplicação em 0,4 s 
e uma divisão em cerca de 10 s 

Mark I ­ 1943 Com seus 420 interruptores que eram ajustados manualmente para que os valores fossem introduzidos

1.1.2 Computadores de Primeira Geração (1937 a 1951) 

1943 ­ Um projeto britânico, sob a liderança do matemático Alan Turing, colocou em operação uma 
série  de  máquinas  mais  ambiciosas,  o  COLOSSUS,  pois  ao  invés  de  relés  eletromecânicos,  cada 
nova  máquina  usava  2.000  válvulas  eletrônicas.  O  Colossus  trabalhava  com  símbolos  perfurados 
numa  argola  de  fita  de  papel,  que  era  inserida  na  máquina  de  leitura  fotoelétrica,  comparando  a 
mensagem  cifrada  com  os  códigos  conhecidos  até  encontrar  uma  coincidência.  Ele  processava 
25.000 caracteres por segundo. 

COLOSSUS – 1943 criado para quebrar códigos alemães ultra­secretos 

1945 ­ John von Neumann delineia os elementos críticos de um sistema de computador. 

1946 ­ Surgiu o ENIAC ­ Eletronic Numerical Interpreter and Calculator, ou seja,  "Computador e 
Integrador Numérico Eletrônico", projetado para fins militares, pelo Departamento de Material de 
Guerra do Exército dos EUA, na  Universidade de Pensilvânia. Era o primeiro computador digital 
eletrônico de grande escala e  foi projetado por John W. Mauchly  e J. Presper Eckert (que era um 
gênio em engenharia, pois quando tinha apenas 8 anos construiu um rádio a cristal e colocou­o num 
lápis). 
O ENIAC tinha as seguintes características: 

Totalmente eletrônico 
17.468 válvulas 
500.000 conexões de solda 
30 toneladas de peso 
180 m² de área construída 
5,5 m de altura 
25 m de comprimento 
2 vezes maior que MARK I 
realizava uma soma em 0,0002 s 
realizava uma multiplicação em 0,005 s com números de 10 dígitos


ENIAC – 1946 primeiro computador digital eletrônico de grande escala 

O  sucessor  do  ENIAC  foi  o  EDVAC  ­  Eletronic  Discrete  Variable  Computer  ou  "Computador 
Eletrônico de Variáveis Discretas". O EDVAC foi planejado para acelerar o trabalho armazenando 
tanto  programas  quanto  dados  em  sua  expansão  de  memória  interna.  Os  dados,  então,  eram 
armazenados  eletronicamente  num  meio  material  composto  de  um  tubo  cheio  de  mercúrio, 
conhecido como linha de retardo, onde os cristais dentro do tubo geravam pulsos eletrônicos que se 
refletiam  para  frente  e  para  trás,  tão  lentamente  quanto  podiam,  de  fato  a  reter  a  informação, 
semelhante a um desfiladeiro que retém um eco, que Eckert descobriu por acaso ao trabalhar com 
radar. Outra grande característica do EDVAC era poder codificar as informações em forma binária 
em vez da forma decimal, reduzindo bastante o número de válvulas. 

1947 ­ John Bardeen, William Shockley e Walter Brattain inventam o TRANSISTOR. 

1949  ­  Surge  o  EDSAC  ­  Eletronic  Delay  Storage  Automatic  Calculator  ou  "Calculadora 
Automática com Armazenamento por Retardo Eletrônico", o qual marcou o último grande passo na 
série de avanços decisivos inspirados pela guerra: Começou a "Era do Computador". 

1951 ­ Surge o primeiro computador comercial o LEO 

LEO ­ 1951 ­ primeiro computador comercial 

1.1.3 Computadores de Segunda Geração (1952 a 1960) 

1952  ­  A  Bell  Laboratories  inventou  o  Transistor  que  passou  a  ser  um  componente  básico  na 
construção de computadores e apresentava as seguintes vantagens:


­aquecimento mínimo 
­pequeno consumo de energia 
­mais confiável e veloz do que as válvulas 

Transistor 

No mesmo ano, John Mauchly e Presper Eckert abriram sua própria firma na Filadéfia e criaram o 
UNIVAC  ­  Universal  Automatic  Computer, ou  seja,  "Computador Automático  Universal",  o qual 
era destinado ao uso comercial. Era uma máquina eletrônica de programa armazenado que recebia 
instruções de uma fita magnética de alta  velocidade ao invés dos cartões perfurados. O UNIVAC 
foi utilizado para prever os resultados de uma eleição presidencial. 

Também em 1952, Grace Hopper transformou­se em uma pioneira no processamento de dados, pois 
criou o primeiro compilador e ajudou a desenvolver duas linguagens de programação que tornaram 
os computadores mais atrativos para comércio. 
Em 1953,  Jay  Forrester, do MIT,  construiu uma memória  magnética  menor  e bem  mais  rápida,  a 
qual  substituía  as  que  usavam  válvulas  eletrônicas.  Já  em  1954,  a  IBM  concluiu  o  primeiro 
computador produzido em série, o 650, que era de tamanho médio e enquanto isso, Gordon Teal, da 
Texas  Instruments,  descobre  um  meio  de  fabricar  transistores  de  cristais  isolados  de  silício  a  um 
custo baixo. 

1955 ­ Conclui­se o primeiro computador transistorizado, feito pela Bell Laboratories: o TRADIC, 
o qual possuía 800 transistores, sendo cada um em seu próprio recipiente. 

1.1.4 Computadores de Terceira Geração (1961 a 1972) 

De  1958  a  1959,  Robert  Noyce,  Jean  Hoerni,  Jack  Kilby  e  Kurt  Lehovec  participam  do 
desenvolvimento do CI ­ Circuito Integrado. Em 1960, a IBM lança o IBM/360, cuja série marcou 
uma  nova  tendência  na  construção  de  computadores  com  o  uso  de  CI,  ou  pastilhas,  que  ficaram 
conhecidas  como  Chips.  Esses  chips  incorporavam,  numa  única  peça  de  dimensões  reduzidas, 
várias dezenas de transistores já interligados, formando circuitos eletrônicos complexos. 

1961  ­  Steven  Hofstein descobriu o  transistor  de  efeito  de  campo, usado  nos  circuitos  integrados 
MOS. 

1965 ­ A Digital Equipment introduz o PDP­8, o primeiro minicomputador comercial e com preço 
competitivo.


Os  primeiros  computadores  com  circuito  integrado  foram  criados  pela  Burroughs,  em  1968,  e 
tinham o nome de B2500 e B3500. 

1968 ­ primeiro computador com circuito integrado 

1971  ­  Ted  Hoff,  planeja  o  microprocessador  Intel  4004, o qual  era  um  único  chip  com  todas as 
partes básicas de um processador central. Esse processador era a CPU de um computador de 4 bits. 
Já em1974, Ed Roberts, do MITS (Micro Instrumentation and Telemetry Systems) em Albuquerque 
­ Novo México, constrói um microcomputador chamado ALTAIR 8800 (o nome "Altair" se deve a 
uma  estrela, pois  consideravam  o  lançamento  da  máquina  um  "evento  estelar"),  cuja  máquina  foi 
construída com base no processador da Intel o 8080, que já era um descendente do processador Intel 
8008. O ALTAIR tornou­se o maior sucesso, marcando o início de uma indústria multibilionária, 
pois  Roberts  esperava  vender  uns  oitocentos  ALTAIR  por  ano  e  acabou  tendo  dificuldades  para 
satisfazer 4.000 pedidos. 

Intel 4004 ­ 1971  Intel 8080 ­ 1974  MOS Technology 6502 ­ 1975 

­primeiro microprocessador  ­tornou­se padrão para a indústria  ­bastante usado em 


­2.250 componentes  dos microcomputadores  computadores domésticos 
­soma 2 números de 4 bits  ­4.500 componentes  ­4.300 componentes 
em 11 milionésimos de  ­soma 2 números de 8 bits em 2,5  ­soma 2 números de 8 bits em 1 
segundo  milionésimos de segundo  milionésimos de segundo 

1975  ­  Os  estudantes  William  (Bill)  Gates  e  Paul  Allen  criam  o  primeiro  software  para 
microcomputador,  o  qual  era  uma  adaptação  do  BASIC  (Beginners  All­Purpose  Symbolic 
Instruction Code, ou "Código de Instruções Simbólicas para todos os Propósitos dos Principiantes") 
para  o  ALTAIR.  Anos  mais  tarde,  Gates  e  Allen  fundaram  a  Microsoft,  uma  das  mais  bem 
sucedidas companhias de software para microcomputadores. 

1977 ­ Surge no mercado de produção em série, três microcomputadores: o Apple II, o TRS­80 da 
Radio Shack e o PET da Commodore. Em 1979, é lançado pela Software Arts o "VisiCalc", o qual 
foi o primeiro programa comercial para microcomputadores. 

1.1.5 Computadores de Quarta Geração (1972 a 1984) 

Na  década  de  80,  foi  criado  o  IC  LSI  ­  Integratede  Circuit  Large  Scale  Integration,  ou  seja, 
"Circuito  Integrado  em  Larga  Escala  de  Integração",  onde  foram  desenvolvidas  técnicas  para  se 
aumentar cada vez mais o número de componentes no mesmo circuito integrado. Alguns tipos de IC 
LSI incorporavam até 300.000 componentes em uma única pastilha. 

Motorola 68000 ­ 1979  Hewlett­Packerd ­ SuperChip ­ 1981 

­um dos chips de 16 bits mais poderosos e versáteis  ­primeiro microprocessador de 32 bits 
­executa multiplicação com uma única operação em  ­seu projeto durou 18 meses 
vez de realizá­la pela repetição de adições  ­450.000 componentes 
­70.000 componentes  ­multiplica 2 números de 32 bits em 1,8


­multiplica 2 números de 16 bits em 3,3  milionésimos de segundo 
milionésimos de segundo 

1981 ­ A IBM resolve entrar no mercado de microcomputadores com o IBM­PC. 

IBM­PC ­ 1981 

MMX ­ Micro Doméstico ­ 1984 

1.1.6 Computadores de Quinta Geração (1984 a 1990) 

Os computadores de Quinta Geração têm como característica o uso de IC VLSI ­ Integrated Circuit 
Very  Large  Scale  Integration,  ou  seja,  "Circuitos  Integrados  em  uma  Escala  Muito  Maior  de 
Integração". 
Os  "chips"  vêm  diminuindo  tanto  de  tamanho,  fazendo  com  que  seja  possível  a  criação  de 
computadores  cada  vez  menores,  como  é  o  caso  da  microminiaturização  do  microprocessador  F­ 
100, que mede somente 0,6 cm quadrados e é pequeno o suficiente para passar pelo buraco de uma 
agulha!

10 
Microprocessador F­100 

1.1.7 Computadores de Sexta Geração (1990 ­ ??) 


Formado pelos  computadores  que utilizam  supercondutores  como  matéria­prima  para  seus 
processadores. Utilizando a supercondutividade esses processadores não perdem eletricidade para o 
calor devido a resistência ganhando performance e economizando energia. 
Estima­se que o ganho de performance  seria de aproximadamente 30 vezes a performance 
de  um  processador  de  mesma  freqüência  que  utilize  metais  comuns,  porém  atualmente  nenhum 
material  trabalha  em  condições  ambientes  comuns  como  supercondutor  impossibilitando  seu  uso 
comercial. 
Tecnologia 
Alta  velocidade  e  processamento  paralelo  combinado  com  processamento  vetorial. 
Crescimento e evolução das redes de computadores. 
Aplicações 
Comercial, na área da ciência e tecnologia e, principalmente, na educação.

11 
2. DEFINIÇÕES BÁSICAS 

Har dware: Tudo relacionado a parte física de um microcomputador. 

Softwar e:  São  instruções  ou  dados  de  computadores.  (programas).  Qualquer  coisa  que  pode  ser 
armazenada eletronicamente é um software. 
Software é dividido em duas categorias: 
•  Softwar es  de  sistema:  Inclui  o  sistema  operacional  e  todos  os  utilitários  que 
capacitam o funcionamento do computador. 
•  Softwar es  aplicativos:  inclui  programas  que  fazem  o  verdadeiro  serviço  para  o 
usuário. Ex.: Planilhas 

Bit: é  a  menor unidade de informação  armazenável  em  um  computador, o qual pode  ter  somente 


dois valores: 0 e 1. 

Byte:  um  grupo  ordenado  de  oito  bits,  tratados  de  forma  individual,  como  unidade  de 
armazenamento e transferência. 

Também usamos os termos Kbit, Megabit e Gigabit, para representar conjuntos de 1024 bits. 
Como um byte  corresponde  a 8 bits, um Megabyte  corresponde  a 8 Megabits  e  assim  por 
diante. 
1 Bit = 1 ou 0. 
1 Byte = Um conjunto de 8 bits. 
1 Kbyte = 1024 bytes ou 8192 bits. 
1 Megabyte = 1024 Kbytes, 1.048.576 bytes ou 8.388.608 bits. 
1  Gigabyte  =  1024  Megabytes,  1.048.576  Kbytes,  1.073.741.824  bytes  ou  8.589.934.592 
bits. 

Instr ução: Comando que define integralmente uma operação a ser executada. 

Programa: Conjunto de instruções ordenadas logicamente. 

... para que um programa possa ser  executado ele pr ecisa ser  constr uído de uma sér ie de 


instr uções de máquina.

12 
3. UNIDADE CENTRAL DE PROCESSAMENTO 

Unidade Central de Processamento ­ UCP (em inglês, Central Processing Unity ­ CPU) é a 
responsável pelo processamento e execução dos programas armazenados na Memória Principal. As 
funções da UCP são: executar as instruções e controlar as operações no computador. 
A UCP é composta de duas partes: 

ULA ­ Unidade Lógica e Aritmética ­ tem por função a efetiva execução das instruções. Só 
se  comunica  com  a  unidade de  controle,  serve  para  realizar  os  cálculos  de  tipo  aritmético  (soma, 
subtração, multiplicação, divisão, radiciação, etc.) e tipo lógico (comparações). 

UC ­ Unidade de Controle ­ tem por funções a busca, interpretação e controle de execução 
das instruções, e o controle dos demais componentes do computador. Analisa cada instrução de um 
programa, controla as informações na memória principal, ativa a seção aritmética e lógica, ativa os 
canais  de  entrada  ou  saída,  selecionando  os  dados  a  serem  transferidos  e  o  dispositivo  que  será 
empregado na transferência. 

Instr ução  Local de Execução. 


* Comece a aceitar entrada a partir da  * Unidade de controle. 
unidade de cds 2. 
* Se X é maior que Y, vá para o passo 46 do  * ULA (instrução lógica). 
programa. 
* Multiplique A por B e armazene o  * ULA (instrução aritmética).
resultado em C. 

13 
Gerador de Clock:  
É  responsável  pela  alimentação  do  sincronismo  do  sistema.  É  o  elemento  gerador  dos 
pulsos, cuja duração é chamada de ciclo. O número de vezes que esse pulso é gerado por segundo 
nos dá a medida da freqüência do clock. 

Decodificador  
Realiza a função de identificar a instrução que deve ser realizada, de acordo com o código 
da operação que foi decodificado. 

RI ­ Registrador de Instruções 
É responsável por armazenar a instrução a ser executada pela CPU, via barramento de dados 
e RDM. 

Contador de instrução (CI ­ Program Counter) 
Armazena o endereço da próxima instrução a ser executada. Tão logo este endereço seja lido 
pela CPU, um novo endereço (o da instrução seguinte) já é buscado e armazenado no CI. 

Registrador de endereço de memória (REM) 
Responsável por armazenar o endereço de memória do dado executado na UCP, através do 
barramento de endereços. 

Registrador  de dados da memória (RDM) 
Responsável por armazenar o dado retirado da memória, a ser processado na UCP, através 
do barramento de dados. 

Diferenças na arquitetura  
Diferenças  na  arquitetura  interna,  ou  seja,  no  projeto  do  processador  e  na  quantidade  de 
transistores  que  o  formam,  também  determinam  em  quais  operações  um  processador  será  mais 
rápido. Basicamente, um processador desempenha dois tipos de operações diferentes: as operações 
envolvendo números inteiros e operações de ponto flutuante (que envolvem números fracionários e
14 
operações aritméticas mais complexas). As operações envolvendo números inteiros são feitas pelo 
núcleo principal do processador, enquanto as envolvendo números fracionários são feitas pelo co­ 
processador aritmético. 
Programas  de  escritório  e  Internet,  como  o  Word,  Excel,  Power  Point,  Internet  Explorer, 
Netscape  e  o  próprio  Windows,  utilizam  quase  que  exclusivamente  o  processamento  de  números 
inteiros.  Por  outro  lado,  programas  que  manipulam  gráficos,  como  o  Auto  CAD,  Corel  Draw!, 
Photoshop, 3D Studio, e principalmente jogos que utilizam gráficos tridimensionais, como o Quake 
utilizam predominantemente cálculos de ponto flutuante. 
Alguns modelos de processadores saem­se melhor em inteiros (como os processadores K6, 
K6­2  e  K6­3  da  AMD  e  6x86  da  Cyrix),  enquanto  outros  são  melhores  em  cálculo  de  ponto 
flutuante  (como  o  Pentium  II  e  o  Celeron).  Ao  decidir  em  qual  processador  vai  investir  seu 
dinheiro, a aplicação à qual o micro se destina deve ser levada em consideração. 

Co­processador aritmético 
Todos os processadores da família x86, usada em micros PC, são basicamente processadores 
de números inteiros. Muitos aplicativos, porém, precisam utilizar números fracionários, assim como 
funções matemáticas complexas, como Seno, Coseno, Tangente, etc., para realizar suas tarefas. Este 
é o caso dos programas de CAD, planilhas, jogos com gráficos tridimensionais e de processamento 
de imagens em geral. É possível emular via software estas funções matemáticas complexas, através 
da combinação de várias instruções simples, porém com uma baixa performance. 
A  função  do  co­processador  aritmético  é  justamente  auxiliar  o  processador  principal  no 
cálculo  destas  funções  complexas.  Como  o  co­processador  possui  instruções  específicas  para 
executar este tipo de cálculo, ele é  em média de 30 a 50 vezes mais rápido do que o processador 
principal  executando  o  mesmo  tipo  de  cálculo  via  emulação,  sendo  um  componente  essencial 
atualmente. 
Até  o  386,  o  co­processador  era  apenas  um  acessório  que  podia  ser  comprado  à  parte  e 
instalado no soquete apropriado da placa mãe, sendo que cada modelo de processador possuía um 
modelo  equivalente  de  co­processador:  O  problema  nesta  estratégia  é  que  como  poucos  usuários 
equipavam  seus  micros  com  co­processadores  aritméticos,  a  produção  destes  chips  era  baixa,  e 
conseqüentemente  os  preços  eram  altíssimos,  chegando  ao  ponto  de  em  alguns  casos  o  co­ 
processador custar mais caro que o processador principal. Com o aumento do número de aplicativos 
que necessitavam do co­processador, sua incorporação ao processador principal a partir do 486 foi 
um  passo  natural.  Com  isso  resolveu­se  também  o  problema  do  custo  de  produção  dos  co­ 
processadores, barateando o conjunto. 

3.1 COMO SÃO FABRICADOS OS PROCESSADORES 
Até  mudarem  o  mundo  como  o  conhecemos,  os  chips  passaram  por  um  longo  processo 
evolutivo. Tudo começou com as válvulas, que evoluíram para os transistores, considerados a maior 
invenção do século. 

Os tr ansistor es 


O  primeiro  transistor  era  relativamente  grande,  mas  não  demorou  muito  para  que  este 
modelo inicial fosse aperfeiçoado. Durante a década de 50, o transistor foi gradualmente dominando 
a indústria, substituindo rapidamente as problemáticas válvulas. Os modelos foram diminuindo de 
tamanho, caindo de preço e tornando­se mais rápidos. Alguns transistores da época podiam operar a 
até  100  MHz.  Claro que  esta era  a  freqüência  que  podia  ser  alcançada  por um  transistor  sozinho, 
nos computadores da época. 
Mas,  o  grande  salto  foi  a  substituição  do  germânio  pelo  silício.  Isto  permitiu  miniaturizar 
ainda mais os transistores e baixar seu custo de produção. 
A idéia do uso do silício para construir transistores é que adicionando certas substâncias em

15 
pequenas  quantidades  é  possível  alterar  as  propriedades  elétricas  do  silício.  As  primeiras 
experiências usavam fósforo e boro, que transformavam o silício em condutor por cargas negativas 
ou  condutor  por  cargas  positivas,  dependendo  de  qual  dos  dois  materiais  fosse  usado.  Estas 
substâncias adicionadas ao silício são chamadas de impurezas, e o silício “contaminado” por elas é 
chamado de silício dopado. 
O  funcionamento  de  um  transistor  é  bastante  simples,  quase  elementar.  É  como  naquele 
velho ditado “as melhores invenções são as mais simples”. As válvulas eram muito mais complexas 
que os transistores e mesmo assim foram rapidamente substituídas por eles. 
Um  transistor  é  composto  basicamente  de  três  filamentos,  chamados  de  base,  emissor  e 
coletor. O emissor é o pólo positivo, o coletor o pólo negativo, enquanto a base é quem controla o 
estado do transistor, que como vimos, pode estar ligado ou desligado. A figura abaixo mostra como 
estes três componentes são agrupados num transistor moderno: 

Quando  o  transistor  está  desligado,  não  existe  carga  elétrica  na  base,  por  isso,  não  existe 
corrente elétrica entre o emissor e o coletor. Quando é aplicada uma certa tensão na base, o circuito 
é fechado e é estabelecida a corrente entre o emissor e o receptor. 
Outro  grande  salto  veio  quando  os  fabricantes  deram­se  conta  que  era  possível  construir 
vários transistores sobre o mesmo waffer de silício. Isso permitiu diminuir de forma gritante o custo 
e tamanho dos computadores. Havia surgido então o circuito integrado, vários transistores dentro do 
mesmo encapsulamento. Não demorou muito para surgirem os primeiros microchips. 
Cada  transistor  funciona  como  uma  espécie  de  interruptor,  que  pode  estar  ligado  ou 
desligado, como uma torneira que pode estar aberta ou fechada, ou mesmo como uma válvula.  A 
diferença é que o transistor não tem partes móveis como uma torneira e é muito menor, mais barato, 
mais durável e muito mais rápido que uma válvula. 
A mudança de estado de um transistor é feita através de uma corrente elétrica. Esta mudança 
de estado por sua vez pode comandar a mudança de estado de vários outros transistores ligados ao 
primeiro, permitindo processar dados. Num transistor esta mudança de estado pode ser feita bilhões 
de vezes por segundo, porém, a cada mudança de estado é gerada uma certa quantidade de calor e é 
consumida uma certa quantidade de eletricidade. É por isso que quanto mais rápidos tornam­se os 
processadores, mais eles se aquecem e mais energia consomem. 
Um  386, por exemplo,  consumia  pouco  mais  de 1  Watt de  energia  e podia  funcionar  sem 
nenhum  tipo  de  resfriamento.  Um  486DX­4  100  consumia  cerca  de  5  Watts  e  precisava  de  um 
cooler simples, enquanto Athlon chega a consumir 80 Watts de energia e precisa de no mínimo um 
bom  cooler  para  funcionar  bem.  Em  compensação  o  386  operava  a  30  ou  40  MHz  enquanto  o 
Athlon opera a até 1.5 GHz. 

Processador es 
O componente básico para qualquer chip é o waffer de silício que é obtido através da fusão 
do  silício  junto  com  alguns  produtos  químicos  que  permitirão  sua  dopagem  posteriormente. 
Inicialmente são produzidos cilindros, com de 20 a 30 centímetros de diâmetro, que posteriormente 
são cortados em fatias bastante finas.

16 
Waffer de silício 

Estas “fatias” por sua vez são polidas, obtendo os waffers de silício. A qualidade do waffer 
determinará o tipo de chip que poderá ser construído com base nele. Para construir um CI com meia 
dúzia de transistores, pode ser usado um waffer de baixa qualidade, que pode ser comprado a preço 
de  banana  de  milhares  de  companhias  diferentes.  Entretanto,  para  produzir  um  processador 
moderno, é preciso de um waffer de altíssima qualidade, que são extremamente caros, pois poucas 
companhias tem tecnologia para produzi­los. 
Cada  waffer  é  usado  para  produzir  vários  processadores,  que  no  final  da  produção  são 
separados e encapsulados individualmente. Não seria possível mostrar todos os processos usados na 
fabricação de um processador, mas para dar uma boa idéia de como eles são produzidos, pode­se 
mostrar passo a passo a construção de um único transistor. O mesmo projeto será repetido alguns 
milhões  de  vezes, formando um processador  funcional.  Tudo  começa  com o  waffer  de  silício  em 
seu estado original: 

A  primeira  etapa  do  processo  é  oxidar  a  parte  superior  do  waffer,  transformando­a  em 
dióxido de  silício.  Isto é obtido  expondo o  waffer  a  gases  corrosivos  e  altas  temperaturas.  A  fina 
camada  de  dióxido  de  silício  que  se  forma  é  que  será  usada  como  base  para  a  construção  do 
transistor.

Em  seguida  é  aplicada  uma  camada  bastante  fina  de  um  material  fotossensível  sobre  a 
camada de dióxido de silício. 
Usando  uma  máscara  especial,  é  jogada  luz  ultravioleta  apenas  em  algumas  áreas  da 
superfície. Esta máscara tem um padrão diferente para cada área do processador, de acordo com o 
desenho que se pretende obter. A técnica usada aqui é chamada de litografia óptica.

17 
A  camada  fotossensível  é  originalmente  sólida,  mas  ao  ser  atingida  pela  luz  ultravioleta 
transforma­se numa substância gelatinosa, que pode ser facilmente removida. 
Depois  de  remover  as  partes  moles  da  camada  fotossensível,  temos  algumas  áreas  do 
dióxido de silício expostas, e outras que continuam cobertas pelo que restou da camada: 

O waffer é banhado com um produto especial que remove as partes do dióxido de silício que 
não estão protegidas pela camada fotossensível. O restante continua intacto. Finalmente, é removida 
a parte que restou da camada fotossensível. Note que como temos substâncias diferentes é possível 
remover uma camada de cada vez, ora o dióxido de silício, ora a própria camada fotossensível. Com 
isto é possível “desenhar” as estruturas necessárias para formar os transistores. Temos aqui pronta a 
primeira  camada.  Cada  transistor  é  formado  para  várias  camadas,  dependendo  do  projeto  do 
processador.  Neste  exemplo,  temos  um  transistor  simples,  de  apenas  quatro  camadas,  mas  os 
processadores atuais utilizam um numero muito maior de camadas, mais de vinte em alguns casos, 
dependendo da densidade que o fabricante pretende alcançar. 

Começa  então  a  construção da  segunda  camada  do  transistor.  Inicialmente  o  waffer  passa 
novamente pelo processo de oxidação inicial, sendo coberto por uma nova camada (desta vez bem 
mais fina) de dióxido de silício. Note que apesar da nova camada de dióxido, o desenho conseguido 
anteriormente é mantido. 
Em  seguida  é  aplicada  sobre  a  estrutura  uma  camada  de  cristal  de  silício.  Sobre  esta  é 
aplicada uma nova camada de material fotossensível. 

Novamente,  o  waffer  passa  pelo  processo  de  litografia,  desta  vez  utilizando  uma  máscara 
diferente.
18 
Novamente,  a  parte  da  camada  fotossensível  que  foi  exposta  à  luz  é  removida,  deixando 
expostas partes das camadas de cristal de silício e dióxido de silício, que são removidas em seguida. 

Como  na  etapa  anterior, o que  restou da  camada  fotossensível  é  removida.  Terminamos  a 


construção da segunda camada do transistor. 

Chegamos  a  uma  das  principais  etapas  do  processo  de  fabricação,  que  é  a  aplicação  das 
impurezas,  que  transformarão partes do  waffer  de  silício num  material  condutor.  Estas  impurezas 
também são chamadas de íons. Note que os íons aderem apenas à camada de silício que foi exposta 
no processo anterior e não nas camadas de dióxido de silício ou na camada de cristal de silício. 

É adicionada então uma terceira camada, composta de um tipo diferente de cristal de silício 
e novamente é aplicada a camada fotossensível sobre tudo. 

O waffer passa  novamente pelo processo de litografia, usando mais uma vez uma máscara 
diferente.
19 
As  partes,  do  material  fotossensível,  expostas  à  luz  são  removidas,  expondo  partes  das 
camadas inferiores, que são removidas em seguida. 

Temos agora pronta a terceira camada do transistor. Veja que a estrutura do transistor já está 
quase pronta, faltando apenas os três filamentos condutores. 

Uma  finíssima  camada  de  metal  é  aplicada  sobre  a  estrutura  anterior.  Nos  processadores 
atuais,  que  são  produzidos  através  de  uma  técnica  de  produção  de  0.13  mícron,  esta  camada 
metálica tem o equivalente a apenas 6 átomos de espessura. 

O processo de aplicação da camada fotossensível, de litografia e de remoção das camadas é 
aplicado  mais  uma  vez,  com  o  objetivo  de  remover  as  partes  indesejadas  da  camada  de  metal. 
Finalmente temos o transistor pronto.

20 
Cada  processador  é  constituído  por  vários  milhões  de  transistores.  Um  Pentium  II  possui 
pouco  mais  de  9  milhões  de  transistores.  Um  Pentium  III  Coppermine  já  possui  22  milhões.  Um 
Athlon Thunderbird possui 35 milhões de transistores, enquanto um Pentium 4 possui incríveis 42 
milhões.  Graças  ao  nível  de  miniaturização que  temos  atualmente, estas  quantidades  fabulosas  de 
transistores ocupam uma área muito pequena. Um Athlon Thunderbird, por exemplo, mede apenas 
112  milímetros quadrados.  Com  isto, um único  waffer  de  silício  é  suficiente  para produzir  vários 
processadores, que são separados no final do processo de fabricação. 

Finalmente, os processadores são encapsulados numa estrutura de silício, que os protege  e 
facilita  o  manuseio  e  instalação.  O  formato  do  encapsulamento  varia  de  processador  para 
processador.

21 
4. BARRAMENTOS 

O termo barramento (bus) refere­se aos percursos entres os componentes de um computador. 
O  Barramento  Local  (ou  Local  Bus)  é o barramento  mais  importante  do  computador, pois 
estabelece a comunicação entre o processador (CPU) e as memórias SRAM e DRAM. 
Podemos dividi­lo em 3 grupos:
·  barramento de dados;
·  barramento de endereços;
·  barramento de controle. 

4.1 BARRAMENTO DE DADOS 

n  Transporte de Dados; 
n  São os mais conhecidos; 
n  Linhas paralelas de conexão elétrica; 
n  Número de linhas é igual ao número de bits transportados; 
n  Quanto maior o número de linhas maior a quantidade de dados (1linha = 1bit); 
n  Número de linhas afeta a velocidade de transferência de dados. 

4.2 BARRAMENTO DE ENDEREÇOS 

n  O barramento de endereços transporta apenas endereços de memória; 
n  O seu número de linhas determina o número máximo de endereços de memória; 
n  Os primeiros PCs tinham um barramento de endereços de 20 bits e a CPU podia endereçar 1 
MB de dados; 
n  Hoje, com barramentos de endereços de 32 bits, é possível endereçar 4 GB de memória. 

4.3 BARRAMENTO DE CONTROLE 

Responsável  pela  transferência  de  sinais  como  READ  e  WRITE,  de  início  de  operação 
aritmética,  de  interrupção,  de  sincronização,  de  reset,  entre  outros.

22 
5. MEMÓRIAS 

Local capaz de armazenar: 
Programas; 
Dados iniciais, intermediários e finais. 
Pode­se fazer uma analogia da memória com um armário para guardar documentos: 
O armário seria a memória; 
Cada  gaveta  possuiria  uma  etiqueta  com  número  de  identificação  que  seria  seu 
endereço. 
Dentro da gaveta estaria guardado um objeto (dado com até 1Byte). 
O  computador  não  mantém  toda  a  informação  na  CPU,  ela  armazena  muitas  coisas  na 
memória e seleciona o que precisa a cada momento. 

5.1 ­ HIERARQUIA DE MEMÓRIA 

5.1.1 Registradores 
Registradores  são  dispositivos  de  armazenamento  temporário,  localizados  na  CPU, 
extremamente rápidos, com capacidade para apenas um dado (uma palavra). 
Está localizado no chip. 
Função:  armazenar  temporariamente  dados  intermediários  durante  um  processamento.  Por 
exemplo, quando um dado resultado de operação precisa ser armazenado até que o resultado de uma 
busca da memória esteja disponível para com ele realizar uma nova operação. 
Custo muito elevado. 
Registradores  são  VOLÁTEIS,  isto  é,  dependem  de  estar  energizados  para  manter 
armazenado seu conteúdo. 

5.1.2 Memór ia Cache 
Memória de acesso rápido, porém mais lento do que o registrador. 
Tempo  de  acesso  de  aproximadamente  5  ns.  A  ar quitetura  da  memór ia  cache  é 
difer ente da Memória Principal. 
Custo maior do que a Memória Principal e menor do que o registrador. 
Função:  Acesso  rápido  à memória, mas  com um custo  mais baixo.  Memória  intermediária 
entre o registrador e a Memória Principal. 
Fica localizada ou no “chip” ou na placa mãe. 
A  memória  cache  opera  em  função  de  um princípio  estatístico  comprovado:  em  geral,  os 
programas  tendem  a  referenciar  várias  vezes  pequenos  trechos  de  programas,  como  loops,  sub­ 
rotinas,  funções.  Desta  forma,  algoritmos  (chamados  algoritmos  de  cache)  podem  controlar  qual 
parte do código ficará copiado na cache, a cada momento. Com isso a CPU pode ter acesso a dados 
mais rapidamente do que quando a informação se encontra na MP. 
Esta transferência (Memória Principal <­­> Cache) é feita pelo hardware que independe do 
software, que ignora se existe ou não memória cache. 

Nem o programador nem o sistema operacional têm que se preocupar com a cache. 
Wait States – tempo que a CPU fica esperando para se buscar um dado na memória. 
Cache Hit – o processador busca um determinado trecho de código e o encontra na cache. O 
índice da cache hit ou taxa de acerto do cache é em torno de 90%. 
Cache Miss ou Cache Fault – quando o dado não estiver presente na cache será necessário 
requisitar o mesmo à MP. Causa atraso no processamento. 
Memórias  cache  também  são  VOLÁTEIS,  isto  é,  dependem  de  estar  energizadas  para 
manter gravado seu conteúdo.

23 
Microprocessador  Cache interno  Cache externo* 
80386 DX  não possui  8, 16, 32, 64 ou 128 KB 
80486 SLC/DLC  1 KB  128 ou 256KB 
80486 DX/DX2/SX  8 KB  128 ou 256 KB 
80486 DX4  8 ou 16 KB  128 ou 256 KB 
Pentium  16 KB  256 ou 512 KB 
80586  16 KB  128, 256 ou 512 KB 
Pentium II  32 KB  128, 256 ou 512 KB 

51.3 Memór ias Auxiliar es 


Memórias  auxiliares  resolvem  problemas  de  armazenamento  de  grandes  quantidades  de 
informações. 
As  memórias  auxiliares  têm  maior  capacidade  e  menor  custo,  portanto  o  custo  por  bit 
armazenado é muito menor. 
Acesso mais lento do que a Memória Principal e a cache e o registrador. 
Memórias  auxiliares  não  são  VOLÁTEIS, isto  é,  não  dependem de  estar  energizadas  para 
manter gravado seu conteúdo. 
Os  principais  dispositivos  de  memória  auxiliar  são:  discos  rígidos  (ou  HD),  drives  de 
disquete, unidades de fita, CD­ROM, DVD, unidades ótico­magnéticas, etc. 

5.1.4 Memór ia Pr incipal 


Memória Principal é a parte do computador onde programas e dados são armazenados para 
processamento. A informação permanece na memória principal apenas enquanto for necessário para 
seu emprego pela CPU. 
Quem controla a utilização da memória principal é o Sistema Operacional. 
Custo mais baixo do que o Registrador e o cache, mas maior do que a memória auxiliar. 
Localizada na placa mãe. 

5.1.4.1 Estr utura Da Memór ia Pr incipal ­ Células E Ender eços 


A  memória  precisa  ter  uma  organização  que  permita  ao  computador  guardar  e  recuperar 
informações  quando  necessário.  É  preciso  ter  como  encontrar  essa  informação  quando  ela  for 
necessária  e  para  isso  existe  um  mecanismo  que  registra  exatamente  onde  a  informação  foi 
armazenada. 

Célula 
É  a  unidade  de  armazenamento  do  computador.  A  memória  principal  é  organizada  em 
células. 
Célula é a menor unidade da memória que pode ser endereçada e tem um tamanho fixo (para 
cada máquina). 
As memórias são compostas de um determinado número de células ou posições. 
Cada célula é composta de um determinado número de bits. 
Todas as células de um dado computador têm o mesmo tamanho. 
Cada célula é  identificada por um endereço único, pela qual é referenciada pelo sistema  e 
pelos programas. 
As  células  são  numeradas  seqüencialmente  de  0  a  (N­1),  chamado  o  ender eço da  célula. 
(endereço de memória). 
Unidade  de  transferência  ­  é  a  quantidade  de  bits  que  é  transferida  da  memória  em  uma 
única operação de leitura ou escrita.

24 
Palavr a ­ é a unidade de processamento da CPU. Uma palavra deve representar um dado ou 
uma instrução, que poderia ser processada, armazenada ou transferida em uma única operação. 
Em geral, o termo "célula" é usado para definir a unidade de armazenamento (o tamanho de 
células de memória) e o termo "palavra" para definir a unidade de transferência e processamento. 
Não confundir: célula  não é sinônimo de palavra, embora em algumas máquinas a palavra 
seja igual à célula. 
A  palavra  de um computador  pode  ter 1  byte  (p.ex,  8080),  2 bytes  (p.ex.  80286), 4  bytes 
(p.ex. 486, o Pentium, e muitos mainframes IBM) e mesmo 8 bytes (p.ex. o Alpha da DEC). 
Células de memória muitas vezes tem o tamanho de 1 ou 2 bytes ­ de 8 a 16 bits. 
A estrutura da memória principal é um problema do projeto de hardware: 

Número de bits para r epresentar  um ender eço 


Expressão geral: MP com endereços de 0 a (N­1) 

5.1.4.2 Tempo De Acesso 
Tempo  de  acesso  (ou  tempo  de  acesso  para  leitura)  é  o  tempo  decorrido  entre  uma 
requisição de leitura de uma posição de memória e o instante em que a informação requerida está 
disponível  para  utilização  pela  CPU.  Ou  seja,  o  tempo  que  a  memória  consome  para  colocar  o 
conteúdo de uma célula no barramento de dados. O tempo de acesso de uma memória depende da 
tecnologia da memória. As memórias DRAM (Dynamic RAM  ­ as mais comuns  hoje) têm tempo 
de acesso na faixa de 60 ns. 
Tempo  de  ciclo  (ou  ciclo  de  memória)  é  conceituado  como  o  tempo  decorrido  entre  dois 
ciclos  sucessivos  de  acesso  à  memória.  As  memórias  dinâmicas  perdem  seu  conteúdo  em  alguns 
instantes  e  dependem  de  ser  periodicamente  atualizadas  (ciclo  de "refresh").  No  caso das  SRAM 
(Static RAM ou memórias estáticas), que não dependem de "refresh", o tempo de ciclo é igual ao 
tempo de  acesso.  As  memórias  dinâmicas,  no  entanto,  requerem  ciclos  periódicos  de  "refresh", o 
que  faz  com  que  a  memória  fique  indisponível  para  novas  transferências,  a  intervalos  regulares 
necessários  para os  ciclos  de  "refresh".  Assim,  as  memórias  DRAM  têm  ciclo  de  memória  maior 
que o tempo de acesso. 
O tempo de acesso de qualquer memória tipo RAM (Random Access Memory ou memória 
de acesso aleatório) é independente do endereço a ser acessado (a posição de memória a ser escrita 
ou lida), isso é, o tempo de acesso é o mesmo qualquer que seja o endereço acessado. 

Tabela comparativa de memórias: 

Tipo  Capacidade  Velocidade  Custo  Localização Volatilidade 


Registrador  Bytes  muito alta  muito alto  CPU  Volátil 
Memória Cache  Kbytes  alta  alto  CPU/placa  Volátil 
Memória Principal  Mbytes  média  médio  Placa  Volátil 
Memória Auxiliar  Gbytes  baixa  baixo  Externa  Não Volátil
25 
A CPU  vê  nesta ordem e acessa primeiro a que está mais próxima. Subindo na hierarquia, 
quanto  mais  próximo  da  CPU,  maior  velocidade,  maior  custo,  porém  menor  capacidade  de 
armazenamento. 

5.2 CLASSIFICAÇÃO DAS MEMÓRIAS 
Quanto à leitura e escrita, as memórias podem ser classificadas como: 

R/W ­ Read and Write (memória de leitura e escrita), comumente (e impropriamente) chamada de 
RAM (Random Access Memory ou memória de acesso aleatório), embora não seja a única RAM. 
Esta  memória  permite  operações  de  escrita  e  leitura  pelo  usuário  e  pelos  programas.  Seu 
tempo  de  acesso  é  da  ordem  de  70ns  e  independe  do  endereço  acessado.  É  construída  com 
tecnologia de semicondutores (bipolar, CCD), pode ser estática (SRAM) ou dinâmica (DRAM) e é 
volátil. A MP é construída com memória R/W. 

RAM ­ Random Acess Memory ou Memória de Acesso Randômico ou Aleatório, memória volátil 
ou de  rascunho, pois  seu  conteúdo  se perde quando  cessa  a  energia,  e  sua  maior parte  serve  para 
armazenar informações do usuário. 

ROM ­ Read Only Memory ou memória apenas de leitura. 
Esta  memória  permite  apenas  a  leitura  e  uma  vez  gravada  não  pode  mais  ser  alterada. 
Também  é  de  acesso  aleatório  (isto  é,  é  também  uma  RAM),  mas  não  é  volátil.  É  utilizada 
geralmente  por  fabricantes  para gravar  programas  que  não  se  deseja  permitir  que o usuário possa 
alterar  ou  apagar  acidentalmente  (tal  como  por  ex..a  BIOS  ­  Basic  Input  Output  System  e 
microprogramas  de  memórias  de  controle).  Quando  se  liga  uma  máquina,  é  da  ROM que  vem  os 
programas  que  são  carregados  e  processados  no  "boot"  (na  inicialização  o  hardware  aponta 
automaticamente  para  o  primeiro  endereço  da  ROM).  Desta  forma,  parte  do  espaço  de 
endereçamento da MP é ocupado por ROM. A ROM é mais lenta que a R/W e é barata, porém o 
processo  produtivo  depende  de  ser  programada  por  máscara  ("mask  programmed")  em  fábrica  e 
devido ao alto custo da máscara somente se torna econômica em grandes quantidades. 

Obs.:  Boot (ou  bootstrap  loader ) é o processo de inicialização e carga dos programas básicos de 


um  computador,  automática,  sem  intervenção  externa.  Este  termo  vem  de  uma  analogia  com  um 
processo (impossível) que seria uma pessoa se levantar puxando­se pelos cordões de suas próprias 
botas. 

PROM ­ Programmable Read Only Memory ou memória apenas de leitura, programável. 
Esta  memória  é  uma  ROM  programável  (em  condições  e  com  máquinas  adequadas, 
chamadas queimadores de PROM) e geralmente  é comprada "virgem" (sem  nada  gravado), sendo 
muito  utilizada  no  processo  de  testar  programas  no  lugar  da  ROM,  ou  sempre  que  se  queira 
produzir ROM em quantidades pequenas. Uma vez programada (em fábrica ou não), não pode mais 
ser alterada. 

EPROM ­ Erasable Programmable Read Only Memory ou memória apenas de leitura, programável 
(com queimadores de PROM) e apagável (com máquinas adequadas, à base de raios ultra­violeta). 
Esta memória é uma PROM apagável. Tem utilização semelhante  à da PROM, para testar 
programas  no  lugar  da  ROM, ou  sempre que  se  queira  produzir  ROM  em  quantidades  pequenas, 
com a vantagem de poder ser apagada e reutilizada. 

EEPROM  (ou E2PROM) ­ Electrically Erasable  Programmable Read Only Memory ou memória 


apenas  de  leitura,  programável  e  eletronicamente  alterável.  Também  chamada  EAROM 
(Electrically Alterable ROM).

26 
Esta memória é uma EPROM apagável por processo eletrônico, sob controle da CPU, com 
equipamento  e  programas  adequados.  É  mais  cara  e  é  geralmente  utilizada  em  dispositivos  aos 
quais  se  deseja  permitir  a  alteração,  via  modem,  possibilitando  a  carga  de  novas  versões  de 
programas à distância ou então para possibilitar a reprogramação dinâmica de funções específicas 
de um determinado programa, geralmente relativas ao hardware (p.ex., a reconfiguração de teclado 
ou de modem, programação de um terminal, etc). 

5.3 TECNOLOGIAS 

FPM  (Fast  Page  Mode):  um  dos  primeiros  padrões  de  memória.  Padrão  utilizado  por  módulos 
SIMM 30 e algumas SIMM 72, em processadores 80286, 80386 e 80486. Geralmente possui 70 ns 
de acesso. 

EDO (Extended Data Out): um padrão mais rápido do que o FPM, utilizado por alguns módulos 
SIMM 72 e DIMM 168, em processadores Pentium. Geralmente possui 60 ns de acesso. 

DRAM  (Dynamic  RAM):  é  a  memória  mais  conhecida  no  computador.  Muitas  vezes,  quando 
dizemos que o nosso computador tem 16 ou 32 MB de memória ou de RAM, na verdade estamos 
nos  referindo  à  DRAM.  A DRAM  é  uma  memória  relativamente rápida  e  que  tem  o  objetivo  de 
armazenar o maior volume de dados na troca dinâmica CPU­Memória. 

SRAM  (Static  RAM):  é  uma  memória  bem  mais  rápida  do  que  a  DRAM.  Na  verdade,  ela  está 
antes  da  DRAM,  no  caminho  CPU­Memória,  com  o  objetivo  de  absorver  rapidamente  as 
informações  fornecidas  pela  CPU  e  transferi­las  para  a  DRAM.  Isso  faz  com  que  a  CPU  fique 
"livre" mais rapidamente. Tal memória localiza­se na placa mãe (cache externo). Os processadores 
486, 586 e Pentium possuem uma pequena quantidade de memória cache internamente, dentro do 
próprio  chip.  Isso  aumenta  mais  ainda  a  velocidade  de  troca  de  informações.  Abaixo  vemos  um 
quadro que mostra a quantidade de memória SRAM que cada tipo de sistema possui: 

5.4 F UNCIONAMENTO 
A Memória Principal pode ser acessada através de duas operações: 

ACESSO Tipo LER ou ESCREVER 

a) Leitura: Ler  Da Memória 
Significa requisitar à Memória Principal o conteúdo de uma determinada célula (recuperar 
uma informação). Esta operação de recuperação da informação armazenada na Memória Principal 
consiste na transferência de um conjunto de bits (cópia) da Memória Principal para a CPU e é não 
destr utiva, isto é, o conteúdo da célula não é alterado. 

SENTIDO: da MP para a CPU 

Passos executados pelo hardware:  
a.1) a CPU armazena no REM o endereço onde a informação requerida está armazenada; 
a.2) a CPU comanda uma leitura; 
a.3) o conteúdo da posição identificada pelo endereço contido no REM é transferido para o 
RDM e fica disponível para a CPU. 

b) Escr ita: Escrever  Na Memór ia

27 
Significa escrever uma informação em uma célula da MP (armazenar uma informação). Esta 
operação de armazenamento da informação na MP consiste na transferência de um conjunto de bits 
da  CPU  para  a  MP  e  é  destr utiva  (isto  significa  que  qualquer  informação  que  estiver  gravada 
naquela célula será sobregravada). 

SENTIDO: da CPU para a MP  

Passos executados pelo hardware:  
b.1)  a  CPU  armazena  no  REM  o  endereço de  memória  da  informação  a  ser  gravada e  no 
RDM a própria informação; 
b.2) a CPU comanda uma operação de escrita; 
b.3)  a  informação  armazenada  no  RDM  é  transferida  para  a  posição  de  memória  cujo 
endereço está contido no REM.

28 
6. Dispositivos de Entr ada e Saída 

O  usuário  se  comunica  com  o  núcleo  do  computador  (composto  por  UCP  e  memória 
principal) através de dispositivos de entrada e saída (dispositivos de E/S ou I/O devices). Os tópicos 
a  seguir  vão  analisar  como  funcionam  os  dispositivos  de  entrada  e  saída  e  como  se  faz  a 
comunicação entre eles e o núcleo do computador. 
Os dispositivos de entrada e saída tem como funções básicas:
·  a comunicação do usuário com o computador
·  a  comunicação  do  computador  com  o  meio  ambiente  (dispositivos  externos  a  serem 
monitorados ou controlados)
·  armazenamento (gravação) de dados. 
As  características  que  regem  a  comunicação  de  cada  um  dos  dispositivos  de  E/S  (entrada  e 
saída) com o núcleo do computador (composto de UCP e memória principal) são muito diferentes 
entre si. Cada dispositivo de E/S se comunica com o núcleo de forma diversa do outro. Entre outras 
diferenças, os dispositivos de entrada e saída são muito mais lentos que o computador, característica 
essa que impõe restrições à comunicação, de vez que o computador precisaria esperar muito tempo 
pela resposta do dispositivo. Outra diferença fundamental diz respeito às características das ligações 
dos sinais dos dispositivos. 
Os  primeiros  computadores,  especialmente  os  de  pequeno  porte,  eram  muito  lentos  e  os 
problemas  de  diferença  de  velocidade  eram  resolvidos  sem  dificuldade  e  não  representavam 
problema importante. Dessa forma, a ligação dos dispositivos de E/S era feita através de circuitos 
simples  (as  interfaces)  que  apenas  resolviam  os  aspectos  de  compatibilização  de  sinais  elétricos 
entre  os  dispositivos  de  E/S  e  a  UCP.  Os  aspectos  relativos  a  diferenças  de  velocidade 
(especialmente tempo de acesso) eram resolvidos via software. 
Entre esses componentes, trafegam informações relativas a dados, endereços e controle. 

6.1 TIPOS DE DISPOSITIVOS 
Os  dispositivos  de  ENTRADA  são:  teclado,  mouses,  scanners,  leitoras  óticas,  leitoras  de 
cartões magnéticos, câmeras de vídeo, microfones, sensores, transdutores, etc. 
As  funções  desses  dispositivos  são  coletar  informações  e  introduzir  as  informações  na  máquina, 
converter  informações  do  homem  para  a  máquina  e  vice­versa,  e  recuperar  informações  dos 
dispositivos de armazenamento. 
Os dispositivos de SAÍDA são: impressoras, monitores de vídeo, plotters, atuadores, chaves, 
etc. As funções desses dispositivos são exibir ou imprimir os resultados do processamento, ou ainda 
controlar dispositivos externos. 

A UCP não se comunica diretamente com cada dispositivo de E/S e sim com "interfaces", de 
forma  a  compatibilizar  as  diferentes  características.  O  processo  de  comunicação  ("protocolo")  é 
feito  através  de  transferência  de  informações  de  controle,  endereços  e  dados  propriamente  ditos. 
Inicialmente, a UCP interroga o dispositivo, enviando o endereço do dispositivo e um sinal dizendo

29 
se  quer  mandar  ou  receber  dados  através  da  interface.  O  periférico,  reconhecendo  seu  endereço, 
responde quando está pronto para receber (ou enviar) os dados. A UCP então transfere (ou recebe) 
os dados através da interface, e o dispositivo responde confirmando que recebeu (ou transferiu) os 
dados  (acknowledge ou  ACK) ou que não recebeu os dados,  neste  caso  solicitando  retransmissão 
(not­acknowledge ou NAK). 
A  compatibilização  de  velocidades  é  feita  geralmente  por  programa,  usando  memórias 
temporárias  na  interface  chamadas  “buffers”  que  armazenam  as  informações  conforme  vão 
chegando a UCP e as libera para o dispositivo à medida que este as pode receber.

30 
7. Por tas Lógicas Básicas 

7.1 Introdução 

Em qualquer  sistema  digital¹  a  unidade  básica  construtiva  é  o  elemento denominado  Porta 


Lógica. Este capítulo descreve as portas lógicas usuais, seu uso e funcionalidade. 
Portas  lógicas  são  encontradas  desde  o  nível  de  integração  em  larga  escala  (circuitos 
integrados de processadores pentium, por exemplo) até o nível de  integração existente em circuitos 
integrados digitais mais simples (famílias de  circuitos integrados TTL e CMOS por exemplo). 
As  portas  lógicas  são  os  componentes  básicos  da  eletrônica  digital.  Elas  são  usadas  para 
criar  circuitos  digitais  e  até  mesmo  circuitos  integrados  complexos.  Por  exemplo,  circuitos 
integrados  complexos  podem  ser  um  circuito  digital  completo  pronto  para  serem  usados  – 
processadores e microcontroladores são os melhores exemplos – mas, internamente estes circuitos 
integrados foram projetados usando várias portas lógicas. 
Na eletrônica digital apenas dois números são permitidos, “0” e “1”. Zero representa tensão 
de 0 V, enquanto que “1” representa uma tensão de 5 V ou de 3,3 V, no caso de circuitos integrados 
mais novos. Você pode pensar nos números “0” e “1” como uma lâmpada sendo acesa ou apagada 
quando você liga ou desliga o seu interruptor. 
Passamos  a  descrever,  então,  o  conjunto  básico  de  portas  lógicas  utilizadas  em  Eletrônica 
Digital bem como a forma em que são comercialmente disponíveis. 

7.2 A Porta AND 

Figura 1: Símbolo gráfico de uma porta lógica AND de 2 entradas ( A e B ). 

Figura 2: Diagrama de pinos de um circuito integrado (CI) disponível comercialmente (TTL – 
7408), contendo 4 po 1 rtas AND. Para a família de Cis TTL, a alimentação é + Vcc = 5V . 

A  B  Y 
0  0  0 
0  1  0 
1  0  0 
1  1  1 

Tabela 1: Tabela verdade de uma porta lógica AND de 2 entradas. 

Observações: 
(I)  Em  lógica  digital  o  valor  lógico  0  significa  FALSO  (F)  e  normalmente  é 
representado por um nível de tensão 0 V , isto é, um nível baixo de  tensão – LOW (L). 
(II)  O valor lógico 1 significa VERDADEIRO (V) e normalmente é representado por um 
nível de tensão + Vcc , isto é, um nível alto de tensão – HIGH (H). 

  Assim, no contexto das obser vações (I) e (II) é possível concluir  que a tabela ver dade 


de uma por ta AND de 2 entradas (Tabela 1) pode ter  as seguintes r epr esentações alter nativas: 
A  B  Y 

1  Por  exemplo,  o  sistema  digital  que  controla  as  ações  a  serem  executadas  por  motores  e  acionadores  de  um 
conjunto de elevadores, o controlador de um processo industrial, o microprocessador de um computador, etc...

31 
F  F  F 
F  V  F 
V  F  F 
V  V  V 
Tabela 2: Representação alternativa da tabela verdade de uma porta lógica AND de 2 entradas. 

A  B  Y 
0V  0V  0V 
0V  +Vcc  0V 
+Vcc  0V  0V 
+Vcc  +Vcc  +Vcc 
Tabela 3: Representação alternativa da tabela verdade de uma porta lógica AND de 2 entradas 
assumindo que o valor de tensão + Vcc represente VERDADEIRO (V) e que o valor de tensão 0 V 
represente FALSO (F). 

A  B  Y 
L  L  L 
L  H  L 
H  L  L 
H  H  H 
Tabela 4: Representação alternativa da tabela verdade de uma porta lógica AND de 2 entradas. 

  Supondo  que  sejam  aplicados  dois  trens  de  pulsos  r etangular es  de  tensão  nas 
entr adas A e B de uma porta lógica, o gráfico no tempo do sinal obtido na saída Y denomina­ 
se  Diagrama 
de Tempo:  

Figura 3: 
Exemplo do diagrama de tempo que seria observado na tela de um  osciloscópio para uma porta 
lógica AND de 2 entradas (TTL – 7408 – ver  Figura 2). Note que os níveis de tensão ao longo do 
tempo obedecem a Tabela 3. 

  Na  prática,  o  valor es  V  e  F  da  tabela  ver dade  de  uma  por ta  lógica  repr esentam  a 
ocor rência de eventos que devem r esultar  combinados na saída Y de acor do com uma lei de 
formação que atenda um deter minado problema a ser resolvido. 
  Por  exemplo, a Tabela 3 poder ia repr esentar  a situação em que queremos controlar  o 
motor que abr e e fecha a porta de um elevador (controlado pela saída Y de uma por ta AND) 
em função de o elevador estar  parado no andar em questão (sensor  que aplica uma tensão +
32 
Vcc  à  entrada  A  da  porta  AND  quando  esta  situação ocor re)  e  em  função  de  o  usuár io  do 
elevador  ter  aper tado  o  botão  de  aber tura  de  por ta  (sensor   que  aplica  uma tensão  +  Vcc  à 
entr ada B da porta AND quando esta situação ocor r e). 

7.3 A Porta OR 

Figura 4: Símbolo gráfico de uma porta lógica OR de 2 entradas ( A e     B ). 

Figura 5: Diagrama de pinos de um circuito integrado (CI) disponível  comercialmente (TTL – 
7432) , contendo 4 portas OR. 

A  B  Y 
0  0  0 
0  1  1 
1  0  1 
1  1  1 
Tabela 5: Tabela verdade de uma porta lógica OR de 2 entradas. 

  São válidas todas as conclusões resultantes das obser vações (I) e (II) para uma por ta 


AND no que diz r espeito à tabela verdade de uma por ta OR. 

Figura 6: Exemplo 
do diagrama de 
tempo que seria observado na tela de um  osciloscópio para uma porta lógica OR de 2 entradas 
(TTL – 7432 – ver Figura  5). 

7.4 A Porta XOR 
XOR significa OR exclusivo (“ou exclusivo”). A porta lógica XOR compara dois valores e 
se eles forem diferentes a saída será “1”. A operação XOR é representada pelo símbolo Å e sua 
fórmula pode ser resumida como Y = A Å B. 

Figura 7: Símbolo gráfico de uma porta lógica XOR de 2 entradas ( A e B ). 

A  B  Y 
0  0  0 
0  1  1 
1  0  1 
1  1  0 
Tabela 6: Tabela verdade de uma porta lógica XOR de 2 entradas.

33 
  São válidas todas as conclusões resultantes das obser vações (I) e (II) para  uma porta 
AND no que diz r espeito à tabela verdade de uma por ta XOR. 

7.5 A Porta NOT 

Figura 8: Símbolo gráfico de uma porta lógica NOT. 

A  Y 
0  1 
1  0 
Tabela 7: Tabela verdade de uma porta lógica NOT. 

Figura 9: Diagrama de pinos de um circuito integrado (CI) disponível  comercialmente (TTL – 
7404) , contendo 6 portas NOT. 
  São válidas todas as conclusões resultantes das obser vações (I) e (II) para  uma porta 
AND no que diz r espeito à tabela verdade de uma por ta NOT. 

Figura 10: Exemplo de diagramas de tempo que seriam observados na tela de um osciloscópio para 
uma porta lógica NOT (TTL – 7404 – ver Figura 9). 

7.6 A Porta NAND 
Uma porta NAND é equivalente a uma porta AND seguida de uma porta NOT: 

Figura 11: Símbolo gráfico de uma porta lógica NAND de 2 entradas ( A e B ). 

A  B  Y 
0  0  1 
0  1  1 
1  0  1 
1  1  0 
Tabela 8: Tabela verdade de uma porta lógica NAND de 2 entradas. 

  São válidas todas as conclusões resultantes das obser vações (I) e (II) para uma por ta 


AND no que diz r espeito à tabela verdade de uma por ta NAND. 

7.7 A Porta NOR 
Uma porta NOR é equivalente a uma porta OR seguida de uma porta NOT: 

Figura 12: Símbolo gráfico de uma porta lógica NOR de 2 entradas ( A e B ).

34 
A  B  Y 
0  0  1 
0  1  0 
1  0  0 
1  1  0 
Tabela 9: Tabela verdade de uma porta lógica NOR de 2 entradas. 

  São válidas todas as conclusões resultantes das obser vações (I) e (II) para uma por ta 


AND no que diz r espeito à tabela verdade de uma por ta NOR. 

7.8 A Porta XNOR 
Uma por ta XNOR é equivalente a uma por ta XOR seguida de uma por ta NOT: 

Figura 13: Símbolo gráfico de uma porta lógica XNOR de 2 entradas ( A e B). 

A  B  Y 
0  0  1 
0  1  0 
1  0  0 
1  1  1 
Tabela 10: Tabela verdade de uma porta lógica XNOR de 2 entradas. 

  São válidas todas as conclusões resultantes das obser vações (I) e (II) para uma por ta 


AND no que diz r espeito à tabela verdade de uma por ta XNOR. 

7.9 Por tas Lógicas com Múltiplas Entr adas 

Figura 14: Símbolo gráfico de uma porta lógica AND de (a) 2 entradas , (b) 3 entradas, (c) 4 
entradas, (d) 12 entradas. 

Figura 15: Símbolo gráfico de uma porta lógica OR de (a) 2 entradas , (b) 3 entradas, (c) 4 entradas, 
(d) 12 entradas.

35 
7.10 Portas Lógicas Disponíveis Comercialmente 

Tabela 11: Portas lógicas da família TTL disponíveis comercialmente em forma de circuito 
integrado (CI). 

7.11 Interligação de Porta s Lógicas 

Figura 16 Exemplo de combinação de uma porta lógica NOR de duas entradas com uma porta 
NAND de duas entradas formando uma Função 

Lógica de 3 variáveis (A, B e C ). 
A  B  C  Y 
0  0  0 
0  0  1 
0  1  0 
0  1  1 
1  0  0 
1  0  1 
1  1  0 
1  1  1 
Tabela 12: Tabela verdade da Função Lógica de 3 variáveis implementada pela combinação de 
portas da Figura 16. 

7.12 Equação Booleana de Funções Lógicas 
Para  facilitar  o  tratamento  analítico  das  diversas  funções  lógicas  possíveis  de  serem 
implementadas  através  de  portas  lógicas  utiliza­se  a  representação  da  função  lógica  através  de 
Equações Booleanas.

36 
37
8. PIPELINE 

Até o processador 386, os processadores da família  x86 eram capazes de processar apenas 
uma  instrução  de  cada  vez.  Uma  instrução  simples  podia  ser  executada  em  apenas  um  ciclo  de 
clock,  enquanto  instruções  mais  complexas  demoravam  vários  ciclos  de  clock  para  serem 
concluídas. Seria mais ou menos como montar um carro de maneira artesanal, peça por peça. 
Para  melhorar  o  desempenho  do  486,  a  Intel  resolveu  usar  o  pipeline,  uma  técnica 
inicialmente  usada  em  processadores  RISC,  que  consiste  em  dividir  o  processador  em  vários 
estágios distintos. O 486, possui um pipeline de 5 níveis, ou seja, é dividido em 5 estágios. 
Quando é carregada uma nova instrução, ela primeiramente passa pelo primeiro estágio, que 
trabalha  nela  durante  apenas  um  ciclo  de  clock,  passando­a  adiante  para  o  segundo  estágio.  A 
instrução continua então sendo processada sucessivamente pelo segundo, terceiro, quarto e quinto 
estágios  do  processador.  A  vantagem  desta  técnica,  é  que  o  primeiro  estágio  não  precisa  ficar 
esperando a instrução passar por todos os demais para carregar a próxima, e sim carregar uma nova 
instrução assim que se livra da primeira, ou seja, depois do primeiro pulso de clock. 
As  instruções  trafegam  dentro  do  processador  na  ordem  em  que  são  processadas.  Mesmo 
que  a  instrução  já  tenha  sido  processada  ao  passar  pelo  primeiro  ou  segundo  estágio,  terá  que 
continuar  seu  caminho  e  passar  por  todos  os  demais.  Se  por  acaso  a  instrução  não  tenha  sido 
completada mesmo após passar pelos 5, voltará para o primeiro e será novamente processada, até 
que tenha sido concluída. 
Desta  maneira,  conseguimos  que  o  processador  seja  capaz  de  processar  simultaneamente, 
em  um  único  ciclo  de  clock,  várias  instruções  que  normalmente  demorariam  vários  ciclos  para 
serem processadas. Voltando ao exemplo do carro, seria como se trocássemos a produção artesanal 
por uma linha de produção, onde cada departamento cuida de uma parte da montagem, permitindo 
montar  vários  carros  simultaneamente.  O  uso  dos  5  estágios  de  pipeline  no  486  não  chegava  a 
multiplicar  por  cinco a  performance  do processador, na  verdade  a  performance  não  chegava  nem 
mesmo a dobrar, mas o ganho é bem significativo. 
Os  processadores  atuais  utilizam  um  número  muito  maior  de  estágios  de  pipeline.  O 
Pentium II possui 10, o Athlon Thunderbird possui 12 e o Pentium 4 possui 20. No Pentium 4 por 
exemplo, cada estágio processa uma pequena parte da instrução, que só são concluídas pelo último 
estágio, a cada ciclo, cada um dos estágios passa a instrução para a frente e recebe uma nova. Cada 
instrução  demora  20  ciclos  para  ser  processada,  mas  em  compensação  são  processadas  20 
instruções  ao  mesmo  tempo,  em  fila.  Mais  estágios  permitem  que  o  processador  seja  capaz  de 
atingir frequências mais altas, já que cada estágio fará menos trabalho por ciclo, suportando mais 
ciclos por segundo, mas, por outro lado, o uso de muitos estágios pode prejudicar o desempenho do 
processador nas operações de tomada de decisão, já que cada instrução demorará mais ciclos para 
ser concluída. 

8.1 O Mar ior  Obstáculo do Pipeline – Os Pipelines Hazar ds 

Existem situações, chamadas de Hazards, que impedem a próxima instrução dentro de uma fila 
de  instruções  de  ser  executada  no  ciclo  esperado.  Os  Hazards  reduzem  a  velocidade  obtida  pelo 
pipelining. Existem três classes de hazards:

·  Hazards Estruturais: Têm como origem uma implementação de hardware que não comporta 
a sobreposição simultânea de todas as combinações possíveis de instruções. Em termos de 
nosso  carro  utilizado  para  apresentar  o  conceito  de  pipelining  seria  o  equivalente  a 
implementar um pipeline onde só existisse uma tomada para a esteira e uma para o robô.
·  Hazards  de  Dados:  Ocorrem  quando  uma  instrução  para  ser  executada  depende  dos 
resultados gerados por alguma instrução anterior que ainda não foi completada.

38 
·  Hazards de Controle: Ocorrem quando executamos um desvio ou alteração ou alguma outra 
instrução que altera o PC. 

Uma  forma  de  solucionar  os  Hazards  é  inserindo  no  pipeline  uma  "bolha"  que  simplesmente 
atrasa o processamento até que o recurso que esteja causando o hazard esteja disponível. Chamamos 
este processo de stall. 
Sempre  que  o  pipeline  faz  um  stall  todas  as  instruções  anteriores  ao  stall  prosseguem 
normalmente,  enquanto  que  todas  as  instruções  posteriores  são  atrasadas,  de  forma  a  eliminar  a 
causa do hazard. 
9. ARQUITETURAS CISC X RISC 

n  CISC  ­  Complex  Instruction  Set  Computer   ­  exemplo:  PC,  Macintosh;  um  conjunto  de 
instruções maior e mais complexo, implicando num processador mais complexo, com ciclo 
de processamento mais lento; ou 
n  RISC ­ Reduced Instruction Set Computer  ­ exemplo: Power PC, Alpha, Sparc; um conjunto 
de instruções menor e mais simples,  implicando num processador mais simples, com ciclo 
de processamento rápido. 

No começo da década de 80, a tendência era construir chips com conjuntos de instruções cada 
vez mais complexos, os famosos processadores CISC. Alguns fabricantes porém, resolveram seguir 
o  caminho  oposto,  criando  o  padrão  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  com clocks  mais  altos.  Um  exemplo  são os 
processadores Alpha, que em 97 já operavam a 600 MHz. 
Tanto  a  Intel  quanto  a  AMD,  perceberam  que  usar  alguns  conceitos  da  arquitetura  RISC  em 
seus processadores poderia ajudá­las a criar processadores mais rápidos. Porém, ao mesmo tempo, 
existia  a  necessidade  de  continuar  criando  processadores  compatíveis  com  os  antigos.  Não 
adiantaria  muito  lançar  um  Pentium  II  ou  Athlon  extremamente  rápidos,  se  estes  não  fossem 
compatíveis com os programas que utilizamos. 
A  idéia  então  passou  a  ser  construir  chips  híbridos,  que  fossem  capazes  de  executar  as 
instruções x86, sendo compatíveis com todos os programas, mas ao mesmo tempo comportando­se 
internamente como chips RISC, quebrando estas instruções complexas em instruções simples, que 
podem ser processadas por seu núcleo RISC. Tanto o Pentium II  e  III, quanto o Athlon, Duron e 
Celeron, utilizam este sistema. 
Do lado dos chips supostamente RISC, como por exemplo o G4 usados nos Macs, temos esta 
mesma tendência de construir chips cada vez mais complexos, abandonando a idéia dos chips RISC 
simples  e  baratos  em  favor  da  complexidade  típica  dos  processadores  CISC.  Atualmente  pode­se 
dizer  que  não  existem  mais  chips  CISC  ou  RISC,  mas  sim  chips  híbridos,  que  misturam 
características das duas arquiteturas, a fim de obter o melhor desempenho possível. 

RISC  CISC 
Instruções simples em apenas um ciclo.  Instruções complexas de múltiplos ciclos. 
Números  limitados  de  instruções  Qualquer instrução referencia a memória. 
referenciam a memória. 
Presença forte de pipeline  Pouco ou nenhum pipeline. 
Instruções executadas pelo hardware  Instruções interpretadas por microprograma. 
Poucas instruções e modos.  Muitas Instruções e modos. 
Complexidade no compilador.  Complexidade no microprograma. 
Vários conjuntos de registradores.  Único conjunto de registradores.

39
10. CICLOS DE INSTRUÇÃO 

n  As instruções são executadas seqüencialmente (a não ser pela ocorrência de 
um desvio), uma a uma. 
n  Ciclo de instrução indica a seqüência de execução, isto é, controla o fluxo de 
execução das instruções. 

10.1. Conjunto de instruções 
O  conjunto  de  instruções  é  um  dos  pontos  centrais  na 
arquitetura  de  um  processador.  Vários  aspectos  na  definição  e 
implementação  da  arquitetura  são  influenciados  pelas 
características  do  conjunto  de  instruções.  Por  exemplo,  as 
operações realizadas pela unidade lógica e aritmética, o número e 
função  dos  registradores  e  a  estrutura  de  interconexão  dos 
componentes  da  seção  de  processamento.  Além  disso,  as 
operações  básicas  que  acontecem  dentro  da  seção  de 
processamento  dependem  das  instruções  que  devem  ser 
executadas.  O  conjunto de  instruções  afeta  o  projeto  da  seção de 
controle.  A  sua  estrutura  e  a  sua  complexidade  são  determinadas 
diretamente pelas características do conjunto de instruções. 

10.1.1 Conjunto de Instruções no Contexto de Software 
A  Figura  a  seguir  situa  o  conjunto  de  instruções  do 
processador dentro dos diversos níveis de software existentes em um sistema de computação. 

Programa em Linguagem 
de Alto Nível  Comandos de Alto Nível 

Compilador

Programa em Linguagem 
Assembly 

Instruções da Arquitetura 
Assembler 

Linker/Loader 

Programa Executável 

Figur a . O conjunto de instruções dentro do contexto de software. 

Em  geral,  os  programas  são  desenvolvidos  em  uma  linguagem  de  alto  nível  como 
FORTRAN,  Pascal  ou  C.  O  compilador  traduz  o  programa  de  alto  nível  em  uma  seqüência  de 
instruções de pr ocessador. O resultado desta tradução é o programa em linguagem de montagem 

40 
ou  linguagem  de  máquina   (assembly  languag e).  A  linguagem  de  montagem  é  uma  forma  de 
representar  textualmente  as  instruções  oferecidas  pela  arquitetura.  Cada  arquitetura  possui  uma 
linguagem  de  montagem  particular.  No  programa  em  linguagem  de  montagem,  as  instruções  são 
representadas  através  de  mnemônicos,  que  associam  o  nome  da  instrução  à  sua  função,  por 
exemplo,  ADD  ou  SUB  ,  isto  é  soma  e  subtração,  O  programa  em  linguagem  de  montagem  é 
convertido para  um  programa  em  código  objeto  pelo  montador  (assembler).  O  montador  traduz 
diretamente uma instrução da forma textual para a forma de código binário. É sob a forma binária 
que a instrução é carregada na memória e interpretada pelo processador. 
Programas  complexos  são  normalmente  estruturados  em  módulos.  Cada  módulo  é 
compilado separadamente e submetido ao montador, gerando diversos módulos em código objeto. 
Estes  módulos  são  reunidos  pelo  ligador   (linker),  resultando  finalmente  no  programa  executável 
que é carregado na memória. 
O conjunto de instruções de uma arquitetura se distingue através de diversas características. 
As  principais  características  de  um  conjunto  de  instruções  são:  tipos  de  instruções  e  operandos, 
número e localização dos operandos em instruções aritméticas e lógicas, modos de endereçamento 
para acesso aos dados na memória, e o formato dos códigos de instrução.

41 
11. LINGUAGEM DE MONTAGEM (ASSEMBLY) 

Uma  linguagem de montagem é uma linguagem em que cada comando produz exatamente 
uma  instrução  de  máquina.  Em  outras  palavras,  existem  uma  correspondência  um  para  um  entre 
instruções de máquina e os comandos do programa em linguagem de montagem. 
A razão de ser utilizar linguagem de montagem, ao invés de utilizar linguagem de máquina, 
é  que  é  muito  mais  fácil  programar  em  linguagem  de  montagem.  O  uso  de  nomes  e  endereços 
simbólicos em vez de binários e octais fazem uma diferença enorme. Para a maioria das pessoas é 
mais  fácil  guardar  as  abreviaturas  das  operações  de  adição,  subtração,  multiplicação  ...  do  que 
lembrar  do  código  correspondente  em  linguagem  de  máquina.  Quando  se  constrói  programas  em 
linguagem de montagem, utiliza­se um programa chamado montador que vai fazer a tradução para a 
linguagem de máquina. 

11.1 CONJUNTO DE INSTRUÇÕES EM UM MICROCOMPUTADOR 

11.1.1 ­ Instruções de movimentação de dados, flags da CPU são setados. 

Assembler   Funcionalidade 
MOV  AL,15  AL   = 15     Copia 15 para AL 
MOV    BL,[15]  BL   = [15]   Copia RAM[15] para BL 
MOV    [15],CL  [15] = CL     Copia CL para RAM[15] 
MOV    DL,[AL]  DL   = [AL]   Copia RAM[AL] para DL 
MOV    [CL],AL  [CL] = AL     Copia AL para RAM[CL] 

11.1.2 ­ Instruções lógicas e aritmética  
Flags da CPU são setados 

Modo de endereçamento Direto 
Assembler   Funcionalidade 
ADD  AL,BL  AL   =  AL + BL 
SUB  BL,CL  BL   =  BL – CL 
MUL  CL,DL  CL   =  CL * DL 
DIV  DL,AL  DL   =  DL / AL 
MOD  AL,BL  AL   =  AL mod BL 
INC  DL  DL   =  DL + 1 
DEC  AL  AL   =  AL – 1 
AND   AL,BL  AL   =  AL AND BL 
OR     CL,BL  CL   =  CL OR  BL 
XOR   AL,BL  AL   =  AL XOR BL 
NOT   BL  BL   =   NOT BL 
ROL  AL  Rotate bits left.   LSB  :=  MSB 
ROR  BL  Rotate bits right.  MSB  :=  LSB 
SHL  CL  Shift bits left.    Discard MSB 
SHR  DL  Shift bits right.  Discard LSB. 

11.1.3 ­ Modo de ender eçamento imediato 

Assembler   Funcionalidade 
ADD  AL,12  AL  =  AL + 12 
SUB  BL,15  BL  =  BL – 15 
MUL   CL,03  CL  =  CL * 03 
DIV     DL,02  DL  =  DL / 02
42 
MOD  AL,10  AL  =  AL mod 10 
AND  AL,0F  AL  =  AL AND 0F 
OR  CL,F0  CL  =  CL OR  F0 
XOR  AL,AA  AL  =  AL XOR AA 

11.1.4 ­ Instruções de Comparação 
Flags da CPU são setados 

Assembler   Funcionalidade 
CMP  AL,BL  Set 'Z' if AL = BL 
Set 'S' if AL less than BL 
CMP  BL,13  Set 'Z' if BL = 13 
Set 'S' if BL less than 13 
CMP  CL,[20]  Set 'Z' if CL = [20] 
Set 'S' if CL less than [20] 
JA  Pula se maior 
JAE  Pula se maior ou igual 
JE  Pula se igual 
JNE  Pula se diferente 
JB  Pula se menor 
JBE  Pula se menor ou igual 

11.1.5 ­ Instruções de Entrada e Saída  
Flags da CPU não são setados 
As  portas  de  I/O  são  utilizadas  para  comunicação  do  processador  com  o  mundo  exterior. 
Portas de entrada, servem para entrada de dados, já as portas de saída estão conectadas. 

Por tas Entrada/Saida  Dispositivo 


00  Teclado 
01  Traffic Lights 
02  Display 7 Segmentos 
03  Heater and Thermostat 
04  Snake and Maze 
05  Stepper Motor (Motor de Passo) 

Assembler   Funcionalidade 
OUT (01,AL)  Envia AL para porta 01 
IN (00, AL)  Armazena valor lido no registrador AL 
OUT (02,AL)  Envia AL para porta 02 

11.1.2 Outras funções 
CLO – fecha todas as janelas de dispositivos 
HALT – pára o relógio do processador 
NOP – não faz nada por um período de clock 
ORG  x – inicia a carga do programa na memória a partir do endereço x 
END – encerra a execução do programa 
DB – carrega dados diretamente na RAM 

Assembler   Funcionalidade 
DB “Hello”  Carrega a palavra Hello na memória 
DB 22  Carrega o valor 22 na memória

43 
12 MECANISMOS DE INTERRUPÇÃO 

12.1  Eventos  que  podem  causar   alteração  ao  fluxo  nor mal  de  execução  de 
pr ogr amas:

·  pedidos de atenção de periféricos (externos ao CPU): Interr upção.
·  invocação de serviços do SO: exceção;
·  detecção de anomalias na execução de instruções (no CPU): exceção;
·  detecção de anomalias no funcionamento do hardware: exceção ou interr upção. 

12.2 Modos de operação do CPU

·  modo usuário; e pelo menos um
·  modo pr ivilegiado, ou supervisor, ou kernel, ou ... 
o  modo  normalmente  usado para  execução de  código  do  SO,  incluindo  as  rotinas  de 
atendimento a interrupções/excepções 

12.4. Inter r upção e Exceção 
São  eventos  de  hardware  que,  a  exemplo  dos  desvios  (jumps  e  branchs),  mudam  o  fluxo 
normal de execução das instruções. Uma exceção é um evento inesperado (não sequencial) que vem 
de  dentro  do  processador,  p.ex.  o  overflow  aritmético,  instrução  indefinida  etc.  Uma  interrupção 
também é um evento que causa uma mudança inesperada no fluxo de controle das instruções, mas 
ao  contrário  das  exceções,  tem  origem  fora  do  processador,  por  exemplo,  num  periférico.  As 
interrupções  são  utilizadas  pelos  dispositivos  de  entr ada  e  saída  para  se  comunicar  com  o 
processador. 
Muitas  arquiteturas  e  muitos  autores  não  distinguem  interrupções  e  exceções.  No  Mips  o 
termo exceção refere­se a qualquer mudança inesperada no fluxo do programa sem distinguir se a 
causa é interna ou externa. O termo interrupção refere­se aos eventos originados externamente.  A 
arquitetura  Intel  80x86  usa  o  termo  interrupção  para  indicar  ambos  os  eventos  de  alteração 
inesperada  no  fluxo  do  programa,  ao  passo  que  a  arquitetura  PowerPC  usa  exceção  para  indicar 
qualquer  evento  inesperado,  e  interrupção  para  referir­se  a  mudança  no  fluxo  de  controle.  Aqui 
vamos associar o termo interrupção aos eventos de hardware externos à UCP e o termo exceção aos 
eventos de hardware internos a UCP. 
As interrupções foram criadas inicialmente para tratar eventos inesperados, como overflow 
aritmético,  e para  sinalizar  requisições  de  serviços  por parte dos  dispositivos  de  E/S.  Os  mesmos 
mecanismos básicos foram estendidos para tratar de exceções geradas internamente. 
A exemplo dos processadores, a maioria das características dos sistemas de entrada e saída, 
interrupção e exceção são extremamente dependentes da tecnologia. 
A  figura  a  seguir  mostra  um  esquema  de  organização  dos  dispositivos  E/S  utilizando 
interrupção.

44 
As conexões entre os dispositivos de E/S, processador e a memória são realizadas por meio 
dos barramentos. A comunicação entre os dispositivos e o processador é implementada a partir de 
um protocolo e de interrupções. 
Uma  IRQ  (Interrup  Request)  é  a  forma  pela  qual  componentes  de  hardware  requisitam 
tempo computacional da CPU. Uma IRQ é a sinalização de um pedido de interrupção de hardware. 
Os  computadores  modernos  compatíveis  com  o  IBM  PC  possuem 16 designações  de  IRQ 
(0­15),  cada  uma  delas  representando  uma  peça  física  (ou  virtual)  de  hardware.  Por  exemplo,  a 
IRQ0  é  reservada  para  o  temporizador  do  sistema,  enquanto  a  IRQ1  é  reservada  para  o  teclado. 
Quanto menor for o número de IRQ, mais crítica é sua função. 
No  passado  existiam  apenas 8  designações  de  IRQ  (0­7).  À  medida  que novos  hardwares 
emergiam,  surgiu  também  a  necessidade  de  novas  IRQs.  A  solução  foi  criar  mais  8  IRQs, 
adicionadas pelo desvio da IRQ2 para a nova IRQ9. 

A lista de IRQs é: 
IRQ0= temporizador do sistema.

45 
IRQ1= teclado. 
IRQ2= reservada para ligação ao chip 8259B (IRQ9). 
IRQ3= COM 2 E COM4. 
IRQ4= COM1 E COM3. 
IRQ5= LPT2 ou placa de som. 
IRQ6= floppy disk. 
IRQ7= LPT1. 
IRQ8= Relógio de tempo real 
IRQ9= ligada ao chip 8259A (IRQ2). 
IRQ10= não definida. 
IRQ11= não definida. 
IRQ12= mouse PS/2. 
IRQ13= CO­processador aritmético. 
IRQ14= IDE primária. 
IRQ15= IDE secundária.

46 
13 ARQUITETURAS PARALELAS 

As  arquiteturas  paralelas  são  designadas  por  dois  ou  mais  processadores  ou  unidades  de 
processamento  trabalhando  em  conjunto  para  executar  uma  única  tarefa.  Existem  dois  tipos  de 
arquiteturas paralelas: '''Multiprocessador''' e '''Multicomputador'''. 

13.1 MULTIPROCESSADOR 

Multiprocessadores ou Sistemas Fortemente Acoplados: São dois ou mais processadores, 
executando instruções diferentes para concluir uma mesma tarefa. Os processadores compartilham 
uma  mesma  memória.  No  entanto  os  processadores  não  são  capazes  de  executar  um  programa 
sozinhos,  eles  se  tornam  totalmente  dependentes  desde  que  cada  processador  depende  das 
respostas(resultados)  dos  outros  processadores  em  paralelo  para  concluírem  suas  tarefas.  É 
obrigatoriamente usado um único sistema operacional. 

Multiprocessamento é a capacidade de um sistema operacional executar simultaneamente dois ou 
mais  processos. Pressupõe a existência de dois ou mais processadores. Difere da multitarefa, pois 
esta  simula  a  simultaneidade,  utilizando­se  de  vários  recursos,  sendo  o  principal  o 
compartilhamento de tempo de uso do processador entre vários processos. 

Arquitetura Padrão  Multiprocessadores 

13.1.1 CARACTERÍSTICAS 
Um multiprocessador ou sistema multiprocessado é um sistema integrado de computação com 
as seguintes características:
·  Envolve  dois  ou  mais  processadores  físicos  (sejam  processadores  separados  ou  múltiplos 
núcleos  encapsulados  no  mesmo  chip)  ou  lógicos  (processador(es)  com  a  tecnologia 
HyperThreading da Intel) com o mesmo poder computacional e cada um capaz de executar 
processos  autonomamente.  Isto  implica  que  não  há  nenhuma  unidade  central  de  controle; 
cada processador contém sua própria unidade de controle. Assim, efetivamente, a lógica de 
controle é distribuída pelo sistema.
·  Os processadores compartilham um único espaço de endereçamento de memória.
·  O sistema de hardware é como um todo gerenciado por um único sistema operacional. 
O sistema operacional com suporte a multiprocessamento deve ser capaz de:
·  suportar multitarefa;
·  manter múltiplas filas de processos, uma para cada processador.

47 
13.1.2 ARQUITETURA 
Sistemas multiprocessados podem ser basicamente de dois tipos: SMP e NUMA.
·  Multiprocessamento  simétrico  (SMP):  os  processadores  compartilham  a  mesma  memória, 
embora  possam  ter  caches  separadas.  O  sistema  operacional  deve  estar  preparado  para 
trabalhar  com  coerência  de  caches  e,  principalmente,  evitar  condições  de  corrida  na 
memória principal.
·  Acesso  não  uniforme  à  memória  (NUMA):  a  cada  processador  é  associado  um  banco  de 
memória.  Nesse  caso,  o  sistema  operacional  trata  cada  banco  separadamente,  pois  cada 
banco  tem  um  custo  de  acesso  diferente,  dependendo  de  qual  o  processador  a  que  está 
associado e onde está sendo executado o processo que tenta acessar a memória. 

13.2 MULTICOMPUTADOR 

Multicomputadores ou Sistemas Fracamente  Acoplados: São dois ou mais computadores 
ou unidades de processamento que trabalham paralelamente utilizando trocas de mensagens. Cada 
unidade de processamento  possui  sua  própria  Unidade de  Memória,  com  isso  eles  podem utilizar 
um  sistema  operacional  independente  para  cada um deles,  e  também  são  capazes  de  executar um 
programa  completo  sozinhos,  porém  trabalham  juntos,  cada  um  executando  uma  parte  de  um 
programa para no final agruparem as informações adquiridas e gerar o executável. As unidades de 
processamento não possuem nenhum outro tipo de ligação entre si a não ser as trocas de mensagens 
que são feitas como exemplo por cabos de rede. 
Apesar  dos  sistemas  multiprocessados  terem  um  bom  desempenho,  eles  possuem  uma 
limitação quando são implementados mais de 64 processadores ao mesmo tempo. Essa limitação se 
refere  ao  acesso  à  memória  compartilhada,  e  para  resolver  esse  problema,  os  projetistas 
abandonaram a idéia da memória compartilhada e começaram a desenvolver sistemas compostos de 
vários  computadores  interconectados  e  sem  memória  comum.  A  esse  tipo  de  organização  de 
computadores  foi  dado  o  nome  de  multicomputadores,  que  são  vários  computadores  completos  e 
autônomos (estações de trabalho) que trabalham em conjunto e se comunicam através de uma rede 
de passagem de mensagens. Quando se trata de um sistema de maior porte, não é viável que cada 
processador  esteja  conectado  com  todos  os  outros.  Por  isso,  uma  mensagem  que  sai  de  um 
determinado processador, até alcançar seu destino, poderá passar por processadores intermediários 
que servem como roteadores.

48 

Você também pode gostar