Вы находитесь на странице: 1из 113

Unidade

Objetvo:
Nesta unidade vamos apresentar os conceitos bsicos de Arquiteturas de
Computadores. Iniciamos com a defnio de alguns conceitos que sero necessrios
para o entendimento de uma arquitetura de computadores. Depois apresentamos
uma pequena histria dos computadores eletrnicos desde a sua inveno at os
dias de hoje. Finalmente apresentamos os componentes gerais de uma arquitetura
de computadores.
1
Conceitos Bsicos
ARQUITETURA DE COMPUTADORES
11
Captulo 1
Introduo Arquitetura de Computadores
O ser humano sempre precisou realizar clculos, sejam eles para ar-
mazenar a comida, contar os animais ou construir uma casa. Os primeiros
computadores do mundo eram as pessoas. O computador era uma profs-
so cujo trabalho era executar os clculos repetitivos exigidos para compu-
tar tabelas de navegao, cartas de mars e posies planetrias. Devido
aos erros decorrente do cansao dos computadores humanos, durante v-
rios sculos os inventores tm procurado por uma maneira que mecanize
esta tarefa.
At aproximadamente metade do sculo XX, havia apenas mquinas
rudimentares que auxiliavam a realizao de clculos. A partir da inveno
da vlvula eletrnica, o transistor e circuito integrado, foi possvel construir
mquinas eletrnicas com maior capacidade e velocidade. Ela chamada
mais precisamente computador eletrnico digital de uso geral e esta m-
quina que vamos falar a partir de agora.
Os computadores so eletrnicos porque manipulam dados usando
circuitos de chaveamento eletrnico, sejam eles vlvulas eletrnicas, tran-
sistores, e mais recentemente, circuitos integrados. Digital signifca que o
computador guarda e manipula todos os dados internamente sob a forma
de nmeros (todos os dados numricos, todos os dados de texto, e mesmo os
sons e as fguras so armazenadas como nmeros). O dgito signifca dedo
e desde que os povos comearam a contar com seus dedos, o nome dgito
aplicada a representao de nmeros. de uso geral porque podem ser
programados para executar uma grande variedade de aplicaes (diferente
de um computador de propsito especfco, projetado para executar somente
uma funo).
Arquitetura e Organizao de Computadores
Os termos Arquitetura e Organizao de Computadores tm signif-
cado distinto para descrever um sistema de computao. H um consen-
so na comunidade de que o termo Arquitetura de Computador refere-se
aos atributos que so vistos pelo programador. Por exemplo, conjunto de
instrues, nmero de bits de representao dos dados, endereamento de
memria e mecanismos de entrada e sada, so exemplos de atributos de
arquitetura de computadores.
O termo Organizao de Computadores se refere s unidades ope-
racionais e suas interconexes para uma determinada arquitetura e so
transparentes para o programador. Por exemplo, tecnologias dos compo-
nentes eletrnicos, sinais de controle, interfaces entre os computadores e
perifricos, so exemplos de atributos de organizao de computadores.
Apesar deste livro tratar especifcamente de Arquitetura de Computa-
dores, a Unidade 2 apresenta uma introduo aos conceitos de Lgica Digi-
tal, mais apropriada para a rea de Organizao de Computadores, com o
objetivo de facilitar o entendimento das demais unidades.
12
ARQUITETURA DE COMPUTADORES
Hardware e Sofware
Um computador um dispositivo que executa quatro funes: ele re-
cebe dados de entradas (converte dados do mundo exterior para o universo
eletrnico); armazena os dados (de forma eletrnica); processa dados (exe-
cuta operaes matemticas e lgicas); e exibe os dados de sadas (mostra
os resultados para os usurios atravs de uma tela).
Um computador consiste no hardware e no software. O hardware o
equipamento fsico: o prprio computador e os perifricos conectados. Os
perifricos so todos os dispositivos ligados ao computador para fnalidades
de entrada, sada, e armazenamento dos dados (tais como um teclado, um
monitor de vdeo ou um disco rgido externo).
O software consiste nos programas e nos dados associados (informa-
o) armazenados no computador. Um programa uma sequencia de ins-
trues que o computador segue com o objetivo de manipular dados. A
possibilidade de incluir ou excluir programas diferentes a fonte de versa-
tilidade de um computador. Sem programas, um computador apenas har-
dware de alta tecnologia que no faz qualquer coisa. Mas com a sequncia
de instrues detalhadas, descrevendo cada passo do programa (escrito por
seres humanos) o computador pode ser usado para muitas tarefas que va-
riam do processamento de texto a simulao de padres de tempo globais.
Como um usurio, voc ir interagir com os programas que funcio-
nam em seu computador atravs dos dispositivos de entrada conectados a
ele, tal como um mouse e um teclado. Voc usa esses dispositivos para for-
necer a entrada (tal como o texto de um relatrio que voc est trabalhando)
e para dar comandos ao programa (tal como a defnio de que uma frase
do texto vai aparecer com formato negrito). O programa fornecer a sada
(os dados resultantes das manipulaes dentro do computador) atravs de
vrios dispositivos de sada (tal como um monitor ou uma impressora).
1. Para voc, qual a categoria mais importante de um computador, o har-
dware ou software. Um pode ser utilizado sem o outro?
2. Pare um instante e identifque em sua volta dispositivos que dispe de
um computador. Voc observou como computadores esto em todos os
lugares e como so importantes para a nossa vida?

ARQUITETURA DE COMPUTADORES
13
Captulo 2
Histria do Computador Eletrnico
Apesar de haver relatos histricos de mquinas que realizassem cl-
culos matemticos como a Mquina de Pascal (1642), a mquina de Charles
Babbage (1822) at o Mark I da Universidade de Harvard (1944), o primeiro
computador totalmente eletrnico foi o ENIAC (1945).
Para classifcar as vrias etapas do desenvolvimento dos computado-
res eletrnicos de acordo com a tecnologia utilizada, os computadores foram
classifcados em quatro geraes, que veremos a seguir:
Primeira Gerao
Os computadores de primeira gerao so baseados em tecnologias de
vlvulas eletrnicas. Esta gerao inicia em 1943 e vai at 1959. Os com-
putadores da primeira gerao normalmente paravam de funcionar aps
poucas horas de uso. Tinham dispositivos de Entrada/Sada rudimentares,
calculavam com uma velocidade de milsimos de segundo e eram progra-
mados em linguagem de mquina.
Em 1943, um projeto britnico, sob a liderana do matemtico Alan
Turing, colocou em operao o COLOSSUS utilizado para decodifcar as
mensagens criptografadas pela mquina Enigma, utilizadas pelos alemes
na 2 Guerra Mundial. Sua caracterstica mais inovadora era a substituio
de rels eletromecnicos por vlvula eletrnica. Apesar de ter uma arqui-
tetura de computador, ainda ele no pode ser chamado de uso geral pois
realizava apenas uma funo especfca. Essa mquina usava 2.000 vlvu-
las eletrnicas.
Em 1945, surgiu o ENIAC - Electronic Numerical Integrator and Com-
puter, ou seja, "Computador e Integrador Numrico Eletrnico", projetado
para fns militares, pelo Departamento de Material de Guerra do Exrcito
dos EUA, na Universidade de Pensilvnia. Foi o primeiro computador digital
eletrnico de grande escala projetado por John W. Mauchly e J. Presper
Eckert. Este considerado pelos pesquisadores como o primeiro computa-
dor eletrnico de uso geral, isto , pode realizar diferentes funes a partir
da troca de um programa, apesar da sua reprogramao levar semanas
para ser concluda.
O ENIAC tinhas 17.468 vlvulas, 500.000 conexes de solda, 30 tone-
ladas de peso, 180 m de rea construda, 5,5 m de altura, 25 m de compri-
mento e realizava uma soma em 0,0002 s.
O ENIAC tinha um grande problema: por causa do nmero grande de
vlvulas eletrnicas, operando taxa de 100.000 ciclos por segundo, havia
1,7 bilho de chances a cada segundo de que uma vlvula falhasse, alm de
superaquecer. As vlvulas liberavam tanto calor, aproximadamente 174 KW,
que mesmo com os ventiladores a temperatura ambiente chegava a 67C.
Ento Eckert, aproveitou a idia utilizada em rgos eletrnicos, fazendo
Vlvula Eletrnica um
dispositivo eletrnico for-
mado por um invlucro de
vidro de alto vcuo cha-
mada ampola contendo
vrios elementos metli-
cos. A vlvula serve para
comutar circuito e ampli-
fcar sinal eltrico.
14
ARQUITETURA DE COMPUTADORES
que as vlvulas funcionassem sob uma tenso menor que a necessria, re-
duzindo assim as falhas para 1 ou 2 por semana.
Mesmo com 18.000 vlvulas, o ENIAC podia armazenar somente 20
nmeros de cada vez. Entretanto, graas eliminao das peas mveis
ele funcionava muito mais rapidamente do que os computadores eletro-me-
cnicos. No entanto, o maior problema do ENIAC era a reprogramao. A
programao era realizada atravs da ligao de fos e interruptores em um
painel. A mudana de cdigo de programa levava semanas.
Eckert e Mauchly se jun-
taram ao matemtico John Von
Neumann em 1944 para proje-
tar o EDVAC (Electronic Discre-
te Variable Automatic Compu-
ter), que abriu caminho para o
programa armazenado. Ele foi
um sucessor do ENIAC e usava
numerao binria em vez de
decimal e j utilizava o conceito
de programa atravs de carto
perfurado. Isso permitia ao ED-
VAC mudanas de programas
mais rpidas em comparao ao
ENIAC.
No entanto, a principal contribuio do EDVAC foi a arquitetura de
processador, memria e unidades de entrada e sada interligadas por um
barramento. Arquitetura conhecida como Arquitetura Von Neumann utili-
zada at hoje pela maioria dos computadores. Mostramos a seguir a arqui-
tetura do EDVAC.

Figura 2 Arquitetura do EDVAC (Arquitetura von Neumann)

Figura 1 ENIAC O primeiro grande computador
eletrnico [foto Exrcito EUA]
15
ARQUITETURA DE COMPUTADORES
Apenas em 1951 surgiram os primeiros computadores produzidos em
escala comercial, como o UNIVAC e o IBM 650.
Segunda Gerao
Nos equipamentos da se-
gunda gerao, que durou de
1959 a 1965, a vlvula foi substi-
tuda pelo transistor. O transistor
foi criado em 1947 no Bell Labo-
ratories por William Shockley e
J.Brattain. Seu tamanho era 100
vezes menor que o da vlvula,
no precisava esperar um tem-
po para aquecimento, consumia
menos energia, era mais rpido e
mais confvel.
O primeiro computador experimental totalmente com transistor foi
construdo na Universidade de Manchester e entrou em operao em 1953.
Uma segunda verso do Computador de Transistor foi construda em 1955.
Os computadores da segunda gerao calculavam em microssegun-
dos e eram mais confveis que os computadores da primeira gerao. Os
seus representantes comerciais clssicos foram o IBM 1401 e o IBM 7094,
j totalmente transistorizado. Outra caracterstica importante, alm do uso
de transistor, era a utilizao de memria com ncleo de ferrite e fta mag-
ntica para armazenamento de dados. Essas mquinas j utilizavam lin-
guagem de programao FORTRAN e COBOL.
Terceira Gerao
A terceira gerao,
que durou de 1964 a 1970,
foi marcada com a substi-
tuio dos transistores pela
tecnologia de circuitos inte-
grados - transistores e com-
ponentes eletrnicos monta-
dos em um nico substrato.
O circuito integrado foi in-
ventado por Jack St. Clair
Kilby e Robert Noyce e per-
mitiu a compactao dos
computadores construdos
com transistor. Nesta gera-
o o clculo de operaes
matemticas chegava or-
dem de nanossegundos alm do aumento da capacidade, reduo das di-
menses fsicas e reduo na dissipao de calor.
O principal computador comercial da terceira gerao foi o IBM 360, lan-
ado em 1964. Ele dispunha de muitos modelos e vrias opes de expanso
que realizava mais de 2 milhes de adies por segundo e cerca de 500 mil
multiplicaes. O System/360 foi um dos maiores sucessos de venda da IBM.

Figura 3 IBM 1401 [foto Computer
History Museum]
Transitor um disposi-
tivo eletrnico construdo
com material semicondu-
tor (germnio ou silcio)
que funciona como cha-
ve de circuito ou ampli-
fcador. Ele substituiu a
vlvula eletrnica por ser
menor, dissipar menos
calor e ter uma durabili-
dade maior.
Figura 4 IBM 360 [foto Computer History
Museum]
16
ARQUITETURA DE COMPUTADORES
Quarta Gerao
A quarta gerao iniciou em 1971 e dura at hoje. Ela continuou com
a utilizao de circuito integrados, mas diferenciada da terceira gerao
pela utilizao do microprocessador, isto , um circuito integrado que rene
todas as funes do computador.
Em novembro de 1971, a Intel lanou o primeiro microprocessador
comercial, o 4004. Ele foi desenvolvido para um fabricante de calculadoras
eletrnicas japonesa, a Busicom, como uma alternativa ao circuito eletrni-
co que era utilizado. Juntamente com o desenvolvimento do circuito integra-
do de memria RAM, inventada por Robert Dennard, permitiu a construo
do microcomputador, equipamentos pequenos com grande capacidade de
processamento. O 4004 era capaz de realizar apenas 60.000 instrues por
segundo, mas seus sucessores, 8008, 8080, 8086, 8088, 80286, 80386,
80486, etc, ofereciam capacidades cada vez maiores em velocidades cada
vez maiores.
A vantagem de um circuito integrado no apenas a reduo das
dimenses dos componentes de um computador, mas a possibilidade de se
produzir componentes em massa reduzindo seu custo. Todos os elementos
no circuito integrado so fabricados simultaneamente atravs de um nme-
ro pequeno de mscaras ticas que defnem a geometria de cada camada.
Isto acelera o processo de fabricao do computador, alm de reduzir o cus-
to, da mesma forma que a inveno da impresso por Gutenberg possibili-
tou a difuso e barateamento dos livros no sculo XVI.
Um computador transistorizado de 1959 continha 150.000 transisto-
res em uma rea de 10 m. Esses transistores eram infnitamente menores
que as vlvulas eletrnicas que substituiu, mas eram elementos individu-
ais que exigiam um conjunto individual para fxao. Nos anos 80, essa
quantidade de transistores podia ser fabricada simultaneamente em um
nico circuito integrado. Um microprocessador atual Pentium 4 contem
42.000.000 de transistores fabricados simultaneamente um uma pastilha
de silcio do tamanho de uma unha.

Figura 5 Microcomputador IBM PC [foto Computer History Museum]

17
ARQUITETURA DE COMPUTADORES
1. Qual foi o maior ganho quando os computadores passaram a ser constru-
dos com vlvulas eletrnicas em vez de mecanismos eletro-mecnico?
2. Qual o principal problema da primeira gerao de computadores e como
ele foi resolvido para permitir sua utilizao de forma confvel?
3. O que a inveno do transistor trouxe para a evoluo dos computadores
eletrnicos?
4. Qual a semelhana entre o processo de fabricao de um circuito inte-
grado com a imprensa? O que isso propiciou?
5. Qual a caracterstica que diferencia a terceira da quarta gerao de
computadores se ambas utilizam o circuito integrado?

ARQUITETURA DE COMPUTADORES
18
Captulo 3
Componentes de uma Arquitetura de
Computador
Um computador construdo com vrios componentes individuais. As
ligaes entre os diversos componentes a essncia da Arquitetura de Com-
putadores. A forma como os componente se interligam e se comunicam vai
determinar a capacidade e velocidade de processamento de uma determi-
nada arquitetura.
A primeira seo mostra a arquitetura geral de um computador. Em
seguida apresentamos a Arquitetura Harvard e a Arquitetura Von Neu-
mann, importantes para entender as Arquiteturas usadas atualmente. Fi-
nalmente apresentamos a Lei de Moore, um prognstico de evoluo dos
microprocessadores e alguns comentrios sobre os limites dela.
Componentes de um computador
A Figura 5 mostra a arquitetura simplifcada de um Computador. Os
computadores modernos podem ter uma arquitetura bem mais complexa do
que esta, mas os blocos principais esto aqui representados.
Figura 6: Arquitetura de um Computador
O principal mdulo a Unidade Central de Processamento, usualmen-
te conhecida como CPU (Central Processing Unit). A CPU o crebro do
computador onde todo o processamento realizado. Ela constituda por
trs submdulos: a Unidade Lgica e Aritmtica (ULA), os Registradores e a
Unidade de Controle. Nos computadores modernos a CPU construda em
um nico Circuito Integrado (chip).
A Unidade Lgica e Aritmtica (ULA), tambm conhecida como Ari-
thmetic and Logic Unit (ALU), responsvel por realizar as operaes do
computador como soma e subtrao assim como as funes lgicas, OU, E,
NO e OU Exclusivo. Algumas ULAs mais sofsticadas realizam tambm
multiplicaes e divises.
19
ARQUITETURA DE COMPUTADORES
Os registradores so memrias utilizadas para realizar as operaes
na CPU. Essas memrias so muito rpidas e de tamanho pequeno, geral-
mente sufciente para guardar menos de uma dezena de valores. Alm dos
registradores comum haver uma memria de rascunho dentro da CPU,
chamada de Cache. Ela utilizada para aumentar a velocidade de proces-
samento reduzindo o tempo de acesso memria externa.
A Unidade de Controle responsvel por controlar todo o funcionamen-
to da CPU e tambm de todo o computador. Ela controla o processamento
entre ULA e Registrador e interage com o barramento externo onde fcam os
perifricos. A Unidade de Controle tem uma funo chave que a interpreta-
o do cdigo do programa que ir nortear os comandos do processamento.
Continuando na Figura 5 podemos observar um barramento e trs m-
dulos externos CPU: Memria, Disco e Interface de Entrada e Sada (I/O).
O barramento serve para interligar todos os componentes internos do
computador. Para se obter altas velocidades esse barramento geralmente
paralelo (os dados so enviados paralelamente). Nessa fgura representa-
mos apenas um barramento, mas geralmente ele dividido em barramento
de dados (onde os dados trafegam), barramento de endereo (onde indica-
mos a localizao de cada dado) e o barramento de controle (onde indica-
mos o comando, por exemplo, ler, escrever, copiar, etc). Em um computador
real existem vrios nveis de barramento com velocidades diferentes, quanto
mais prximo da CPU mais rpido ele , e quanto mais prximo dos perif-
ricos mais lento ele .
A Memria constituda por um conjunto de memria semicondutora
utilizada para armazenar os dados temporariamente. Podemos dizer que
essa a memria de trabalho do computador e geralmente fca localizada
na placa me do computador. Essa memria mais lenta que os Registra-
dores mas mais rpida que as unidades de armazenamento em disco. A
memria semicondutora geralmente perde os dados quando o computador
desligado, por isso deve-se usar uma unidade de armazenamento perma-
nente, o disco.
O disco consiste em uma unidade eletro-mecnica que armazena os
dados em um disco magntico que mantm as informaes mesmo quando
o computador desligado. Essa unidade tem grande capacidade de arma-
zenamento mas tem velocidade de acesso signifcativamente menor em rela-
o s memrias semicondutoras.
O mdulo de Entrada e Sada, ou Input/Output (I/O), estabelece a
ligao do computador com o mundo externo, usando equipamentos perif-
ricos. Essa interface permite a ligao de teclados e mouses (para entrada
de dados), monitores ou impressoras (para exibio dos dados) e placas de
comunicao (para trocar dados a longa distncia). Essa interface signif-
cativamente mais lenta que os demais componentes do computador devido
a natureza dos perifricos e a incapacidade humana de processar informa-
es na velocidade dos computadores.
As prximas unidades iro detalhar cada um dos mdulos que cons-
tituem um computador.
Arquitetura Harvard
A Arquitetura de Harvard, mostrada na fgura abaixo, uma arqui-
tetura de computador onde os caminhos de comunicao e a memria de
armazenamento das instrues e de dados so fsicamente separados.
20
ARQUITETURA DE COMPUTADORES
O termo originou da caracterstica do computador eletro-mecnico Mark I,
desenvolvida na Universidade de Harvard, que armazenava instrues em
uma fta perfurada (com 24 bits de largura) e os dados eram armazenados
em contadores eletromecnicos. Esta mquina tinha espao limitado para
o armazenamento de dados, inteiramente contido na Unidade Central de
Processamento, e como no havia nenhuma ligao dessa memria com o
armazenamento de instruo, o programa era carregamento e modifcando
de forma inteiramente isolada (off-line).

Figura 7 Diagrama de blocos da Arquitetura Harvard
Na Arquitetura de Harvard, no h necessidade de fazer comparti-
lhamento das memrias com dado e instruo. Em particular, a largura da
palavra, o sincronismo, a tecnologia da execuo e a estrutura do endereo
de memria para dados e instrues podem diferir. Em alguns sistemas,
as instrues so armazenadas em memria somente de leitura (ROM) en-
quanto a memria de dados exige geralmente uma memria de leitura/es-
crita (RAM). Em alguns sistemas, h muito mais memria de instruo do
que a memria dos dados devido ao fato de que os endereos de instruo
so maiores do que endereos de dados.
Em um computador com a Arquitetura von Neumann, o processador
central no pode ler uma instruo e realizar uma leitura/escrita de da-
dos simultaneamente. Ambos no podem ocorrer ao mesmo tempo porque
as instrues e os dados usam o mesmo barramento de sistema. Em um
computador com a arquitetura de Harvard, o processador central pode ler
uma instruo e executar um acesso memria de dados ao mesmo tempo
porque os barramentos so distintos. Um computador da Arquitetura de
Harvard pode ser mais rpido para um determinado processador porque o
acesso aos dados e instruo no usam o mesmo barramento. No entanto,
uma Arquitetura de Harvard exige um circuito eletrnico maior e mais com-
plexo, comparado com a Arquitetura Von Neumann.
Off-line todo processo
em um computador que
realizado fora do equipa-
mento e independente de
o computador estar ligado
ou no.
21
ARQUITETURA DE COMPUTADORES
A Arquitetura de Harvard Modifcada muito semelhante Arquite-
tura de Harvard, mas defne um caminho alternativo entre a memria da
instruo e o processador central de forma que permita que as palavras na
memria da instruo possam ser tratadas como dados somente de leitura,
no apenas instruo. Isso permite que os dados constantes, particular-
mente tabelas de dados ou textos, sejam alcanados sem ter que primeira-
mente ser copiado para a memria dos dados, liberando assim mais mem-
ria de dados para variveis de leitura/gravao. Para diferenciar leitura de
dados da memria da instruo so utilizadas instrues especiais.
A vantagem principal da Arquitetura de Harvard - acesso simultneo
a memria de dados e instruo - foi compensada pelos sistemas modernos
de cache, permitindo que uma mquina com Arquitetura von Neuman pu-
desse oferecer desempenho semelhante Arquitetura de Harvard na maio-
ria dos casos.
Apesar disso a Arquitetura de Harvard ainda muito utilizada em
aplicaes especfcas, onde a arquitetura ainda apresenta boa relao cus-
to-desempenho, como:
Processadores de Sinal Digital (DSPs): Processadores especializa-
dos em processamento de udio, vdeo ou comunicaes. Esses pro-
cessadores precisam realizar uma grande quantidade de operaes
aritmticas em uma grande quantidade de dados, fazendo que a
Arquitetura Harvard seja economicamente vivel.
Os microcontroladores, pequenos processadores usados em aplica-
es especfcas como controle de mquinas, veculos, equipamen-
tos. Esses processadores so caracterizados pela pequena quantida-
de de memria de programa (geralmente memria Flash) e memria
de dados (SRAM), assim, a Arquitetura de Harvard pode apressar
o processamento permitindo o acesso instruo e dados simulta-
neamente. O barramento e o armazenamento separado possibilita
que as memrias de programa e de dados tenham larguras de bits
diferentes. Por exemplo, alguns PICs tem uma palavra de dados de 8
bits mas tem palavras de instruo de 12, 14, 16 ou 32 bits, confor-
me a complexidade do programa. Os produtos mais conhecidos que
usam a Arquitetura Harvard so: processadores ARM (vrios fabri-
cantes), o PIC da Microchip Tecnologia, Inc., e o AVR da Atmel Corp.
Arquitetura Von Neumann
A Arquitetura de von Neumann
um modelo de arquitetura para compu-
tador digital de programa armazenado
onde existe uma nica estrutura com-
partilhada para armazenamento de ins-
trues e de dados. O nome uma ho-
menagem ao matemtico e cientista de
computao John Von Neumann que
primeiro props essa idia.
Um computador com Arquitetura
von Neumann mantm suas instrues
de programa e seus dados na memria
de leitura/escrita (RAM). Essa arquite-
tura foi um avano signifcativo sobre os

Figura 8 Diagrama de Blocos de uma
Arquitetura von Neumann
22
ARQUITETURA DE COMPUTADORES
computadores dos anos 40, tais como o Colossus e o ENIAC, que eram pro-
gramados ajustando interruptores e introduzindo cabos para ligar os sinais
de controle entre as vrias unidades funcionais. Na maioria dos computado-
res modernos usa-se a mesma memria para armazenar dados e instrues
de programa.
Os termos Arquitetura von Neumann e computador de Programa-
Armazenado so usados indistintamente nesse texto. Ao contrrio, a Ar-
quitetura de Harvard armazena um programa em um local diferente do
local utilizado para armazenar dados.
Von Neumann foi envolvido no projeto de Manhattan. L juntou-se ao
grupo que desenvolveu o ENIAC para desenvolver o projeto do computador
de programa-armazenado chamado EDVAC. O termo Arquitetura von Neu-
mann foi mencionada em um relatrio sobre o projeto EDVAC datado de 30
de junho de 1945, que incluiu idias de Eckert e de Mauchly. O relatrio foi
lido por vrios colegas de von Neumann na Amrica e Europa, infuenciado
signifcativamente todos os futuros projetos de computador. Apesar de ser
reconhecido a contribuio de J. Presper Eckert, John Mauchly e Alan Tu-
ring para o conceito de computador de programa-armazenado, essa arqui-
tetura mundialmente denominada Arquitetura Von Neumann.
Gargalos da Arquitetura Von Neumann
O compartilhamento de estrutura para armazenar dados e instrues
entre o processador central e a memria conduz ao gargalo de Von Neu-
mann, devido limitao da taxa de transferncia dos dados do barramen-
to entre o processador central e memria. Na maioria de computadores
modernos, a taxa de transmisso do barramento geralmente muito menor
do que a taxa em que o processador central pode trabalhar. Isso limita
seriamente a velocidade de processamento efetivo quando o processador
central exigido para executar o processamento de grandes quantidades
de dados na memria. O processador central forado continuamente a
esperar a transferncia de dados de ou para memria. A partir do aumento
da velocidade dos processadores e o aumento do tamanho e da velocidade
das memrias, o gargalo do barramento nico se transformou em mais um
problema. O termo de gargalo Von Neumann foi criado por John Backus
em artigo no 1977 ACM Turing Award.
O problema de desempenho da Arquitetura Von Neumann pode ser
reduzido atravs do uso de cache entre o processador central e a memria
principal, e pelo desenvolvimento de algoritmos de predio de desvio. Oti-
mizaes das linguagens orientadas a objeto modernas so menos afetadas
que o cdigo objeto linear gerado por compilador Fortran do passado.
Lei de Moore
A Lei de Moore descreve uma tendncia histrica de longo prazo na
evoluo de desempenho de hardware, em que o nmero de transistores que
podem ser colocados em um circuito integrado dobra a aproximadamente
cada dezoito meses. Mesmo no sendo uma lei natural que no possa ser
controlada, a Lei de Moore um bom prognstico para o avano da tecnolo-
gia micro-eletrnica nos ltimos 40 anos.
23
ARQUITETURA DE COMPUTADORES

Figura 9 Grfco da Lei de Moore comparando com os processadores lanados [Intel]
As caractersticas de muitos dispositivos eletrnicos so fortemente
associados Lei de Moore: velocidade de processamento, capacidade de me-
mria e o nmero e tamanho dos pixels nas cmaras digitais. Todos eles
crescem a taxas aproximadamente exponenciais. Isso aumentado drama-
ticamente o uso da eletrnica digital em quase todos os segmentos da eco-
nomia mundial. A tendncia acontece a quase meio sculo e no esperado
reduzir pelo menos at 2015.
A lei recebeu o nome do co-fundador da Intel, Gordon E. Moore, que
introduziu o conceito em um artigo de 1965. Ela tem sido usada desde ento
pela indstria de semicondutores para guiar o planejamento de longo prazo
e para ajustar metas para a pesquisa e o desenvolvimento.
Limites da Lei de Moore
Em 13 de abril de 2005, Gordon Moore anunciou em uma entrevista
que a lei no pode se sustentar indefnidamente: No pode continuar para
sempre. A natureza das taxas exponenciais que voc os empurra para fora
e eventualmente disastres acontecem.
No entanto, previu que os transistores alcanariam os limites at-
micos de miniaturizao: Nos termos de tamanho [dos transistores] voc
pode ver que ns estamos nos aproximando do tamanho dos tomos que
uma barreira fundamental, mas sero duas ou trs geraes antes de al-
canarmos e que parece to distante e talvez no chegaremos a v-lo. Ns
ainda temos 10 a 20 anos antes que ns alcancemos o limite fundamental.
At l poderemos fazer chips maiores e quantidade de transistores da ordem
de bilhes.
Em 1995, o microprocessador Digital Alpha 21164 tinha 9.3 milho
de transistores. Seis anos mais tarde, um microprocessador avanado ti-
nha mais de 40 milhes de transistores. Teoricamente, com miniaturizao
adicional, em 2015 esses processadores devem ter mais de 15 bilhes de
transistores, e por volta de 2020 chegar na escala de produo molecular,
onde cada molcula pode ser individualmente posicionada.
Em 2003 a Intel previu que o fm viria entre 2013 e 2018 com processo
de manufatura de 16 nanmetros e portas com 5 nanmetros, devido ao
tunelamento quntico do silcio. No entanto, a melhoria da qualidade do
24
ARQUITETURA DE COMPUTADORES
processo de fabricao poderia aumentar o tamanho dos chips e aumentar
a quantidade de camadas pode manter o crescimento na taxa da Lei de Mo-
ore por pelo menos uma dcada a mais.
Nesta unidade apresentamos os conceitos bsicos de Arquiteturas de Com-
putadores. Inicialmente apresentamos algumas defnies necessrias para
o entendimento de uma arquitetura de computadores que ser til em todas
as unidades deste livro. Depois apresentamos uma pequena histria dos
computadores eletrnicos desde a sua inveno nos anos 40 at os dias de
hoje. Apresentamos os componentes gerais de uma arquitetura de compu-
tadores que sero estudados nas prximas unidades. Finalmente apresen-
tamos as Arquiteturas Harvard e Von Neumann alm de uma discusso
sobre a Lei de Moore.
1. Observando a Figura 8 (arquitetura Von Neumann) avalie os componen-
tes que podem limitar o desempenho. Proponha solues para resolver
esse gargalo
2. Qual mdulo de uma arquitetura de computadores deve ser mais rpido
para melhorar o desempenho de um sistema de processamento numri-
co (muitas operaes matemticas)?
3. Qual mdulo de uma arquitetura de computadores deve ser mais rpido
para melhorar o desempenho de um sistema de armazenamento de da-
dos (muitos dados guardados e consultados)?
4. Pesquise na Internet algumas tecnologias que esto sendo desenvolvidas
para superar as limitaes da Lei de Moore.
Museu da Histria do Computador (em ingls)
http://www.computerhistory.org/
Histria do Computador (em ingls)
http://www.computersciencelab.com/ComputerHistory/History.htm
Discusso sobre e Lei de Moore (em ingls)
http://www.intel.com/technology/mooreslaw/
25
ARQUITETURA DE COMPUTADORES
FERNANDO DE CASTRO VELLOSO. Informtica: Conceitos Bsicos. 7
Ed. Editora: Campus, 2004. Livro destinado a estudantes de cursos de in-
troduo a informtica com os fundamentos da Informtica e introduz os
alunos progressivamente nos aspectos mais importantes do universo dos
computadores, memrias, sistemas operacionais, unidades de entrada e sa-
da, bancos de dados, linguagens, tecnologia orientada a objetos e muito
mais. Repleto de ilustraes, exemplos, exerccios e respostas, escrito por
um experiente professor de cursos de introduo Informtica.
BEHROOZ PARHAMI. Arquitetura de Computadores. 1 Ed. Editora: Mc-
Graw-Hill, 2008. Livro que enfatiza tanto os princpios tericos quanto os
projetos prticos, abordando um amplo leque de tpicos e relaciona arqui-
tetura de computadores com outros campos da informtica. O tema apre-
sentado em captulos curtos, ordenados de maneira fexvel, em forma de
aula, o que facilita a compreenso da inter-relao entre os vrios tpicos
sem perder de vista o contexto geral.
Unidade
Objetvo:
Nesta unidade vamos apresentar os conceitos de Lgica Digital necessrios
para entendimento das Unidades seguintes. Iniciamos com a apresentao das
unidades lgicas bsicas que possibilitam a construes de todos os circuitos
lgicos, em seguida apresentamos os circuitos combinacionais mais tradicionais
em uma arquitetura e conclumos com a apresentao dos circuitos seqenciais,
que acrescentam o conceito de armazenamento da informao.
Circuitos lgicos digitais
2
ARQUITETURA DE COMPUTADORES
29
Captulo 1
Portas Lgicas Bsicas
Os blocos bsicos de uma arquitetura de computador so as portas
lgicas ou apenas portas. As portas so os circuitos bsicos que tm pelo
menos uma (geralmente mais) entradas e exatamente uma sada. Os va-
lores da entrada e da sada so os valores lgicos verdadeiro ou falso. Na
conveno de computao comum usar 0 para falso e 1 para verdadeiro.
As portas no tm nenhuma memria. O valor da sada depende somen-
te do valor atual das entradas. Este fato torna possvel usar uma tabela de
verdade para descrever inteiramente o comportamento de uma porta. Para
representar matematicamente a lgica digital utilizamos a lgebra de Boole.

Portas bsicas
Portas bsicas so portas fundamentais que podem formar outras
portas com funes especiais. Ns consideramos geralmente trs tipos b-
sicos das portas, as portas E, as portas OU, e as portas NO (ou inversores).
Tambm usual chamar as portas pelo termo em ingls, respectivamente,
AND, OR e NOT.
Porta E (AND)
Uma porta E pode ter um nmero arbitrrio de entradas. O valor da
sada 1 se e somente se todas as entradas so 1. Se no o valor da sada
0. O nome foi escolhido porque a sada 1 se e somente se a primeira entra-
da e a segunda entrada, e,, e a n-sima entrada so todas 1.
frequentemente til desenhar diagramas das portas e das suas in-
terconexes. Em tais diagramas, a porta E desenhada como:
A tabela de verdade para uma porta E com duas entradas mostrada
abaixo:
x y z
0 0 0
0 1 0
1 0 0
1 1 1
lgebra de Boole foi cria-
da pelo matemtico Ge-
orge Boole no sculo XIX
com objetivo de defnir
uma srie de operaes
lgicas aplicadas a sis-
temas binrios (0s e 1s).
Essa lgebra permite re-
alizar inferncias lgicas
em computadores bin-
rios.
30
ARQUITETURA DE COMPUTADORES
Porta OU (OR)
Como a porta E, a porta OU pode ter um nmero arbitrrio de entra-
das. O valor da sada 1, se e somente se, pelo menos de um dos valores
da entrada 1. Caso contrrio, a sada 0. Ou seja o valor da sada 0
somente se todas as entradas so 0. O nome foi escolhido porque a sada
1, se e somente se, a primeira entrada ou a segunda entrada, ou,, ou a
n-sima entrada so 1.
Em esquemas de circuito, ns desenhamos a porta OU como:

A tabela de verdade para uma porta OU com duas entradas mostra-
da abaixo:
x y z
0 0 0
0 1 1
1 0 1
1 1 1
Porta NO (NOT)
A porta NO tambm conhecida como inversor e tem exatamente
uma entrada e uma sada. O valor da sada 1 se e somente se a entrada
0. Se no, a sada 0. Ou seja o valor da sada exatamente o oposto do
valor da entrada.
Em esquemas de circuito, ns desenhamos a porta NO como:

A tabela de verdade para um inversor mostrado abaixo:
X y
0 1
1 0

Portas compostas
s vezes, prtico combinar funes das portas bsicas em portas
mais complexas a fm reduzir o espao em diagramas de circuito. Nesta
seo, ns mostraremos algumas portas compostas junto com suas tabelas
de verdade.
Porta NO-E (NAND)
A porta NOE uma porta E com um inversor na sada. Assim em vez
de desenhar diversas portas com esta:
31
ARQUITETURA DE COMPUTADORES

Ns desenhamos uma nica porta-e com um pequeno anel na sada
como este:

A porta-noe, assim como a porta-e pode ter um nmero arbitrrio de
entradas.
A tabela de verdade para a porta-noe semelhante tabela para
porta-e, exceto que todos os valores da sada so invertidos:
x y Z
0 0 1
0 1 1
1 0 1
1 1 0
Porta NO-OU (NOR)
A porta NO-OU uma porta OU com um inversor na sada. Assim em
vez de desenhar diversas portas como esta:

Ns desenhamos uma nica porta OU com um pequeno anel na sada
como este:

A porta no-ou, assim como a porta ou pode ter um nmero arbitrrio
de entradas.
A tabela de verdade para a porta no-ou semelhante tabela para
porta ou, exceto que todos os valores da sada so invertidos:
x y z
0 0 1
0 1 0
1 0 0
1 1 0
32
ARQUITETURA DE COMPUTADORES
Porta OU-EXCLUSIVO (XOR)
A porta OU-EXCLUSIVO similar a uma porta OU. Apesar de poder
ter um nmero arbitrrio de entradas normalmente representamos apenas
duas entradas. O valor da sada 1 se somente uma das entradas 1 e a
outra 0, por isso se diz ou-exclusivo. Se no, a sada 0. Assim, em vez de
desenhar diversas portas como esta:

Ns desenhamos uma porta ou-exclusivo como mostrada abaixo:

A tabela de verdade para uma porta ou-exclusivo com duas entradas
mostrada abaixo:
x y z
0 0 0
0 1 1
1 0 1
1 1 0
Mas para que serve uma porta OU-EXCLUSIVO? Ela um bloco es-
sencial para a construo de um circuito muito til em computadores, o
SOMADOR.
1. Analise as tabelas verdades e veja como poder ser construdo um cir-
cuito que implemente uma funo OU a partir de funo E (dica: De
Morgan).
2. Projete um circuito com lgica digital que indique quando uma caixa
dgua est cheia, est vazia e quando os sensores esto com defeito (cai-
xa cheia e no vazia).
3. Pesquise sobre lgebra de Boole e veja como podemos representar fun-
es lgicas de maneira textual.
ARQUITETURA DE COMPUTADORES
33
Captulo 2
Circuitos Combinacionais
Um circuito combinacional um circuito construdo com portas de l-
gica digital bsicas que implementam funes mais complexas. A principal
caracterstica de um circuito combinacional que a sua sada depende uni-
camente de suas entradas. Assim, ao se colocar um conjunto determinado
de entradas sempre obteremos a mesma sada. Os circuitos combinacio-
nais no possuem nenhuma tipo de memria.
Existe uma grande variedade de tipos de circuitos combinacionais.
Apresentaremos aqui apenas o multiplexador, decodifcador, a matriz lgica
programvel e os somadores.
Multplexadores
Um multiplexador, ou simples-
mente mux, um dispositivo seleciona
dados procedentes de vrias entradas
para uma nica sada. So utilizados
em situaes onde necessrio esco-
lher apenas uma entrada e isolar as
demais entradas.
Em circuitos digitais, o multiple-
xador um dispositivo que possui v-
rias entradas de dados e somente uma
sada de dados. A partir de um circuito
de controle no qual a entrada o valor
da entrada desejada, possvel esco-
lher a porta de entrada que se deseja
passar para a sada. Por exemplo, um
multiplexador de duas entradas uma
simples conexo de portas lgicas cuja
sada S a entrada A ou a entrada B
dependendo do valor de uma entrada
C que seleciona a entrada.
O circuito abaixo mostra uma multiplexador com 8 entradas (E0 a E7)
e 1 sada (S). A seleo da entrada realizada pela entrada de controle com
3 entrada (C0 a C2) que deve indicar o nmero binrio da entrada que se
quer selecionar. Se por exemplo, colocarmos o valor 111 nas entradas C0 a
C3 vamos habilitar a entrada E7 (as entradas negadas entram na porta E
onde a entrada E7 est ligada). Assim o valor da entrada E& (seja ele 0 ou
1) copiado para a porta S.
Um demultiplexador, ou simplesmente demux, um dispositivo que
executa a funo inversa do multiplexador. Um circuito demultiplexador
construdo a partir de um decodifcador, pois a partir de um cdigo de con-
trole podemos escolher uma sada.

Figura 10 Diagrama de um Multiplexa-
dor de 8 entradas e 1 sada com 3 bits
de controle
34
ARQUITETURA DE COMPUTADORES
Decodifcadores
Um decodifcador ou decodifcador
de endereos um circuito que possui
dois ou mais bits de controle como en-
trada (por exemplo, um barramento de
endereo) e possui um ou mais dispositi-
vos de sada que poder ser selecionado.
Quando colocamos um dado nas entra-
das de controle C0, C1 e C2, uma das
sadas S0 a S7, e apenas uma, sele-
cionada. Um decodifcador com N bits de
controle de entrada pode selecionar at
2N dispositivos individuais de sada.
Um decodifcador tambm pode ser
chamado de demultiplexador ou demux
quando associamos uma entrada co-
mum a cada porta E. Quando o circuito
de controle ativar uma porta E ela vai co-
piar o dado de entrada para uma deter-
minada sada, fazendo a funo inversa
de um multiplexador.
Matriz Lgica Programvel
Uma matriz lgica programvel, tambm conhecido por PAL (Pro-
gramable Array Lgic) ou PLD (Programmable logic device) um dispositivo
eletrnico de lgica digital programvel que possibilita implementar uma
grande variedade de circuitos combinacionais.
Mas ao contrrio de uma porta lgica fxa, que tem uma funo de-
terminada, um dispositivo de matrz lgica programvel tem uma funo
indefnida no momento de sua fabricao. O circuito deve ser programado
para executar a funo desejada. Existem uma gama enorme de fabricantes
de dispositivos programveis e de categorias de dispositivos, cada um com
uma aplicao especfca. Alguns dispositivos so programveis apenas
uma vez e outros podem ser programados vrias vezes. Alguns dispositivos
reprogramveis perdem sua programao quando desligados e outros man-
tm a gravao mesmo quando a energia desligada.
Qualquer funo boleana pode ser construda a partir da combinao
de portas E e portas OU. O circuito mostrado na fgura abaixo mostra um
exemplo de um dispositivo de matriz de lgica programvel. As entradas A
e B so sinais de entrada do circuito. A primeira funo implementada
gerar o sinal prprio e a negao de cada sinal. Uma matriz faz todas as
combinaes possveis na matriz de portas E. Como temos duas entradas A
e B, teremos 4 combinaes possveis de funo E. Essa etapa gera todos
os produtos dos sinais de entrada.
A etapa seguinte uma matriz de portas OU, que permite a combinao
de todas as entradas E. Nesse caso temos um fusvel, queimado no processo
de gravao, que vai defnir quais funes lgicas sero implementadas para
cada sada. Essa etapa gera as somas dos produtos desejados. Com essa
organizao podemos implementar qualquer funo de lgica binria.
Figura 11 Diagrama de um Decodifca-
dor de 8 sadas com 3 bits de controle
35
ARQUITETURA DE COMPUTADORES

Figura 12 Diagrama de uma Matriz Lgica Programvel com 2 entradas e 4 sadas
Somador
O somador binrio um circuito que realiza a operao de soma, e
tambm subtrao em complemento de dois, de um bit. Essencialmente o
somador constitudo por um OU-Exclusivo que calcula o resultado e um
E que calcula o vai-um. O princpio mostrado no meio-somador, mas um
circuito real o somador completo, ambos mostrados nas prximas sees.
Meio Somador
O Circuito somador realiza a soma de um bit tendo como resultado a
valor da soma e o bit de vai-um conforme diagrama mostrado abaixo:

A tabela de verdade de um meio-somador mostrado abaixo:
X Y S Co
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
36
ARQUITETURA DE COMPUTADORES
Somador Completo
Apesar do meio somador informar o bit de vai um, ele no considera o
vai um do bit anterior, assim ele s pode ser usado para somar o bit menos
signifcativo.
Para realizar uma soma completa precisamos utilizar o circuito so-
mador completo que tanto informa o vai-um para o prximo bit, como con-
sidera o vai-um do bit anterior da soma. O diagrama do somador completo
mostrado abaixo:

A tabela de verdade de um somador-completo mostrado abaixo:
A B Ci S Co
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
1. Imagine como um circuito decodifcador poderia exibir um digito utili-
zando um display de 7 segmentos.
2. Pesquise sobre os diversos tipos de matriz lgica programvel e exempli-
fca aplicaes para cada um.
3. Monte um circuito somador de 4 bits unindo 4 modulo de somador com-
pleto. E se usar meio somadores?

ARQUITETURA DE COMPUTADORES
37
Captulo 3
Circuitos Sequenciais
Mostramos nas sees anteriores que a sada de um circuito combi-
nacional depende unicamente de suas entradas. O motivo que os circuitos
combinacionais no tm nenhuma memria. Para construir circuitos de
lgica digitais mais sofsticados, incluindo computadores, ns precisamos
de um dispositivo mais poderoso. Esse dispositivo, chamado Flip-fop, um
circuito cuja sada depende alm das suas entradas no circuito tambm do
seu estado precedente. Ou seja, um circuito que tem a memria do estado
passado.
Para que um dispositivo sirva como uma memria, deve ter trs ca-
ractersticas:
o dispositivo deve ter dois estados estveis (tratamos de dados binrios)
deve haver uma maneira de ler o estado do dispositivo
deve haver uma maneira de atribuir, pelo menos uma vez, o seu
estado.
possvel produzir circuitos digitais com memria usando portas l-
gicas que j foram vistas. Para fazer isso, ns precisamos introduzir o con-
ceito de realimentao (feedback). At agora, o fuxo lgico nos circuitos
que estudamos foi da entrada sada, ou um circuito acclico. Agora ns
introduziremos um circuito em que a sada realimenta a sua entrada, per-
mitindo realizar a manuteno de um estado, mesmo quando a informao
na entrada cesse.
Flip-Flops
Flip-Flop SR
O Flip-fop SR um tipo simples de circuito seqencial, isto , o estado
da entrada depende da sada anterior. A fgura abaixo mostra o diagrama
esquemtico de um fip-fpo SR e o smbolo usualmente utilizado. O smbolo
para o Flip-fop ou latch S-R mostrado na fgura abaixo.

Figura 13 Diagrama e Smbolo de um Flip-Flop SR
38
ARQUITETURA DE COMPUTADORES
A sada da porta NO-OU verdadeira somente quando ambas as en-
tradas so falsas. A sada de cada uma das portas NO-OU realimentada
de volta entrada da outra porta. Isto signifca que se a sada de uma porta
NO-OU verdadeira, a sada da outra deve ser falsa. Se a sada da par-
te superior da porta NO-OU, verdadeira ou um, isso signifca que uma
das entradas da porta do NO-OU de baixo, verdadeira, e a sada do
NO-OU de baixo deve ser falso.
Para que a sada do NO-OU superior ser verdadeira, ambas suas
entradas tm que ser falsas.
Ao acionar a entrada S, a sada da porta NO-OU de baixo torna-
se falso e a sada da porta NO-OU superior, forada a verdadeiro. Ao
acionar S outra vez e deslig-lo em seguida, a sada do circuito permanece
inalterada. O que aconteceu que ns armazenamos o valor do S no circui-
to que permanece S mesmo que altere a entrada. Os valores de sada e
so sempre opostas.
Desligando S e acionando R e o desligando em seguida, qualquer que
seja o valor armazenado far com que a sada da porta NO-OU superior,
forada a falso e sada da porta NO-OU de baixo torna-se verdadeiro.
Da podemos concluir que a entrada S verdadeira torna a sada verdadei-
ra e a entrada R verdadeira torna a sada falsa.
Esse circuito um latch S-R (uma trava). As entradas S e R ajustam a
trava, fazendo verdadeiro e falso. A sada do circuito estvel em um ou ou-
tro estado com as entradas removidas. Ns podemos remover a entrada que
causou uma sada particular e a sada permanecer inalterada. O estado,
e a sada, mudar somente quando a entrada complementar aplicada. O
circuito tem dois estados estveis, por isso chamamos de circuito biestvel.
A entrada S=R=1 no permitida. Se ambas as entradas so verda-
deiras, ambas as sadas devem ser falsas. Isto implica sada = = 0, que
logicamente incompatvel. Nesta situao o circuito instvel e quando
uma das entradas retorna ao estado falso, a entrada restante determina o
estado estvel e as mudanas da sada.

Figura 14 Flip-Flop SR com Habilitador (relgio)
A fgura acima mostra um fip-fop SR com habilitador que acrescen-
ta um par de portas lgicas E com uma entrada comum E (Enable). Nesse
caso, quando a entrada E est falsa (zero) a sada delas e a entrada das
portas NO-OU permanecem em falso, no importando o valor de S ou R.
Quando a entrada E fca verdadeira, o valor das portas S e R so encami-
nhadas para as portas NO-OU. Isso garante que apenas quando o habili-
tador estiver ativo que poderemos acionar as portas R e S.
Podemos construir um circuito de fip-fop SR com portas NO-E
como mostrado abaixo. O funcionamento muito semelhante ao circuito
com porta NO-OU. Sua grande vantagem que industrialmente mais
fcil construir uma porta NO-E do que uma porta NO-OU.
Latch s.
39
ARQUITETURA DE COMPUTADORES

Figura 15 Flip-fop RS NO-E com relgio
Podemos cascatear dois circuitos fip-fop consecutivos, possibilitan-
do o isolamento do sinal de entrada e sada. O fip-fop com duas sees,
tambm conhecido como fip-fop mestre-escravo (master-slave), tem esse
nome porque o registro de entrada operada pela seo mestra (master), en-
quanto a seo de sada escrava (slave) ativada apenas durante a segunda
metade de cada ciclo de pulso de disparo do relgio.
O fip-fop mestre-escravo RS NO-E mostrado abaixo:

Figura 16 Flip-fop RS mestre-escravo
O fip-fop RS mestre-escravo consiste realmente em dois circuitos
idnticos de fip-fop RS, como mostrado acima. Entretanto, um inversor
conectando as duas entradas de relgio (C) assegura-se de que as duas se-
es estejam habilitadas durante metade de ciclos com sinal oposto. Como
impossvel estas duas portas de relgio sejam ativadas no mesmo instante,
evitamos que o valor passe diretamente para o estgio seguinte.
Se comeamos com a entrada C=0, as entradas S e R esto desconec-
tadas do fip-fop mestre de entrada. Conseqentemente, nenhuma mudan-
a nos sinais de entrada ir afetar o estado das sadas fnais.
Quando o sinal de C vai lgica 1, as entradas de S e de R podem
controlar o estado do fip-fop de entrada, apenas como com circuito de fip-
fop RS j examinado. Entretanto, ao mesmo tempo o sinal invertido de C
aplicado ou fip-fop escravo (slave) da sada impedindo que o estado do
fip-fop de entrada tenha efeito no segundo estgio. Conseqentemente,
todas as mudanas de sinais de entrada nas portas R e de S so seguidas
pela trava da entrada quando C estiver na lgica 1, mas no refetindo nas
sadas de e .
Quando C cai outra vez lgica 0, as entradas de S e de R esto iso-
ladas outra vez da entrada. Ao mesmo tempo, o sinal invertido de C permite
40
ARQUITETURA DE COMPUTADORES
agora que o estado atual da trava da entrada alcance a trava da sada. Con-
seqentemente, as sadas de e podem somente mudar o estado quando
o sinal de C cai de uma lgica 1 lgica 0.
H ainda um problema no resolvido com a organizao mestre-es-
cravo, a condio de corrida possvel de ocorrer quando as entradas de S e
R esto na lgica 1 e C cair de 1 para 0. No exemplo acima, ns supor auto-
maticamente que a raa terminar sempre com a trava mestra na lgica 1
estado, mas no ser certo que esta com componentes reais. Conseqente-
mente, precisamos ter uma maneira de impedir que essas condies ocor-
ram. Uma soluo adicionar algum feedback adicional do setor escravo
para o mestre. O circuito resultante chamado um fip-fop JK.
Flip-Flop tpo JK
Para impedir a possibilidade de uma condio indefnida que ocorre
quando as entradas de S e de R esto em nvel 1 quando a entrada de relgio
habilita a porta E de um fip-fop SR, ns devemos garantir que as portas
no deixaro ocorrer essa situao. Ao mesmo tempo, ns ainda queremos
que o fip-fop deve poder mudar o estado em cada transio da entrada de
relgio CLK, se os sinais da lgica da entrada JK estiverem em 1.
Se a sada de Q est em 1 (o fip-fop est no estado Set), a entrada S
no pode faz-lo ajustar-se ao que ele j . Conseqentemente, ns podemos
incapacitar a entrada S sem incapacitar o fip-fop. Na mesma maneira, se a
sada de Q est em 0 (o fip-fop est no estado Reset), a entrada de R pode
ser desabilitada sem causar nenhum dano.
O circuito abaixo mostra a soluo. Ao fip-fop RS ns adicionamos
duas conexes novas das sadas de Q e de Q de volta s portas de entrada
originais. Lembre-se que uma porta de NAND pode ter qualquer nmero de
entradas. Para mostrar que ns fzemos uma alterao no funcionamento
do circuito, ns mudamos as designaes das portas de entradas e do fip-
fop prprio. As entradas so designadas agora J (em vez de S) e K (em vez
de R). O circuito inteiro conhecido como um fip-fop JK.

Figura 17 Flip-fop tipo JK
Na maioria das vezes, o fip-fop JK comporta-se da mesma forma que
um fip-fop RS. As sadas de Q e de Q mudaro d estado somente quando
houver queda no sinal CLK, e as entradas J e K controlaro o estado das
sadas.
Mas h uma diferena. Como uma das duas entradas da lgica sem-
pre desabilitada de acordo com o estado de sada do fip-fop, o latch mestre
no pode mudar o estado enquanto a entrada de CLK estiver em 1. Em lugar
disso, a entrada de habilitao pode mudar o estado do latch mestre apenas
uma vez, depois do qual ele no mudar outra vez. Isto no acontecia com
o fip-fop RS.
Condio de corrida
uma falha em sistema
eletrnico ou programa
de computador em que o
resultado do processo
inesperadamente depen-
dente da sequncia ou sin-
cronia de outros eventos.
41
ARQUITETURA DE COMPUTADORES
Se as entradas de J e de K estiverem ambas em nvel 1 e o sinal de
CLK continua a mudar, as sadas de Q e de Q mudaro simplesmente o es-
tado com cada borda de queda do sinal de CLK. (O circuito mestre do latch
mudar o estado com cada transio da borda de CLK). Ns podemos usar
esta caracterstica para garantir a estabilidade do fip-fop. Para vrios ti-
pos, esta a nica maneira de assegurar-se de que o fip-fop mude o estado
somente uma vez em cada impulso de relgio.
Flip-Flop tpo D
Uma vez que ns aplicamos a idia de usar um relgio no nosso latch
SR, ns podemos comear livrando do problema de fazer S=R=1 e simplif-
car a entrada a nosso circuito.
Geralmente o que ns queremos fazer com um dispositivo de armaze-
namento guardar um bit de informao. A necessidade para explicitamen-
te ajustar e restaurar uma complexidade adicional. O que ns gostara-
mos um circuito que tenha uma nica entrada de dados D e uma nica
sada de dados Q. Quando o sinal de pulso de disparo elevado, o que que
aparece em D deve ser o valor armazenado em Q.
O circuito de fgura abaixo tal circuito. Tem uma entrada de dados,
D, e uma entrada de controle, C usad apara relgio. A entrada de dados
conectada atravs do E da porta entrada de S de um latch SR. conecta-
da igualmente atravs de um inversor e o E da porta entrada de R. E as
portas so conetadas entrada de C do circuito. Se C falso, nenhum sinal
alcana a trava e seu estado permanece inalterado. Se C verdadeiro e D
verdadeiro, a entrada de S verdadeira e o valor armazenado tem um valor
de verdadeiro, que igual ao D. Se C verdadeiro e D falso, a entrada de R
da trava est conduzida atravs do inversor e um valor de falso, que igual
a D, armazenado.

Figura 18 Flip-fop tipo D
O conceito de um fip-fop D, onde o bit a ser armazenado est aplicado
entrada de S de um fip-fop SR, e atravs de um inversor entrada de R,
pode somente ser feito para trabalhar apenas quando o CLK for habilitado.
O fip-fop D armazena o que est na porta D quando CLK verdadei-
ro. Se CLK est verdadeiro somente depois que os circuitos de entrada se
estabilizem, este circuito armazenar o valor correto do D, porque h so-
mente uma entrada de dados D. Nesse caso uma situao indefnida como,
por exemplo, S=R=1 no pode ocorrer nunca.
Enquanto a entrada CLK verdadeira, as mudanas a D esto refeti-
das na sada do circuito. O valor D ento copiada para o circuito do latch,
mantendo o dispositivo estvel.
Um ponto essencial sobre o fip-fop de D que quando a entrada de
pulso de relgio cai 0 as suas sadas podem mudar o estado, a sada Q
42
ARQUITETURA DE COMPUTADORES
exibe sempre o estado da entrada D no momento do pulso de disparo. Isto
no acontecia nos fip-fops RS e JK. A seo mestra do RS mudaria repe-
tidamente o estado para estabilizar os sinais de sada quando a linha do
pulso de disparo do relgio for a 1, e a sada de Q refetiria qualquer entrada
que recebeu recentemente. A seo mestra do JK receberia e guardaria uma
entrada at a mudana do estado, e nunca mudaria esse estado at o ciclo
seguinte do pulso de relgio ocorra. Esse comportamento no possvel
com o fip-fop tipo D.
Registrador de deslocamento
O Registrador de Deslocamento um circuito para realizar a conver-
so de dados seriais em dados paralelos, assim como a converso de dados
paralelos para serial. A fgura abaixo mostra um circuito de registrador de
deslocamento serial-paralelo.

Figura 19 Registrador de deslocamento Serial-Paralelo
O circuito construdo com fip-fops D ligados em srie, isto , a
sada Q de um fip-fop ligada entrada D do fip-fop seguinte. O sinal
de relgio aplicado a todos os fip-fops de forma que se possa garantir a
sincronizao do circuito. O sinal serializado introduzido no circuito atra-
vs da porta D do primeiro fip-fop. A cada ciclo do relgio, o dado da porta
D transferido para a porta Q. No prximo ciclo esse dado copiado para
o fip-fop seguinte e assim sucessivamente. Ao fnal de 4 ciclos, onde 4
o tamanho da palavra desse exemplo, podemos ler os dados paralelizados
atravs das portas QA a QD. O circuito pode tambm dispor de um sinal
Clear para iniciar o registrador (limpar o contedo anterior).
Outra possibilidade de circuito Registrado de Deslocamento realizar
a funo inversa, isto , transformar dados paralelos em serial, mostrado
na fgura abaixo.

Figura 20 Registrador de Deslocamento Paralelo-Serial
43
ARQUITETURA DE COMPUTADORES
O circuito tambm construdo com fip-fops D ligados em srie,
isto , a sada Q de um fip-fop ligada entrada D do fip-fop seguinte.
O sinal de relgio aplicado a todos os fip-fops de forma que se possa ga-
rantir a sincronizao do circuito. Agora nesse exemplo, o dado paralelo
aplicado as portas PA a PD. Observe que o bit mais signifcativo aplicado
na extremidade direita do circuito, pois este ser o primeiro a ser transmi-
tido, enquanto PD ser o ltimo. A cada ciclo de relgio o dado da porta D
tranferido para a porta Q que est ligada a porta D do fip-fop seguinte. Ao
fnal de 4 ciclos, onde 4 o tamanho da palavra desse exemplo, podemos ler
os dados serializados atravs da porta Qdo ltimo fip-fop.
Contadores
Uma exigncia comum em circuitos digitais realizar contagem, tanto
para frente como para trs. Os relgios digitais pulsos esto em toda parte,
os temporizadores so encontrados em uma grande variedade de equipa-
mentos, como, fornos de microonda, mquinas de lavar alm dos vrios
dispositivos em automveis.
Embora existam muitas variaes de contador bsico, so todos fun-
damentalmente muito semelhantes. Dividimos os contadores em dois gran-
des grupos, os contadores assncronos e os contadores sncronos.
Contadores Assncronos
Um contador assncrono no precisa de um sinal de relgio comum
para sincronizar o circuito. Basta aplicar um relgio na sua entrada e a
cada pulso ser incrementado (ou decrementado) uma contagem.
A fgura abaixo mostra o tipo o mais bsico do circuito de contagem
binrio.
Esse contador contrudo
com dois fip-fops JK onde a sa-
da Q do primeiro ligada porta
de relgio do segundo fip-fop. O
fip-fop JK apresenta um compor-
tamento interessante, quando am-
bas as portas J e K esto em 1, na
transio do relgio a sada Q vai
mudar de estado. Assim quando
ocorre uma transio na porta de
relgio de 1 para 0, a sada Q vai
trocar de nvel. A sada Q do pri-
meiro fip-fop est ligada na por-
ta de relgio do segundo fip-fop.
Agora, o segundo fip-fop somente
vai trocar de estado quando a sa-
da Q sofrer uma transio de 1
para 0. Com isso, o segundo fip-
fop vai trocar de estado apenas a
cada duas transies do primeiro
fip-fop. Observe na fgura do contador assncrono o resultado da sada Q0 e
Q1, ela mostra nmeros de 0 a 3 no formato binrio, isto , a cada transio
no relgio ele incrementa um nmero exibindo uma seqncia 0, 1, 2 e 3.

Figura 21 Contador Assncrono de 2 bits
44
ARQUITETURA DE COMPUTADORES
Ao adicionarmos mais fip-fops cascateando as portas de sada com a
porta de relgio seguinte podemos construir contadores de qualquer quan-
tidade binria. Um circuito contador geralmente apresenta uma entrada
para zerar o contador (reset) de forma que a contagem possa ser reiniciada.
Um problema grave com os contadores assncronos que todos os
fip-fops individuais no mudam o estado ao mesmo tempo. Como cada
fip-fop leva um tempo para mudar de estado, um circuito de contador com
vrios dgitos precisamos esperar um tempo grande para que os dados se
estabilizem ao longo do circuito, mostrando valores errneos at estabilizar.
Quando o ciclo de contagem baixo, isto , os tempos de mudana de cada
contagem forem grandes, e devido a incapacidade do olho humano de iden-
tifcar a contagem rpida, esse fenmeno no causa grandes impactos. Po-
rm se a contagem for rpida, os erros tornam o circuito impossvel de usar.
Para resolver esse problema podemos usar um contador sncrono, isto
, todas as mudanas de estado ocorrem simultaneamente cadenciadas por
um relgio nico.
Contadores Sncronos
Em nossa discusso inicial sobre contadores falamos a necessidade
de enviar o sinal relgio simultaneamente a todos os fip-fops de modo que
os bits de contagem mudassem o estado ao mesmo tempo. Para realizar isso
precisamos aplicar o mesmo pulso de relgio em todos os fip-fops. Entre-
tanto, no queremos que todos os fip-fops mudem de estado a cada pulso
de relgio. Para isso, precisamos adicionar algumas portas de controle para
determinar quando cada fip-fop deve mudar o estado e quando no deve.
Na fgura abaixo mostramos um contador sncrono de 3 dgito cons-
trudo com trs fip-fops tipo JK. Podemos observar que o sinal de relgio
o mesmo para todos os fip-fops, ento todos iro trocar de estado simul-
taneamente, evitando a Condio de Corrida que pode ocorrer no contador
assncrono. O primeiro fip-fop JK tem ambas as entradas em 1, portanto
a sua sada Q0 ir trocar de estado a cada ciclo de relgio. Outro ponto im-
portante a colocao de uma porta E no ltimo fip-fop no qual o motivo
ser explicado a seguir.

Figura 22 Circuito e Forma de onda de um contador sncrono
45
ARQUITETURA DE COMPUTADORES
Observando o diagrama de forma de onda podemos entender o fun-
cionamento. O ponto importante que o fip-fop JK troca o estado de sua
sada quando as entradas J e K esto em 1, por outro lado, quando as en-
tradas J e K esto em o a sua sada Q permanece no mesmo estado. Como
JK do fip-fop FF0 est em 1 a sada Q0 troca em cada transio de clock,
assim, o estado de Q1 somente vai trocar quando Q0 e tambm J e K do FF1
realizar a transio de 1 para 0. O terceiro bit Q2 vai trocar apenas quando
Q0 e Q1 realizarem a transio de 1 para 0, por isso a porta E.
Assim, conseguimos implementar um contador de trs dgitos onde o
sinal de relgio aplicado simultaneamente, tornando o circuito mais con-
fvel e seguro.
Nesta unidade apresentamos os conceitos bsicos de Lgica Digital
necessrios para entendimento das tcnicas de Arquitetura de Computa-
dores. Iniciamos com a apresentao das portas lgicas bsicas, como E,
OU, NOT, que possibilitam a construes de todos os circuitos lgicos, em
seguida apresentamos os circuitos combinacionais mais tradicionais em
uma arquitetura, como multiplexadores, decodifcadores e somadores, e
conclumos com a apresentao dos circuitos seqenciais, iniciando com
os vrios tipos de Flip-fops e apresentando os circuitos de registrador de
deslocamento e contadores.
1. Voc observou que podemos construir fip-fops com diversas portas e
obtendo o mesmo resultado. Pesquise para saber as razes para escolher
um ou outro tipo.
2. Analisando o circuito de um contador sncrono, imagine como voc po-
deria construir um contador de nmeros qua no fosse potncia de dois.
3. Pesquise sobre linguagens de descrio de hardware (HDL), como VHDL
e Verilog. Pense sobre a diferena no trabalho de desenvolver software e
hardware nos dias atuais.
Apostila de Lgica Digital (em portugus)
http://wwwusers.rdc.puc-rio.br/rmano/cl.html
Curso de Lgica Digital (em portugus)
http://pt.wikiversity.org/wiki/Lgica_Digital
46
ARQUITETURA DE COMPUTADORES
Catlogos de circuitos integrados digitais Texas Instruments (em
ingls)
http://focus.ti.com/logic/docs/logichome. tsp?sectionId=
450&familyId=1
THOMAS FLOYD. Sistemas Digitais. 9 Ed. Editora: Bookman, 2007. Li-
vro de referncia clssica com mais de 25 anos desde a primeira edio,
proporcionando ao estudante o desenvolvimento de habilidades prticas.
uma obra completa e seu ponto forte so as inmeras aplicaes reais de
sistemas digitais nas indstrias.
RONALD J.TOCCI, NEAL S. WIDMER, GREGORY L. MOSS. Sistemas Di-
gitais: Princpios e Aplicaes. 10 Ed. Editora: Pearson Prentice-Hall,
2007. Outro livro de referncia clssico j na 10 edio. Os autores tentam
tratar a tecnologia digital com o equilbrio entre o material j existente e o
novo, decorrente das inovaes. O livro oferece amplas condies para que o
aluno desenvolva um slido e moderno conhecimento na rea de eletrnica
digital. Ele inclui exemplos e itens ampliados e atualizados. Como destaque
temos a apresentao de linguagens HDL como AHDL e VHDL, assim como
a metodologia de projeto de circuitos integrados.
FRANK VAHID. Sistemas Digitais. 1 Ed. Editora: Bookmark, 2008. Este
livro trata do projeto de sistemas digitais com uma abordagem mais atual
atravs da utilizao de linguagens de especifcao de hardware (HDL).
O texto, alm de apresentar os fundamentos, utiliza-se deles para projetar
sistemas digitais de complexidade elevada e de utilidade prtica. Enfatiza
o projeto de componentes e o nvel de transferncia entre registradores e
apresenta de forma slida as bases do projeto digital tal como praticado
profssionalmente, preparando o leitor para os temas mais avanados como
circuitos FPGAs (Field Programmable Gate Arrays), de importncia funda-
mental na indstria.
Unidade
Objetvo:
Nesta unidade vamos apresentar detalhadamente todos os componentes que fazem
parte de uma arquitetura de computador. Iniciamos apresentando a Unidade
Central de Processamento, o crebro do computador, responsvel pelo controle
do computador alm das operaes aritmticas. Em seguida apresentamos as
memrias, unidades para armazenamento de informaes. Apresentamos depois
os barramentos de um computador. Finalmente mostramos os dispositivos de
entrada e sada, ou seja, os dispositivos que interagem com o ser humano.
Estruturas de uma arquitetura
de computadores
3
ARQUITETURA DE COMPUTADORES
49
Captulo 1
Unidade Central de Processamento (UCP)
A Unidade Central de Processamento (UCP), ou Central Processing
Unit (CPU), o mdulo principal de uma arquitetura de computador. Ela
responsvel por realizar o controle do sistema de computador, alm de
executar funes de clculo aritmtico. O controle do sistema realizado
atravs da execuo de um programa, isto , uma seqncia de comandos
previamente defnidos necessrios para realizar um processamento.
Desde os primeiros computadores sempre houve uma UCP, implemen-
tada em um gabinete ou placa. Mas atualmente, quando falamos em UCP,
geralmente estamos nos referindo ao circuito integrado que realiza todas
essas funes o microprocessador.
A evoluo tecnolgica dos microprocessadores surpreendentemente
grande, a partir de microprocessadores que trabalhavam com relgio (clock)
de alguns kHz e que podiam processar poucos milhares de instrues por
segundo, atualmente atingiu-se relgios da ordem de 4GHz e com poder de
processamento de vrios bilhes de instrues por segundo. A complexida-
de dos circuitos integrados tambm cresceu: de alguns milhares de transs-
tores para centenas de milhes de transstores em um chip.
A UCP tem como funo principal integrar todo o sistema do com-
putador, isto , realiza o controle de funcionamento de todas as unidades
funcionais e responsvel pelo controle da execuo de todos os programas
do sistema.
Histria do Microprocessador
O primeiro microprocessador comercial foi lanado pela Intel em 1971,
originalmente um circuito integrado especial para atender uma empresa
japonesa que fabricava calculadoras eletrnicas. O processador Intel 4004
era um circuito integrado programvel que trabalhava com registradores
de 4 bits, clock de 740Khz, um conjunto de 46 instrues e possua cerca
de 2300 transistores. Apesar do insucesso do fabricante de calculadoras, o
microprocessador programvel 4004 foi utilizado por muitas outras aplica-
es. Uma caracterstica importante para avaliar a capacidade e desempe-
nho de um processador o tamanho da palavra. O tamanho da palavra vai
determinar o tamanho dos registradores, tamanho do barramento e tama-
nho da unidade aritmtica. Quanto maior o tamanho da palavra, maior a
capacidade de processamento.
A Intel prosseguiu com o desenvolvimento de novos microprocessado-
res: 8008, o 8080 e o 8085 (todos de 8 bits). O 8080 foi um grande sucesso
e tornou-se a base para os primeiros microcomputadores no fnal da dca-
da de 1970 que utilizavam o sistema operacional CP/M. Anos mais tarde
a Zilog lanou o microprocessador Z80, com instrues compatveis com o
8080 (compatvel e com vrias melhorias) que tambm fez grande sucesso.
Esse foi o primeiro momento da histria em que se fez um clone de micro-
50
ARQUITETURA DE COMPUTADORES
processador, dispositivo que permitia executar sem alterao programas e
sistemas operacionais desenvolvidos para outros processadores (hardware).
Nesse instante, o desenvolvimento do hardware e software tornaram-
se independentes, pois at ento o software era totalmente dependente de
um hardware especfco de um fabricante. A Motorola lanou a sua prpria
famlia de microprocessadores, o 68000. Todos esses microprocessadores
de 8 bits foram usados em vrios computadores pessoais (Sinclair, Apple,
TRS-80, Commodore, etc).
A IBM decidiu entrar no mercado de computadores pessoais em 1981
lanando o seu IBM-PC que utilizou um dos primeiros microprocessadores
de 16 bits, o Intel 8088 (derivado do 8086 lanado em 1978) que viria a ini-
ciar uma famlia de computadores que utilizamos at hoje. O interessante
que o processador 8088, apesar de mais recente que o 8086, utilizava um
barramento externo de 8 bits (o 8086 tinha barramento externo de 16 bits),
permitindo a utilizao de componentes (memrias, I/O, etc) compatveis
com as famlias anteriores, tornando o preo do IBM-PC muito prximo dos
computadores de 8 bits mas com capacidade superior. Aliado a marca IBM,
um computador de maior capacidade e preo semelhante, tornou-se um
enorme sucesso.
A Apple utilizava os processadores da Motorola da famlia 68000 (de
32 bits) nos seus computadores Macintosh. Outros fabricantes tambm lan-
aram os seus microprocessadores de 16 bits, a Zilog o Z8000, a Texas
Instruments o TMS9900, a National Semiconductor o 16032, mas nenhum
fabricante teve tanto sucesso como a Intel.
A Intel foi lanando sucessivamente melhoramentos na sua linha
80X86, o 8086, 8088, 80186, 80188, 80286, 80386, 80486, Pentium, Pen-
tium Pro, Pentium MMX, Pentium II, Pentium III, Pentium IV, Pentium M,
Pentium D, Pentium Dual Core e Pentium Quad Core (em ordem cronol-
gica). Algumas melhorias importantes nessa evoluo foi o uso memria
virtual e multitarefa no 80386, o coprocessador matemtico integrado no
80486 e o pipeline de processamento na linha Pentium.
Assim como a Zilog no caso do 8080, a AMD surgiu como fabricante
de microprocessadores clones da famlia x86, mas a partir de um certo
momento partiu para o desenvolvimento de sua prpria linha de micro-
processadores, ainda mantendo compatibilidade com os produtos Intel: K6,
Athlon, Duron, Turion, Sempron, etc.
Arquitetura de uma Unidade Central de
Processamento (UCP)
O funcionamento fundamental da Unidade Central de Processamento
(UCP), no obstante o formato fsico e arquitetura, executar uma sequn-
cia de instrues armazenadas chamada programa. O programa repre-
sentado por uma srie de nmeros que so mantidos em algum tipo de me-
mria no computador. H quatro etapas que quase todos os processadores
centrais executam em sua operao: a busca de instrues, a decodifcao,
a execuo e escrita de dados. A fgura a seguir mostra o diagrama em blo-
cos de uma Unidade Central de Processamento (UCP).
51
ARQUITETURA DE COMPUTADORES

Figura 23 Diagrama em blocos de uma Unidade Central de Processamento
A primeira etapa, a busca de instruo, envolve recuperar uma ins-
truo (que representada por um nmero ou por uma seqncia dos n-
meros) na memria de programa. A posio da instruo em execuo na
memria de programa determinada por um Contador de Programa (PC
Program Counter), que armazene um nmero que identifca o endereo de
memria atual da instruo do programa. Ou seja, o Contador de Programa
guarda o local do programa para a Unidade Central de Processamento. De-
pois que uma instruo buscada, o PC ser incrementado do comprimento
de instruo para que aponte para a prxima instruo que ser executa-
da no ciclo seguinte. Geralmente a memria de programa um dispositivo
mais lento que o processador, fazendo com que a Unidade Central de Pro-
cessamento pare para esperar a instruo que ser executada. Para isso, a
maioria dos processadores modernos utiliza a tcnica de Cache que arma-
zena o programa em memrias mais rpidas que possibilitam um aumento
na velocidade de execuo do programa.
A instruo que a Unidade Central de Processamento busca na me-
mria usada para determinar o que ir fazer. Na etapa de decodifcao, a
instruo quebrada em partes no qual cada uma tem um signifcado para
as outras partes da Unidade Central de Processamento. A maneira como
um valor numrico de instruo interpretado defnida pelo Conjunto de
Instrues, conhecida tambm pela sigla ISA (Instruction Set Architecture).
Frequentemente, a primeira parte da instruo composta por um grupo de
nmeros, chamado opcode, que vai indicar a operao que ir executar. As
partes restantes do nmero da instruo geralmente indicam a informao
exigida para essa instruo, por exemplo, os operandos de uma operao
aritmtica. Tais operandos geralmente so dados de processamento, como
um valor constante, ou um lugar para encontrar um valor: um registrador
ou um endereo de memria. Nos projetos mais antigos de Unidades Central
de Processamento, os blocos responsveis pela decodifcao da instruo
eram dispositivos de hardware no alterveis. Entretanto, em alguns pro-
Program Counter um
registra utilizado em qual-
quer processador que
guarda a posio de me-
mria (endereo) onde se
encontra a instruo do
programa que ser execu-
tada pelo processador.
52
ARQUITETURA DE COMPUTADORES
cessadores mais modernos e complexos, o Conjunto de Instruo repre-
sentado por um microprograma, desdobrando uma instruo mais comple-
xa em vrias instrues mais simples, por exemplo, uma multiplicao pode
ser simplifcada por uma seqncia de somas. Um microprograma pode
tambm ser reprogramvel de modo que possa ser modifcado para mudar
a maneira que o Processador decodifca as instrues mesmo depois que foi
fabricado.
Depois das etapas de busca de instruo e decodifcao, a prxima
etapa a execuo da instruo. Durante essa etapa, as vrias partes do
processador central so conectadas e podem executar a operao desejada.
Se, por exemplo, uma operao da adio foi solicitada, uma Unidade de
Lgica e Aritmtica (ULA) ser conectada a um registrador de entradas e de
sadas. Nas entradas so aplicados os nmeros que sero adicionados, e a
sada conter a soma fnal. A ULA contm os circuitos para executar opera-
es aritmticas e lgicas das entradas (como a adio e operaes lgicas).
Se a operao da adio produz um resultado demasiado grande para que
o processador consiga guardar, marcada uma indicao de excesso arit-
mtico em um registrador. Essa indicao, geralmente um sim ou no,
conhecida como fag.
O passo fnal, a escrita de dados, simplesmente escreve os resultados
da etapa da execuo a algum local da memria. Os resultados podem ser
escritos em algum registrador interno do processador para permitir o aces-
so mais rpido pelas instrues subseqentes. Em outros casos os resul-
tados podem ser escritos em uma memria externa mais lenta, mas mais
barata e maior. Alguns tipos de instrues manipulam o Contador de Pro-
grama, fazendo que se mude a seqncia de execuo do programa. Essas
instrues so chamadas saltos e facilitam a criao de comportamen-
tos como laos, execuo condicional de programa (com o uso de um salto
condicional), e execuo de funes pr-defnidas nos programas. Muitas
instrues podero mudar o estado em funo de dgitos em um registro de
indicao, os fags. Esses indicadores podem ser usados para infuenciar
como um programa se comporta. Por exemplo, uma instruo do tipo com-
parao considera dois valores e ajusta um nmero (fag) no registro de
acordo com qual maior. Este fag pode ento ser usado por uma instruo
de salto condicional para alterar a seqncia de um determinado fuxo de
programa.
Aps a escrita dos dados resultantes, haver a repetio de todo o pro-
cesso, com o ciclo de busca da instruo seguinte devido ao incremento do
valor do Contador de Programa (PC). Se a instruo anterior era um salto, o
Contador de Programa ser modifcado para conter o endereo da nova ins-
truo estabelecido no salto (condicional ou no), e a execuo de programa
continua normalmente. Em alguns processadores mais complexos do que
este, mltiplas instrues podem ser buscadas, decodifcadas e executadas
simultaneamente. Esta metodologia geralmente conhecida como pipeli-
ne, que muito comum nos processadores atuais usados em computadores
e outros dispositivos.
A maioria de processadores, e certamente a maioria de dispositivos de
lgica sequencial, so sncronos por natureza. Isto , so projetados para
operar sobre a cadncia de um sinal de sincronizao. Este sinal, conheci-
do como um sinal de relgio (clock), tem geralmente a forma de uma onda
quadrada peridica. Calculando o tempo mximo que os sinais eltricos
podem ser transmitidos pelas trilhas do circuito de um microprocessador,
os projetistas podem selecionar o perodo de relgio mais apropriado.
Microprograma o cdi-
go bsico de um processa-
dor, defnindo instrues
bsicas para operaes de
controle de uma UCP.
Flag um registrador
simples que indica um es-
tado de um processador,
geralmente constitudo
por um bit e pode assumir
os valores 0 ou 1.
53
ARQUITETURA DE COMPUTADORES
Este perodo deve ser mais longo do que o tempo que um sinal se
mova, ou se propaga, nos piores casos hipotticos.
Ao ajustar o perodo do relgio para um valor bem acima do pior das
hipteses de atraso de propagao, possvel projetar um processador e a
maneira que os dados se movam com segurana. Essa ttica tem a vanta-
gem de simplifcar o circuito do processador, entretanto, temos a desvan-
tagem de que o processador agora deve esperar pelo seu componente mais
lentos, mesmo que todos os demais sejam mais rpidos. Esta limitao pode
ser compensada atravs de tcnicas de paralelismo que possibilitam au-
mentar o desempenho.
Entretanto, as melhorias de arquitetura sozinhas no resolvem todos
os problemas dos processadores com sincronismo global. Por exemplo, um
sinal de relgio est sujeito aos atrasos de qualquer outro sinal eltrico de
controle. Taxas de relgio mais elevadas em processadores cada vez mais
complexos tornam difcil manter todos os sinais de relgio em todas as
unidades funcionais em fase (sincronizado). Isso obrigou em muitos pro-
cessadores modernos a construir um circuito especfco para garantir que
todos os sinais de relgio sejam idnticos a fm evitar que o atraso de um
sinal faa com que o processador funcione mal. Um outro problema srio
que ocorre com o aumenta da taxa de relgio o aumento signifcativo da
quantidade de calor dissipada pelo processador central. O aumento da taxa
de relgio aumenta a mudana de estado das portas lgicas CMOS que con-
somem energia apenas quando h mudana de estado, aumentando a dissi-
pao de calor. Consequentemente, o aumento da taxa de relgio aumenta o
calor dissipado exigindo que o processador central necessite de dispositivos
de refrigerao mais efcazes.
Unidade Lgica e Aritmtca
A Unidade Lgica e Aritmtica (ULA), ou Arithmetic Logic Unit (ALU),
a unidade da Unidade Central de Processamento (UCP), ou tambm CPU,
responsvel pela execuo das operaes aritmticas e lgicas. John von
Neumann j props o conceito de ULA em 1945, quando construiu o com-
putador EDVAC.
A ULA executa as principais operaes lgicas e aritmticas que um
computador precisa realizar. Ela faz as operaes de soma, subtrao, mul-
tiplicao e determina se um nmero zero, positivo ou negativo. Alm das
funes aritmticas, uma ULA deve ser capaz de determinar se uma quan-
tidade igual, menor ou maior que outra. A ULA tambm realiza as funes
lgicas bsicas como E, OU, OU-Exclusivo, assim como a negao, tanto
com nmeros como caracteres.
A fgura abaixo mostra o diagrama lgico de uma ULA simples de 2
bits. Os dados de entrada, provavelmente de um registrador, so colocados
nas entradas A(0), A(1) e B(0), B(1). As entradas OP(0), OP(1) e OP(2) deter-
minam o tipo de operao a ser realizada. As sadas, onde o resultado fnal
pode ser lido e escrito em um registrador, so OUT(0) e OUT(1). A entrada
CARRY IN serve para considerar o vai um de um circuito ULA cascateado
e a sada CARRY OUT serve para indicar o vai um para o circuito seguin-
te. Ligando-se uma srie de ULAs atravs das entradas e sadas CARRY IN
e CARRY OUT podemos construir ULAs com tamanho de palavras maiores.
Carry um indicador de
estouro, que indica quan-
do o valor de um regis-
trador supera o seu valor
mximo admitido. Ge-
ralmente utilizado nas
operaes de soma para
indicar o vai-um.
54
ARQUITETURA DE COMPUTADORES

Figura 24 Unidade Lgica e Aritmtica de 2 bits (AND, OR, XOR e SOMA) [Eagle GFDL]
Para realizar corretamente as operaes aritmticas, uma ULA deve
operar nmeros com a mesma base e mesmo formato. Os primeiros compu-
tadores usavam diversos sistemas numricos, bases numricas, represen-
taes de sinais, complemento de um, complemento de dois, sinal-magni-
tude. Para cada um desses conjuntos de parmetros necessrio realizar
um projeto de ULA diferente, alm da necessidade de realizar a converso
de todos os dados quando se trocava de computador. Nos computadores
modernos (ltimos 30 anos) quase sempre se utiliza nmero binrio em
representao de complemento de dois, representao mais simples para a
ULA realizar adies e subtraes, e caracteres ASCII.
Uma ULA recebe geralmente dados dos registradores, que so proces-
sados e os resultados da operao so armazenados nos registradores de
sada. Teoricamente possvel ler dados diretamente da memria e realizar
a operao na ULA porm o desempenho impactado negativamente devido
ao maior tempo de leitura de memria comparado com o tempo de clculo.
A maioria das ULAs podem realizar as seguintes operaes:
Operaes aritmticas (adio, subtrao)
Operaes lgicas em bit: AND, OR, XOR e NOT
Operaes de deslocamento de bits (deslocamentos servem para re-
alizar multiplicaes e divises por 2).
ASCII o acrnimo para
American Standard Code
for Information Inter-
change, uma codifcao
de caracteres de oito bits
que representa caracte-
res alfanumericos para
permitir a representao
de textos em um compu-
tador.
55
ARQUITETURA DE COMPUTADORES
Apesar de ser possvel implementar circuitos para realizar clculos
mais complexos como logaritmos, exponenciais ou razes quadradas, ge-
ralmente essas funes so realizadas atravs de algoritmos de software. O
aumento da complexidade do circuito para funes pouco usadas pode no
ser vantajoso para computadores de uso geral. Porm mquinas de proces-
samento numrico podem implementar essas funes em circuito.
Outro fator importante relacionado representao de nmero em um
computador o tamanho e a preciso em um processador pode tratar. No
caso de um processador binrio, um bit se refere a uma posio signifcante
no nmero representado no processador. O nmero de bits que um proces-
sador usa para representar os nmeros chamado de tamanho palavra,
ou largura da palavra, ou de largura do barramento de dados. Ao se tra-
tar especifcamente de nmeros inteiros, chamamos preciso de nmero
inteiro. Este nmero caracteriza as diversas arquiteturas de processador,
e frequentemente um parmetro importante para defnir a capacidade do
processador. Por exemplo, um processador de 8 bits trata uma faixa de n-
meros que podem ser representados por oito elementos binrios (cada dgito
que tem dois valores possveis), isto , 28 ou 256 nmeros discretos. Assim,
o tamanho do nmero inteiro vai defnir o limite do hardware que vai defnir
a capacidade de tratamento de nmeros inteiros que o software pode tratar.
A faixa de inteiros pode tambm defnir o nmero de posies na mem-
ria que o processador central pode enderear (localizar). Por exemplo, se um
processador usa 32 bits para representar um endereo de memria, e cada
endereo de memria representa um byte (8 bits), a quantidade mxima de
memria que o processador pode enderear 232 bytes ou 4 GB. Esta uma
ideia muito simples sobre o espao de endereamento de um processador, mas
muitos mtodos de endereamento mais complexos, como a paginao, possi-
bilitam aumentar o tamanho da memria utilizando a mesma faixa de inteiro.
Convm lembrar que o tamanho da palavra defnido principalmente
pela capacidade de endereamento do processador. Um processador de alto
desempenho usa 16, 32, 64 e, at mesmo, 128 bits de largura. Enquanto
isso, microcontroladores com necessidades menores podem usar processa-
dores de 4 ou 8 bits.
Unidade de Ponto Flutuante
Da mesma maneira que uma ALU realizar operaes entre nmeros
inteiros, uma Unidade de Ponto Flutuante (UPF) tambm realiza operaes
aritmticas entre dois nmeros, mas eles realizam operaes com nmero
em representao de ponto futuante, muito mais complexa que a represen-
tao de complemento para dois. Para realizar esses clculos, uma UPF tem
vrios circuitos complexos, incluindo algumas ULAs internas. Usualmente
engenheiros chamam uma ULA o circuito que realiza operaes aritmticas
com nmeros inteiros em complemento para dois ou BCD.
Unidade de Controle
A Unidade de Controle (UC) responsvel por gerar todos os sinais
que controlam as operaes no interior da UCP. Alm disso, tambm tem o
objetivo de controlar as interfaces de entrada e sada do processador com
o mundo externo. A UC realiza a decodifcao de instrues e executa as
aes dessas instrues.
BCD acrnimo de Bi-
nary Coded Decimal que
representa um tipo de co-
difcao numrica para
representar algarismos
constituda por 4 bits (re-
presentando nmeros de-
cimais de 0 15).
56
ARQUITETURA DE COMPUTADORES
A unidade de controle executa trs aes bsicas essenciais e defni-
das pelo prprio fabricante do processador. So elas: busca de instruo
(fetch), decodifcao e execuo de instruo.
Assim sendo, todo processador, ao iniciar sua operao, realiza uma
operao cclica e seqencial dessas trs aes. Dependendo do tipo de pro-
cessador, a unidade de controle pode se ser fxa ou programvel. A unidade
fxa aquela unidade que j vem com todo o conjunto de instrues defni-
do e programado pelo fabricante na fabricao do processador. Na unidade
programvel, o micro-programa, cdigo que decodifca e executa as instru-
es programado externamente no incio de funcionamento do processa-
dor, permitindo a reconfgurao das instrues quando necessrio.
Os microprocessadores da famlia Intel como 8080, 8088, 80286,
80386, 80486 e Pentium, possuem unidade de controle fxa. Um exemplo de
unidade de controle programvel pode ser visto nos processadores Bit Slices,
arquitetura de hardware modular que permite ao projetista associar unida-
des de processamento e programar o conjunto de instrues. Outro exemplo
a utilizao de Field-Programmable Gate Array (FPGA). O FPGA uma
matriz lgica programvel que permite a implementao de soft-processors,
isto , processadores defnidos em software para um dispositivo FPGA, si-
mulando o funcionamento de vrios processadores de uso especfco.
Inicialmente, a Unidade de Controle fornece o endereo de memria de
onde deve retirar a instruo, geralmente composta por um byte ou mais.
Essa instruo pode conter um cdigo de operao (opcode), ou um ope-
rando ou dado. Alm de manter o controle sobre a posio de memria que
contm a instruo atual que o computador est executando, a Unidade de
Controle, ao decodifcar o cdigo de operao, informa Unidade Lgica e
Aritmtica (ULA) qual operao a executar ou qual operao de escrita ou
leitura de registrador ou memria deve executar.
Alm das operaes aritmticas, a Unidade de Controle tambm tem
a capacidade de realizar operaes lgicas, por exemplo: E, OU, XOR, com-
parao e deslocamento de bits para a direita e para a esquerda. Essas ope-
raes so realizadas pela Unidade Lgica e Aritmtica (ULA), porm tem
relao muito prxima da Unidade de Controle pois infuencia o comporta-
mento da UC. A grande maioria de dos fabricantes de microprocessadores
implementam essas funes, mas podem atribui um mnemnico diferente a
cada uma delas, e o denomina conjunto de instrues de um determinado
processador.
Outra caracterstica muito importante em uma Unidade de Controle
que a arquitetura de um processador pode ser de dois tipos: orientada por
registrador ou orientada para memria. Se for orientada para registradores,
por exemplo, a arquitetura Intel, a ULA, aps executar qualquer operao
lgica ou aritmtica, sempre vai armazenar o resultado no registrador acu-
mulador. Se for orientada para memria, como o caso dos microprocessa-
dores da Motorola, nem sempre o resultado armazenado no acumulador,
podendo ser armazenado diretamente em qualquer posio de memria.
Terminada a execuo da instruo, a Unidade de Controle incrementa o
contador de programa (PC) e inicia o processamento da prxima instruo.
Essa instruo geralmente est localizada no prximo endereo de mem-
ria ou, em caso menos comum, quando existe uma instruo explcita de
desvio (salto), o computador vai executar a prxima instruo indicada pela
instruo de desvio.
Opcode um cdigo de
operao, um cdigo re-
presentado em uma ins-
truo de programa que
realiza uma srie de fun-
es de comando.
57
ARQUITETURA DE COMPUTADORES
Ciclo de Instruo
O processo mais importante de uma Unidade de Controle o Ciclo de
Instruo, que determina como uma instruo vai ser executada. Um ciclo
de instruo, tambm conhecido como ciclo buscar-descodifcar-executar,
o procedimento no qual um computador processa uma instruo de lin-
guagem-mquina ou um programa armazenado na sua memria
O termo buscar-e-executa de uso geral. A instruo deve ser bus-
cada da memria, e ento ser executada pelo processador central. Essa
a atividade fundamental de um computador, quando seu processador l e
executa uma srie de instrues escritas em sua linguagem-mquina.
O processador de cada computador pode ter ciclos de instruo dife-
rentes de acordo com a sua arquitetura e conjunto de instrues. As etapas
de um Ciclo de Instruo so descritas a seguir:
1. Buscar a instruo na memria principal
O processador coloca o valor armazenado no contador de programa (PC)
no barramento de endereo. O processador recebe ento a instruo da me-
mria principal atravs do barramento de dados para o registrador de dados
(MDR Memory Data Register). O valor do MDR colocado ento no registro de
instruo atual (CIR Current Instruction Register), um circuito que mantm a
instruo temporariamente de modo que possa ser decodifcada e executada.
2. Decodifcar a instruo
O decodifcador de instruo interpreta e executa a instruo. O Re-
gistro de Instruo (IR Instruction Register) mantm a instruo atual,
quando o contador de programa (PC) recalcula o endereo na memria da
prxima instruo a ser executado.
3. Buscar dados da memria principal
Caso a instruo lida se referencie a um dado armazenado na mem-
ria principal, neste momento, esse valor lido. Chamamos essa instruo
de Instruo de Endereamento Indireto. Essa instruo l os dados da me-
mria principal e os coloca nos registradores do processador para permitir
a realizao das operaes.
4. Executar a instruo
A partir do registrador de instruo, os valores que compem a ins-
truo so decodifcados pela Unidade de Controle. Assim, a informao
decodifcada como uma seqncia de sinais de controle so enviadas s
unidades de funo do processador para executar as aes exigidas pela
instruo. Caso os parmetros sejam operadores, os valores so encami-
nhados Unidade de Lgica Aritmtica (ULA) para oper-los e escrever o
resultado de volta a um registro do processador. Um sinal de controle en-
viado para trs de forma a confrmar a execuo da instruo.
5. Armazenar o resultado
O resultado gerado pela operao executada armazenado na mem-
ria principal, ou emitido a um dispositivo de sada. Baseado no feedback do
sinal de controle da ULA, o PC incrementado para enderear a instruo
seguinte ou atualizado um endereo diferente onde a instruo seguinte
seja buscada. O ciclo repetido ento.
Podemos separar o tempo de execuo de uma instruo em duas
fases: ciclo de busca. Estas etapas so as mesmas para cada instruo. O
ciclo de busca processa a instruo da palavra de instruo que contem um
opcode e um operando.
58
ARQUITETURA DE COMPUTADORES
6. Executar o ciclo
As etapas 3 e 4 do ciclo de instruo so parte do ciclo da execuo.
Essas etapas mudaro a cada instruo.
A primeira etapa do ciclo da execuo a do Processo-Memria. Os
dados so transferidos entre o processador e o mdulo de I/O (memria).
Esto em seguida so executadas as operaes matemticas com uso de
dados e tambm operaes lgicas para referncia aos dados. As alteraes
principais so a etapa seguinte, na verdade, uma alterao na seqncia
das operaes, por exemplo uma operao do salto.
Registradores
O Registrador de uma Unidade Central de Processamento um tipo
de memria rpida e com pequena capacidade construda dentro da UCP e
utilizada para o armazenamento temporrio de dados no processamento.
Pelo fato de estarem prximos da Unidade Lgica e Aritmtica e de ser cons-
truda com circuitos de memria muito rpidos possibilita o maior desem-
penho no processamento. Os registradores fcam no topo da hierarquia de
memria, por isso a forma mais rpida e cara de se armazenar um dado.
Os registradores so utilizados na execuo de programas de compu-
tadores para disponibilizar um local para armazenar dados temporrio. Na
maioria dos computadores modernos, o processador copia as informaes (da-
dos), guardados na memria externa, para um registrador. As instrues que
realizam algum clculo numrico ou de controle utilizam esses dados, agora
lidos em maior velocidade, so executadas pelo processador e, fnalmente, os
resultados da operao so movidos de volta para a memria principal.
Podemos classifcar os registradores em duas categorias:
Registradores de dados: utilizados para armazenar valores num-
ricos ou caracteres, tais como nmeros inteiros, pontos futuante
ou caracteres ASCII. Em algumas UCPs existe um registrador de
dados especial, chamado acumulador, que recebe o dado de opera-
es aritmticas e utilizado implicitamente em muitas operaes.
O acumulador usado sempre como um operando de qualquer ope-
rao e onde as funes de comparao podem ser realizadas (ele
implementa funes de comparao). As UCPs mais atuais dispe
de vrios registradores com as funes de acumulador, portanto
no necessita de mover dados para um registrador especfco.
Registradores de Endereo: so registradores que recebem o en-
dereo de um objeto. O principal registrador de endereo o PC ou
o indicador de endereo da instruo em execuo. Outro tipo de
informao so os "ponteiros" (variveis contendo o endereo) que
apontam para um determinado dado na memria.
Processador CISC/RISC
Os processadores se classifcam em duas grandes famlias conforme
a caracterstica do seu conjunto de instrues: CISC e RISC. Um computa-
dor com conjunto de instrues complexas (CISC Complex Instruction Set
Computer) uma arquitetura em que cada instruo pode executar diversas
operaes de baixo nvel, tais como uma leitura da memria, uma operao
aritmtica e uma escrita na memria, usando uma nica instruo. O ter-
mo foi inventado em contraste com a sigla RISC computador com conjunto
de instrues reduzidas (RISC - Reduced Instruction Set Computer).
59
ARQUITETURA DE COMPUTADORES
O exemplo mais comum de arquitetura de processador CISC a fam-
lia Intel x86. No entanto, vrios outros computadores tambm utilizam essa
arquitetura como: System/360, PDP-11, VAX, 68000.
Durante os anos 70, avaliou-se que o crescente aumento da comple-
xidade das linguagens de programao de computadores poderia ser me-
lhor executada (melhorar o desempenho) se fossem usadas instrues mais
complexas (mais funes na instruo) em menos ciclos. Algumas novas
instrues foram adicionadas para sofsticar a linguagem "assembly" para
serem melhor aproveitadas pelas linguagens de alto nvel. Os compiladores
foram atualizados para aproveitar-se destas instrues mais complexas. Os
benefcios de instrues semanticamente mais ricas com codifcao mais
compacta podem ser considerados como um grande aumento de desempe-
nho para a compilao e execuo de programas gerados pelos compilado-
res. Como as memrias so limitadas no tamanho e na velocidade, o cdi-
go compacto traria muitos benefcios. Naturalmente, a razo fundamental
dessa melhoria que as memrias (isto , RAM dinmicas) so signifcati-
vamente mais lentas quando comparadas ao processador central.
Apesar da diferena entre RISC e CISC, elas tornaram-se menos sig-
nifcativas com a evoluo das arquiteturas CISC. O processador Intel 486
implementou o pipeline de instrues, sendo seguido pela AMD, Cyrix, e
IBM. Esses processadores quebraram cada instruo em um subconjunto
de instrues razoavelmente simples que so executadas em seqncia (pi-
peline), caracterstica muito semelhante a um conjunto de instrues tpico
de um processador RISC. A gerao Pentium era uma verso superescalar
desse princpios, mais semelhante ao RISC. Os processadores x86 moder-
nos decodifcam e quebram instrues em seqncias dinmicas de micro-
operaes internas, que no somente os ajuda a executar um subconjunto
maior de instrues em uma forma de pipeline, mas tambm facilitam uma
otimizao mais avanada do paralelismo de micro-instruo, aumentando
o seu desempenho.
O acrnimo RISC (Reduced Instruction Set Computer) indica um pro-
cessador com conjunto de instrues reduzido, uma estratgia de projeto de
conjunto de instrues de processador que enfatiza a simplifcao das ins-
trues, de forma que a simplifcao pode aumentar o desempenho, j que
as instrues executam muito mais rapidamente. O motivo dessa estratgia
que a maioria das funes de um microprocessador so simples, assim
simplifcando a arquitetura torna mais efciente esse processamento. Para
as funes complexas um processador RISC muito inefciente, comparado
com um processador CISC, mas como a necessidade dessas funes me-
nor, o desempenho global acaba fcando melhor. As principais famlias de
processadores RISC so: Alfa, MIPS, PA-RISC, PowerPC e SPARC.
Algumas observaes que justifcaram os primeiros projetos de pro-
cessadores RISC em 1975 era que a compilao de programas em uma
quantidade de memria limitada, nessa poca na ordem de alguns Kbytes,
no permitia o aproveitamento integral do conjunto de instrues comple-
xas, maior justifcativa das arquiteturas CISC. Alm disso, o uso de esque-
ma de endereamento complexo torna necessria a utilizao de muitos
ciclos de leitura de memria para executar um comando. A proposta RISC
que funes seriam melhor executadas atravs de seqncias de instrues
mais simples, executadas a uma maior velocidade devido a possibilidade de
se utilizar relgios (clocks) maiores. Outro ponto favorvel a utilizao de
instrues com comprimento fxo e restringindo as operaes aritmticas
aos registros internos do processador (no faz operaes aritmticas em me-
60
ARQUITETURA DE COMPUTADORES
mria), facilitou a implementao de pipelines, reduzindo o tempo de leitura
e decodifcao de instrues.
um engano achar que em um processador com conjunto de instru-
es reduzidas as instrues so simplesmente eliminadas, tendo por re-
sultado um conjunto menor das instrues. Na verdade ao longo dos anos,
o conjunto de instrues dos processadores RISC tem crescido no tamanho,
e hoje muitos deles tm um conjunto de instrues maior do que muitos
processadores CISC. Alguns processadores do RISC tais como o Transputer
da INMOS tm o conjunto de instruo to grande quanto um IBM Siste-
ma/370, tipicamente um processador CISC. Pelo outro lado, o DEC PDP-8,
mquina claramente equipada com processador CISC, porque muitas de
suas instrues envolvem acessos de memria mltiplos, tem somente 8
instrues bsicas, mais algumas instrues estendidas.
Outras caractersticas encontradas tipicamente nas arquiteturas
RISC so:
Formato de instruo uniforme, usando uma nica palavra com
o opcode nas mesmas posies de bit em cada instruo, exigindo
menos decodifcao;
Registros de uso geral idnticos, permitindo que algum registro seja
usado em algum contexto, simplifcando o projeto do compilador
(embora normalmente h uns registros de vrgula futuante);
Modalidades de endereamento simples. O endereamento comple-
xo executado atravs das seqncias da aritmtica e/ou operaes
de carga-armazena;
No entanto, devemos ter em mente que as excees abundam, natu-
ralmente, tanto dentro do mundo CISC e do RISC.
Concluindo, podemos dizer que apesar das caractersticas marcantes
que diferenciam um processador CISC de um RISC, recentemente essas dife-
reno tem-se reduzido. Podemos dizer que ambas as tcnicas so utilizadas
nos processadores modernos tornando-se difcil classifcar um processador.
Melhorando o desempenho de processadores
Algumas tcnicas podem ser utilizadas para melhorar o desempenho
dos processadores:
Processamento em pipeline.
Cache de memria dentro do chip do processador.
Previso de desvio (branch prediction).
Execuo especulativa (speculative execution).
1. Pesquise uma arquitetura e um conjunto de instruo de um processa-
dor simples (microcontrolador).
2. Uma unidade de ponto futuante essencial? Voc pode simular suas
funes atravs de software?
3. Procure a especifcao de microprocessadores modernos e veja quais
funcionalidade para melhoria do desempenho eles implementam.
ARQUITETURA DE COMPUTADORES
61
Captulo 2
Memria
Durante o processamento em um computador, necessrio guardar
os dados em um dispositivo seguro. Alm disso, o processador muito pe-
queno para guardar um programa grande, sendo necessrio um local exter-
no para guard-lo. O dispositivo que pode fazer o armazenamento de dados
e programa no computador chamado memria. Memria um componen-
te de computador, dispositivos ou mdia da gravao que retm os dados
digitais usados pelo computando durante um intervalo do tempo. um dos
componentes fundamentais de qualquer computador moderno, que junto
com uma Unidade Central de Processamento constitui o esqueleto bsico de
um computador desde a sua inveno.
Quando falamos em memria geralmente se refere a um dispositivo
semicondutor conhecido como Memria de Acesso Aleatrio (RAM Ran-
dom Access Memory), dispositivo co alta capacidade, rpido, mas provisrio.
No entanto tambm podemos chamar de memria, dispositivos de armaze-
namento de alta capacidade, geralmente chamada de memria de massa
- discos ticos, discos rgidos magnticos como movimentaes do disco
rgido, e outros. Estes dispositivos so mais lentos do que a RAM, mas
podem armazenar os dados de forma mais permanente. Historicamente, a
memria RAM e memria de massa respectivamente memria principal e
memria secundria ou memria interna e memria do externa.
Caracterstcas de memrias
Localizao
Quanto a localizao as memria podem estar dentro da UCP, interna
ou externa.
Capacidade
A capacidade de uma memria defnida pelo tamanho da palavra
(largura) e quantidade de palavras (comprimento).
Volatlidade
Memria temporria
Uma memria permanente exige energia constante para manter as
informaes armazenadas. As tecnologias de memria temporrias atual-
mente so as mais rpidas (apesar de no ser uma rgua universal). Usado
principalmente no armazenamento primrio. Como exemplo dessa tecnolo-
gia temos: registradores, cach, memria RAM.
Memria RAM uma
memria semiconduto-
ra voltil (perde os dados
quando desligada) de alta
capacidade e alta veloci-
dade.
62
ARQUITETURA DE COMPUTADORES
Memria permanente
Reter a informao armazenada mesmo se no fornecida energia
eltrica constantemente. apropriada para o armazenamento da informa-
o por um longo prazo. Usado para a maioria do armazenamento secun-
drio, tercirio, etc. Como exemplos dessa tecnologia tm: disco rgido, me-
mria fash, disco tico, etc.
Mtodos de acesso
Sequencial L do incio at o ponto de acesso. Ex: fta.
Direta Acessa o ponto direto, depende da posio anterior. Ex: disco.
Randmico Acesso indiividual, no depende da posio anterior.
Ex: memria RAM.
Associativa Acesso baseado na comparao do contedo. Ex: me-
mria cache.
Hierarquia
Registradores Localizado dentro da CPU.
Memria Interna ou Principal Memria RAM e cache.
Memria Externa Armazenamento de massa.
Desempenho
Alguns parmetros para medida de desempenho:
Tempo de acesso Tempo entre a aplicao do endereo no barra-
mento de endereos e a disponibilidade do dado no barramento de
dados.
Taxa de Transferncia Taxa na qual os dados so enviados.
Ciclo de memria Tempo requerido para que a memria possa exe-
cutar um novo acesso e ler o prximo dado.
O tempo de acesso o tempo que se leva para alcanar uma determi-
nada posio na memria. A unidade dessa medida tipicamente nanosse-
gundo para a memria primria, milissegundo para a memria secundria,
e segundos para o armazenamento tercirio. Tambm comum especifcar
o tempo de leitura do tempo de escrita (esse geralmente maior) e no caso da
armazenamento de acesso seqencial, o tempo mnimo, tempo mximo e
tempo mdio.
O tempo necessrio para realizar uma escrita ou leitura em uma me-
mria de acesso no-aleatrio defnido pela equao ,Tn = Ta + (N/R) onde,
Tn o tempo mdio para ler/escrever N bytes, Ta o tempo de acesso, N a
quantidade de bytes e R a taxa de transferncia.
A taxa de transferncia a taxa em que a informao pode ser lida
ou escrita na memria. No armazenamento de dados do computador, a taxa
de transferncia expressada geralmente nos termos de megabytes por se-
gundo ou MB/s, embora tambm se use a taxa em bits por segundo. Como
no tempo de acesso, as taxas de tranferncia de leitura e escrita podem ser
diferentes. Tambm usual de utilizar para acesso seqencial, a taxa m-
nima, taxa mxima e taxa mdia.
63
ARQUITETURA DE COMPUTADORES
O ciclo de memria estabelece o tempo em que uma memria precisa
esperar para realizar uma nova leitura e escrita. A unidade segue a do tem-
po de acesso, nanossegundo para a memria primria, milissegundo para a
memria secundria, e segundos para o armazenamento tercirio.
Tipos de memria
Semicondutor Ex: RAM, ROM, Flash
Magntica Ex: Disco rgido, fta
tica Ex: CD
Outras Ex: Bubble, holograma
Hierarquia de Memria
A memria um dos componentes principais de um computador pois
responsvel pelo armazenamento de informaes tanto de curto como longo
prazo. As memrias so classifcadas em uma hierarquia conforme a sua
proximidade com o processador, capacidade e velocidade. A Figura abaixo
mostra um diagrama da hierarquia de memrias em um computador.

Figura 25 Diagrama da Hioerarquia de Memria
As memrias so um dos mais importantes componentes de um com-
putador. Historicamente, os primeiros computadores j usavam memrias
tipo linha de atraso, tubos de Williams ou cilindros magnticos. Em 1954,
esses mtodos de baixa confabilidade foram substitudos pela memria de
ncleo magntico de ferrite, confvel, mas de dimenso grande. A grande
revoluo ocorreu com a inveno do transistor, que permitiu a miniaturi-
zao da memria eletrnica, cada vez menor com uso do circuito integrado.
Isto conduziu a criao da memria de acesso aleatrio moderna (RAM
Random Access Memory), uma memria extremamente densa, barata, mas
que voltil, isto perdem a informao quando desliga a energia.
64
ARQUITETURA DE COMPUTADORES
A memria primria (ou memria central ou memria interna) a
nica acessvel diretamente pelo processador. O processador central conti-
nuamente l as instrues armazenadas l e executa-as.
Os registradores do processador esto localizados dentro do pro-
cessador. Cada registro armazena tipicamente uma palavra de dados (por
exemplo, 32 ou 64 bits conforme a largura do processador). As instrues
do processador instruem a unidade lgica e aritmtica para executar cl-
culos ou outras operaes utilizando os dados armazenados nos registra-
dores. Os registradores so os dispositivos que usam a tecnologia rpida de
todos os tipos de memria em um computador alm de ser a mais caro, por
isso seu tamanho pequeno.
O cache de memria de um computador um estgio intermedirio
entre registradores muito rpidos e a memria principal (RAM) mais lenta.
Ele foi criado unicamente para aumentar o desempenho do computador. A
informao na memria principal mais ativamente usada pelo processador
duplicada na memria cache, que mais rpida, mas com pouca capaci-
dade. Com os dados na memria cache mais rpida o processador conse-
gue process-las mais rapidamente comparado com a situao de estarem
armazenadas na memria RAM. Por outro lado muito mais lenta e muito
maior do que os registradores do processador. Tambm comum utilizar
uma hierarquia de vrias camadas de memria cach, assim teremos me-
mria cache secundria, tercirias, etc. Conforme baixando na hoierarquia,
as memrias tornam-se mais lentas e com capacidades maiores.
A memria principal, tambm chamada memria RAM (RAM Random
Access Memory), conectada diretamente ou indiretamente ao processador
atravs de um barramento da memria. constituda na verdade, por dois
barramentos: um barramento de endereo e um barramento de dados. O
processador envia inicialmente um nmero atravs do barramento de en-
dereo, um nmero chamado o endereo de memria, que indica a posio
desejada dos dados na memria. A ento, o processador l ou escreve os
dados colocados no barramento de dados. Eventualmente pode haver uma
Unidade de Gerncia de Memria (MMU Memory Management Unit), um
dispositivo colocado entre o processador e a memria RAM que calcula o
endereo real da memria quando se usa, por exemplo, uma abstrao de
memria virtual.
Devido ao fato de que as memrias RAM so volteis, isto , o arma-
zenamento somente perdura enquanto houver energia no computador. Um
computador que contem somente memria RAM no teria um local para ler
as instrues a fm de fazer o computador funcionar. Um computador geral-
mente tem uma memria permanente que contm um pequeno programa
de incio (BIOS Basic Input/Output System) que instrui o computador a
ler um programa maior em uma unidade de armazenamento secundrio
permanente (um disco rgido , por exemplo) para a memria RAM e come-
ar execut-lo. Essa memria permanente usada para guardar a BIOS
chamada ROM, memria apenas de leitura. Os computadores modernos
permitem a gravao dessa memria ROM para atualizar a BIOS, mas como
essa atualizao realizada apenas esporadicamente, os conceitos aqui
apresentados podem ser mantidos.
A memria secundria (ou a memria externa) difere da memria
primria por que no diretamente acessvel pelo processador central. O
computador geralmente usa suas interfaces de entrada/sada para ter aces-
so ao armazenamento secundrio e transfere os dados desejados usando a
rea armazenamento intermedirio localizadas nessas interfaces. A mem-
65
ARQUITETURA DE COMPUTADORES
ria secundria no perde os dados quando o dispositivo desligado. Uma
unidade de memria secundria tipicamente uma ordem de valor mais
barata que a memria primria alm de armazenar uma quantidade de
dados muito maior.
Nos computadores modernos, o armazenamento secundrio reali-
zado com um disco rgido. O tempo para alcanar um byte da informao
armazenado em um disco rgido tipicamente alguns milsimos de segun-
do, ou milissegundos. Por outro lado, o tempo tpico para alcanar um byte
armazenado na memria de acesso aleatrio (RAM) medido em bilionsi-
mos de segundo, ou nanossegundos. Isto ilustra a diferena signifcativa do
tempo de acesso que distingue as memrias semicondutoras dos dispositi-
vos de armazenamento magntico: os disco rgidos so tipicamente milhes
de vezes mais lentos do que a memria. Os dispositivos de armazenamento
tico, tais como CD ou DVD, tm tempos de acesso maiores ainda. Nas uni-
dades de disco, uma vez que a cabea de leitura/gravao no disco alcana
a posio correta de onde se encontra o dado desejado, os dados subseqen-
tes na trilha so muito rapidamente alcanados. Em conseqncia, a fm de
esconder o alto tempo de busca inicial, os dados de discos so transferidos
em grandes blocos contguos.
Alguns outros exemplos de tecnologias de armazenamento secundrio
so: a memria Flash (por exemplo, drives USB), os discos fexveis, a fta
magntica, a fta de papel, os cartes perfurados, etc
A maioria dos computadores usa o conceito da memria virtual,
permitindo o aumento da capacidade de uma memria quando necess-
rio. Quando a memria primria se enche (por exemplo, memria RAM), o
sistema move os pedaos menos usados (pginas) para um dispositivo de
memria secundria (por exemplo, disco rgido), recuperando-os mais tarde
quando so necessrios. Como o armazenamento secundrio mais lento
que o armazenamento primrio, o desempenho de sistema total fca degra-
dado. Porm o sistema no pra de funcionar devido a exausto da memria
primria.
A memria terciria ou armazenamento tercirio fornece um terceiro
nvel de armazenamento. uma memria com tempos de acesso muito lon-
gos que so usados para guardar dados por longos perodos. Tipicamente
envolve um mecanismo robtico que monte e desmonte media removveis de
memria de massa como ftas e discos. Esses dados so copiados frequente-
mente do armazenamento secundrio. So usados para arquivamento das
informaes e sua velocidade muito mais lenta que o armazenamento
secundrio (por exemplo, 5-60 segundos contra 1-10 milissegundos). Como
exemplo temos bibliotecas de fta e jukebox ticos.
Quando um computador precisa ler uma informao no armazena-
mento tercirio, consultar primeiramente uma base de dados de catlogo
para determinar qual a fta ou o disco contm a informao. Em seguida, o
computador instruir um brao robtico para buscar a mdia e coloc-la na
unidade de leitura. Quando o computador terminar de ler a informao, o
brao robtico retornar a mdia a seu lugar na biblioteca.
Memria Interna
As memrias semicondutoras podem ser do tipo RAM ou ROM. As
memrias RAM podem ser lidas ou escritas e so volteis. A memria ROM
apenas para leitura, mas permanente.
66
ARQUITETURA DE COMPUTADORES
As memrias RAM podem ser Estticas ou Dinmicas. Suas carac-
tersticas comuns so: acesso randmico, isto , as posies de memria
podem ser lidas/escritas em qualquer ordem, e so volteis, isto , o arma-
zenamento temporrio, quando se desliga a energia os dados so perdi-
dos. A fgura abaixo mostra um esquema de uma memria RAM dinmica
e esttica.

Figura 26 Esquema de uma clula de memria RAM dinmica e esttica
Memria RAM Esttca
Os bits so armazenados em chaves ON/OFF (Flip-fops). Os dados
permanecem at ser desligado, no precisando ser refrescadas. Sua cons-
truo complexa e ocupa uma grande rea, por isso mais cara. A van-
tagem que so muito rpidas, sendo apropriadas para contruo de me-
mria cache.
Memria RAM Dinmica
Os bits em uma memria dinmica so armazenados em capacitores
que se decarregam com o tempo, por isso necessrio\textit{refrescar} o
valor armazenado (refresh). Apesar da necessidade de um circuito especial
para realizar o refresh a construo de memria dinmica simples, ocupa
menos espao e barata, permitindo a construo de mdulos grandes de
memria. No entanto, elas so mais lentas que a memria estticas, sendo
mais adequadas para construir a memria principal.
O circuito de refresh geralmente incluso no prprio chip e consiste
em reescrever os dados para regenerar as informaes. Por essa razo h
uma queda do desempenho do sistema.
Memria ROM
As memrias ROM tem armazenamento permanente e so usadas
para guardar microprogramas e BIOS\footnote{Basic I/O System - Sistema
bsico de um computador}.
67
ARQUITETURA DE COMPUTADORES
As memrias ROM podem ser:
Gravadas na fabricao cara para lotes pequenos.
PROM So programadas apenas uma vez.
EPROM So programadas eletricamente e apagadas por luz UV (Ul-
travioleta).
EEPROM So programamdas e apagadas eletricamente (apaga um
byte por vez).
FLASH So programadas e apagadas eletricamente (apaga toda me-
mria ou um bloco).
Regenerao de memria dinmica (refresh)
O circuito de regenerao geralmente includo no chip sendo desne-
cessrio qualquer circuito adicional. As etapas da regenerao so:
a. Desabilita o chip.
b. Contador ativa todas as linhas.
c. L contedo de cada posio de memria.
d. Reescreve valor na mesma posio.
O processo de regenerao consome tempo da memria causando uma
reduo no desempenho. Mostramos na fgura abaixo um diagrama de uma
memria RAM com a regenerao de memria (refresh).
Figura 27 Diagrama de uma memria RAM dinmica
Correo de Erro
Podemos classifcar os erros em memrias de dois tipos:
Falha grave Defeito de hardware permanente.
Falha amena Falha randmica, no destrutivo e produzida por rudo.
Alguns mecanismos so capazes de detectar e corrigir um erro. A
68
ARQUITETURA DE COMPUTADORES
fgura a seguir mostra o funcionamento de um mecanismo de correo de
erros.

Figura 28 Mecanismo de correo de erro
Um exemplo do algoritmo do Cdigo de Hamming mostrado na f-
gura abaixo. O dado original colocado nos 4 compartimentos internos
conforme fgura (a). Os trs circulos A, B e C se interceptam e em cada
compartimento vazio colocamos um bit de paridade, isto , em cada crculo
a quantidade de bits "1" sempre par (b). Supondo que haja um erro em um
bit de dado (fgura (c)) podemos facilmente descobr-lo. Ao calcular a pari-
dade verifcamos que h uma divergncia nos crculos A e C, mas no no B.
O nico compartimento pertencente a A e C mas no a B o local da ocor-
rncia do erro, mostrado na fgura (d). O cdigo de Hamming no efciente
em termos de tamanho de palavra pois para corrigir uma palavra de 4 bits
precisamos adicionar mais 3 bits de paridade.

Figura 29 Cdigo de correo de erro de Hamming
69
ARQUITETURA DE COMPUTADORES
Memria Cache
Memria cache uma pequena quantidade de memria rpida coloca-
da entre a CPU e a memria principal. Eventualmente ela pode ser colocada
dentro do chip da CPU. A idia que a memria cache leia um bloco gran-
de da memria principal e sirva CPU palavras isoladas para otimizar o
desempenho. A fgura a seguir mostra um diagrama da arquitetura de um
computador com memria cache.
Figura 30 Diagrama de um computador com memria cache
O funcionamento de uma memria cache apresentado a seguir:
a. A CPU solicita uma posio de memria.
b. Verifca se essa posio est no cache.
c. Se est, pega no cache.
d. Seno, requisita bloco da memria principal.
e. Inclui rtulo para identifcar bloco de memria
f. CPU l a memria desejada.
g. Muito provavelmente a proxima posio solicitada pela CPU dever
estar no cache.
A escolha do tamanho de uma memria cache no trivial. Inicial-
mente quanto maior a quantidade de memria rpida melhor ser o de-
sempenho do computador. Mas as memrias cache so memrias rpidas
que tem um custo elevado, ento quanto menos memria menor o custo do
computador.
Se a memria cache for pequena necessrio muitas buscas me-
mria principal, degradando o desempenho. Como verifcar a existncia de
uma posio de memria no cache toma tempo, o sistema pode fcar at
mais lento do que sem o uso de cache. Apesar do desempenho aumentar
com o aumento da memria cache ele no aumenta signifcativamente a
partir de um certo ponto. A escolha do tamanho de cache empricas.
Mapeamento
Um detalhe importante na construo de memria cache a forma
que se mapeia a memria principal na memria cache. Na fgura abaixo um
bloco de tamanho K palavras de tamanho W da memria principal mapea-
do em um bloco de K palavras na memria cache. O campo tag identifca a
localizao do bloco N na memria principal.
70
ARQUITETURA DE COMPUTADORES

Figura 31 Mapeamento de memria cache
Mapeamento Direto
O mapeamento direto mapeia cada bloco de memria principal em
uma linha da memria cache exclusiva. O tag apenas indica o bloco da
memria. A fgura a seguir mostra um diagrama de memria cache com
mapeamento direto.
O mapeamento direto o mais simples e barato porque a localizao
fxa para cada bloco. O problema quando o programa acessa dois blocos
que mapeiam na mesma linha, exigindo a troca frequente do contexto.
Figura 32 Diagrama de uma memria cache com mapeamento direto
71
ARQUITETURA DE COMPUTADORES
Mapeamento Associatvo
No mapeamento associativo um bloco de memria principal pode ser
mapeado em qualquer linha da memria cache. A fgura abaixo mostra um
diagrama de memria cache com mapeamento associativo.
A identifcao do memria realizada com o tag e a palavra. O tag
identifca o bloco de memria e verifcado a cada busca de memria. O
mecanismo muito efciente mas o circuito mais complexo e caro.

Figura 33 Diagrama de uma memria cache com mapeamento associativo
Mapeamento Associatvo por Conjunto
No mapeamento associativo por conjunto uma soluo intermediria
entre memria associativa e direta. A fgura abaixo mostra um diagrama de
memria cache com mapeamento associativo.
A memria cache identifcada por um tag livre e um conjunto (set)
fxo para cada endereo e cada conjunto contm uma certa quantidade de
linhas. Esse mecanismo oferece um bom compromisso de custo e fexibili-
dade e o mais utilizado.
Figura 34 Diagrama de uma memria cache com mapeamento associativo por conjunto
72
ARQUITETURA DE COMPUTADORES
Algoritmos de substtuio
No mapeamento direto o algoritmo de substituio apenas a ligao
bloco e linha.
No mapeamento associativo podemos atribuir vrias tcnicas para
substituir o contedo da memria. Geralmente so implementados em har-
dware para obter mair velocidade e tentam identifcar os blocos menos usa-
dos. Os algoritmos de substituio so:
FIFO (First In First Out) Substitui o bloco mais antigo.
LRU (Least Recently Used Substitui pelo recentemente usado.
LFU (Least Frequntly Used) Substitui pelo menos usado (menos hits).
Randmico Escolhe qualquer bloco.
O mtodo randmico o mais simples e apenas um pouco pior do
que os demais.
Poltcas de atualizao
Antes de substituir um bloco na memria cache necessrio verifcar
se ele no foi alterado e h a necessidade de atualizar a memria principal.
Estatisticamente 15\% dos acessos memria alteram o contedo e preci-
sam ser atualizados.
Existem duas polticas:
Escrita Direta (Write-through) Todos os blocos do cache so copia-
dos para a memria, o que gera muito trfego e torna a escrita lenta.
Escrita de volta (Write-back) Bloco no cache tem uma indicao se
ele sofreu alterao e apenas esses blocos so alterados. O problema
que no h confabilidade nos dados armazenados na memria
(ser que j foi alterado?).
Exemplo: Caractersticas do Cache no Processador Pentium 2
Como exemplo apresentamos o mecanismos de cache utilizados no
processador Pentium II.
Mapeamento associativo por conjunto.
128 conjuntos.
Tag de 24 bits.
Substituio LRU com 1 bit.
Poltica Escrita e volta (Write-back) mas pode ser confgurado para
Write-through.
MESI (Modifed/Exclusive/Shared/Invalid) indica o estado da me-
mria cache e evitar incoerncias.
Memria Externa
A memria interna apresenta alta velocidade mas tem limitao de
tamanho e no mantm os dados quando o computador desligado. Assim,
torna-se necessrio utilizar um sistema de armazenamento secundrio ou
uma memria externa.

73
ARQUITETURA DE COMPUTADORES
Figura 35 Funcionamento de uma memria magntica
O principal dispositivo de memria externa o disco magntico. O
armazenamento magntico usa padres diferentes de magnetizao sobre
uma superfcie magntica para armazenar a informao. O armazenamen-
to magntico permanente, isto , mantido mesmo se a unidade tiver sua
energia desligada. A informao gravada usando uma ou vrias cabeas
de leitura/gravao que aplicam um campo magntico sobre uma superfcie
magnetizvel. Uma cabea de leitura/gravao cobre somente uma parte da
superfcie de modo que a cabea ou a mdia ou ambos devam ser movidos
um relativo ao outro a fm alcanar os dados desejados. Em computadores
modernos, o armazenamento magntico pode ter os seguintes formatos:
Disco magntico para o armazenamento secundrio
Disco Rgido
Disco fexvel
Fita magntica, usada para o armazenamento tercirio.
O armazenamento tico, ou disco ptico tpico, armazena a informa-
o nas deformidades na superfcie de um disco circular e l esta informa-
o iluminando a superfcie com um diodo laser e observando a refexo. O
armazenamento do disco ptico permanente. As deformidades podem ser
permanentes (gravados na fabricao), dados gravados uma nica vez (es-
creve apenas uma vez) ou regravvel (mdia regravvel, pode escrever vrias
vezes). Os formatos mais comuns so os seguintes:
CD, CD-ROM, DVD, BD-ROM: Gravado apenas uma vez durante a
fabricao, usado para a distribuio macia de informao digital
(msica, vdeo, programas)
CD-R, DVD-R, DVD+R BD-R: Escreve uma vez, usado para o arma-
zenamento tercirio.
CD-RW, DVD-RW, DVD+RW, DVD-RAM, BD-RE: Pode escrever v-
rias vezes, escrita lenta, leitura rpida, usado para o armazenamen-
to tercirio

74
ARQUITETURA DE COMPUTADORES
Figura 36 Funcionamento de uma memria tica
O disco magnetotico um disco tico especial de material no qual
usado um campo magntico em sua superfcie para fazer a gravao das
informaes. A informao lida de forma tica e reescrita combinando
mtodos magnticos e ticos. O armazenamento de disco magnetotico
permanente e tem acesso seqencial. Apesar de ter um tempo de escrita
alta, seu tempo de leitura extrememente rpido. utilizado para armaze-
namento tercirio.
Melhorando o desempenho de memrias
Algumas tcnicas podem ser utilizadas para melhorar o desempenho
das memrias:
Aumentar a largura de bits no lugar de profundidade.
Utilizar cache com memrias mais rpidas.
Reduzir a freqncia de acesso memria (cache).
Aumentar a capacidade de conexo com barramentos mais rpidos
e barramentos hierrquicos.
1. Leia a especifcao de um computador pessoal e relacione todos os ti-
pos de memria que ele usa.
2. Estude o diagrama de um chip de memria DRAM e veja como ele con-
segue localizar um registro. Voc j viu esse circuito?
3. Pesquise sobre os vrios tipos de memria de massa e relacione as tc-
nicas usadas para melhorar o desempenho para compatibilizar com as
velocidades do processador.

ARQUITETURA DE COMPUTADORES
75
Captulo 3
Barramentos
Os diversos componentes de um computador precisam se comunicar.
O barramento um subsistema que transfere dados entre componentes
dentro de um computador ou entre computadores.
Os barramentos do computador so basicamente linhas de comuni-
cao eltricas em forma paralela ou serial com conexes mltiplas, isto ,
permite ligar vrios dispositivos. Com o aumento do desempenho, os siste-
mas de interconexo tem papel importante.
O barramento interno tem como funo conectar a CPU, Memria e
interfaces. O barramento externo tem como funo conectar computadores
aos seus perifricos, impressoras, vdeo e outros computadores.
Caracterstcas de um Barramento
O barramento tem como principais caractersticas:
1. Estrutura de comunicao entre componentes do computador.
2. Geralmente tem flosofa de difuso (broadcast).
3. Geralmente paralelo (vrios canais).
4. Pode ou no conter linhas de energia para alimentao dos perfricos.
Podemos classifcar os barramentos em dois tipos.
Dedicado
As linhas de endereo e dados so separadas, isto e', tem linhas fsicas
exclusivas. necessrio mais linhas de barramento, mas a transferncia
mais rpida.
Compartlhado
As linhas de endereo e dados compartilham as mesmas linhas fsi-
cas. necessrio uma linha de controle para indicar o momento quando h
um endereo vlido ou um dado vlido no barramento. A vantagem que
necessrio menos linhas de barramento, porm perde-se em desempenho e
o controle mais complexo.
Um barramento pode ser construdo de diversas formas. As mais
comuns so:
Trilhas paralelas de circuito impresso.
Cabo fexvel.
Conectores paralelos.
76
ARQUITETURA DE COMPUTADORES
Barramentos Paralelos e Seriais
Os barramentos podem ter as linhas de informao transmitidas em
paralelo ou serial. Os barramentos paralelos transportam as palavras de
dados paralelamente em mltiplos fos ou trilhas e os barramentos seriais
transportam os dados em forma de seqncia de bits. A capacidade de
transmisso em barramentos paralelos geralmente maior que os seriais,
capazes de transmitir apenas um bit por vez. Entretanto, quando as taxas
de transmisso aumentam, os problemas de sincronismo, consumo de ener-
gia, interferncia eletromagntica entre os fos ou trilhas nos barramentos
paralelos tornam-se cada vez mais difceis de se contornar. A soluo usada
para esse problema aumentar a largura do barramento para manter a
taxo do relgio mais baixa.
Um barramento serial pode realmente operar em taxas de dados mais
elevadas do que um barramento paralelo. Apesar de ter poucas linhas de
transmisso, um barramento em srie no tem o problema de interferncia
entre as vias e menos problemas de sincronismo. O USB, Firewire, e Serial
ATA so exemplos de barramentos seriais de alta velocidade.
Exemplos de Barramentos Paralelos
ATA (Advanced Technology Attachment) e tambm ou seus varian-
tes PATA, IDE, EIDE, ATAPI, etc., barramento paralelo para disco
rgidos, ticos ou fta.
ISA Industry Standard Architecture, barramento de placa me
ISA Estendido ou EISA, evoluo do ISA
PCI (Peripheral Component Interconection), barramento atual para
placa-me.
MicroChannel ou MCA, usado pela IBM
Computer Automated Measurement and Control (CAMAC), para sis-
temas de instrumentao.
Multibus para sistemas industriais.
Exemplos de Barramentos Seriais
USB (Universal Serial Bus), usado para uma variedade de disposi-
tivos externos
HyperTransport, barramento serial ou paralelo para conectar com-
ponentes em uma placa-me, como, memrias, circuitos de vdeo e
processadores matemticos.
IC (Inter-Integrated Circuit), para interconectar perifricos exter-
nos a baixa velocidade como termmetros, displays, sensores, etc.
SATA Serial ATA, verso serial do ATA para conectar discos rgidos
e discos ticos.
PCI Express ou PCIe, evoluo de barramento PCI para ligar inter-
faces em computadores pessoais.
SCSI (Small Computer System Interface), barramento serial par ali-
gar discos rgidos, discos ticos e ftas magnticas.
EIA-485 ou RS-485, interface confvel de baixa velocidade geral-
mente usada para ligar dispositivos perifricos em automao pre-
dia ou industrial.
Firewire ou IEEE 1394, interface serial de alta velocidade para ligar
perifricos (mais rpido que o USB).
77
ARQUITETURA DE COMPUTADORES
Categorias de Barramento em um Computador
Os barramento so divididos em barramentos de dados, endereos e
controle:
Barramento de dados
O barramento de Dados tem como objetivo transferir dados e refe-
rncias de endereo de memria. A largura do barramento de dados vai
determinar o desempenho do computador (quanto mais largo mais dados
simultneos so transmitidos ao mesmo tempo). Geralmente o tamanho dos
barramento de dados mltiplo de 8 bits, por exemplo: 8, 16, 32, 64.
Barramento de endereos
O barramento de Endereos tem como objetivo identifcar a origem e
destino do dado. Por exemplo, a CPU l uma instruo na memria, identif-
ca um dispositivo. A largura do barramento de endereos vai determionar a
capacidade mxima de memria. Por exemplo, a CPU 8080 tem um barra-
mento de endereos de 16 bits de largura, possibilitando o endereamento
de 64 Kbytes de memria.
Barramento de controle
O barramento de Controle tem como objetivo enviar dados de controle
entre os subsistemas. Por exemplo, quando a CPU vai escrever um dado
na memria ela coloca o endereo da memria no barramento de endereo,
coloca o dado que vai escrever no barramento de dados e envia um sinal de
escrita na memria via barramento de controle. O tamanho do barramento
de controle ir depender da arquitetura do computador e da CPU. Exemplos
de sinais de controle so: leitura e escrita de memria, leitura e escrita de
E/S, interrupo, relgio etc.
Barramento Interno e Externo
A maioria dos computadores tem barramentos internos e externos.
Um barramento interno conecta todos os componentes internos de um com-
putador a placa-me (onde se encontra o processador e a memria interna).
Esses tipos de barramentos so tambm chamados de barramento local,
porque pretendem conectar os dispositivos locais, e no outras mquinas
externas ao computador. Um barramento externo conecta perifricos ex-
ternos a placa-me do computador. Um barramento interno sempre mais
rpido que um barramento externo.
Conexes de rede tais como o Ethernet no so consideradas geral-
mente como barramentos devido ao fato de ligar computadores longa dis-
tncia, embora a diferena tecnolgica no seja perceptvel. As defnies de
barramento interno e externo so s vezes distorcidos. Por exemplo, o IC
pode ser usado como um barramento interno ou externo, o InfniBand foi
criado para substituir os barramentos internos PCI, mas utilizado para
ligar equipamentos em rede.
78
ARQUITETURA DE COMPUTADORES
Funes dos barramentos
A funes fornecidas pelo barramento para cada categoria de compo-
nentes so:
Memria
Recebe e envia dados.
Recebe endereos.
Recebe sinais de controle (relgio, leitura, escrita).
Entrada e Sada (E/S)
Recebe e envia dados CPU/perifricos.
Recebe sinais de controle da CPU.
Envia sinais de controle para perifricos.
Recebe endereo dispositivo (endereo da porta que identifca o pe-
rifrico).
Envia sinal de interrupo
Unidade Central de Processamento (UCP)
Recebe instruo e dados.
Escreve dados.
Envia sinais de controle.
Recebe e trata interrupes.
Hierarquia de Barramentos
Para melhorar o desempenho de um computador podemos construir
vrios barramentos com velocidades diferentes.
Barramento nico
a estrutura mais simples, onde todos os dispositivos compartilham
o mesmo barramento. Um exemplo de barramento nico mostrado na f-
gura abaixo:

Figura 37 Diagrama de um barramento nico
O barramento nico apresenta alguns problemas que impactam no
desempenho do sistema. Como diversos dispositivos com velocidades di-
ferentes compartilham o mesmo barramento os dispositivos mais rpidos
(por exemplo, memria) precisam esperar a transferncia dos dispositivos
mais lentos (por exemplo, dispositivos de E/S).
79
ARQUITETURA DE COMPUTADORES
Barramentos mltplos
A soluo para compatibilizar componentes com velocidades diferen-
tes construir vrios barramentos agrupando os componentes semelhan-
tes. Mostramos na fgura a seguir um barramento mltiplo onde podemos
ver os seguintes barramentos:
Barramento Local Interliga a CPU com a memria cache.
Barramento do Sistema Interliga a memria cache com a memria
principal.
Barramento de Alta Velocidade Interliga dispositivos de E/S de
alta velocidade.
Barramento de Expanso Interliga dispositivos de E/S de baixa
velocidade.
Figura 38 Diagrama de um barramento mltiplo
A conexo entre os diversos barramentos realizado pelas interfaces
que armazenam a informao enquanto aguardam o barramento mais len-
to, liberando rapidamente o barramento de maior velocidade.
Arbitragem de barramento
A arbitragem necessrio quando vrios mdulos podem requisitar o
barramento para seu uso, por exemplo, quando usamos DMA. necessrio
garantir que apenas um mdulo utilize o barramento.
Arbitragem centralizada
Nesse caso apenas um dispositivo controla o acesso ao barramento.
Todos os mdulos solicitam o acesso ao barramento ele. Esse dispositivo
pode estar dentro da CPU ou fora dela.
Arbitragem distribuda
Cada mdulo tem seu prprio dispositivo de arbitragem que interage
com os dispositivos dos demais mdulos. Existe uma lgica de controle em
cada mdulo.
80
ARQUITETURA DE COMPUTADORES
Temporizao de Barramento
A temporizao coordena os eventos no barramento.
Sncrona
Todos os eventos so sincronizados pelo sinal de relgio. O barramen-
to de controle inclui uma linha de relgio para garantir a sincronia entre os
diversos componentes.
Todos os dispositivos precisam ler esse relgio e geralmente temos um
evento para cada ciclo de relgio. Esse circuito mais simples, menos fe-
xvel e que apresenta um desempenho pior pois os ciclos so defnidos pelo
ciclo dos dispositivos mais lentos.
Assncrona
Cada evento tem o seu prprio sinal de controle. Por exemplo, a CPU
envia sinal para a memria indicando a disponibilidade de um endereo no
barramento e a memria envia sinal para a CPU indicando a disponibilida-
de do dado no barramento. O circuito mais complexo porm h um apro-
veitamento melhor dos tempos variveis dos dispositivos.
Barramento PCI
O barramento PCI (Peripheral Component Interconection) foi criado
em 1990 e o padro mais utilizado nos computadores PC. Ele foi desen-
volvido pela Intel mas foi liberado para domnio pblico o que propiciou sua
grande difuso. O padro defniu 49 linhas de sinal para barramento de 32
bits. Existe tambm a verso para barramento de 64 bits.
Linhas obrigatrias:
Sistema Relgio e reset.
Endereo e Dado 32 ou 64 bits multiplexados.
Controle de Interface Sinal do mestre indicando o incio e fm da
transao e seleo de dispositivo.
Arbitragem Linhas no compartilhadas (cada dispositivo tem um
par de controle REQ/GNT ligado ao rbitro.
Erros Sinais de erros de paridade e de sistema.
Linhas opcionais:
Linhas de Interrupo Linhas no compartilhadas e limitadas a 4.
Controle de cache Utilizado para controlar o cache de memria.
Extenso do barramento Aumenta a largura do barramento de
dados para 64 bits e as respectivas linhas de arbitragem.
Linhas de teste Pinos utilizados para testar as interfaces (JTAG).
Temporizao
A fgura abaixo mostra uma operao de leitura em um barramento
PCI. Uma vez que o mestre tenha obtido o controle do barramento, inicia a
transferncia ativando o sinal FRAME que permanece assim at o fnal da
transferncia. O iniciador coloca o endereo no barramento AD que iden-
81
ARQUITETURA DE COMPUTADORES
tifcado no incio do segundo ciclo de relgio. O mestre envia o sinal IRDY
para selecionar o dispositivo alvo que confrma a seleo atravs do sinal
DEVSEL.
Aps alguns ciclos de espera o sinal C/BE muda de estado indicando a
presena de dado no barramento AD. Atravs do sinal TRDY o mestre indica
a presena de um dado vlido no barramento. A mudana do TRDY indica a
disponibilidade dos dados seguintes no barramento. O fnal da tranferncia
indicando quando os sinais FRAME, IRDY, TRDY so desativados e, em
seguida, o sinal DEVSEL.
Figura 39 Temporizao do barramento PCI
Arbitragem
O barramento PCI utiliza arbitragem centralizada onde cada disposi-
tivo tem seu par de sinais de controle REQ/GNT, conforme mostrado na f-
gura abaixo. O dispositivo que deseja o controle do barramento ativa o sinal
REQ e o arbitro PCI autoriza o acesso com o sinal GNT.
Figura 40 Arbitragem do barramento PCI
1. Discuta sobre vantagens e desvantagens dos barramentos seriais e pa-
ralelos.
2. Pesquise sobre a evoluo da velocidade e largura de barramentos inter-
nos do microcomputador PC.
3. Pesquise como pode ser implementado um arbitro de um barramento.

ARQUITETURA DE COMPUTADORES
82
Captulo 4
Entrada e sada
Um computador precisa se comunicar com o mundo exterior. Ele
constitudo por vrios dispositivos que apresentam quantidades de dados
diferentes, velocidades diferentes e formatos diferentes. Os dispositivos de
entrada e sada so mais lentos do que CPU e memria.
Na computao a entrada/sada, ou E/S, ou ainda o termo em ingls
I/O (Input/Output), referem a comunicao entre um sistema de processa-
mento de dados (tal como um computador) e o mundo exterior - possivel-
mente um ser humano ou outro sistema de processamento de dados. As
entradas so os sinais ou os dados recebidos pelo sistema e as sadas so
os sinais ou os dados emitidos a partir dele.
Podemos tambm usar termo executar E/S signifcando executar
uma operao da entrada ou sada. Os dispositivos de E/S so usados por
uma pessoa (ou por outro sistema) para comunicar-se com um computador.
Por exemplo, um teclado ou um mouse pode ser um dispositivo de entrada
para o computador, enquanto monitores e as impressoras so considerados
dispositivos de sada de um computador. Os dispositivos para comunicao
entre computadores, tais como modem e cartes de rede, so tipicamente
de entrada e sada.
Podemos relacionar os tipos de dispositivos externos:
Comunicao Humana Teclado, display, impressora
Comunicao c/ mquina Disco, fta
Comunicao remota Interface de rede, modem
Mdulo de Entrada e Sada
O componente que estabelece a ligao entre o barramento de alta ve-
locidade (onde esto CPU e memria) com os dispositivos de entrada e sada
(impressora, teclado, modem, etc) o mdulo de entrada e sada.
Funes do Mdulo de E/S
Controle de temporizao
Comunicao com a CPU
Comunicao com o dispositivo
Armazenamento de dados
Deteco de erros

83
ARQUITETURA DE COMPUTADORES
Etapas de E/S
a. CPU verifca estado do dispositivo de E/S
b. Mdulo de E/S retorna estado
c. Se OK, CPU requisita transferncia de dados
d. Mdulo de E/S pega dados do dispositivo
e. Mdulo E/S transfere dados para CPU
Mdulo de E/S
Apresentamos na fgura abaixo o diagrama de um mdulo de entrada
e sada. O mdulo de E/S deixa o controle do dispositivo transparente para
a CPU. Pode suportar mais de um dispositivo.

Figura 41 Diagrama de blocos de um mdulo de E/S
Tcnicas de Entrada e Sada
As tcnicas de entrada e sada so:
a. Entrada e sada programada
b. Entrada e sada por interrupo
c. Entrada e sada por DMA
Entrada e Sada Programada
A CPU tem controle direto sobre o mdulo de E/S: determina o status,
escreve/l comandos e transfere dados. A CPU aguarda o mdulo terminar
a operao e como os dispositivos so mais lentos que a CPU, h um desper-
dcio de tempo. Mostramos a seguir o seu funcionamento:
DMA s.
84
ARQUITETURA DE COMPUTADORES
a. CPU requisita operao de E/S
b. Mdulo E/S executa operao
c. Mdulo E/S marca indicador de estado (fag)
d. CPU verifca o indicador de estado periodicamente
e. Mdulo de E/S no informa CPU diretamente
f. Mdulo E/S no interrompe a CPU
g. CPU deve esperar pela concluso da requisio
O endereamentoi de E/S semelhante ao endereamento de memria
e cada dispositivo tem um endereo nico. O comando da CPU contm o
identifcador (endereo).
Podemos realizar dois tipos de mapeamento de E/S:
Memria mapeada Os dispositivos de E/S e memria compartilham
o mesmo espao de endereos. Operaes de E/S so semelhantes
a leitura/escrita em memria. No h comando especializado para
operaes de E/S.
E/S isolado O espao de endereamento separado da memria.
necessrio comandos especilizados para E/S. Geralmente o ta-
manho dos endereos de E/S so menores do que os endereos de
memria.
Entrada e Sada por Interrupo
A vantagem do controle por interrupo que a CPU no espera pela
resposta do dispositivo. A CPU tambm no precisa testar estado do dispo-
sitivo pois o mdulo de E/S interrompe a CPU quando o dado estiver pronto.
Mostramos a seguir o seu funcionamento:
a. CPU executa comando de leitura no mdulo de E/S
b. CPU retorna ao processamento normal
c. Mdulo E/S l dado do dispositivo
d. Mdulo E/S interrompe CPU
e. CPU requisita dados
f. Mdulo E/S transfere dados
CPU verifca a ocorrncia de interrupo aps cada instruo. Se hou-
ver interrupo, salva contexto (registradores) e processa interrupo.
Se em um computador existem vrios mdulos de E/S (o que nor-
mal), ento necessrio um procedimento para identifcar o mdulo que
interrompeu a CPU.
Linha diferente para cada mdulo O limite a capacidade de linhas
de interrupo da CPU.
a. Pool de software CPU tem recebe apenas uma interrupo. Ao
receb-la pesquisa todos os mdulos para descobrir. Mtodo lento.
b. Interrupo vetorado (Daisy-chain) A CPU tem apenas uma linha
de interrupo. Ao receber a interrupo a CPU recebe um reco-
nhecimento com uma cadeia de caracteres indicando o dispositivo
solicitante.
85
ARQUITETURA DE COMPUTADORES
c. Arbitrao de barramento (Bus master) Mdulo que deseja inter-
romper obtm o controle do barramento, a CPU reconhece o mdulo
e coloca o vetor na linha de dados.
Cada interrupo tem sua linha e quando estiver tratando uma in-
terrupo e receber outra solicitao, o computador pode ter duas atitudes:
a. Nova interrupo fca aguardando at terminar o tratamento da
primeira interrupo.
b. Ao receber uma nova interrupo que tenha maior prioridade, sus-
pende a execuo do programa e trata a interrupo. Se no (prio-
ridade menor) aguarda a concluso da interrupo corrente.
Exemplo: Processador x86
Os processadores da linha x86 tem apenas uma linha de interrup-
o. Para aumentar essa capacidade utilizado o controlador de interrup-
o 8259 que oferece 8 linhas de interrupo com prioridade. Ao receber
uma solicitao de interrupo o 8259 envia o sinal de interrupo para o
processador (INTR) e aps receber as confrmao (INTA) envia o vetor da
interrupo recebida. O processador, ento, passa a tratar a interrupo
diretamente com o mdulo de E/S.
Entrada e Sada por DMA (Direct Memory Access)
Acesso direto memria (DMA - Direct Memory Access) uma tc-
nica utilizada nos computadores modernos e microprocessadores que per-
mite que certos subsistemas de hardware do computador possa transferir
dados diretamente para a memria RAM independentemente da unidade
central de processamento. Muitos sistemas de hardware utilizam DMA,
como: controladores de unidade de disco, placas grfcas, placas de rede e
placas de som. O DMA tambm usado para transferncia de dados entre
processadores multi-core, onde seu elemento de processamento equipado
com uma memria local (memria cache) e para transferir dados entre a
memria local e a memria principal desses sistemas. Computadores equi-
pados com DMA podem transferir dados de e para dispositivos muito mais
rapidamente e com muito menos sobrecarga de CPU. Do mesmo modo um
elemento de processamento dentro de um processador multi-core podem
transferir dados de e para a sua memria local sem ocupar o seu tempo de
processamento e permitindo simultaneamente uma computao e a trans-
ferncia de dados.
86
ARQUITETURA DE COMPUTADORES

Figura 42 Confguraes de DMA
Nesta unidade apresentamos detalhadamente todos os componentes que
fazem parte de uma arquitetura de computador. Iniciamos apresentan-
do a Unidade Central de Processamento, o crebro do computador, res-
ponsvel pelo controle do computador alm de realizar as operaes
aritmticas. Em seguida apresentamos as memrias, tanto internas se-
micondutoras quanto as externas de alta capacidade. Apresentamos de-
pois os diversos barramentos de um computador. Finalmente mostramos
as interfaces que interagem com os dispositivos de entrada e sada, isto
, interface que interagem com os dispositivos que o ser humano utiliza.
87
ARQUITETURA DE COMPUTADORES
1. Relacione os principais problemas de uma interface de entrada e sada.
Discutas as solues para melhorar o desempenho.
2. Pesquise sobre a evoluo da velocidade das interfaces de entrada e sa-
da de um microcomputador PC.
3. Projete um circuito simples de controle de entrada e sada de um compu-
tador (dica: transfra dados da memria para a interface e vice-versa).
Apostila Arquitetura de Computadores B. Piropo (em portugus)
http://www.bpiropo.com.br/arqcom1.htm
Informaes gerais sobre Arquiteturas de Computadores (em portugus)
http://pt.wikipedia.org/wiki/Arquitetura_de_computadores
Tutorial sobre Memria Cache (em ingls)
http://www.cs.iastate.edu/~prabhu/Tutorial/CACHE/mem_title.html
WILLIAM STALLINGS. Arquitetura e Organizao de Computadores 5
Ed. Editora: Prentice Hall, 2002. Apresenta, da maneira clara e abrangente,
a natureza e as caractersticas dos sistemas de computao modernos. De
um modo geral, concentra-se basicamente em exemplos de diferentes m-
quinas, a maioria pertencente famlia Pentium II da Intel e PowerPC. En-
quanto o Pentium II um computador que possui um conjunto complexo de
instrues (CISC), o PowerPC, por sua vez, um computador com um con-
junto reduzido de instrues (RISC). Apesar das particularidades de cada
um, ambos tratam dos princpios de arquitetura superescalar e fornecem
suporte a confguraes com mltiplos processadores. O livro apresenta
inicialmente uma viso geral do que ser abordado ao longo dos captulos.
Nas partes subseqentes, trata do sistema de um computador (seus compo-
nentes, ou seja, processador, memria, mdulos de EIS e interconexes en-
tre esses componentes), da unidade de processamento central (por exemplo,
aspectos da arquitetura da CPU e questes relativas a sua organizao), da
unidade de controle (sua funo e sua implementao utilizando micropro-
gramao) e, fnalmente, da organizao paralela (examina algumas das
questes envolvidas em organizaes com mltiplos processadores e com
processamento vetorial.
88
ARQUITETURA DE COMPUTADORES
DAVID A. PATTERSON & JOHN L. HENNESSY. Organizao e Projeto de
Computadores 3 Ed. Editora: Campus, 2005. Um dos principais livro-
texto de Organizao e Projeto de Computadores. um livro-referncia atu-
alizado que visa refetir a tecnologia atual, apresentar novos exemplos e
oferece material completar que possa apoiar as necessidades divergentes da
rea de arquiteturas de computadores.
JOHN L. HENNESSY & DAVID A. PATTERSON. Arquitetura de Computa-
dores: Uma Abordagem Quantitativa 3 Ed. Editora: Campus, 2003. Um
dos principais livros da rea de Arquitetura de Computadores, considerado
durante mais de uma dcada leitura essencial por interessado em projeto
de computadores. Os autores apresentam seu mtodo exclusivo de anlise
quantitativa, empregando-o no apenas no projeto de mquinas de mesa de
alto desempenho, mas tambm no projeto de sistemas incorporados e ser-
vidores. Eles ilustram seus princpios com projetos de todos esses trs do-
mnios, incluindo exemplos de eletrnica de consumo, tecnologias de multi-
mdia e da Web, e ainda equipamentos de informtica de alto desempenho.
MILES J. MURDOCCA & VINCENT P. HEURING. Introduo Arquite-
tura de Computadores 1 Ed. Editora: Campus, 2000. O livro mostra o
funcionamento do computador sob o prisma do programador. Voltado para
iniciantes, expe como se d o funcionamento interno dos computadores
digitais. Entre os conceitos estudados esto: representao de dados, arit-
mtica, dados e controle.
RAUL FERNANDO WEBER. Arquitetura de Computadores Pessoais, Vol
6. 2 Ed. Editora: Bookman, 2008. Livro focado na arquitetura de compu-
tadores pessoais e seus dispositivos, apesar de apresentar os conceitos te-
ricos genricos de arquiteturas de computadores. Este livro ajuda o leitor a
entender a arquitetura dos computadores pessoais e a sistematizar o estudo
de seus componentes, permitindo confgurar e expandir um computador
pessoal para o melhor desempenho possvel.
RAUL FERNANDO WEBER. Fundamentos de Arquitetura de Computa-
dores, Vol 8. 3 Ed. Editora: Bookman, 2008. Este livro examina os as-
pectos fundamentais de arquitetura e organizao de computadores por
meio de casos prticos, e no por meio do estudo terico de conjunto de
instrues e modos de endereamento. Para tanto, so apresentadas quatro
arquiteturas utilizadas pela famlia 80x86 dos microprocessadores Intel.
Unidade
Objetvo:
Nesta unidade vamos apresentar a interao do software com uma arquitetura de
computador. Inicialmente vamos apresentar os conceitos de conjunto de instrues
e como as instrues executam o processamento em um computador. Em seguida
apresentamos os conceitos bsicos de um sistema operacional e sua interao com
a arquitetura do computador.
Sofware em um computador
4
ARQUITETURA DE COMPUTADORES
91
Captulo 1
Conjunto de Instrues
Defnimos Conjunto de Instrues (ou em ingls, instruction set) so
as instrues de um processador que realizam operaes em um computa-
dor, microprocessador ou microcontrolador. O conjunto de instruo oferece
ao programador uma representao em mnemnicos do cdigo de mquina
para facilitar o entendimento e uso pelo programador. O programador ir
processador o programa escrito em nessa linguagem especfca que espe-
cfco apenas para um determinado processador.
Cada processador possui o seu prprio conjunto de instrues, for-
necido pelo fabricante, que tambm costuma disponibilizar um compilador
assembler que transforma o conjunto de instrues em cdigo de mquina
para ser utilizado por esse processador ou famlia de processadores.
Assim como exixtem dois tipos de processadores, se o conjunto de ins-
trues for reduzido chamamos de RISC e se o conjunto de instrues for
complexa chamamos de CISC.
Ciclo de Instruo
Defnimos um ciclo de instruo como o perodo de tempo no qual um
computador l uma instruo em linguagem de mquina da sua memria e
processa a seqncia de aes que o processador deve realiza para execu-
tar essa instruo em cdigo de mquina num programa. Por essa razo, o
ciclo de instruo tambm chamado de ciclo de busca e execuo ou ciclo
busca-execuo.
A expresso "ciclo de busca e execuo" at melhor nomenclatura,
pois descreve em essncia do funcionamento do computador: a instruo
deve ser buscada na memria principal e depois executada pelo proces-
sador. A fgura abaixo mostra um diagrama do funcionamento do ciclo de
instruo ou ciclo de busca e execuo.

Figura 43 Diagrama do ciclo de instrues
92
ARQUITETURA DE COMPUTADORES
Busca de instruo
a. Contador de Programa (PC) guarda endereo da prxima instruo.
b. Processador busca instruo na posio de memria apontada
pelo PC.
c. Incrementa PC.
d. Instruo carregada no Registrador de Instruo (IR).
e. Processador interpreta instruo e executa ao.
Executa instruo
Processador-Memria Tranfere dado da CPU para memria.
Processaror-E/S Tranfere dado da CPU para E/S.
Processamento de dado] Aritmtica e lgica.
Controle Altera seqncia de execuo (jump).
Vrios Combinao dos comandos anteriores.
Apresentamos na fgura abaixo um diagrama de estados do cliclo de
instrues.
Figura 44 Diagrama de estados do ciclo de instrues
Exemplo de execuo de instruo
Mostramos na fgura abaixo um exemplo de execuo de programa.
Esse trecho de programa realiza a soma do contedo do endereo de mem-
ria 940 ao contedo do endereo de memria 941 e armazena o resultado
nesse ltimo endereo. So executadas trs instrues em trs ciclos de
busca e execuo.
93
ARQUITETURA DE COMPUTADORES
Figura 45 Exemplo de execuo de um programa
a. O contedo do PC 300, endereo da primeira instruo. A instru-
o carregada no Registrador de Instruo (IR).
b. Os quatro primeiros bits do IR indica a operao da instruo. O res-
tante da instruo (12 bits) contm o endereo 940, local onde est o
operando da operao (0003) compiado para o acumulador (AC).
c. O PC incrementado e a prxima instruo buscada.
d. O contedo do AC somado com o contedo do endereo de mem-
ria 941 (0002). O resultado armazenado no AC.
e. O PC incrementado e a prxima instruo buscada.
f. O contedo do AC armazenado na posio de memria 941.
Linguagem de Mquina
Uma linguagem de mquina o conjunto de instrues especfcas
para um determinado processador. Para uma arquitetura de processador
uma instruo dada pode ser especifcada com os seguintes parmetros:
Registradores para clculo aritmtico, endereamento ou funes
de controle
Posies ou deslocamento (offset) de memria
Modalidades de endereamento usadas para interpretar os operandos
As operaes mais complexas podem ser especifcadas combinando
vrias instrues simples, que (em uma arquitetura von Neumann) so exe-
cutados sequencialmente ou desviadas seguindo o fuxo de controle das
instrues.
94
ARQUITETURA DE COMPUTADORES
Algumas operaes disponveis na maioria dos conjuntos de instruo:
Movimentao
a. Atribui a um registrador (uma posio de memria de rascunho
para o processador) um valor constante fxo.
b. Move um dado de uma posio de memria para um registrador
ou vice-versa. Isto feito para guardar os dados para executar
uma operao mais tarde ou para armazenar o resultado de uma
computao.
c. Ler ou escrever dados nos dispositivos de entrada e sada.
Calculando
a. Soma, subtrai, multiplica, ou divide os valores de dois registrado-
res, colocando o resultado em um registrador.
b. Executa operaes lgicas nos bits, executando as funes E, OU
de bits correspondentes em um par de registradores e a negao
(NO) de cada bit em um registrador.
c. Compara dois valores nos registradores (por exemplo, para consi-
derar se um maior, menor ou se so iguais).
Defnindo o Fluxo do programa
a. Faz um salto na execuo de um programa de uma outra posio
e executa as instrues nesta posio.
b. Faz um salto na execuo de um programa para outra posio se
uma determinada condio acontecer (por exemplo, um valor de
registrador).
c. Faz um salto na execuo de um programa para outra posio
mas guarda a posio da instruo seguinte como um ponto para
retornar posteriormente (para executar uma subrotina).
Alguns computadores incluem instrues complexas em seu conjun-
to de instrues. Uma nica instruo complexa faz algo que pode tomar
muitas instrues em outros computadores. Tais instrues classifcadas
como instrues que executam mltiplas etapas, so constitudas por v-
rias instrues simples. Alguns exemplos de instrues complexas so:
Salvar muitos registradores simultaneamente.
Mover grandes blocos de memria
Realizar aritmtica complexa ou de ponto futuante (por exemplo,
seno, co-seno, raiz quadrada, etc.).
Executar instrues que combinam operaes lgicas e aritmticas
com um operando na memria e outro no registrador ou entre ope-
randos na memria.
Um tipo especial de instruo complexa o SIMD (Single-Instruction
Stream Multiple-Data Stream) que realiza operaes em vetores ou, uma
operao que execute a mesma operao aritmtica em mltiplas partes
de dados ao mesmo tempo. SIMD tm a habilidade de manipular grandes
vetores e matrizes no tempo mnimo, permitindo a paralelizao de algo-
ritmos que tratam de sons, imagens e processamento de vdeo. Tecnologias
comerciais como MMX, 3DNow! e AltiVec so exemplos de instrues SIMD.
O projeto de um conjunto de instrues uma tarefa complexa. Na
histria do desenvolvimento dos computadores duas flosofas de conjunto
de instruo predominaram: o CISC e o RISC.
O primeiro foi o CISC (Complex Instruction Set Computer), ou Compu-
tador com Conjunto de Instrues Complexas, que implementa instrues
95
ARQUITETURA DE COMPUTADORES
complexas que realizam muitas funes, reduzindo o tamanho dos progra-
mas em cdigo de mquina.
Nos anos 70, entretanto, foram realizadas algumas pesquisas que
decidiram que muitas instrues do conjunto de instrues poderiam ser
eliminadas. O resultado dessa pesquisa foi o computador RISC (Reduced
Instruction Set Computer), ou Computador com Conjunto de Instrues Re-
duzido, uma arquitetura que usa um conjunto menor de instrues.
Um conjunto de instruo mais simples pode oferecer velocidades
de processamento mais elevadas, o tamanho do processador reduzido e o
consumo de potncia menor. Mesmo considerando que para realizar um
mesmo processamento, um computador RISC precisa de mais instrues, o
aumento da velocidade devido a simplicidade delas compensa. Entretanto,
um conjunto de instrues mais complexo pode melhorar o desempenho de
operaes matemticas, melhoram a efcincia do cache de memria e sim-
plifcar a programao.
Implementao
Um conjunto de instruo pode ser implementado de vrias maneiras,
isto , as formas de se implementar um mnemnico pode ser diferente para
cada arquitetura. Apesar das vrias maneiras de implementar um conjunto
de instruo todas elas podem executar os mesmos cdigos binrios. As
vrias maneiras de implementar um conjunto de instruo do diferentes
relaes custo-benefcio, desempenho, consumo de energia, tamanho, etc.
Ao projetar micro-arquiteturas, os engenheiro usam blocos prontos de
circuitos eletrnicos (projetados geralmente de forma isolada) como soma-
dores, multiplexadores, contadores, registradores, ULAs, etc. Algum tipo da
linguagem de transferncia do registradores usada para descrever a deco-
difcao e defnir a seqncia de micro-instruo para uma determinada
arquitetura fsica. H duas maneiras bsicas de construir uma unidade de
controle para executar uma instruo (embora muitos projetos usam for-
mas intermedirias desse dois modos):
a. Projetos dos primeiros computadores e de alguns computadores
RISC, o conjunto instruo completo decodifcado e seqenciado
conform a arquitetura.
b. Projetos de computadores que empregam rotinas e/ou tabelas do mi-
crocdigo escrito em ROM e/ou PLAs. Cada instruo transforma-
da e m um conjunto de micro-instrues que so ento executadas.
Recentemente existem alguns projetos de processador que compilam o
conjunto de instruo em uma RAM ou memria FLASH dentro do proces-
sador central. Como exemplo temos os processadores Rekursiv, Imsys e os
soft-processors em FPGA.
Um conjunto de instrues pode ser emulado em software atravs de
um interpretador. Naturalmente, devido interpretao dinmica, a execu-
o de programas em processador emulado mais lento do que programas
executados diretamente no prprio processador. Atualmente comum um
fabricante de processador disponibilizar emuladores em software aos pro-
gramadores de forma que eles possam desenvolver e testar programas antes
que o hardware esteja pronto.
Frequentemente os detalhes de implementao tm forte infuncia
na seleo de instrues para um determinado conjunto de instruo.
96
ARQUITETURA DE COMPUTADORES
Por exemplo, muitas implementaes de pipeline de instruo permitem
apenas uma nica leitura de memria ou escrita de memria para cada
instruo, conduzindo redefnio do conjunto de instrues. Para outros
casos, necessrio incluir um atraso para que o ciclo de instruo possa
ser compatvel com as demais instrues.
As demandas de desempenho dos Processadores de Sinal Digital (DSP
Digital Signal Processor) direcionam o desenvolvimento de novas arquite-
turas e conjunto de instrues. Por exemplo, a fm aumentar o desempenho
de fltros digitais, a instruo MAC (Multiplicar e Acumular) em um proces-
sador DSP tpico deve ser executada usando uma arquitetura Harvard que
possa buscar uma instruo e duas palavras de dados simultaneamente
em apenas um ciclo.
Nmero de Operandos
Os conjuntos de instruo podem ser categorizados pelo nmero m-
ximo de operandos (registradores, posies de memria ou valores constan-
tes) para uma determinada instruo. Alguns dos operandos podem ser da-
dos implcitos, armazenados em uma pilha ou em um registrador implcito.
Este nmero conseqentemente no o mesmo que o arity das operaes.
Apresentamos a seguir as diversas formas de organizar operandos em
um conjunto de instrues. Nos exemplos, ma, mb e mc refere endereos de
memria, e reg1, reg 2 referem-se a registradores do processador.
0 operandos: so instrues que se referem a posies fxas (pilha)
ou operaes pr-defnidas. Por exemplo: push; pop; add.
1 operando: cada instruo executa sua operao usando um nico
operando especifcado. O registrador de acumulador implcito. Por
exemplo: load ma; add mb; add reg1; store ma.
2 operandos: caso da maioria das instrues envolvendo dois ope-
rando, geralmente um de origem e outro de destino. Por exemplo:
load ma, reg1; load mb, reg2; add reg1,reg2;
3 operandos: instrues mais complexas, geralmente em mqui-
nas CISC. Podemos combinar em apenas uma instruo a leitura e
operao em uma nica instruo. Por exemplo: add reg1, mb, mc
(soma reg1, mb e mc e coloca resultado em reg1).
mais de 3 operandos: instrues usadas em algumas mquinas
CISC que permitem operaes de matrizes e vetores. Por exemplo:
mvector ma, mb, mc, 6 (multiplica vetor na posio mb e mc com 6
valores e escreve na memria ma).
1. Pesquise sobre o conjunto de instrues de um processador comercial.
Leia o manual e faa um resumo das principais categorias de instrues.
2. Suponha um processador com 3 registradores (A, B e C) e que realize
operao de soma e subtrao. Observando o conjunto de instrues de
outros processadores, crie a seu prprio conjunto de instruo conside-
rando que este processador s faz desvio com acumulador (registrador
A) igual ou diferente de zero. Defna instrues de leitura/escrita em re-
gistrador, memria e constante, operaes matemticas, desvio de fuxo.
ARQUITETURA DE COMPUTADORES
97
Captulo 2
Sistema Operacional
Um sistema operacional (SO) um programa bsico que estabelece a
relao entre o hardware e o usurio, e responsvel pela gerncia e a coor-
denao das atividades de compartilhamento dos recursos do computador
que atua como um hospedeiro para aplicaes para o usurio. Uma das
fnalidades de um sistema operacional assegurar o correto funcionamento
dos aplicativos em relao ao hardware. Isto alivia programas aplicativos
de ter que controlar detalhes de uso do hardware e compartilhamento de
recurso entre mltiplas aplicaes, facilitando a escrita de aplicaes.
Quase todos os computadores (desde supercomputadores, computado-
res de mesa, telefones celulares, vdeo games), eletro-domstico (mquinas
de lavar loua, mquinas de lavar roupa) e reprodutores de mdia (DVD,
VCR) usam um sistema operacional de algum tipo. As funes so imple-
mentadas nos diversos sistemas operacionais de acordo com as aplicaes
especfcas de cada equipamento.
Apesar de Sistema Operacional ser um assunto extenso e que no
objetivo desse curso, mostraremos aqui apenas a relao entre um Sistema
Operacional com a arquitetura do computador.
Servios de um Sistema Operacional
Os sistemas operacionais oferecem um nmero de servios aos pro-
gramas aplicativos e aos usurios. As aplicaes acessam esses servios
com as Interface de Programao de Aplicativos (API - Application Program-
ming Interface) ou chamadas de sistemas (system call). Invocando essas
interfaces, a aplicao pode solicitar um servio ao sistema operacional,
passar parmetros e receber os resultados da operao.
Os usurios podem tambm interagir com o sistema operacional com
algum tipo da interface do software (SUI Software User Interface) como
comandos usando a linha de comando (CLI Command Line Interface) ou
usando uma interface grfca (GUI - Graphical User Interface). Para com-
putadores pessoais, a interface geralmente parte do sistema operacional
(por exemplo, MS-Windows), mas em sistemas operacionais multi-usuarios
de grande porte a interface geralmente um programa aplicativo fora do sis-
tema operacional, permitindo vrias interfaces de interao (por exemplo,
Unix e suas diversas interfaces, sh, bash, csh, etc).
Interao do Sistema Operacional com o Hardware
Mostramos a seguir as principais funes de um Sistema Operacional
que fazem a interao com o hardware.
98
ARQUITETURA DE COMPUTADORES
Execuo de programa
O Sistema Operacional faz a mediao entre uma aplicao e o har-
dware do computador. Ele tambm permite ao usurio executar funes de
gerenciamento e manuteno do sistema computacional. Executar um pro-
grama envolve a criao de um processo pelo Sistema Operacional que o ini-
cia atribuindo um espao de memria e de outros recursos. O SO tambm
estabelece uma prioridade para o processo (quando o SO multitarefa),
determina o cdigo do programa de carregamento na memria, e executa o
programa propriamente dito. O programa ento interage com o usurio ou
com outros dispositivos alm de executar a funo pretendida.
Interrupes
As interrupes so ferramentas importantes para os sistemas opera-
cionais, porque fornecem uma maneira efcaz para que o sistema operacio-
nal interaja com o hardware. A interrupo consegue informar ao sistema
operacional as vrias fontes de entrada dos eventos que exigem uma ao.
A programao baseada em interrupo suportada pela maioria de pro-
cessadores atuais. As interrupes fornecem um computador uma maneira
automtica de executar um cdigo especfco em resposta a um determina-
do evento.
Quando uma interrupo recebida, o hardware do computador sus-
pende automaticamente o que programa est executando atualmente, guar-
da seu status atual, e desvia a execuo do cdigo para o programa asso-
ciado previamente a essa interrupo. Em sistemas operacionais modernos,
as interrupes so gerenciadas pelo ncleo do sistema operacional. As in-
terrupes podem vir do hardware de computador ou de algum programa
em execuo.
Quando um dispositivo de hardware provoca uma interrupo o n-
cleo do sistema operacional decide como tratar esse evento, geralmente exe-
cutando algum cdigo de processamento. Quando ocorrem vrias interrup-
es o funcionamento depende da prioridade da interrupo (por exemplo:
uma pessoa geralmente atende primeiramente a um alarme de incndio
antes de atender um telefone). O processamento de interrupes de har-
dware uma tarefa que geralmente delegada a dispositivo de software,
que podem ser parte do ncleo do sistema operacional, parte de um outro
programa, ou ambos.
Um programa pode tambm provocar uma interrupo no sistema
operacional. Se um programa deseja acessar um dispositivo de hardware
por exemplo, pode interromper o ncleo do sistema operacional, que faz com
que o controle seja passado de volta ao ncleo aps o seu acesso. O ncleo
processar ento o pedido.
Modo protegido e Modo supervisor
A maioria dos processadores modernos dispe de operao dupla da
modalidade: modo protegido e modo supervisor. Esses modos permitem que
determinadas funes do processador central sejam controladas e alteradas
apenas pelo ncleo do sistema operacional.
Entretanto, esse termo usado geralmente na teoria de sistema ope-
racional para referir todas as modalidades que limitam as capacidades dos
programas que funcionam nessa modalidade, fornecendo funcionalidades
Interrupo uma tc-
nica que permite e inter-
rupo de um programa
de computador e desvia o
controle da UCP para tra-
tar de um evento espor-
dico que necessuta de tra-
tamento imediato. Como
exemplo de aes que
precisam de tratamento
de interrupo citamos a
digitao de um teclado.
99
ARQUITETURA DE COMPUTADORES
como o endereamento de memria virtual e limitando o acesso ao hardware
a uma maneira defnida por um programa que funciona no modo supervi-
sor. Essas modalidades existem em processadores Intel x86, nos supercom-
putadores, minicomputadores, e na maioria dos sistemas multi-usurios.
Quando um computador comea a funcionar, primeiramente est fun-
cionando automaticamente no modo supervisor. Os primeiros programas a
funcionar no computador, como a BIOS, bootloader e o sistema operacional
tm acesso ilimitado ao hardware
Na modalidade protegida, os programas podem ter o acesso a um con-
junto maior de instrues do processador. Um programa de usurio pode
deixar a modo protegido apenas chamando uma interrupo, fazendo com
que o controle seja passado de volta ao ncleo. Desta maneira o sistema
operacional pode manter o controle exclusivo sobre todos os programas que
tem acesso ao hardware e memria.
Gerncia de memria
Dentre outras coisas, o ncleo do sistema operacional multitarefa deve
ser responsvel por controlar toda a memria de sistema que usada pelos
programas. O sistema operacional deve assegurar que um programa no
interfra com a memria j usada por um outro programa. Como os progra-
mas compartilham o mesmo conjunto de memria, cada programa deve ter
o acesso apenas a sua memria.
A gerncia de memria cooperativa, usada pelos sistemas operacio-
nais mais antigos, supe que todos os programas fazem o uso voluntrio
da memria, e cada um tem a responsabilidade de no excede a memria
alocada para ele. No entanto, os programas contm frequentemente erros
que podem escrever fora da rea inicialmente alocada, causando erro de
execuo nos demais programas. Se um programa falhar pode causar a so-
brescrita de memria usada por um ou vrios programas. Outro problema
mais grave a execuo de programas maliciosos, ou vrus que podem alte-
rar a memria de outros programas ou podem afetar a operao do prprio
sistema operacional.
A proteo de memria permite o ncleo do sistema operacional de
limitar o acesso dos processos memria do computador. Existem vrios
mtodos de proteo de memria, os principais so: a segmentao da me-
mria e a paginao. Todos os mtodos exigem algum nvel de suporte do
hardware que no existe em todos os computadores. Esse dispositivo co-
nhecido como MMU (Memory Management Unit)
Na segmentao e na paginao, determinados registros de modo pro-
tegido do processador central que faz com que um programa apenas alcance
um determinado endereo de memria. As tentativas de alcanar outros en-
dereos provocaro uma interrupo que indica que o processador central
entre no modo supervisor, fazendo com que o ncleo do sistema operacional
tome uma medida de correo. Essa ocorrncia chamada uma violao de
segmentao, e como geralmente difcil resolver o problema de programas
diferentes, o resultado fnal consiste no encerramento do programa mal
comportado e relatar o erro.
100
ARQUITETURA DE COMPUTADORES
Memria Virtual
O uso do endereamento de memria virtual (tal como a paginao ou
a segmentao) signifca que o ncleo do sistema operacional pode defnir
a memria que cada programa pode usar em um determinado momento,
permitindo que o sistema operacional gerencie o uso de memria para ml-
tiplas tarefas.
Se um programa tentar acessar uma memria que no est em sua
escala de memria permitida, mas todavia a memria no foi alocada para
outro programa, o ncleo do sistema operacional ser interrompido na
mesma maneira quando um programa exceder sua memria alocada. Esse
tipo de falha chamado falha de pgina (page fault).
Quando o ncleo detectar uma falha que de pgina ajustar o ta-
manho da memria virtual usada por esse programa, concedendo-lhe o
acesso memria solicitada. Isto d ao ncleo a capacidade de aproveitar
ao mximo a memria disponvel Em sistemas operacionais modernos, as
pginas de memria que so menos usadas podem temporariamente ser
armazenada no disco ou em outros meios de armazenamento para liberar
espao na memria principal para ser utilizado por outros programas. Isso
chamado swap, porque uma rea da memria pode ser usada pelos vrios
programas, e o que essa rea de memria pode ser salva ou recuperada do
disco sob demanda.
Multtarefa
A multitarefa refere a caracterstica de executar vrios programas in-
dependentes simultaneamente no mesmo computador, dando a impresso
que est executando varias tarefas ao mesmo tempo. Tcnica mais usada
a partilha de tempo, isto , cada programa usa uma parte do tempo do
computador para executar a tarefa.
O ncleo do sistema operacional contem uma funo de software cha-
mada de escalonador que determina quanto tempo cada programa gastar
na execuo do programa, e quais controles de execuo deve ser passado
aos programas. O controle passado a um processo pelo ncleo, que per-
mite o acesso do programa ao processador central e memria. Em um
controle de tempo nos computadores iniciais retornado ao ncleo atravs
de algum mecanismo, de modo que um outro programa possa ser permitido
usar o processador central. Esta passagem assim chamada do controle en-
tre o ncleo e as aplicaes chamada um comutador de contexto.
Um modelo de gerenciamento da alocao de tempo aos programas
dos sistemas operacionais mais antigos chamado multitarefa cooperati-
va. Neste modelo, quando o controle passado a um programa pelo ncleo
do sistema operacional, ele pode executar o tempo que precisar antes de
retornar o controle ao ncleo. Isto signifca que um programa malicioso ou
funcionando mal pode, no somente impedir que outros programas usem
o processador central, mas pode bloquear o sistema inteiro em um loop
infnito.
A flosofa do sistema multitarefa preemptivo aquela de assegurar
que todos os programas usem um tempo do processador central limitado
pelo ncleo do sistema operacional. Isto implica que todos os programas de-
vem ser limitados em quanto tempo so permitidos usar os recursos do pro-
cessador central sem ser interrompido. Os sistemas operacionais modernos
empregam uma interrupo programada. Um temporizador funcionando no
101
ARQUITETURA DE COMPUTADORES
modo protegido ajustado pelo ncleo do sistema operacional que provoca
um retorno ao modo supervisor depois que o tempo especifcado decorrer,
garantindo que o sistema no seja bloqueado.
Driver de dispositvo
Um driver de dispositivo um tipo especfco de software de compu-
tador desenvolvido para permitir a interao do Sistema Operacional (e os
aplicativos) com dispositivos de hardware. Tipicamente ele faz a ligao com
o subsistema especfco do barramento ou de comunicaes do computador
no qual o dispositivo de hardware est conectado, fornecendo comandos,
transmitindo e recebendo dados do dispositivo, e na outra extremidade, co-
municando com o sistema operacional e as aplicaes de software.
O objetivo chave de um driver de dispositivo abstrao. Cada modelo
de hardware (mesmo dentro da mesma classe de dispositivo) diferente,
possui comando e modelos de dados diferentes. A cada nova verso de har-
dware liberado pelos fabricantes, por motivo de desempenho ou funcionali-
dade, exigem novos e, talvez, diferentes comandos. Os computadores e seus
sistemas operacionais no podem estar preparados para saber controlar
todos os dispositivos atuais e futuros.
Para resolver este problema, os desenvolvedores de sistemas opera-
cionais estabelecem uma forma padronizada para acessar as funes dos
dispositivos de hardware. Os fabricantes de um determinado hardware,
ento, fazem um programa especfco que traduz os comandos e funes
padronizadas pelo desenvolvedor do sistema operacional para os comandos
especfcos do seu hardware. Assim, qualquer novo hardware com o seu
respectivo driver de dispositivo (para um determinado sistema operacional)
pode funcionar plenamente em um sistema operacional.
Nesta unidade apresentamos os diversos softwares usados em um com-
putador e sua interao com a arquitetura de computador. Inicialmente
mostramos os conceitos de conjunto de instrues e como as instrues
executam o processamento em um computador. Em seguida apresentamos
os conceitos bsicos de um sistema operacional e sua interao com a ar-
quitetura do computador.
1. Lendo as funes do sistema operacional, relacione as funes relativas
a um sistema operacional monousurio e monotarefa (executa uma ta-
refa por vez).
2. Pesquise sobre a histria dos Sistemas Operacionais e relacione as prin-
cipais melhorias que so utilizadas at hoje.
102
ARQUITETURA DE COMPUTADORES
3. Um sistema operacional tem total acesso ao hardware de computa-
dor. Como voc poderia melhorar a segurana para evitar incidente de
segurana?

Conjunto de Instrues (em ingls)
http://en.wikipedia.org/wiki/Instruction_set
Conjunto de Intrues do microcontrolador 8051 (em ingls)
http://www.win.tue.nl/~aeb/comp/8051/instruction-set.pdf
Apostila sobre Sistemas Operacionais publicada na revista RITA
(em portugus)
http://www2.unitins.br/BibliotecaMidia/Files/Documento/BM_6335
36494556679022sistemasoperacionais.pdf
Artigo sobre Sistemas Operacionais (em portugus)
http://informatica.hsw.uol.com.br/sistemas-operacionais.htm
Sistemas Operacionais (em ingls)
http://en.wikipedia.org/wiki/Operating_system
WILLIAM STALLINGS. Arquitetura e Organizao de Computadores 5
Ed. Editora: Prentice Hall, 2002. Apresenta, da maneira clara e abrangente,
a natureza e as caractersticas dos sistemas de computao modernos. De
um modo geral, concentra-se basicamente em exemplos de diferentes m-
quinas, a maioria pertencente famlia Pentium II da Intel e PowerPC. En-
quanto o Pentium II um computador que possui um conjunto complexo de
instrues (CISC), o PowerPC, por sua vez, um computador com um con-
junto reduzido de instrues (RISC). Apesar das particularidades de cada
um, ambos tratam dos princpios de arquitetura superescalar e fornecem
suporte a confguraes com mltiplos processadores. O livro apresenta
inicialmente uma viso geral do que ser abordado ao longo dos captulos.
Nas partes subseqentes, trata do sistema de um computador (seus compo-
nentes, ou seja, processador, memria, mdulos de EIS e interconexes en-
tre esses componentes), da unidade de processamento central (por exemplo,
aspectos da arquitetura da CPU e questes relativas a sua organizao), da
unidade de controle (sua funo e sua implementao utilizando micropro-
gramao) e, fnalmente, da organizao paralela (examina algumas das
questes envolvidas em organizaes com mltiplos processadores e com
processamento vetorial.
103
ARQUITETURA DE COMPUTADORES
JOHN L. HENNESSY & DAVID A. PATTERSON. Arquitetura de Computa-
dores: Uma Abordagem Quantitativa 3 Ed. Editora: Campus, 2003. Um
dos principais livros da rea de Arquitetura de Computadores, considerado
durante mais de uma dcada leitura essencial por interessado em projeto
de computadores. Os autores apresentam seu mtodo exclusivo de anlise
quantitativa, empregando-o no apenas no projeto de mquinas de mesa de
alto desempenho, mas tambm no projeto de sistemas incorporados e ser-
vidores. Eles ilustram seus princpios com projetos de todos esses trs do-
mnios, incluindo exemplos de eletrnica de consumo, tecnologias de multi-
mdia e da Web, e ainda equipamentos de informtica de alto desempenho.
ALBERT S. WOODHULL & ANDREW S. TANENBAUM. Sistemas Operacio-
nais: Projeto e Implementao 3 Ed. Editora: Artmed, 2008. Apresenta
um texto introdutrio sobre os sistemas operacionais mais usados no mun-
do. Foi atualizado para refetir os avanos do MINIX 3, verso mais simples,
mais confvel e mais completo, e foram adicionados e aprofundados aspec-
tos relacionados a segurana e confabilidade em sistemas de computao.
Oferecendo um timo equilbrio entre teoria e prtica, este livro continua
sendo a melhor fonte para todos que buscam entender como os sistemas
operacionais funcionam.
ANDREW S. TANENBAUM. Sistemas Operacionais Modernos 2 Ed. Edi-
tora: Prentice-Hall, 2009. Como tudo o que se refere a computadores, os
sistemas operacionais evoluem a passos largos. essa evoluo que abre
caminho para aplicativos mais poderosos e tem aumentado dia a dia a pre-
sena de computadores em nossas vidas. Este livro a chave para entender
desde a histria e os fundamentos dos sistemas operacionais at os mais
recentes avanos tecnolgicos na rea. Segurana de computadores, siste-
mas operacionais multimdia e projeto de sistemas operacionais so alguns
dos temas apresentados. O livro ainda descreve em detalhes os principais
sistemas operacionais em uso, entre os quais o Linux, o Unix e o Windows
2000. Com estrutura didtica e linguagem bem-humorada esse livro indi-
cado como livro-texto e como referncia para profssionais da rea.
104
ARQUITETURA DE COMPUTADORES
Unidade
Objetvos:
Nesta unidade vamos apresentar alguns tpicos avanados em Arquitetura
de Computadores. So tcnicas modernas que tem como objetivo aumentar o
desempenho dos computadores construindo novas alternativas arquiteturais. A
primeira tcnica o Pipeline, onde unidades de processamento diferentes realizam
operaes em srie da mesma forma que uma linha de produo. A outra tcnica
trata de processamento paralelo, envolvendo todas as formas de paralelizar o
processamento de instrues e dados para aumentar o desempenho dos sistemas.
Tpicos avanados em
arquitetura de computadores
5
ARQUITETURA DE COMPUTADORES
107
Captulo 1
Pipeline
O termo em ingls pipeline signifca encanamento, tubulao. Na
computao, um pipeline um conjunto de elementos que processam dados
conectados em srie, de modo que a sada de um elemento seja a entrada do
seguinte. A ligao dos mdulos se assemelha a uma ligao de canos para
formar uma tubulao, por isso o nome pipeline. Por falta de uma traduo
para portugus que tenha consenso na comunidade, usaremos o termo ori-
ginal pipeline.
Introduo
O processamento nos elementos de um pipeline so executados para-
lelamente de forma que todos terminem no mesmo tempo. O pipeline se as-
semelha a uma linha de produo onde cada unidade executa a sua funo
e passa para a unidade seguintes. Para corrigir as diferenas no tempo de
processamento em cada unidade, geralmente usamos algum dispositivo de
armazenamento entre os elementos.
Tipos de Pipeline
Os pipelines em um computador podem ser:
Pipeline de instruo, tais como o pipeline clssico RISC, que so
usados nos processadores para sobrepor a execuo de instrues
mltiplas com os mesmos circuitos. Os circuitos so divididos ge-
ralmente acima em estgios, incluindo: a busca de instruo, a de-
codifcao de instruo, a execuo de operao, e o salvamento
em registrador, onde cada estgio processa uma instruo diferente
e seqencial de cada vez.
Pipelines grfcos, encontrados na maioria de placas grfcas, que
consistem em unidades aritmticas mltiplas, ou processadores es-
pecfcos, que executam os vrios estgios das operaes de ren-
derizao grfca comuns (projeo de perspetiva, corte de janela,
clculo de cor e luz, renderizao, etc.).
Pipelines de software, consiste nos mltiplos processos de software
de modo que o fuxo de sada de um processo seja encaminhado
automaticamente para o fuxo de entrada do seguinte. Os pipelines
de Unix so a aplicao clssica deste conceito.
Conceitos
O pipeline um conceito natural na vida quotidiana, por exemplo,
em uma linha de produo. Considere a montagem de um carro, que deter-
minadas etapas na linha ocorrem isoladamente: instalar o motor, montar
108
ARQUITETURA DE COMPUTADORES
a carroceria, e instalar as rodas (nessa ordem, com etapas intermedirias
arbitrrias). Um carro na linha de produo pode ter somente uma das trs
etapas executadas em um determinado instante. Depois que o carro tem
seu motor instalado, move-se para ter sua carroceria montada, deixando o
mdulo de instalao do motor disponveis para o carro seguinte. O primeiro
carro move-se ento para a instalao da roda, o segundo carro para a mon-
tagem da carroceria, e um terceiro carro comea a ter seu motor instalado.
Se a instalao do motor toma 20 minutos, a montagem da carroceria toma
5 minutos, e a instalao da roda toma 10 minutos, o tempo para terminar
todos os trs carros quando somente um carro pode ser montado individu-
almente tomaria 105 minutos. Por outro lado, usando a linha de produo,
o tempo total para terminar todos os trs 75 minutos. Neste momento, os
carros adicionais sairo da linha de produo a cada 20 minutos.
O exemplo da linha de produo mostra que o pipeline no diminui o
tempo de processamento de uma nica instruo, que permanece a mesma,
mas aumenta a capacidade de processamento total do sistema ao processar
em seqncia um conjunto de dados. Um pipeline longo conduz ao aumento
da latncia - o tempo exigido para que um sinal propague atravs de um
pipeline cheio.
Um sistema de pipeline exige tipicamente mais recursos (elementos
do circuito, unidades de processamento, memria de computador, etc.) do
que um que executa uma instruo de cada vez, porque seus estgios no
podem reusar os recursos de um estgio antecedente. Alm disso, o pipeline
pode aumentar o tempo total para que uma instruo individual termine.
Um ponto importante no projeto de um pipeline o balanceamento
dos diversos estgios do pipeline. Voltando ao exemplo da linha de produo
de carros, se a instalao do motor levasse 15 minutos em vez de 20 minu-
tos e a instalao das rodas levasse 15 minutos em vez de 10 minutos, ape-
sar do tempo de produo (tempo entre inicio e fm da montagem) continuar
sendo 35 minutos, a linha de produo poderia entregar um carro a cada
15 minutos, em vez de 20 minutos na organizao inicial.
Outra questo importante quando ao projeto de pipeline a colocao
de memrias (buffers) entre os estgios do pipeline para compensar os tem-
pos de processamento irregulares ou quando dados podem ser criados ou
destrudos ao longo do pipeline.
Implementaes de Pipeline
Existem trs categorias de implementao de pipeline: pipeline sncro-
no com buffer, pipeline assncrono com buffer e pipeline sem buffer.
Pipeline Sncrono com Bufer
Os microprocessadores convencionais so circuitos sncronos, assim
natural a construo de pipelines sncronos. Nestes pipelines, um regis-
trador introduzido entre dois estgios do pipeline, e sequenciados com um
relgio global. A ciclo de relgio utilizado ajustada para ser maior tempo de
atraso entre estgios do pipeline, de modo a garantir que no fnal do ciclo de
relgio, todos os dados do pipeline estaro prontos para o estgio seguinte
do pipeline.
109
ARQUITETURA DE COMPUTADORES
Pipeline Assncrono com Bufer
Os pipelines assncronos com buffer so usados em circuitos assn-
cronos e tm seus registradores cronometrados de forma assncrona. Em
linhas gerais, eles usam um comando de requisio/reconhecimento do sis-
tema, onde cada estgio pode detectar quando seu processamento fna-
lizado. Quando um estgio fnalizado e o estgio seguinte lhe emitiu um
sinal do requisio, o estgio emite um sinal de reconhecimento para o
estgio seguinte, e um sinal do requisio ao estgio anterior. Quando um
estgio recebe um sinal de reconhecimento, ele envia um sinal para seu
registrador da entrada receber os dados do estgio anterior e process-lo.
Pipeline sem Bufer
Os pipelines sem buffer, chamados pipelines de ondas, no tm re-
gistradores (buffers) entre seus estgios. Nesse caso, os atrasos de cada
estgio do pipeline so equilibrados de modo que, para cada estgio, a
diferena entre a estabilizao dos dados da sada do primeiro estgio e
a estabilizao dos dados de entrada do ltimo estgio seja minimizado.
Assim, o fuxo de dados nesse pipeline segue em ondas, onde cada onda
mantida o menor tempo possvel.
A taxa mxima que os dados podem entrar em um pipeline sem buffer
determinada pela diferena mxima no atraso entre a primeira parte dos
dados que saem do pipeline e a ltima parte de dados que entram. Como
no h buffers ao longo do pipeline, os pipelines sem buffers conseguem
obter as maiores taxas de processamento.
Pipeline de Instrues
Um pipeline da instruo uma tcnica usada em projetos de com-
putadores e de outros dispositivos eletrnicos digitais para aumentar sua
capacidade de processar instrues (o nmero de instrues que podem ser
executadas em uma unidade de tempo).
A idia fundamental separar o processamento de uma instruo em
uma srie de etapas independentes, com armazenamento no fm de cada
etapa. Isto permite que os circuitos do controle do computador consigam
emitir instrues de controle na taxa de processamento da etapa a mais
lenta, que ainda muito mais rpida do que o tempo necessrio para exe-
cutar todas as etapas. O termo pipeline refere-se ao fato de que cada etapa
est entregando os dados para a etapa seguinte (como a gua), e cada etapa
conectada a seguinte (como as ligaes de uma tubulao).
A origem do pipeline originou-se provavelmente no projeto ILLIAC II
da IBM, que props unidades independentes para processar as etapas de
execuo de uma instruo: buscar instruo, decodifcar e executar.
A maioria de processadores modernos so sincronizados por um pul-
sos de relgio. O processador consiste internamente em lgica e memria
(fip-fops). Quando o sinal de relgio dispara, os fip-fops recebem uma
instruo nova e a lgica exige um perodo de tempo para decodifcar a nova
instruo. Ento o impulso de relgio seguinte chega e os fip-fops recebem
outra vez sua nova instruo, e assim por diante. Quebrando a lgica em
partes menores e introduzindo fip-fops entre as partes de lgica, o atraso
que a lgica impactava no tempo fnal de sada reduzido. Desta maneira
110
ARQUITETURA DE COMPUTADORES
o perodo de pulso de relgio pode ser reduzido. Por exemplo, o pipeline de
processador RISC quebra o processamento de instruo em cinco estgios
com um conjunto de fip-fops entre cada estgio.
a. Busca de Instruo
b. Decodifca instruo e busca operando (registrador)
c. Executa instruo
d. Acessa memria
e. Escreve de volta o Registrador
Quando um programador (ou o compilador) escrevem o cdigo exe-
cutvel, faz a suposio que cada instruo seguinte est executada aps
a execuo da instruo anterior. Esta suposio invalidada pelo pipeli-
ne, porque a instruo seguinte vai comear a ser processada antes que a
instruo anterior termine. Quando isso ocorre faz com que um programa
se comporte incorretamente, a situao est sabida como uma bolha (ha-
zard). Existem vrias tcnicas para resolver tais como incluir uma pausa no
processamento para aguardar a concluso do processamento da instruo
adiante.
Uma arquitetura sem pipeline inefciente porque alguns componen-
tes do processador (mdulos) fcam em repouso enquanto um outro mdulo
estiver ativo durante o ciclo de instruo. O pipeline no elimina comple-
tamente o tempo inativo em um processador, mas executar paralelamente
a funo daqueles mdulos inativos melhora signifcativamente a execuo
do programa.
Os processadores com pipeline so organizados em estgios semi-in-
dependente que podem trabalhar separados. Cada estgio organizado em
forma de uma corrente, isto , a sada de cada estgio alimentada a entra-
da de um outro estgio at que o trabalho esteja feito. Esta organizao do
processador no reduz o tempo total de execuo de uma nica instruo,
mas permite que o tempo total de processamento de um conjunto de instru-
es subsequentes seja reduzido signifcativamente.
Um pipeline mais profundo signifca que h mais estgios no pipeline,
e conseqentemente, menos portas lgicas em cada estgio do pipeline. Isto
acarreta geralmente que a freqncia do processador pode ser aumentada,
assim como o tempo do ciclo de relgio pode ser reduzido. Isto acontece por-
que h poucos componentes em cada estgio do pipeline, assim o atraso de
propagao diminudo cada estgio.
Infelizmente, nem todas as instrues so independentes. Em um pi-
peline simples, terminar a execuo de uma instruo pode exigir 5 est-
gios. Para operar no mximo desempenho, este pipeline precisar executar
4 instrues subseqentes independentes enquanto a primeira instruo
no terminar. Se 4 instrues que no dependem do resultado da primeira
instruo no esto disponveis, a lgica de controle do pipeline deve intro-
duzir uma parada ou a perda de um ou mais ciclos de relgios no pipeline
at que a dependncia esteja resolvida. Felizmente, tcnicas como otimi-
zaes na compilao podem reduzir signifcativamente os casos onde a
parada exigida. Enquanto o pipeline pode aumentar o desempenho de um
processador sobre uma arquitetura sem o pipeline por um fator do nme-
ro de estgios (supondo que a frequncia de relgio seja compatvel com o
nmero de estgios), na realidade, a maioria do cdigo usado no permite
essa otimizao ideal.
111
ARQUITETURA DE COMPUTADORES
1. Pesquise os diversos tipos de pipeline implementados em processadores.
2. Pesquise sobre um processador de sinais digital e identifque funes
onde um pipeline poderia ajudar na melhoria do desempenho.

ARQUITETURA DE COMPUTADORES
112
Captulo 2
Processamento Paralelo
A computao paralela uma tcnica da computao em que muitos
clculos podem ser realizados simultaneamente, baseados no princpio que
os grandes problemas podem normalmente ser dividido em problemas me-
nores, que so resolvidos simultaneamente (paralelamente). H diversas
formas diferentes de computao paralela: nvel de bit, nvel da instruo,
nvel de dados e paralelismo de tarefas.
Introduo
O paralelismo foi empregado por muitos anos, principalmente na com-
putao de alto desempenho, mas o interesse tem crescido ultimamente
devido s limitaes fsicas dos semicondutores que tem impedido o au-
mento da freqncia nos circuitos integrados. Outra limitao fsica que a
temperatura e consumo de energia crescem exponencialmente enquanto o
desempenho cresce linearmente, tornando o aumento das taxas de relgio
um problema. Como o consumo de energia (e conseqentemente a gerao
de calor) por computadores tm se transformado em um desejo nos ltimos
anos, a computao paralela transformou-se no paradigma dominante de
arquitetura de computadores para o aumento do desempenho, principal-
mente sob a forma dos processadores com mltiplos ncleos (multicore).
Os computadores paralelos podem ser classifcados de acordo com o
nvel em que o hardware suporta o paralelismo. Os computadores que usam
processadores de mltiplos ncleos (multi-core) que tm elementos do pro-
cessamento mltiplo dentro de uma nica mquina. Por outro lado, cluster,
MPPs (Massive parallel processing), e as grades computacionais usam com-
putadores mltiplos para trabalhar em uma mesma tarefa. As arquiteturas
paralelas especializadas podem ser usadas ao lado dos processadores tra-
dicionais para acelerar tarefas especfcas.
Os programas para computao paralela so mais difceis de escrever
do que os programas sequenciais, porque a simultaneidade introduz diver-
sas novas classes de erros de software, como condies corrida. Comunica-
o e sincronizao entre subtarefas diferentes so tipicamente os grandes
obstculos para se obter um bom desempenho de programa paralelo.
O aumento de desempenho de programas paralelo so governados
pela Lei de Amdahl.
Lei de Amdahl
Em princpio, o aumento do desempenho de sistemas paralelizados
deveria ser linear, dobrando o desempenho quando dobramos o nmero de
processadores. No entanto, para trabalhar em paralelo necessrio com-
partilhar alguns recursos (como memria), e muito poucos algoritmos para-
113
ARQUITETURA DE COMPUTADORES
lelos conseguem timo desempenho. A maioria deles conseguem um cresci-
mento aproximadamente linear para um pequeno nmero de elementos de
processamento, que reduz o incremento com o aumento de processadores
at estabilizar com um valor constante quando usamos um grande nmero
de elementos de processamento.
O potencial de incremento de desempenho de um algoritmo em uma
plataforma da computao paralela dado pela lei de Amdahl, formulada
originalmente por Gene Amdahl nos anos 60. Essa equao indica que uma
parcela pequena do programa que no pode paralelizada limitar o au-
mento da capacidade geral do sistema paralelo. Qualquer grande problema
matemtico ou de engenharia consistir tipicamente em diversas partes
paralelizaveis e em diversas partes no paralelizveis (seqenciais). Esse
ganho expresso pela equao:

Onde, S o aumento de desempenho do sistema e P o percentual do
algoritmo que pode ser paralelizado.
A Lei de Amdahl pode ser melhor visualizada atravs do grfco mos-
trado na fgura abaixo. Nele podemos notar que, se um algoritmo pode ape-
nas ser paralelizvel 90%, o desempenho mximo que podemos conseguir
10 vezes, no importando a quantidade de processadores usados.

Figura 46 Grfco demonstrando a Lei de Amdahl
Taxonomia de Flynn
Michael J. Flynn criou um dos sistemas de classifcao para compu-
tadores paralelos e seqenciais e programas, conhecidos como a Taxonomia
de Flynn. Ela classifca programas e computadores quanto ao modo de exe-
cutar instrues de a busca de dados, sejam elas individuais ou mltiplas.
114
ARQUITETURA DE COMPUTADORES
Instruo nica Instruo Mltipla
Dado nico SISD MISD
Dado Mltiplo SIMD MIMD
Figura 47Taxonomia de Flynn
A classifcao SISD (single-instruction-single-data) indica Instruo-
nica-Dado-nico representa um programa inteiramente seqencial. A
classifcao SIMD (single-instruction-multiple-data) indica Instruo-ni-
ca-Dados-mltiplos anloga a fazer uma mesma operao repetidamente
sobre um grande nmero de dados. Isto feito geralmente em aplicaes
de processamento de sinais, como tratamento de som e imagem. A cate-
goria MISD (multiple-instruction-single-data) indica Instrues-mltiplas-
Dados-nicos uma classifcao raramente usada. Alguns pesquisadores
consideram o pipeline um exemplo dessa categoria, mas no consenso. A
classifcao MIMD (multiple-instruction-multiple-data) signifca Mltiplas-
instrues-mltiplos-dados a mais comum e que se aplica a maioria dos
programas paralelos.
De acordo com alguns pesquisadores como David A. Patterson e John
L. Hennessy, a maioria das mquinas so hbridas com essas categorias,
mas este modelo clssico sobreviveu porque simples, fcil de compreender,
e d uma ao estudante uma primeira viso dos sistemas paralelos.
Arquiteturas de Paralelismo em Hardware
Os conceitos de paralelismos podem ser implementados de diversas
maneiras, conforme a arquitetura existente e aos objetivos especfcos da
arquitetura. Apresentaremos a seguir vrias tcnicas usadas para imple-
mentar o paralelismo em hardware, no dizendo que sejam exclusivas. Na
verdade, a maioria das arquiteturas paralelas usa uma combinao de duas
ou mais tcnicas.
Memria e Comunicao
A memria central em um computador paralelo memria uma com-
partilhada (compartilhada entre todos os elementos de processamento em
um nico espao de endereamento), ou memria distribuda (em que cada
elemento de processamento tem seu prprio espao de endereamento lo-
cal). A memria distribuda refere-se ao fato de que a memria est distribu-
da logicamente, mas implica normalmente que est distribuda fsicamen-
te, isto , fsicamente localizada em placas e unidades separadas. Memria
compartilhada distribuda e virtualizao de memria combinam as duas
tcnicas, onde o elemento de processamento tem sua prpria memria local
e acesso memria compartilhada em processadores no-locais. Os aces-
sos memria local so tipicamente mais rpidos do que acessos memria
compartilhada no-local.
Arquitetura NUMA
A arquitetura NUMA (Non-Uniform Memory Access), ou Acesso Me-
mria No Uniforme, usa a idia que os processadores em um diretrio
podem alcanar a memria desse diretrio com menos latncia do que a me-
115
ARQUITETURA DE COMPUTADORES
mria de acesso na memria de outro processador (diretrio). Apresentamos
a seguir um diagrama de um sistema com arquitetura NUMA.

Figura 48 Diagrama representando uma Arquitetura NUMA
As arquiteturas de computadores em que cada elemento da mem-
ria central pode ser acessado com uma latncia e taxa de leitura/escreita
iguais so conhecidas como sistemas de Acesso Uniforme Memria (UMA
- Uniform Memory Access). Tipicamente, isso pode ser conseguido somente
por um sistema de memria compartilhada, em que a memria no est
distribuda fsicamente. Um sistema que no tenha esta propriedade co-
nhecido como uma arquitetura Acesso Memria No Uniforme (NUMA).
Os sistemas de memria distribudos sempre tm o acesso NUMA.
Os sistemas de computadores monoprocessados geralmente empre-
gam pequenas memrias cache rpidas situadas perto do processador, que
vo armazenar cpias provisrias de valores da memria (instruo e dado)
prximo ao processador no sentido fsico e lgico. Os sistemas de compu-
tadores paralelos tm difculdades com caches que podem armazenar o
mesmo valor em mais de uma posio de memria, com a possibilidade de
execuo incorreta de programa. Estes computadores exigem um sistema
para manter a coerncia dos caches, que acompanhe a mudana nos va-
lores guardados no cache para atualizar na memria principal e nos de-
mais caches, assegurando assim, a correta execuo dos programas. O bus
snooping (escuta do barramento) um dos mtodos mais comuns para
manter coerentes os valores de cache que esto sendo alterados. Projetar
grandes sistemas de capacidade elevada para manter coerncia dos caches
um problema muito difcil na rea de arquitetura de computadores. Em
conseqncia, as arquiteturas de computadores com memria compartilha-
da no tem escalabilidade que podemos obter com os sistemas de memria
distribuda.
A comunicao processador-processador e a comunicao processa-
dor-memria podem ser implementadas no hardware em diversas manei-
ras, incluindo comunicao atravs da memria compartilhada, matriz de
comutao, barramento compartilhado ou de uma rede da interconexo, e
um conjunto grande de topologias compreendendo estrela, anel, rvore, o
hipercubo ou malha multidemensional.
Os computadores paralelos baseados em redes da interconexo preci-
sam de ter algum tipo da roteamento para permitir a passagem das mensa-
gens entre os ns que no esto conectados diretamente.
116
ARQUITETURA DE COMPUTADORES
Classes de computadores paralelos
Os computadores paralelos podem ser classifcados de acordo com o
nvel de paralelismo que o hardware suporta. Esta classifcao anloga
classifcao de ligao de ns de computao bsicos. Estas classifcaes
no so mutuamente exclusivas, por exemplo, um cluster de multiprocessa-
dores simtricos relativamente comum.
Processador de Mltplos Ncleos
Um processador com mltiplos ncleos (multicore) um processador
que inclue vrias unidades de processamento (ncleos) um um mesmo
circuito integrado. Estes processadores diferem dos processadores superes-
calar, que podem executar mltiplas instrues por o ciclo de um fuxo de
instruo (thread); ao contrrio, um processador multicore pode executar
instrues mltiplas por ciclo de fuxo de instrues mltiplas. Cada ncleo
em um processador multicore pode ser superescalar, ento em cada ciclo,
cada ncleo pode executar instrues mltiplas de um fuxo de instruo.
Multithreading simultneo (onde o exemplo mais conhecido o Hyper-
Threading da Intel) foi um das primeiras implementaes de processador
pseudo-multicore. Um processador capaz de multithreading simultneo
tem somente uma unidade de execuo (ncleo), mas quando essa unida-
de de execuo est em repouso (por exemplo, durante uma falta de cache),
usa-se essa unidade de execuo para processar uma segunda tarefa. O
microprocessador Cell da IBM, projetado para ser usado no console Sony
Playstation 3, um outro exemplo de processador multicore.
Multprocessamento Simtrico
Um multiprocessador simtrico (SMP Symmetric Multiprocessor) uma
arquitetura de computadores com mltiplos processadores idnticos que com-
partilham a memria e se conectam atravs de um barramento. A disputa do
barramento nico de comunicao limita a escalabilidade dessa arquitetura.
Em conseqncia, os equipamentos SMP geralmente no utilizam mais de
32 processadores. No entanto, por causa do tamanho pequeno dos processa-
dores atuais e da reduo signifcativa das exigncias de comunicao com
a memria compartilhada devido ao uso de grandes caches, os multiproces-
sadores simtricos so extremamente interessantes devido a sua boa relao
custo-benefcio, desde que haja memria e largura de banda sufciente.
Computao Cluster
Um cluster um grupo de computadores independentes que funcio-
nam junto atravs de interfaces de comunicao de alta velocidade de forma
que possam ser considerados como um nico computador. Os clusters so
compostos por mltiplas mquinas autnomas conectadas por uma rede de
alta velocidade. Quando as mquinas em um cluster no fores idnticas (si-
mtricas), a distribuio de carga muito mais difcil. Um exemplo muito
conhecido de cluster o Beowulf. A tecnologia de Beowulf foi desenvolvida
originalmente por Thomas Esterlino e Donald Becker. O Beowulf um clus-
ter construdo com mltiplos computadores tipo IBM-PC idnticos comprados
no comrcio e conectados com uma rede local do tipo Ethernet e TCP/IP. Uma
mquina especial gerencia o conjunto de computadores do cluster Beowulf.
A maioria dos supercomputadores da lista TOP500 formada por clusters.
117
ARQUITETURA DE COMPUTADORES
Computao Grade (Grid)
A Computao em Grade, tambm conhecida como Grid, mais uma
forma de computao paralela distribuda. Na computao em grade os
computadores se comunicam atravs da Internet para realizar um trabalho
de processamento de informaes. Mas, ao contrrio da computao em
cluster que pressupe que todos os computadores sejam iguais e instalados
em um mesmo local, na computao em grade podemos usar computadores
diferentes instalados em locais distitos, bastando apenas que estejam liga-
dos na Internet.
Por causa da baixa largura de banda e da latncia extremamente
elevada encontrada na Internet, uma grade consegue processar somente
problemas que possam ser divididos e que os resultados no tenham de-
pendncia entre si (esse tipo de problema chamado de embarrassingly
parallel, ainda sem uma traduo para portugus). Alguns exemplos desse
tipo de problema so: renderizao de imagens, quebra de senha por fora
bruta, bioinformtica, simulaes de fsa de partculas e previses clim-
ticas. Muitas aplicaes de computao da grade foram criadas, onde o
SETI@home e Folding@Home so os exemplos os mais conhecidos.
A maioria das aplicaes de computao em grade usam algum tipo
de middleware, o software instalado entre o sistema operacional e a aplica-
o para controlar recursos de rede e padroniza a API de software. O midd-
leware mais conhecida de computao em grade o Berkeley Open Infras-
tructure for Network Computing (BOINC), Frequentemente, o software de
computao em grade usa os ciclos de folga dos computadores hospedeiros,
executando as computaes quando um computador est em repouso e sem
executar outras atividades importantes.
Arquitetura Superescalar
Um processador com arquitetura superescalar executa uma forma de
paralelismo chamado paralelismo ao nvel de instruo dentro de um nico
processador. Ela permite uma execuo do programa mais rpida no pro-
cessador do que usar outras formas como aumento da taxa de relgio. Um
processador superescalar executa mais de uma instruo durante um ciclo
de relgio disparando simultaneamente instrues mltiplas unidades
funcionais redundantes do processador. Cada unidade funcional no um
outro ncleo separado do processador central, mas um recurso de execuo
dentro de um nico processador central tal como uma unidade de lgica
aritmtica, um registrador de deslocamento ou um multiplicador.
Quando um processador superescalar tambm implementar um pipeli-
ne de instruo, o desempenho tambm aumentado, porque so duas tcni-
cas diferentes e no confitantes que melhoram o desempenho do processador.
A tcnica de processador superescalar associada a diversas tcnicas
tradicionais, todas aplicadas a um mesmo ncleo de processador:
As instrues so extradas de um fuxo seqencial de instrues.
O hardware do processador central verifca dinamicamente se h
dependncias de tempo entre instrues e dados em tempo de exe-
cuo (em vez de fazer a verifcao prvia durante a compilao).
Aceita mltiplas instrues por ciclo de relgio.
118
ARQUITETURA DE COMPUTADORES
Histria
O CDC 6600 de Seymour Cray de 1965 mencionado frequentemente
como o primeiro projeto superescalar. O processador Intel i960CA (1988) e o
AMD 29000 sries 29050 (1990) foram os primeiros microprocessadores su-
perescalar em um nico chip disponiveis comercialmente. Os fabricantes de
processadores RISC preferem utilizar a arquitetura superescalar nos seus
micro-processadores porque o projeto de micro-computadores RISC geral-
mente permitem a expedio direta de instruo e a incluso de unidades
funcionais mltiplas (tais como ALUs) em um nico processador central.
Esta era a razo que os projetos do RISC eram mais rpidos do que projetos
do CISC com os anos 80 e 90.
Excetos os processadores usados em microcontroladores usados em
equipamentos de baixa capacidade, os sistemas embutidos e os dispositivos
alimentados por pilhas, todos os processadores centrais de uso geral imple-
mentam a arquitetura superescalar a partir de 1998.
O Pentium foi o primeiro processador da famlia x86 com arquitetura
superescalar. O Nx586, o Pentium Pro e o AMD K5 estavam entre os pri-
meiros projetos que decodifcavam instrues x86 de forma assncrona e
dinmica, criando uma sequncia de microcdigo antes da execuo real em
uma arquitetura superescalar. Isso abriu a possibilidade a implementao
de escalonamento dinmico de instrues o que permitiu a extrao de mais
paralelismos das instrues do que as geraes anteriores de processadores.
Isso tambm simplifcou a execuo especulativa e possibilitou a utilizao
de freqncias mais elevadas comparadas aos projetos anteriores.
Escalar e Superescalar
Os processadores mais simples so processadores escalares. Cada ins-
truo executada por um processador escalar manipula tipicamente um ou
dois campos de dados de cada vez. Por outro lado, cada instruo executada
por um processador vetorial opera simultaneamente em muitos campos de
dados. Essa analogia mostra a diferena entre uma operao escalar e a arit-
mtica vetorial. Um processador superescalar uma mistura dos dois tipos.
Cada instruo processa um campo de dados, mas como h muitas unida-
des funcionais redundantes dentro de cada processador, assim as instrues
mltiplas podem processar mltiplos dados separados simultaneamente.
O projeto de um processador superescalar enfatiza o melhoramento
da acurcia do expedidor de instruo, para permitir que mantenha as
mltiplas unidades funcionais em uso todas as vezes. Isso se tornou cada
vez mais importante quando o nmero de unidades de processamento au-
mentou. Quando os primeiros processadores superescalares tinham duas
ULAs e um nico UPF, um projeto moderno, tal como o PowerPC 970, inclui
quatro ULAs, dois UPFs e duas unidades de SIMD. Se o expedidor inefcaz
em manter todas estas unidades ocupadas com instrues, o desempenho
do sistema ser prejudicado.
Um processador superescalar geralmente mantm uma taxa da exe-
cuo superior a uma instruo por o ciclo de mquina. Mas processar
mltiplas instrues simultaneamente no faz uma arquitetura ser supe-
rescalar, porque processadores com pipeline ou as arquiteturas multi-core
tambm conseguem essa funcionalidade, mas com mtodos diferentes.
Em um processador superescalar o expedidor l as instrues da me-
mria e decide qual delas podem ser executadas paralelamente, despachando
119
ARQUITETURA DE COMPUTADORES
para as unidades funcionais redundantes contidas dentro do nico proces-
sador central. Consequentemente, um processador superescalar pode ser
projetado para ter os vrios pipelines paralelos, cada qual processando as
instrues simultaneamente a partir de um nico fuxo de instrues.
Limitaes
A melhoria do desempenho das tcnicas de arquiteturas superescalar
limitada por dois pontos chave:
O grau de paralelismo intrnseco no fuxo de instrues, isto , a
quantidade limitada do paralelismo ao nvel de instruo.
O custo da complexidade e do tempo dispendido pelo expedidor de
instruo e da dependncia associada a verifcao da lgica do pro-
grama.
Os programas binrios executveis tm vrios graus de paralelismo
intrnseco. Em alguns casos as instrues no so dependentes de outras e
podem ser executadas simultaneamente. Em outros casos so interdepen-
dentes: uma instruo depende de recursos ou resultados da outra instru-
o. As instrues a = b + c; d = e + f podem ser executadas paralelamente
porque nenhuns dos resultados dependem de outros clculos. Entretanto,
as instrues a = b + c; b = e + f no puderam ser executadas paralelamente,
dependendo da ordem em que as instrues terminam e como os dados se
movem atravs das unidades.
Quando o nmero de instrues que podem ser executadas simulta-
neamente aumenta, o custo da verifcao de dependncias aumenta extre-
mamente rpido. Isto agravado pela necessidade de se verifcar as depen-
dncias no tempo de execuo e na taxa de relgio do processador central.
Esse custo inclui as portas lgicas adicionais exigidas para executar as
verifcaes, e atrasos de tempo atravs dessas portas. As pesquisas mos-
tram que o aumento de custo de portas, em alguns casos, pode ser linear e
o atraso no tempo tem um aumento logaritmo, criando um problema mate-
mtico de permutao combinatria.
Mesmo que o fuxo da instruo no contenha nenhuma inter-depen-
dncia de instrues, um processador superescalar deve todavia verifcar
para ver se h essa possibilidade, desde que no h nenhuma garantia que
no ocorra e a falha decorrida pelo um erro de dependncia produziria re-
sultados incorretos.
No importa como avanado o processo de fabricao do semicon-
dutor ou como rapidamente a velocidade de comutao aumentada, existe
um limite prtico em quanto as instrues podem ser despachadas simul-
taneamente. Quando os avanos nos projetos de processadores permitiro
nmeros sempre maiores de unidades funcionais (por exemplo, ULAs), a
carga de verifcao das dependncias de instruo cresce to rapidamen-
te que o limite para aumento de desempenho da arquitetura superescalar
chega a um limite muito rpido, na ordem de cinco a seis instrues despa-
chadas simultaneamente.
Porm mesmo que a verifcao de dependncia fosse realizada a uma
velocidade infnitamente rpida em um processador superescalar, por ou-
tro lado, ainda teramos a dependncia do prprio fuxo de instrues, que
tambm limitaria o aumento da velocidade. Assim o grau de paralelismo
intrnseco no fuxo de instrues seria uma segunda limitao.
120
ARQUITETURA DE COMPUTADORES
Nesta unidade apresentamos alguns tpicos avanados em Arquitetura de
Computadores. So tcnicas modernas que tiveram como objetivo aumen-
tar o desempenho dos computadores construindo novas alternativas arqui-
teturais. A primeira tcnica apresentado foi o Pipeline, onde unidades de
processamento diferentes realizam operaes em srie da mesma forma que
uma linha de produo. A outra tcnica apresentada trata de processamen-
to paralelo, envolvendo todas as formas de paralelizar o processamento de
instrues e dados com o objetivo de aumentar o desempenho dos sistemas.
1. Consulte a lista dos maiores 30 computadores do mundo (vide Top500)
e calcule as diversas arquiteturas utilizadas e faa uma tabela com o
percentual de cada tipo.
2. Pesquise sobre computao em nuvem e diga qual a arquitetura para-
lela mais recomendada para essa aplicao.
3. Leia a especifcao do processador Intel QuadCore e relacione todas as
tcnicas utilizadas para melhorar o desempenho.
Informaes sobre Computao Paralela (em ingls)
http://en.wikipedia.org/wiki/Parallel_computer
Tutorial sobre Pipeline (em ingls)
http://www.cs.iastate.edu/~prabhu/Tutorial/PIPELINE/pipe_ti
tle.html
Tutorial sobre arquitetura Super-escalar (em portugus)
http://worldlingo.com/ma/enwiki/pt/Superescalar
Listagem dos 500 maiores super-computadores do mundo (em in-
gls)
http://www.top500.org/
121
ARQUITETURA DE COMPUTADORES
WILLIAM STALLINGS. Arquitetura e Organizao de Computadores 5
Ed. Editora: Prentice Hall, 2002. Apresenta, da maneira clara e abrangente,
a natureza e as caractersticas dos sistemas de computao modernos. De
um modo geral, concentra-se basicamente em exemplos de diferentes m-
quinas, a maioria pertencente famlia Pentium II da Intel e PowerPC. En-
quanto o Pentium II um computador que possui um conjunto complexo de
instrues (CISC), o PowerPC, por sua vez, um computador com um con-
junto reduzido de instrues (RISC). Apesar das particularidades de cada
um, ambos tratam dos princpios de arquitetura superescalar e fornecem
suporte a confguraes com mltiplos processadores. O livro apresenta
inicialmente uma viso geral do que ser abordado ao longo dos captulos.
Nas partes subseqentes, trata do sistema de um computador (seus compo-
nentes, ou seja, processador, memria, mdulos de EIS e interconexes en-
tre esses componentes), da unidade de processamento central (por exemplo,
aspectos da arquitetura da CPU e questes relativas a sua organizao), da
unidade de controle (sua funo e sua implementao utilizando micropro-
gramao) e, fnalmente, da organizao paralela (examina algumas das
questes envolvidas em organizaes com mltiplos processadores e com
processamento vetorial.
JOHN L. HENNESSY & DAVID A. PATTERSON. Arquitetura de Computa-
dores: Uma Abordagem Quantitativa 3 Ed. Editora: Campus, 2003. Um
dos principais livros da rea de Arquitetura de Computadores, considerado
durante mais de uma dcada leitura essencial por interessado em projeto
de computadores. Os autores apresentam seu mtodo exclusivo de anlise
quantitativa, empregando-o no apenas no projeto de mquinas de mesa de
alto desempenho, mas tambm no projeto de sistemas incorporados e ser-
vidores. Eles ilustram seus princpios com projetos de todos esses trs do-
mnios, incluindo exemplos de eletrnica de consumo, tecnologias de multi-
mdia e da Web, e ainda equipamentos de informtica de alto desempenho.
122
ARQUITETURA DE COMPUTADORES
Marcial Porto Fernandez nasceu no Rio de Janeiro em 1964, Engenheiro
Eletrnico pela UFRJ (1988), Mestrado (1998) e Doutorado (2002) em Enge-
nharia Eltrica, rea de Teleinformtica na COPPE/UFRJ.
Atualmente pesquisador e professor adjunto do curso de Cincias da Com-
putao na Universidade Estadual do Cear (UECE) onde realiza pesquisas
sobre redes de computadores, gerenciamento de redes, qualidade de servi-
os e redes mveis.

Вам также может понравиться