Vous êtes sur la page 1sur 105

Organizao de Computadores

Nota de Aula
Org Comp Prof Pedro Corra Pag 2

1. Introduo
1.1 A informao

Estamos vivendo a Era da Informao. Dispomos hoje de acesso instantneo a


uma quantidade de informao maior do que conseguimos tratar.
Mas, afinal, o que INFORMAO?
Um dos grandes nomes da teoria da informao, Claude Shannon (autor de "The
Mathematical Theory of Communication") define que informao est presente sempre
que um sinal transmitido de um ponto a outro.
Por exemplo, so informaes:
- palavras,
- um quadro (sinais visuais na forma de ondas de luz),
- os impulsos eltricos atravs dos quais nossos olhos transmitem imagens ao
crebro,
- a msica etc
Alm de transmitidas e recebidas, informaes podem ser armazenadas e depois
reproduzidas: em livros, em discos, em fotografias, e na memria humana. Desta forma,
uma informao original pode ser reproduzida (transmitida muitas vezes). Um exemplo
radical de armazenamento e reproduo da informao so os genes: o cdigo gentico de
um ser vivo armazenado nos genes que permitem a reproduo do ser vivo a partir de
uma nica clula; todas as clulas contendo a mesma informao gentica da clula inicial.

Processamento da informao refere-se ao armazenamento, transmisso,


combinao e comparao da informao. Alguns agentes contriburam de forma
expressiva para estarmos hoje vivendo a Era da Informao. A escrita iniciou este processo,
a imprensa foi um passo muito importante, e recentemente as telecomunicaes difundem
informao instantnea por todo o planeta. O mais recente dos agentes fundamentais que
propiciaram esta onda de informaes tambm o mesmo agente da tecnologia que mais
nos auxilia a lidar com ela, um agente que nos permite armazenar, classificar, comparar,
combinar e exibir informaes acuradamente e com velocidade: este agente tecnolgico o
COMPUTADOR.
Org Comp Prof Pedro Corra Pag 3

Processamento da Informao pelo Ser Vivo


De certa forma, cada ser vivo tambm um computador:
- os sentidos so meios de receber sinais do meio ambiente. Estas impresses
sensoriais so transmitidas por uma rede nervosa ao crebro atravs de sinais eltricos e
qumicos. Sons emitidos pelos seres vivos so tambm meios de transmitir informaes a
outros seres: so mensagens que exprimem vontades, impresses, ordens...
Bom, para ser mais preciso, o computador quem emula o ser vivo...! E, por
enquanto, nada de muito brilhante, apenas extremamente rpido.
A evoluo do ser humano permitiu que, com o aumento do poder computacional
do seu crebro e demais rgos (por exemplo, o aparelho fonador) fosse possvel criar e
utilizar LINGUAGENS. Depois das palavras, vieram regras para combin-las: as Leis da
GRAMTICA e da LGICA (e, no, se, ento, ...).
Maior nmero de expresses e maior nmero de combinaes e mensagens
possveis, expressando um conjunto de situaes mais amplo: portanto, mais
INFORMAO.
Depois, um tipo especial de palavra surgiu, expressando um novo conceito -
quantidade: OS NMEROS! Nmeros podem ser representados com os dedos (dedo =
dgito). Possivelmente vem da que o sistema numrico ao qual estamos todos acostumados
o decimal (dez dedos).
O sistema decimal no o nico, nem o mais prtico. Esse sistema foi criado h
milhares de anos e muito usado ainda hoje pelo comrcio: por exemplo, uma dzia (12)
de bananas, uma grosa (144) de parafusos.

1.2 Representao de Informaes

No incio dos tempos, informaes eram transmitidas apenas por gestos e som
(naquela poca, eram apenas grunhidos) e se guardava informaes apenas com o crebro
(a nossa memria, ou possivelmente apenas uma vaga lembrana!).
Os habitantes das cavernas pintavam animais nas paredes, no se sabe muito bem o
que eles representavam. Muito tempo depois, os sumrios criaram um sistema para
representar sua linguagem atravs de desenhos, gravados em placas de argila. Os egpcios
Org Comp Prof Pedro Corra Pag 4

representavam sua linguagem atravs dos hierglifos gravados em papiros, os chineses


gravavam mensagens nos cascos de tartarugas, os incas usavam fios com ns (os quipos).
Assim nasceu a escrita!
Os conceitos gerais de linguagem tem uma representao muito complexa - por
exemplo, como representar um objeto, uma ao ou um sentimento. E quanto
representao de quantidades? Inicialmente, quantidades eram representadas com os dedos.
Assim, desde o princpio nosso entendimento de quantidades sempre foi digital (vem de
"digitus" = dedos). Mas, aps a contagem (usando os dedos), como armazenar (guardar ou
registrar) o resultado? E como processar uma conta? Os mais antigos registros encontrados
representam quantidades atravs de entalhes em ossos, possivelmente para contagem dos
dias. Cada entalhe, um dia, imitando a contagem nos dedos! Todas as civilizaes antigas
criaram alguma forma de representao de quantidades, mas cada nmero n era sempre
representado por n smbolos da unidade. Para facilitar a contagem, as unidades eram
agrupadas em grupos de 5 (uma mo-cheia) ou 10 (duas mos-cheias).

1.3 Sistemas de Numerao

Os sistemas de numerao tem por objetivo prover smbolos e convenes para


representar quantidades, de forma a registrar a informao quantitativa e poder process-la.
A representao de quantidades se faz com os nmeros. Na antiguidade, duas formas de
representar quantidades foram inventadas. Inicialmente, os egpcios, criaram um sistema
em que cada dezena (uma mo-cheia de nosso exemplo anterior) era representada por um
smbolo diferente. Se utilizarmos, por exemplo, os smbolos # para representar uma
centena, & para representar uma dezena e @ representando uma unidade (smbolos
escolhidos ao acaso), teramos que ###&&@ representaria 321.
Relembremos ainda um outro sistema, o sistema de numerao romano. Eram
usados smbolos (letras) que representavam as quantidades, como por exemplo: I ( valendo
1), V (valendo 5), X (valendo 10), C (valendo 100), etc. A regra de posicionamento
determinava que as letras que representavam quantidades menores e precediam as que
representavam quantidades maiores, seriam somadas; se o inverso ocorresse, o menor valor
Org Comp Prof Pedro Corra Pag 5

era subtraido do maior (e no somado). Assim, a quantidade 128 era representada por
CXXVIII = 100 + 10 + 10 + 5 + 1 + 1 + 1 = 128. Por outro lado, a quantidade 94 era
representada por XCIV = (-10 + 100) + (-1 + 5) = 94.
Nesses sistemas, os smbolos tinham um valor intrnseco, independente da posio
que ocupavam na representao (sistema numrico no-posicional). Um grande problema
desse sistema a dificuldade de realizar operaes com essa representao. Experimente
multiplicar CXXVIII por XCIV! Assim, posteriormente foram criados sistemas em que a
posio dos algarismos no nmero passou a alterar seu valor (sistemas de numerao
posicionais).

1.4 Sistemas de Numerao Posicionais


Nos sistemas de numerao posicionais, o valor representado pelo algarismo no
nmero depende da posio em que ele aparece na representao. O primeiro sistema desse
tipo foi inventado pelos chineses. Eram usados palitos, sendo 1 a 5 palitos dispostos na
vertical para representar os nmeros 1 a 5; de 6 a 9 eram representados por 1 a 4 palitos na
vertical, mais um palito na horizontal (valendo 5) sobre os demais. Cada nmero era ento
representado por uma pilha de palitos, sendo uma pilha de palitos para as unidades, outra
para as dezenas, outra para as centenas, etc. Esse sistema, com as pilhas de palitos dispostas
em um tabuleiro, permitia a realizao das quatro operaes aritmticas. No existia
representao para o zero (o espao relativo ficava vazio). O tabuleiro aritmtico (chamado
swan-pan), alm das quatro operaes, era usado na lgebra e na soluo de equaes. Essa
tcnica era chamada de Mtodo do Elemento Celestial.

1.5 O Alfabeto e o baco

No Oriente Mdio, por esses tempos, criou-se uma das mais importantes invenes
da humanidade: o alfabeto. Na antiguidade, usava-se um smbolo para representar cada
conceito ou palavra. Assim, eram necessrios milhares de smbolos para representar todos
os objetos, aes, sentimentos, etc - como so ainda hoje algumas linguagens. Como
Org Comp Prof Pedro Corra Pag 6

decorar todos? O grande achado foi decompor a linguagem em alguns poucos smbolos e
regras bsicas. Uma conseqncia de fundamental importncia para nossos estudos de
informtica foi possibilitar a ordenao alfabtica (essa uma tarefa tpica dos
computadores).
Nessa poca, foi tambm criado o baco - uma calculadora decimal manual.

1.6 Os Algarismos e o Zero

Por volta do ano de 650 DC, os hindus inventaram um mtodo de produzir papel
(que antes j fora inventado pelos chineses) e seus matemticos criaram uma representao
para os nmeros em que existiam diferentes smbolos para as unidades, incluindo um
smbolo para representar o zero. Essa simples criao permitiu que se processasse a
aritmtica decimal e se fizesse contas no papel. Depois de milhares de anos em que todos
os clculos eram feitos com calculadoras (bacos, swan-pan, etc) finalmente era possvel
calcular sem auxlio mecnico, usando um instrumento de escrita e papel. A matemtica
criada pelos hindus foi aprendida pelos rabes (que depois foram copiados pelos europeus).
Por volta de 830, um matemtico persa (chamado Al-khwarismi, que inspirou o nome
algarismo) escreveu um livro (Al-gebr we'l Mukabala, ou lgebra) em que apresentava os
algarismos hindus. E esse livro, levado para a Europa e traduzido, foi a base da matemtica
do Renascimento.
Org Comp Prof Pedro Corra Pag 7

1.7 Um Pouco da Histria do Computador

"As invenes j h muito alcanaram seu limite - e eu no vislumbro qualquer


esperana de futuros desenvolvimentos."
- Julius Frontinus, eminente engenheiro romano (Roma, ano 10 DC).

Pr-histria

Por volta do ano 2000 a.C., os chineses j utilizavam um instrumento para auxlio
ao clculo semelhante ao baco. O baco , criado posteriormente pelos rabes, permitia um
rpido clculo atravs do deslocamento de sucessivas contas trespassadas numa estrutura de
madeira.

Porm, os primrdios de uma mquina automatizada de calcular iniciaram com o


filsofo e cientista francs Blaise Pascal em 1642, quando props um mecanismo onde
havia dois conjuntos de rodas, um para representar o valor a somar ou subtrair e outro
servindo de acumulador de clculo. Os dois conjuntos eram interligados com engrenagens
que permitiam, ao girar o primeiro conjunto de rodas, a rotao do conjunto do acumulador.
O vai-um e o pede-emprestado eram implementados atravs de catracas que faziam a

transmisso do excedente aps uma volta completa de uma roda. Os valores negativos eram
manipulados atravs de uma representao de complemento, o que permitia a utilizao do
mesmo mecanismo para adio e subtrao.
Org Comp Prof Pedro Corra Pag 8

Posteriormente em 1671, o filsofo e matemtico alemo Gottfried Leibniz ampliou


a mquina de Pascal para multiplicao e diviso diretas. Isto foi possvel com o acrscimo
de dois conjuntos de rodas para representar o multiplicador e o multiplicando. Estes
conjuntos eram movidos por um sistema de correntes e polias, que permitiam o clculo.
Apesar do avano tecnolgico que representava esta mquina de quatro operaes, ela foi
usada apenas para estudos acadmicos at o sculo XIX, quando passou a ser
comercializada.

Idade da Engrenagem

J em 1834, o ingls Charles Babbage concebeu uma mquina de calcular


programvel , ao que chamou de Mquina Analtica (Analytical Engine). Ela consistia
basicamente de duas partes: engenho e depsito. A primeira, o engenho, seria capaz de
realizar as quatro operaes aritmticas elementares; e a outra, o depsito , consistiria em
conjuntos de rodas de contagem onde seriam armazenados os valores de clculo. O controle
da seqncia de operaes do engenho e a localizao no depsito para colocao das
variveis, seriam dados por cartes perfurados. Estes cartes consistiam no programa da
mquina. Os resultados seriam obtidos por cartes perfurados ou por anotao manual.
Para construir um dispositivo a partir destas idias, Babbage contou com a
colaborao inestimvel da matemtica Ada Augusta Byron, Lady Lovelace, filha do poeta
Lord Byron. Ada desenvolveu sries de instrues para o calculador analtico, criando
conceitos tais como sub-rotinas, loops e saltos condicionais.
Org Comp Prof Pedro Corra Pag 9

Por ter criado o programa para fazer o Calculador Analtico funcionar, Ada
considerada a primeira programadora de computador da histria.
Infelizmente, dada a tecnologia da poca, a Mquina Analtica nunca foi concluda.
Apesar disso, este modelo tornou-se a pedra fundamental na qual calcaram-se os modernos
computadores da atualidade.

Por esta poca, entre 1847 e 1854, outro ingls, George Boole, provou que todos os
clculos matemticos no tm um fim em si mesmos, mas num esquema lgico bsico que
justifica os demais clculos. Assim, ele desenvolveu uma lgebra formal para descrever as
regras deste esquema lgico, de onde poderiam ser derivadas a aritmticas e outras
lgebras. Desde ento, esta lgebra lgica passou a ser considerada de interesse
excepcional, mas, s em 1924, o fsico Jeremy Bernstein mostrou que a lgebra de Boole
constitua num grupo com propriedades particulares de equivalncia e proporcionalidade.
Esta lgebra foi de importncia fundamental para a computao. Sem ela, no seria possvel
a implementao dos circuitos combinatrios com os quais hoje se constroem os
computadores [BAR 67].

Idade do Rel e da Vlvula

Entre 1934 e 1941 o alemo Konrad Zuse desenvolve uma mquina


eletromecnica programvel . Enquanto isso, o americano John Vincent Atanasoff cria,
entre 1935 e 1942 uma mquina eletrnica capaz de resolver problemas matemticos com
at 30 equaes. Na mesma poca, no final dos anos 30, uma equipe da IBM, liderada por
Howard Hathaway AIKEN, desenvolve um computador para clculos, chamado Harvard
Mark I . E em 1943, a equipe do matemtico britnico Alan Mathison Turing conclui o
computador Colossus especfico para decifrar cdigos. Ainda nesta poca, na Universidade
da Pennsylvania (EUA), o engenheiro John Mauchly e seu aluno John Eckert Jr.,
desenvolvem o computador ENIAC (Eletronic Numerical Integrator and Calculator)
Org Comp Prof Pedro Corra Pag 10

destinado ao clculo blico. Posteriormente a sua concepo foi contestada como sendo um
plgio da mquina de Atanasoff.

Nesta poca a programao era feita diretamente atravs de um painel com chaves
de liga-desliga ou ento atravs de fitas de papel ou cartes perfurados. Posteriormente veio
o uso do teclado (ainda sem monitor).

Idade do Transistor

Aps a criao do transistor, em 1947, os computadores tornam-se menores e mais


potentes. O primeiro desta gerao foi o Edsac (Eletronic Delay Storage Automatic
Computer), criado na Universidade de Cambridge (EUA), pela equipe de Maurice Wilkes,
o qual permitia o armazenamento do prprio programa, o que no acontecia com os
anteriores. Em 1951, foi lanado o primeiro computador comercial, o Univac (Universal
Automatic Computer), tambm criado pela equipe do Eniac . Tambm por esta equipe,
agora com o auxlio de John Von Neuman, e neste mesmo ano, foi concluda a construo
do Edvac (Eletronic Discreet-Variable Computer), que consistia num novo modelo que
aumentava a capacidade de armazenamento em memria. A partir dessas conquistas,
surgiram as primeiras linguagens de programao de alto nvel: o Fortran, em 1957, e o
Cobol, em 1960.

Idade do Circuito Integrado

Aps o incio da comercializao do circuito integrado, em 1961, foi possvel a


construo de minicomputadores com terminais completos, com vdeo e teclado. Um
exemplo o PDP-1 (IBM), de 1963, o qual foi o primeiro a utilizar, com confiabilidade,
Org Comp Prof Pedro Corra Pag 11

monitores de vdeo. Outro perifrico que veio a ser importante nos dias de hoje, foi o
mouse, desenvolvido em 1964 por Douglas Engelbart.

Vislumbrando a disseminao de computadores, no ano de 1969 houveram dois


grandes marcos da computao: a criao do sistema operacional Unix e da rede de
computadores Arpanet. O sistema Unix at hoje o melhor sistema operacional, existente
em verses para todos os computadores. A rede Arpanet foi criada pelos rgos de defesa
dos EUA para tornar as informaes distribudas como forma de segurana para as bases de
dados. No momento em que ela foi disseminada pelas universidades, este modelo de rede
transformou-se no que hoje a Internet .

Idade do Chip

O circuito integrado microprocessador , reduzido e encapsulado, tornou-se


realidade em 1971 com o chip Intel 4004, o primeiro produzido comercialmente. A partir
da, era de se esperar o desenvolvimento de microcomputadores. O primeiro computador
pessoal completo (vdeo, teclado e UCP) foi o Alto, desenvolvido pela Xerox e
comercializado em 1973. Aps veio o primeiro computador pessoal para consumo em
massa, o Altair 8800, de 1975. No mesmo ano, a IBM lanou o seu modelo, o IBM 5100, e
no ano seguinte, a Apple, com o seu Apple 2, o melhor at ento.

Idade do Micro

At o final dos anos 70, os computadores pessoais criados necessitavam que seu
usurio dominasse a linguagem Basic para controle e manipulao dos dados no
computador, o que limitava sua utilizao apenas aos que se dispunham a program-los. Foi
ento que, em 1979, a IBM lanou o IBM-PC com o primeiro sistema operacional para
computadores pessoais sem a necessidade de programao, o chamado MS-DOS.
Org Comp Prof Pedro Corra Pag 12

Dando um salto gigantesco no gerenciamento do sistema operacional, a Apple lana


o computador pessoal Macintosh, com um ambiente grfico para controle do computador,
baseado em figuras (cones) relacionadas aos comandos, e tendo o mouse como dispositivo
bsico de entrada.

Idade da Rede

Em 1989, foi desenvolvido no Laboratrio de Pesquisas Nucleares (CERN - em


Genebra, Sua) um sistema de troca de informaes atravs de hipertextos utilizando redes
de computadores. Isto permitiria uma navegao mais amigvel atravs de documentos do
que o programa at ento existente - o gopher . Este novo programa chamava-se WWW
(World Wide Web), e foi desenvolvido para uso na Internet, at ento sob domnio de
universidades, rgos governamentais e fundaes espalhadas pelo mundo.

Uma vez que a iniciativa privada visualizou a Internet como sendo um novo tipo de
meio de comunicao, forou sua disseminao comercial. Os efeitos dessa expanso esto
sendo sentidos at hoje, e o sero por muitos anos ainda.

Da parte do hardware, j so comercializados microprocessadores contendo 30


milhes de processadores e j esto sendo planejados outros contendo o triplo desta
quantidade.

O efeito combinado da reduo do tamanho e custo do computador, aliado ao fato


dele ser um novo meio de comunicao, torna-o um novo eletrodomstico, tal qual a
televiso e o rdio. Como podemos perceber, o computador deixou de ser mera mquina de
calcular para ser uma poderosa fonte de informaes, sem censura e sem limitao de
canais...
Org Comp Prof Pedro Corra Pag 13

2. Conceitos Bsicos

2. 1 Dgitos binrios

Bit: Sendo o computador um dispositivo eletrnico digital que reconhece apenas


dois nveis de sinais eltricos, a notao natural para a representao de dados em um
ambiente computacional a base binria. Convencionou-se chamar os dois nveis eltricos
de 0 e 1, sendo que cada algarismo de uma representao numrica binria denominado
de bit, que corresponde abreviatura de binary digit. Portanto, a menor unidade de
informao que podemos armazenar na memria de um computador

Byte: Quando representamos nmeros em papel (em qualquer base) temos quantos
dgitos forem necessrios para representar um nmero. Isto no acontece quando um
computador armazena um nmero. Ele sempre utiliza um nmero fixo de dgitos binrios,
ou bits, para a representao em base 2. Portanto, se estamos utilizando um byte para
armazenamento, todos os 8, e no mximo 8 bits, sero usados. Por exemplo, 2710,
armazenado em um byte, corresponde seqncia binria 00011011. Portanto, um byte
um conjunto de 8 bits, cuja combinao de estados representa os diversos smbolos ou
caracteres que compem a informao. Foi inicialmente definido pela IBM.

2. 2 Bases Numricas

Definio:
Base numrica: a quantidade de algarismos de um sistema de numerao.
Ex.

Sistema binrio ............ 2 algarismos


Sistema octal ................ 8 algarismos
Sistema decimal .......... 10 algarismos
Sistema hexadecimal ... 16 algarismos
Org Comp Prof Pedro Corra Pag 14

2. 3 Notao posicional

Como citado anteriormente, cada algarismo possui um valor correspondente a sua


posio no nmero, as posies so tomadas da direita para a esquerda a partir da posio
0.
Num sistema de notao posicional, um nmero N expresso na forma abaixo.
N d n 1 d n 2 ..........d 1 d 0 ....d m b
Onde :

d Indica cada algarismo do nmero


n-1 Indica a posio de cada algarismo no nmero
b Indica a base
n Indica o nmero de dgitos inteiros
m Indica o nmero de dgitos fracionrios

2. 4 Converso de bases
As bases numricas :

Numa base b qualquer podemos representar bn nmeros com n algarismos ou seja


nmeros de 0 a bn-1.
Org Comp Prof Pedro Corra Pag 15

Exemplo :
10 2 1 100 1 99 (0 99)

2 4 1 16 1 15 (0 a F )

2. 4.1 Converso da base 10 para uma base qualquer.


Para realizar a converso de um nmero na base 10 para outra base voc deve seguir
os seguintes passos:
- Dividir o nmero na base 10 pelo valor da base desejada .
- O resto encontrado o algarismo menos significativo do nmero na base desejada.
- Divide-se o nmero sucessivamente at que o quociente encontrado seja menor que o
valor da base na qual estamos convertendo o nmero. O ltimo quociente encontrado
ser o algarismo mais significativo do nmero.

2. 4.2 Converso de uma base qualquer para a base 10


O valor do nmero pode ser obtido por:
N10 d n 1b n 1 d n 2 b n 2 d n 3 b n 3 ....... d 0 b 0 ...... d m b m
Onde :
d- Indica cada algarismo do nmero
n-1 - Indica a posio de cada algarismo no nmero
b- Indica a base
n- Indica o nmero de dgitos inteiros
m- Indica o nmero de dgitos fracionrios
Exemplo :
O nmero 1101101 2 pode ser convertido aplicando-se a frmula
Org Comp Prof Pedro Corra Pag 16

2. 4.3 Converso da base 2 para a base 8 e vice-versa

Se o nmero que voc deseja converter estiver na base 8, voc deve efetuar a
converso deste para a base 2, observando a tabela 1.

Exemplo:

2. 4.3.1 Base 8 para Base 2


(765) 8

111110 1012

2. 4.3.2 Base 2 para Base 8


Caso o nmero que voc deseja converter esteja na base 2, voc efetuar a
converso deste para a base 8 da seguinte maneira:
- Agrupar os bits do nmero na base 2, trs a trs, da direita para a esquerda.
- Aps agrupar os bits, transforme cada grupo no algarismo correspondente na base
8.
- Para terminar agrupe os algarismos e voc obter o nmero na base 8.

1001100111 11010 2
100 110 011 111 010 2

( 4 6 3 7 2 )8

2. 4.4 Converso da base 8 para a base 16 e vice-versa

2. 4.4.1 Converso da base 8 para a base 16

Se o nmero a ser convertido estiver na base 8, voc dever transform-lo para a


base 2 e em seguida agrupar os bits do nmero obtido quatro a quatro da direita para a
Org Comp Prof Pedro Corra Pag 17

esquerda. Com os bits j agrupados voc dever converter cada grupo de 4 bits no
algarismo correspondente da base 16, obtendo assim o nmero na base 16.
(7654) 8
(111 110 101 100) 2
(1111 1010 1100) 2
(FAC)16
2. 4.4.2 Converso da base 16 para a base 8

Caso a converso a ser feita seja da base 16 para a base 8, voc dever transform-lo
para a base 2 e em seguida agrupar os bits do nmero obtido trs a trs da direita para a
esquerda. Com os bits j agrupados voc dever converter cada grupo de 3 bits no
algarismo correspondente da base 8, obtendo assim o nmero na base 8.
Exemplo:
(F73E) 16
(1111 0111 0011 1110) 2
(001 111 011 100 111 110) 2
(173476) 8

2.4.5 Exerccios

1) Converter os seguintes valores decimais em valores binrios equivalentes:


a) 329 e) 135
b) 184 f) 215
c) 473 g) 581
d) 69 h) 197

2) Converter os seguintes valores binrios em valores decimais equivalentes:


a) 11011101010 e) 111001101001
b) 11001101101 f) 111111000011
c) 10000001111 g) 101100011000
d) 11101100010 h) 100000000110
Org Comp Prof Pedro Corra Pag 18

3) Converter os seguintes valores decimais em valores octais equivalentes:


a) 177 e) 343
b) 254 f) 27
c) 112 g) 821
d) 719 h) 197

4) Converter os seguintes valores octais em valores decimais equivalentes:


a) 405 e) 705
b) 477 f) 173
c) 237 g) 201
d) 46 h) 452

5) Converter os seguintes valores decimais em valores hexadecimais equivalentes:


a) 447 e) 622
b) 544 f) 97
c) 223 g) 121
d) 71 h) 297

6) Converter os seguintes valores hexadecimais em valores decimais equivalentes:


a) 3A2 e) 1ED4
b) 33B f) 7EF
c) 621 g) 22C
d) 99 h) 110A

7) Efetuar as seguintes converses de bases:


a) 374218 = ( ) 16 e) 53318 = ( )2
b) 14A3B16 = ( ) 10 f) 1000110112 = ( )8
c) 110111000112 = ( ) 16 g) 21710 = ( )7
d) 2BEF516 = ( )8 h) 4138 = ( )2
Org Comp Prof Pedro Corra Pag 19

2.5 Aritmtica binria.

Como o prprio subttulo nos diz s se aplica para operaes entre bits ou seja
nmeros na base 2.

2. 5.1 Soma binria


Dois nmeros binrios podem ser somados, comeando pelo bit mais a direita e
somando-se os bits correspondentes at o ltimo ( bit mais esquerda ). Se um carry ( Vai
1 do bit mais significativo ) gerado ele ser posicionado uma posio a esquerda do
ltimo bit, semelhante a aritmtica decimal. Na notao de complemento a 1, um carry
gerado no bit mais significativo adicionado ao bit menos significativo. este processo
chamado de End-around carry . Na notao de complemento a 2, um carry pela adio do
bit mais significativo simplesmente descartado. As duas notaes mencionadas acima
sero vistas em seguida.

2. 5.2 Subtrao binria


2. 5.2.1 Subtrao convencional :
A subtrao em base 2, na forma convencional usada tambm no sistema decimal
(minuendo - subtraendo = diferena), relativamente mais complicada por dispormos
apenas dos algarismos 0 e 1 e dessa forma, 0 menos 1 necessita de um emprstimo de
um valor igual a base ( no caso 2 ), obtido do primeiro algarismo diferente de zero,
Org Comp Prof Pedro Corra Pag 20

existente esquerda . Se tivssemos operando na base decimal, o "emprstimo" seria de


valor igual a 10 .
0-0=0
1-0=1
1-1=0

2. 5.2.2 Adio e subtrao de nmeros negativos

So trs as formas de representao de nmeros negativos mais usados na


computao digital:
A primeira chamada de sinal e magnitude.;
A segunda forma chamada de complemento a 1;
A terceira forma chamada de complemento a 2.
Os trs sistemas citados so descritos na seo 2. 5.6

2. 5.3 Multiplicao binria

As regras para realizao de multiplicao com nmeros binrios so exatamente


iguais s das multiplicaes decimais, com uma enorme vantagem sobre estas pelo fato de
que s temos 2 algarismos em vez de 10. Desse modo, temos apenas:

0 X 0 = 0
0 X 1 = 0
1 X 0 = 0
1 X 1 = 1
Org Comp Prof Pedro Corra Pag 21

Enquanto na multiplicao decimal temos uma tabela com 100 operaes, do tipo:
1 X 2 = 2; 2 X 7 = 14; 5 X 6 = 30 etc

Para melhor entendimento sobre o assunto, basta observar alguns exemplos.

Efetuar a multiplicao de 1 1 0 por 1 0 1:


1 1 0 multiplicando
X 1 0 1 multiplicador
1 1 0 produtos parciais
0 0 0
1 1 0 x
1 1 1 1 0x resultado

2. 5.4 Diviso binria

O procedimento matemtico para realizao de uma operao de diviso com nmeros


binrios semelhante ao procedimento para a mesma operao com valores decimais.

O procedimento compreende a manipulao de quatro elementos:


dividendo valor a ser dividido
divisor valor que deve estar contido n vezes no dividendo e que, ento, se
deseja saber qual o valor de n
quociente quantidade de vezes que o divisor se repete no dividendo (valor de n)
resto caso a diviso no seja exata, isto , o divisor vezes n no seja igual
ao dividendo, a diferena chamada de resto.

Vamos descrever o processo na base 10 para entendermos bem cada passo e, em


seguida, exemplificar na base 2, seguindo os mesmos procedimentos.
Org Comp Prof Pedro Corra Pag 22

Efetuar a multiplicao de 35 / 5 e de 37 / 5 :

35 |5 5 37 |5 5
- 35 7 - 35 7
0 2

Procedimento:
a) Verifica-se quantas vezes o divisor cabe no dividendo por tentativa.
b) Iniciam-se as tentativas tais como:
2 X 5 = 10 , 3 X 5 = 15 , 4 X 5 = 20 (todos menores que 35)
E prossegue-se : 5 X 5 = 25 , 6 X 5 = 30 , 7 X 5 = 3 e 8 X 5 = 40.
Como 40 maior que 35 (ou 37, no caso do segundo exemplo) o valor escolhido
para quociente igual a 7.
c) Subtrai-se de 35 (dividendo) o valor resultante da multiplicao do quociente
pelo divisor (7 X 5), encontrando-se um valor que o resto da diviso. No
primeiro exemplo, o valor zero, 35 - 35 = 0, e no segundo exemplo 2,
37 - 35 = 2.
d) O resto da diviso deve sempre ser um valor igual, no mximo, ao divisor menos
1. No exemplo, ele dever ser, no mximo, igual a 4, pois se ele fosse 5, isso
significaria que o quociente poderia ser maior, j que o divisor (valo 5) ainda
cabe no dividendo.

Vejamos um exemplo de diviso binria:

Exemplo 1
Efetuar a diviso de (1 0 0 1)2 por (1 0 1)2:
(1 0 0 1)2 / (1 0 1)2
No caso da diviso binria o procedimento se torna mais simples, visto que cada
algarismo do quociente s pode ser ser 1 (quando o divisor menor - apenas uma vez- que
o dividendo ou parte dele) ou zero (caso contrrio).
Org Comp Prof Pedro Corra Pag 23

No exemplo acima, 1 0 1 menor e cabe apenas 1 vez em 1 0 0 1 . O quociente ,


ento, 1 e o resto 1 0 0 .
1 0 0 1 |1 0 1 x
- 1 0 1 1
0 1 0 0

Exemplo 2
Efetuar a diviso de (1 0 1 0 1 0)2 por (1 1 0)2:
(1 0 1 0 1 0)2 / (1 1 0)2
1 0 1 0 1 0 |1 1 0 x
- 1 1 0 111
0 1 0 0 1
- 1 1 0
0 0 0 1 1 0
- 1 1 0
0 0 0 0 0 0

2.5.5 Exerccios

1) Efetuar as seguintes somas:


a) 11001111012 + 1011101102
b) 1100111102 + 110111112
c) 110111000112 + 1000110112
d) 10111012 + 11110012

2) Efetuar as seguintes operaes de subtraes:


a) 110010000102 - 11111111112
b) 100011010002 - 1011011012
c) 110111000112 - 10110112
d) 1100000011012 - 101100111012
Org Comp Prof Pedro Corra Pag 24

3) Efetuar as seguintes operaes aritmticas:


a) (101)2 X (111)2 = ( )2
b) (11101)2 X (1010)2 = ( )2
c) (11001110)2 / (1101)2 = ( )2
d) (111110001)2 X (10011)2 = ( )2
e) (100100011)2 / (11101)2 = ( )2
f) (1101101)2 / (100)2 = ( )2
g) (111000001)2 X (101001)2 = ( )2

2.5.6 REPRESENTAO DE NMEROS INTEIROS (PONTO FIXO)


Dados numricos de ponto fixo so nmeros inteiros, isto , sem parte fracionria.
Os dados NUMRICOS INTEIROS POSITIVOS so sempre representados com o sinal
(convencionado que bit mais significativo 0 = sinal positivo) e em seguida o valor do dado
em binrio.
Porm, devido complexidade dos algoritmos para os computadores operarem com
NMEROS NEGATIVOS quando se usa a representao em sinal e magnitude
(sumariamente apresentada abaixo), so comumente adotadas outras formas que facilitam e
tornam mais eficiente a manipulao de operaes aritmticas em computadores: as
representaes em complemento.
Vamos analisar cada uma dessas representaes.

2.5.6.1 REPRESENTAO EM SINAL E MAGNITUDE


A magnitude (isto , o valor absoluto, que independe de sinal) de um nmero
representada em binrio. O sinal representado por um bit (o bit mais significativo, isto ,
o bit mais esquerda na representao). Por conveno, o bit de sinal 0 (zero) significa que
o nmero positivo e o bit 1 representa nmero negativo.

O valor dos bits usados para representar a magnitude independe do sinal, isto , sendo o
nmero positivo ou negativo, a representao binria da magnitude ser a mesma, o que
varia apenas o bit de sinal.
Org Comp Prof Pedro Corra Pag 25

Ex.:
0011 = +3
1011 = -3
(011 equivale ao valor absoluto 3)

FAIXA DE REPRESENTAO
A representao na base b em sinal e magnitude com n bits (incluindo o bit de sinal) possui
bn representaes e permite representar bn -1 valores, de vez que h duas representaes
para o zero.
A faixa de representao de uma representao na base 2 em sinal e magnitude com n bits
(incluindo o bit de sinal) possui
2n representaes, representando os valores entre - ( 2n-1-1) e + ( 2n-1-1).O maior valor
inteiro positivo ser ento + ( 2n-1-1) e o menor valor inteiro negativo ser - ( 2n-1-1).

Obs1.: o nmero de bits para a representao determinado no projeto do computador.


Obs2.: em sinal e magnitude, existem duas representaes para o zero.

ARITMTICA EM SINAL E MAGNITUDE


Algoritmo da soma
a) verificar o sinal das parcelas
b) se os sinais forem iguais:
-- repetir o sinal
-- somar as magnitudes

c) se os sinais forem diferentes


-- verificar qual parcela tem maior magnitude
-- repetir o sinal da maior magnitude
-- subtrair a menor magnitude da maior magnitude
Org Comp Prof Pedro Corra Pag 26

Algoritmo da subtrao
O algoritmo da subtrao o mesmo da soma, sendo feita como se fosse uma soma de
dois nmeros que tem os sinais diferentes.
A representao em sinal e magnitude apresenta uma grande desvantagem: ela exige um
grande nmero de testes para se realizar uma simples soma de dois nmeros inteiros. O
algoritmo acima descrito complicado de ser realizado no computador, o que resulta em
baixa eficincia (execuo lenta). Um outro ponto negativo termos duas representaes
para o zero.

2.5.6.2 REPRESENTAO DE NMEROS EM COMPLEMENTO


Complemento a diferena entre cada algarismo do nmero e o maior algarismo possvel
na base. Uma vantagem da utilizao da representao em complemento que a subtrao
entre dois nmeros pode ser substituda pela sua soma em complemento.

REPRESENTAO DE NMEROS POSITIVOS EM COMPLEMENTO


A representao de nmeros positivos em complemento no tem qualquer alterao, isto ,
idntica representao em sinal e magnitude.

2.5.6.3 REPRESENTAO DE NMEROS NEGATIVOS EM COMPLEMENTO A


(BASE - 1)

A representao dos nmeros inteiros negativos obtida efetuando-se: (base - 1) menos


cada algarismo do nmero. Fica mais fcil entender atravs de exemplos:
Ex.1: Calcular o complemento a (base - 1) do nmero 29710.
Se a base 10, ento 10-1 = 9 e o complemento a (base -1) ser igual a complemento a 9

Ex.2: Calcular o complemento a (base - 1) do nmero 3A7EH.


Se a base 16, ento 10H-1 = F e o complemento a (base -1) ser igual a complemento a F.

Portanto:
Ex.1 Ex.2
(base -1) ---> 999 FFFF
- 297 - 3A7E
Complemento---> 702 C581
Org Comp Prof Pedro Corra Pag 27

Caso Particular: Nmeros na Base 2 (Complemento a 1)


Para se obter o complemento a 1 de um nmero binrio, devemos subtrair cada algarismo
de 1. Uma particularidade dos nmeros binrios que, para efetuar esta operao, basta
inverter todos os bits.
Como exemplo, vamos calcular o complemento a 1 (C1) de um nmero binrio 0011 com 4
dgitos.
1111
- 0011
1100 (C1)

Portanto, bastaria inverter todos os bits!


Vamos analisar como ficaria a representao em C1 dos nmeros binrios de 4 dgitos:
Binrio (se o
Decimal Decimal Binrio (em
nmero positivo,
(positivo) (negativo) C1)
no h alterao)
0 0000 0 1111
1 0001 -1 1110
2 0010 -2 1101
3 0011 -3 1100
4 0100 -4 1011
5 0101 -5 1010
6 0110 -6 1001
7 0111 -7 1000

FAIXA DE REPRESENTAO
A representao na base b em complemento a (base-1) com n bits possui bn representaes
e permite representar bn -1 valores. H duas representaes para o zero.
A faixa de representao de uma representao na base 2 em complemento a (base-1) com
n bits a mesma que em sinal e magnitude e pode ser calculada como
2n valores, entre - ( 2n-1-1) e + ( 2n-1-1)
O maior valor inteiro positivo ser ento + ( 2n-1-1) e o menor valor inteiro negativo ser
- ( 2n-1-1).
Org Comp Prof Pedro Corra Pag 28

Obs1.: o nmero de bits para a representao determinado no projeto do computador.


Obs2.: em C1 tambm existem duas representaes para o zero.
Vamos verificar qual a faixa de representao nos seguintes exemplos:
Base 10 com 3 dgitos: a representao varia de 000 a 999 (103 representaes),
representando os nmeros de -499 a -1 (faixa negativa), de +1 a +499 (faixa positiva).
Faixa Inferior Faixa Superior
Base 10
(positiva) (negativa)
C1 1 2.... 498 499 500 501 ..... 997 998
Nmero
1 2 .... 498 499 -499 -498 ..... -2 -1
representado
O zero pode ser representado tanto por 000 quanto por 999.
Base 16 com 4 dgitos: a representao varia de 0000 a FFFF, representando os nmeros de
-7FFF a -0001 (faixa negativa) e de +0001 a +7FFF (faixa positiva).
Faixa Inferior Faixa Superior
Base 16
(positiva) (negativa)
C1 0001 0002 ... 7FFF 8000 8001 ....FFFE
Nmero -7FFF -7FFE ...... -
0001 0002 ... 7FFF
representado 0001
O zero pode ser representado tanto por 0000 quanto por FFFF.

Obs: Podemos concluir que, tal como na representao em sinal e magnitude, sempre
que em uma representao em complemento o primeiro dgito binrio for 1, o nmero
representado negativo! Mas importante notar que o bit mais significativo, na
representao em complemento, ao contrrio do que ocorre na representao em sinal
e magnitude, NO REPRESENTA O SINAL DE NEGATIVO!
Org Comp Prof Pedro Corra Pag 29

ARITMTICA EM COMPLEMENTO A (BASE - 1)


Na aritmtica em complemento a (base-1), basta somar os nmeros, sendo que um nmero
negativo estar representado por seu complemento. Ex.: Somar + 123 com - 418 (decimal).
Sinal e
Complemento a (base-1) Verificao
magnitude
- 418 581 (C9) 999
+ 123 + 123 - 295
- 295 704 704
Verificamos que o resultado 704 (C9) um nmero negativo, isto , o complemento a 9
(base 10 -1) de 295.
Repare que a subtrao (ou soma de um nmero positivo com um nmero negativo) se
transforma, nesta representao, em uma soma em complemento, isto , a soma dos
complementos do nmero positivo com o nmero negativo! Portanto, numa subtrao
(realizada atravs de soma em complemento), se o nmero positivo, mantenha-o; se o
nmero negativo, complemente-o; e a, s somar! Dessa forma, podemos constatar que
o algoritmo da soma em complemento muito mais simples que o da soma em sinal e
magnitude, de vez que no requer nenhum teste. No entanto, continuamos com duas
representaes para o zero. Vamos a seguir discutir a soluo para esse problema.

REPRESENTAO
2.5.6.4 DE NMEROS NEGATIVOS EM
COMPLEMENTO A BASE
A representao dos nmeros inteiros negativos em complemento a base obtida
subtraindo-se da base cada algarismo do nmero. Ora, seria a mesma coisa subtrair cada
algarismo de (base-1), isto , calcular o complemento a (base -1) e depois somar 1 ao
resultado, ou seja:
b - N = [(b-1) - N] + 1.
Ou seja, encontramos o complemento a (base-1) do nmero (o que facilita muito no caso
dos nmeros binrios) e depois somamos 1 ao resultado. Fica mais fcil entender atravs de
exemplos:
Ex.1: Calcular o complemento a base do nmero 29710.
Se a base 10, o complemento a base ser igual a complemento a 10.
Ex.2: Calcular o complemento a base do nmero 3A7Eh.
Se a base 16 (lembremos mais uma vez que o H ou h depois do nmero simboliza
"hexadecimal"), o complemento a base ser igual a complemento a 1610 ou 10h.
Org Comp Prof Pedro Corra Pag 30

Portanto, calculando o complemento a base dos nmeros acima, temos:


Ex.1
Ex.1 Ex.2
(alternativa)
1000 999 FFFF
- 297 - 297 - 3A7E
702 702 C581
+ 001 + 0001
703 C582

Caso Particular: Nmeros na Base 2 (Complemento a 2)


Para se obter o complemento a 2 de um nmero binrio, a regra geral nos diz para subtrair
cada algarismo de 2. Ora, seria a mesma coisa que subtrair cada algarismo de 1
(complemento a 1) e depois somar 1 ao resultado, ou seja: (2-N) = (1-N) + 1. Assim,
tirando partido da particularidade dos nmeros binrios anteriormente apresentada (para
obter o C1 de um nmero binrio, basta inverter todos os bits), para obter o C2 de um
nmero obtemos primeiro o C1 (invertendo os bits) e depois somar 1 ao resultado.
Como exemplo, vamos calcular o complemento a 2 (C2) de um nmero binrio 0011 com 4
dgitos.
1111
- 0011
1100 (C1)
+ 0001
1101 (C2)
Vamos analisar como ficaria a representao em C2 dos nmeros binrios de 4 dgitos:
Binrio (se o
Decimal nmero Decimal
Binrio (C2)
(positivo) positivo, no h (negativo)
alterao)
0 0000 -1 1111
1 0001 -2 1110
2 0010 -3 1101
3 0011 -4 1100
4 0100 -5 1011
5 0101 -6 1010
6 0110 -7 1001
7 0111 -8 1000
Org Comp Prof Pedro Corra Pag 31

Vemos assim que em C2, no h duas representaes para o valor 0 e


conseqentemente abriu-se lugar para mais uma representao - no caso, mais um
nmero negativo pode ser representado.
FAIXA DE REPRESENTAO
A representao na base b em complemento a base com n bits possui bn representaes e
permite representar bn valores.
A faixa de representao de uma representao na base 2 em complemento a base com n
bits pode ser calculada como
2n valores (entre - 2n-1 e + 2n-1-1), sendo 2 a base.
O maior valor inteiro positivo ser ento + ( 2n-1-1) e o menor valor inteiro negativo ser -
( 2n-1).

Obs1.: o nmero de bits para a representao determinado no projeto do computador.


Obs2.: nesta representao somente existe uma representao para o zero e h mais um
nmero negativo representado!
Nos exemplos acima, vamos verificar qual a faixa de representao:
Base 10 com 3 dgitos: de 0 a 999 (103 valores), representando de -500 a -1 (faixa negativa)
e de 1 a +499 (faixa positiva). O zero tem apenas uma representao: 000.
Faixa Inferior Faixa Superior
Base 10
(positiva) (negativa)
C2 1 2 .... 499 500 501 ..... 999
Nmero
1 2 .... 499 -500 -499 ... -1
representado
Base 16 com 4 dgitos: de 0 a FFFF, representando -8000 a -1 (faixa negativa) e de 0 a
+7FFF (faixa positiva). O zero tem apenas uma representao: 0000.
Faixa Inferior Faixa Superior
Base 16
(positiva) (negativa)
C2 0001 0002 ... 7FFF 8000 F001 ...... FFFF
Nmero
0001 0002 ... 7FFF -8000 -7FFF... -0001
representado
Org Comp Prof Pedro Corra Pag 32

Obs: Podemos concluir que, tal como na representao em sinal e magnitude e em


complemento a (base-1), sempre que em uma representao em complemento a base o
primeiro dgito binrio for 1, o nmero representado negativo! Mas importante
notar que o bit mais significativo, na representao em complemento, ao contrrio do
que ocorre na representao em sinal e magnitude, NO REPRESENTA O SINAL
DE NEGATIVO!
ARITMTICA EM COMPLEMENTO A BASE
Na aritmtica em complemento a base, basta somar os nmeros, sendo que um nmero
negativo estar representado por seu complemento a base. Ex.: Somar +123 com -418
(decimal).
Sinal e
Clculo C2 C2 Verificao
magnitude
- 418 999 582 999
+ 123 - 418 + 123 - 295
- 295 581 (C1) 705 (C2) 704
+ 001 + 001
582 (C2) 705
Verificamos que o resultado 705 (C2) um nmero negativo, isto , o complemento a 10
(base 10) de 295.
Repare que a subtrao (ou soma de um nmero positivo com um nmero negativo) se
transforma em uma soma em complemento, isto , a soma dos complementos do nmero
positivo com o nmero negativo! Portanto, se o nmero positivo, mantenha-o; se o
nmero negativo, complemente-o; e a, s somar! Dessa forma, podemos constatar que
o algoritmo da soma em complemento muito mais simples que o da soma em sinal e
magnitude, de vez que no requer nenhum teste.

ARITMTICA EM COMPLEMENTO - SOMA EM COMPLEMENTO A DOIS


O algoritmo da soma (ou subtrao) em complemento a dois:
a) Somar os dois nmeros, bit a bit, inclusive o bit de sinal.
b) Despreza-se o bit para fora do nmero, se houver.
c) O resultado estar correto (no acontece overflow):
1) Se no ocorreu "vai-um" para o bit de sinal nem para fora do nmero ou
2) Se ocorrer "vai-um" tanto para o bit de sinal quanto para fora do nmero
Org Comp Prof Pedro Corra Pag 33

d) O resultado estar incorreto (acontece overflow):


1) Se ocorrer "vai-um" s para o bit de sinal (e no para fora do nmero):
2) Se no ocorrer "vai-um" para o bit de sinal e somente ocorrer para fora do
nmero:
------- (isto significa que o resultado excede a faixa de representao para o nmero de bits
adotado).
Nota: Podemos constatar que o algoritmo de soma em C2 bem mais simples que o de
soma em C1.
Exemplos (referidos aos casos acima), considerando representao com 6 bits:
caso c.1: caso d.1: caso c.2: caso c.2: caso d.2:
15+10 = 2510 15 + 17 = 3210 -15 -10 = -2510 -15 -17 = -3210 -15 -27 = -4210
_111 11111 1 1 11111 1 ____1
001111 (+) 001111 (+) 110001 (-) 110001 (-) 110001 (-)
+ 001010 (+) + 010001 (+) + 110110 (-) + 101111 (-) + 100101 (-)
011001 (+) 100000 (-) 100111 (-) 100000 (-) 010110 (+)
CORRETO OVERFLOW CORRETO CORRETO OVERFLOW
(ocorreu "vai- (ocorreu "vai- (s ocorreu
(s ocorreu um" p/ bit de um" p/ bit de "vai-um" p/
(no ocorreu
"vai-um" para sinal e p/ fora sinal e p/ fora fora do n - o n
"vai-um")
o bit de sinal) do n - o n de do n - o n de de "vai-um"
"vai-um" par) "vai-um" par) mpar)
obs.: soma de
n negativos
obs.: soma de
(despreza-se o (despreza-se o no poderia dar
n positivos
"vai-um" para "vai-um" para positivo
no poderia
fora do nmero) fora do nmero) (despreza "vai-
dar negativo
um" p/ fora do
n)
A faixa de representao com 6 bits em C2 vai de -32 a +31. Conferindo as contas pela
representao decimal, vemos que os resultados fora desta faixa esto necessariamente
incorretos (ocorreu overflow)
Pode-se aplicar o mesmo teste prtico que, quando ambos os nmeros tem o mesmo sinal,
pode mostrar se ocorreu overflow e o resultado obtido est incorreto: basta ver que na soma
de dois nmeros negativos, o resultado s pode ser negativo, e a soma de dois nmeros
positivos s poderia dar resultado positivo!
Org Comp Prof Pedro Corra Pag 34

2.5.6.5 Exerccios

1) Converter os seguintes valores decimais em valores binrios equivalentes,


utilizando o complemento a 2 com 8 bits:
a) -12 e) 120
b) -104 f) -115
c) -73 g) -129
d) 69 h) 128

2) Represente o resultado das operaes abaixo em binrio, utilizando a aritmtica


de complemento a 2 e considerando o espao de representao com 8 bits:
a) X = 110 - 12 e) X = -48 - 22
b) X = 100 + 25 f) X = 37 + 91
c) X = -61 + 82 g) X = -53 - 76

2.5.7 REPRESENTAO DE NMEROS FRACIONRIOS (PONTO


FLUTUANTE)
A converso da parte fracionria de um nmero na base decimal para a base binria, pode
ser obtida atravs do seguinte algoritmo:
1. Multiplicar a parte fracionria por 2 (base alvo);
2. O valor da parte inteira deve ser anotado;
3. Se a parte fracionria do resultado for diferente de zero, repetir o primeiro
passo;
4. Se a parte fracionria do resultado for zero, deve-se parar as multiplicaes e
o nmero binrio fracionrio ser formado pela seqncia das partes inteiras
anotadas.
Org Comp Prof Pedro Corra Pag 35

Exemplo: Converter o nmero 0,375 para seu equivalente binrio:

2.5.7.1 Exerccios

1) Converter os seguintes valores fracionrios decimais em valores binrios


equivalentes, utilizando 8 bits:
a) 0,25 e) 0,13
b) 0,625 f) 0,15
c) 0,73 g) 0,125
d) 0,556 h) 0,895321
Org Comp Prof Pedro Corra Pag 36

2.6 Conceitos de Lgica Digital

2.6.1 Circuitos Lgicos e Portas Lgicas (Gates)


Todos as complexas operaes de um computador digital acabam sendo
combinaes de simples operaes aritmticas e lgicas bsicas: somar bits, complementar
bits (para fazer subtraes), comparar bits, mover bits. Estas operaes so fisicamente
realizadas por circuitos eletrnicos, chamados circuitos lgicos (ou gates - "portas"
lgicas).
Computadores digitais (binrios) so construdos com circuitos eletrnicos digitais -
as portas lgicas (circuitos lgicos).
Os sistemas lgicos so estudados pela lgebra de chaveamentos, um ramo da
lgebra moderna ou lgebra de Boole, conceituada pelo matemtico ingls George Boole
(1815 - 1864). Boole construiu sua lgica a partir de smbolos, representando as expresses
por letras e ligando-as atravs de conectivos - smbolos algbricos.
A lgebra de Boole trabalha com apenas duas grandezas: falso ou verdadeiro. As
duas grandezas so representadas por 0 (falso) e 1 (verdadeiro).
Nota: lembrar que nos circuitos lgicos do computador, os sinais binrios so
representados por nveis de tenso.

2.6.2 Operadores Lgicos


Os conectivos ou operadores lgicos ou funes lgicas so:

E (ou AND) - uma sentena verdadeira se - e somente se - todos os termos


forem verdadeiros.
Org Comp Prof Pedro Corra Pag 37

OU (ou OR) - uma sentena resulta verdadeira se qualquer um dos termos


for verdadeiro.
NO (ou NOT) - este operador inverte um termo.

Os operadores lgicos so representados por:


____
NOT ( X ) - uma barra horizontal sobre o termo a ser invertido ou
negado.

E ( . ) - um ponto, como se fosse uma multiplicao.

OU ( + ) - sinal de soma.

2.6.3 Tabela Verdade


So tabelas que representam todas as possveis combinaes das variveis de
entrada de uma funo, e os seus respectivos valores de sada.
A seguir, apresentamos as funes bsicas, e suas representaes em tabelas-
verdade.

2.6.4 Funo E (AND)


A porta E (AND) combina dois ou mais sinais de entrada de forma equivalente a um
circuito em srie, para produzir um nico sinal de sada, ou seja, ela produz uma sada 1, se
todos os sinais de entrada forem 1; caso qualquer um dos sinais de entrada for 0, a porta
AND produzir um sinal de sada igual a zero.
Porta E (AND) X = A.B
Org Comp Prof Pedro Corra Pag 38

2.6.5 Funo OU (OR)


A porta OR combina dois ou mais sinais de entrada de forma equivalente a um
circuito em paralelo, para produzir um nico sinal de sada, ou seja, ela produz uma sada 1,
se qualquer um dos sinais de entrada for igual a 1; a porta OR produzir um sinal de sada
igual a zero apenas se todos os sinais de entrada forem 0.

Porta OU (OR) X = A+B

Nota: A no ser pela estranha expresso 1 + 1 = 1, as demais expresses "parecem"


a aritmtica comum a que estamos acostumados, onde E substitui "vezes" e OU substitui
"mais".

2.6.6 Funo NOT

A porta NOT inverte o sinal de entrada (executa a NEGAO do sinal de entrada),


ou seja, se o sinal de entrada for 0 ela produz uma sada 1, se a entrada for 1 ela produz
uma sada 0.
__
Porta NO (NOT) A = A

Obs.: a inverso em binrio funciona como se fizssemos 1 - A = X. Ou seja, 1 - 0 = 1 e 1 - 1 =


0.
Org Comp Prof Pedro Corra Pag 39

2.6.7 Aplicao da lgebra de Boole aos Computadores Digitais

Boole desenvolveu sua lgebra a partir desses conceitos bsicos e utilizando apenas
os algarismos 0 e 1.
Os primeiros computadores fabricados, como o ENIAC, trabalhavam em
DECIMAL. No entanto, a utilizao de circuitos eletrnicos que operassem com 10
diferentes nveis de tenso (para possibilitar detectar as 10 diferentes grandezas
representadas no sistema decimal) acarretavam uma grande complexidade ao projeto e
construo dos computadores, tendo por conseqncia um custo muito elevado. Surgiu
ento a idia de aplicar a lgebra de Boole, simplificando extremamente o projeto e
construo dos computadores.
Mas como os conceitos da lgebra de chaveamentos (um ramo da lgebra do Boole)
so aplicados ao projeto dos computadores digitais?
A chave de tudo um circuito eletrnico chamado CHAVE AUTOMTICA.
Como funciona uma chave automtica?
Vamos imaginar um circuito chaveador com as seguintes entradas:
- uma fonte de alimentao ( E ) (fornece energia para o circuito);
- um fio de controle ( C ) (comanda a operao do circuito);
- um fio de sada ( S ) (conduz o resultado).

No desenho, a chave permanece aberta enquanto o sinal C no fio de controle for 0


(ou Falso). Enquanto no houver um sinal (sinal 1 ou Verdadeiro) no fio de controle, que
mude a posio da chave, o sinal no fio de sada S ser 0 (ou Falso). Quando for aplicado
um sinal (sinal 1 ou Verdadeiro) ao fio de controle, a chave muda de posio, tendo como
resultado que o sinal na sada ser ento 1 (ou Verdadeiro). A posio da chave se manter
enquanto no ocorrer um novo sinal na entrada.
A chave automtica foi inicialmente implementada com rels eletromecnicos e
depois com vlvulas eletrnicas. A partir da metade da dcada de 50, passaram a ser
Org Comp Prof Pedro Corra Pag 40

utilizados dispositivos em estado slido - os TRANSISTORES, inventados em Stanford em


1947. Os modernos Circuitos Integrados - CI's e os microprocessadores so implementados

com milhes de transistores "impressos" em minsculas pastilhas.

Vamos agora analisar o que ocorreria se ns ligssemos em SRIE duas chaves


automticas como as acima, e ligssemos uma lmpada ao circuito. O circuito resultante
poderia ser representado assim:
CIRCUITO E (AND)

A lmpada acenderia se - e somente se - as DUAS chaves estivessem na posio


LIGADO (ou verdadeiro), o que seria conseguido com as duas entradas A e B em estado 1
(Verdadeiro). Substituindo CORRENTE (ou chave ligada) por 1 e AUSNCIA DE
CORRENTE (ou chave desligada) por 0, como ficaria nossa tabela verdade para
LMPADA LIGADA = 1 e LMPADA DESLIGADA = 0?
Tabela-Verdade
A B L
0 0 0
0 1 0
1 0 0
1 1 1

D para reconhecer a nossa j familiar FUNO E?


O circuito acima que implementa a funo E chamado de PORTA E (AND
GATE).
Org Comp Prof Pedro Corra Pag 41

Vamos agora analisar o que ocorreria se ns ligssemos em PARALELO duas


chaves automticas como as acima, e ligssemos uma lmpada ao circuito. O circuito
resultante poderia ser representado assim:

CIRCUITO OU (OR)

A lmpada acenderia se qualquer uma das chaves estivesse na posio LIGADO


(ou verdadeiro), o que seria conseguido com uma das duas entradas A ou B em estado 1
(Verdadeiro). Substituindo CORRENTE (ou chave ligada) por 1 e AUSNCIA DE
CORRENTE (ou chave desligada) por 0, como ficaria nossa tabela verdade para
LMPADA LIGADA = 1 e LMPADA DESLIGADA = 0?

Tabela-Verdade
A B L
0 0 0
0 1 1
1 0 1
1 1 1

E agora, d para reconhecer a nossa j familiar FUNO OU?


O circuito acima, que implementa a funo OU, chamado de PORTA OU (OR
GATE).
Org Comp Prof Pedro Corra Pag 42

2.6.8 Porta Lgica (ou Gate)


Como visto at aqui, podemos afirmar que portas lgicas so dispositivos ou
circuitos lgicos (hardware) que operam um ou mais sinais lgicos de entrada para
produzir uma (e somente uma) sada, a qual dependente da funo implementada no
circuito.

Um computador constitudo de uma infinidade de circuitos lgicos, que executam


as seguintes funes bsicas:
a) realizam operaes matemticas;
b) controlam o fluxo dos sinais;
c) armazenam dados.

Existem dois tipos de circuitos lgicos:

a) COMBINACIONAL - a sada funo dos valores de entrada correntes; esses


circuitos no tem capacidade de armazenamento [casos a) e b) acima].

b) SEQUENCIAL - a sada funo dos valores de entrada correntes e dos


valores de entrada no instante anterior; usada para a construo de circuitos de
memria (chamados "flip-flops" - caso c acima).
Org Comp Prof Pedro Corra Pag 43

2.6.9 Outros Circuitos Fundamentais

2.6.9.1 Porta NAND ( NO E )


A porta NAND equivale a uma porta AND seguida por uma porta NOT, isto , ela
produz uma sada que o inverso da sada produzida pela porta AND.

2.6.9.2 Porta NOR ( NO OU )


A porta NOR equivale a uma porta OR seguida por uma porta NOT, isto , ela
produz uma sada que o inverso da sada produzida pela porta OR.

2.6.9.3 Porta XOR ( OU Exclusivo )


A porta XOR compara os bits; ela produz sada 0 quando todos os bits de entrada
so iguais e sada 1 quando pelo menos um dos bits de entrada diferente dos demais.
Org Comp Prof Pedro Corra Pag 44

2.6.10 Exemplo de circuitos utilizando portas lgicas:


A) Uma campainha que toca (sada) se o motorista der a partida no motor do carro
(entrada) sem estar com o cinto de segurana afivelado (entrada).
Se a ignio for ACIONADA (1) e o cinto estiver DESAFIVELADO (1), a campainha
ser ACIONADA (1). Caso contrrio, a campainha no toca.
Tabela-Verdade
Ignio Cinto Campainha
0 0 0
0 1 0
1 0 0
1 1 1
Basta incluir uma porta AND.

B) Detector de incndio com vrios sensores (entradas) e uma campainha para


alarme (sada).
Se QUALQUER UM dos sensores for acionado (significando que um dos sensores
detectou sinal de incndio), a campainha ser ACIONADA.
Tabela-Verdade
Sensor 1 Sensor 2 Campainha
0 0 0
0 1 1
1 0 1
1 1 1
Basta incluir uma porta OR.
Org Comp Prof Pedro Corra Pag 45

2.6.11 Exerccios

1) Seja A = 0110 e B = 1101. Calcular X = A B (A and B).

2) Seja A = 0101, B = 0011 e C = 1111. Calcular X = A B C (A and B and C).

3) Seja A = 0110 e B = 1110. Calcular X = A + B (A or B).

4) Seja A = 1100, B = 1111 e C = 0001. Calcular X = A + B + C (A or B or C).

___
5) Seja A = 10011. Calcular X = A ( not A ).

_____
6) Seja A = 10010 e B = 11110. Calcular X = A B .

7) Seja A = 101110 e B = 01110.


_____
a) Calcular X = A B .
__ __
b) Calcular Y = A B .
Org Comp Prof Pedro Corra Pag 46

3. Subsistema de Memria

3.1. TECNOLOGIAS
As primeiras tecnologias utilizadas em memrias foram as memrias de ncleos
magnticos, hoje apenas uma curiosidade. As memrias modernas so compostas por
circuitos semicondutores, com novas tecnologias sendo criadas a cada ano permitindo que
grandes quantidades de clulas de memria sejam encapsuladas em pequenas pastilhas.

3.2. HIERARQUIA DE MEMRIA


A MP no o nico dispositivo de armazenamento de um computador. Em funo
de caractersticas como tempo de acesso, capacidade de armazenamento, custo etc,
podemos estabelecer uma hierarquia de dispositivos de armazenamento em computadores.

Tipo Capacidade Velocidade Custo Localizao Volatilidade


muito
Registrador Bytes muito alta UCP Voltil
alto
Memria Cache Mbytes alta alto UCP/placa Voltil
Memria Principal Gbytes mdia mdio Placa Voltil
Memria Auxiliar Tbytes baixa baixo Externa No Voltil

Custo alto
Velocidade alta
Baixa capacidade
de armazenamento
Reg

Memria Cache

Memria Principal
Baixo custo
Velocidade baixa
Elevada capacidade Memria Auxiliar
de armazenamento

Tringulo da memria
Org Comp Prof Pedro Corra Pag 47

A UCP v nesta ordem e acessa primeiro a que est mais prxima. Subindo na
hierarquia, quanto mais prximo da UCP, maior velocidade, maior custo, porm menor
capacidade de armazenamento.

3.3. REGISTRADORES
Registradores so dispositivos de armazenamento temporrio, localizados na UCP,
extremamente rpidos, com capacidade para apenas um dado (uma palavra). Devido a sua
tecnologia de construo e por estar localizado como parte da prpria pastilha ("chip") da
UCP, muito caro. O conceito de registrador surgiu da necessidade da UCP armazenar
temporariamente dados intermedirios durante um processamento. Por exemplo, quando
um dado resultado de operao precisa ser armazenado at que o resultado de uma busca da
memria esteja disponvel para com ele realizar uma nova operao.
A figura 1 ilustra o smbolo grfico de um registrador de carga paralela de 8 bits,
apresentando as suas 8 entradas, 8 sadas e as entradas para os comandos que habilitam
estas entradas ou sadas.

Registrador de 8 bits

Figura 1 - Registrador de 8 bits e carga paralela.

Mquinas RISC so geralmente construdas com um grande conjunto de


registradores, de forma a trazer os dados para o mais prximo possvel da UCP, de forma a
que o programa opere sempre sobre dados que esto em registradores.
Registradores so VOLTEIS, isto , dependem de estar energizados para manter
armazenado seu contedo.
Org Comp Prof Pedro Corra Pag 48

3.4. MEMRIA CACHE


Com o desenvolvimento da tecnologia de construo da UCP, as velocidades foram
ficando muito mais altas que as das memrias, que no tiveram a mesma evoluo de
velocidade (o aperfeioamento das memrias se deu mais no fator capacidade). Desta
forma, os tempos de acesso s memrias foram ficando insatisfatrios e a UCP ao buscar
um dado na memria precisa ficar esperando muitos ciclos at que a memria retorne o
dado buscado ("wait states"), configurando um gargalo ("bottleneck") ao desempenho do
sistema.

Por esse motivo, desenvolveram-se outras arquiteturas de memria privilegiando a


velocidade de acesso. A arquitetura da memria cache muito diferente da arquitetura da
memria principal e o acesso a ela muitas vezes mais rpido (p.ex: 5 ns contra 70 ns).
No entanto, o custo de fabricao da memria cache muito maior que o da MP.
Desta forma, no econmico construir um computador somente com tecnologia de
memria cache. Criou-se ento um artifcio, incorporando-se ao computador uma pequena
poro de memria cache, localizada entre a UCP e a MP, e que funciona como um espelho
de parte da MP.
Desenvolveram-se ainda algoritmos que fazem com que, a cada momento, a
memria cache armazene a poro de cdigo ou dados (por exemplo, uma sub-rotina) que
esto sendo usados pelas UCP. Esta transferncia (MP <--> Cache) feita pelo hardware:
ela independe do software, que ignora se existe ou no memria cache, portanto ignora essa
transferncia; nem o programador nem o sistema operacional tm que se preocupar com
ela.
A memria cache opera em funo de um princpio estatstico comprovado: em
geral, os programas tendem a referenciar vrias vezes pequenos trechos de programas,
como loops, sub-rotinas, funes e s tem sentido porque programas executados
linearmente, seqencialmente, so raros. Desta forma, algoritmos (chamados algoritmos de
cache) podem controlar qual parte do cdigo ficar copiado na cache, a cada momento.

Com a incluso da memria cache podemos enumerar, de modo simplista, o


funcionamento do sistema:
Org Comp Prof Pedro Corra Pag 49

Sempre que a UCP vai buscar uma nova instruo (ou dado), ela acessa a
memria cache;
Se a instruo (ou dado) estiver na cache, chama-se de acerto ou "cache hit", ela
transferida em alta velocidade (compatvel com a da UCP).
Se a instruo (ou dado) no estiver presente na cache, chama-se de falta,
"cache miss" ou "cache fault", ento o sistema est programado para
interromper a execuo do programa e transferir a instruo desejada da MP
para a cache. Porm, essa transferncia no somente da instruo (ou dado)
desejada, mas dela e de um grupo subsequente, na pressuposio de que as
instrues do grupo sero requeridas pela UCP em seguida e, portanto, j
estaro na cache quando necessrio. O ndice de cache hit ou taxa de acerto da
cache geralmente acima de 90%.

Memrias cache tambm so VOLTEIS, isto , dependem de estar energizadas


para manter gravado seu contedo.

3.5. MEMRIAS AUXILIARES


Memrias auxiliares resolvem problemas de armazenamento de grandes
quantidades de informaes. A capacidade da MP limitada pelo seu relativamente alto
custo, enquanto as memrias auxiliares tem maior capacidade e menor custo; portanto, o
custo por bit armazenado muito menor.
Outra vantagem importante que as memrias auxiliares no so VOLTEIS, isto
, no dependem de estar energizadas para manter gravado seu contedo.
Os principais dispositivos de memria auxiliar so: discos rgidos (ou HD),
disquetes, unidades de fita, CD-ROM, DVD, unidades tico-magnticas, etc.

OBS.: Cache de disco no a mesma tecnologia da memria cache. Trata-se do


emprego do mesmo conceito da memria cache, para acelerar a transferncia de dados
entre disco, MP e UCP, usando um programa (um software, por ex.: SmartDrive) para
manter um espelho do contedo de parte do disco (a mais provvel de ser requisitada a
Org Comp Prof Pedro Corra Pag 50

seguir pela UCP) gravado em uma parte da Memria Principal. Recentemente, as unidades
de disco passaram a incorporar em sua interface chips de memria - tipicamente 32 a 64
Kbytes - para acelerar a transferncia de dados, utilizando um algoritmo de cache.

3.6. MEMRIA PRINCIPAL (MP)


Memria Principal a parte do computador onde programas e dados so
armazenados para processamento. A informao (ou dado) permanece na memria
principal apenas enquanto for necessrio para seu emprego pela UCP. Assim, a rea de MP
que estava ocupada pela informao (ou dado), pode ser liberada para ser posteriormente
sobregravada por outra informao (ou dado). Quem controla a utilizao da memria
principal o Sistema Operacional.

ESTRUTURA DA MEMRIA PRINCIPAL - CLULAS E ENDEREOS

A memria precisa ter uma organizao que permita ao computador guardar e


recuperar informaes quando necessrio. No teria nenhum sentido armazenar
informaes que no fosse possvel recuperar depois. Portanto, no basta transferir
informaes para a memria. preciso ter como encontrar essa informao mais tarde,
quando ela for necessria, e para isso preciso haver um mecanismo que registre
exatamente onde a informao foi armazenada

Clula a unidade de armazenamento do computador. A memria principal


organizada em clulas. Clula a menor unidade da memria que pode ser endereada (no
possvel buscar uma "parte" da clula) e tem um tamanho fixo (para cada mquina). As
memrias so compostas de um determinado nmero de clulas ou posies. Cada clula
composta de um determinado nmero de bits. Todas as clulas de um dado computador tem
o mesmo tamanho, isto , todas as clulas daquele computador tero o mesmo nmero de
bits.
Org Comp Prof Pedro Corra Pag 51

Cada clula identificada por um endereo nico, pelo qual referenciada pelo
sistema e pelos programas. As clulas so numeradas seqencialmente, uma a uma, de 0 a
N-1. Cada um desses nmeros chamado de endereo da clula. O Endereo o
localizador da clula, que permite identificar univocamente uma clula. Assim, cada clula
pode ser identificada pelo seu endereo.
Unidade de transferncia a quantidade de bits que transferida da memria em
uma nica operao de leitura ou transferida para a memria em uma nica operao de
escrita. O tamanho da clula poderia ser igual ao da palavra, e tambm unidade de
transferncia, porm por razes tcnicas e de custo, so freqentemente diferentes.
OBS.: Uma clula no significa o mesmo que uma palavra; uma clula no necessariamente
contm uma palavra. Palavra a unidade de processamento da UCP. Uma palavra deve
representar um dado ou uma instruo, que poderia ser processada, armazenada ou
transferida em uma nica operao. No entanto, em geral no assim que acontece e os
computadores comerciais no seguem um padro nico para a organizao da UCP e MP.
Computadores comerciais (tais como por exemplo os baseados nos processadores Intel x86)
podem ter o tamanho da palavra definido como de 32 bits, porm sua estrutura de memria
tem clulas de 16 bits.

A estrutura da memria principal um problema do projeto de hardware:


- mais endereos com clulas menores ou
- menos endereos com clulas maiores ?
O tamanho mais comum de clula era 8 bits (1 byte); hoje j so comuns clulas
contendo vrios bytes.
Org Comp Prof Pedro Corra Pag 52

3.7. CAPACIDADE DA MEMRIA PRINCIPAL


A capacidade da MP em bits igual ao produto do n de clulas pelo total de bits
armazenados por clula.
T=NxM
T = total de bits que podem ser armazenados na MP
N = quantidade de clulas (ou n de endereos)
M = quantidade de bits que pode ser armazenada em uma clula individual
Para encontrar a capacidade em bytes, bastaria encontrar a capacidade em bits e
depois dividir por 8 (cada byte contm 8 bits) ou ento converter o tamanho (M) da clula
para bytes e depois multiplicar pelo nmero de clulas.

O ltimo endereo na memria o endereo N-1 (os endereos comeam em zero e


vo at N-1).

EXEMPLO:

a) Pode-se armazenar em cada clula um valor entre 0 e 2M-1 , porm um de cada


vez. So 2M combinaes possveis. Por exemplo:

Se M = 8 bits, temos 28 = 256. Seriam armazenados em cada clula


valores entre 0 0 0 0 0 0 0 0 (010 ou 016) e 11111111 (25510 ou FF16).

A MP tendo N endereos (quantidade de clulas) e sendo E = quantidade de bits dos


nmeros que representam cada um dos N endereos, ento:

N = 2E

Por exemplo, se N = 512 (porque a MP tem 512 clulas), ento 512 = 2 E , e E = 9,


pois 29 = 512. Neste exemplo, cada endereo ser representado por 9 bits.
Org Comp Prof Pedro Corra Pag 53

3.8. MEMRIA - EXERCCIOS

1) Numa MP com 1kbyte de capacidade, onde cada clula tem 8 bits:


a) quantas clulas tem a MP?
b) quantos bits so necessrios para representar um endereo de memria?

2) Um computador enderea 1k clulas de 16 bits cada uma. Pede-se:


a) sua capacidade de memria;
b) o maior endereo que o computador pode enderear;

3) A memria de um computador tem capacidade de armazenar 216 bits e possui um


barramento de dados de 16 bits. Pede-se:
a) o tamanho da clula de memria;

4) Calcular e completar os campos:

0 a (N-1) -
M - Tamanho x - n de bits N - n de T - Capac. da
Faixa de
da clula do endereo endereos memria
endereos
8 bits - - 1 K byte -
16 bits - 1 K endereos - -
- 4 bits - 256 bits -
4 bytes - - 4 Gbytes -
- - - 1 Mbyte 0 a 65.535
64 bits - - - 0 a 262.143
Org Comp Prof Pedro Corra Pag 54

3.9 Operaes efetuadas com a memria


As duas operaes bsicas que podem ser efetuadas com a memria so a leitura e
escrita:

Leitura: Procedimento de obteno do contedo armazenado em uma determinada


posio da memria, a partir do seu endereo.
Escrita: Procedimento de armazenar algum contedo em uma posio da memria
determinada pelo seu endereo. Qualquer dado armazenado anteriormente naquela
posio sobrescrito.

3.10. Barramentos
Um barramento uma conexo fsica para a transmisso de sinais entre sistemas digitais,
que utilizado para comunicao entre eles. Trata-se de um conjunto de condutores (fios,
trilhas, silcio) por onde passam os bits. Uma das principais caractersticas de um
barramento a sua largura, isto , quantos bits podem ser transmitidos simultaneamente.

3.11 Interface CPU/Memria Principal


Os blocos que formam a CPU no podem manipular diretamente os dados
armazenados na memria, pois somente operam sobre valores mantidos em registradores.
Assim, para cada valor necessrio para a execuo de um programa e que estiver na
memria principal, o processador precisa se comunicar com a memria para a transferncia
destes valores. Esta comunicao utiliza os seguintes componentes, ilustrados na figura 2:
REM - Registrador de Endereo da Memria: Armazena o endereo da clula onde
deve ser feita a prxima operao de leitura ou escrita na memria.
RDM - Registrador de Dados da Memria: Armazena os dados que esto sendo
transferidos de/para a memria.
Org Comp Prof Pedro Corra Pag 55

Barramento de Endereos: Liga o REM memria para transferncia do endereo da


clula a ser lida ou escrita. Sua largura em bits deve ser igual ao REM.
Barramento de Dados: Liga o RDM memria, possuindo a mesma largura deste. o
caminho por onde feita a transferncia do contedo.
Barramento de Controle: Interliga a CPU memria para enviar os comandos READ
e WRITE e receber WAIT.

R Barramento de Dados M
D e
C M m

P R Barramento de Endereos
r
E
U i
M Barramento de Controle
a
Figura 2 - Interface CPU / Memria

3.12 Transferncias realizadas na operao de Leitura


1) REM recebe o endereo da clula de memria que
armazena o dado que interessa.
2) Envio do comando de leitura (comando READ via barramento de
controle).
3) RDM recebe o contedo da clula de memria "apontada"
pelo REM.

3.13. Transferncias realizadas na operao de Escrita


1) REM recebe o endereo da clula de memria que
armazenar o dado.
2) RDM recebe o dado vindo de um registrador (interno ao
processador).
3) Envio do comando de escrita (comando WRITE via barramento de
controle).
4) A clula de memria "apontada" pelo REM recebe o
contedo do RDM.
Org Comp Prof Pedro Corra Pag 56

3.14. Notao RTL

Uma RTL, ou Linguagem de Transferncia de Registradores, corresponde a um


formalismo utilizado para descrever a arquitetura do computador em termos das
transferncias de dados entre blocos, sendo que estes blocos so, em geral, registradores ou
clulas de memria. O Quadro 1 apresenta a notao que ser utilizada no decorrer deste
estudo.
Notao Definio Exemplo
Transferncia de contedo entre
registradorores ou entre registrador e reg1 reg2
memria
MEM[ender] Identifica um endereo da memria reg1 MEM[100]
Seleciona somente o conjunto de bits
REGm..n que iniciam na posio m e terminam reg1 reg2
em n.
Operadores aritmticos de soma,
reg1 reg1 +
+, -, *, / subtrao, multiplicao e diviso,
reg2
respectivamente
Operadores bit-a-bit: E (and), OU
&, |, ^, ! (OR), OU exclusivo (XOR), negao reg1 !reg1
(NOT)
SE reg1 > 0 ENTO
SE condio ENTO
Transferncia condicional reg2 reg3
Transferncia

Operadores lgicos de comparao:


==, !=, <, >, igual, diferente, menor que, maior
<=, >= que, menor ou igual que, maior ou
igual que.

Quadro 1 - Notao RTL


Org Comp Prof Pedro Corra Pag 57

4. CPU - A Unidade Central de Processamento

A CPU (Central Processing Unit, ou Unidade Central de Processamento) o


crebro do computador, pois o dispositivo que executa o programas (softwares),
realizando o processamento das tarefas para o qual o computador foi programado. A CPU
pode ser chamada de processador, sendo que o microprocessador corresponde aos
processadores implementados em uma nica pastilha (chip) de silcio. O termo CPU no
deve ser utilizado para designar o gabinete do computador, como algumas pessoas fazem,
incorretamente.

Repetindo: a funo da CPU executar programas, que so uma seqncia de


instrues em linguagem de mquina. Uma instruo como uma ordem para que o
processador execute determinada operao. Elas correspondem aos comandos da linguagem
de mquina.

4.1. Modelo hipottico


Suponha um escritrio formado por uma mesa contendo uma calculadora, uma
mquina de escrever, um fichario com uma sequncia de cartes. Em uma parede est um
conjunto de 16 escaninhos, numerados de 0 a 15. Um, e apenas um, dos escaninhos possui
uma uma chave pendurada.

Figura 3 - Layout do escritrio


Org Comp Prof Pedro Corra Pag 58

O conjunto de ordens que o funcionrio que trabalha neste escritrio precisa


obedecer a seguinte:
a) Ler o prximo carto e armazenar o valor em um escaninho.
b) Imprimir o contedo de um escaninho.
c) Somar o valor armazenado em dois escaninhos e armazenar o resultado em um
escaninho.
d) Subtrair o valor armazenado em dois escaninhos e armazenar o resultado em um
escaninho.
e) Multiplicar o valor armazenado em dois escaninhos e armazenar o resultado em
um escaninho.
f) Dividir o valor armazenado em dois escaninhos e armazenar o resultado em um
escaninho.
g) Copiar o contedo de um escaninho para outro.
h) Mudar a chave de um escaninho para outro.
i) Se uma condio for verdadeira, ento mudar a chave de um escaninho para
outro. Esta condio sempre uma comparao entre os valores de dois
escaninhos.
j) Parar.

O trabalho do funcionrio consiste em, assim que solicitado, buscar a ordem


armazenada no escaninho que est marcado com a chave, colocar a chave no prximo
escaninho e efetuar a ordem que foi solicitada. Esta rotina prossegue, sequencialmente at
que a ordem seja Parar
Org Comp Prof Pedro Corra Pag 59

4.1.1. Exemplo: soma e mdia de 3 valores

O seguinte conjunto de escaninhos, apresentado no Quadro 2, corresponde tarefa


de ler trs valores, calcular e imprimir a soma e a mdia aritmtica dos valores lidos.

Quadro 2 - Exemplo de tarefa


0 1 2 3
Ler o prximo Somar #12 com #15 Somar #14 com #11 Se #14 < #13 mudar
carto e armazenar e guardar em #15 e guardar em #14 a chave para #0
no #12
4 5 6 7

Dividir #15 por #13 Imprimir #15 Imprimir #10 Parar

e guardar em #10
8 9 10 11

12 13 14 15

3 0 0
Org Comp Prof Pedro Corra Pag 60

4.1.2. Exemplo: clculo de fatorial


Ao executar as ordens contidas no conjunto de escaninhos apresentado no Quadro 3,
o nosso funcionrio ser capaz de ler um nmero impresso num carto e imprimir o fatorial
do nmero lido.

Quadro 3 - Exerccio
0 1 2 3
Ler o prximo Se #15 > #13 mudar Multiplicar #14 por Somar #12 com #15
carto e armazenar a chave para #5 #15 e guardar em e guardar em #15
no #13 #14
4 5 6 7

Mudar a chave para Imprimir #14 Parar

#1
8 9 10 11

12 13 14 15

1 0 1 2
Org Comp Prof Pedro Corra Pag 61

4.2. Conceito de programa armazenado


A seqncia de instrues que compem os programas em linguagem de mquina,
assim como os dados a serem processados so armazenadas na mesma memria principal,
ambos codificados em binrio. Uma instruo buscada por vez para ser executada, de
acordo com os seguintes passos:
1) Busca-se a prxima instruo na memria;
2) Decodifica-se a instruo;
3) Buscam-se dados na memria que serviro de operandos para a instruo, se for
o caso;
4) Calcula-se o endereo da prxima instruo;
5) Executa-se a instruo;
6) Armazena-se o resultado.

Este conceito tambm conhecido por modelo de von Neumann, sendo que o
gargalo neste sistema o grande fluxo de dados entre a CPU e a memria do computador.

4.3. Diagrama de blocos


A organizao bsica de um processador simples composta por um conjunto de
circuitos digitais responsveis pela execuo em sequncia das instrues que compem os
programas. Um processador mnimo deveria conter, pelo menos, os itens ilustrados na
Figura 4.
Org Comp Prof Pedro Corra Pag 62

4.3.1. Registradores
Para que a CPU possa efetuar operaes sobre os dados da memria, eles devem
ficar, mesmo que temporariamente, armazenados em registradores. O nmero de
registradores e os seus tamanhos dependem da arquitetura e organizao de um
processador, no podendo ser expandidos pelo usurio por serem implementados
diretamente no circuito integrado da CPU. O conjunto de registradores de um processador
muitas vezes chamado de banco de registradores (register file).
Alguns destes registradores possuem uso dedicado, isto , so utilizados
internamente pelo processador durante a execuo das instrues e no esto disponveis
para o programador. Por exemplo:
PC - Program Counter (ou CI - Contador de Instruo): Armazena o endereo
da prxima instruo a ser executada pela CPU.
RI - Registrador de Instruo: Mantm o cdigo binrio da instruo sendo
executada, a qual vai ser interpretada pelo decodificador de instrues, que por
sua vez, instrui Unidade de Controle sobre os passos a serem tomados para que
a instruo seja efetivamente executada.
RDM - Registrador de Dados da Memria: Armazena os dados que esto sendo
transferidos de/para a memria.
REM - Registrador de Endereos da Memria: Armazena o endereo da clula
onde deve ser feita a prxima operao de Leitura/Escrita na memria.

Parte dos registradores est disponvel para ser utilizada pelos programas.
Atualmente, a tendncia que os processadores disponibilizem algumas dezenas destes
registradores. Computadores mais simples deveriam disponibilizar, pelo menos, o seguinte
registrador:
AC - Acumulador: Serve para o armazenamento temporrio do resultado das
operaes lgicas e aritmticas. Quando o nico registrador disponvel, todas
as instrues o utilizam tanto como operando fonte como operando destino.
Org Comp Prof Pedro Corra Pag 63

4.3.2. Unidade de Aritmtica e Lgica - UAL (ou Unidade Lgico Aritmtica - ULA)

A UAL o subsistema responsvel por efetuar as operaes matemticas com os


dados. A figura 5 apresenta o smbolo lgico normalmente utilizado para representar uma
UAL.

Figura 5 Unidade de Aritmtica e Lgica

Entre as operaes realizadas, pode-se destacar as operaes aritmticas de soma,


subtrao, multiplicao e diviso; as operaes lgicas em nvel de bit AND, OR, XOR e
NOT; os deslocamentos e rotaes de bits a direita e esquerda e as comparaes. O Quadro
4 exemplifica algumas destas operaes.
Quadro 4 - Exemplos de operaes

Operao Operando-fonte1 Operando-fonte2 Resultado


Soma 00001001 00000111 00010000
Subtrao 00001001 00000111 00000010
Multiplicao 00001001 00000111 00111111
And 00001001 00000111 00000001
Or 00001001 00000111 00001111
XOr 00001001 00000111 00001110
Not 00001001 - 11110110
Org Comp Prof Pedro Corra Pag 64

4.3.3. Barramentos internos


Os barramentos internos interligam os componentes do processador para troca de
sinais e valores. Assim como no caso da comunicao processador/memria, normalmente
so trs os barramentos internos:
Barramento Interno de Dados: Usado na transferncia de dados entre os
registradores e entre registradores e a ULA. A sua largura define o tamanho da
palavra de mquina.
Barramento Interno de Endereos: Permite a transferncia de endereos entre
os registradores.
Barramento Interno de Controle: Transmite os sinais do bloco de controle que
comandam o funcionamento de cada circuito do processador.

Em alguns computadores, o barramento de dados e o de endereos pode ser


compartilhado (multiplexado).

4.3.4. Unidade de Controle


A Unidade de Controle a parte mais complexa da CPU, pois ela gerencia todos os
elementos lgicos para implementar qualquer operao solicitada. Ela responsvel por
comandar as transferncias entre registradores e entre CPU e dispositivos externos como a
memria e solicitar operaes ULA. Um relgio (clock) usado para manter o
sincronismo do funcionamento das partes.

A UC recebe como entrada o valor do Registrador de Instruo e decodifica-o. Para


cada cdigo de instruo ela gera uma sequncia de sinais diferentes, ativando os circuitos
correspondentes para que cada uma das tarefas necessrias para a busca e execuo da
instruo seja completada. Cada uma destas tarefas conhecida como uma microinstruo.
Uma UC pode ser microprogramada, se as microinstrues estiverem armazenadas em uma
memria ROM interna, ou hardwired, se forem completamente implementadas em
hardware.
Org Comp Prof Pedro Corra Pag 65

5. O processador hipottico PH1

Atualmente a constante evoluo dos processadores e, por conseqncia, o aumento


de sua complexidade dificulta a utilizao destes para a prtica do aprendizado de conceitos
iniciais sobre a sua arquitetura e organizao. Como forma alternativa, so utilizados
processadores hipotticos, geralmente criados no prprio meio acadmico para suprir as
necessidades das disciplinas. O PH1 um destes processadores, muito simples para ser
implementado comercialmente, mas que serve perfeitamente para o propsito de apresentar
ao aluno os principais conceitos bsicos sobre arquitetura e organizao de computadores.
Trata-se de um processador que trabalha com palavras (dados) e endereos de 8 bits. Ele
possui um conjunto de 16 instrues, as quais podem ter um operando, que sempre um
endereo de memria.

5.1. A organizao do PH1

A organizao interna do PH1 relativamente simples, se comparada com um


processador comercial. Ele formado por trs tipos de barramento, registradores, uma
unidade lgica aritmtica e uma unidade de controle, conforme mostrado na Figura 6.

Figura 6 - Diagrama de Blocos do PH1


Org Comp Prof Pedro Corra Pag 66

5.1.1. O conjunto de registradores

O PH1 possui um conjunto de cinco registradores, a maioria deles com 8 bits, com
exceo do RI que possui somente 4 bits. Estes podem ser classificados em dois grupos: de
uso reservado ao processador e de uso geral. No Quadro 5 so apresentados estes
registradores.

Quadro 5 Conjunto de registradores


Reg Nome Bits Descrio
AC Acumulador 8 Armazena um valor a ser processado
Armazena o endereo da prxima instruo a
PC Program counter 8
ser executada pela CPU
Mantm o cdigo binrio da instruo sendo
RI Registrador de instruo 4
executada
Registrador de dados da Armazena os dados que esto sendo transferidos
RDM 8
memria de ou para memria
Armazena o endereo da clula onde deve ser
Registrador de endereos
REM 8 feita a prxima operao de leitura ou escrita na
da memria
memria

O nico registrador de uso geral no PH1 o AC, isto , somente ele est disponvel
diretamente para o programador.

5.1.2. Os barramentos

O PH1 possui os trs barramentos internos independentes. O barramento de dados,


que tem a funo de realizar o transporte de dados da memria UAL, como tambm da
UAL para os registradores, ou ainda entre os registradores. Este transporte de dados pode
ser realizado em ambos os sentidos, como por exemplo, do RDM para o AC e vice-versa. O
barramento de endereos transporta os endereos entre os registradores, sendo que este
Org Comp Prof Pedro Corra Pag 67

utilizado somente por trs registradores (PC, REM, RDM). O ltimo tipo o barramento de
controle, que envia sinais a partir da UC a fim de comandar o funcionamento de cada
circuito do processador.

5.1.3. A Unidade Lgica e Aritmtica

O tamanho da palavra utilizada pela UAL do PH1 de oito bits e todas as suas
operaes so realizadas com nmeros inteiros sinalizados em complemento de dois. A
unidade lgica aritmtica recebe como entrada normalmente dois operandos. Um o
registrador AC e o outro pode ser um valor vindo da memria, armazenado
temporariamente em RDM. O resultado da operao armazenado novamente em AC.

5.1.4. A Unidade de Controle

Um barramento liga a UC ao registrador RI, para que a mesma possa obter e


decodificar a instruo contida neste registrador e gerar assim uma seqncia de sinais, os
quais ativam os circuitos correspondentes a cada uma das tarefas necessrias para que
aquela instruo seja executada por completo. Outro barramento, tambm de dados est
ligado ao registrador AC, para que possam ser executadas as operaes de desvio
condicional. Cada instruo decodificada pela unidade de controle gera uma seqncia de
sinais diferentes. Para que seja mantido o sincronismo entre a unidade de controle e os
outros componentes do processador, um clock utilizado.
Org Comp Prof Pedro Corra Pag 68

5.2. A arquitetura do PH1

5.2.1. Formato das instrues


O conjunto de instrues do PH1 formado por um total de 16 instrues, que esto
codificadas em dois formatos distintos. O primeiro formato diz respeito a instrues que
possuem operando (instrues com referncia operando na memria e instrues de
desvio), as quais necessitam de dois bytes para serem codificadas, sendo que o primeiro
contm o cdigo da instruo e outro contm o operando. O segundo formato usado por
instrues que no possuem operando na memria (instrues sem referncia memria),
sendo portanto utilizada somente uma palavra para a instruo. A Figura 7 ilustra os dois
tipos de formatos possveis das instrues do PH1, sendo que os bits descritos como no
usados so completados por bits zero (0).

4 bits: Cdigo 4 bits: Sempre 0000


Instruo
0 1 0 1 0 0 0 0
|--------------- 8 bits ---------------|
Operando (E) 1 0 0 1 0 0 1 1
Instrues com operando

4 bits: Cdigo 4 bits: Sempre 0000


Instruo
0 1 1 1 0 0 0 0
|--------------- 8 bits ---------------|
Instrues sem operando

Figura 7 - Formato das instrues do PH1


Org Comp Prof Pedro Corra Pag 69

5.2.2. Conjunto de instrues

O conjunto de instrues a principal caracterstica de uma arquitetura de


computador. Ele define quais so as operaes suportadas e qual o cdigo binrio
correspondente. Mquinas com conjunto de instrues diferentes no possuem
compatibilidade binria, isto , uma no pode executar um programa em linguagem de
mquina criado para a outra. O Quadro 6 apresenta o conjunto de instrues do PH1. Para
cada uma delas, apresenta-se o seu cdigo binrio (4 bits), o seu mnemnico, comentrio
sobre a mesma e na ltima coluna, descreve o formato da instruo, isto , se ela uma
Instruo com operando (Sim) ou se Instruo sem operando (No).
Quadro 6 - Conjunto de instrues do PH1
Cd. Instr Mnemnico Comentrio Op?
0000 NOP No executa nenhuma operao No
0001 LDR end Carrega valor em registrador AC Sim
0010 STR end Armazena valor na memria Sim
0011 ADD end Soma Sim
0100 SUB end Subtrao Sim
0101 MUL end Multiplicao Sim
0110 DIV end Diviso Sim
0111 NOT Operao lgica de negao bit-a-bit No
1000 AND end Operao lgica E bit-a-bit Sim
1001 OR end Operao lgica OU bit-a-bit Sim
1010 XOR end Operao lgica OU exclusivo bit-a-bit Sim
1011 JMP end Desvio incondicional Sim
1100 JEQ end Desvio condicional, caso AC seja igual a zero Sim
1101 JG end Desvio condicional, caso AC seja maior que zero Sim
1110 JL end Desvio condicional, caso AC seja menor que zero Sim
1111 HLT Trmino da execuo No
Org Comp Prof Pedro Corra Pag 70

5.2.3. A linguagem de mquina

Na programao em linguagem de mquina, as instrues e dados so carregados na


memria em binrio. Para tal o programador precisa conhecer o cdigo binrio e formato
utilizado por cada instruo, assim como a representao binria dos dados (valores
numricos) empregados na respectiva arquitetura. , tambm, responsabilidade do
programador escolher a posio na memria (endereos) onde dados e cdigo vo ser
armazenados.
Tomemos como exemplo um programa que realiza a soma de dois valores
armazenados na memria e armazena o resultado em outra posio dessa mesma memria
(A = B + C). No programa do Quadro 7, as instrues esto armazenadas sequencialmente
a partir do endereo 0, enquanto que os dados esto guardados a partir do endereo 128 da
memria (A no endereo 128, B no endereo 129 e C no endereo 130).
Quadro 7- Programa em linguagem de mquina
Endereo10 Contedo2
0 00010000
1 10000001
2 00110000
3 10000010
4 00100000
5 10000000
6 11110000
. . . ...............
128 00000000
129 00000101
130 00000010

A execuo de um programa em linguagem de mquina corresponde busca e


execuo de cada uma das suas instrues (e seus operandos quando for o caso),
sequencialmente (exceto em caso de instrues de desvio), at que o final do programa seja
alcanado.
Org Comp Prof Pedro Corra Pag 71

Exerccio 1: Como ficaro os registradores PC e AC e a clula de memria n 128


no final da execuo do programa em linguagem de mquina do Quadro 7 acima, no PH1?
Endereo10 Contedo2 PC AC Mem[128]
0 00010000
1 10000001
2 00110000
3 10000010
4 00100000
5 10000000
6 11110000
. . . ...............
128 00000000
129 00000101
130 00000010

Exerccio 2: Como ficaro os registradores PC e AC e a clula de memria n 129


no final da execuo do programa em linguagem de mquina do Quadro 8 abaixo, no PH1?
Quadro 8- Programa em linguagem de mquina
Endereo10 Contedo2 PC AC Mem[129]
0 00010000
1 10000000
2 01110000
3 10000000
4 10000001
5 00100000
6 10000001
7 11110000
. . . ...............
128 10110101
129 01010111
. . . ...............
Org Comp Prof Pedro Corra Pag 72

5.3. O caminho de dados (data path)


O caminho de dados corresponde ao fluxo de transferncias, no nvel de
transferncia de registradores, necessrias para a execuo de cada instruo em um
processador. O caminho de dados composto pelos registradores, os barramentos utilizados
para a transferncia e a ULA, que a responsvel pelas modificaes nos dados. Todos os
caminhos so controlados pela UC, sendo que ela traduz a necessidade de um novo ciclo de
busca do operando da instruo, se for o caso.
O ciclo de busca da instruo idntico para todas as instrues do PH1. Ao seu
final feita a decodificao, quando a unidade de controle determina qual a instruo e se
ela possui operando, sendo efetuado, se for o caso, a busca deste. Finalmente realizada a
execuo da instruo.

5.3.1. Busca do cdigo da instruo


Neste estgio, o byte que armazena a prxima instruo a ser executada buscado
na memria, sendo que os bits correspondentes ao cdigo so armazenados no registrador
RI. O valor do registrador PC incrementado para que passe a apontar para o prximo
endereo de memria.
REM PC
RDM MEM[REM]
PC PC + 1
RI RDM

5.3.2. Decodificao da instruo


Neste estgio o cdigo da instruo, armazenado em RI, interpretado, de forma
que o bloco de controle decida pela sequncia necessria para a finalizao dela. Este
estgio no envolve transferncia de dados, mas apenas de sinais de controle.
Org Comp Prof Pedro Corra Pag 73

5.3.3. Busca do operando


Caso a instruo recm decodificada possua operando, o mesmo deve ser buscado
na memria para que a instruo possa ser executada, sendo sempre armazenado no
registrador RDM. O registrador PC deve ser novamente incrementado para passar a apontar
para o endereo onde est a prxima instruo.
REM PC
RDM MEM[REM]
PC PC + 1

5.3.4. Execuo da instruo


O estgio de execuo das instrues difere para cada uma delas, sendo que consiste
em transferncias de valores em registradores, trocas de sinais entre circuitos e operaes
na UAL a fim de que a mesma seja completada. O Quadro 9 apresenta a seqncia de
transferncias realizadas para a execuo da instruo LDR (as demais sero preenchidas
em exerccio de sala de aula).

A instruo NOP no utiliza registradores, pois esta simboliza um ciclo ocioso do


processador, sendo que desta forma a mesma no pode ser descrita em notao RTL. O
mesmo caso ocorre com a instruo HLT (halt) que marca o fim da execuo do programa.

Quadro 9- Execuo das instrues do PH1 em RTL


Instruo Transferncias Instruo Transferncias
REM RDM
LDR end RDM MEM[REM] AND end
AC RDM

STR end OR end

ADD end XOR end


Org Comp Prof Pedro Corra Pag 74

SUB end JMP end

MUL end JEQ end

DIV end JG end

NOT JL end

Desta forma, o funcionamento de um processador pode ser descrito como um


conjunto de transferncias, isto , em Nvel de Transferncia de Registradores. Na
seqncia, apresenta-se o algoritmo completo que descreve o funcionamento interno do
PH1, neste nvel.
AC '00000000'
PC '00000000'
Parar '0'
Enquanto Parar == '0'
REM PC
RDM MEM[REM]
PC PC + 1
RI RDM
Se a instruo em RI possuir operando
REM PC
RDM MEM[REM]
PC PC + 1
Fim Se
Se RI == '0001' ; LDR
REM RDM
RDM MEM[REM]
AC RDM
Seno Se RI == '0010' ; STR
...
Seno Se RI == '1111' ; HLT
Org Comp Prof Pedro Corra Pag 75

Parar '1'
Fim Se
Fim Enquanto
Fim.
Figura 8 - Algoritmo de funcionamento do PH1.

5.4. Linguagem de montagem

A linguagem de montagem, ou assembly, uma alternativa mais simples do que a


linguagem de mquina para a programao em baixo nvel. Uma vez que o processador
conhece apenas a sua linguagem binria, um programa escrito em assembly deve ser
traduzido para linguagem de mquina atravs de um software conhecido por montador, ou
assembler.

A principal facilidade oferecida na programao em linguagem de montagem que,


em vez de inserir o cdigo das instrues diretamente em binrio, o programador utiliza
nomes simblicos, tambm chamados de mnemnicos. Assim, a instruo cujo cdigo
0111, pode ser escrita como NOT. Tambm no responsabilidade do programador
escolher os endereos de memria onde ficaro armazenados os dados. Pode-se utilizar
nomes simblicos (rtulos) que representam os dados. Outra vantagem do uso de assembly
que os valores numricos podem ser representadas em outras bases que no
necessariamente binria (decimal e hexadecimal, por exemplo).

Quase todos os montadores permitem, ainda, o uso de diretivas ou pseudo-


instrues para auxiliar o programador na codificao. Uma diretiva um comando da
linguagem de montagem que serve apenas para o controle do processo de traduo e que
no vai ser convertido em instrues da linguagem de mquina. Uma pseudo-instruo
um mnemonico que no corresponde a nenhuma das instrues da arquitetura, mas que ser
substitudo pelo montador em uma ou mais instrues reais. Exemplos de pseudo-
instrues somente sero estudados futuramente, na arquitetura do processador PH2. O
Quadro 10 apresenta os elementos da linguagem de montagem do processador PH1.
Quadro 10 A linguagem de montagem do PH1
Org Comp Prof Pedro Corra Pag 76

Smbolo Tipo Descrio


Indica que a partir desta declarao, o cdigo escrito ser
Text Diretiva armazenado a partir do endereo de memria 0 (zero), ou seja
no segmento de texto do programa.
Indica que a partir desta declarao, tudo o que for escrito ser
Data Diretiva armazenado a partir do endereo de memria 128, isto no
segmento de dados do programa.
Converte o nmero inteiro escrito logo aps a diretiva, para
Byte Diretiva
binrio, armazenando-o como um byte.
Referencia uma posio da memria, que pode ser chamada por
Palavra: Rtulo instrues de desvio, como por exemplo, JMP label, ou ainda
para referenciar uma diretiva byte.
Indica que incio de comentrio, sendo que tudo o que for
; Comentrio escrito aps o ; at o final da linha, ser ignorado pelo
montador.

A Figura 9, abaixo, ilustra o mesmo programa visto anteriormente em linguagem de


mquina (Quadro 7), agora na linguagem de montagem do PH1.
text ; incio segmento de texto do programa
LDR b
ADD c
STR a
HLT

data ; incio do segmento de dados


a: byte 0
b: byte 5
c: byte 2
Figura 9 - Programa em linguagem de montagem.
O processo de montagem, que corresponde traduo do programa em assembly
para a linguagem de mquina (binria), normalmente realizado em duas passagens, as
quais percorrem o cdigo fonte duas vezes, uma aps a outra.
Org Comp Prof Pedro Corra Pag 77

Na primeira passagem, o cdigo fonte percorrido procura da definio de rtulos


Todos os rtulos encontrados so armazenados, junto com o endereo correspondente, em
uma tabela de smbolos. O Quadro 11 demonstra a tabela gerada na montagem do
programa anterior. Nesta primeira passagem, tambm pode ser feita a verificao da
correo do cdigo fonte, isto , verifica-se se ele no contm erros.
Quadro 11 - Tabela de smbolos do programa-exemplo
Rtulo Endereo10
a 128
b 129
c 130
A segunda passagem responsvel pela gerao do cdigo de mquina equivalente.
Nesta etapa o cdigo fonte percorrido sendo que cada mnemnico de instruo
substitudo pelo cdigo binrio correspondente, os operandos simblicos das instrues so
convertidos para os respectivos endereos (para isto utilizada a tabela de smbolos) e os
valores constantes so convertidos para binrio, conforme ilustrado no Quadro 12.
Quadro 12 - Programa em linguagem de mquina
Endereo10 Contedo2
0 00010000
1 10000001
2 00110000
3 10000010
4 00100000
5 10000000
6 11110000
. . . ...............
128 00000000
128 00000101
130 00000010
5.5. Exerccios
Exerccio 1:
Preencha o quadro abaixo com os valores que seriam armazenados na MP, aps o
montador (assembler) do PH1 fazer a traduo para a linguagem de mquina do programa
Org Comp Prof Pedro Corra Pag 78

em linguagem de montagem (assembly) fornecido. Objetivo: exercitar a converso para


binrio.

text Endereo Contedo


0
LDR b 1
2
SUB a 3
DIV d 4
5
OR c 6
STR e 7
8
HLT 9
10
data ... ...............
... ...............
a: byte 10
128
b: byte 30 129
c: byte 43 130
131
d: byte 5 132
e: byte 0

Exerccio 2:

O contedo do quadro abaixo e a esquerda, representa as instrues de um programa


em linguagem de mquina, armazenadas na MP de um computador. Complete o espao ao
Org Comp Prof Pedro Corra Pag 79

lado direito do quadro com as instrues correspondentes em linguagem de montagem


(assembly) do PH1.
Armazena em c de 1 a 10 sequencialmente. Objetivo: ver o lao (loop)

Programa em Assembly

Text ; Incio do segmento de texto


Endereo Contedo ________________________________________
0 00010000 ________________________________________
1 10000000
2 00110000 ________________________________________
3 10000001 ________________________________________
4 00100000
5 10000010 ________________________________________
6 01000000 ________________________________________
7 10000011
8 11000000 ________________________________________
9 00001110 ________________________________________
10 00010000
________________________________________
11 10000010
12 10110000 ________________________________________
13 00000010
________________________________________
14 11110000
... ... ________________________________________
128 00000000
129 00000001
130 00000000 Data ; Incio do segmento de dados
131 00001010
a: BYTE 0
b: BYTE 1
c: BYTE 0
d: BYTE 10

Exerccio 3
Preencha o quadro abaixo com os valores que seriam armazenados na MP, aps o
montador (assembler) do PH1 fazer a traduo para a linguagem de mquina do programa
em linguagem de montagem (assembly) fornecido.
Org Comp Prof Pedro Corra Pag 80

Programa que calcula a potncia de um nmero x elevado a y-sima potncia.


Calcula r = x ** y

Endereo Contedo
0
text
1
LDR y 2
3
laco: JEQ fim 4
LDR r 5
6
MUL x 7
STR r 8
9
LDR y 10
SUB um 11
12
STR y
13
JMP laco 14
fim: LDR r 15
16
HLT 17
18
data 19
20
r: byte 1 ... ...............
x: byte 4 ... ...............
128
y: byte 3 129
um: byte 1 130
131

Exerccio 4:

O contedo do quadro abaixo e a esquerda, representa as instrues de um programa


em linguagem de mquina, armazenadas na MP de um computador. Complete o espao ao
Org Comp Prof Pedro Corra Pag 81

lado direito do quadro com as instrues correspondentes em linguagem de montagem


(assembly).
Calcula y = fatorial(x)

End Contedo Programa em Assembly


0 0 0 0 1 0 0 0 0
1 1 0 0 0 0 0 0 1 Text ; Incio do segmento de texto
2 0 1 0 0 0 0 0 0 ________________________________________
3 1 0 0 0 0 0 0 0 ________ _________________
4 1 1 0 0 0 0 0 0
5 0 0 0 1 0 0 1 0 ________________________________________
6 0 0 1 0 0 0 0 0 ________________________________________
7 1 0 0 0 0 0 1 1
8 0 0 0 1 0 0 0 0 ________________________________________
9 1 0 0 0 0 0 0 1 ________________________________________
10 0 1 0 1 0 0 0 0
________________________________________
11 1 0 0 0 0 0 1 1
12 0 0 1 0 0 0 0 0 ________________________________________
13 1 0 0 0 0 0 0 1
________________________________________
14 0 0 0 1 0 0 0 0
15 1 0 0 0 0 0 1 1 ________________________________________
16 1 0 1 1 0 0 0 0 ________________________________________
17 0 0 0 0 0 0 1 0
18 0 0 0 1 0 0 0 0 ________________________________________
19 1 0 0 0 0 0 0 1 ________________________________________
20 0 0 1 0 0 0 0 0
21 1 0 0 0 0 0 1 0 ________________________________________
22 1 1 1 1 0 0 0 0
... ............... Data ; Incio do segmento de dados
128 0 0 0 0 0 0 0 1 _________________
129 0 0 0 0 0 1 0 1 um: __________________________________
130 0 0 0 0 0 0 0 0
x: __________________________________
131 0 0 0 0 0 0 0 0
y: __________________________________
aux: __________________________________
Org Comp Prof Pedro Corra Pag 82

6. O processador hipottico PH2

O processador PH1 possui uma srie de limitaes, como o fato de existir um nico
registrador de uso geral, assim como o fato de que suas instrues poderem enderear a
memria apenas de uma forma. O PH2, por sua vez, representa uma evoluo, onde
algumas novas caractersticas sero destacadas para a continuidade do aprendizado. Desta
forma somente sero apresentadas na seqncia os aspectos deste processador que forem
diferentes daquela verso original.

6.1. Organizao do PH2


Conforme pode-se observar na Figura 10, a principal diferena visvel no PH2 o
fato de que ele apresenta um nmero maior de registradores e suas respectivas conexes
com os demais blocos do processador.

Figura 10 - Diagrama de blocos do PH2

6.2. O conjunto de registradores


O PH2 possui um conjunto de oito registradores, todos eles com 8 bits (inclusive o
RI). No Quadro 13 so apresentados os registradores de uso geral deste processador. Em
um processador com vrios registradores disponveis para o programador, todas as
instrues que fazem referncia registrador devem identificar qual deles ser utilizado.
Desta forma existe a necessidade de um cdigo binrio que os identifique. No PH2 este
cdigo ocupa 2 bits.
Org Comp Prof Pedro Corra Pag 83

Quadro 13 Conjunto de registradores


Reg Cdigo Descrio
AC 00 Registrador de uso geral
BC 01 Registrador de uso geral
CC 10 Registrador de uso geral
Registrador de uso geral, podendo ser utilizado como ndice
IC 11
(ser estudado futuramente).

6.3. Formato das Instrues


O formato das instrues do PH2 difere em relao ao PH1 pelo fato de ter dois
campos adicionais no primeiro byte, no espao que era preenchido com zeros naquela
arquitetura original. Estes campos so utilizados para a identificao do registrador
utilizado pela instruo e para a identificao do modo de endereamento utilizado. Se a
instruo no fizer uso de registrador ou no possuir operando, os campos correspondentes
tambm aqui sero preenchidos com bits 0, como demonstrado na Figura 11.

4 bits: 2 bits: 2 bits:

Instruo Cdigo Registrador Modo end

0 0 0 1 0 1 0 0
|---------------- 8 bits ---------------|
Operando (End) 1 0 0 0 0 0 1 0
Instrues com operando

4 bits: 2 bits: 2 bits:

Instruo Cdigo Registrador Modo end

1 1 1 1 0 0 0 0
|---------------- 8 bits ---------------|
Instrues sem operando
Org Comp Prof Pedro Corra Pag 84

6.4. Conjunto de Instrues


O conjunto de instrues do PH2, apresentado no Quadro 14, tambm formado
por 16 instrues. Porm, devido ao maior nmero de registradores de uso geral e de modos
de endereamento, aumentou-se a flexibilidade na criao de programas.
Quadro 14 - Conjunto de instrues do PH2
Cod. Instruo Comentrio
0000 NOP No executa nenhuma operao
0001 LDR reg, op Carrega valor em registrador
0010 STR reg, op Armazena valor na memria
0011 ADD reg, op Soma
0100 SUB reg, op Subtrao
0101 MUL reg, op Multiplicao
0110 DIV reg, op Diviso
0111 NOT reg Operao lgica de negao bit-a-bit
1000 AND reg, op Operao lgica E bit-a-bit
1001 OR reg, op Operao lgica OU bit-a-bit
1010 XOR reg, op Operao lgica OU exclusivo bit-a-bit
1011 JMP op (end) Desvio incondicional
1100 JEQ reg, op Desvio condicional, caso o valor do registrador seja igual a zero
1101 JG reg, op Desvio condicional, caso o valor do registrador seja maior que zero
1110 JL reg, op Desvio condicional, caso o valor do registrador seja menor que zero
1111 HLT Trmino da execuo

6.5. Modos de Endereamento


No PH1, o operando sempre fazia referncia a um endereo de memria. O valor
utilizado pela instruo sempre o contedo armazenado naquele endereo, exceto para as
instrues de desvio, onde o destino do desvio o prprio endereo. O modo de
Org Comp Prof Pedro Corra Pag 85

endereamento define onde a CPU vai buscar os operandos de suas instrues. No PH2 so
reservados dois bits para identificar o modo de endereamento, sendo que as instrues que
no possuem operando ignoram o contedo destes bits. Estes modos so apresentados no
Quadro 15.
Quadro 15 - Modos de endereamento do PH2
Cdigo Endereamento
00 Direto
01 Indireto
10 Imediato
11 Indexado

6.5.1. Modo de Endereamento Direto


No modo de endereamento direto, o segundo byte da instruo contm o endereo
do operando. Este modo igual aquele nico disponvel na verso anterior do processador.
LDR AC, op ; AC MEM[op]

6.5.2. Modo de Endereamento Indireto


No modo de endereamento indireto, o segundo byte da instruo contm um
endereo onde deve ser buscado o endereo do operando. Na linguagem de montagem ele
identificado pelo operando entre um par de colchetes. Usado principalmente pelos
programas que utilizam ponteiros. No ser utilizado nos programas processados pelo PH2.
LDR AC, [op] ; AC MEM[MEM[op]]

6.5.3. Modo de Endereamento Imediato


No modo de endereamento imediato, o segundo byte o prprio operando a ser
usado pela instruo. Um sharp "#" em frente ao operando identifica este modo em um
programa em assembly.
LDR AC, #op ; AC op
Org Comp Prof Pedro Corra Pag 86

6.5.4. Modo de Endereamento Indexado


No modo de endereamento indexado, o endereo do operando obtido pela soma
do contedo do registrador IC com o valor armazenado no segundo byte da instruo.
representado na linguagem de montagem pelo prefixo "IC+".
LDR AC, IC+op ; AC MEM[IC+op].

Exerccios
Exerccio 1:
Preencha o quadro abaixo com os valores a serem armazenados na MP, aps o montador
(assembler) do PH2 fazer a traduo para a linguagem de mquina do programa em
linguagem de montagem (assembly) fornecido. Objetivo: exercitar a converso para binrio.

End Contedo
0
Text
1
LDR AC, x 2
3
LDR BC, y 4
LDR IC, #4 5
6
LDR CC, #x 7
laco: JEQ BC, fim 8
9
10
DEC BC 11
12
JMP laco
13
fim: INC AC 14
STR CC, ultimo 15
16
HLT 17
18
19
data 20
x: byte 8 ...
128
y: byte 5 129
ultimo: byte 0 130
131
132
Org Comp Prof Pedro Corra Pag 87

Exerccio 2:
Preencha o quadro abaixo com os valores a serem armazenados na MP, aps o montador
(assembler) do PH2 fazer a traduo para a linguagem de mquina do programa em
linguagem de montagem (assembly) fornecido. Objetivo: exercitar o modo de endereamento
indexado.
End Contedo
0
Text
1
LDR AC, #0 2
3
LDR IC, #3 4
laco: JL IC, fim 5
6
LDR AC, IC+dados 7
DEC IC 8
9
JMP laco 10
fim: STR AC, ultimo 11
12
HLT
13
14
data 15
16
dados: byte 5 17
byte 3 ...
128
byte 6 129
byte 10 130
131
ultimo: byte 0 132
133
Org Comp Prof Pedro Corra Pag 88

Exerccio 3:
O contedo do quadro abaixo e a esquerda, representa as instrues de um programa em
linguagem de mquina, armazenadas na MP de um computador. Complete o espao ao lado
direito do quadro com as instrues correspondentes a esse programa em linguagem de
montagem (assembly) do PH2.
Programa que calcula a potncia de um nmero x elevado a y-sima potncia.
Calcula r = x ** y

End Contedo Programa em Assembly


0 0 0 0 1 0 0 1 0
1 0 0 0 0 0 0 0 1 Text ; Incio do segmento de texto
2 0 0 0 1 0 1 ________________________________________
0 0
3 1 0 0 0 0 0 _______
0 1 _________________
4 1 1 0 0 0 1 ________________________________________
0 0
5 0 0 0 0 1 1 ________________________________________
0 0
6 0 1 0 1 0 0 ________________________________________
0 0
7 1 0 0 0 0 0 ________________________________________
0 0
8 0 1 0 0 0 1 ________________________________________
1 0
9 0 0 0 0 0 0 ________________________________________
0 1
10 1 0 1 1 0 0 ________________________________________
0 0
________________________________________
11 0 0 0 0 0 1 0 0
________________________________________
12 0 0 1 0 0 0 0 0
________________________________________
13 1 0 0 0 0 0 1 0
________________________________________
14 1 1 1 1 0 0 0 0
________________________________________
15 ________________________________________
16 ________________________________________
17 ________________________________________
18 ________________________________________
19 ________________________________________
20 ________________________________________
... ________________________________________
128 0 0 0 0 0 0 1 0 ________________________________________
129 0 0 0 0 0 1 0 0 ________________________________________
130 0 0 0 0 0 0 0 0 ________________________________________
131
132
Data ; Incio do segmento de dados
133
__x: _________________
________________________________________
__y: _________________
________________________________________
__r:___________________________________
Org Comp Prof Pedro Corra Pag 89

7. Classificao das arquiteturas de conjunto de


instrues

Com relao ao tipo de armazenamento interno utilizado pela CPU e a forma com
que os operandos das instrues so referenciados, podem-se classificar as arquiteturas de
computadores dentro das seguintes classes: Arquitetura de acumulador, de pilha, register-
memory e load-store.

7.1. Arquitetura de acumulador


Este tipo de computador possui um nico registrador disponvel, sendo que os
resultados das operaes vo sendo acumuladas neste registrador, da o nome acumulador.
Os valores armazenados na memria podem ser carregados neste registrador com uma
instruo de Load. O contrrio feito com a instruo Store. Todas as instrues que
utilizam a UAL referenciam o acumulador como um dos operandos-fonte e como
operando-destino. O outro operando-fonte pode ser buscado na memria.

Exemplo: A = B + C
LOAD B ; Acumulador MEM[B]
ADD C ; Acumulador Acumulador + MEM[C]
STORE A ; Mem[A] Acumulador

Esta arquitetura tambm conhecida como "conjunto de instruo com um


operando".

7.2. Arquitetura register-memory


Estas mquinas permitem que um dos operandos esteja na memria. Os demais
operandos so registradores sendo, normalmente, um registrador utilizado como o outro
operando-fonte e como o operando-destino. Valores armazenados na memria podem ser
Org Comp Prof Pedro Corra Pag 90

trazidos para estes registradores e vice-versa com as instrues Load e Store,


respectivamente.

Exemplo: A = B + C
LOAD R1, B ; R1 MEM[B]
ADD R1, C ; R1 R1 + MEM[C]
STORE R1, A ; MEM[A] R1.

Esta arquitetura tambm conhecida como "conjunto de instruo com dois


operandos".

7.3. Arquitetura Load/Store


Estas mquinas caracterizam-se por acessar a memria somente com as instrues
Load e Store. Todos os operandos nas instrues que utilizam a UAL so sempre
registradores, explicitamente referenciados. Por isto, esta categoria tambm conhecida
como register-register.

Exemplo: A = B + C
LOAD R1, B ; R1 MEM[B]
LOAD R2, C ; R2 MEM[C]
ADD R3, R2, R1 ; R3 R2 + R1
STORE R3, A ; MEM[A] R3

Esta arquitetura tambm conhecida como "conjunto de instruo com trs


operandos".

7.4. Arquitetura de pilha


Org Comp Prof Pedro Corra Pag 91

O banco de registradores destas mquinas implementado na forma de uma pilha.


Os operandos vindos da memria so empilhados (Push) ou so removidos do topo da pilha
para serem armazenados na memria (Pop). Todas as instrues que faam uso da UAL
retiram dois valores do topo da pilha e empilham o resultado, possuindo portanto,
operandos implcitos.

Exemplo: A = B + C
PUSH C ; topo topo+1, pilha[topo] MEM[C]
PUSH B ; topo topo+1, pilha[topo] MEM[B]
ADD ; pilha[topo-1]pilha[topo]+pilha[topo-1],
topo topo-1
POP A ; MEM[A] pilha[topo], topo topo-1
Org Comp Prof Pedro Corra Pag 92

8. Subsistema de Entrada e Sada

8.1. Introduo

Como mencionado anteriormente, a interligao UCP/MP pode ser vista como


mostrado na figura 12, atravs do triplo basrramento - de dados, endereo e sinais de
controle.

UCP

Controle Endereo Dados

Memria Principal / Cache

Figura 12 - Interligao UCP/MP com barramento triplo

Para que possamos desfrutar da rapidez e flexibilidade de um computador, no basta


sabermos que ele pode armazenar na memria os programas e dados que desejamos
processar, nem que ele pode executar mais de um milho de instrus por segundo.
preciso que o programa que temos escrito em uma folha de papel e os dados que sero por
ele manipulados sejam inseridos no sistema, caractere por caractere, inclusive os espaos
em branco entre os caracteres, os sinais de pontuao e os smbolos de operaes
matemticas. Para tanto, Precisamos de um meio qualquer que faa essa comunicao
homem-mquina. Um teclado do tipo semelhante ao de uma mquina de escrever pode
servir como elemento de entrada.
Em geral os dispositivos de entrada e sada so denominados perifricos (porque se
encontram instalados fora do ncleo principal UCP/MP, mas ficam na maior parte das
vezes prximos, isto , na sua periferia). A figura 13 mostra um esquema representativo da
comunicao entre o usurio e a mquina, para introduzir informaes no sistema
Org Comp Prof Pedro Corra Pag 93

Figura 13 - Exemplo de comunicao homem-mquina

Da mesma forma que temos a necessidade de comunicao com a mquina, tambm


preciso que haja comunicao no sentido contrrio, isto mquina-homem, de modo que
o usurio possa entender os resultados de um processamento. Uma impressora ou uma tela
de vdeo pode servir como dispositivo de sada (ou perifrico de sada). A figura 13 acima
mostra este tipo de comunicao.
A figura 14 mostra o modo de interligao adotado para a comunicao UCP/MP: o
barramento. Esse mesmo mtodo define a interligao do conjunto UCP/MP aos
perifricos. atravs do barramento conhecido como barramento do sistema que se pode,
ento, interligar todos os componentes de um sistema de computao e por onde fluem os
mesmos tipos de informao, dados, endereos e sinais de controle. A figura 14 mostra um
diagrama simplificado dessas ligaes.

UCP

Memria Principal

Controle Endereo Dados

Sistema de E/S

Figura 14 - Interligao do conjunto UCP/MP atravs do barramento do sistema.


Org Comp Prof Pedro Corra Pag 94

Na realidade, o barramento do sistema permite o compartilhamento de informaes


entre os diversos componentes de um computador, da mesma forma que o barramento
interno da UCP permite o trnsito de informaes entre os registradores e demais unidades
da UCP. A figura 15 mostra dois exemplos do uso do barramento do sistema em
computadores. Na figura 15(a) apresentado um esquema de barramento mltiplo, com
canais separados para dados, endereos e sinais de controle, enquanto, na figura 15(b)
mostrado um exemplo de barramento nico (unibus).

UCP MP E/S E/S E/S

Dados

Endereos

Controle

Figura 15(a) - Barramento mltiplo

UCP MP E/S E/S E/S

Dados - Endereos - Controle

Figura 15(b) - Barramento nico

O conjunto UCP/MP no est ligado diretamente ao dispositivo externo, mas sim a


interface de E/S e esta se comunica com o dispositivo. Este esquema utilizado para que o
processador no precise se preocupar com as diferentes caractersticas dos equipamentos
aos quais est interligado.
Org Comp Prof Pedro Corra Pag 95

8.2. Endereos de E/S


Existem duas formas de se organizar a comunicao entre a CPU, a memria
principal e a interface de E/S: Memria Compartilhada ou Memria Isolada.

65.535 65.535

MP
MP

255 255
E/S E/S
0 0 0
Memria Compartilhada Memria Isolada

Figura 16- Endereamentos de E/S.

8.2.1. Memria compartilhada


O espao de endereamento da memria principal compartilhado com os
endereos de E/S. Assim os endereos de E/S tem a mesma quantidade de bits que os
endereos da memria principal e as instrues para acesso ao sistema de entrada e sada
so as mesmas utilizadas para acesso a memria, tais como LOAD e STORE. Este esquema
tambm conhecido como E/S mapeada em memria.

8.2.2. Memria isolada


Neste esquema criado um outro espao de endereamento para as interfaces de
E/S, que independente da memria principal. Os endereos de E/S isolada so chamados
de portas, as quais geralmente tm 8 ou 16 bits. Processadores que utilizem este sistema de
E/S devem ter instrues especficas para a comunicao com a interface externa, por
exemplo IN e OUT. O Quadro 15 ilustra alguns exemplos dos endereos de E/S nos
computadores pessoais (PC).
Org Comp Prof Pedro Corra Pag 96

Quadro 16 - Exemplos de endereos de E/S dos PCs


Endereo16 Perifrico
278-27F Segunda interface paralela (LPT2)
2F8-2FF Segunda interface serial (COM2)
320-32F Controlador de disco rgido
378-37F Primeira interface paralela (LPT1)
3F0-3F7 Controlador de disco flexvel
3F8-3FF Primeira interface serial (COM1)

8.3. Entrada e sada por polling


Neste mtodo de comunicao, tambm conhecida de E/S por programa, toda a
transferncia de dados entre a CPU e o dispositivo de E/S controlada pelo programa que o
processador executa. A CPU solicita o incio da transferncia de dados controladora e
depois a CPU fica testando o estado do dispositivo para verificar se a operao de E/S
terminou. Assim, a CPU fica em um loop de espera e teste.

8.4. Entrada e sada por interrupo


Quando se usa entrada e sada por interrupo a CPU emite a instruo de E/S para
a interface e desvia sua ateno para executar outra tarefa. A interface verifica o estado do
dispositivo e, quando este estiver pronto para iniciar a transferncia de dados com a CPU, a
interface envia um "aviso" (interrupo) para a CPU, informando que o perifricos est
"pronto para transmitir".

8.4.1. Interrupes
Uma interrupo um sinal de hardware que enviado ao processador quando um
evento detectado solicitando que este interrompa o que estiver fazendo e desviando a sua
ateno para outra atividade. Quando esta atividade concluda, o processador deve
retornar a execuo ao ponto em que ele estava quando foi interrompido.
Org Comp Prof Pedro Corra Pag 97

Interrupes internas: Gerado pela execuo de uma instruo, como por


exemplo uma diviso por zero, overflow, cdigo de operao invlido, tentativa
de acesso a uma rea de memria protegida ou inexistente, etc.

Interrupes externas: As interrupes externas so causadas por um sinal


externo CPU. Geralmente ativada devido a uma interface de E/S que est
avisando que um determinado perifrico deseja a ateno para transferir dados.

8.4.2. O vetor de interrupes


A deteco de uma interrupo faz com que o processador transfira o controle para
uma rotina de tratamento de interrupo ("interrupt handler"). A rotina de tratamento de
interrupes faz o processador executar as seguintes aes:
1. Detectar a fonte da interrupo (o dispositivo que interrompeu);
2. Executar as aes apropriadas (que dependem do dispositivo);
3. Retornar ao ponto do programa em que estava quando iniciou o atendimento
interrupo.

Para que o processador possa executar esta rotina, ele deve conhecer o endereo de
memria onde ela est armazenada. Alguns computadores mais simples utilizam uma nica
rotina para o tratamento de todas as interrupes sendo que esta rotina esta armazenada em
um endereo definido da memria. Para aumentar a versatilidade, a maioria dos sistemas
utiliza vetores de interrupes que armazenam o endereo da rotina especfica para o
tratamento de cada interrupo, como o caso dos PCs
Org Comp Prof Pedro Corra Pag 98

Quadro 17 - Vetor de interrupes do processador intel 8086

Interrupo16 Descrio IRQ Tipo


00 Erro de diviso interna
01 nico Passo interna
02 Interrupo No-Mascarvel (NMI) interna
03 Ponto de Parada interna
04 Overflow interna
05 Print Screen interna
06 Cdigo de operao invlida interna
07 Coprocessador no instalado interna
08 Relgio IRQ 0 externa
09 Teclado IRQ 1 externa
0A Redirecionada para IRQ 9 IRQ 2 externa
0B Portas Seriais COM2/COM4 IRQ 3 externa
0C Portas Seriais COM1/COM3 IRQ 4 externa
0D LPT2 IRQ 5 externa
0E Controladora de Disco Flexvel IRQ 6 externa
0F LPT1 IRQ 7 externa
10..6F Servios de software e disponveis servio
70 Relgio IRQ 8 externa
71 Livre (geralmente usada para placa de rede) IRQ 9 externa
72 Livre IRQ 10 externa
73 Livre IRQ 11 externa
74 Mouse PS/2 ou livre IRQ 12 externa
75 Coprocessador matemtico IRQ 13 externa
76 Controladora de HD IRQ 14 externa
77 Segunda controladora de HD ou livre IRQ 15 externa
78..FF Demais interrupes de software e disponveis
Org Comp Prof Pedro Corra Pag 99

8.5. Entrada e sada por Acesso Direto Memria - DMA


Nesta tcnica, os dados so transferidos entre o dispositivo externo e a memria
principal, praticamente sem a interveno da CPU. Ela apenas solicita a transferncia para
o controlador de DMA, que realiza por si a transferncia, enquanto o processador fica
liberado para realizar outras atividades.

Quando a CPU deseja ler ou gravar algum bloco de dados em um dispositivo de


E/S, ela envia um comando especfico para o controlador DMA. Este comando contm o
tipo de tarefa a ser efetuada (E/S), o endereo do dispositivo desejado, endereo inicial da
memria principal onde o bloco de dados ser lido ou gravado e quantidade de bytes a
serem lidos ou gravados. Assim que os dados tiverem sido transferidos, o controlador de
DMA gera uma interrupo para avisar a CPU.

Esta a alternativa que permite o mximo de rendimento da CPU, pois esta


intervm apenas no incio e ao final da transferncia.
Org Comp Prof Pedro Corra Pag 100

9. Arquiteturas RISC X CISC

Processadores

Durante grande parte da histria dos computadores pessoais, o modelo


predominante dos microprocessadores tem sido da Intel Corporation. O primeiro
processador no IBM PC foi o Intel 8088. As geraes seguintes de processadores Intel
foram da famlia 80X86 8086, 80286, 80386, 80486. A partir do 80586, a Intel entrou na
justia para patentear seu processador, pois os concorrentes AMD, Cyrix e Texas
Instruments estavam ganhando terreno na disputa pelo processador de ponta. Depois do
Pentium, a Intel j lanou o Pentium MMX, Pentium Celeron, Pentium Pr, Pentium II,
Pentium Xeon, Pentium III, Pentium IV e vrios outros. Todos eram verses elaboradas do
8088 original, mas com desempenho melhorado de duas maneiras operando mais
rapidamente ou processando mais dados simultaneamente. O 8088, por exemplo, operava a
4,7 Mhz ou 4,7 milhes de oscilaes por segundo e alguns chips como o Pentium IV
de 1 GHz eram to rpidos quanto 266 MHz. O 8088 conseguia processar 8 bits de dados
por vez, enquanto o Pentium IV processava 64 bits internamente.
Apesar das mudanas, os processadores Intel at os 80486 eram baseados em uma
filosofia de projeto denominada CISC, do ingls Complex Instruction Set Computing.
(Computador com Conjunto Complexo de Instrues). O padro CISC usa comandos que
incorporam muitas instrues mnimas para executar uma simples operao. como se ele
fosse um faco que corta dados e cdigos. Por comparao, existe algo como um bisturi
que corta pedaos cada vez menores e mais delicados de dados e cdigos. Esse bisturi
chamado RISC, do ingls Reduced Instruction Set Computing (Computador com Conjunto
Reduzido de Instrues). Projetos RISC so encontrados em processadores mais novos,
entre eles o DEC Alpha, o RISC 6000 da IBM, o processador Power PC e, embora a Intel
no chame os processadores Pentium de chips RISC, eles tm muito em comum com o
padro RISC de executar cdigos.
O RISC um projeto menos complicado que usa muitas instrues mais simples
para executar uma operao comparvel e em menos tempo que um processador CISC que
executa um comando maior e mais complicado. Os chips RISC podem ser fisicamente
Org Comp Prof Pedro Corra Pag 101

menores que os chips CISC. E pelo fato de usarem menos transistores, geralmente sua
fabricao mais barata e produzem menos calor.
A primeira mquina RISC moderna foi o minicomputador 801 construdo pela IBM,
comeando em 1975, entretanto, a IBM no publicou nada a seu respeito at 1982. Em
1980, um grupo em Berkeley, liderado por David Patterson e Carlo Squin, comeou a
projetar pastilhas RISC VLSI. Eles criaram o termo RISC e batizaram sua pastilha de CPU
de RISC I, seguida de perto pela RISC II. Um pouco mais tarde, em 1981, do outro lado da
baa de So Francisco, em Stanford, John Hennessy projetou e fabricou uma pastilha RISC
um pouco diferente, que ele chamou de MIPS.
Estas trs mquinas RISC so comparadas a trs mquinas CISC na Tabela. 9.1.
Cada uma delas levou diretamente a importantes produtos comerciais. O 801 foi o ancestral
do IBM PC/RT, o RISC I foi a inspirao do projeto SPARC da Sun Microsystems, e a
pastilha MIPS de Stanford levou formao da MIPS Computer Systems.
Muitas previses vm afirmando que o futuro dos processadores caminha para um
projeto RISC, e provavelmente elas estejam corretas. Mas no tem havido um movimento
de venda em massa do RISC, por duas razes. A mais importante delas manter a
compatibilidade com o vasto nmero de software aplicativo, desenvolvido para trabalhar
com os processadores Intel CISC mais antigos. A segunda razo que no se recebe todos
os benefcios da arquitetura RISC, a no ser que se use um sistema operacional e programas
que tenham sido criados e compilados especificamente para tirar vantagens das operaes
RISC. a clssica situao do ovo e da galinha. Alguns fabricantes de computadores esto
oferecendo processadores RISC para se projetarem como lderes em tecnologia. Eles
executam os antigos programas CISC somente atravs da emulao de um processador
CISC, o que acaba negando as vantagens do RISC. Ao mesmo tempo, os criadores de
software relutam em converter seus programas para verses compiladas RISC quando ainda
h muitas pessoas usando PCs baseados em CISC.
O Pentium mudou isso. Os tcnicos podem argumentar se o Pentium pode ser um
verdadeiro chip RISC. um cmodo comprometimento. O Pentium executa antigos
aplicativos e sistemas operacionais e ao mesmo tempo oferece vantagens na velocidade de
programas criados especialmente para usar a capacidade do padro Pentium. E com o
sistema operacional cada vez mais avanado, pode-se colocar mais de um microprocessador
Org Comp Prof Pedro Corra Pag 102

no computador para dobrar o poder de processamento. So conhecidos como sistemas


fortemente acoplados.
O corao de qualquer computador a sua via de dados, que contm os
registradores, a UAL e os barramentos que os conectam. Este circuito deve ser otimizado
para a linguagem ou aplicaes em questo. O tempo requerido para buscar os operandos a
partir de seus registradores, execut-los atravs da UAL e armazenar o resultado de volta
em um registrador, chamado de tempo de ciclo da via de dados, deve ser o mais curto
possvel.
O prximo passo projetar as instrues de mquina que faam bom uso da via de
dados. Apenas algumas instrues e modos de endereamento so tipicamente utilizados.
Instrues adicionais devem apenas ser inseridas se elas forem freqentemente utilizadas e
no reduzirem o desempenho das mais importantes.
Deve-se sacrificar tudo para reduzir o tempo de ciclo da via de dados.
Sempre que se resolver adicionar uma nova instruo ao processador, ela deve ser
examinada sob esta luz: como ela afeta o tempo de ciclo da via de dados? Se ela (a nova
instruo) aumentar o tempo de ciclo, provavelmente no vale a pena t-la.
Finalmente, o mesmo processo deve ser repetido para todos os outros recursos
dentro da CPU, tais como memria cache, gerenciamento de memria, co-processadores de
ponto flutuante, e assim por diante.
Em certo sentido, o nome Reduced Instruction Set Computer, no um bom nome.
Enquanto verdade que a maioria das mquinas RISC tm relativamente poucas instrues,
a caracterstica mais importante que as distingue das mquinas CISC que as instrues
RISC so completadas em um nico ciclo da via de dados.
Uma conseqncia do princpio de que toda instruo RISC deve gastar apenas um
ciclo que qualquer operao que no possa ser completada em um ciclo no pode ser
includa no conjunto de instrues. Assim, muitas mquinas RISC no possuem instrues
para multiplicao ou diviso. Na prtica, a maioria das multiplicaes so formadas por
pequenas constantes conhecidas em tempo de compilao, de modo que elas podem ser
simuladas por seqncias de somas e deslocamentos. Instrues de ponto flutuante so
executadas por um co-processador.
Org Comp Prof Pedro Corra Pag 103

Dado o desejo de ter toda instruo gastando um ciclo de relgio, claro que as
instrues que referenciam a memria vo ser um problema. Instrues que buscam seus
operandos de registradores e armazenam seus resultados em registradores podem ser
manipuladas em um nico ciclo, mas instrues que carregam a partir de, ou armazenam,
em memria levam muito tempo. Aumentar o ciclo de relgio por um fator de dois ou trs
para acomodar cargas e armazenamentos viola a Regra de Ouro N 1 do projeto RISC.
Como algumas instrues tm que referenciar memria, instrues especiais LOAD
e STORE so adicionadas arquitetura. Apenas estas instrues podem referenciar a
memria.
claro que proibir que as instrues comuns acessem a memria no resolve o
problema de como fazer com que LOADs e STOREs operem em um ciclo. A soluo est
em um pouco de truque. Vamos agora relaxar nosso objetivo ligeiramente. Em vez de
requerer que toda instruo deva ser executada em um nico ciclo, vamos meramente
insistir que seremos capazes de comear uma instruo a cada ciclo, sem levar em
considerao quando que ela termina. Se, em n ciclos, conseguirmos iniciar n instrues,
na mdia teremos atingido uma instruo por ciclo, o que suficientemente bom.
Para atingir este objetivo modificado, todas as mquinas RISC tm pipeline. A CPU
contm diversas unidades independentes que trabalham em paralelo. Uma delas busca as
instrues, e outras as decodificam e executam. A qualquer instante, diversas instrues
esto em vrios estgios de processamento.
Uma instruo comum utiliza duas unidades pipeline, uma para busca e outra para
execuo. Num instante de tempo uma instruo iniciada. No outro instante, a instruo
iniciada muda de unidade e executada. Na unidade que ficou livre iniciado uma nova
instruo. Assim mantemos a mdia, que iniciar uma instruo a cada ciclo. Porm
instrues LOADs e STOREs requerem uma terceira unidade, para referenciar a memria.
Ento, em vez de finalizarem a execuo em duas unidades, finalizam em trs unidades.
Os projetistas de RISC, se preocupam principalmente, em criar tcnicas e
dispositivos que acelerem o processamento da informao. Uma dessas tcnicas, o
Pipeline. O Pipeline uma tcnica em que o hardware processa mais de uma instruo de
cada vez. Ele no espera o trmino de uma instruo para executar outra. Em uma mquina
CISC tpica, temos, basicamente, quatro fases para a execuo: busca, decodificao,
Org Comp Prof Pedro Corra Pag 104

execuo e escrita. Em uma mquina RISC, temos as mesmas fases, s que executadas em
paralelo. Uma fase no precisa esperar a outra terminar, para que ela se inicie. Este
procedimento, no diminui o tempo de execuo da tarefa, mas melhora o processamento
global.
A transio de CISC para RISC foi uma mudana radical na arquitetura. Os
conjuntos de instrues foram mudados, sacrificando a compatibilidade binria para o
desempenho. Reduzindo o conjunto de instrues, o processador cabia em um chip menor
que permitia que os desenvolvedores aumentassem a velocidade do clock. Alm disso, o
processador poderia ser "pipelineado" e uma unidade de controle microcodificada tornou-se
desnecessria. RISC, "resolve os casos comuns mais rpidos", era o princpio que
conduziu a um aumento impressionante da performance comparado com os processadores
CISC.
Tabela. 9.1 RISC X CISC

RISC CISC
1 Instrues simples levando 1 ciclo Instrues complexas levando mltiplos ciclos
Apenas LOADs/STOREs referenciam a
2 Qualquer Instruo pode referenciar a memria
memria
3 Altamente pipelined No tem pipeline, ou tem pouco
4 Instrues executadas pelo hardware Instrues executadas pelo microprograma
5 Instrues com formato fixo Instrues de vrios formatos
Poucas instrues (Basicamente do tipo
Muitas instrues e muita quantidade de modos
6 Load/Store) e pouca quantidade de modos
de endereamento
de endereamento.
7 A complexidade est no compilador A complexidade est no microprograma
8 Mltiplos conjuntos de registradores Conjunto nico de registradores
Org Comp Prof Pedro Corra Pag 105

10. Referncias Bibliogrficas

MONTEIRO, Mrio A. Introduo Organizao de Computadores, 4Ed. Editora LTC,


2001.

TANENBAUM, Andrew S. Organizao Estruturada de Computadores, 4Ed. Editora


LTC, 2001.

Nota de aula "Arquitetura e Organizao de Computadores I - Notas de Aula" - Prof


BRUSSO - Marcos Jos e MACHADO- Fernando Marcondes, da Universidade de Passo
Fundo- RS.

Nota de aula "Organizao de Computadores" Prof MANO - Rui, da Pontfice


Universidade Catlica do Rio de Janeiro- PUC_Rio - Publicado no site
http://venus.rdc.puc-rio.br/rmano/index.html.

Vous aimerez peut-être aussi