Você está na página 1de 74

UNIMAR – UNIVERSIDADE DE MARÍLIA

FEAT – FACULDADE DE ENGENHARIA, ARQUITETURA E TECNOLOGIA

ARQUITETURA
DE
COMPUTADORES

Bacharelado em Ciência da Computação

Prof.: Luiz Gustavo Minardi


Capítulo 1

Evolução dos Computadores

1. Breve Histórico da Evolução dos Computadores


A evolução dos computadores tem sido caracterizada pelo aumento da
velocidade dos processadores, pela diminuição do tamanho dos componentes, pelo
aumento da capacidade de memória e pelo aumento da capacidade e da velocidade de
E/S.
O primeiro computador que se tem registro é o conhecido como ENIAC –
(Eletronic Numerical Integrator and Computer) – primeiro computador eletrônico
digital de propósito geral em todo o mundo – EUA – início 1943 – máquina enorme -
pesava 30 toneladas – ocupava espaço de 140 m2 - 18 mil válvulas – operava 5 mil
adições por minuto – utilizava o sistema decimal – término em 1946.

Já o primeiro processador do mundo, o 4004 da Intel, lançado em 1971, deu


inicio a enorme evolução dos processadores, tornando-se o componente que mais
evoluiu em toda a história da humanidade. Não é a toa que o transistor foi considerado a
invenção do século.
Essa evolução se deve a um único fator: A miniaturização. Para se ter idéia dessa
miniaturização, veremos abaixo o número de transistores dos processadores mais
conhecidos:

Processador Ano Fabricação Numero de Transistores


8088 (xt) 1979 29.000
80286 (286) 1982 134.000
80386 (386) 1985 275.000
801486 (486) 1989 1.200.000
Pentium 1993 3.100.000
Pentium MMX 1997 4.300.000
Pentium II 1998 9.500.000
Pentium III 1999 21.000.000
Pentium 4 2000 35.000.000
AMD Athlon™ 64 2003 114.000.000
Pentium M 2004 140.000.000
Intel Core Duo 2006 151.600.000
Intel Core 2 Duo E6850 2007 291.000.000
Intel Quad Core Q6600 2007/2008 582.000.000
Tabela: Número de transistores em um processador

1
Podemos perceber claramente que o aumento do numero de transistores foi
muito expressivo, e em contra partida, o tamanho dos processadores não aumentou, isso
se deve a enorme redução de seus componentes internos, para se ter uma idéia, vejamos
a tabela abaixo com o tamanho dos transistores que compõem os principais
processadores:

Processador Ano Fabricação Tamanho do Transistor


Primeiro Transistor Década 50 5 cm
Intel 4004 1971 15 mícron
80486 (486) 1989 1 mícron
Pentium 166 MMX 1997 0,35 mícron
Pentium III 350 1999 0,25 mícron
Pentium 4 2000 0,18 mícron
Athlon Thoroughbred 2002 0,13 mícron
Pentium M 2004 90 nm ou 0,090 mícron
Intel Core Duo 2006 65 nm ou 0,065 mícron
Intel Core 2 Duo 2007 65 nm ou 0,065 mícron
Intel Core 2 Duo Extreme 2008 45 nm ou 0,045 mícron
Tabela: Tamanho dos Transistores que compõe um processador

• Um mícron equivale a um milésimo de milímetro ou a 1 milionésimo de metro.


• Um Nanômetro (nm) equivale a um milésimo de mícron: 1 mícron = 1000 nm.

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, pode estar ligado ou desligado.

Transistor NPN

Figura: Transistor e sua representação.

Em um processador com tecnologia de 0,07 mícron por transistor, cada “gate”, ou


seja, cada um dos três filamentos que compõe cada transistor, teria apenas 3 átomos de
cobre de espessura! Para reforçar o quanto isto é pouco, com transistores de 0,18
mícron, o sinal elétrico usado para mudar o seu estado, é composto por apenas algumas
centenas de elétrons. Com transistores de 0,07, o sinal teria apenas algumas “dezenas”
de elétrons! Haja isolamento para preservar a integridade de um sinal tão ínfimo.

Processadores Quânticos

A idéia de usar átomos para processar dados não é nova, existem pesquisas neste
sentido desde o início da década de 80, mas eram apenas teorias vagas, que apenas
atualmente começam a tomar forma.

2
Num processador quântico, temos átomos ao invés de transistores. Ao invés de bits
temos bits quânticos, ou qubits. A idéia fundamental é que num átomo, a rotação de
cada elétron corresponde a um pequeno movimento magnético, que pode ser controlado
caso o átomo seja colocado sobre uma superfície magnética suficientemente sensível.

Uma peculiaridade interessante é que enquanto um transistor permite apenas dois


estados, ou seja, ligado ou desligado, cada qubit possui três estados diferentes. Dois
estados são determinados pela rotação dos elétrons (horário ou anti-horário), enquanto o
terceiro é uma característica bastante peculiar dentro do mundo quântico, onde os
elétrons podem girar simultaneamente nos dois sentidos. Sim, parece estranho, e é por
isso que existem tantos cientistas pesquisando isso, mas de qualquer forma, combinado
com os dois estados anteriores temos um total de 4 estados possíveis, o que permite que
cada qubit processe ou armazene dois bits simultaneamente.

Isto permite ampliar exponencialmente a capacidade dos processadores quânticos, já


que dois qubits correspondem a 4 bits, 3 qubits correspondem a 8 bits e 5 qubits
correspondem a 32 bits. 10 qubits seriam suficientes para 1024 bits, enquanto 20
correspondem a mais de um milhão. Esta pode ser a grande chave para aumentar de
forma inimaginável tanto a potência dos processadores quanto a capacidade dos
dispositivos de armazenamento de memória.

1.1 A máquina de Von Neumann

A tarefa de carregar e modificar um programa no ENIAC era extremamente


tedioso. O processo de programação poderia ser extremamente facilitado se um
programa pudesse ser representado de maneira adequada, de modo que fosse
armazenado na memória, juntamente com os dados. Assim, o computador poderia obter
as instruções diretamente, a partir da memória, e um programa poderia ser carregado ou
modificado simplesmente atribuindo valores a posição de memória.

Essa idéia, conhecida como conceito de programa armazenado, geralmente é


atribuída aos projetistas do ENIAC, principalmente ao matemático John von Neumann,
que era um dos construtores do ENIAC.

Em 1946, Von Neumann e seus colegas começaram o projeto de um novo


computador de programa armazenado, conhecido como IAS, no Instituto de Estudos
Avançados de Princeton. O IAS, embora concluído somente em 1952, constituiu o
protótipo de todos os computadores de propósito geral subseqüentes.

Unidade lógica
e aritmética

Equipamento
Memória de
Principal E/S
Unidade de
Controle
CPU

3
A estrutura geral do IAS, consiste em:

 Uma memória principal, que armazena os dados e instruções.


 Uma unidade lógica e aritmética (ULA), capaz de realizar operações com
dados binários.
 Uma unidade de controle, que interpreta e executa instruções armazenadas
na memória.
 Dispositivos de entrada e saída (E/S), operados pela unidade de controle.

A memória do IAS consiste em mil posições de memórias, denominadas


palavras, cada uma, constituída de 40 dígitos binários (bits). A unidade de controle
controla a operação do IAS, efetuando a busca das instruções na memória e executando-
as, uma de cada vez. Para entender essa operação, é necessário um diagrama da
estrutura mais detalhado:

Unidade Central de Processamento

AC MQ

Unidade Lógica e aritmética


Circuitos lógicos e aritméticos Equipamentos
de Entrada e
Saída

MBR

IBR PC

IR MAR Memória
Principal
M
Circuitos
de Sinais de
Controle Controle

4
Onde:
Unidade de Controle de Programa
MBR - Registrador temporário de dados
(Memory Buffer Register): contém uma palavra com dados a ser armazenada na
memória ou é utilizado para receber uma palavra da memória.

MAR - Registrador de endereçamento à memória (Memory Address Register):


especifica o endereço, na memória, da palavra a ser escrita ou lida no MBR.

IR - Registrador de Instruções (Instruction Register): contém o código de operação de 8


bits que está sendo executado.

IBR - Registrador de armazenamento temporário de instruções (Instruction Buffer


Register): é utilizado para armazenar temporariamente a instrução contida na porção à
direita de uma palavra de memória.

PC - Contador de Programa (Program Counter): contém o endereço de memória do


próximo par de instruções a ser buscado da memória.

AC / MQ - Acumulador (Acumulator) e Quociente de Multiplicação (Multiplier


Quocient): são utilizados para armazenar temporariamente os operandos e o resultado
de operações efetuadas pela ULA (unidade lógica Aritmética).

Embora estes computadores tivessem sido construídos a base de válvulas, ainda


hoje, em plena era da microeletrônica, estes conceitos criados e utilizados por von
Neumann são usados.

5
Capítulo 2
Barramentos – Estruturas de interconexão

Um sistema de computação consiste em um processador, memória, dispositivos


de E/S e interconexões entre esses componentes principais. Neste capítulo, será
abordado o estudo dos Barramentos do Sistema.

2.1 Estrutura de Interconexão

Um computador consiste de um conjunto de componentes ou módulos de três


tipos básicos (processador, memória e E/S), que se comunicam entre si. De fato, ele é
uma rede de componentes básicos e, dessa forma devem existir caminhos de conexão
entre esses módulos. A coleção de caminhos que conectam vários módulos é chamada
de estrutura de interconexão. A figura abaixo sugere os principais tipos de troca de
informações necessárias, indicando as principais formas de entrada e saída para cada
tipo de módulo.

Leitura
MEMÓRIA
Escrita N palavras
0
Dados
.
Endereço .
.
Dados N-1

Leitura MÓDULOS DE E/S

Escrita Dados internos

Endereço
M portas Dados externos

Dados internos
Sinais INT

Dados externos

6
Instruções Endereço
PROCESSADOR
Dados
(CPU) Sinais controle

Sinais de INT Dados

Memória: tipicamente, uma memória é composta de N palavras de um mesmo


tamanho. Cada palavra possui um único endereço numérico (0,1,2,..., N-1). Uma
palavra pode ser lida ou escrita na memória. A Natureza da operação é indicada por
sinais de controle. A posição de memória em que deve ser realizada a operação é
especificada por um endereço.

E/S: do ponto de vista interno, um módulo de E/S é funcionalmente similar à


memória. Dois tipos de operações podem ser realizadas: leitura e escrita. Um módulo de
E/S pode controlar mais de um dispositivo externo. Cada interface de dispositivo
externo, chamada de porta, tem um endereço distinto (por exemplo, 0,1,2,... M-1). Além
disso, existem caminhos externos para a entrada (leitura) ou saída (escrita) de dados em
cada dispositivo externo. Finalmente, um módulo de E/S pode também enviar sinais de
interrupção para o processador.

Processador: o processador lê os dados e instruções. Escreve os dados após seu


processamento e usa sinais de controle para controlar a operação do sistema todo. Pode
também receber sinais de interrupção.

Assim, ficam definidos os dados a serem trocados. A estrutura de interconexão


deve suportar os seguintes tipos de transferências:

Memória para o processador: o processador lê uma instrução ou uma unidade


de dados da memória.
Processador para a memória: o processador escreve uma unidade de dados na
memória.
E/S para processador: o processador lê dados de um dispositivo de E/S via um
módulo de E/S.
Processador para E/S: o processador envia dados para um dispositivo de E/S.
Transferência entre um dispositivo de E/S e a memória: nas transferências de
dados em ambas as direções, o módulo de E/S pode trocar dados diretamente com a
memória, sem a interferência do processador, usando acesso direto à memória (DMA).

2.2 INTERCONEXÃO DE BARRAMENTOS

Um barramento é um caminho de comunicação entre dois ou mais dispositivos. Uma


característica básica de um barramento é ser um meio de transmissão compartilhado.

7
Diversos dispositivos podem ser conectados a um barramento, podendo um sinal
transmitido por qualquer dos dispositivos ser recebidos por todos os outros dispositivos
conectados ao barramento. Se dois dispositivos transmitem sinais ao barramento mesmo
tempo, esses sinais irão sobrepor e serão então adulterados. Dessa maneira, para que a
transmissão ocorra com sucesso, apenas um dispositivo pode transmitir sinais pelo
barramento a cada instante.

Tipicamente, um barramento consiste de vários caminhos ou linhas de comunicação,


cada qual capaz de transmitir sinais que representam um único dígito binário, 0 ou 1. Ao
longo do tempo, uma seqüência de dígitos binários pode ser transmitida por meio de
uma linha. As diversas linhas do barramento podem ser usadas em paralelo, em
conjunto, para transmitir vários bits simultaneamente (em paralelo). Por exemplo, uma
unidade de dados de 8 bits pode ser transmitida por oito linhas do barramento.

Um sistema de computação contém diversos barramentos, que fornecem


caminhos de comunicação entre os componentes, nos vários níveis de hierarquia do
sistema. O barramento usado para conectar os componentes principais de um
computador (processador, memória e E/S) é conhecido como barramento do sistema.

Estrutura dos barramentos

Um barramento do sistema contém, tipicamente, de 50 a 100 linhas distintas.


Cada linha possui uma função ou significado particular. Embora existam diferentes
projetos de barramentos, as linhas de um barramento podem ser classificadas em três
grupos funcionais: linhas de dados, linhas de endereço e linhas de controle. Além disso,
devem existir as linhas para distribuição de energia para os módulos conectados no
barramento.

... ...
CPU Memória Memória E/S E/S

Linhas de controle

Linhas de endereço

Linhas de Dados

As linhas de dados fornecem um caminho para transferência de dados entre os


módulos do sistema. Esse conjunto de linhas é denominado barramento de dados. O
barramento de dados contém tipicamente 8, 16 ou 32 linhas; o número de linhas é
conhecido como largura do barramento de dados. Como cada linha pode conduzir
apenas 1 bit por vez, o número de linhas determina quantos bits podem ser transferidos
de uma vez. A largura do barramento de dados constitui um parâmetro fundamental

8
para o desempenho global do sistema.

Por exemplo, se o barramento de dados tem uma largura de 8 bits e cada


instrução tem tamanho de 16 bits, o processador tem de acessar duas vezes
o módulo de memória em cada ciclo de instrução.

As linhas de endereço são utilizadas para designar a fonte ou o destino dos dados
a serem transferidos pelo barramento de dados. Por exemplo, quando o processador
deseja ler uma palavra (de 8, 16 ou 32 bits) da memória, ele coloca o endereço da
palavra desejada nas linhas de endereço. A largura do barramento de endereço
determina a capacidade máxima da memória do sistema. Em geral, as linhas de
endereço também são empregadas para endereçar as portas de entrada e saída.
Tipicamente, os bits mais significativos são utilizados para identificar um módulo
particular do sistema conectado ao barramento e os bits menos significativos
identificam uma posição na memória ou porta de E/S desse módulo.

As linhas de controle são usadas para controlar o acesso e a utilização das linhas
de dados e de endereço. Como as linhas de dados e de endereço são compartilhadas por
todos os componentes, deve existir uma maneira de controlar sua utilização. Os sinais
de controle são utilizados tanto para transmitir comandos quanto para transmitir
informações de temporização entre os módulos do sistema. Os sinais de temporização
indicam a validade das informações de dados e de endereço. Os sinais de comando de
comando especificam as operações a serem executadas.

O desempenho do sistema pode ser prejudicado caso o número de dispositivos


conectados a um barramento seja muito grande. As principais causas são:

 Em geral, quanto maior o número de dispositivos conectados, maior é


o comprimento de um barramento e, assim, maior o atraso na
propagação dos sinais. Esse atraso determina o tempo em que um
dispositivo obtém o controle do barramento. Quando o controle do
barramento passa muitas vezes de um dispositivo para outro, esses
atrasos podem afetar seriamente o desempenho.
 O barramento pode se tornar um gargalo do sistema quando a
demanda agregada por transferência de dados se aproxima da
capacidade do barramento. Esse problema pode ser contornado pelo
aumento da taxa de transferência de dados do barramento e pelo uso
de barramentos de maior largura (por exemplo, aumentando a largura
do barramento de dados de 32 para 64 bits). Entretanto, como as
taxas de transferência de dados dos dispositivos conectados (ou seja,
interfaces de rede e controladores de vídeo ou controladores gráficos)
vêm crescendo rapidamente, essa é uma batalha que um único
barramento certamente está fadado a perder.

Desse modo, a maioria dos sistemas de computação utiliza múltiplos barramentos,


geralmente dispostos de maneira hierárquica. A figura a seguir mostra uma estrutura
tradicional típica. Um barramento local conecta o processador a uma memória Cache e
pode conter um ou mais dispositivos locais. O controlador de memória Cache conecta a
memória Cache não apenas a esse barramento local, mas também a um barramento do

9
sistema, ao qual são conectados os módulos da memória principal. A memória principal
pode ser conectada apenas no barramento do sistema, não precisando ser conectada ao
barramento local. Dessa maneira, as transferências de dados entre os componentes de
E/S e a memória principal por meio do barramento do sistema não interferem na
atividade do processador.

Barramento local
Processador Memória
Cache

Controlador
Memória de E/S
Principal local

Barramento do Sistema

Rede Interface de Interface


barramento de Serial
SCSI expansão Modem

Barramento de expansão

Os controladores de E/S podem ser conectados diretamente ao barramento do


sistema. Entretanto, uma solução mais eficiente é utilizar um ou mias barramentos de
expansão, que serve como armazenamento temporário dos dados transferidos entre o
barramento do sistema e os controladores de E/S conectados ao barramento de
expansão. Esse arranjo permite ao sistema conectar uma grande variedade de
dispositivos de E/S e, ao mesmo tempo, isolar o tráfego entre o processador e memória
do tráfego de E/S.

A figura acima também ilustra alguns exemplos típicos de dispositivos de E/S


que podem ser conectados no barramento de expansão: as conexões de redes incluem
redes locais (LANs) ou WANs (wide area networks). A interface SCSI (Small
Computer System Interface – interface de sistema de computadores pequenos) é um tipo
de barramento utilizado para conectar discos locais e outros periféricos. Uma porta
serial poderia ser utilizada para a conexão de um scanner.

Embora esta arquitetura tradicional seja eficiente, ela não é satisfatória para a
maioria dos dispositivos de E/S mais modernos, por apresentarem desempenho cada vez
maiores. A abordagem mais adotada pela indústria para satisfazer as demandas
crescentes por melhor desempenho consiste em utilizar um barramento de alta
velocidade que seja integrado ao resto do sistema requerendo apenas uma ponte entre o
barramento do processador e o barramento de alta velocidade. Este arranjo é conhecido
como arquitetura de mezanino.

10
2.3 Os Barramentos mais conhecidos

2.3.1 – Barramento local

É a via de comunicação que conecta o processador a memória Ram, memória


cache e o Chipset (como visto anteriormente). Cada processador possui seu modelo,
devido as suas características, por isso, necessitam de modelos de Placas-Mãe
diferentes.

2.3.2 – Barramento ISA

Os barramentos ISA (Industry Standard Architeture) – nasceram junto com os


processadores 8088 da Intel, usados nos micros “XT”, ele se divide em dois tipos:

ISA de 8 bits – Esse barramento funciona usando palavras binárias de 8 bits à


uma freqüência de 8 MHz, ele surgiu junto com o processador 8088 e sua velocidade
era mais do que suficiente para tal processador.

ISA de 16 bits – É uma evolução do ISA de 8 bits devido ao aumento da


velocidade dos processadores. Surgiu a partir dos processadores 80286 pois esse se
comunicava com os demais periféricos utilizando palavras binárias de 16 bits. Esse
barramento assim como os processadores 286 trabalhava com palavras de 16 bits à uma
freqüência de 8 MHz.

Figura: Barramento ISA de 8 e 16 bits

Atualmente, o ISA é um barramento completamente obsoleto e estão cada vez


mais raros nas placas mães atuais, a tendência é que os barramentos ISA
desapareçam.

2.3.3 - Barramento PCI

O barramento PCI (Peripherical Component Interconnect) – interconexão de


componentes periféricos – é um barramento de grande largura de banda e alta
velocidade, independente do processador utilizado, que pode funcionar como

11
barramento periférico ou mezanino. Comparando as especificações com outros
barramentos mais comuns, o PCI apresenta melhor desempenho do sistema para
subsistemas de E/S de alta velocidade. O padrão atual permite o uso de até 64 linhas de
dados de 66 MHz, com uma taxa bruta de transferência de dados de 528 Mbytes/s ou
4,224 Gbps. Mas não é apenas a alta velocidade que torna o PCI atraente. O PCI é
especificamente projetado para satisfazer os requisitos de custos de E/S dos sistemas
modernos; sua implementação requer poucos chips, e outros barramentos podem ser
conectados ao barramento PCI.

A Intel iniciou o projeto do PCI em 1990, visando utilizá-lo em seus sistemas


baseados no processador Pentium. Logo depois, ela liberou todas as patentes para
domínio público e promoveu a criação de uma associação de fabricantes, a PCI SIG.
Com isso, o PCI vem sendo cada vez mais utilizado em computadores pessoais,
estações de trabalho e servidores.

O PCI é projetado para trabalhar com uma variedade de configurações de


microprocessadores, incluindo sistemas com um único ou com múltiplos processadores.

Figura: Barramento PCI.

Estrutura do PCI

O PCI pode ser configurado como um barramento de 32 ou 64 bits. O


barramento PCI é dividido nos seguintes grupos funcionais:

 Pinos de sistema: inclui os pinos de relógio e de inicialização (reset);


 Pinos de dados e endereços: inclui 32 linhas multiplexadas no tempo para

12
endereços e dados.
 Pinos de controle da interface: controla a temporização das transações e
fornece coordenação entre iniciador e alvo de cada transação;
 Pinos de arbitração: diferentemente das outras linhas do barramento PCI,
estas linhas não são compartilhadas. Cada mestre do PCI possui seu próprio
par de linhas de arbitração que o conectam diretamente ao árbitro central do
barramento PCI;
 Pinos de erros: utilizados para indicar erros de paridade e outros erros.

Figura: Barramento PCI (Branco)

2.3.4 – Barramento AGP

O AGP (Acelerated Graphics Port) - é um barramento feito sob medida para as


placas de vídeo mais modernas. Ele opera ao dobro da velocidade do PCI, ou seja, 66
MHz, permitindo uma transferência de dados a 266 MB/s, o dobro do PCI.

Além da velocidade, o AGP permite que uma placa de vídeo possa acessar
diretamente a memória RAM. Este é um recurso muito utilizado em placas 3D, onde a
placa usa a memória RAM para armazenar as texturas que são aplicadas sobre os
polígonos que compõem a imagem tridimensional.

Figura: Slot AGP (Marrom Abaixo)

Apesar de, usando-se o barramento PCI, também ser possível utilizar a memória
para armazenar as texturas, neste caso os dados teriam que passar pelo processador,
degradando o desempenho geral da máquina.

AGP Pro - Além dos slots AGP tradicionais, temos um outro padrão, o AGP
Pro. O AGP Pro é na verdade um slot AGP 4x com 48 contatos a mais, 20 de um lado e
mais 28 do outro. Estes contatos adicionais são usados para aumentar a capacidade de

13
fornecimento elétrico do slot.

Os slots AGP Pro devem tornar-se padrão nas placas mãe, já que muitas placas
de vídeo virão apenas neste formato e não poderão ser usadas em placas mãe com slots
AGP comuns. Um slot AGP Pro suporta o uso de placas AGP comuns, mas um slot
AGP comum não suporta o uso de uma placa AGP Pro.

Figura: Slot AGP Pro (Marrom Abaixo)

A versão mais atual do barramento AGP é a terceira, permitindo o modo de


operação x8. O primeiro chipset a ter suporte a terceira versão do barramento AGP foi o
Intel 865P, lançado no mercado em maio de 2003.

Versão Modos de Operação Alimentação

AGP 1.0 x1 e x2 3,3V


AGP 2.0 x1, x2, x4 1,5V
AGP 3.0 x1, x2, x4 e x8 1,5V
Tabela: Tipos de Barramento AGP.

2.3.5 - Barramento USB

Até pouco tempo atrás, podíamos contar apenas com as portas seriais e paralelas
para a conexão de dispositivos externos, como impressoras e mouses. Mas, tendo
apenas duas portas seriais e uma paralela, temos recursos de expansão bastante
limitados. Além disso, a velocidade destas interfaces deixa muito a desejar.

O USB é um novo padrão para a conexão de periféricos externos. Suas


principais vantagens são: sua facilidade de uso e a possibilidade de se conectar vários
periféricos em uma única porta USB.

Com exceção do PCMCIA (usado em notebooks como veremos abaixo), o USB


é o primeiro barramento para micros PC realmente Plug-and-Play. Podemos conectar
periféricos mesmo com o micro ligado, bastando fornecer o “driver” do dispositivo para
que tudo funcione sem ser necessário nem mesmo reinicializar o micro. A controladora
USB também é suficientemente inteligente para perceber a desconexão de um
periférico.

14
Figura: Conectores USB

Podemos conectar até 127 periféricos a uma única saída USB em fila, ou seja,
conectando o primeiro periférico à saída USB da placa mãe e conectando os demais a
ele. A controladora USB do micro é o nó raiz do barramento. A este nó principal
podemos conectar outros nós chamados de “HUB”. Um HUB nada mais é do que um
benjamim que disponibiliza mais encaixes, sendo 7 o limite por HUB. O HUB possui
permissão para fornecer mais níveis de conexões, o que permite conectar mais HUBs ao
primeiro, até alcançar o limite de 127 periféricos permitidos pela porta USB. A idéia é
que periféricos maiores, como monitores e impressoras possam servir como HUBs,
disponibilizando várias saídas cada um. Os "monitores USB" nada mais são do que
monitores comuns com um HUB USB integrado.

2.3.6 – Barramento PCMCIA

Os slots PCMCIA são comuns em notebooks e handhelds onde, na maioria das


vezes, é o único meio de conectar placas de expansão. A principal vantagem dos
dispositivos PCMCIA é o tamanho: todos possuem dimensões um pouco menores que
as um cartão de crédito, apenas mais espessos. Atualmente é possível encontrar
praticamente qualquer tipo de dispositivos na forma de placas PCMCIA: modems,
placas de som, placas de rede, placas decodificadoras de DVD, cartões de memórias
SRAM e memórias Flash e, até mesmo, discos rígidos removíveis.

Figura: Cartão PCMCIA

O barramento PCMCIA é totalmente Plug-and-Play, assim como o USB.


Usando um sistema operacional PnP, como o Windows 98, Windows 2000 ou Windows
CE, você pode até mesmo conectar as placas com o micro ligado, que elas serão
reconhecidas automaticamente. Além disso, os periféricos têm a vantagem de gastar
menos energia e de serem facilmente transportados.

2.3.7 – Barramento PCI Express

Esse barramento veio para substituir o barramento PCI convencional, ele utiliza
um barramento de 8 bits (4 bits em cada direção) que opera a freqüências extremamente
altas, 2.5 GHz no padrão original. Isto permite uma taxa de transmissão teórica de 2.5
gigabits (ou pouco mais de 300 MB/s) em cada sentido ou 5 gigabits no total, muito
mais que os 133 MB/s do velho PCI de 32 bits.

Existe ainda a possibilidade de adicionar mais vias de dados, multiplicando a


velocidade de transmissão por 4x (32 bits), 8x (64 bits) ou 16x (128 bits) onde é
possível atingir a espantosa taxa de transmissão de 40 gigabits de dados em cada

15
sentido.

O padrão de 16x está sendo desenvolvidos para ser o sucessor do barramento


AGP. Um slot AGP de 8x atinge apenas 2 GB/s de taxa de transmissão de dados,
enquanto o PCI Express 16x atinge 5 GB/s.

AGP PCI Express


AGP 1X: 266 MBps PCI Express 1X: 250 MBps
AGP 4X: 1064 MBps PCI Express 2X: 500 MBps
AGP 8X: 2128 MBps PCI Express 8X: 2000 MBps
PCI Express 16X: 4000 MBps
Tabela: Comparativo AGP e PCI Express

Figura: Slots PCI Express

Figura: Foto do slot PCI Express de uma placa-mãe

Outro ponto interessante é que por utilizar apenas 8 bits de dados, o padrão 1x
utiliza um slot muito pequeno, com cerca de ¼ do tamanho de um slot PCI tradicional.
Com isto, o padrão prevê que estes slots sejam "encaixados" no espaço vago na borda
da placa mãe, como uma seqüência do slot PCI. Com isto, abrem-se as portas para uma
transição gradual, como no caso do ISA para o PCI, onde durante vários anos as placas
vinham com os dois tipos de slots e você podia misturar placas nos dois padrões.

16
Capítulo 3
Memórias

Embora o conceito de memória seja aparentemente simples, é talvez aquele


componente que apresenta maior variedade de tipos, tecnologias, organizações,
desempenhos e custos, entre todos os elementos de um sistema computacional.

A memória de um computador é organizada de forma hierárquica, como ilustra a


figura:

Registradores
Memória Cache
Memória Interna
Memória Principal Disco Magnético
CD-ROM
CD-RW
Memória Externa DVD-RW
DVD-RAM

Fita Magnética
Armazenamento de
segurança

O nível superior, mais próximo do processador é constituído pelos registradores.


Em seguida, vem um, ou dois níveis de memória cache, depois vem a memória
principal, que normalmente usa módulos de memória dinâmica de acesso aleatório
(DRAM). Essas memórias são consideradas internas ao sistema de computação. A
hierarquia continua com a memória externa, na qual o nível seguinte é tipicamente
composto por um disco rígido fixo, e com os níveis abaixo constituídos de meios
removíveis, tais como ZIP, discos ópticos e fitas magnéticas.

A medida que descemos a hierarquia de memória, o custo por bit torna-se


menor, a capacidade de memória fica maior r o tempo de acesso, mais lento. O ideal
seria usar apenas memórias rápidas, porém como essas memórias são as mais caras, o
tempo de acesso é sacrificado em favor de custo mais baixo, utilizando memórias mais
lentas. Deste modo, memórias menores, mais caras e mais rápidas são combinadas com
memórias maiores, mais baratas e mais lentas.

As características fundamentais e mais importantes dos sistemas de memórias de


computadores são:

 Localização (Interna ou Externa)


 Capacidade (Tamanho da palavra e Número de palavras)
 Unidade de Transferência (Palavra ou Bloco)
 Método de Acesso (Sequencial, Direto, Aleatório ou Associativo)

17
 Desempenho (Tempo de acesso, tempo de ciclo e taxa de
transferência)
 Tecnologia (Semicondutores, Magnética, Óptica e Magneto-Óptica)
 Características físicas (Volátil, não-Volátil, Apagável, não-apagável)
 Organização

3.1 Endereços de Memória

A unidade básica de memória é o dígito binário, chamado bit. Um bit pode ter
um 0 (zero) ou um 1 (um). Ele é a unidade mais simples possível.

As memórias são compostas de um determinado número de células (ou


posições), cada uma podendo armazenar uma parte da informação. Cada célula tem um
número, chamado de seu endereço, pelo qual os programas podem referenciá-la. Se a
memória tem n células, elas terão endereços de 0 a n-1.

Todas as células em uma memória possuem o mesmo número de bits. Se uma


célula consiste de k bits, ela pode ter 2k diferentes combinações de bits. A figura abaixo
mostra três organizações diferentes para uma memória de 96 bits. Note que células
adjacentes têm endereços consecutivos.

Endereço Endereço Endereço

0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 16 bits
7 7
8 12 bits
9
10
11
8 bits

Figura: Três formas de organizar uma memória de 96 bits.

3.2 Ordem de Bytes na memória

Os bytes em uma word podem ser numerados da esquerda para a direita (big
endian) ou da direita para a esquerda (little endian). A figura a seguir (ítem a) mostra
parte da memória de um computador de 32 bits cujos bytes são numerados da esquerda
para a direita, como nos chips da família Motorola. Na figura o ítem (b) mostra a

18
representação análoga para um computador de 32 bits usando numeração da direita para
a esquerda, como nos chips da família Intel.

É importante entender que em ambos os sistemas uma word de 32 bits com o


valor numérico de, digamos, 6 é representado pelos bits 110 nos três bits mais à direita
(baixa ordem) da word e zeros nos 29 bits da esquerda. Supondo uma word no endereço
0100, esses três bits estarão no byte 0111 no sistema big endian e no byte 0100 no
sistema little endian.

endereço endereço
1001 00000000 1001 00000000
1000 00000000 1000 00000000
0111 00000110 0111 00000000
word de 0110 00000000 word de 0110 00000000
32 bits 0101 00000000 32 bits 0101 00000000
0100 00000000 0100 00000110
0011 00000000 0011 00000000
0010 00000000 0010 00000000
0001 00000000 0001 00000000
0000 00000000 0000 00000000
(a) - Big Endian (b) - Little Endian
Figura: Modelos de Memória Big Endian e Little Endian.

3.3 Operações com a Memória Principal

Qualquer tipo de acesso à memória é feito através dos endereços de memória.


Este é colocado no registrador de endereço de memória (MAR). Em seguida, é
especificado por uma linha de controle o tipo de operação (ReaD/WRite).

Se a operação for de leitura, o controlador da memória recebe pelo barramento


(de endereço) o endereço a ser acessado e coloca o conteúdo deste endereço à
disposição no barramento (de dados) para que a CPU faça a leitura gravando este
conteúdo no registrador de dados da memória (MBR).

Caso a operação seja de gravação, o dado a ser gravado na memória deve ser
antecipadamente colocado no MBR e quando for acionado a linha de gravação WR o
valor de MBR é enviado para a memória através do barramento de dados e o
controlador de memória armazena o dado no endereço especificado pelo barramento de
endereço.

Qualquer acesso à memória necessitará dos registradores mar e MBR bem como
das linhas de controle RD e WR.

19
O comprimento da memória (quantidade de palavras) depende da largura do
barramento de endereço, na ordem de 2n, onde n é a quantidade de linhas no barramento
de endereço. Por exemplo, se um barramento de endereço tem 4 linhas, a memória terá
16 palavras (24).

Figura: Dimensões da memória (Comprimento e Largura).

A seguir é listado algumas larguras de barramentos de endereços e o tamanho da


memória correspondente:

Largura do Comprimento da Memória


Barramento de (bytes)
Endereço (linhas)
8 256
16 65.536 (64 kb)
20 1.048.576 (1 Mb)
24 16.777.216 (16 Mb)
32 4.294.967.296 (4 Gb)
Figura: Largura do barramento e Comprimento de memória.

20
3.4 Tecnologias de Memórias

A memória RAM é formada por circuitos de memória dinâmica, por vezes


abreviada por DRAM (Dynamic RAM). Esse tipo de circuito armazena os bits de
informação através de minúsculos capacitores: um capacitor carregado eqüivale a um
dado “1” e um capacitor descarregado a um “0”.

O capacitor é um elemento fácil de ser construído. Com isto, podemos Ter


circuitos pequenos com alta capacidade de armazenamento. O grande problema é que,
depois de algum tempo, os capacitores se descarregam. Dessa forma, deverá haver
períodos de recarga dos capacitores da memória (refresh).

Existe um outro tipo de memória muito mais rápida que a memória dinâmica.
Esse tipo de memória -- chamada memória estática e geralmente abreviada por SRAM
(Static RAM) -- utiliza em vez de capacitores, circuitos digitais chamados flop-flops
para armazenamento de cada bit. Esse circuitos armazenam os dados sem a necessidade
de nenhum ciclo de refresh.

No lugar de um capacitor, a memória estática tem um circuito completo. No


mesmo espaço onde poderíamos Ter vários capacitores (que são pequenos) teremos
somente alguns flip-flops (que são grandes).

Esse tipo de memória é bem mais cara e os circuitos maiores. Em contrapartida,


há uma grande vantagem: VELOCIDADE. Como não precisam do ciclo de refresh, as
memórias estáticas são extremamente rápidas.

Memórias Dinâmicas

Em uma memória dinâmica, durante o período de refresh, a memória não pode


ser acessada. Dentro da memória, os capacitores são organizados em uma matriz. Os
endereços dentro desta matriz crescerão da esquerda para direita e de cima para baixo.

0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
Figura: Esquema da matriz de capacitores de uma memória dinâmica.

Quando o processador precisa ler algum dado da memória, ele coloca o dado no
barramento de dados, o endereço no barramento de endereços e aciona apropriadamente
o barramento de controle. O controlador de memória percebe que é uma operação de
leitura em memória e pega o valor do endereço e o divide em dois: a parte mais

21
significativa do endereço selecionará a linha, e a parte menos significativa do endereço
selecionará a coluna.

Figura: Decodificação do Endereço de Memória DRAM

Essa seleção ocorre em conjunto com dois sinais básicos para o controle das
memórias: RAS (Row Address Strobe) e CAS (Column Address Strobe). O primeiro
sinal indica que o valor presente no barramento de endereços está informando a linha de
onde o dado deverá ser lido, enquanto o segundo sinal indica que o valor está
informando a coluna de onde o dado deverá ser lido.

3.4.1 Tipos de Memória RAM e ROM mais conhecidas:

Memória ROM

PROM (Programmable Read Only Memory) - o PROM tem sua gravação


feita por aparelhos especiais que trabalham através de uma reação física com elementos
elétricos. É um dos primeiros tipos de memória ROM, os dados gravados na memória
PROM não podem ser apagados ou alterados;

EPROM (Electrically Programmable Read Only Memory) – Este é


geralmente usado para armazenar a BIOS do computador. A tecnologia EPROM
permite a regravação de seu conteúdo através de equipamentos especiais (geralmente
encontráveis em estabelecimentos de assistência técnica);

EAROM (Electrically Alterable Read Only Memory) – são memórias


similares à EPROM. Seu conteúdo pode ser apagado aplicando-se uma voltagem
específica aos pinos de programação (daí o nome "electrically alterable - alteração
elétrica");

FlashROM (Flash Read Only Memory) – um tipo de chip de memória para


BIOS de computador que permite que esta seja atualizada através de softwares

22
apropriados.

Memória RAM

Módulo SIMM de 30 vias

Os módulos SIMM de 30 vias são mais antigos, e são usados apenas em micros
386 e 486. Os módulos SIMM de 30 vias são módulos de 8 bits, enquanto tanto o 386,
quanto o 486 são processadores de 32 bits. Como o processador precisa de 32 bits, e
cada pente fornece apenas 8, é preciso combinar 4 pentes, que serão acessados pelo
processador como se fossem um só. Temos então que usar estes módulos em quartetos,
4 módulos ou 8 módulos, mas nunca um número quebrado.

Figura: Módulo SIMM de 30 vias.

É importante lembrar que todos os 4 pentes que formam um banco precisam ser
idênticos, caso contrário podem ocorrer tratamentos do micro. Você pode usar 4
módulos de um tipo para formar o primeiro banco e 4 módulos diferentes para formar
um segundo banco, mas nunca misturar dentro de um mesmo banco.

Módulo SIMM de 72 vias

Os módulos de 72 vias são módulos de 32 bits. Como o 486 é+ um processador


de 32 bits, é preciso apenas um pente para formar cada banco de memória. Apartir do
Pentium porém todos os processadores acessam a memória usando palavras binárias de
64 bits, são então necessários 2 pentes para formar cada banco, ou seja, usamos os
módulos de 72 vias "aos pares".

Figura: Módulo SIMM de 72 vias.

Se você pretende instalar 16 MB de memória, precisará de 2 pentes de 8 MB ou


então 4 pentes de 4 MB, nunca poderá instalar um único pente de 16 MB como poderia
ser feito em um 486.

23
Módulo DIMM de 168 vias

Ao contrario dos módulos SIMM de 30 e 72 vias, os módulos DIMM possuem


contatos em ambos os lados do pente, o que justifica seu nome, “Double In Line
Memory Module” ou “módulo de memória com duas linhas de contato”. Como Os
módulos DIMM trabalham com palavras binárias de 64 bits, um único módulo é
suficiente para preencher um banco de memória em um micro Pentium ou superior,
dispensando seu uso em pares. Caso você deseje instalar 64 MB de memória em um
Pentium II por exemplo, será preciso comprar apenas um único módulo DIMM de 64
MB.

Figura: Módulo DIMM de 168 vias.

Os módulos DIMM de 168 vias são os únicos fabricados atualmente. Você


dificilmente encontrará módulos de 72 vias, ou placas mãe novas que os suportem à
venda, apenas componentes usados.

Memória DDR

A memória DDR (Double Data Rating) é baseada na tecnologia SDRAM, seus


pentes (ou módulos) possuem 184 terminais, Fisicamente, há apenas uma divisão no
encaixe do pente, sua voltagem é 2.5 V, isso diminui o consumo de energia e dissipação
de calor.

Figura: Memória RAM – DDR

Além disso, as DDR podem realizar o dobro de operações por ciclo de clock.
Por exemplo, uma memória DDR de 266 MHz trabalha, na verdade, com 133 MHz,

24
mas como ela realiza duas operações por vez, é como se trabalhasse a 266 MHz (o
dobro). A indicação destas memórias é com relação a sua taxa de transferência de MB
por segundo.

Memória Velocidade
SDRAM PC-100 800 MB/s
SDRAM PC-133 1.064 MB/s
DDR-200 ou PC-1600 1.600 MB/s
DDR-266 ou PC-2100 2.100 MB/s
DDR-333 ou PC-2700 2.700 MB/s
DDR-400 ou PC-3200 3.200 MB/s
Dual DDR-226 4.200 MB/s
Dual DDR-333 5.400 MB/s
Dual DDR-400 6.400 MB/s
Tabela: Taxa de Transferência memórias DDR

DDR Dual Channel

Basicamente existem duas controladoras na placa mãe para acessar estes tipos de
memória. As memórias atuais seguem o padrão de 64 bits. Usando duas controladoras
simultaneamente, o acesso passa a ser de 128 bits. Para entender melhor, imagine que
você use dois pentes de 256 MB de memória RAM DDR-333 em seu computador. O
computador trabalhará com elas como sendo um conjunto de 512 MB com barramento
de 64 bits (ou seja, 2.700 MB por segundo). Essa configuração funcionando no esquema
Dual DDR fará com que o barramento passe a ser de 128 bits, aumentando a velocidade
para 5.400 MB por segundo.

O mais importante é que para trabalhar em Dual Channel é necessário que sua
placa-mãe tenha esse recurso. Além disso ela só é eficiente se utilizado com
processadores modernos.

Memória DDR2

A memória DDR2 é uma evolução da tão utilizada memória DDR. Entre suas principais
características estão o menor consumo de energia elétrica, menor custo de produção,
maior largura de banda de dados e velocidades mais rápidas. A memória DDR2 não é
compatível com placas-mãe que trabalham com memória DDR, Além disto o DDR2
conta com 240 terminais e a abertura está posicionada em um local diferente das DDR.

Figura: Comparativo DDR e DDR2

25
A tecnologia DDR2 requer 1,8 V. Por causa disso, a memória DDR2 acaba
tendo melhor desempenho no controle da temperatura. Além disto o padrão DDR2
trabalha com as freqüências de 400 MHz, 533 MHz, 667 MHz e 800 MHz, etc.

Assim como nas DDR a nomenclatura das DDR2 referenciam sua taxa de transferência:

Freqüência Nomenclatura Taxa de Transf.


400 MHz DDR2-400 PC2-3200 3200 MB/s
533 MHz DDR2-533 PC2-4300 4300 MB/s
677 MHz DDR2-677 PC2-5300 5300 MB/s
800 MHz DDR2-800 PC2-6400 6400 MB/s
Tabela: Taxa de Transferência memórias DDR2

3.5 Memória Cache

A memória cache permite um grande ganho na performace de acesso à memória


por parte da CPU. Isto se deve a dois conceitos básicos. A diferença de velocidade de
acesso da memória principal e da memória cache; e o conceito de localidade.

3.5.1 Velocidade de Acesso

A Memória Principal utiliza basicamente tecnologia DRAM (RAM dinâmica)


que apesar de ser barata, não se compara em termos de velocidade às SRAMs (RAMs
estáticas) das quais são fabricadas as memórias cache.

3.5.2 Conceito de Localidade

O conceito de localidade está relacionado com o modo pelo qual os programas


em média são escritos e executados. A execução de um programa se realiza, na média,
em pequenos grupos de instruções. Este fato pode ser analisado por dois tipos de
localidade: espacial e temporal.

Localidade Temporal - Se um programa acessa uma palavra da memória, há uma boa


probabilidade de que ele em breve acesse a mesma palavra novamente.

Localidade Espacial - Se um programa acessa uma palavra da memória, há uma boa


probabilidade de que ele acesse uma outra palavra próxima subseqüente ou de endereço
adjacente àquela palavra que ele acabou de acessar.

3.5.3 Utilização da Memória Cache

Sempre que a CPU vai buscar uma nova instrução (ou dado), ela acessa a
memória cache;

Se a instrução (ou dado) estiver no cache (hit cache), ela é transferida em alta

26
velocidade para a CPU;

Se a instrução (ou dado) não estiver no cache (miss cache), então o sistema
transfere a instrução (ou dado) desejada da Memória Principal para o cache. Só que esta
transferência não é só da instrução desejada, mas dela e de um grupo subseqüente, na
pressuposição de que instruções do grupo serão requeridas pela CPU em seguida.

3.5.4 Mapeamento de Dados

Existem basicamente três modelos de mapeamento de dados em memória cache:

• Cache com mapeamento direto.


• Cache completamente associativo.
• Cache associativo por grupos

Mapeamento Direto

O controlador de cache divide o cache de memória em blocos do tamanho de


uma linha (128 bits). A memória cache será dividida em blocos do tamanho da memória
cache. Se o cache for de 256 Kb, a memória será dividida em blocos de 256 Kb. Uma
memória de 8 Mb será dividida em 32 blocos de 256 Kb, por exemplo.

Cada linha do cache apontará a sua linha correspondente dentro do bloco -- ou


seja, a primeira linha do cache armazenará os dados da primeira linha do bloco de
memória RAM, e assim analogamente para as demais linhas.

Se o cache for de 256 kb, ele será dividido em 16.384 linhas (256 kb = 262.144
bytes -- como cada linha tem 16 bytes (128 bits), o cache e cada bloco de memória
serão divididos em 16.384 linhas). No caso de um cache de 512 kb, ele será dividido em
32.768 linhas.

O cache pode ser usado para acessar qualquer bloco. Entretanto, cada linha do
cache aponta exclusivamente para a linha de mesmo número na RAM,
independentemente do bloco -- isto é, tanto no primeiro bloco, quanto no segundo, no
terceiro ou no último, a Quinta linha ocupará a Quinta linha no cache.

Isso significa que é impossível Ter no cache dois ou mais dados que ocupem o
mesmo número de linha, independentemente do bloco que ocupam. Por exemplo, o
conteúdo da décima linha do primeiro bloco e o conteúdo da décima linha do vigésimo
bloco nunca poderão estar presentes simultaneamente no cache, já que serão
obrigatoriamente armazenados na décima linha do cache. O último dado lido é o que
prevalecerá.

A organização, contudo é simples. Em uma memória estática extra,


armazenamos um diretório do conteúdo do cache. Essa memória, chamada tag, serve
para o controlador de cache saber se um determinado dado já está ou não armazenado
no cache.

27
Memória
0 KB
0
1
2
3 Bloco 0
4 256 KB
1
Cache de 256 KB
0
1 16382
2 16383
256 KB
3 Bloco 1
4 256 KB
1 512 KB
Bloco 2
16382 256 KB
16383 768 KB
Bloco 31
256 KB
8 MB

Figura: Memória Cache com Mapeamento Direto

Cache Completamente Associativo

No cache completamente associativo, as linhas do cache de memória poderão


armazenar qualquer linha da memória RAM, independentemente de sua localização.

Com isso, a probabilidade de um dado estar presente no cache aumenta, pois não
há situações “proibidas” como no cache com mapeamento direto.

Entretanto, o circuito de verificação do controlador de cache será muito mais


complexo e o tag, muito maior, já que em uma linha do cache poderá estar armazenada
qualquer linha da memória RAM.

Embora esse esquema em primeiro instante pareça ser melhor do que o


mapeamento direto, o controlador de cache pode demorar muito tempo verificando se
um dado está ou não presente no cache, ocorrendo situações em que, paradoxalmente,
seria muito mais rápido acessar o dado diretamente em memória RAM do que buscá-lo
no cache.

Cache Associativo por Grupos

O cache associativo por grupos é atualmente a solução que apresenta melhor


desempenho prático. Ela reúne as vantagens dos dois modelos anteriores.

O controlador de cache divide o cache de memória em unidades menores. Um


cache associativo de 4 vias (four-way) faria com que um cache de memória de 256 KB
fosse dividido em 4 caches independentes de 64 KB. Neste caso, a memória RAM seria
igualmente dividida em blocos de 64 KB.

Esses caches independentes funcionarão no esquema de mapeamento direto.

28
Porém, ao contrário do verdadeiro esquema de mapeamento direto, você poderá
encontrar, no cache de memória, os dados de 2 linhas de mesmo número de ordem, até o
limite máximo do número de unidades em que o cache de memória foi dividido -- ou
seja, em um cache associativo de 4 vias, podem-se armazenar até 4 linhas de mesmo
número de ordem.

O sistema de controle deste tipo de cache de memória é bastante complexo e não


são todos os controladores de cache que trabalham desta maneira.

29
Capítulo 4
Unidade Central de Processamento

Para entender a organização da CPU, devemos considerar as ações que ela deve
executar:

• Busca de instruções: a CPU lê uma instrução da memória.


• Interpretação da instrução: a instrução é decodificada para determinar a ação
requerida.
• Busca de dados: a execução de uma instrução pode requerer leitura de dados
da memória ou de um módulo de E/S.
• Processamento de Dados: a execução de uma instrução pode requerer efetuar
uma operação aritmética ou lógica sobre os dados.
• Escrita de dados: os resultados da execução podem requerer escrever dados
na memória ou em um módulo de E/S.

Para executar essas ações, a CPU precisa armazenar alguns dados


temporariamente. Ela deve manter a posição de memória da última instrução, para saber
onde obter a próxima instrução, e precisa também armazenar instruções e dados
temporariamente, enquanto uma instrução está sendo executada. Em outras palavras, a
CPU necessita de uma memória interna, constituída basicamente por registradores.

Figura: Estrutura interna da CPU

30
Abaixo temos um exemplo de “pinagem” de um processador real:

D4 D5
D3 D6
D2 D7 BARRAMENTO DE
D1 D8 DADOS
D0 D9
D10
D11
D12
D13
D14
D15
GRD
A23
A22
A21
VCC
A20
A19 BARRAMENTO DE
A18 ENDEREÇOS
A17
A16
A15
A14
A13
A12
A11
A10
A0 A9
A1 A8
A2 A7
A3 A6
A4 A5

Figura: Exemplo de “Pinagem” de um processador

4.1 Principais componentes da CPU

Veremos alguns dos principais componentes internos de um processador, assim


como sua definição e características.

4.1.1 Registradores

Dispositivo capaz de armazenar informações, conceitualmente, os registradores


são o mesmo que memória principal. A diferença é que os registradores estão
fisicamente localizados dentro do próprio processador, de modo que eles podem ser
lidos ou escritos mais rapidamente do que as palavras na memória principal. Em alguns
processadores um grupo de registradores, numerados 0, 1, 2.. n-1, fica disponível para
armazenamento local ou armazenamento de rascunho.

Comprimento dos Registradores

Como os registradores MAR e MBR estão intimamente associados aos


barramentos de endereço e de dados respectivamente, os comprimentos destes
registradores serão iguais às larguras destes barramentos. O registrador PC por tratar-se
de um endereço, também terá o mesmo comprimento que o registrador MAR. Contudo,
há algumas questões a serem consideradas antes de determinar o comprimento do
registrador IR.

Tomemos como exemplo a execução da instrução :

31
LODD [ 0C7h]

O registrador IR deve receber a instrução que será decodificada e executada. No


a ilustração abaixo, PC aponta para o endereço 000011101110b (0EEh). A primeira
parte da instrução é 0000b (0h) que suponha que seja o equivalente a “armazene no
registrador acumulador AC o conteúdo da memória no endereço...” ou LODD [...]
Neste ponto, substituiremos as reticências (...) pelo endereço especificado logo a seguir,
neste caso por 000011000111b (0C7h), então teremos a seguinte instrução “armazene
no registrador acumulador AC o conteúdo do endereço 11000111b” ou simplesmente
LODD 000011000111b ou ainda LODD 0C7h.

Como podemos ver, nas instruções que acessam a memória (load e store), é
necessário pelo menos um byte para especificar o endereço do dado a ser buscado da
memória, além do restante da instrução (código da operação) que dirá o que fazer com
este dado (por exemplo, carregar no registrador AC, como acima). Assim, na instrução
acima, são necessários 2 bytes para representar uma instrução destas.

Figura - Representação de Conteúdo e Endereço de Memória

Se a largura dos endereços da memória tiver 12 bits por exemplo, serão


necessários 12 bits (1 byte e meio) para representar um endereço na instrução mais o
código da operação o que deverá resultar em 2 bytes para uma instrução.

32
Se o registrador MBR tiver apenas 8 bits, deverão ser feitos 2 acessos à memória
para preencher todo o registrador IR com a instrução correta (00C7h) ou LODD
[00C7h].

4.1.2 Barramentos

Um barramento é uma coleção de fios usados para transmitir sinais em paralelo.


Tipicamente, os barramentos são usados para permitir que o conteúdo de um registrador
possa ser copiado para outro. Diferentes dos barramentos de sistema, esses barramentos
apenas conectam dois dispositivos e, portanto, não há necessidade de linhas de endereço
e linhas de controle extensivo. As n linhas de dados e uma ou duas linhas de controle
geralmente são suficientes.

Os barramentos podem ser unidirecional ou bidirecional sendo que não podem


ser transmitidos em ambos os sentidos simultaneamente.

4.1.3 Multiplexadores e Decodificadores

Os circuitos que possuem uma ou mais linhas de entradas e calcula um ou mais


valores de saída que são determinados unicamente pelas entradas atuais são chamados
circuitos combinatórios. Dois dos mais importantes são os multiplexadores e os
decodificadores.

Entrada Entrada

Controle Controle

Multiplexador Decodificador
2 para 1 4 para 8

Saída Saída

Figura: Multiplexador e Decodificador

4.1.4 ULA ou ALU

Todo computador precisa, de alguma maneira, realizar operações aritméticas. O


circuito mais simples é apenas um somador, que pega duas entradas de n bits e produz
uma saída (soma).

Um circuito aritmético mais geral é a ALU (Arithmetic Logical Unit) ou ULA


(Unidade Lógica Aritmética). Ela também possui duas entradas de dados e uma saída de
dados, mas também possui algumas entradas e saídas de controle.

Normalmente uma ULA tem dois bits de função, que determinam qual a função

33
que a ULA deve realizar. A ULA que usaremos como exemplo pode calcular: A + B, A
and B, A, not A.
A B
F0 F1 Função
0 0 A+B
0 1 A and B
1 0 A F0 N
1 1 Not A
F1 ULA Z

F (A, B)

Figura: ULA – Unidade Lógica Aritmética

A ULA da figura possui entradas de controle F0 e F1 e conforme a tabela acima,


realiza as funções listadas. Ela tem também saídas de controle N e Z sendo que se N = 1
a saída da ULA (resultado) é negativo caso contrário é positivo, e a saída Z que indica
se a saída da ULA é Zero.

4.1.5 Deslocadores

Embora algumas ULAs possam também realizar deslocamento, na maioria das


vezes é necessário ter uma unidade de deslocamento separada. Este circuito pode
deslocar uma entrada multibit de 1 bit para esquerda ou direita, ou ainda, não realizar
nenhum deslocamento.
Entrada

S0
S1 Deslocador

Saída

Figura: Deslocador

34
4.1.6 Relógios (clocks)

São circuitos que emitem uma seqüência periódica de pulsos. Estes pulsos
definem os ciclos da máquina, sendo que em cada ciclo, ocorre uma atividade básica, tal
como a execução de uma micro-instrução.

É freqüentemente útil, dividir os ciclos em sub-ciclos, de modo que diferentes


partes da micro-instrução possam ser realizadas em uma ordem bem definida.

1x
Relógio Atraso
2x
Atraso
3x
Atraso

Figura: Relógio (clock)

A figura mostra um relógio com 4 saídas, a primeira é a saída primária, as outras


sofrem atrasos na linha de saída, dividindo o ciclo em 4.

4.2 Ciclo de Instrução

O ciclo de instrução inclui os seguintes sub-ciclos:

• Busca: lê a próxima instrução da memória para a CPU.


• Execução: interpreta o código de operação e efetua a operação indicada.
• Interrupção: se as interrupções estão habilitadas e ocorreu uma interrupção,
salva o estado do processo atual e processa a interrupção.

Em linhas gerais a figura abaixo ilustra estas etapas:

Interrupções
desabilitadas

Interrupções
Busca a Executa a habilitadas Verifica
inicio próxima instrução interrupções;
instrução
Processa
interrupção

PARADA

Figura: Ciclo de instrução

35
Agora vejamos em detalhes o funcionamento de um ciclo de instrução:

A seqüência exata de eventos durante um ciclo de instrução depende do projeto


da CPU. É possível, entretanto, indicar o que pode acontecer em termos gerais. Suponha
que a CPU empregue um registrador de endereço de memória (MAR), um registrador
de armazenamento temporário de dados (MBR), um contador de programas (PC) e um
registrador de instrução (IR).

Durante o ciclo de busca, uma instrução é lida a partir da memória. A figura a


seguir mostra o fluxo de dados durante este ciclo. O contador de programa PC contém o
endereço da próxima instrução a ser buscada. Esse endereço é movido para o MAR e
colocado no barramento de endereço. A unidade de controle requisita a leitura na
memória, e o resultado é colocado no barramento de dados e copiado para o MBR e
então movido para IR. Enquanto isso, o contador de programas (PC) é incrementado de
1, para preparar a próxima busca de instrução.

Uma vez que o ciclo de busca termina, a unidade de controle examina o


conteúdo do IR para determinar se a instrução especifica algum operando com
endereçamento indireto. Se isto ocorrer um ciclo indireto é executado.

Um ciclo indireto ocorrerá sempre que uma instrução envolver um ou mais


operandos, onde um deles poderá requerer um acesso indireto à memória, isto é, usar
modo de endereçamento indireto, necessitando de acessos adicionais à memória.

Figura: Estrutura interna do Processador

O ciclo de busca e o indireto são simples e previsíveis. O ciclo de execução


pode ter muitas formas dependendo de qual das várias instruções de máquina está
contida no IR. Ele pode envolver transferência de dados entre registradores, leitura e
escrita na memória ou em dispositivos de E/S e invocação de uma operação da ULA.

36
4.2.1 Instruções por Ciclo

Qual a importância e o significado real da freqüência do processador?

Quando se faz uma soma em uma calculadora, basta teclar cada um dos
algarismos do 1° numero, teclar o sinal de mais, depois teclarmos os algarismos do
segundo numero e teclarmos o sinal de igual.

Já em um computador a história é bem mais complexa, veja a seguir os passos


de uma simples soma:

• Localizar a instrução na memória;


• Move-la para o registrador de instruções (IR);
• Decodificar o código binário para executar a instrução;
• Determinar o tamanho dos dados;
• Determinar a localização e buscar os dados;
• Finalmente fazer a soma (parte mais simples e mais rápida da operação)

Em cada nova geração de processadores, os mesmos são capazes de executar as


operações relativas ao processamento de uma instrução em menor número de ciclos do
clock. Veja na tabela abaixo um breve comparativo:

Processador Ciclos para operação


80386 No mínimo 6 ciclos para uma instrução de soma de 2 números
80486 Em geral 2 ciclos para uma instrução de soma de 2 números
Pentium 1 ciclo para instrução de soma de 2 números
Pentium Pro 1 ciclo para instrução de soma de 3 números
Figura: Ciclos necessários para execução de instrução

Portanto fazendo uma analogia a um automóvel, para aumentar a velocidade, é


melhor trocar de marcha do que acelerar.

Se compararmos um processador 80486 de 100 MHZ com um Pentium de 100


MHZ fica muito claro perceber que o processador Pentium é muito mais eficaz.

Podemos concluir que a freqüência não é o único fator a ser considerado para
determinar qual o melhor processador, e sim analisarmos também a construção do
processador para definir a sua eficácia.

4.3 Pipeline de Instruções

A medida que os sistemas de computação evoluem, é possível obter maior


desempenho com o uso de tecnologias mais avançadas, tais como um conjunto de
circuitos mais rápidos. Além disso, uma melhor organização da CPU pode também
melhorar o desempenho. Como exemplo, pode-se citar o uso de memória cache. Outra
abordagem comum na organização da CPU é o uso de Pipeline de instruções.

Uma pipeline de instruções é semelhante a uma linha de montagem de uma


indústria. Uma linha de montagem tira proveito do fato de que um produto passa por

37
vários estágios de produção: produtos em vários estágios do processo de produção
podem ser trabalhados simultaneamente. Em uma pipeline de instruções, assim como
em uma linha de montagem, novas entradas são aceitas em uma extremidade, antes que
entradas aceitas previamente apareçam como saídas na outra extremidade.

Como uma abordagem mais simples, suponha que o processamento de uma


instrução é subdividido em dois estágios: busca da instrução e execução da instrução.
Existem momentos durante a execução de uma instrução em que a memória principal
não está sendo usada. Este instante pode ser usado para buscar a próxima instrução, em
paralelo com a execução da instrução corrente. A figura abaixo ilustra o processo de
pipeline:

Estágios Estágios
Processo 1
Processo 1 Processo 2 Processo 3 Processo 2
Processo 3
P1c P2c P3c P1c P2c P3c
P1b P2b P3b P1b P2b P3b
P1a P2a P3a P1a P2a P3a

Tempo Tempo
a) Execução seqüencial de 3 processos de b) Execução em pipeline de 3 processos de
3 estágios 3 estágios

Figura: Comparativo em processamento seqüencial e pipeline.

Processador Numero de Estágios


Pentium III 10
Atlhon 11
Pentium 4 20
AMD Athlon™ 64 12
Intel Core Duo 14
Pentium Extreme Edition 31
Tabela: Numero de estágios dos processadores

4.4 Unidade de Controle – Micro-arquitetura e Micro-programação

A execução de uma instrução envolve uma seqüência de sub-passos, geralmente


denominados ciclos. Por exemplo, uma execução pode consistir de ciclos de busca,
indireto, execução e interrupção.

Cada ciclo é, por sua vez, constituído por uma seqüência de uma ou mais
operações fundamentais, denominadas micro-operações. Uma única micro-operação
geralmente envolve uma transferência de dados entre registradores, transferência de
dados entre um registrador e um barramento externo ou uma operação simples da ULA.

38
A Unidade de Controle de um processador efetua duas tarefas: (1) faz com que o
processador execute micro operações na seqüência apropriada, determinada pelo
programa que está sendo executado; e (2) gera sinais de controle que causam a execução
de cada micro-operação.
Por exemplo, um ciclo de busca pode ser constituído pelas micro-operações que
seguem:
t1: MAR  (PC)
t2: MBR  Memória
PC  (PC) + I
t3: IR  (MBR)
Para que esta seqüência seja realizada corretamente, supõe-se a existência de um
relógio, para propósitos de temporização, e que ele emite pulsos de relógio
regularmente espaçados. Cada pulso de relógio define uma unidade de tempo. Portanto,
todas as unidades de tempo têm a mesma duração. Cada micro-operação é executada
dentro de um intervalo de uma única unidade de tempo. A notação t1, t2 e t3
representam unidades de tempo sucessivas.
Este conjunto de micro-operações para realizar o ciclo de busca definem uma
micro-instrução de busca. Uma seqüência de micro-instruções, denominamos micro-
programa ou firmware. Este último termo reflete o fato de que um micro-programa é
um meio termo entre o hardware e o software.
O micro-programa para ser executado é previamente armazenado em uma
memória de controle interna a Unidade de Controle. Veja a figura:

Registrador de Instrução

Unidade de
Controle
Decodificador

Figura: Execução de uma micro-instrução.

Bits Registrador de endereço de


ULA controle
Lógica de
Seqüência-
mento
Relógio

Memória de Controle

Registrador de Micro-instrução

Decodificador

Sinais de Controle internos à Sinais de Controle para o


CPU Barramento do Sistema

39
A arquitetura a nível de micro-programação é denominada micro-arquitetura.
Para que possamos entender o funcionamento a nível de micro-programação tomaremos
um exemplo hipotético. As vias de dados de nossa micro-arquitetura são ilustradas na
figura que segue. Elas correspondem àquela parte da CPU que contém a ULA, suas
entradas e suas saídas.

Esta micro-arquitetura possui 16 registradores idênticos de 16 bits cada um,


denominados PC, AC, SP, e assim por diante, que formam o que chamamos de memória
rascunho acessível apenas a nível de micro-programação.

Os registradores rotulados como 0, +1 e –1 serão usados para armazenar as


constantes indicadas. Cada registrador pode dar saída de seu conteúdo em um ou nos
dois barramentos internos, o barramento A e o barramento B, e cada um pode ser
carregado a partir de um terceiro barramento interno, o barramento C.

Os barramentos A e B alimentam a ULA de largura 16 bits, que pode realizar


quatro funções: A + B, A AND B, A e NOT A . A função a ser executada pela ULA é
especificada pelas linhas de controle F0 e F1.

A ULA gera dois bits de status (PWS), com base corrente da ULA: N, que é
ligado quando a saída da ULA é negativa, e Z, que é ligado quando a saída da ULA é
zero.

A saída da ULA entra em um deslocador, que pode deslocá-la de 1 bit em


qualquer direção, ou nenhuma. É possível executar um deslocamento de 2 bits à
esquerda do conteúdo de um registrador, R, calculando R + R na ULA (que é um
deslocamento de 1 bit para esquerda) e então deslocando a soma de outro bit à esquerda
utilizando o deslocador.

Nem o barramento A, nem o barramento B, alimenta a ULA diretamente. Em


vez disso, cada um alimenta um latch (isto é, um registrador) que, por sua vez alimenta
a ULA. Os latches são necessários porque a ULA é um circuito combinatório – ela
calcula continuamente uma saída a partir das entradas correntes e do código de função.

Esta organização poderia causar problemas ao calcular, por exemplo, A  A +


B. Como A está sendo armazenado, o valor do barramento A começa a modificar,
fazendo com que a saída da ULA, e portanto o barramento C, se modifiquem. Inserindo
os latches nos barramentos A e B, podemos congelar lá os valores originais de A e B no
inicio do ciclo, de modo que a ULA fique protegida de mudanças nos barramentos
enquanto um novo valor está sendo armazenado na memória rascunho.

Para a comunicação com a memória principal foram inseridos o MAR e o MBR.


O MAR pode ser carregado a partir do latch B, em paralelo com a operação da ULA. A
linha M0 controla a carga do MAR.

Nas escritas, o MBR pode ser carregado com a saída do deslocador, em paralelo,
ou no lugar de uma escrita na memória de rascunho. M1 controla a carga de MBR a
partir do deslocador. M2 e M3 controlam as leituras e escritas da memória. Nas leituras,
o dado lido da memória pode chegar à esquerda da ULA através do multiplexador A,
indicado por AMUX. A linha de controle A0, determina se o latch A ou o MBR que

40
deve alimentar a ULA.
Barramento C Bar. A Bar. B

PC

AC

SP

IR

TIR

+1

-1

amask

smask

L0 Latch A Latch B L1
MAR

MBR
M0
AMUX
M2
M1
F0 N
M3
ULA
F1 Z
S0
Deslocador
S1

41
Micro-instruções

Controlam as vias de dados

O formato das micro-instruções a serem utilizadas na micro-arquitetura proposta


é chamado MIR (MicroInstrution Register) e é apresentado a seguir:

MIR
A C U S M M R W E
M O L H B A D R N C B A ADDR
U N A R R C
X D

AMUX  controla a entrada esquerda da ULA: 0 == Latch A, 1 == MBR

ULA  função da ULA: 0 == A + B, 1 = A and B, 2 == A e 3 == not A

SH  função do deslocador: 0 == nenhum deslocamento, 1 == à direita, 2 == à


esquerda

MBR  carrega MBR a partir do deslocador: 0 == não carrega, 1 == carrega MBR

MAR  carrega MAR a partir do Latch B: 0 == não carrega, 1 == carrega MAR

RD  requisita leitura de memória: 0 ==nenhuma leitura, 1 == carrega MBR a partir da


memória

WR  requisita escrita na memória: 0 == nenhuma escrita. 1 == escreve o conteúdo de


MBR na memória

ENC  controla armazenamento na memória rascunho: 0 == não armazena, 1


==armazena

C  seleciona registrador para armazenamento se ENC == 1: 0 == PC, 1 == AC, 2 ==


SP etc.

B  seleciona fonte do Barramento B: 0 == PC, 1== AC, 2 == SP, 3== ... etc.

A  seleciona fonte do Barramento A: 0 == PC, 1== AC, 2 == SP, 3== ... etc.

COND  para realizar saltos: 0 == não desvie, 1 == desvie se N == 1, 2 == desvie se


Z== 1, 3 == desvie sempre

ADDR  Caso haja desvio em COND, ADDR contém o endereço a ser acessado

42
Temporização de Micro-instruções

Um ciclo básico da ULA consiste em utilizar os latches A e B, prover tempo


para que a ULA e o deslocador executem seu trabalho e armazenar os resultados. Estes
eventos deverão ocorrer nesta seqüência, pois se tentarmos armazenar o valor existente
no barramento C na memória de rascunho antes que os latches A e B sejam carregados,
será armazenado sujeira em vez de dados úteis. Para conseguir o seqüencialmente
correto destes eventos tem-se um relógio de 4 fases, isto é, um relógio com 4 sub-
ciclos:

1. Carregar a próxima micro-instrução a ser executada no registrador MIR;


2. Colocar os conteúdos dos registradores nos barramentos A e B e armazená-
los nos latches A e B;
3. Agora que as entradas estão estáveis, dar tempo para que a ULA e o
deslocador produzam uma saída estável, e carregar o MAR se requisitado;
4. Agora que a saída do deslocador está estável, armazenar o valor existente no
barramento C (na memória rascunho) e carregar MBR, se for necessário.

Exemplo de uma micro-instrução:

Uma operação de transferência de dados como:

MBR := AC

Deve ser realizada através de uma micro-instrução com os sinais de controle


mostrados abaixo:

A C U S M M R W E
M O L H B A D R N C B A ADDR
U N A R R C
X D
0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

No exemplo, os sinais gerados atuam sobre o computador da seguinte forma:

a) AMUX = 0, indica que a entrada A, da ULA, provem do latch A.

b) COND = 00, portanto, não ocorre salto na execução do micro-programa, ou seja, a


próxima micro-instrução é obtida no endereço subseqüente da atual micro-instrução.
Em outras palavras, isso significa que o circuito da lógica de seqüência mostrada na
Figura, recebendo as entradas desses bits de condição, atuam sobre o multiplexador
mostrado no topo do diagrama da Unidade de Controle, para que a entrada para o
MPC, contador de micro-programa, provenha do lado correspondente ao MPC +1,
entrada esquerda do multiplexador.

c) ULA = 10, indica que a saída da ULA corresponde a entrada do lado do Latch A.

d) SH = 00, indica que não ocorre deslocamento, no dado provindo da ULA.

43
e) MBR = 1, significa que deve haver carga do MBR.

f) MAR = 0, significa que não haverá carga do MAR.

g) WR = 0, indica que não será realizada operação de escrita na memória .

h) RD =1, indica que a memória é acessada por operação de leitura.

i) ENC = 0, indica que não haverá carga de registradores pelo barramento C.

j) C = 0000, uma vez que não haverá carga pelo barramento C, esse valor é irrelevante.

k) A = 0001, é o endereço do registrador AC, que será carregado no latch A.

l) B = 0000, como a entrada do barramento B não será usada pela ULA, esse valor é
irrelevante.

m) ADDR = 00000000, como não haverá salto, esse valor é irrelevante.

EXEMPLO 2:

Se no Exemplo 1 acrescentarmos um comando de salto, ficando

MBR := AC; goto 8;

a micro-instrução passaria a ser, conforme a figura abaixo:

A C U S M M R W E
M O L H B A D R N C B A ADDR
U N A R R C
X D
0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0

Nesse caso foram alterados os campos de condição (COND) e o ADDR


.
a) COND = 11, portanto, ocorre salto incondicional na execução do micro-programa,
ou seja, a próxima micro-instrução é obtida no endereço indicado pelo campo de
endereço de salto, campo ADDR da atual micro-instrução. Em outras palavras, isso
significa que o circuito da lógica de seqüência mostrada na figura da unidade de
controle, recebendo as entradas desses bits de condição, atuam sobre o
multiplexador mostrado no topo do diagrama da Unidade de Controle, para que a
entrada para o MPC, contador de micro-programa, provenha do lado correspondente
ao endereço de salto, entrada direita do multiplexador.

b) … l) iguais ao do exemplo 1.

m) ADDR = 00001000 indica o novo endereço a ser carregado.

44
Capítulo 5
Conjunto de Instruções: Características e funções

A operação de uma CPU é determinada pelas instruções que ela executa,


conhecidas como instruções de máquina ou instruções do computador. A coleção de
diferentes instruções que a CPU é capaz de executar é conhecida como conjunto de
instruções da CPU.

Cada instrução deve conter toda a informação necessária para que a CPU possa
executá-la. Basicamente uma instrução é constituída pelos elementos:

• Código da operação: especifica a operação a ser executada (por exemplo:


ADD). A operação é especificada por um código binário, conhecido como
código da operação.
• Referência a operando fonte: a operação pode envolver um ou mais
operandos fontes, ou seja, operandos que constituem dados de entrada para a
operação.
• Referência a operando destino: a operação pode produzir um resultado.
• Endereço da próxima instrução: indica onde a CPU deve buscar a próxima
instrução, depois que a execução da instrução corrente for completada.

5.1 Quantidade de Operandos

Na fase de execução da instrução, a UC decodifica este código, gerando pulsos


de controle que permitirão a correta execução da operação. Os bits reservados para
Operando fonte e destino, serão por ora denotado(s) como campo(s) do(s) operando(s)
ou simplesmente operando(s), que têm por função identificar e localizar o dado a ser
processado.

5.1.1 Instruções com Três Operandos

A figura a seguir mostra o formato básico de uma instrução de três operandos.


Em geral, os campos operando 3 e operando 2 representam o endereço de cada dado
utilizado em uma operação aritmética ou lógica. O campo Operando 1 contém o
endereço para armazenamento do resultado dessas operações.

Código Op. Operando 1 Operando 2 Operando 3

Figura – Formato de Instrução de Três Operandos

Exemplo:
ADDD X, A, B // [X]  [A] + [B]
SUBD X, A, B // [X]  [A] - [B]

45
Supondo que um programa escrito em linguagem de alto nível tenha a seguinte
instrução:

X = A * (B + C * D – E / F) (2.1)

Como resultado do processo de compilação em um sistema que utiliza instruções


de três operandos teremos o seguinte trecho de programa em linguagem de montagem:

MPYD T1, C, D
DIVD T2, E, F
ADDD X, B, T1
SUBD X, T2, X
MPYD X, A, X

O T1 e o T2 foram empregados como variáveis temporárias.

5.1.2 Instruções com Dois Operandos

Neste caso, os campos operando 1 e operando 2 representam o endereço de cada


dado utilizado em operação aritmética ou lógica. O campo operando 1 também será o
operando destino, onde será armazenado o resultado da operação. Sendo assim, o valor
original do operando 1 será perdido.

Exemplo:

ADDD A, B // [A]  [A] + [B]


SUBD A, B // [A]  [A] - [B]

Pode-se evitar a perda do valor do 1o. Operando “salvando-se” o valor da variável,


antes da execução da instrução. Esse salvamento de variável pode ser realizado através
de uma nova instrução:

MOVE A, B // [A]  [B]

Com essas instruções de dois operandos, o comando correspondente à Equação do


exemplo acima, poderia ser convertido, para o trecho em linguagem de montagem a
seguir:

MPYD C, D
DIVD E, F
ADDD B, C
SUBD B, E
MPYD A, B
MOVE X, A

Uma versão melhorada deste trecho de programa seria:

MOVE X, C
MPYD X, D

46
MOVE T1, E
DIVD T1, F
ADDD X, B
SUBD X, T1
MPYD X, A

5.1.3 Instruções com Um Operando

Com esse tipo, o acumulador (AC) é empregado como operando implícito,


guardando o valor de um dos dados e, posteriormente, o valor do resultado da operação.

Exemplo:

ADDD Op // AC  AC + [Op]

O mesmo comando mostrado na equação 2.1 poderia ser convertido no trecho de


programa em linguagem de montagem a seguir:

LODD C
MPYD D
STOD X
LODD E
DIVD F
STOD Y
LODD B
ADDD X
SUBD Y
MPYD A
STOD X

5.2 Modos de Endereçamento de Memória

As instruções apresentadas até o momento definiram o campo operando como


contendo o endereço da Memória Principal onde está localizado o dado referido na
instrução.

Exemplo:

LODD X // X é um endereço de memória representado pela


variável X

No entanto, essa não é a única maneira de indicar a localização do dado, havendo


outros modos de endereçamento.

Dentre os diversos modos de endereçamento empregados hoje, podemos citar:


• Imediato;
• Direto;
• Indireto;

47
• Por registrador;
• Indexado

5.2.1 Modo de endereçamento de memória Imediato

O dado se encontra na própria instrução a ser executada. Neste caso, durante a


execução da instrução, não será necessário mais nenhum acesso à Memória Principal
para busca de dados.

Exemplo:
LOCO 5 // AC  5
JMP continua // PC  endereço representado por Continua

5.2.2 Modo de endereçamento de memória Direto

O valor binário contido no campo operando da instrução indica o endereço de


memória onde se localiza o dado. É um modo bastante simples e rápido, pois só requer
um acesso à Memória Principal para a busca do dado durante o ciclo de execução. Mas
é mais lento que o modo imediato.

Exemplo:
LODD X // X é um endereço de memória representado pela
variável X
MOV AX, [X] // copia o conteúdo da variável X no registrador AX
(instrução INTEL)

5.2.3 Modo de endereçamento de memória Indireto (ponteiro)

O valor binário do campo operando representa o endereço de uma célula de


memória como no modo Direto, mas o conteúdo da célula referida não é o valor de um
dado, é um endereço de memória, cujo conteúdo é o valor do dado. Assim, há um duplo
endereçamento para um acesso a um dado, e conseqüentemente, é mais lento que o
modo direto.

Exemplo:
LODD [X] // o registrador AC recebe o conteúdo do endereço
apontado pelo conteúdo do endereço X
Memória
LOAD [x] Principal

Supondo que x 74h 05Dh


74h é o endereço da célula, cujo conteúdo (5Dh) é o endereço do 74h ...
dado a ser acessado (1A4h). Após a execução, o valor 1A4h estará
armazenado no registrador AC.
1A4h
5Dh ...

Figura: Endereçamento Indireto

48
5.2.4 Modo de endereçamento de memória por Registrador

É conceitualmente idêntico ao endereçamento direto e indireto, exceto que o


operando referenciado na instrução é substituído por um dos registradores da CPU.
Sendo assim, o operando é um registrador. Este registrador pode conter o próprio dado a
ser usado pela instrução (direto) ou um endereço de memória onde está o dado a ser
usado (indireto).

Exemplo:
LODD A // o registrador AC recebe o conteúdo do registrador
A
MOV ax, bx // o valor do registrador bx é copiado no registrador
ax (instrução INTEL)
MOV ax, [bx] // o registrador ax recebe o valor contido no endereço
especificado pelo registrador bx (instrução INTEL)

Se o modo de endereçamento por registrador for muito usado em


conjunto de instruções, isso significará que os registradores da CPU serão muito usados.
Como o número de registradores é rigidamente limitado (em comparação com o número
de posições (células) de memória principal), apenas faz sentido utilizá-los dessa
maneira se eles forem usados eficientemente.

Cabe ao programador decidir que valores devem permanecer nos


registradores e quais devem ser armazenados na memória principal. A maioria das
CPUs modernas emprega múltiplos registradores de propósito geral, deixando a cargo
do programador em linguagem de montagem decidir como esses registradores devem
ser usados.

5.2.5 Modo de endereçamento de memória Indexado

É usado quando se usa uma estrutura de dados do tipo vetor ou matriz, onde
tem-se um ponto inicial e um deslocamento dentro da estrutura.

Exemplo:
LODD vet(0) // o registrador AC recebe o conteúdo do primeiro
elemento do vetor vet.

Memória
LODD vet(0)
Principal
ADDD vet(1) ...
05Dh
Supondo que o endereço inicial de vet = 74h
74h
Inicialmente o registrador AC recebe o conteúdo do endereço 74h
(05Dh) equivalente ao elemento vet(0) e depois AC recebe a soma 010h
do próprio AC com o conteúdo do endereço 75h (010h) 75h ...
equivalente ao elemento vet(1). Ao final das duas instruções, AC
será igual a 06Dh. ...

Figura – Exemplo de Endereçamento no Modo Indexado

49
5.3 Palavra de Status de Programa (PSW)

Um dos registradores mais importantes dentro de uma CPU é a PSW ou Palavra


de Status de Programa ou simplesmente Registrador de Flags. Muitas das instruções em
linguagem de montagem necessitam saber o resultado de outras instruções já
executadas, por exemplo, veja o seguinte algoritmo:

Início do Algoritmo (1)


X=5 (2)
Y=3 (3)
Se x = 0 (4)
Então (5)
X=Y (6)
Senão (7)
X = (X+ Y) (8)
Fim se (9)
Fim do Algoritmo (10)

Para que a CPU execute a instrução (6), x deverá ser igual a zero, senão a instrução (6)
será ignorada e será executada a instrução (8). Sabemos que PC sempre aponta para a
próxima instrução a ser executada (6 ou 8 no caso). Mas como a CPU toma a decisão de
qual valor será colocado em PC? Antes de ser atribuído um valor para PC (6 ou 8) é feito
uma comparação entre os valores atuais de x e de y (linha 4). O resultado desta
comparação deve ser guardado em um local da CPU para que ela possa tomar uma
decisão posterior. Geralmente este resultado é do tipo "igual a zero", "maior que", "menor
que", "diferente de", etc. Estes valores podem facilmente ser representado por um bit
(verdadeiro - 1ou falso - 0).

Ao invés de termos um registrador para cada um destes casos, geralmente usa-se um


único registrador de vários bits onde cada bit representa um flag. Um exemplo de PSW é
o registrador de flag do processador INTEL 8088/8086 mostrado a seguir:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- - - - OF DF IF TF SF ZF - AF - PF - CF
Ov Dir Int Tr Si Ze Au Pa Ca
erfl ect err ap gn ro xili rit rry
ow ion upt Fla al Fla ar y Fla
Fla Fla ion g Fla g Fla Fla g
g g Fla g g g
g

Figura – Registrador de FLAGS do 80x86

No exemplo acima, temos um registrador de 16 bits onde alguns dos bits


recebem o valor de um flag. Por exemplo, o bit 6 (ZF) é setado (=1) quando o resultado
de uma operação é igual a zero e ressetado (=0) quando o resultado de uma operação é
diferente de zero, o bit 11 (OF) é setado (=1) quando o resultado de uma operação não
pode ser armazenado no campo destino, etc.

50
A implementação do algoritmo acima deve resultar em um trecho de programa
como a seguir:

X=5
Y=3
LODD X
JNZE DIFERENTE
LODD Y
STOD X
JUMP FIM
DIFERENTE:
ADDD Y
STOD X
FIM:

Na operação LODD X o valor de X é carregado da memória para o registrador AC


na CPU, no percurso do dado, ele passa pela ULA. Se o valor de x for igual a zero, o
flag Z é setado (=1), senão o flag Z é ressetado. Quando testado na próxima instrução
JNZE diferente, o flag Z será 0 (já que x ≠ 0) e o endereço representado pelo símbolo
diferente será atribuído ao PC. Sendo assim, a próxima instrução a ser executada será
ADDD Y.

Uma forma mais otimizada de fazer o mesmo programa seria assim:

X=5
Y=3
LODD X
JNZE DIFERENTE
LODD Y
JUMP FIM
DIFERENTE:
ADDD Y
FIM:
STOD X

5.4 Saltos Condicionais e Incondicionais

Não é suficiente que um processador execute, numa seqüência rígida, as


instruções armazenadas em endereços consecutivos. Por exemplo, supomos que
queiramos que a CPU execute 5 instruções repetidamente várias vezes. Se o computador
tivesse de executar instruções seqüencialmente, não teríamos como fazer isso. Após um
certo tempo, ficaríamos sem memória para armazenar as instruções.

O microprocessador geralmente lê instruções deposições consecutivas da


memória. Portanto, ele precisa de uma forma para começar a ler instruções de um novo
endereço. Todos os processadores possuem uma instrução que muda o endereço do PC.

Essa instrução faz o microprocessador começar a ler instruções de uma posição


de memória diferente. Essa instrução é chamada de desvio ou jump. O dado de que essa
instrução precisa é o novo endereço.

51
Quando o microprocessador executa uma instrução de desvio, ele coloca o novo
endereço em PC. Agora, o microprocessador começa a ler instruções a partir do novo
endereço. A próxima instrução lida é a que está no novo endereço, e não a que está no
endereço após a instrução de desvio. A execução "pula" para a instrução do novo
endereço.

1 Instrução 1
2 Instrução 2
3 Instrução 3
4 Instrução 4
5 Instrução 5
6 Desvio 1

Figura – Salto Incondicional

Uma instrução de desvio condicional verifica os bits do registrador PSW, para


ver se seus valores são um ou zero. Se os valores dos bits são os esperados, a instrução
de desvio condicional faz o endereço de desvio condicional (que é passado como
parâmetro da instrução) ser carregado no registrador PC, e a execução continua a partir
daquele ponto. Se os valores do registrador PSW não são os esperados, a instrução de
desvio condicional não faz nada, e a execução continua a partir da próxima instrução.

1 Colocar 100 no AC
2 Instrução 1
3 Instrução 2
4 Instrução 3
5 Instrução 4
6 Instrução 5
7 Decrementar o AC
8 Compara o AC com 0
9 Desvia se ZF = 1
10 Instrução 6

Figura – Salto Condicional

No exemplo acima, as instruções 1 a 5 serão executadas 100 vezes, depois disto,


a execução continua normalmente na instrução 6.

52
Capítulo 6
Arquiteturas Risc, Cisc e Supercomputadores

Veremos nesse capitulo as duas principais arquiteturas para construção de


processadores assim como a estrutura básica de supercomputadores.

6.1 – Arquiteturas RISC x CISC

Quando um novo microprocessador é criado, além das melhorias físicas,


aumenta-se o seu conjunto de instruções, para que ele se torne mais poderoso. E até o
presente momento é assim que um microprocessador evolui.

Sendo assim os processadores são classificados de acordo com o nível dessas


instruções, da seguinte forma:

CISC – Complex Intruction Set Computing ou Computação utilizando um


conjunto complexo de instruções. Um processador CISC possui várias centenas de
instruções internas diferentes, sendo extremamente versátil.

Porém o aumento dessas instruções deixa os processadores maiores e mais


lentos. Com isso, na década de 80, alguns fabricantes optaram por seguir o caminho
oposto, surgindo então os processadores RISC.

Isso aconteceu pois verificaram que apenas 20% das instruções de um


processador CISC eram usadas freqüentemente e as demais eram usadas
esporadicamente, portanto 80% das instruções podiam ser removidas ou substituídas.

Exemplos de processadores CISC são o 80386 e 80486 da Intel.

RISC – Reduced Instruction Set Computing ou Computação com um conjunto


reduzido de instruções. Diferente dos processadores CISC, os 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 mais baratos.

Outra vantagem é que por terem um menor número de circuitos internos, podem
operar a freqüências mais altas. Embora pareça estranho que uma processador com
menos instruções seja melhor (mais rápido) do que um com centenas de instruções. Mas
isso acontece, porque justamente por ser mais simples consegue ser mais eficiente.

É indiscutível, porem, que em instruções complexas os processadores cisc saem-


se melhor. Por isso, ao contrário de uma das duas tecnologias vencer, atualmente vemos
processadores híbridos.

Não existe atualmente nenhum processador que siga estritamente uma das duas
filosofias. Tanto processadores da família Intel como o Pentium II e o Pentium III assim
como processadores HP PA8000 ou g4 (equipa os macintosh) misturam as duas

53
características.

Na verdade estão juntando o melhor de cada uma dessas filosofias para aumento
de performance. Fazendo uma análise do ponto de vista prático, a vantagem de uma
arquitetura CISC é que já temos muitas instruções guardadas no próprio processador, o
que facilita o trabalho dos programadores, já em um RISC o programador teria que
executar para uma tarefa mais complexa, por exemplo.

Uma analogia seria as calculadoras simples comparadas a calculadoras


cientificas.

Para esses processadores trabalharem de forma híbrida, existe um circuito


decodificado de instruções complexas para simples, portanto seu núcleo, trabalha com
apenas instruções simples, mas caso seja uma passada uma instrução complexa, o
decodificar a transforma.

As Instruções simples são características de cada processador e as complexas são


padronizadas entre os processadores, para facilitar o desenvolvimento de software.

O conjunto básico de instruções usadas em micros PC é chamado de conjunto


x86. Este conjunto é composto por um total de 187 instruções, que são as utilizadas por
todos os programas. Além deste conjunto principal, alguns processadores trazem
também instruções alternativas, que permitem aos programas executar algumas tarefas
mais rapidamente do que seria possível usando as instruções x86 padrão. Alguns
exemplos de conjuntos alternativos de instruções são o MMX (usado apartir do Pentium
MMX), o 3D-NOW! (usado pelos processadores da AMD, apartir do K6-2), e o SSE
(suportado pelo Pentium III).

6.2 – Supercomputadores baseados em arquiteturas paralelas

Até agora tivemos uma visão de computadores pessoais (PC), mas esse na
verdade são apenas versões simplificadas ou menores dos grandes MAINFRAMES
(computadores de grande porte, surgiram nos anos 70, e geralmente utilizam terminais
burros ou sem processamento).

Um dos principais fatores que proporcionaram a construção de


supercomputadores foi o uso de pipeline, essa técnica se dividiu então em duas partes:

SIMD – Single Instruction Multiple Data – nessa técnica o processador trabalha


coma mais de uma conjunto de dados ao mesmo tempo.

MIMD – Multiple Instruction Multiple Data – onde vários processadores (mais


de um) trabalham com mais de um conjunto de instruções e dados ao mesmo tempo.

Existem basicamente três limites para a performance dos supercomputadores:

• Velocidade do processador;
• Gasto de tempo para os processadores trabalharem juntos em uma
única tarefa.

54
• Velocidade de entrada e saída (e/s) entre processador e memória.

Segundo a IBM:

Supercomputadores são máquinas construídas sob encomenda, com capacidade


de processamento grande o suficiente para resolver complexos problemas referentes as
aplicações para as quais foram desenvolvidos.

55
Capítulo 7
Dispositivos de Entrada e Saída (E/S)

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) ou demonstração (visualização ou
impressã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 compatibilidade dos 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 através de programas (isto
é, por software).

Entre esses componentes, trafegam informações relativas a dados, endereços e


controle.

7.1 Tipos de Dispositivos

Dispositivos de Entrada – são todos os dispositivos que de alguma forma,


fornecem dados ou informações para processamento na maquina. Alguns exemplos de
dispositivos de entrada são: Teclado, mouse, leitora óptica, câmeras, microfones,
sensores de calor, etc.

As funções básicas dos dispositivos de entrada são:

• Coletar informações e introduzir na maquina;

56
• Converter informações da linguagem humana para a linguagem da
maquina;
• Recuperar informações dos dispositivos de armazenamento;

Dispositivos de Saída – todo dispositivo que apresenta ou representa para o


meio externo uma ou múltiplas informações, podemos citar como exemplo:
Impressoras, monitores de vídeo, plotters, atuadores, chaves, etc.

As funções básicas dos dispositivos de saída são:

• Exibir ou imprimir resultados de processamento;


• Controlar dispositivos externos;
• Gravar dados em dispositivos de armazenamento;

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 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 ou que não recebeu os
dados, neste caso solicitando retransmissão.

A compatibilidade de velocidades é feita geralmente por programa, usando memórias


temporárias na interface chamadas "buffers" que armazenam as informações conforme
vão chegando da UCP e as libera para o dispositivo à medida que este as pode receber.

7.2 – Formas de Comunicação

Veremos a seguir as principais formas de comunicação utilizadas pelos


dispositivos de E/S. De uma forma geral, a comunicação entre o núcleo do computador
e os dispositivos de E/S poderia ser classificada em dois grupos: comunicação paralela
ou serial. Vamos a seguir analisar as características desses grupos.

Comunicação em Paralelo

Na comunicação em paralelo, grupos de bits são transferidos simultaneamente


(em geral, byte a byte) através de diversas linhas condutoras dos sinais. Desta forma,
como vários bits são transmitidos simultaneamente a cada ciclo, a taxa de transferência
de dados ("throughput") é alta.

No entanto, o processo de transferência em paralelo envolve um controle


sofisticado e é razoavelmente complexo, o que o torna mais caro. Um dos problemas
importantes diz respeito à propagação dos sinais no meio físico, isto é, no cabo de
conexão entre o dispositivo e a interface. Essa propagação deve se fazer de modo que os

57
sinais (os bits) correspondentes a cada byte cheguem simultaneamente à extremidade
oposta do cabo, onde então serão re-agrupados em bytes. Como os condutores que
compõem o cabo usualmente terão pequenas diferenças físicas, a velocidade de
propagação dos sinais digitais nos condutores poderá ser ligeiramente diferente nos
diversos fios.

Dependendo do comprimento do cabo, pode ocorrer que um determinado fio


conduza sinais mais rápido (ou mais lento) que os demais fios e que desta forma um
determinado bit x em cada byte se propague mais rápido e chegue à extremidade do
cabo antes que os outros n-1 bits do byte.

Este fenômeno é chamado skew, e as conseqüências são catastróficas: os bits x


chegariam fora de ordem (os bytes chegariam embaralhados) e a informação ficaria
irrecuperável. Em decorrência desse problema, há limites para o comprimento do cabo
que interliga um dispositivo ao computador, quando se usa o modo paralelo.

As restrições citadas contribuem para que a utilização da comunicação em


paralelo se limite a aplicações que demandem altas taxas de trasferência, normalmente
associadas a dispositivos mais velozes tais como unidades de disco, ou que demandem
altas taxas de transferência, como CD-ROM, DVD, ou mesmo impressoras, e que se
situem muito próximo do núcleo do computador. Em geral, o comprimento dos cabos
paralelos é limitado a até um máximo de 1,5 metro.

Comunicação Serial

Na comunicação serial, os bits são transferidos um a um, através de um único


par condutor. Os bytes a serem transmitidos são organizados em série, isto é, são
"desmontados" bit a bit, e são individualmente transmitidos, um a um. Na outra
extremidade do condutor, os bits são contados e quando formam 8 bits, são remontados,
reconstituindo os bytes originais. Nesse modo, o controle é comparativamente muito
mais simples que no modo paralelo e é de implementação mais barata.

Como todos os bits são transferidos pelo mesmo meio físico (mesmo par de
fios), as eventuais irregularidades afetam todos os bits igualmente. Portanto, a
transmissão serial não é afetada por irregularidades do meio de transmissão e não há
skew. No entanto, a transmissão serial é intrinsecamente mais lenta (de vez que apenas
um bit é transmitido de cada vez).

Como os bits são transmitidos seqüencialmente um a um, sua utilização é


normalmente indicada apenas para periféricos mais lentos, como por exemplo teclado,
mouse, etc. ou quando o problema da distância for mandatário, como nas comunicações
a distâncias médias (tal como em redes locais) ou longas (comunicações via linha
telefônica usando modems).

7.3 Transmissão síncrona e assíncrona

A transmissão de informações através de uma linha de comunicação pode ser


feita por dois diferentes métodos: transmissão síncrona e assíncrona.

58
Transmissão síncrona

Nessa forma de transmissão o intervalo de tempo entre dois caracteres


subseqüentes é fixo. Nesse método, os dois dispositivos - transmissor e receptor - são
sincronizados, pois existe uma relação direta entre tempo e os caracteres transferidos.
Quando não há caracteres a serem transferidos, o transmissor continua enviando
caracteres especiais de forma que o intervalo de tempo entre caracteres se mantém
constante e o receptor mantém-se sincronizado.

No início de uma transmissão síncrona, os relógios dos dispositivos transmissor


e receptor são sincronizados através de um string de sincronização e então mantém-se
sincronizados por longos períodos de tempo (dependendo da estabilidade dos relógios),
podendo transmitir dezenas de milhares de bits antes de terem necessidade de re-
sincronizar.

Transmissão assíncrona

Na transmissão assíncrona o intervalo de tempo entre os caracteres não é fixo.


Podemos exemplificar com um digitador operando um terminal, não havendo um fluxo
homogêneo de caracteres a serem transmitidos. Como o fluxo de caracteres não é
homogêneo, não haveria como perceber a ausência de bits sendo transmitidos de um
eventual fluxo de bits zero e o receptor nunca saberia quando virá o próximo caractere,
e portanto não teria como identificar o que seria o primeiro bit do caractere.

Para resolver esses problemas de transmissão assíncrona, foi padronizado que na


ausência de caracteres a serem transmitidos o transmissor mantém a linha sempre no
estado 1 (isto é, transmite ininterruptamente bits 1, o que distingue também de linha
interrompida).

Quando for transmitir um caractere, para permitir que o receptor reconheça o


início do caractere, o transmissor insere um bit de partida (start bit) antes de cada
caractere. Convenciona-se que esse start bit será um bit zero, interrompendo assim a
seqüência de bits 1 que caracteriza a linha livre (idle). Para maior segurança, ao final de
cada caractere o transmissor insere um (ou dois, dependendo do padrão adotado) bit de
parada (stop bits), convencionando-se serem bits 1 para diferencia-los dos bits de
partida.

Os bits de informação são transmitidos em intervalos de tempo uniformes entre


o start bit e o(s) stop bit(s). Portanto, transmissor e receptor somente estarão
sincronizados durante o intervalo de tempo entre os bits de start e stop. A transmissão
assíncrona também é conhecida como "start-stop".

59
7.4 Funcionamento dos dispositivos mais conhecidos

Veremos a seguir, o funcionamento interno dos principais dispositivos de E/S,


entendendo assim a sua forma de trabalho, armazenamento e transmissão dos dados.

7.4.1 Dispositivos de Armazenamento

Hoje no mercado existem diversos tipos de dispositivos para leitura e gravação


de dados, como alguns exemplos, podemos citar o HD ou Disco rígido, as unidades de
disquete, unidades de cd-rom, unidades de zip-drive, unidades de fita Dat, unidade de
DVD, etc. na maioria dos casos a forma de armazenamento é bastante parecida e
veremos com maiores detalhes os dispositivos mais conhecidos.

7.4.1.1 Disco Rígido

O “Disco Rígido” ou “HD” ou “Hard Disk” ou “Winchester” como é


normalmente chamado é a forma de armazenamento de dados mais utilizada nos micro
computadores, isso é devido a diversos fatores como: sua alta capacidade de
armazenamento, que nos modelos mais novos varia de 60GB a 500GB de dados, a sua
alta velocidade de acesso aos dados e ao fato de diferentemente da memória RAM, não
perder os dados quando é desligado.

Armazenamento dos dados:

Dentro do disco rígido, os dados são gravados em discos magnéticos, chamados


em Inglês de “Platters”. Esses discos magnéticos são recobertos por uma camada
magnética extremamente fina. Na verdade, quanto mais fina for a camada de gravação,
maior será sua sensibilidade, e conseqüentemente maior será a densidade de gravação
permitida por ela. Poderemos então armazenar mais dados num disco do mesmo
tamanho, criando HDs de maior capacidade.

Figura: Visão interna de um disco rígido.

60
A cabeça de leitura e gravação de um disco rígido funciona como um eletroímã.
A diferença é que num disco rígido, este eletroímã é extremamente pequeno e preciso, a
ponto de ser capaz de gravar trilhas medindo menos de um centésimo de milímetro.

Figura: Cabeça de leitura e gravação.

Quando estão sendo gravados dados no disco, a cabeça utiliza seu campo
magnético para organizar as moléculas de óxido de ferro da superfície de gravação,
fazendo com que os pólos positivos das moléculas fiquem alinhados com o pólo
negativo da cabeça e, conseqüentemente, com que os pólos negativos das moléculas
fiquem alinhados com o pólo positivo da cabeça. Usamos neste caso a velha lei “os
opostos de atraem”.

Como a cabeça de leitura e gravação do HD é um eletroímã, sua polaridade pode


ser alternada constantemente. Com o disco girando continuamente, variando a
polaridade da cabeça de gravação, variamos também a direção dos pólos positivos e
negativos das moléculas da superfície magnética. De acordo com a direção dos pólos,
temos um bit 1 ou 0.

Quando é preciso ler os dados gravados, a cabeça de leitura capta o campo


magnético gerado pelas moléculas alinhadas. A variação entre os sinais magnéticos
positivos e negativos gera uma pequena corrente elétrica que caminha através dos fios
da bobina. Quando o sinal chega na placa lógica do HD, ele é interpretado como uma
seqüência de bits 1 e 0.

ATA versus SATA

ATA (ou IDE) e Serial ATA ou simplesmente SATA são os padrões mais
conhecidos de discos rígidos. O SATA foi criado para substituir os discos ATA,
também conhecidos como IDE. A taxa de transferência máxima teórica de um disco
Serial ATA é de 150 MB/s ou 300 MB/s, contra os 133 MB/s de um disco rígido IDE.

Uma A porta IDE tradicional transfere dados de forma paralela. A vantagem da


transmissão paralela é que ela é mais rápida do que a transmissão em série, pois
transmite vários bits por vez. Sua grande desvantagem, porém, é em relação ao ruído.
Como terão de existir muitos fios (pelo menos um para cada bit a ser transmitido por
vez), um fio gera interferência no outro. É por esse motivo que os discos rígidos ATA-
66 e superiores precisam de um cabo especial, de 80 vias.

A diferença entre esse cabo de 80 vias e o cabo IDE comum de 40 vias é que ele
possui um fio de terra entre cada fio original, funcionando como uma blindagem contra
interferências. Em nosso tutorial Tudo que você precisa saber sobre discos rígidos

61
ATA-66, ATA-100 e ATA-133 abordamos em mais profundidade este assunto.
Atualmente a taxa de transferência máxima que temos no padrão IDE é de 133 MB/s
(ATA-133).

Figura: Comparativo SATA e ATA

No Serial ATA, por outro lado, a transmissão dos dados é feita de modo serial,
ou seja, transmitindo um bit por vez. A maioria das pessoas pensa que a transmissão
serial é mais lenta que a transmissão em paralelo. Acontece que isto só é verdade se
compararmos os dois tipos de transmissão usando a mesma taxa de clock. Neste caso a
transmissão paralela será pelo menos oito vezes mais rápida, já que pelo menos oito bits
(um byte) serão transmitidos por pulso de clock, enquanto que na transmissão serial
apenas um bit será transmitido por pulso de clock. No entanto, se um clock maior for
usado na transmissão serial, ela pode ser mais rápida do que a transmissão paralela. Isto
é exatamente o que acontece com o Serial ATA.

O problema em aumentar a taxa de transferência na transmissão paralela é ter


que aumentar o clock, já que quanto maior o clock maiores são os problemas
relacionados à interferência eletromagnética. Como a transmissão serial utiliza apenas
um fio para transmitir os dados, ela sofre menos com problemas de ruído o que permite
obter clocks elevados, resultando em uma taxa de transferência maior.

7.4.1.2 – Unidades de Disquete

Os drives de disquetes, apesar de serem um componente de baixa tecnologia,


ainda hoje são muito utilizados para transportar dados.

Essa baixa tecnologia refere-se a baixa capacidade de armazenamento


(atualmente 1,44 MB), e a pequena vida útil de um disquete.

O seu funcionamento é parecido com o das unidades de disco rígido, pois da


mesma forma os dados são gravados por meios magnéticos.

62
Figura: visão interna de um drive de disquete.

Se comparássemos os modos de leitura e gravação de um disquete e de um disco


rígido veremos que são os mesmos com a diferença da tecnologia aplicada a cada um.

Armazenamento dos dados:

Os discos são fabricados de uma material plástico envolvido por uma fina
camada metálica onde são armazenados os dados.

Esse disco é flexível, de onde vem o nome “Floppy Disk”.

Figura:Leitura
e gravação de dados no disquete

Assim como nos HDs as unidades de disquete usam uma cabeça


eletromagnética, é claro muito menos precisa, para ler e gravar os dados. Esse eletroímã
é polarizado magnetizando as moléculas contidas na superfície do disco e assim
organizando-as. Para a leitura dos dados a cabeça captura o campo eletromagnético
gerado pelas moléculas na superfície do disco quando essas estão alinhadas e transmite
em forma de sinal elétrico o que ela captou.

7.4.1.3 Compact Disk – CD

Originalmente, o Compact Disk, ou simplesmente CD, foi desenvolvido para


armazenar música, e substituir os antiquados discos de vinil com vantagens. Como num
CD o som é gravado no formato digital, com uma amostragem de 44.100 Hz, e 16 bits
de resolução, temos um som completamente livre de ruídos, e com uma qualidade quase
perfeita.

63
Não demorou muito para os fabricantes perceberem que, com um mínimo de
esforço, o CD também poderia ser usado para gravar dados. Criou-se então uma
distinção: os CDs destinados a gravar música passaram a ser chamados de CD-DA, ou
"Compact Disk Digital Audio" enquanto os destinados à gravação de dados passaram a
ser chamados de CD-ROM, ou "Compact Disk Read Only Remory".

Armazenamento dos dados:

Como o CD foi originalmente desenvolvido para armazenar áudio, os dados são


gravados na forma de uma grande espiral (como num disco de vinil) ao invés de serem
usadas trilhas concêntricas como num HD. Esta espiral engloba todo o disco, dando
cerca de 20.000 "voltas" e tendo um comprimento total de quase 5 quilômetros. Esta
imensa espiral pode ser dividida em trilhas lógicas, cada uma englobando uma faixa de
um CD de áudio, por exemplo. Trilha lógica, pois a divisão existirá apenas do ponto de
vista do leitor. Fisicamente a espiral continuará sendo ininterrupta.

Figura: Como os dados são gravados no CD.

Cada bit gravado corresponde a um conjunto de sulcos no CD, e não a um único


sulco como poderíamos supor. De fato, são usados 17 sulcos para formar um bit 1 ou 0.
O uso desta grande quantidade de sulcos para cada bit é necessária para que, durante a
leitura, a cabeça de leitura tenha tempo suficiente para "perceber" a mudança entre bits
1 e 0.

Um CD possui cerca de 106 bilhões de sulcos, ou "bits óticos". Se cada sulco


correspondesse a um bit de dados, teríamos uma capacidade incrível de armazenamento
por CD, mas não seria possível, pelo menos com a tecnologia atual, desenvolver
processos de gravação, e principalmente leitores de CD com cabeças suficientemente
sensíveis para conseguir ler os dados com esta precisão.

A fim de chegar a um consenso quanto à capacidade ideal para o CD, ficou


determinado que ele deveria ser capaz de armazenar 74 minutos de música, com
amostragem de 44.100 Hz, e 16 bits de resolução, o que corresponde a cerca de 742
Megabytes. A fim de melhorar a organização, os dados são agrupados na forma de
setores, assim como num disco rígido.

A diferença é que enquanto num HD cada setor engloba 512 bytes, num CD
cada setor (também chamado de "large frame") contém 2.352 bytes.

Para tornar o CD confiável para o armazenamento de dados, foram reservados


288 bytes em cada setor para o armazenamento de códigos ECC, permitindo a correção
automática de qualquer alteração nos dados, sendo reservados mais 16 bytes para sinais
de sincronismo e endereçamento.

64
Sobram então 2.048 bytes em cada setor para armazenamento de dados. Como
cada CD possui 330.000 setores, chegamos a 650 MB de capacidade total de
armazenamento de dados.

Diferenças em CD-R e CD-RW

Existe uma diferença básica entre esses dois tipos de mídia de armazenamento,
sendo:

CD-R – vem de fábrica sem nenhum sulco, durante o processo de gravação, o


laser da unidade cria os sulcos para representar os dados, derretendo (“queimando”)
permanentemente a superfície do CD.

CD-RW – é fabricado com um material fotosensível em sua superfície, que


muda sua característica com a luz, isso é, conforme o laser vai atingindo a superfície do
cd, o mesmo vai mudando sua característica (opaco ou cristalino) deve forma, é possível
diferenciar os bits (simulando os sulcos).

A única desvantagem das mídias de CD-RW é que essas precisam de unidades


especiais para leitura, pois não são todas unidades de CD-ROM que possuem
capacidade para ler esses discos.
7.4.1.4 DVD ou Digital Versatile Disc

DVD significa Digital Versatile Disc (antes denominado Digital Video Disc).
Contém informações digitais, tendo uma maior capacidade de armazenamento que o CD
áudio ou CD-ROM, devido a uma tecnologia óptica superior, além de padrões
melhorados de compressão de dados. Basicamente sua forma de armazenamento é igual
ao do CD vista anteriormente.

Os DVDs possuem por padrão a capacidade armazenar 4.7 GB de dados,


enquanto que um CD armazena em média 700 MB. Os chamados DVDs de Dupla
Camada podem armazenar o dobro da capacidade de um DVD comum, ou seja, 9.4 GB.
Apesar da capacidade nominal do DVD comum gravável, é possível apenas gravar 4464
MB de informações, e com o tamanho máximo de cada arquivo de 1 GB. O tamanho
máximo de arquivo varia conforme o tipo de gravação: UDF, ISO normal, Dvd-video
etc...

Existem vários tipos de DVDs:

DVD-R e DVD+R: somente permitem uma gravação e podem ser lidos pela
maioria de leitores de DVDs.

DVD+R DL: semelhante ao DVD+R, mas que permite a gravação em dupla


camada (DL significa dual layer), aumentando a sua capacidade de armazenamento. Na
prática, a diferença da mídia DVD-R para a DVD+R é o desempenho: discos DVD+R
são lidos mais rapidamente do que discos DVD-R. Esta diferença só é sentida se você
usar o disco DVD para gravar arquivos comuns, isto é, usar como uma mídia de backup,
já que para assistir filmes o desempenho é o mesmo.

65
DVD-RW: permite gravar e apagar cerca de mil vezes (mídia de pior qualidade).

DVD+RW: permite gravar e apagar cerca de mil vezes, podendo ser lido pela
maioria de leitores de DVD (mídia de melhor qualidade).

DVD-RAM: permite gravar e apagar mais de cem mil vezes, oferecendo a


possibilidade de gravação e leitura em simultâneo (time shift) sem o risco de apagar a
gravação. Compatível com poucos leitores de DVD.

7.4.2 Dispositivos diversos

Agora conheceremos o funcionamento dos dispositivos mais utilizados nos


microcomputadores atuais.

7.4.2.1 – Teclado e Mouse

O teclado e o mouse são os dois principais dispositivos de entrada que permitem


que o usuário opere o microcomputador. Ambos são normalmente ligados a portas
seriais no micro, mas atualmente os mais utilizados são os com encaixe PS/2 podendo
também ser encontrado mouses e teclados para barramentos do tipo USB.

O Teclado

O funcionamento do teclado é simples, Ao pressionarmos uma tecla,


independente do tipo de tecla utilizada, o ato de pressioná-la causará uma alteração no
fluxo da corrente que flui nos circuitos internos do teclado. Um microprocessador,
como o Intel 8048, dentro do teclado, varre constantemente os circuitos que conduzem
às teclas.

Ele detecta o aumento e a diminuição da corrente da tecla que está sendo


pressionada e gera os códigos relativos a essa tecla (código de varredura). O
processador armazena esse número no buffer de memória do próprio teclado e carrega-o
numa porta de conexão para que o possa ser lido pelo BIOS do computador.

Em seguida, o processador envia um sinal de interrupção, informando ao


processador do PC que há um código de varredura esperando por ele. A BIOS lê o
código do teclado e envia um sinal para o teclado, informando-o de que o código já
pode ser apagado da memória.

Figura: Botão do teclado sendo pressionado.

66
Esse código então é processado e interpretado pelo PC, apresentando o resultado
dessa operação na tela (pode ser um simples caractere ou uma chamada de um
processo).

O Mouse

Pela inconveniência do teclado em ambientes gráficos, os pesquisadores criaram


o conceito de um dispositivo de apontamento, algo que o usuário pudesse mover com a
própria mão, produzindo um movimento correspondente na tela. Devido ao seu tamanho
e fio semelhante ao de um rabo de camundongo, o dispositivo foi chamado de Mouse.

Figura: Visão interna do mouse.

Ao movimentar o mouse, uma bola gira na direção do movimento. Com isso ela
move dois rolamentos posicionados a um ângulo de 90 um do outro. Um responde pela
movimentação vertical pela tela e o outro pela horizontal.

Nas extremidades dos rolamentos existem pontos metálicos, cada vez que a
extremidade toca um desses pontos, ele gera um sinal elétrico, esse sinal é enviado para
o microcomputador através do cabo do mouse, que converte o número, a combinação e
a freqüência dos sinais dos dois codificadores na distância, direção e velocidade
necessárias para mover o cursor na tela.

Mouse Óptico

Os modelos mais modernos de mouse são totalmente óticos, não tendo peças
móveis. De modo muito simplificado, eles tiram fotografias que são comparadas e que
permitem deduzir o movimento que foi feito. O mouse ótico não é uma invenção tão
moderna quanto parece: já no início da década de 90 a Sun fornecia máquinas com um
mouse ótico que exigia um mousepad especial, com uma padronagem matricial. O
mouse ótico atual, porém, usa uma tecnologia muito mais avançada que pode funcionar
em qualquer superfície não reflexiva.

7.4.4.2 Placas de FAX/MODEM

Uma placa de Fax/Modem tem o papel de codificar e decodificar dados que


serão transmitidos ou foram recebidos.

67
Para que isso seja possível ele transformar os sinais digitais em sons que podem
ser transmitidos pelo sistema telefônico comum, que são decodificados pelo modem
receptor.

Figura: Placa de Modem.

Os modems ainda são o meio de acesso mais popular à Internet. O termo modem
também é usado em relação a outros aparelhos que modulam sinais digitais na forma de
sinais analógicos, como por exemplo os modems usados nos sistemas de acesso à
Internet via cabo ou ADSL, assim como em algumas arquiteturas de rede.

Diferenças entre HardModems e SoftModems

Atualmente podem ser encontrados no mercado dois tipos bem diferentes de


modems: HardModems e SoftModems, estes últimos também chamados de
WinModems, modems HCF, HSP ou HSF, controlados pelo hospedeiro etc.

Resumindo, os HardModems são os modems completos que executam todas as


funções de envio e recebimento de dados, correção de erro, controle de fluxo etc., são
modems completos.

Os SoftModems por sua vez, funcionam apenas como uma interface de ligação
com a linha telefônica, todas as tarefas são executadas pelo processador principal, o que
claro degrada bastante o desempenho global do micro.

Como são compostos por muito menos componentes, os SoftModems são muito
mais baratos que os HardModems.

7.4.4.4 Placas de Vídeo

A função da placa de vídeo, é preparar as imagens que serão exibidas no


monitor. Já foram criadas placas de vídeo usando praticamente todo o tipo de
barramento existente, do ISA ao PCI, passando pelo MCA, EISA e VLB. Atualmente
porém, usamos apenas placas de vídeo PCI ou AGP, com predominância cada vez
maior das placas AGP, que naturalmente costumam ser mais rápidas e avançadas.

68
Memória de Vídeo

Toda placa de vídeo usa uma memória para armazenar as imagens que estão
sendo criadas. Numa placa de vídeo 2D a quantidade de memória não interfere em
absolutamente nada no desempenho da placa, ela apenas determina quais resoluções e
quantidade de cores que serão suportadas.

Uma placa antiga, com apenas com 1 MB de memória por exemplo, será capaz
de exibir 16 milhões de cores em resolução de 640x480 ou 65 mil cores em resolução
de 800x600. Uma placa com 2 MB, já seria capaz de exibir 16 milhões de cores em
resolução de 800x600. Uma placa de 4 MB já seria capaz de atingir 16 milhões de cores
em 1280x1024 e assim por diante.

Já no caso de placas 3D a quantidade de memória não determina a resolução de


vídeo que poderá ser usada, mas sim a performance da placa.

Figura: Placa de vídeo 3D (Voodoo 5 6000).


O motivo é simples, se as texturas a serem usadas pelo aplicativo (Jogo
principalmente) não couberem na memória da placa, terão que ser armazenadas na
memória RAM, e lidas usando o barramento AGP ou PCI.

O problema é que neste caso teremos uma enorme degradação de performance,


pois demora muito mais tempo para ler uma textura armazenada na memória RAM
principal do que ler a mesma se estivesse armazenada na memória da placa de vídeo.

7.4.4.4 Monitores

O monitor tem uma importância vital, pois em conjunto com a placa de vídeo
forma o principal meio de comunicação entre a máquina e nós. Os fatores que
diferenciam os inúmeros modelos de monitores à venda no mercado, são basicamente o
tamanho, o Dot Pitch ou o tamanho dos pontos que compõe e tela, as resoluções
suportadas e a taxa máxima de atualização da imagem:

Tamanho – quanto ao tamanho, é a medida em polegadas entre as diagonais da


tela. Os mais usados atualmente ainda são os monitores de 14 e 15 polegadas, mas caso
você deseje trabalhar com aplicativos gráficos, ou mesmo utilizar o PC para jogos, será
muito beneficiado por um monitor de 17 ou mesmo 20 polegadas.

Dot Pitch – ou tamanho dos pontos que compõem a tela. Se você pegar uma
lupa e examinar a tela de seu monitor, verá que a imagem é formada por pontos verdes,
azuis e vermelhos.

69
Cada conjunto de três pontos é chamado de tríade, e a distância diagonal entre
dois pontos da mesma cor, o que compõe justamente a medida de uma tríade é chamada
de Dot Pitch. O mais comum é encontrarmos monitores com Dot Pitch de 0.29
milímetros quadrados. Alguns monitores mais recentes, porém, utilizam pontos
menores, de 0.22 ou 0.19 mm, o que garante uma imagem de melhor qualidade.

Resolução – Um bom monitor de 14 polegadas deve suportar resoluções de até


1024x768 pontos. Monitores maiores também devem ser capazes de exibir resoluções
de 1280x1024 ou mesmo 1600x1200 no caso dos de 20 polegadas. O mais comum por
parte dos usuários que usam monitores de 14 polegadas, é o uso de resolução de
800x600, pois mesmo quando suportadas, resoluções maiores acabam sendo
desconfortáveis em um monitor pequeno.

freqüência de atualização da imagem – ou "refresh rate". Num monitor, um


feixe de elétrons bombardeia continuamente a tela, formando a imagem.

Figura: Sentido do Bombardeamento dos feixes de Elétrons.


A quantidade de vezes por segundo que este feixe atualiza a imagem, é chamada
de taxa de atualização. Um bom monitor, deve ser capaz de atualizar a imagem pelo
menos 75 vezes por segundo (75Hz).

Monitores LCD

Os monitores LCD, (Liquid Cristal Display, ou monitores de cristal líquido), já


vêm há várias décadas sendo usados em computadores portáteis. Atualmente vemos
uma popularização desta tecnologia também no mercado de computadores de mesa. O
LCD traz várias vantagens sobre os monitores CRT (Catodic Ray Tube, ou tubo de raios
catódicos) usados atualmente, apesar de também possuírem algumas desvantagens,
destacando-se o preço alto.

Colocando lado a lado um monitor LCD e outro CRT, a primeira diferença que
salta à vista é justamente o tamanho. Os monitores de cristal são muito mais finos que
os tradicionais, o que explica seu uso em computadores portáteis

Outra vantagem dos monitores LCD, é o fato de possuir uma tela realmente
plana, o que elimina as distorções de imagem causadas pelas telas curvas dos monitores
CRT, e aumenta a área útil do monitor, já que não temos espaços desperdiçados nos
cantos da imagem.

70
Os monitores de cristal líquido também gastam menos eletricidade. Enquanto
um monitor tradicional de 14 polegadas consome por volta de 90 W, um LCD
dificilmente ultrapassa a marca dos 40W.

Outra vantagem é que estes monitores emitem uma quantidade muito menor de
radiação nociva, o que os torna especialmente atraentes para quem fica muito tempo em
frente ao monitor diariamente.

Como funciona o LCD

No monitor LCD é fabricado com uma tecnologia que consiste no uso de cristais
líquidos para formar a imagem.

Os cristais líquidos são substâncias que misturam características de sólidos e


líquidos. Apesar de originalmente transparentes, estas substâncias podem ter a
orientação de suas moléculas alterada através de um campo elétrico, o que as faz
assumir diferentes tonalidades de acordo com a intensidade do campo.

Para formar a tela de um LCD, uma fina camada de cristal líquido é colocada
entre duas camadas de vidro. Este sanduíche por sua vez é colocado entre duas camadas
de um elemento polarizador.

Atrás desta tela é instalada uma fonte de luz, geralmente composta de lâmpadas
fluorescentes, que emitem pouco calor, responsáveis pela iluminação da tela.

Figura: Monitor LCD e as camadas de sua tela.

7.4.4.5 Placas de Som

Nativamente, o computador possui uma capacidade sonora muito limitada.


Normalmente eles vem com um pequeno auto falante embutido, que é ligado
diretamente ao um encaixe na placa mãe.

Os sons emitidos por esse alto-falante ou “speaker” são gerados pelo próprio
processador, que por lidar apenas com números binários, pode apenas combinar
seqüências de bits 1 e 0 para gerar alguns sons rudimentares, como bips e outros ruídos,
que geralmente são usados apenas para chamar a atenção do usuário quando ocorre
algum erro.

71
Figura: Placas de Som Externa e Interna.

Com essa deficiência do microcomputador surgiram as placas de som. Ela é


responsável pela saída e Entrada de Som no computador.

Além disso ela permite que o micro gere sons, tocados por um par de caixas
acústicas. A placa de som também traz entrada para um microfone e para um joystick.

Funcionamento da placa de som

O sinal é processado, enviado para a placa de som, reorganizado para ser melhor
tratado pelos recursos da placa, e em seguida enviado para o sistema de caixas de som
acopladas ao computador.

No caso do Joystick, podemos dizer que o processo é o seguinte: O comando é


efetuado no Joystick, mandado para a placa de som, processado por ela, o sinal então é
enviado para o processador do computador, onde ele interpreta o sinal e o trata,
mandando para o jogo, onde é efetuado o movimento, tudo isso em questão de
milésimos de segundos.

72
Referências Bibliográficas
Livros:

LORIN, Harold. “Introducao a arquitetura e organizacao de computadores”.1.ed.


Rio de Janeiro : Campus, c1985. 362p.

STALLINGS, William. “Arquitetura e organizacao de computadores: projeto


para o desempenho”.5.ed. Sao Paulo : Prentice Hall, 2003. 786p.

MONTEIRO, Mario A..”Introducao a organizacao de computadores”.3.ed. Rio


de Janeiro : LTC, 1996. 397p.

Internet:

Carlos E. Morimoto, http://www.guiadohardware.net


Clube do Hardware, www.clubedohardware.com.br
Enciclopédia Digital Wikipedia, http://pt.wikipedia.org
InfoWester, http://www.infowester.com/

Última Atualização: Janeiro de 2008

73

Você também pode gostar