Anda di halaman 1dari 47

BACHARELADO EM CINCIA DA

COMPUTAO

ARQUITETURA DE COMPUTADORES I
Material Terico

Prof Carlos Eduardo Corra Roque


BCC Arquitetura de Computadores I

Sumrio

1 - Introduo Arquitetura de Computadores ............................................................................ 4


1.1 O que um computador eletrnico? ......................................................................................... 4
1.2 Qual a diferena entre arquitetura e organizao de computadores? .......................................... 5
1.3 Quais as funes bsicas de um computador? ........................................................................... 5
1.4 Evoluo histrica dos computadores ....................................................................................... 6
1.4.1 Gerao Zero (1642- 1945): ............................................................................................... 6
1.4.2 Primeira Gerao - Vlvulas (1945-1955) ......................................................................... 8
1.4.3 Segunda Gerao Transistores (1955 1965): ................................................................. 9
1.4.4 Terceira Gerao Circuitos Integrados (1965 1980): ..................................................... 9
1.4.5 Quarta Gerao Integrao de Circuitos em Grande Escala (1980 - ?): ...........................10
1.5 A Mquina de von Neumann (IAS) ........................................................................................10
2 Sistema Binrio e Converso de Bases.....................................................................................13
2.1 Sistema Binrio .......................................................................................................................13
2.2 Converso entre Bases Decimal e Binria. ...............................................................................15
2.2.1 Sistemas de Numerao ....................................................................................................15
2.2.2 Converso Decimal para Binrio (N10 para N2) .................................................................16
2.2.3 Converso Binrio para Decimal (N 2 para N10).................................................................16
2.2.4 Mtodo prtico para converso N10/N2 e N2/N10: ..............................................................17
3 Bases Octal e Hexadecimal........................................................................................................19
3.1 Base Octal (N8) .......................................................................................................................19
3.1.1 Converso Decimal para Octal (N10 para N8).....................................................................19
3.1.2 Converso de Octal para Decimal (N 8 para N10) ................................................................19
3.1.3 Mtodo prtico para converso entre N10/N8 e N8/ N10 .......................................................20
3.2 Base Hexadecimal ...................................................................................................................21
3.2.1 Converso de Decimal para Hexadecimal (N10 para N16) ...................................................21
3.2.2 Converso de Hexadecimal para Decimal (N16 para N10) ...................................................21
3.2.3 Mtodo prtico para converso entre N10/N16 e N16/ N10 ....................................................22
3.3 Converso entre Binrio, Octal e Hexadecimal: .......................................................................23
4 Representao de Dados ...........................................................................................................24
4.1 Unidades com Binrios ...........................................................................................................24
4.2 Endereamento de Byes e Palavras na Memria ......................................................................25
4.3 Representao de Dados ..........................................................................................................26
4.3.1 Cdigo BCD (Binary Coded Decimal) .............................................................................26
4.3.2 Cdigo Alfanumrico ASCII ............................................................................................28
4.3.3 Unicode ............................................................................................................................29
5 Representao de Nmeros Inteiros com Sinais .......................................................................30
5.1 Representao sinal-magnitude ...............................................................................................30
5.2 Representao por Complemento-de-Dois ...............................................................................30
BCC Arquitetura de Computadores I

5.3 Aritmtica convencional..........................................................................................................33


5.4 Adio e Subtrao em Complemento de Dois ........................................................................34
5.4.1 Adio ..............................................................................................................................34
5.4.2 Subtrao..........................................................................................................................35
6 - Introduo Lgica Booleana ..................................................................................................36
6.1 lgebra Booleana ...................................................................................................................36
6.2 Operadores Booleanos Bsicos ...............................................................................................37
6.3 Funes Lgicas .....................................................................................................................37
6.4 Portas Lgicas.........................................................................................................................38
7 - Postulados, Identidades e Propriedades da lgebra Booleana .................................................39
7.1 Postulados, Identidades e Propriedades....................................................................................39
7.2 Teoremas de De Morgan .........................................................................................................40
7.2.1 Primeiro Teorema de De Morgan: .....................................................................................40
7.2.2 Segundo Teorema de De Morgan: .....................................................................................40
7.3 Universalidade das Portas NAND e NOR. ...............................................................................41
8 Simplificao Algbrica de Circuitos Lgicos ..........................................................................42
9 Simplificao de Circuitos Lgicos pelo Mapa de Karnaugh ..................................................43
9.1 Mapas de Karnaugh com duas variveis ..................................................................................43
9.2 Mapas de Karnaugh com trs variveis ....................................................................................44
9.3 Mapas de Karnaugh com quatro variveis ...............................................................................45

BCC Arquitetura de Computadores I

1 - INTRODUO ARQUITETURA DE COMPUTADORES


Atualmente, os computadores j fazem parte de nosso dia-a-dia, seja como ferramenta de trabalho ou,
principalmente, como instrumento de educao e entretenimento. Sendo assim, de alguma forma, todos ns
j temos o conceito de computador. Entretanto, falta-nos defini-lo, descrev-lo, explicar seus principais
componentes. Este, portanto, o principal objetivo desta aula.
1.1 O que um computador eletrnico?
(Por que eletrnico? H algum computador que no seja eletrnico?)
Segundo [TANENBAUM 2001]: Um computador digital uma mquina que pode resolver
problemas executando uma srie de instrues que lhe so fornecidas.
J [MONTEIRO 2007] define computador no contexto de processamento de dados: Computador
uma mquina (conjunto de partes eletrnicas e eletromecnicas) capaz de sistematicamente coletar,
manipular e fornecer os resultados da manipulao da informao para um ou mais objetivos.
Computador
uma mquina composta por hardware e software: hardware o conjunto dos componentes
fsicos. Software a parte lgica-operacional que, normalmente, executada por um programa.
Que coleta dados, resolve problemas e fornece resultados: essa a sequncia formal do
processamento de dados.
Dados de Entrada

Dados de Sada
Processamento

(Etapas bsicas de um processamento de dados [MONTEIRO 2007])

Que executa uma srie de instrues sistematicamente: essas instrues seguem uma sequncia
lgica (algoritmo) e so passadas para o computador por meio de um programa. Pode haver mais de uma
linguagem de programao (com sintaxe e semntica prprias) para implementar o mesmo algoritmo
(lgica).
Para atingir um ou mais objetivos:
Eis uma das grandes divises dos computadores, que podem ser:
Computadores de Propsito Especfico (ou Especial): desenvolvidos para aplicaes
especficas sendo que, geralmente, o foco do projeto est na especializao do hardware. Ex:
computadores de bordo e controladores de robs industriais.
Computadores de Propsito Geral: desenvolvidos para atender diversas aplicaes
sendo que o foco do projeto est no software visando a capacidade de adaptao para soluo de
muitos problemas. Ex: computadores pessoais (PC).
digital: os dados so representados e processados por meio de valores discretos conforme uma
determinada base matemtica (no caso, base 2 ou binria).

BCC Arquitetura de Computadores I

1.2 Qual a diferena entre arquitetura e organizao de computadores?


No captulo introdutrio de [STALLINGS, 2002], o autor nos esclarece sobre a diferena entre
arquitetura e organizao de computadores da seguinte forma:
Arquitetura de Computadores: refere-se aos atributos de um sistema que so visveis para o
programador ou, em outras palavras, aos atributos que tm impacto direto sobre a execuo lgica de um
programa. Exemplos de atributos de arquitetura incluem o conjunto de instrues, o nmero de bits usados
para representar os vrios tipos de dados, mecanismos de entrada e de sada de dados e tcnicas de
endereamento.
Organizao de Computadores: refere-se s unidades operacionais e suas interconexes que
implementam as especificaes da sua arquitetura. Exemplo, detalhes de hardware transparentes para
programador tais como os sinais de controle, as interfaces entre o computador e os perifricos e a tecnologia
de memria utilizada.
1.3 Quais as funes bsicas de um computador?
Segundo [STALLINGS 2002] , tanto a estrutura quanto as funes de um computador so, em
essncia, muito simples. A figura abaixo ilustra as funes conforme esse autor:

Um computador deve ser capaz de processar dados. Os dados podem ter grande
variedade de tipos, e a gama de requisitos de processamento muito ampla. Entretanto,
veremos que existem poucos mtodos ou tipos fundamentais de processamento de dados.
tambm essencial que um computador armazene dados. Mesmo quando
realizado um processamento de dados do tipo on the fly (isto , quando os dados de
entrada so processados e os resultados so enviados diretamente para a sada), o
computador precisa armazenar temporariamente ao menos aquela poro dos dados que
est sendo processada naquele instante. Portanto, existe pelo menos uma funo de
armazenamento temporrio de dados. igualmente importante que um computador seja
capaz de armazenar dados de maneira permanente, por perodos longos. Os dados so
armazenados no computador, para subsequente recuperao e modificao.

BCC Arquitetura de Computadores I

Um computador deve ser capaz de transferir dados, tanto internamente quanto


com o mundo externo. O ambiente de operao de um computador consiste em
dispositivos que servem como fonte ou como destino de dados. Quando os dados so
recebidos ou enviados para um dispositivo diretamente ao computador, o processo
conhecido como entrada e sada (E/S) ou I/O (Input/Output) e o dispositivo
denominado de perifrico. Quando os dados so transferidos por distncias maiores, de
ou para um dispositivo remoto, o processo conhecido como comunicao de dados.
Finalmente, deve existir um controle dessas trs funes. Em ltima instncia, esse
controle exercido pelo(s) indivduo(s) que fornece(m) instrues ao computador. Dentro
de um sistema de computao, uma unidade de controle gerencia os recursos do
computador e rege o desempenho das suas partes funcionais em resposta a essas
instrues [STALLINGS 2002]
1.4 Evoluo histrica dos computadores
O esquema abaixo resume as geraes dos computadores, conforme [TANENBAUM 2001],
complementada com as demais referncias bibliogrficas, e ressalta os aspectos relevantes na evoluo de
hardware e software em cada gerao.
1.4.1 Gerao Zero (1642- 1945):
- Mquina de calcular (soma e subtrao) de Blaise Pascal (1642), posteriormente chamada de
Pascalina. Era totalmente mecnica. Segundo [MONTEIRO 2007], a Pascalina consistia em seis
engrenagens dentadas, com ponteiro indicando o valor decimal escolhido e calculado. Cada engrenagem
continha 10 dentes que, aps afetuarem um giro completo, acarretavam o avano de um dente de uma
segunda engrenagem. Cada conjunto de ponteiros era usado como um registrador para armazenar
temporariamente o valor de um nmero. O calculador de Pascal apresentou duas significativas inovaes
tecnolgicas: a implementao do vai-um e a utilizao da tcnica de complemento para operaes de
subtrao.
Vamos praticar ?
Operaes de subtrao por meio de complemento de base:
MINUENDO

Exemplo: 13 7
SUBTRAENDO

- em regra, inverte-se o sinal do subtraendo com o complemento da base decimal conforme o maior
nmero de casas decimais do minuendo ou subtraendo:

13 = duas casas decimais: unidade e dezena ( 00 99 = cem valores)


determina-se o complemento de 7 em 100 = 93
soma-se o minuendo com o complemento = 13 + 93
considera-se apenas as casas da base decimal conforme o minuendo (unidade e dezena)
13 + 93 = 106 , considera-se apenas dezena e unidade = 06
ou seja, 13 7 = 6

Outros exemplos:

BCC Arquitetura de Computadores I

a) 45 -32 =
45 + (complemento de 32 em 100) =
45 + ( 68) = 113 (minuendo com dezena e unidade; logo, despreza-se a centena)
45 32 = 13
b) 2345 56 =
2345 + (complemento de 56 em 10000) =
2345 + ( 9944) = 12289 (considera-se apenas milhar, centena, dezena, unidade).
2345 56 = 2289
Outros casos:
c) - 345 + 6 =
- (345 -6) =
-(345 6) = - (345 + 994) = -(1339)
- (345 6) = - 339
d) - 34 - 13 = - (34 + 13) = -(47) = -47

Veja,
neste
link,
um
simulador
orange.fr/pages/truc_mat/textes/pascaline.htm

da

Pascalina:

http://therese.eveilleau.pagesperso-

Ainda no sculo XVII, Gottfried Leibniz incrementou a Pascalina com as operaes de multiplicao e
diviso.
No sculo XIX, Charles Babbage (citados por alguns autores como o av do computador moderno)
desenvolveu duas mquinas mecnicas: a Mquina Diferencial e a Mquina Analtica. A primeira
executava, mecanicamente, clculos polinomiais e funes trigonomtricas para a Marinha Real Inglesa. As
inovaes tecnolgicas foram as seguintes: realizava repetidas e sucessivas operaes de adio e
multiplicao; e imprimia os resultados.
A Mquina Analtica era composta por uma memria (com capacidade para armazenar 1000
nmeros de 20 algarismos), uma unidade de processamento (que realizava as quatro operaes
aritmticas), uma unidade de entrada (leitora de cartes perfurados) e uma unidade de sada (perfurador
de cartes).
Segundo [MONTEIRO 2007],
possua um programa que podia modificar o
funcionamento da mquina, fazendo-a realizar diferentes clculos. Esta era de fato sua grande diferena e
vantagem sobre as anteriores: o fato de se tornar de uso mais geral por possuir a capacidade de
modificar suas operaes e assim realizar diferentes clculos. Assim, [TANENBAUM 2001] ratifica
que A grande vantagem da mquina analtica estava no fato de ela ser de propsito geral.
Em 1935, Konrad Zuse cria a primeira mquina de calcular com rels eletromagnticos.
Em 1944 Howard Aiken monta a mquina de Babbage com rels eletromecnicos.
Em virtude de segredo de estado do governo britnico, a Mquina Colossus, desenvolvida por Alan
Turing e colocada em operao em 1943, s veio a conhecimento pblico nos anos 90. Dessa forma, a
histria da computao teve de ser adaptada para fazer justia e esse grande matemtico ingls que, durante a
Segunda Guerra Mundial, trabalhou na criptoanlise do Enigma (dispositivo de criptografia utilizado pelos
alemes). Segundo [MONTEIRO 2007], Turing bastante conhecido pela teoria da computao que
desenvolveu, conhecida como Mquina de Turing, descrita em 1937 e que consistia na definio de uma
funo de computao, pela qual uma mquina poderia simular o comportamento de qualquer outra
mquina usada para computao, se fosse adequadamente instruda para tal.

BCC Arquitetura de Computadores I

Resumindo:

1.4.2 Primeira Gerao - Vlvulas (1945-1955)


Entre 1943 e 1946, foi desenvolvido o ENIAC que, segundo [MONTEIRO 2007], consistia em 17.000
vlvulas e 800 metros de cabos, pesando ao todo cerca de 30 toneladas. Realizava cerca de 10.000 operaes
por segundo, possua 20 registradores capazes de armazenar um valor decimal de 10 dgitos. Era programado
por meio da redistribuio da cabos em tomadas diferentes e rearranjo de chaves. Essa era sua principal
limitao.
Ainda sobre o ENIAC, [STALLINGS 2002] destaca o seguinte A tarefa de modificar um programa
no ENIAC era extremamente tediosa. O processo de programao poderia ser extremamente facilitado
se um programa pudesse ser representado de maneira adequada, de modo que fosse armazenado na
memria, juntamente com os dados. Assim, o computador poderia obter as instrues diretamente, a partir
da memria, e um programa poderia ser carregado ou modificado simplesmente atribuindo valores a
posies de memria. Essa ideia, conhecida como programa armazenado, geralmente atribuda aos
projetistas do ENIAC, principalmente ao matemtico John von Neumann, que era um dos consultores do
projeto do ENIAC.
Em 1948, Claude E. Shannon publicou a Teoria da Informao como resultado de seu trabalho como
assistente no MIT. Uma das ideias propostas por Shannon foi de que a informao pode ser manipulada por
meio de dispositivos de chaveamento (rels) com dois estados distintos: aberto ou fechado e, portanto,
poderiam ser afetuadas operaes regidas pela lgebra boolena com valores binrios (0 e 1). Com isso,
qualquer informao deveria ser representada ou codificada em um valor binrio desde que este preservasse
o valor real da informao. Por exemplo, a informao das quatro estaes do ano poderia ser representada
por 2 dgitos binrios ( log2 4 = 2): 00 , 01, 10 e 11. No caso da codificao, por exemplo, as 26 letras do
alfabeto poderiam ser representadas por 5 bits ( 25 = 32). Foi nessa poca que J. W. Tukey sugeriu o termo
bit (BInary digiT).
Em 1946, von Newmann e sua equipe iniciam o projeto de um novo computador de programa
armazenado, conhecido como IAS (Institute for Advanced Study) e utilizando o sistema binrio. O IAS,
embora concludo somente em 1952, constitui o prottipo de todos os computadores de propsito geral
subsequentes. Assim, com raras excees, todos os computadores atuais possuem a arquitetura do IAS, ou
Mquina de von Neumann.
Em 1947, criado o UNIVAC que foi o primeiro computador para uso comercial.

BCC Arquitetura de Computadores I

1.4.3 Segunda Gerao Transistores (1955 1965):


A principal inovao nessa gerao foi a substituio das vlvulas eletrnicas por transistores.
Outra inovao foi a criao de um software de sistema para controlar a unidade de lgica e aritmtica
e a unidade de controle ( atualmente, conhecido como Microprograma).
O processamento era predominantemente em batch( em lotes)
executada por vez.

nos quais uma s atividade era

Em 1957 foi criada a DEC (Digital Equipament Corporation) que, por meio da srie dos PDP, iniciou
o advento dos minicomputadores.

1.4.4 Terceira Gerao Circuitos Integrados (1965 1980):


Em 1958, os circuitos eletrnicos discretos foram reduzidos e integrados em um nico chip. Com isso,
nasce a microeletrnica.
Os softwares de sistema de controle da unidade de processamento passam a ter mais controle sobre
todas as demais funes das mquinas e, dessa forma, surgem os Sistemas Operacionais.
Com maior controle sobre as funes do computador, foi possvel compartilhar a unidade de
processamento com diversas tarefas (Job). Assim, surge o conceito de time sharing (ou tempo
compartilhado) nos quais vrias tarefas eram concorriam pelo uso do processador.
A IBM cria o conceito de Famlia de Computadores com o S360.

BCC Arquitetura de Computadores I

1.4.5 Quarta Gerao Integrao de Circuitos em Grande Escala (1980 - ?):


A integrao de componentes eletrnicos se desenvolve permitindo, assim, o projeto de computadores
de tamanho fsico menores.
No incio da dcada de 1980, surgem os microprocessadores que deram vida aos computadores
pessoais: a IBM lana o IBM-PC e a Steve Jobs lana o Apple e AppleII.
Novo paradigma de mercado: em vez de manter o projeto do PC em segredo, a IBM resolveu divulgar
o projeto detalhado de seu microcomputador a fim de permitir que outras empresas pudessem fabricar
hardware compatvel com o IBM-PC.
A verso inicial do IBM-PC vinha com sistema operacional MS-DOS (Microsoft Disc Operation
System) com processadores fabricados pela Intel.

1.5 A Mquina de von Neumann (IAS)


A seguir, ser apresentada a estrutura do IAS que posteriormente ficou conhecida como Mquina de
von Neumann:

Primeiro: como o dispositivo em essncia um computador, ele dever executar mais


frequentemente as operaes elementares da aritmtica: adio, subtrao, multiplicao e
diviso. razovel, portanto, que deva conter componentes especializados para realizar essas
operaes.
Deve-se observar, entretanto, que, embora esse princpio seja provavelmente correto, a
maneira como ser implementado requer um estudo meticuloso. De qualquer modo, dever
existir, provavelmente, uma unidade central de aritmtica, que constituir a primeira parte
especfica do dispositivo: CA.
Segundo: o controle lgico do dispositivo, ou seja, a execuo das operaes na
sequncia apropriada, pode ser feito, de modo mais eficiente, por meio de um componente de
controle central. Se o dispositivo tiver de ser flexvel, isto , se tiver de ser um dispositivo de
propsito geral, ser conveniente, tanto quanto possvel, distinguir o conjunto de instrues
especficas para a soluo de um determinado problema e os componentes de controle geral que
se encarregam da execuo dessas instrues, independentemente de quais elas sejam. As
instrues devem ser armazenadas de algum modo; os componentes de controle so descritos
pelas partes operacionais definidas do dispositivo. Entendemos como controle central apenas
essa ltima funo, e os componentes que a desempenham constituem a segunda parte
especfica do dispositivo: CC.

BCC Arquitetura de Computadores I

10

Terceiro: qualquer dispositivo destinado execuo de longas e complicadas sequncias


de operaes (especificamente de clculos) deve ter uma memria considervel.
O conjunto de instrues para a soluo de um problema complicado pode ter tamanho
considervel, particularmente se o cdigo for circunstancial (o que ocorre na maioria dos casos).
Esse conjunto de instrues deve ser, de alguma maneira, recuperado.
A memria, como um todo, constitui a terceira parte especfica do dispositivo: M.
As trs partes especficas, CA, CC e M, correspondem aos neurnios associativos do
sistema nervoso humano. Resta discutir os componentes equivalentes aos neurnios sensoriais,
ou aferentes, e aos neurnios motores, ou eferentes. Esses so os elementos de entrada e sada
do dispositivo.
O dispositivo deve ser dotado de habilidade para manter contato de entrada e sada
(sensorial e motor) com alguns mecanismos especficos dessa natureza. Estes mecanismos sero
denominados meios de armazenamento externo do dispositivo: A
Quarto: o dispositivo deve possuir elementos para transferir informaes de A para
seus componentes especficos C e M. Esses elementos constituem sua entrada, a quarta parte
especfica do dispositivo: E. Veremos que mais adequado efetuar todas as transferncias de A
(por E) para M e nunca diretamente para C.
Quinto: o dispositivo deve possuir elementos para transferir de seus componentes
especficos C e M para A .Esses elementos constituem sua sada, a quinta parte especfica do
dispositivo: S. Veremos novamente que mais adequado efetuar todas as transferncias de M
(por S) para A e nunca diretamente para C. [STALLINGS 2002]

Resumindo os componentes estruturais de um computador


Unidade central de processamento (UCP ou CPU): controla a operao do computador e
desempenha funes de processamento de dados. muitas vezes chamada simplesmente de processador.
Por sua vez, a CPU subdivida em:
Unidade de Controle: controla a operao da CPU e, portanto, do computador.
Unidade Lgica e Aritmtica (ULA ou ALU): realiza a operaes lgicas e
aritmticas com os dados trazidos da memria para os registradores.
Registradores: fornece o armazenamento interno para que a CPU processe os dados.
Memria Principal: para armazenamento de dados diretamente endereveis pela CPU, ou seja, a
CPU consegue determinar qual a localizao do dado dentro da memria.
Dispositivos de Entrada e Sada (E/S ou I/O): transfere dados entre o computador e o ambiente
externo.
Sistema de Interconexo (Barramento): mecanismo que estabelece a comunicao entre a CPU, a
memria principal e o os dispositivos de entrada e sada.

BCC Arquitetura de Computadores I

11

Como concluso desta aula, vale reproduzir o seguinte texto de [STALLINGS, 2002]:
O computador composto de um pequeno conjunto de componentes lgicos bsicos, que podem ser
combinados de vrios modos para armazenar dados binrios e executar operaes aritmticas e lgicas sobre
esses dados. possvel obter, para cada aplicao particular, uma configurao de componentes lgicos
projetada especificamente para executar essa aplicao. Esse processo de conectar os diferentes
componentes do sistema para obter a configurao desejada pode ser concebido como uma forma de
programao. O 'programa' resultante formado pelo hardware e chamado programa hardwired .
Considere agora outra alternativa: suponha que construmos uma configurao de funes lgicas e
aritmticas de propsito geral. Esse conjunto de componentes de hardware capaz de executar vrias
funes sobre os dados, dependendo dos sinais de controle que lhe so aplicados. Na situao anterior, em
que o hardware dedicado para uma aplicao particular, o sistema apenas l dados e produz resultados
(Figura a). Um hardware de propsito geral capaz de ler dados e sinais de controle e produzir resultados.
Assim, em vez de projetar um novo hardware para cada aplicao nova, o programador simplesmente
precisa fornecer um novo conjunto de sinais de controle.
Como esses sinais de controle devem ser fornecidos? A resposta simples, porm sutil. Um programa
constitudo de uma sequncia de passos. A cada passo, alguma operao lgica ou aritmtica executada
sobre algum dado. Para cada passo, necessrio um novo conjunto de sinais de controle. Podemos definir
um cdigo para cada possvel conjunto de sinais de controle e acrescentar ao hardware de propsito geral
um elemento capaz de interpretar esses cdigos e gerar os sinais de controle correspondentes (Figura b).
Programar agora ficou muito mais fcil. Em vez de projetar um novo hardware para cada
aplicao nova, precisamos apenas fornecer uma nova sequncia de cdigos. Cada cdigo corresponde a
uma instruo; uma parte do hardware interpreta essas instrues e gera os sinais de controle
correspondentes. Para distinguir esse novo mtodo de programao, uma sequncia de cdigos ou
instrues chamada de software.

BCC Arquitetura de Computadores I

12

2 SISTEMA BINRIO E CONVERSO DE BASES


2.1 Sistema Binrio
Conforme estudamos na Aula 1, desde a arquitetura de von Neumann, os computadores so
construdos utilizando-se a lgica binria, ou seja, dgitos 0 e 1. Ns, seres humanos, estamos
acostumados com o sistema decimal. Dessa forma, ao lermos um valor binrio iremos, intuitivamente, tentar
convert-lo para a dimenso decimal para melhor visualizar a quantidade ali expressa. A utilizao da base
binria na computao se deve ao trabalho de Claude Shannon, em 1948, sobre a Teoria Matemtica
da Comunicao. Embora no esteja no escopo desta disciplina o estudo completo dessa teoria, vale para
nosso estudo o seguinte:
Se utilizar a base 2, as unidades resultantes podem chamar-se dgitos binrios, ou, abreviadamente,
bits (BInary digiT), termo sugerido por J.W.Tukey. Assim, um dispositivo com duas posies estveis (ou
dois estados estveis: ligado/desligado ; fechado/aberto; sim/no) pode armazenar um bit de informao. N
desses dispositivos podem armazenar N bits, j que o nmero total de estados possveis 2N e log22N =
N.[SHANNON, 1948].
Com dois bits, tem-se 4 estados, ou seja, 22 = 4

Com trs bits, tem-se 8 estados, ou seja, 23 = 8

Qde Bits

Qde Bits

Estados possveis
1

Estados possveis

1
N

Ou seja, sendo N a quantidade de bits utilizados, tem-se 2 (Base 2) estados possveis:


Qde de bits
1

Estados possveis
21 = 2
2

2 =4

23 = 8

24 = 16

25 = 32

2 = 64

27 = 128

28 = 256

2 = 512

10

210 = 1024

Ao observar os estados possveis, percebe-se que eles no so


compatveis com a base decimal, com a qual estamos habituados a
lidar. Ou seja, no sistema decimal, seus 10 algarismos possibilitam
representar ou 10, ou 100, ou 1000 ..... estados diferentes.
Dessa forma, h a necessidade de representar a mesma quantidade
de estados da tabela ao lado em outras bases que no a binria.
Tipicamente, em computao, alm da base 2, utilizam-se as
bases 8 (octal) e 16 (hexadecimal).

BCC Arquitetura de Computadores I

13

Para facilitar a nossa manipulao com valores binrios, em cincia da computao tambm
utilizamos outras duas bases: octal e hexadecimal. Mas, lembre-se, internamente o computador sempre
trabalhar com valores binrios.
Base

Quantidade de Estados

Dgitos

2 binria

01

8 octal

01234567

16 - hexadecimal

16

0123456789ABCDEF

Conforme o diagrama abaixo, pode-se perceber que tanto a base 8 quanto a 16 preservam o nmero de
estados da informao em log2.
Base 16
Base 8
Base 2
0

Valor binrio: 2 estados representado


por 1 bit ( log2 2 = 1).

Valor octal: 8 estados representador


por 3 bits (log28 = 3).

Valor hexadecimal: 16 estados


representados por 4 bits (log216=4).

Base 10
0

BCC Arquitetura de Computadores I

Com a Base 10 no possvel representar todos os


estados possveis uma quantidade inteira N de bits
N
onde log 2 2 = N.

Shannon explica em seu trabalho que para se utilizar a


base decimal para armazenar a informao, seria
necessrio um dispositivo que conseguisse armazenar
10 estados distintos. Embora o dgito decimal equivale
a 3 e 1/3 dgitos binrios, na prtica, a construo de
dispositivos de chaveamento com dois estados muito
mais vivel.

14

2.2 Converso entre Bases Decimal e Binria.

2.2.1 Sistemas de Numerao


Segundo [MONTEIRO 2007], os sistemas de numerao so divididos em no-posicionais
(algarismos romanos) e posicionais (algarismos arbicos). No primeiro, a noo de quantidade expressa por
um smbolo que representa uma quantidade fixa. Para determinar uma grandeza numrica, deve-se reunir os
smbolos, conforme o valor que cada um representa, at completar o nmero: MCMLXXXVIII. No segundo,
h smbolos para representar grandezas unitrias e, para representar quantidades que excedem a
possibilidades dos smbolos, cada smbolo ocupa outra posio para quantificar esse valor: 2, 20, 200, 2.000
e 20.000. Neste exemplo, o algarismo 2, dependendo da posio, pode representar: duas unidades, duas
dezenas, duas centenas, dois milhares e duas dezenas de milhares respectivamente.
Assim, cada posio corresponde ao algarismo na potncia de base 10:
BASE Potncia

Valor na Base 10

10 0

8 x 100

10 1

10

9 x 101

90

10 2

100

3 x 102

300

10 3

1.000

6 x 103

6.000

10 4

10.000

5 x 104

50.000

10 5

100.000

2 x 105

400.000

Exemplo:
256.398

Ou seja, 256.398 = (2 x 105) + (5 x 104) + (6 x 103) + (3 x 102) + (9 x 101) + (8 x 100)


Assim, sendo um nmero N na Base 10 (N10), cada posio (unidade, dezena, centena, etc) ser representada
por um algarismo A multiplicado pela base elevada a potncia de nmeros de algarismos -1:
N10 = A x 10 NumAlgarismo -1 + .... + A x 103 + A x 102 + A x 101 + A x 100 + A x 10-1 + A x 10-2 ....

BCC Arquitetura de Computadores I

15

2.2.2 Converso Decimal para Binrio (N10 para N2)


Dado N10, para convert-lo para N2 :
N10

Q10

Q10

Q10

Q10 < 2

Divide-se N10 pelo valor da base at o quociente for


menor que o divisor (base a ser convertida).

O valor na Base 2 ser lido do quociente (bit mais


significativo) e, na ordem, os demais valores de
resto at o primeiro valor (bit menos significativo)

Exemplo: Converter 13110 para Base 2:


131
1

2
65

32

16

4
0

2
2

13110 = 100000112
2.2.3 Converso Binrio para Decimal (N2 para N10)
N10 = N2 x 2 (b- 1) + ... +N2 x 21 + N2 x 20

Toma-se a quantidade de bits (b) e multiplica o bit


menos significativo por 20, o segundo bit por 21, at o
bit mais significativo por 2 (b -1)

Exemplo: Converter 100000112 para Base 10:


Mais
significativo

Menos
significativo

1 x 27 +

0 x 26 +

0 x 25 +

0 x 24 +

0 x 23 +

0 x 22 +

1 x 21 +

1 x 20

1 x 128 +

0 x 64 +

0 x 32 +

0 x 16 +

0x8 +

0x4 +

1x2 +

1x1

128 + 2 + 1 = 131

BCC Arquitetura de Computadores I

16

2.2.4 Mtodo prtico para converso N10/N2 e N2/N10:


Monte uma tabela com as potncias de 2 (o valor da potncia depende do valor que se deseja
converter);
Preencha cada posio com as potncias da base 2 do bit menos significativo para o mais significativo;

29

28

27

26

25

24

23

22

21

20

512

256

128

64

32

16

- Para converter de N2/N10: 11001011012 =


29

28

27

26

25

24

23

22

21

20

512

256

128

64

32

16

= 1 x 512 + 1 x 256 + 128 x 0 + 64 x 0 + 32 x 1 + 16 x 0 + 8 x 1 + 4 x 1 + 2 x 0 + 1 x 1 = 813 10


Ou, soma-se apenas os valores na tabela que correspondem ao binrio 1 na respectiva posio:
= 512 + 256 + 32 + 8 + 4 + 1 = 81310
Para converter N10/N2 : 113 10
-Define-se a dimenso da tabela conforme o nmero do qual se quer converter. O esquema abaixo
mostra como dimensionar a tabela binria.
Nmero de posies

Valor Mximo na Base 10

21 - 1

22 - 1

23 - 1

15

24 - 1

31

25 - 1

63

26 - 1

127

27 - 1

255

28 - 1

511

29 - 1

10

1023

210 - 1

BCC Arquitetura de Computadores I

17

- Para converter 113, tem-se de utilizar a tabela com 7 posies:

26

25

24

23

22

21

20

64

32

16

- Verifica-se se 113 maior ou igual ao maior valor de tabela. Se for, marque o bit igual a um na
posio testada e subtraia de 113 o respectivo valor decimal. Repita essa operao at o bit menos
significativo.
- No caso, 113 maior que 64, ento, marque o bit igual a 1 e subtraia 64 de 113:

64

32

16

Se 113 >= 64; Ento faa 113 64 = 49 e marque bit = 1.

Se 49 >= 32; Ento faa 49 32 = 17 e marque bit = 1

Se 17 >= 16; Ento faa 17 16 = 1 e marque bit = 1


Se 1 >= 8; Seno passe para prxima posio e marque bit = 0
Se 1 >= 4; Seno passe para prxima posio e marque bit = 0
Se 1 >= 2; Seno passe para prxima posio e marque bit = 0

Se 1 >= 1; Ento faa 1 - 1 = 0 e marque bit = 1. Valor final = 0.

11310 = 11100012

BCC Arquitetura de Computadores I

18

3 BASES OCTAL E HEXADECIMAL


Dando continuidade ao assunto da Aula 2, nesta aula iremos trabalhar com as bases numricas octal e
hexadecimal.
Revisando:
Base

Quantidade de Estados

Dgitos

2 binria

01

8 octal

01234567

16 - hexadecimal

16

0123456789ABCDEF

3.1 Base Octal (N8)


3.1.1 Converso Decimal para Octal (N10 para N8)
N10

Q10

Q10

Q10

Q10 < 8

Divide-se N10 pelo valor da base at quociente for


menor que o valor da base a ser convertida.

O valor na Base 8 ser lido do quociente (mais


significativo) e, na ordem, os demais valores de
resto at o primeiro valor do resto (menos
significativo)

Exemplo: Converter 13110 para Base 8:


131
3

8
16

13110 = 2038

3.1.2 Converso de Octal para Decimal (N8 para N10)


N10 = N8 x 8 (o - 1) + ... +N8 x 81 + N8 x 80

Toma-se a quantidade de dgitos octais e multiplica o


dgito menos significativo por 80, o segundo dgito
por 81, at o digito octal mais significativo por 8 (o -1).

Converter 26728 para Base 10:


Mais
significativo

Menos
significativo

2 x 83 +

6 x 82 +

7 x 81 +

2 x 80

2 x 512 +

6 x 64 +

7x8 +

BCC Arquitetura de Computadores I

2x1

1024 + 384 + 56 + 2 = 146610


19

3.1.3 Mtodo prtico para converso entre N10/N8 e N8/ N10


a) Decimal/Octal
579310 =
84

83

82

81

80

4096

512

64

Base 10

Base 8

5793 ( 1 x 4096) = 1697 (3 x 512) = 161 ( 2 x 64 ) = 33 ( 4 x 8 ) = 1 ( 1 x 1 ) = 0


579310 = 132418

b) Octal/Decimal
177568=
84

83

82

81

80

4096

512

64

Base 10

Base 8

177568 = (1 x 4096) + (7 x 512) + (7 x 64) + (5 x 8) + (6 x 1) = 817410


177568n= 817410

BCC Arquitetura de Computadores I

20

3.2 Base Hexadecimal


3.2.1 Converso de Decimal para Hexadecimal (N10 para N16)
N10

16

Q10

16

Q10

16

Q10

16

Q10 < 16

Divide-se N10 pelo valor da base at quociente for


menor que o valor da base a ser convertida.

O valor na Base 16 ser lido do quociente (mais


significativo) e, na ordem, os demais valores de
resto at o primeiro valor do resto (menos
significativo).
Ateno: 10=A; 11 = B; 12=C ; 13=D ; 14=E e 15=F.

Exemplo: Converter 93510 para Base 16:


935
7

16
58

93510 = 3A716

16

10

3.2.2 Converso de Hexadecimal para Decimal (N16 para N10)


N10 = N16 x 16 (h 1) + ... +N16 x 161 + N16 x 160

Toma-se a quantidade de dgitos hexadecimais e


multiplica o dgito menos significativo por 160, o
segundo dgito hexadecimal por 161, at o digito
hexadecimal mais significativo por 16 (h -1).

Exemplo: Converter BABA16 para Base 10:


Mais
significativo

Menos
significativo

11 x 163 +

10 x 162 +

11 x 161 +

10 x 160

11 x 4096 +

10 x 256 +

11 x 16 +

BCC Arquitetura de Computadores I

10 x 1

45056 + 2560 + 176 + 10 = 4780210

21

3.2.3 Mtodo prtico para converso entre N10/N16 e N16/ N10


a) Decimal/Hexa: ( A= 10 ; B = 11 ; C = 12 ; D = 13 ; E = 14 ; F = 15)
5035710 =
164

163

162

161

160

65536

4096

256

16

Base 10

12 (C)

11 (B)

Base 16

50357 (12 x 4096) = 1205 ( 4 x 256) = 181 ( 11 x 16) = 5 (5 x 1) = 0


5035710 = C4B516

b) Hexa/Decimal: ( A= 10 ; B = 11 ; C = 12 ; D = 13 ; E = 14 ; F = 15)

DADA16 =
164

163

162

161

160

65536

4096

256

16

Base 10

Base 16

DADA16 = (13 x 4096) + (10 x 256) + (13 x 16) + (10 x 1) = 5602610


DADA16 = 5602610

BCC Arquitetura de Computadores I

22

3.3 Converso entre Binrio, Octal e Hexadecimal:

a) Binrio/Octal :
Forme grupos de 3 bits (partindo da direita para esquerda) e faa as converses para octal.
Ex: 1110101101
|001|110|101|101
1

5 5

=> 11101011012 = 16558

b) Binrio/Hexa:
Forme grupo de 4 bits (da direita para esquerda) e faa as converses para hexa.
Ex: 1110101101
|0011|1010|1101
3

=> 11101011012 = 3AD16

c) Hexa/Octal (utilizando binrio como base comum)


45AEF16 = 10553578
|

4 | 5 | A | E | F |

|0100|0101| 1010| 1110 | 1111|

=> 010001011010111011112 => |001|000|101|101|011|101|111


1

BCC Arquitetura de Computadores I

5 5

3 5

7 => 10553578

23

4 REPRESENTAO DE DADOS
4.1 Unidades com Binrios
1 Bit = BInary DigiT a menor unidade de informao dentro do computador.
1 Nibble = 4 bits , um nibble pode representar qualquer dgito hexadecimal.
1 Byte = 8 bits , segundo [TOCCI 2007 ], o Byte se tornou a unidade fundamental para se
representar qualquer tipo de informao, principalmente em dispositivos de armazenamento como memria
primria e secundria. E [HYDE 2003] complementa informando-nos que a menor quantidade de
dados enderevel dentro da memria na maioria das arquiteturas.
Word (Palavra) : em termos gerais, a palavra um conjunto de bits que no seja um nibble ou byte.
Dessa forma, pode-se ter palavras de 10 bits, por exemplo. Entretanto, na maioria das arquiteturas uma
palavra representa 16 bits. Assim, segundo [HYDE 2004]:
1 Word (Palavra) = 16 bits.
1 Double Word , DWord (Palavra Dupla) = 32 bits.
1 Quad Word, QWord (Palavra Qudrupla) = 64 bits.
1 Long Word , LWord (Palavra Longa) = 128 bits.
Palavras de 10 bits, por exemplo, so conhecidas como Ten Word (TWord).
Em [HYDE 2003], tem-se as seguintes representaes na memria:
BYTE
Bit 7 mais significativo ( HO Bit)
HO = High Order

Bit 0 menos significativo (LO Bit)


HO Nibble

LO Nibble

LO = Low Order
BYTE

WORD
HO BYTE
Nibble 3 (HO)

Nibble 2

LO BYTE
Nibble 1

Nibbe 0 (LO)

DWORD
HO WORD
BYTE 3 (HO)
Nibble7(HO)

Nibble 6

LO WORD
BYTE 2

Nibble 5

BCC Arquitetura de Computadores I

Nibbe 4

BYTE 1
Nibble 3

Nibble 2

BYTE 0 (LO)
Nibble 1

Nibbe0 (LO)

24

4.2 Endereamento de Byes e Palavras na Memria


A figura abaixo ilustra contedos de memria (em Bytes) sendo endereados por instrues de 1 byte,
word , dword e qword:
Instruo

Unidade a ser endereada

Load(10)

BYTE

Load[W](12)
W = word

WORD

Load[D](14)
D = Dword

DWORD

Load[Q](18)
Q= QWord

QWORD

Endereo 16
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F

MEMRIA2
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

Como j sabemos, o byte a menor unidade de informao enderevel na memria. Por exemplo,
uma determinada arquitetura trabalha com a instruo LOAD(M) que carrega para um determinado
registrador o contedo de 1 Byte de dados localizado no endereo M da memria. Nesse caso, essa mesma
arquitetura pode ter instrues que carregam uma word, dword ou qword. Nesse caso, na sintaxe da instruo
h a indicao da unidade entre colchetes. Por exemplo, LOAD[W](12) carregar um registrador de 16 bits
com o contedo de 2 bytes a partir do endereo 1216, ou seja, os bytes armazenados em 1216 e 1316.
Os registradores unidade de memria dentro da CPU tambm podem ser organizados conforme a
quantidade de bytes endereados. Por exemplo, na arquitetura 80x86 (ou x86), o acumulador conhecido
apenas como registrador AX segue a estrutura abaixo:
AX
BYTE

BYTE
AH
AL
Sistemas de 16 bits

EAX
BYTE

BYTE

BYTE
Sistemas de 32 bits

BYTE

RAX
BYTE

BYTE

BYTE

BYTE

BYTE
Sistemas de 64 bits

BYTE

BYTE

BYTE

importante observar que na arquitetura x86, o processador de 16 bits (word). Dessa forma, a
unidade bsica de endereamento uma palavra de 16 bits. Entretanto, para manter a compatibilidade, h
como enderear o byte por meio do AH (registrador A com byte mais significativo) e AL (registrador A com
o byte menos significativo). O EAX uma dword para arquitetura de 32 bits e o RAX uma qword para
64bits.
Ler sobre famlias de processadores Intel em:

http://pt.wikipedia.org/wiki/X86
BCC Arquitetura de Computadores I

25

4.3 Representao de Dados


At o momento, temos manipulado apenas valores numricos em diversas bases. Entretanto, h outros
tipos de dados como, por exemplo, caracteres alfanumricos e especiais - que devem ser representados,
armazenados e manipulados de forma binria dentro do computador. Para tanto, deve-se utilizar tcnicas de
codificao diversos smbolos de dados para o binrio.
Nesse sentido, [TOCCI ] esclarece: Quando nmeros, letras ou palavras so representados por um
grupo especial de smbolos, dizemos que eles esto codificados, sendo o grupo de smbolos denominado
cdigo.
4.3.1 Cdigo BCD (Binary Coded Decimal)
Segundo [STALINGS 2002 ],
Embora toda a operao interna de um computador seja, por natureza, binria, usurios
do sistema lidam com nmeros decimais. Portanto, nmeros decimais devem ser
convertidos para binrio, na entrada, e nmeros binrios devem ser convertidos para
nmeros decimais na sada. Para aplicaes com grande quantidade de E/S e
relativamente pouca computao, prefervel armazenar e operar sobre nmeros na
forma decimal. A representao mais comumente usada para esse propsito a
representao de nmero decimal empacotado em unidades de 4 bits (essa representao
conhecida como BCD binary coded decimal).
No BCD cada valor decimal codificado pelo respectivo valor em binrio de um nibble conforme a
tabela abaixo:
Valor Binrio
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

Cdigo BCD
Codificao em Dgitos Decimais
0
1
2
3
4
5
6
7
8
9

Segundo [TOCCI 2007]:


Vimos que qualquer nmero decimal pode ser representado por um nmero binrio
equivalente. Os grupos de 0s e 1s em um nmero binrio podem ser usados como uma
representao codificada de um nmero decimal. Quando um nmero decimal
representado pelo seu binrio equivalente, dizemos que uma codificao em binrio
puro.
Todos os sistemas digitais usam alguma forma de numerao binria em suas operaes
internas; porm, o mundo externo naturalmente decimal. Isto significa que converses
entre os sistemas decimal e binrio so realizadas frequentemente. Vimos que converses
entre decimal e binrio podem se tornar longas e complicadas para nmeros grandes. Por
isso, uma maneira de codificar nmeros decimais, que combine algumas caractersticas
dos dois sistemas, binrio e decimal, usada em determinadas situaes.

BCC Arquitetura de Computadores I

26

Pela tabela anterior, pode-se verificar que com um nbble possvel representar os dez dgitos do
sistema decimal. Dessa forma, como 1 byte possvel representar valores de 0 a 99 onde as dezenas sero
codificadas com o nibble mais significativo e as unidades com o nibble menos significativo:
BYTE
Nibble HO
1

1
9

Nibble LO
0

1
7

97 codificado em BDC

Lembre-se de que estamos tratando aqui de uma codificao e no de converso de binrio


para decimal. Portanto, se convertermos o binrio 10010111 teremos o valor 151 em decimal.
Segundo [HYDE 2003], com o BCD o uso da memria ineficiente; pois com 8 bits, o BCD
armazena apenas valores de 0 a 99 enquanto que na converso entre as bases, com os mesmos 8 bits pode-se
representar valores decimais de 0 a 255. Dessa forma, o BCD encontra aplicaes em dispositivos de uso
especfico principalmente nas interfaces de exibio de valores decimais tais como displays de dispositivos
digitais.
Quando um byte codifica um valor decima de dois dgitos (um dgito por nibble), dizemos ser um
BCD empacotado (packed BCD). Quando um byte s representa um dgito decimal, dizemos ser um BCD
desempacotado (unpacked BCD).
Como h combinaes binrias sobrando no BCD, pode-se utiliz-las para representao de sinal.
Neste caso, tem-se:
Cdigo BCD
Valor Binrio

Sinal

1111

Sem sinal

1100

Positivo

1101

Negativo

BCC Arquitetura de Computadores I

27

4.3.2 Cdigo Alfanumrico ASCII


Conforme [TOCCI 2007], o cdigo alfanumrico mais utilizado o Cdigo Padro para Troca de
Informaes (American Standard Code for Information Interchange - ASCII).
O ASCII codifica caracteres alfanumricos imprimveis e caracteres de controle no imprimveis por
meio de 7 bits, ou seja, h no total 128 (27) representaes codificadas conforme a tabela abaixo:
Dec
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Hexa
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F

Caracter
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US

Dec
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

Hexa
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F

Caracter
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

Dec
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

Hexa
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F

Caracter
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_

Dec
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

Hexa
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F

Caracter
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL

Caracteres de controle: de 0 at 31 mais o 127.


Caracteres imprimveis: de 32 at 126.
No ASCII, o bit mais significativo utilizado para verificao de erro por clculo de paridade (vide
Anexo). Isso foi necessrio em virtude de o ASCII ser utilizado para a codificao de informao transmitida
entre mquinas.

BCC Arquitetura de Computadores I

28

4.3.3 Unicode
Com o ASCII possvel representar todos os caracteres latinos. Entretanto, h outros caracteres de
idomas no latinos que no cabem nos 7 bits do ASCII. Dessa forma, foram sendo criadas extenses para
permitir a representao de caracteres de outros idiomas. Uma dessas extenses, por exemplo, foi a srie de
normas ISO 8859.
O Unicode um padro mantido pela Unicode Consortium que visa representar qualquer sistema de
escrita existente e que conta, atualmente, com pouco mais de 107.000 caracteres.
Os esquemas de padronizao do Unicode so conhecidos como UTF (Unicode Transformation
Format):
UTF-7: uma codificao de caracteres de tamanho varivel capaz de representar um texto Unicode
usando uma seqncia de caracteres ASCII. usada principalmente em emails.
UTF-8: uma codificao de tamanho varivel de um a quatro bytes (octetos). necessrio apenas
um byte para codificar os 128 caracteres ASCII (Unicode U+0000 a U+007F). So necessrios dois bytes
para caracteres Latinos com diacrticos. So tambm usados dois bytes para representar caracteres dos
alfabetos Grego, Cirlico, Armnio, Hebraico, Srio e Thaana (Unicode U+0080 a U+07FF). So necessrios
trs bytes para o resto do Plano Multilingual Bsico (que contm praticamente todos os caracteres comuns
utilizados). Existem ainda outros caracteres que necessitam de quatro bytes.
UTF-16: um formato Unicode de 16-bits que prov uma maneira de representar os diversos
caracteres abstratos, presentes no Unicode e no ISO/IEC 10646, como uma srie de palavras (neste caso, de
16-bits), para ento poder ser armazenados ou transmitidos por uma rede.
UTF-32: um formato Unicode de 32 bits. Sua principal vantagem fornecer um modo uniforme para
representao de todos os caracteres.
Para saber mais, acesse: http://www.w3.org/International/questions/qa-choosing-encodings.pt-

br.php

BCC Arquitetura de Computadores I

29

5 REPRESENTAO DE NMEROS INTEIROS COM SINAIS


No armazenamento de valores numricos com sinal, no possvel utilizar os sinais e vrgulas, pois
apenas com dgitos 0s e 1s so representados os estados de circuitos eletrnicos que correspondem a essas
grandezas numricas.
Nesta seo estudaremos dois mecanismos para a representao do sinal: sinal-magnitude e
complemento-de-dois.

5.1 Representao sinal-magnitude


Tendo como referncia um Byte, o bit mais significativo indicar o sinal ( 0 = positivo , 1 = negativo)
Binrio

Decimal

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1

0 0 0 0 0 0 1 0

H 127 valores positivos e 127 negativos.


H dois valores para representar o 0.

Valores representveis:
-(2n-1 -1) at +(2n-1 -1)

0 1 1 1 1 1 1 1

127

1 0 0 0 0 0 0 0

1 0 0 0 0 0 0 1

-1

1 0 0 0 0 0 1 0

-2

.
1 1 1 1 1 1 1 1

-127

5.2 Representao por Complemento-de-Dois


Assim como a representao sinal-magnitude, a representao em complemento de dois usa o bit mais
significativo como bit de sinal, o que torna mais fcil testar se o nmero inteiro positivo ou negativo.
Entretanto, os demais bits so interpretados de maneira diferente:
Dado o valor inteiro positivo, o seu negativo o complemento do positivo adicionado de 1. Na
organizao do bits, o bit mais significativo bit de sinal ( 0 = positivo , 1 = negativo).
Exemplo:
+ 13 = 01101 -13 = ?
Passo 1: Inverte-se todos os bits.

0
1

1
0

1
0

0
1

1
0

Passo 2: Soma-se 1 ao valor do Passo 1.

0
1
1

Valor -13 em complemento de dois

BCC Arquitetura de Computadores I

30

Segundo [STALLINGS 2002], Embora a representao em complemento de dois possa parecer


pouco natural, do ponto de vista humano, veremos que ela torna mais fcil a implementao das operaes
aritmticas mais importantes a adio e a subtrao. Por isso, ela usada quase universalmente para
representar nmeros inteiros no processador.
Segundo [STALLINGS 2002], so caractersticas desse sistema:
a) Faixa de valores Representveis: -(2n-1) a +(2n-1 -1).
b) Um valor para representao do 0.
Decimal
+8
+7
+6
+5
+4
+3
+2
+1
+0
-0
-1
-2
-3
-4
-5
-6
-7
-8

Sinal Magnitude
0 1 1 1
0 1 1 0
0 1 0 1
0 1 0 0
0 0 1 1
0 0 1 0
0 0 0 1
0 0 0 0
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
-

oo

Complemento 2
0 1 1 1
0 1 1 0
0 1 0 1
0 1 0 0
0 0 1 1
0 0 1 0
0 0 0 1
0 0 0 0
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0
1 0 1 1
1 0 1 0
1 0 0 1
1 0 0 0

c) Negao: pegue o complemento booleano de cada bit do nmero positivo correspondente e ento
some 1 ao padro de bits resultantes.
d) Expanso do nmero de bits: acrescente posies de bits esquerda e preencha esses bits com o
valor do bit de sinal original.
12

= 01100 ->

00001100

-13

= 10011 ->

11110011

e) Regra de overflow: se dois nmeros com o mesmo sinal (ambos positivos ou ambos negativos)
forem somados, ocorrer overflow apenas se o resultado tiver sinal oposto.
O resultado de uma adio pode ter um nmero de bits maior do que o tamanho da palavra usada. Essa
condio denominada overflow (transbordamento). Quando isso ocorre, a Unidade de Lgica e
Aritmtica do processador deve sinalizar esse fato, para que o resultado no seja utilizado.
+5
+4

0
0
1

1
1
0

0
0
0

1
0
1

-7
-6
1

1
1
0

0
0
0

0
1
1

1
0
1

f) Regra de subtrao: para subtrair B de A, pegue o complemento de dois de B e some-o com A.

BCC Arquitetura de Computadores I

31

Na converso entre bases 2 e 10 com nmeros negativos, deve-se considerar o bit mais significativo
como sendo o bit de sinal e fazer a converso considerando esse sinal. Por exemplo, na converso de valores
de 1 byte:
-128
1
0
1
0

64
0
1
1
0

32
0
1
1
0

16
0
1
1
0

8
1
1
1
0

4
0
0
1
1

2
0
0
0
0

1
0
0
0
0

-120
120
-4
4

Representao Geomtrica de Nmeros de Complemento-de-Dois com 4 bits [STALLINGS 2002]:

Segundo [STALLINGS 2002]: A representao em complemento de dois pode ser visualizada por
meio da representao geomtrica mostrada na figura acima, extrada de Benham (1992). O crculo na
metade superior de cada parte da figura formado selecionando o segmento adequado da reta de nmeros e
juntando as duas extremidades. Comeando a partir de qualquer nmero do crculo, podemos somar um valor
k positivo (ou subtrair um valor k negativo) a esse nmero, movendo k posies no sentido horrio, ou
subtrair um valor k positivo (ou somar um valor k negativo), movendo k posies no sentido anti-horrio.
Caso essa operao cruze o ponto em que as duas extremidades se juntam, a resposta obtida incorreta.

BCC Arquitetura de Computadores I

32

5.3 Aritmtica convencional


a) Soma:
1
0
+ 0
0
0 0 0

1
0
1
0

0
1
1
+
1
1
1 0
0 0 0 0 0

1
0
+ 0
1
0 0 0

1
1
0
0
0

1
0
1
0

1
1
1
0

1
0
1
0

1
0
+ 0
1
0 0 0

1
1
0
0
0

1
1
0
0
0

1
1
0
0
0

1
0 1 0 1 0 1
1
+ 0 0 1 1 1 0
0
0 0 0 0 0 0 0 0 0 0 0

1
1
0
0

1
0
1
0 0 0 0

0
1
0
0
0

1
0
0
1
0

1
0
0
1
0

2
0
0 1 0 1 0 1
1
- 0 0 1 1 1 0
1
0 0 0 0 0 0 0 0 0 0 0

b) Subtrao:
0
- 0
0
0 0 0

1
0
1
0

0 2
1
1 0
1
1
0
0 1
0 0 0 0 0 0 0

0
0
0
0

c) Multiplicao:

x
1
1
0 0 0

1 0
1
0 0
0 1
0 1
0 0

1
0
0

0
0
1 0
0 0 0 0 1 1

1 0 1
1
1 0 1
0 0 0
1 1 0
0 1 1

1 0
0 1
1 0
0

1 0 0 1
x
1 1

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

d) Diviso:
1 0 1
1 0
0 0 1
1
0
0 0 0 0

0 1 0
0 1 0 1
0
0
0
0 0 0 0 0

BCC Arquitetura de Computadores I

1 0 0
1 0 0
1 0
0 0 1
1
0

0
0
1
1
0
1
1
0

1 1 1 0 1
0 0 0 1 1 1
1
1
0 1
0 1
0 0

0 0 0

33

5.4 Adio e Subtrao em Complemento de Dois


5.4.1 Adio

Conforme [TOCCI 2007] , h os seguintes casos para a adio entre binrios:


a) Entre dois nmeros positivos: adio feita diretamente.
b) Entre um nmero positivo e outro menor e negativo: faz-se a soma com o complemento
de dois do nmero negativo.
Ex: 9 4
11111100
1 1
0
+
1
1 0

1
0
1
0

1
0
1
0

(em oito bits):

-4 em complemento de 2 : 1100 , expandido para 8 bits =

1
0 1 0 0 1
1 1 1 0 0
0 0 1 0 1

Bit desconsiderado

Portanto = 00000101 = 01012 = 510


c) Entre um nmero negativo e outro maior e negativo: faz-se a soma com o complemento
de dois do nmero negativo.
Ex: -9 + 4 (em oito bits)
11110111

-9 em complemento de 2 = 10111, expandido para 8 bits =

1
1 1 1 1 0 1 1 1
0 0 0 0 0 1 0 0
1 1 1 1 1 0 1 1
Bit desconsiderado

Portanto: 11111011 = 10112 = -510


d) Dois nmeros negativos: faz-se a soma de ambos em complemento de 2.
Ex: -9 4 (em oito bits) -9 = 11110111 -4 = 11111100
1 1
1
+
1
1 1

1
1
1
1

1
1
1
1

1
1
1
1

1
0 1 1 1
1 1 0 0
0 0 1 1

Bit desconsiderado

Portanto : 11110011 = 100112 = -1310

BCC Arquitetura de Computadores I

34

5.4.2 Subtrao

Segundo [TOCCI 2007], a operao de subtrao que usa o sistema de complemento de 2 na


verdade envolve a operao de soma e no diferente dos diversos casos, vistos no item anterior.
Ou seja: ao valor negativo aplique o complemento de dois e some com o outro valor
desconsiderando o overflow.
O overflow quando o vai-um excede a capacidade de bits da representao.
Ex: 120 97
23910 = 0111100002
-97 (em complemento de dois) = 100111112

1 1
0
+
1
1 0

1
1
0
0

1
1
0
0

1
1 1 0 0 0
1 1 1 1 1
1 0 1 1 1

Bit desconsiderado

BCC Arquitetura de Computadores I

35

6 - INTRODUO LGICA BOOLEANA


Iniciamos esta aula com citaes de dois renomados autores da rea de lgica digital e de
arquitetura de computadores:
Em 1854, um matemtico chamado George Boole escreveu Uma investigao das
leis do pensamento, em descrevia o modo como tomamos decises lgicas com base em
circunstncias verdadeiras ou falsas. O mtodo que ele descreveu hoje conhecido como
lgica booleana, e o sistema que emprega smbolos e operadores para descrever essas
decises chamado de lgebra booleana. [TOCCI 2007].
Os circuitos digitais de computadores e outros sistemas digitais so projetados e
tm seu comportamento analisado, em termos de uma disciplina matemtica conhecida
como lgebra booleana. Esse nome em homenagem ao matemtico ingls George
Boole, que props os princpios bsicos dessa lgebra em 1854, em seu trabalho An
Investigation of Laws of Though on Wich to Found Mathematical Theories of Logic and
Probabilities. Em 1938, Claude Shannon sugeriu que a lgebra booleana poderia ser
usada para solucionar problemas relativos ao projeto de circuitos de comutao de
rels.[STALLINGS 2002].

6.1 lgebra Booleana

Destacamos aqui os dois conceitos fundamentais da lgebra booleana que so variveis lgicas e
funes lgicas.

a) Variveis Lgicas: uma varivel lgica uma varivel que tm trs propriedades distintas:
- a varivel lgica s pode assumir um de dois valores possveis (Verdadeiro/Falso ,
Sim/No, 0/1);
- os valores so expressos por afirmaes declarativas (proposies lgicas).
- os dois valores possveis, expressos por afirmaes declarativas, devem ser tais que, com
base em raciocnio humano, ou seja, com base na lgica, sejam mutuamente exclusivos.

b) Funes Lgicas: so regras de operaes lgicas por meios das quais uma ou mais
variveis lgicas de entrada produzem uma varivel lgica de sada.

BCC Arquitetura de Computadores I

36

6.2 Operadores Booleanos Bsicos

Na lgica booleana, h os seguintes operadores lgicos:


Operador
AND (E)
OR (OU)
NOT (NO
XOR(OU Exclusivo):

Significado Lgico
Produto Lgico
Soma Lgica
Complemento Lgico (negao)
Soma Lgica Exclusiva (ou um ou outro).

Smbolo
.
+
Barra

Alm desses quatro operadores, h mais dois tambm muito teis que so o complemento do
AND (NAND) e do OR (NOR).
Abaixo, tem-se a Tabela Verdade com os operadores lgicos bsicos.
Operadores Lgicos Bsicos
AND
OR
NOT (A)
XOR
A.B
A+B

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

Variveis
Lgicas
A
B
0
0
0
1
1
0
1
1

NAND
A.B
1
1
1
0

NOR
A+B
1
0
0
0

6.3 Funes Lgicas

Uma funo lgica aplica uma ou mais operadores sobre uma ou mais variveis lgicas
produzindo uma sada lgica.
Exemplo: Dadas as variveis lgicas A e B, o valor de z ser dado pela seguinte funo:
z = (A . B) + B
A
0
0
1
1

B
0
1
0
1

BCC Arquitetura de Computadores I

A.B
1
1
1
0

B
0
1
0
1

z
1
1
1
1

37

6.4 Portas Lgicas

Segundo [STALLINGS 2002], o bloco fundamental de construo de circuitos lgicos


digitais a porta lgica que um circuito eletrnico que produz um sinal de sada que o resultado
de uma operao booleana sobre seus sinais de entrada. Portanto, pode-se implementar as funes
booleanas por meio de portas lgicas.
A tabela abaixo mostra a simbologia associada a cada porta lgica com a respectiva operao:

(Fonte:
http://www.aprendereletronica.com.br/portas-logicas-and-nand-or-nor-not-ou-exclusivocoincidencia-php/ , acessado em 13/04/2013)

BCC Arquitetura de Computadores I

38

7 - POSTULADOS, IDENTIDADES E PROPRIEDADES DA LGEBRA


BOOLEANA
7.1 Postulados, Identidades e Propriedades

Segundo [IDOETA 1984], os postulados, identidade e propriedades podem ser


esquematizados da seguinte forma:
Complementao
Se A = 0, ento = 1
Se A = 1, ento = 0

Complementao
A=A

POSTULADOS
Adio

Multiplicao

0+0=0
0+1=1
1+0=1
1+1=1

0.0=0
0.1=0
1.0=0
1.1=1

IDENTIDADES
Adio

Multiplicao

A+0=A
A+1=1
A+A=A
A+=1

A.0=0
A.1=A
A.A=A
A.=0

PROPRIEDADES
Comutativa:

Associativa:

A+B=B+A

A.B=B.A

A + (B + C) = (A + B) + C = A + B + C
A . (B . C) = (A . B) . C = A . B . C

Distributiva:

A(B + C) = AB + AC
TEOREMAS DE De MORGAN
(A . B) = A + B
(A + B) = A . B
Outras Identidades:

A + A.B = A

BCC Arquitetura de Computadores I

A + .B = A + B

(A + B) . (A + C) = A + B.C

39

7.2 Teoremas de De Morgan


7.2.1 Primeiro Teorema de De Morgan:

O complemento do produto igual soma dos complementos.


A.B = A + B
7.2.2 Segundo Teorema de De Morgan:

O complemento da soma igual ao produto dos complementos.


A+B = A . B
O segundo teorema uma extenso do primeiro:
A.B = A + B ; primeiro teorema.
A.B = A + B , pois se X = Y ento X = Y.
A.B = A + B, pois X = X
A.B = A + B , depois de fazer o complemento de todas as variveis lgicas.

BCC Arquitetura de Computadores I

40

7.3 Universalidade das Portas NAND e NOR.

Segundo [STALLINGS 2002], as funes AND, OR e NOT podem ser implementadas


usando apenas portas NAND ou NOR. Por essa razo, circuitos digitais pode ser, e frequentemente
so, implementados apenas com portas NAND ou NOR.

Fonte: [STALLINGS 2004]

[TAUB 1984] explica que, da mesma forma que as operaes AND, OR e NOT so
suficientes para expressar qualquer funo lgica, as funes NAND e NOR so por si s
suficientes:
Frequentemente conveniente projetar um circuito lgico usando somente um
tipo de porta lgica. As portas NAND e NOR so apropriadas para este propsito, pois as
operaes NAND e NOR so suficientes e, consequentemente, qualquer operao lgica
pode ser efetuada por um arranjo de portas idnticas. A implementao lgica com portas
NAND ou NOR , todavia, inconveniente por no serem as operaes associativas. O
procedimento usual , ento, projetar uma estrutura usando portas AND, OR e NOT e,
posteriormente, transform-las em uma estrutura equivalente que use apenas portas
NAND ou NOR conforme seja desejado.

BCC Arquitetura de Computadores I

41

8 SIMPLIFICAO ALGBRICA DE CIRCUITOS LGICOS


Segundo [TOCCI 2007],
Uma vez obtida a expresso de um circuito lgico, podemos reduzi-la a uma
forma mais simples que contenha um menor nmero de termos ou variveis em um ou
mais termos da expresso. Essa nova expresso pode, ento, ser usada na implementao
de um circuito equivalente ao circuito original, mas que contm menos portas lgicas e
conexes.

H basicamente dois mtodos para simplificao de circuitos lgicos. O primeiro mtodo


algbrico conforme os postulados, identidades, propriedades e, principalmente, nos teoremas de De
Morgan da lgebra booleana. O segundo o mtodo grfico conhecido como o diagrama ou mapa
de Veitch-Karnaugh.
Sobre a simplificao algbrica, ainda conforme [TOCCI 2007]:
Podemos usar os teoremas da lgebra boolena para simplificar expresses de circuitos
lgicos. Infelizmente, nem sempre bvio qual teorema deve ser aplicado para se obter o
resultado mais simplificado. Alm disso, as simplificaes algbricas so, muitas vezes,
um processo de tentativa e erro. Entretanto, com a experincia, podem-se obter resultados
razoavelmente bons.

Exemplo: Dado o circuito lgico abaixo, faa a simplificao algbrica da funo boolena
[IDOETA 1984].
A
B
C

A
S
C

A
B

S = ABC + AC + AB

Funo lgica original.

S = A(BC + C + B)

Colocando A em evidncia.

S = A(BC + (C + B) )

Aplicando propriedade associativa.

S = A(BC + (CB))

Aplicando teorema de De Morgan.

S = A(BC + BC )

Aplicando propriedade comutativa.

S = A(1)

Aplicando identidade da adio.

S=A

Aplicando identidade da multiplicao.


Funo lgica simplificada.

BCC Arquitetura de Computadores I

42

9 SIMPLIFICAO DE CIRCUITOS LGICOS PELO MAPA DE


KARNAUGH
Outra forma mais rpida para a simplificao de circuitos lgicos por meio do Mapa de
Karnaugh (ou Diagrama de Veitch-Karnaugh).
O Mapa de Karnaugh permite a simplificao de circuitos lgicos por meio de suas tabelas
verdades dando como resultado uma soma de produtos lgicos. Portanto, dado um circuito lgico
qualquer, antes de simplifica-lo pelo mtodo de Veitch-Karnaugh, primeiro deve-se construir sua
tabela verdade e considerar apenas os valores 1 na sada.
9.1 Mapas de Karnaugh com duas variveis

Segundo explicao do prof Frederico Campos [CAMPOS 2001]:

Pode-se identificar as reas onde A sempre 0, B sempre 0, A sempre 1 e B sempre 1:

Dessa forma, o valor da sada S : S = A + B

BCC Arquitetura de Computadores I

43

9.2 Mapas de Karnaugh com trs variveis

Conforme [CAMPOS 2001], pode-se montar o Mapa de Karnaugh das seguintes formas:

Os agrupamentos de bits 1 so chamados de enlaces, sendo que os enlaces sempre renem bits
1 em agrupamentos de potncias de 2 (1, 2, 4 e 8):

BCC Arquitetura de Computadores I

44

Exemplo segundo [CAMPOS 2001]:

9.3 Mapas de Karnaugh com quatro variveis

BCC Arquitetura de Computadores I

45

9.4 Exemplo de Simplificao de Circuito Lgico

A
B
C

A
S
C

A
B

BCC Arquitetura de Computadores I

46

Referncias:
[MONTEIRO 2007]

MONTEIRO, Mrio A. Introduo organizao de computadores. 5 Ed. Rio de


Janeiro, RJ: LTC, 2007.

[STALLINGS 2002]

STALLINGS, Willian. Arquitetura e organizao de Computadores, Prentice Hall Brasil,


5 Edio, 2002.

[TANENBAUM 2001]

TANENBAUM, Andrew S., Organizao estruturada de computadores, 4a. Edio,


Prentice Hall, 2001.

[SHANNON 1948]

SHANNON, C. E., A Mathematical Theory of Communication. The Bell System


Techinical Journal,Vol 27, pp379-423,623-656, July, October, 1948.

[HYDE 2004]

HYDE, R. Write Great Code: Understanding the Machine, Volume I. San Francisco,
CA. No Starch Press, 2004.

[HYDE 2003]

HYDE, R. The Art of Assembly Language. San Francisco, CA. No Starch Press, 2003.

[TOCCI 2007]

TOCCI, R. J.; WIDMER, N.S.; MOSS, G. L. Sistemas Digitais: princpios e aplicaes.


10 Ed. So Paulo, SP: Person Prentice Hall, 2007.

[IDOETA 1984]

IDOETA, I. V.; CAPUANO, F. G. Elementos de Eletrnica Digital. 6 Ed. So Paulo,


SP: Erica, 1984.

[TAUB 1984]

TAUB, R. Circuitos Digitais e Microprocessadores. So Paulo-SP: McGraw-Hill do


Brasil, 1984.

[CAMPOS 2001]

CAMPOS, Frederico Oioli. Elementos Bsicos da Eletrnica Digital. Apostila. So


Paulo,2001.
http://www.cin.ufpe.br/~psbn/pub/TecDig/Apostila_Tec_Digitais/Eletr%F4nica%20Elementos_Basicos_da_Eletronica_Digital.pdf acessado em 02/02/2013

BCC Arquitetura de Computadores I

47