Академический Документы
Профессиональный Документы
Культура Документы
DE COMPUTADORES
CURSOS DE GRADUAÇÃO – EAD
Meu nome é Fernando Marco Perez Campos.Sou mestre em Engenharia de Produção na linha de
pesquisa de Sistemas de Informação pela Universidade Paulista (São Paulo – SP). Sou graduado
em Ciência da Computação também pela Universidade Paulista. Atuo como professor nos cursos
de Ciência da Computação, Engenharia e Sistemas de Informação e áreas afins, ministrando as
seguintes disciplinas: Lógica de Programação; Arquitetura de Computadores; Organização de
Computadores; Sistemas Digitais; Processamento de Dados; Programação de Computadores
(estrutura de dados); Teoria da Linguagem de Programação; Ciência da Computação Integrada.
Atuo também no mercado de trabalho na área de consultoria e assessoria em informática.
ARQUITETURA E ORGANIZAÇÃO
DE COMPUTADORES
Batatais
Claretiano
2014
© Ação Educacional Claretiana, 2011 – Batatais (SP)
Versão: dez./2014
004.22 C21a
ISBN: 978-85-8377-132-6
CDD 004.22
Todos os direitos reservados. É proibida a reprodução, a transmissão total ou parcial por qualquer forma
e/ou qualquer meio (eletrônico ou mecânico, incluindo fotocópia, gravação e distribuição na web), ou o
arquivamento em qualquer sistema de banco de dados sem a permissão por escrito do autor e da Ação
Educacional Claretiana.
Unidade 3 – PROCESSADORES
1 OBJETIVOS.................................................................................................................................................... 113
2 CONTEÚDOS................................................................................................................................................. 113
3 ORIENTAÇÕES PARA O ESTUDO DA UNIDADE..........................................................................................113
4 INTRODUÇÃO À UNIDADE...........................................................................................................................114
5 BARRAMENTO.............................................................................................................................................. 115
6 INSTRUÇÕES................................................................................................................................................. 116
7 ENDEREÇAMENTOS...................................................................................................................................... 118
8 PARALELISMO............................................................................................................................................... 119
9 QUESTÕES DE PROJETOS............................................................................................................................121
10 M ICROCONTROLADORES............................................................................................................................122
11 QUESTÕES AUTOAVALIATIVAS...................................................................................................................122
12 C ONSIDERAÇÕES.......................................................................................................................................... 123
13 E-REFERÊNCIAS............................................................................................................................................ 124
14 R EFERÊNCIAS BIBLIOGRÁFICAS..................................................................................................................124
Unidade 4 – MEMÓRIAS
1 OBJETIVO...................................................................................................................................................... 125
2 CONTEÚDOS................................................................................................................................................. 125
3 ORIENTAÇÕES PARA O ESTUDO DA UNIDADE...........................................................................................125
4 INTRODUÇÃO À UNIDADE...........................................................................................................................126
5 MEMÓRIAS DE UM COMPUTADOR............................................................................................................126
6 CARACTERÍSTICAS DA MEMÓRIA...............................................................................................................126
7 TECNOLOGIAS DE MEMÓRIAS....................................................................................................................127
8 DIAGRAMA FUNCIONAL DE UMA MEMÓRIA............................................................................................128
9 QUESTÕES AUTOAVALIATIVAS....................................................................................................................131
10 C ONSIDERAÇÕES.......................................................................................................................................... 131
11 E-REFERÊNCIAS............................................................................................................................................ 131
12 R EFERÊNCIAS BIBLIOGRÁFICAS..................................................................................................................131
Conteúdo–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Sistemas numéricos e conversões de bases. Circuitos digitais. Processadores. Memórias. Dispositivos de entrada
e saída. Componentes de fluxo de dados. Unidade Aritmética e Lógica. Unidade de Controle e Microprogramação.
Arquitetura do SAP1. Conjunto de instruções e programação do SAP1. Execução de instruções no SAP1. SAP 2.
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
1. INTRODUÇÃO
Seja bem-vindo ao estudo de Arquitetura e Organização de Computadores. Nesta parte,
chamada Caderno de Referência de Conteúdo, você encontrará o conteúdo das nove unidades
de estudo.
Antes de iniciarmos este estudo, faz-se necessário responder alguns questionamentos,
tais como:
Como funciona um computador? Qual é a configuração adequada para rodar determina-
dos aplicativos? Como programar de forma mais eficiente? Quais são os componentes necessá-
rios para integrar os computadores aos outros dispositivos eletrônicos do nosso dia a dia?
Para responder essas perguntas, é necessário estudar a computação a partir dos seus
conceitos fundamentais, conhecendo as partes funcionais dos circuitos digitais até chegar ao
sistema como um todo.
A arquitetura dos computadores atuais é grande e complexa, porém trata-se da evolução
de arquiteturas bem mais simples. Assim, a partir do momento em que essas arquiteturas sim-
ples são compreendidas, conseguimos entender também o funcionamento dos computadores
atuais, pois o princípio de funcionamento é o mesmo.
10 © Arquitetura e Organização de Computadores
Abordagem Geral
Neste tópico, apresenta-se uma visão geral do que será estudado. Aqui, você entrará em
contato com os assuntos principais deste conteúdo de forma breve e geral e terá a oportunidade
de aprofundar essas questões no estudo de cada unidade. Desse modo, essa Abordagem Geral
visa fornecer-lhe o conhecimento básico necessário a partir do qual você possa construir um
referencial teórico com base sólida – científica e cultural – para que, no futuro exercício de sua
profissão, você a exerça com competência cognitiva, ética e responsabilidade social.
Arquitetura e Organização de Computadores está presente na maior parte das grades cur-
riculares dos cursos de Computação e Informática, como, por exemplo, Ciência da Computação,
Engenharia da Computação, Sistemas de Informação, Licenciatura em Computação, Análise e
Desenvolvimento de Sistemas, Tecnologia da Informação, entre outros. A sua aplicação pode ser
direta ou indireta, dependendo do curso em questão e também da área de atuação do profissio-
nal da Computação ou Informática.
A aplicação direta está relacionada às atividades que utilizam a computação como ativi-
dade-fim, ou seja, que utilizam a computação pela computação e não como uma ferramenta
© Caderno de Referência de Conteúdo 11
para solucionar problemas de outras áreas. São exemplos desses profissionais os projetistas de
hardware, engenheiros e bacharéis em Ciência da Computação (quando desenvolvem códigos
em linguagem de montagem ou drivers para novos dispositivos).
Já a aplicação indireta está ligada aos profissionais que utilizam os conceitos de arquite-
tura e organização de computadores para desenvolver melhor uma atividade que não está dire-
tamente relacionada à disciplina. O conhecimento do funcionamento da máquina e seus princí-
pios proporcionam, contudo, maior eficiência e eficácia ao produto ou ao processo em questão.
Como este Caderno de Referência de Conteúdo está focado nos cursos que utilizam a com-
putação como uma ferramenta de desenvolvimento ou como parte de uma infraestrutura, tra-
taremos sobre o tema com ênfase nessas aplicações.
O maior diferencial entre um profissional que possui uma formação prática e outro que
possui uma formação acadêmica é justamente o domínio do seu conhecimento. Enquanto o
profissional prático se limita ao conhecimento da atividade, o profissional acadêmico vai além e
conhece tudo o que está ao redor da atividade, e aplica esse conhecimento para o seu benefício.
Vejamos alguns cenários em que o conhecimento destes conteúdos poderão ser de gran-
de valor:
Um cliente que possui um estacionamento solicitou a construção de um software para
reconhecer o número da placa de seus clientes que entram e saem do seu pátio. A partir daí,
o sistema deve controlar o tempo de estacionamento utilizado e gerar uma fatura. O custo
computacional (esforço do processador) para identificar os números que constam na placa de
cada veículo é muito grande e, por conta disso, é necessário refletir sobre um meio de aperfei-
çoamento do processador para que o programa fique mais leve. Os profissionais de desenvol-
vimento, em especial a equipe de análise de requisitos, poderão identificar a necessidade de
dimensionar um processador com mais núcleos ou mesmo uma máquina com mais processado-
res para poder atender os requisitos desse software e, além disso, os profissionais que codifica-
rão o programa deverão entender como programar especificamente para esses processadores.
Portanto, podemos observar que os conhecimentos de como os processadores funcionam é
fundamental para este cenário.
Outro exemplo é a necessidade de um programa de funcionamento para os produtos
elétrico-eletrônicos que são microcontrolados. A programação desses dispositivos obedece à
mesma lógica da programação dos computadores com que estamos acostumados a trabalhar;
em alguns casos, inclusive, é utilizada a mesma linguagem de programação, como Basic ou C.
Para programar tais dispositivos, mesmo utilizando essas linguagens, é necessário conhecer o
hardware que rodará o programa. Assim, o programador saberá quais são os recursos de hard-
ware disponíveis para utilização e, também, como habilitá-los para receber e enviar sinais. Des-
se modo, todas as unidades de estudo serão importantes para o conhecimento desse tipo de
hardware e da sua correta programação.
Em outro cenário, imagine que você esteja desenvolvendo uma aplicação que precisa tro-
car mensagens (interagir) com dispositivos de hardware externo. Como exemplo, consideremos
que esse dispositivo seja uma fonte de tensão e corrente e, adicionalmente, que ele possua uma
interface serial. Você deverá obter informações sobre como o equipamento troca as suas men-
sagens, configurações de portas e interrupções para só então poder desenvolver um programa
para trabalhar adequadamente com tal dispositivo.
Outra situação é pensar que algumas rotinas exigem o controle direto do hardware, mui-
tas vezes passando até por cima do sistema operacional. Essas aplicações, na maior parte das
Todos os valores a serem somados estão em binário; portanto, não se preocupe em enten-
der os resultados. Durante o estudo da Unidade 1, você terá a possibilidade de aprender que,
em binário, 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1 e 1 + 1 = 0 e vai um.
A partir da tabela verdade, utiliza-se uma técnica para escrever a(s) expressão(ões)
booleana(s) da(s) variável(is) de saída(s).
Uma das formas de extrair a expressão booleana a partir da tabela verdade é multiplicar
(operação e booleana) as variáveis de entrada cuja(s) saída(s) for(em) igual(is) a um, invertendo
a variável de entrada (complementando) quando as mesmas forem zero. Usaremos o sinal de
apóstrofe como complemento.
Neste caso, teremos:
S = A’ . B + A . B’
V = A . B.
A técnica de extração de expressão booleana apresentada é denominada soma de pro-
dutos, pois devem ser multiplicadas as variáveis de entrada (operação e ou and), e, então, so-
madas as linhas com saídas iguais a um (operação ou ou or). Na unidade 2, você também terá
a oportunidade de aprender a técnica de produto das somas, que é exatamente o contrário da
técnica soma de produtos. Nessa técnica, devem-se considerar as saídas iguais a zero, somar as
variáveis de entrada (complementando as variáveis com valor igual a um) e multiplicar as linhas
cujas saídas sejam iguais a zero.
As duas técnicas apresentadas são de simples compreensão, porém não produzem expres-
sões simplificadas, ou seja, que utilizam o menor número de portas lógicas possível. Para obter
expressões simplificadas, devemos aplicar algumas propriedades, teoremas ou postulados da
álgebra booleana da mesma forma que fazemos com as expressões matemáticas, ou utilizar
alguma ferramenta para simplificação.
Como nosso curso não tem o foco em sistemas digitais, as simplificações algébricas boo-
leanas não serão abordadas, sendo apresentada somente a técnica de simplificação utilizando
mapas de Veitch-Karnaugh. Esses mapas constituem uma ferramenta bem simples para que, a
partir da tabela verdade, seja escrita a expressão booleana correspondente e, assim, os circuitos
sejam implementados utilizando-se o menor número possível de portas lógicas.
Veja, na Tabela 2, um exemplo do uso da ferramenta Mapas de, aplicado a uma tabela-
-verdade com três variáveis de entrada.
Expressão extraída da tabela verdade
Expressão extraída do Mapa de Veitch-Karnaugh
S = A’ . B’ . C’ + A’ . B’ . C + A’ . B . C’ + A’ . B . C. S= A’
Comentários:
Pode-se escolher pegar as saídas iguais a um ou as saídas iguais a A operação consiste em analisar o enlace de uns ou
zero. O ideal é escolher a saída com menor número de ocorrências. de zeros, verificando, em todo o espaço do enlace,
Se a escolha for considerar
Pode-se
Pode-se escolher
escolherpegaras saídas
pegar iguais
saídasaiguais
asassaídas um, aaaoperação
iguais um
umououasasconsiste
saídas em as variáveis
saídas de entrada
AAoperação
operação que em
consiste
consiste mudam ou não
emanalisar
analisar de valor.
ooenlace
enlace
multiplicar
iguais
iguaisaazero.as variáveis
zero. idealééde
OOideal entrada
escolher
escolher da
aasaída linha
saída com
comcuja saídanúmero
menor
menor seja igual
número dedea um e de Asuns
de variáveis
uns ou
oude que
dezeros, mudam
zeros,verificando,de valor
verificando, em não
todooentram
emtodo o na
somar às outras multiplicações provenientes das outras linhas cujas saídas espaço
ocorrências.
ocorrências. expressão
espaço do e as variáveis
doenlace,
enlace, asasvariáveisquede
variáveis não
de mudam
entrada
entrada queentram
que
sejam iguaisSeaaescolha
Se um. Já se
escolha fora considerar
forescolha for as
considerar considerar
assaídas as saídas
saídasiguais
iguaisaaum,
um,iguais
aa a zero, a mudam da seguinte
mudam ou
ounão forma:
não de paraAs
devalor.
valor. enlaces
As variáveis de que
variáveis uns, quando
mudam o
quemudam
operação
operação
operação consiste
consiste
consiste emem
emsomar as variáveis
multiplicar
multiplicar de entrada
asasvariáveis
variáveis de da linha
deentrada
entrada dadacuja
linha
linha saída de
valor
devalordanão
valor variável
não entramdena
entram entrada
naexpressão não emudar
expressão e for igual
easasvariáveis
variáveis
seja
cujaigual
cuja saídaa seja
saída zero (colocar
sejaigual
igualaaum entre
um parênteses)
eesomar
somar àsàsoutras
outrase multiplicações
multiplicar com as outras que
multiplicações a um,
que não
nãoela
mudamentrará
mudam sem complemento;
entram
entram da
daseguinte
seguinteforma: e, separa
forma: opara
valor
somas provenientes
provenientes
provenientes das das outras
dasoutras
outras linhaslinhas
linhas cujas cujas
saídassaídas
cujassaídas sejam sejam
iguaisaiguais
sejamiguais aum.
um.Já aJáse
zero. da variável
se enlaces
enlaces de
deuns,dequando
uns, entrada
quandooonão valor
valormudar
da de valor
davariável
variável de e for
de
aaescolha
escolhafor forconsiderar
considerarasassaídassaídasiguais
iguaisaazero,
zero,aaoperação
operaçãoconsiste igual anão
consiste entrada
entrada zero,
não ela edeverá
mudar
mudar efor entrar
forigual
igual aaum,
um,complementada.
ela
elaentrará
entrará
Para
em este
emsomar
somarcaso, temos
asasvariáveis
variáveis osdeseguintes
de entradatermos
entrada da
dalinha (provenientes
linha cuja
cujasaída
saídaseja
sejadeigual
cadaaalinha sem
igual Paracomplemento;
sem enlaces de zeros,
complemento; e,e,sesequando
oovalor
valorda odavalor
variávelda de
variável variável
de
com
zerosaída
zero igualentre
(colocar
(colocar a um):
entre parênteses)
parênteses)eemultiplicar
multiplicarcom comasasoutras
outrassomas
somas de entrada
entrada
entrada não não
nãomudar mudar
mudar de e foreeigual
devalor
valor for a um,
forigual
igual ela
aazero,entrará
zero, ela
ela
provenientes
provenientesdas dasoutras
outraslinhas
linhascujas
cujassaídas
saídassejam
sejamiguais
iguaisaazero.
zero. complementada;
deverá
deverá entrar e, se o valor
entrarcomplementada.
complementada. Parada
Para variável
enlaces
enlaces dede de
Primeira linha: A’ . B’ . C’ entrada
zeros,
zeros, não mudar
quando
quando valoreda
oovalor for
da igual ade
variável
variável zero,
deentradaela entrará
entrada nãonão
Segunda Para
linha:
Paraeste A’ . caso,
este B’ . C temos
caso, temosos osseguintes
seguintestermostermos(provenientes
(provenientesde sem oeecomplemento
de mudar
mudar for
forigual um,(portanto,
igualaaum, ela entraráde forma oposta
elaentrará
Terceira linha: A’ . B . C’ aos enlaces de uns). Quando os enlaces forem de
Quarta linha: A’ . B . C. uns, as variáveis de entrada que sobrarem deverão
ser multiplicadas e os enlaces (quando existir mais
de um) deverão ser somados. Para enlaces de zeros,
as variáveis de entrada que sobrarem deverão ser
somadas (inserir parênteses) e os enlaces (quando
Efetuando a soma das multiplicações, temos: existir mais de um) deverão ser multiplicados.
Para este caso, temos apenas um enlace ocupando
S = A’ . B’ . C’ + A’ . B’ . C + A’ . B . C’ + A’ . B . C. toda a primeira linha. Assim, as variáveis B e C
mudam de valor ao longo de todo o enlace da
primeira linha, enquanto a variável A vale zero para
todo o enlace. A expressão fica: S = A’. É importante
notar a evidente simplificação que o mapa de Veitch-
Karnaugh proporcionou. As duas expressões são
equivalentes, ou seja, fazem a mesma coisa, só que a
expressão proveniente do mapa possui apenas uma
porta não (not) – para complementar o valor de A,
enquanto a expressão extraída da tabela-verdade
utiliza varias portas e (and), ou (or) e não (not).
Os circuitos podem ser construídos utilizando-se os símbolos das portas lógicas e as ex-
pressões booleanas obtidas da tabela verdade.
© Caderno de Referência de Conteúdo 17
Depois de conhecer os circuitos digitais, desde a sua concepção até a sua implementação,
você poderá conhecer os principais circuitos utilizados em conjunto com os sistemas microcon-
trolados e também nos computadores atuais.
Além dos circuitos digitais estarem presentes em sistemas de controle de temperatura,
sistemas de alarme, controle de motores e bombas etc., eles também estão presentes nos com-
putadores, dentro dos processadores e em muitos outros circuitos de controle.
Veja, a seguir, alguns desses circuitos e como eles funcionam.
1) Multiplexadores: são dispositivos que recebem sinais provenientes de vários canais
de dados e transmitem esses sinais utilizando apenas um canal. Para isso, esse dispo-
sitivo compartilha o canal por meio de uma chave de seleção que determinará qual
entrada estará conectada à sua única saída em um determinado instante.
2) Demultiplexadores: fazem o inverso dos multiplexadores. Eles recebem como entrada
apenas um canal de dados e selecionam, por meio de um conjunto de chaves, qual
das saídas disponíveis estará conectada a essa entrada em um determinado instante.
3) Codificadores e decodificadores: são circuitos responsáveis por transformar códigos
de um padrão para outro. Muitas vezes, isso é necessário para poder tratar as in-
formações corretamente em um sistema. Por exemplo, podemos codificar o sistema
numérico decimal em um código binário de quatro bits para poder processar esses
dados em binário. Para devolver o resultado ao usuário, pode-se utilizar um decodifi-
cador para transformar o resultado em um código decimal.
4) Somadores e Subtradores: são circuitos capazes de efetuar a soma ou subtração de
bits. Eles operam sobre o sistema binário e podem ser associados para efetuarem
operações de vários bits simultaneamente. Dentro dos processadores, existem muitos
dispositivos como esses, compondo a unidade lógica e aritmética do chip.
5) Flip-flops: são circuitos sequenciais, ou seja, a sua saída não depende apenas das
suas entradas e sim das saídas atuais (existe uma retroalimentação dos sinais digitais).
Esses dispositivos podem ser utilizados como elementos de memória, registradores,
contadores etc.
Com esses conceitos, você estará apto a continuar os estudos nas próximas unidades,
entendendo não apenas as partes que compõem os computadores e sim como essas partes
funcionam.
Mais adiante, na Unidade 3, você terá a oportunidade de estudar os processadores.
O processador, também conhecido como CPU (Unidade Central de Processamento) é tão
importante que muitas vezes fazemos referência à toda caixa do computador (gabinete) como
sendo a CPU.
É nesse dispositivo que todas as instruções são executadas e que os programas conse-
guem converter dados de entrada em dados de saída. Podemos dizer que se trata do cérebro
do computador.
Todo computador tem um processador. Alguns possuem até mais de um (máquinas multi-
processadas). Os processadores atuais também suportam o multiprocessamento, pois possuem
vários núcleos dentro de um mesmo chip.
Os processadores executam os programas por meio de suas instruções. As instruções de-
terminam os passos para que o processador busque o que tem que ser feito na memória em
que o programa está armazenado, procure os dados necessários para efetuar o processamento
daquela instrução, execute a instrução e guarde o resultado em uma memória de saída chamada
de registrador.
Essa unidade vai trabalhar essas questões com o objetivo de proporcionar a você, profis-
sional da área de informática, a formação adequada para a escolha de dispositivos e suas inter-
faces de comunicação.
Nas Unidades 6, 7 e 8, estudaremos um modelo de computador muito simples, denomina-
do SAP1. Esse computador tem finalidade apenas didática, porém utiliza a mesma base e lógica
dos computadores atuais.
Na Unidade 6, será apresentada a parte física do SAP1. O SAP1 possui os seguintes módu-
los: contador de programa, módulo de entrada e registrador de endereço de memória, registra-
dor de instrução, controlador-sequencializador, acumulador, somador/subtrador, registrador B,
registrador de saída e leds. Cada um desses módulos será explicado detalhadamente no decor-
rer da unidade.
A Unidade 7 irá abordar o conjunto de instruções do SAP1, seus códigos e aplicações; e a
Unidade 8 demonstrará como essas instruções serão executadas.
Para finalizar o estudo deste Caderno de Referência de Conteúdo, na Unidade 9, você terá
a oportunidade de conhecer o SAP2, uma evolução do SAP1 que caminha para os conceitos uti-
lizados nos computadores atuais.
O SAP2 possui muito mais instruções quando comparado ao SAP1, além de possuir mais
registradores e já trabalhar com 16 bits por palavra de dados. A sua compreensão vai propiciar
o entendimento do funcionamento dos computadores atuais que, embora sejam muito mais
complexos, mantém os mesmos conceitos.
Ao final do Caderno de Referência de Conteúdo de Arquitetura e Organização de Compu-
tadores, você será capaz de entender como os programas são executados nos computadores e,
por isso, poderá utilizar melhor as máquinas e desenvolver programas mais eficazes e eficientes.
Vale lembrar a importância do embasamento teórico que este conteúdo proporcionará
para uma adequada gestão da tecnologia da informação no quesito infraestrutura.
Bons Estudos!
Glossário de Conceitos
O Glossário de Conceitos permite a você uma consulta rápida e precisa das definições con-
ceituais, possibilitando-lhe um bom domínio dos termos técnico-científicos utilizados na área
de conhecimento dos temas tratados em Arquitetura e Organização de Computadores. Veja, a
seguir, a definição dos principais conceitos:
1) Assembler: compilador assembly.
2) Assembly: linguagem de montagem. Um programa escrito em assembly utiliza mne-
mônicos e números em hexadecimal.
3) Barramento: conjunto de condutores paralelos capazes de transmitir dados de um
módulo para outro.
4) Capacitores: componente eletrônico que se caracteriza por acumular carga elétrica.
5) Circuito combinacional: circuito eletrônico digital que considera apenas as entradas
atuais do circuito para gerar sinais de saída.
6) Circuito sequencial: circuito eletrônico digital que considera a saída atual do circuito
em conjunto com as novas entradas para gerar os sinais de saída.
7) Codificadores: circuitos digitais capazes de transformar um tipo de padrão digital em
outro tipo, como, por exemplo, um circuito para transformar um código binário em
um código para conectar um display de sete segmentos.
36) Sistema decimal: tipo de sistema de numeração que utiliza nove símbolos para repre-
sentar qualquer quantidade; os símbolos são: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9.
37) Sistema hexadecimal: tipo de sistema de numeração que utiliza dezesseis símbolos
para representar qualquer quantidade; os símbolos são: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B,
C, D, E, e F.
38) Sistema Octal: tipo de sistema de numeração que utiliza oito símbolos para represen-
tar qualquer quantidade; os símbolos são: 0, 1, 2, 3, 4, 5, 6, e 7.
39) Sistema Operacional: conjunto de programas que tem a função de prover uma inter-
face entre o homem e a máquina, gerenciando os arquivos e os programas conforme
a necessidade de cada tarefa.
40) Tabela Verdade: utilizada em lógica matemática e/ou em sistemas digitais, é uma ta-
bela que contempla todas as possibilidades de entradas de uma expressão ou circuito,
juntamente com as suas respectivas saídas.
41) Transistor: componente eletrônico que permite ou não a passagem de corrente de um
ponto para outro, dependendo da sua polarização.
42) Volatilidade: indica se os dados gravados em uma memória serão perdidos com a
queda de energia (memórias voláteis) ou não (memórias não voláteis).
Como pode observar, esse Esquema oferece a você, como dissemos anteriormente, uma
visão geral dos conceitos mais importantes deste estudo. Ao segui-lo, será possível transitar
entre os principais conceitos e descobrir o caminho para construir o seu processo de ensino-
-aprendizagem.
O Esquema dos Conceitos-chave é mais um dos recursos de aprendizagem que vem se
somar àqueles disponíveis no ambiente virtual, por meio de suas ferramentas interativas, bem
como àqueles relacionados às atividades didático-pedagógicas realizadas presencialmente no
polo. Lembre-se de que você, aluno EaD, deve valer-se da sua autonomia na construção de seu
próprio conhecimento.
Questões Autoavaliativas
No final de cada unidade, você encontrará algumas questões autoavaliativas sobre os con-
teúdos ali tratados, as quais podem ser de múltipla escolha, abertas objetivas ou abertas dis-
sertativas.
Responder, discutir e comentar essas questões, bem como relacioná-las com a prática
do ensino de Arquitetura de Computadores pode ser uma forma de você avaliar o seu conhe-
cimento. Assim, mediante a resolução de questões pertinentes ao assunto tratado, você estará
se preparando para a avaliação final, que será dissertativa. Além disso, essa é uma maneira pri-
vilegiada de você testar seus conhecimentos e adquirir uma formação sólida para a sua prática
profissional.
As questões de múltipla escolha são as que têm como resposta apenas uma alternativa correta. Por
sua vez, entendem-se por questões abertas objetivas as que se referem aos conteúdos matemáticos
ou àqueles que exigem uma resposta determinada, inalterada. Já as questões abertas dissertativas
obtêm por resposta uma interpretação pessoal sobre o tema tratado; por isso, normalmente, não há
nada relacionado a elas no item Gabarito. Você pode comentar suas respostas com o seu tutor ou com
seus colegas de turma.
Bibliografia Básica
É fundamental que você use a Bibliografia Básica em seus estudos, mas não se prenda só
a ela. Consulte, também, as bibliografias complementares.
Dicas (motivacionais)
Este estudo convida você a olhar, de forma mais apurada, a Educação como processo de
emancipação do ser humano. É importante que você se atente às explicações teóricas, práticas e
científicas que estão presentes nos meios de comunicação, bem como partilhe suas descobertas
com seus colegas, pois, ao compartilhar com outras pessoas aquilo que você observa, permite-
-se descobrir algo que ainda não se conhece, aprendendo a ver e a notar o que não havia sido
percebido antes. Observar é, portanto, uma capacidade que nos impele à maturidade.
Você, como aluno dos Cursos de Graduação na modalidade EaD, necessita de uma forma-
ção conceitual sólida e consistente. Para isso, você contará com a ajuda do tutor a distância, do
tutor presencial e, sobretudo, da interação com seus colegas. Sugerimos, pois, que organize bem
o seu tempo e realize as atividades nas datas estipuladas.
É importante, ainda, que você anote as suas reflexões em seu caderno ou no Bloco de
Anotações, pois, no futuro, elas poderão ser utilizadas na elaboração de sua monografia ou de
produções científicas.
Leia os livros da bibliografia indicada, para que você amplie seus horizontes teóricos. Co-
teje-os com o material didático, discuta a unidade com seus colegas e com o tutor e assista às
videoaulas.
No final de cada unidade, você encontrará algumas questões autoavaliativas, que são im-
portantes para a sua análise sobre os conteúdos desenvolvidos e para saber se estes foram
significativos para sua formação. Indague, reflita, conteste e construa resenhas, pois esses pro-
cedimentos serão importantes para o seu amadurecimento intelectual.
Lembre-se de que o segredo do sucesso em um curso na modalidade a distância é parti-
cipar, ou seja, interagir, procurando sempre cooperar e colaborar com seus colegas e tutores.
Caso precise de auxílio sobre algum assunto relacionado a este Caderno de Referência de
Conteúdo, entre em contato com seu tutor. Ele estará pronto para ajudar você.
EAD
Sistemas Numéricos e
Conversões de Bases
1. OBJETIVOS
• Compreender os sistemas numéricos de diversas bases numéricas.
• Relacionar a aplicação dos sistemas numéricos binários e hexadecimal com sistemas
computacionais.
• Aprender a conversão entre números de diferentes bases numéricas.
• Entender os mecanismos de soma e de subtração em sistemas numéricos diferentes.
• Compreender a subtração por complemento da base em sistemas numéricos de base 2
e sistemas numéricos de base 16.
2. CONTEÚDOS
• Sistemas numéricos de base 10, base 2, base 16 e de outras bases.
• Conversões numéricas entre sistemas numéricos de bases diferentes, de base 10 para
qualquer base, de qualquer base para base 10.
• Conversões numéricas entre sistemas de base 16 para base 2 e de base 2 para base 16.
• Operações aritméticas entre sistemas de numeração de bases diferentes.
• Adição direta nas bases 2 e 16.
• Subtração direta nas bases 2 e 16.
• Subtração por complemento da base nas bases 2 e 16.
26 © Arquitetura e Organização de Computadores
4. INTRODUÇÃO À UNIDADE
Você sabe como é o funcionamento do sistema numérico decimal (ou sistema numérico
de base 10)? Ele é o mais utilizado para quantificar valores? Por quê?
Além do sistema numérico decimal, existem outros sistemas numéricos como, por exem-
plo, sistema binário (ou sistema numérico de base 2), sistema hexadecimal (ou sistema numéri-
co de base 16) e muitos outros.
Nesta unidade, você entenderá como os sistemas numéricos funcionam e o que significa
o número que indica a base.
0 1 2 3 4 5 6 7 8 9
Para representar quantidades maiores, utilizamos pesos diferentes para cada posição do
algarismo.
Como a base é 10, para cada posição à esquerda, o peso vai ser 10 vezes maior do que a
posição à direita.
Assim, surgiram os nomes: unidade, dezena, centena, milhar, dezena de milhar, centena
de milhar, milhão etc.
A forma de decompor um número, de acordo com o exemplo anterior, serve para qual-
quer sistema numérico, bastando para isso mudar a base (em negrito) e manter o expoente da
base como a posição do algarismo, lembrando que a posição mais à direita é a posição zero.
A forma de decompor um número pode ser chamada de lei de formação.
N = An * Bn + A n+1 * Bn+1 + An+2 * Bn+2 + An+3 * Bn+3 + An+4 * Bn+4...
N = Número.
An = Algarismo.
Bn = Base.
n = Posição do algarismo que vale zero para a posição mais à direita do número.
Vamos recordar: os números terminados com 0, 2, 4, 6 e 8 são pares e os terminados com
1, 3, 5, 7 e 9 são ímpares.
Para representar o número decimal, colocamos o número entre parênteses e a base como
índice.
Exemplificando:
(2596)10
(2837) 10
(388) 10
presença ou a ausência de sinal. A partir daí, constrói todas as informações, efetuando todas as
operações que ele é capaz de realizar.
Observe os símbolos utilizados para representar qualquer quantidade do sistema binário.
0 1
0 1 2 3 4 5 6 7 8 9 A B C D E F
Desse modo, é importante saber o motivo pelo qual utilizamos as letras entre A e F para
representar os algarismos maiores do que 10. Pois se ao invés das letras, fossem utilizados os
números, como você iria diferenciar o seguinte valor: (11)16 do (B)16? Os dois seriam escritos na
forma (11)16.
Para representar o número hexadecimal, utilizamos a letra H após o número ou colocamos
o número entre parênteses e a base como índice.
Exemplificando:
2A96H ou (2A96)16
Para trabalhar com sistemas numéricos de outras bases, basta observar a lei de formação
e não se esquecer de representar a base, colocando de preferência o número entre parênteses
e a base como índice.
N = Número.
An = Algarismo.
Bn = Base.
n = Posição do algarismo que vale zero para a posição mais à direita do número.
Exemplificando:
Conversão do sistema numérico binário para o decimal.
(1101)2 = 1 X 23 + 1 X 22 0 X 21 + 1 X 20
= 8+ 4+ 0+ 1
= 8 + 4 + 1 = (13)10 no sistema decimal
(101101)2 = 1 X 25 + 0 X 24 1 X 23 + 1 X 22 + 0 X 21 + 1 X 20
= 32 + 0+ 8 4 0+ 1
= 32 + 0 + 8 + 4 + 0 + 1 = (45)10 no sistema decimal
MSB
MSB
MSB
(36.850)10 = (107762)8
LSB
MSB
Depois, basta você concatenar todos os dígitos resultantes. Como? Basta apontar
que a base resultante é 16.
Exemplificando:
(A 2 1 B)16 = (?)2
A 2 1 B
1010 0010 0001 1011
Não se esqueça de
completar com zero os
bits à esquerda, quando
necessário.
(A 2 1 B)16 = (1010001000011011)2
Conversões de números com ponto flutuante de qualquer base para a base dez
Para converter números de qualquer base para a base dez, devemos utilizar a lei de forma-
ção dos números,conforme já estudado nesta unidade.
© U1 - Sistemas Numéricos e Conversões de Bases 33
Da mesma forma, podemos converter números com ponto flutuante de qualquer base
para a base dez utilizando a mesma regra, porém escrevendo expoentes negativos para os alga-
rismos que estão posicionados à direita da vírgula. Assim, temos:
N = An-4 * Bn-4 + An-3 * Bn-3 + An-2 * Bn-2 + An-1 * Bn-1+ An * Bn + A n+1 * Bn+1 + An+2 * Bn+2 + An+3 * Bn+3 +
An+4 * Bn+4...
Onde:
n = Número que indica a posição do algarismo ou da base.
A = Algarismo.
B = Base.
N = Número convertido para a base dez.
Exemplos:
= 8 + 0 +0 + 1 + 0 + 0,25 = (9,25)10
Conversões de números com ponto flutuante da base dez para qualquer base
Para converter um número da base dez para outra base qualquer, deve-se inicialmen-
te fazer a conversão da parte inteira, conforme já estudado nesta unidade, e, posteriormente,
converter a parte fracionária, utilizando-se a regra das multiplicações sucessivas pela base em
que se quer transformar o número. Para montar o resultado, deve-se pegar a parte inteira de
cada multiplicação efetuada até alcançar um resultado cuja parte fracionária seja zero ou até
o momento em que ocorra uma repetição na parte fracionária, indicando, assim, uma dízima
periódica, ou mesmo uma repetição do tipo dízima não periódica.
Exemplos:
a) (25,848)10 = ()2
Claretiano - Centro Universitário
34 © Arquitetura e Organização de Computadores
1 1 0 1
= (0,1101)2
Resposta:
(11001)2 + (0,1101)2 = (11001,1101)2
b) (54,624)10 = ()2
Resolução da parte inteira do número apresentado.
(54)10 = (110110)2
Resolução da parte fracionária do número apresentado:
0,624 0,248 0,496 0,992
X 2 X 2 X 2 X 2
1,248 0,496 0,992 1,984
1 0 0 1
= (0,1001)2
Resposta:
(110110)2 + (0,1001)2 = (110110,1001)2
0 1 2 3 4 5 6 7 8 9
-> -> ^
Vejamos agora o que acontece com a seguinte operação aritmética decimal:7 + 5 = (?)
0 1 2 3 4 5 6 7 8 9
-> -> ^ -> -> ->
← -----------------------------------------------------------------------------------------------------------(vai um)
Então quer dizer que 7 + 5 = 2, certo? Claro que não. O que ocorre é que, quando não exis-
tem mais algarismos à esquerda e, mesmo assim, é necessário fazer um deslocamento, ocorre o
retorno para o algarismo zero e continua-se a contar a partir daí (contando inclusive o retorno).
Esse fato é conhecido como “estouro” e é o famoso “vaium”.
Agora, sim. Veja:
0 1 2 3 4 5 6 7 8 9
-> -> ^ -> -> ->
5 +
(1 2)10
Vamos analisar outros exemplos de soma direta na base 10 com mais dígitos:
1) (737)10 + (475)10
0 1 2 3 4 5 6 7 8 9 1
7 3 7
-> -> ^ -> -> ->
4 7 5
+
2
← --------------------------------------------------------------------------- (vai um)
0 1 2 3 4 5 6 7 8 9 1 1
estouro 4 7 5 +
1 2
← ---------------------------------------------------------------------- (vai um)
0 1 2 3 4 5 6 7 8 9 1 1 1
7 3 7
-> -> ^ -> -> ->
4 8 5 +
estouro
1 2 1 2
← -------------------------------------------------------------------(vai um)
Resultado:
(737)10 + (475)10 = (1212)10
2) (51)10 + (94)10
0 1 2 3 4 5 7 8 9
-> ^ 5 1
9 4 +
5
Não teve estouro
0 1 2 3 4 5 6 7 8 9 1
-> -> -> -> ^ -> -> -> -> -> 5 1
9 4 +
1 4 5
← -------------------------------------------------------------- (vai um)
Resultado:
(51)10 + (94)10 = (145)10
Agora que você já sabe como é o mecanismo da soma no sistema decimal, vamos analisar
como é realizada a soma em sistemas numéricos diferentes da base dez.
O que muda de um sistema numérico para outro é a quantidade de algarismos para a re-
presentação das quantidades. O primeiro passo é escrever os algarismos na ordem crescente de
forma idêntica à que já foi vista no sistema decimal e, a partir daí, contar os deslocamentos e os
estouros, considerando os algarismos da base com a qualse está trabalhando.
A seguir, serão apresentados alguns exemplos de soma na base 16 (hexadecimal) e tam-
bém na base 2 (binária).
Soma no sistema numérico hexadecimal (base 16):
Algarismos da base hexadecimal:
© U1 - Sistemas Numéricos e Conversões de Bases 37
0 1 2 3 4 5 6 7 8 9 A B C D E F
7 +
C
----------------------Não ocorre estouro ---------------------
Resposta:
5H + 7H = CH
Agora será apresentada uma operação com estouro em hexadecimal:
8H + DH = (?H)
0 1 2 3 4 5 6 7 8 9 A B C D E F 1
> > > > > ^ > > > > > > > > 8
D
+
← ----------------------------------------------------- (vai um) 1 5
Resposta:
8H + DH = 15H
Tenha sempre muito cuidado no momento de atribuir um valor numérico aos algarismos
representados por letras. É muito simples, mas muitos erros acontecem por falta de atenção.
Uma sugestão é deixar uma tabela sempre à mão com os valores dos algarismos da seguinte
forma:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 A B C D E F
1) 476H + 1DEH = ?H
0 1 2 3 4 5 6 7 8 9 A B C D E F 1
> > > > ^ > > > > > > > > > > 4 7 6
1 D E
+
← ----------------------------------------------------- (vai um) 4
0 1 2 3 4 5 6 7 8 9 A B C D E F 1 1
4 7 6
> > > > > ^ > > > > > > > > >
1 D E
estouro
+
5 4
← ----------------------------------------------------- (vai um)
0 1 2 3 4 5 6 7 8 9 A B C D E F 1 1
4 7 6
> > ^ 1 D E
Estouro +
6 5 4
----------------------Não ocorre estouro ------------------------
Resposta:
476H + 1DEH = 654H
2) F1EH + FFH = ?H
0 1 2 3 4 5 6 7 8 9 A B C D E F 1
F 1 E
> > > > > > > > > > > > > ^ > >
F F
+
D
← ----------------------------------------------------- (vai um)
1 1
0 1 2 3 4 5 6 7 8 9 A B C D E F F 1 E
> > > > > > > > > > > > > > > > F F
Estouro +
1 D
^
← ----------------------------------------------------- (vai um)
1 1 1
0 1 2 3 4 5 6 7 8 9 A B C D E F F 1 E
^ > F F
+
1 0 1 D
← --------------------------------------------------- (vai um)
Resultado:
F1EH + FFH = 101DH
Soma em binário (sistema numérico de base 2):
© U1 - Sistemas Numéricos e Conversões de Bases 39
Algarismos do sistema numérico binário:
0 1
Somar no sistema numérico binário não é diferente de somar em outros sistemas numéri-
cos. O problema é que, como ocorrem muitos estouros, é necessário um pouco mais de atenção
para não errar.
Veja um exemplo simples de soma no sistema numérico binário:
(0) 2 + (1) 2 = (?)2
0 1
0
1 +
> ^
1
Resultado:
(0)2 + (1)2 = (1)2
1
^ >
+
1 0
← ---- estouro
Resultado:
(1)2 + (1)2 = (10)2
Por esse motivo, deixo aqui uma frase bem humorada:
“Existem 10 tipos de pessoas: as que conhecem o sistema de numeração binário e as que
não conhecem” (autor desconhecido).
Claro que, se fizermos uma análise um pouco mais crítica sobre a frase citada, percebe-
remos que se trata de um erro de português, caso o 10 esteja na base decimal, ou de notação
numérica de base se os algarismos 10 estiverem na base numérica binária. Percebemos, dessa
forma, a importância de indicarmos a base sempre que estivermos trabalhando com sistemas
de numeração de bases diferentes.
Mesmo que o sistema padrão seja o decimal e estivermos apresentando um número nes-
sa base, em um projeto onde os números de bases diferentes se misturam,devemos sempre
fazer a indicação corretamente. Exemplo: (34)10.
A seguir, serão apresentados outros exemplos de soma no sistema numérico binário:
1) (101)2 + (11)2 = (?)2
2)
1
0 1
1 0 1
^ > 0 1 1
+
← ---- estouro 0
1 1
0 1
1 0 1
0 1 1
^ > +
0 0
← ---- estouro
1 1 1
0 1
1 0 1
0 1 1
^ > +
1 0 0 0
← ---- estouro
Resposta:
(101)2+ (11)2 = (1000)2
0 1
1 0 1
0 1 0 +
> ^
1
----sem estouro ---
0 1
1 0 1
0 1 0 +
> ^
1 1
---- sem estouro ---
© U1 - Sistemas Numéricos e Conversões de Bases 41
0 1
1 0 1
0 1 0 +
^
1 1 1
--- sem estouro ---
Resposta:
(101)2 + (10)2 = (111)2
0 1 2 3 4 5 6 7 8 9 9 4
<- <- <- <- <- ^ <- <- <- 1
5 8 -
6
---------------------vem um--------------------------------- →
0 1 2 3 4 5 6 7 8 9 9 4
Resultado:
(94)10 – (58)10= (36)10
4 7 6
0 1 2 3 4 5 6 7 8 9 A B C D E F 1
< < < < < < < ^ < < < < < < < 1 D E -
8
----------------------------vem um-------------------------- →
0 1 2 3 4 5 6 7 8 9 A B C D E F 4 7 6
< < < < < < < <- vem um ^ < < < < < < 1 1
1 D E -
9 8
----------------------------vem um-------------------------- →
0 1 2 3 4 5 6 7 8 9 A B C D E F 4 7 6
1 1
^ < <- vem um 1 D E -
2 9 8
Resposta:
476H – 1DEH = 298H.
^ 0 1 0 -
1
----sem estouro ---
1 0 1
0 1
1
^ 0 1 0 -
<
1 1
-------- estouro -----à
© U1 - Sistemas Numéricos e Conversões de Bases 43
1 0 1
0 1 1
0 1 0 –
^ <
0 1 1
--- sem estouro ---
Resposta:
(101)2– (10)2 = (011)2
O problema aparece quando o resultado é negativo! Quando isso se dá, ocorrem infinitos
estouros a partir do algarismo mais significativo (aquele que está mais à esquerda). Não deve-
mos considerar esses estouros na formação do resultado, mas eles nos indicam que o resultado
é negativo e está apresentado na forma de complemento da base.
Antes de prosseguirmos, vamos entender o que é o complemento de um número.
O complemento de um número é o que falta para a base. Por exemplo: no sistema de
numeração decimal, o complemento de 4 é 6, pois é o que falta para alcançar a base, que é dez.
No sistema de numeração hexadecimal, o complemento de 7é 9, pois 7 + 9 é 16, ou seja,
é o que falta para atingir a base.
Em outros sistemas de numeração, aconteceda mesma forma. No sistema de numeração
binário, o complemento de 1 é 1, pois é o que falta para alcançar o 2, a base.
Mas, existe um problema. Se considerarmos complemento como sendo o que falta para a
base, poderemos ter alguns estouros indesejados durante o cálculo de alguns dígitos.
Para resolver esse problema, devemos sempre considerar complemento como sendo o
que falta para a base menos um, e, somente depois dos cálculos dígito a dígito, devolver o um
que foi subtraído.
Assim,o complemento do número decimal 4 é o número decimal 5, e não o número deci-
mal 6. O complemento do número hexadecimal 8 é 6 e não 7, como apresentado anteriormente,
e o complemento do número binário 1 é 0 e não 1, como apresentado na definição.
Para esses casos, podemos considerar que o complemento de um número é o simétrico
na apresentação dos algarismos de uma determinada base, ou seja, se você deslocou três alga-
rismos do zero ao três, o algarismo simétrico é àquele que sofre três deslocamentos do último
algarismo em direção à esquerda. Exemplo: para o sistema decimal, o simétrico de zero é nove,
o simétrico de um é oito, o simétrico de dois é sete e, assim, sucessivamente Só não podemos
esquecer de somar um no final da operação dígito a dígito. Observe os exemplos a seguir:
5 8
Comentários
1
9 4
– O “emprestaum” final indica que o resultado é negativo e,
6 4 portanto,deverá ser complementado.
4 7 6
Comentários
1 1 1
F D E
– O “emprestaum” final indica que o resultado é negativo e, portanto,
4 9 8 deverá ser complementado.
0 1 0
Comentários
1 1
1 0 1
– O “emprestaum” final indica que o resultado é negativo e, portanto,
1 0 1 deverá ser complementado.
– 0 1 1
É importante indicar, com o sinal “–”, que o resultado é negativo.
Como os dois termos já possuem o mesmo número de dígitos, não é necessário igualar
as casas; assim, basta fazer a soma do primeiro termo com o complemento digito a dígito do
segundo termo mais um.
(94)10 + (41)10 + (1)10=
Resolução:
1
Comentários
9 4
O estouro na operação final indica que o resultado é positivo e, portan-
4 1 to, já é o resultado final da operação de subtração.
+
1 Observe que o estouro não desce para o resultado.
3 6
Resultado:
(94)10 – (58)10= (36)10
Resultado:
FDEH–476H =B68H
© U1 - Sistemas Numéricos e Conversões de Bases 47
Exemplo no sistema de numeração de base 2 (binário):
(101)2– (10)2 =
Para resolver este exemplo, devemos:
• igualar as casas, inserindo zeros à esquerda:
(101)2– (010)2 =
• fazer a soma do primeiro termo com o complemento dígito a dígito do segundo termo
mais um:
(101)2 + (101)2 + (1)2 =
Resolução:
1 1
Comentários
1 0 1
1 0 1 O estouro na operação final indica que o resultado é positivo e, por-
+ tanto, já é o resultado final da operação de subtração.
1
Observe que o estouro não desce para o resultado.
0 1 1
Resultado:
(101)2– (10)2 = (011)2
1
Comentários
0 5 8
6 4
Como o resultado é negativo, é necessário complementá-lo para obter
o resultado final.
3 5
1
É importante indicar, com o sinal “–”, que o resultado é negativo.
– 3 6
Resultado:
(58)10 – (94)10= (-36)10
Comentários
4 7 6
4 9 8
Resultado:
476H – FDEH = – B68H
Resolução:
1
Comentários
0 0 1 0
0 1 0
Ao contrário da subtração direta, a falta do estouro na operação final
+ indica que o resultado é negativo e, portanto deverá ser complemen-
tado.
1
1 0 1
Como o resultado é negativo, é necessário complementá-lo para
obter o resultado final.
0 1 0
1 +
É importante indicar, com o sinal “–”, que o resultado é negativo.
– 0 1 1
Resultado:
(10)2– (101)2 = (– 011)2
Concluímos o estudo da nossa primeira unidade.Agora, sugerimos que você resolva as
questões autoavaliativas a seguir e, assim, verifique o seu aprendizado.
7) Como se faz o complemento bit a bit de um número no sistema hexadecimal? E no sistema binário?
12. CONSIDERAÇÕES
Nesta unidade,você teve a oportunidade de aprender um pouco sobre os sistemas de nu-
meração. Inicialmente, estudamos o sistema decimal, o mais utilizado pelos seres humanos;em
seguida,estudamos o sistema de numeração hexadecimal, que é aplicado principalmente na
programação de baixo nível e também na configuração de computadores; e, por fim, estuda-
moso sistema binário (sistemas de numeração de base 2),o qual é um sistema utilizado pelos
computadores digitais,ou seja, os programas em linguagem de máquina estão todos escritos
utilizando zeros e uns, incluindo as instruções que são representadas pelos seus respectivos
códigos de operação (opcode). Assim, os sistemas de numeração foram formalizados com o ob-
jetivo de capacitá-lo a trabalhar com sistemas de numeração de qualquer base.
Além disso, estudamos as conversões de valores, como mudanças da base dez para qual-
quer base e de qualquer base para a base dez, mudanças diretas entre o sistema de numeração
binário e o sistema de numeração hexadecimal e vice-versa. Além disso, você conheceu o me-
canismo de resolução de problemas aritméticos, como soma e subtração de números nas bases
apresentadas, e a operação de complemento.
Agora você já está pronto para continuar os estudos na próxima unidade (sistemas digi-
tais). Bons estudos!
13. BIBLIOGRAFIA
LOURENÇO, Antônio Carlos et al. Circuitos digitais.São Paulo: Érica, 1996.
STALLINGS, William. Arquitetura e organização de computadores: projeto para o desempenho. Tradução de Carlos Camarão de
Figueiredo. 5. ed. São Paulo: Prentice-Hall, 2003.
EAD
Sistemas Digitais
1. OBJETIVO
• Compreender a implementação de sistemas computacionais no nível da lógica digital.
2. CONTEÚDOS
• Portas lógicas.
• Circuitos combinacionais (somadores e subtratores).
• Circuitos sequenciais (registradores).
4. INTRODUÇÃO À UNIDADE
Na unidade anterior, você teve a oportunidade de aprenderos sistemas numéricos utiliza-
dos pelos computadores e os sistemas digitais.
Nesta unidade, discutiremos a respeito de circuitos digitais, que são os responsáveis pela
implementação da lógica dos computadores atuais.
Um exemplo dessa implementação é a unidade lógica e aritmética que fica dentro do
processador de um computador. Essa unidade é a parte física responsável por efetuar opera-
ções aritméticas e lógicas do computador. Dentro desse módulo, existem muitos circuitos com
diferentes funções, como somadores, subtradores, comparadores etc. Esses circuitos são imple-
mentados por meio de portas lógicas sobre o sistema numérico binário. Assim, estudando esses
componentes, você será capaz de entender melhor como um computador funciona.
Bons estudos!
Portas lógicas são dispositivos eletrônicos que têm a função de implementar circuitos
booleanos.
Vamos conhecer as principais Portas Lógicas, cada um de seus símbolos para representa-
ção gráfica, além da apresentação de uma tabela denominada tabela verdade que descreverá
o seu funcionamento.
AND (E BOOLEANO)
Para que a saída S seja 1, todas as entradas têm de ser 1.
A B S = A AND B
0 0 0
0 1 0
1 0 0
1 1 1
Símbolo:
Expressão: S = A X B
OR (OU BOOLEANO)
Para que a saída seja 1, pelo menos uma das entradas tem de ser igual a 1.
A B S = A OR B
0 0 0
0 1 1
1 0 1
1 1 1
Símbolo:
Expressão: S = A + B
Símbolo:
Expressão: S= A´
Aqui temos uma novidade! Nos circuitos digitais, há apenas dois sinais que podem ser
representados por 0 e 1. Quando dizemos que a saída é o inverso da entrada, significa que se na
entrada temos 0 a saída será 1 e se na entrada temos 1 a saída será 0. A essa mudança de estado
(de 0 para 1 ou vice-versa) denominamos complemento.
O complemento pode ocorrer em qualquer parte do circuito e é representado por uma
apóstrofe ou um traço sobre a letra que representa o sinal naquele instante.
Exemplo:
Considere um trecho do circuito representado pela letra maiúscula A, temos: A’ é o com-
plemento de A, assim como A é complemento de A.
© U2 - Sistemas Digitais 55
Símbolo:
Expressão: S = (A X B)´
Símbolo:
Expressão: S = (A + B)´
Símbolo:
Expressão: S = (A + B)
Símbolo:
Expressão: S = A x B
6. CIRCUITOS DIGITAIS
Para projetar um circuito capaz de resolver algum problema real, várias Portas Lógicas são
interligadas e organizadas de acordo com a lógica booleana.
Em primeiro lugar, deve-se montar uma expressão booleana e, em seguida, partir para a
implementação do circuito propriamente dito.
Exemplo:
0+0=0 0 1
0 + 0 deslocamento à direita = 0
Analise o que acontece quando somamos 0 + 1. Nesse caso, deve-se fazer um deslo-
camento à direita do algarismo zero para o próximo (que é o algarismo 1). Observe a seguir.
0+1=1 0 1
0 + 1 deslocamento à direita = 1
1+0=1 0 1
1 + 0 deslocamentos à direita = 1
Veja que interessante agora, para somar 1 + 1, ocorre o seguinte: estando no algarismo 1
e com mais um deslocamento à direita, o resultado é zero, pois, como não existe mais algarismo
à direita, deve-se retornar ao algarismo inicial (no caso o zero).
1+1=0 Vai 1 0 1
1 + 1 deslocamento à direita = 0
Isso ocorre porque como não existe outro algarismo depois do 1, o deslocamento ocorre retornando
ao 0, como se os algarismos estivessem dispostos em uma fila circular.
A esse retorno, damos o nome de estouro, e significa vai um para o próximo dígito (se houver).
Ou seja,
Soma de um bit
0+1 0
0+1 1
1+0 1
1+1 0 e vai 1
1 + 1 +1 1 e vai 1
Si = Ai + Bi
Ci = Ai x Bi
O estudo dos circuitos e sistemas digitais é muito extenso e também complexo. Como alu-
no dos Cursos de Graduação, é necessário que você tenha uma noção sobre esses assuntos e é,
justamente, este o objetivo deste Caderno de Referência de Conteúdo.
Mapas de Veitch-Karnaugh
Os mapas de Veitch-Karnaugh são ferramentas que utilizam uma tabela para a extração de
expressão booleana simplificada.Esses mapas sãomontados de uma forma especial, com o obje-
tivo de proporcionar enlaces de células adjacentes e de mesmo valor pelos quais serão extraídas
as expressões booleanas. Eles são preenchidos com as saídas da tabela verdade.
Para que se compreenda o método de simplificação por mapas de Veitch-Karnaugh,é pre-
ciso que, antes,você entenda de que forma o mapa é construído e também os conceitos relacio-
nados a essa ferramenta.
O mapa de Veitch-Karnaugh deve ser construído com o mesmo número de células que as
saídas da tabela verdade a ser trabalhada. Ou seja, ele deverá ser formado por 2n células, onde
n indica o número de variáveis de entrada.
Cada célula do mapa deverá corresponder a uma única saída da tabela verdade e a in-
dicação de qual saída pertence à célula é feita pela forma de construção da tabela verdade. A
posição será indicada conforme demonstrado a seguir:
Para mapas com duas variáveis de entrada:
0 1
0 00 01
A
1 10 11
BC
00 01 11 10
CD
00 01 11 10
Os mapas com cinco variáveis de entrada não serão considerados. Caso seja necessário
simplificar expressões ou extrairuma expressão de uma tabela verdade com mais de quatro
entradas, procure utilizar softwares apropriados para essa função. Existem vários disponíveis no
mercado e são muito úteis na elaboração de circuitos digitais.
Observe um exemplo de alimentação da tabela verdade utilizando letras para exemplificar
a associação das variáveis de saída de uma tabela verdade com o preenchimento do mapa.
Para mapas com duas variáveis de entrada:
linha A B S B
1 0 0 A 0 1
2 0 1 B 0 A B
3 1 0 C A
1 C D
4 1 1 D
© U2 - Sistemas Digitais 61
Para mapas com três variáveis de entrada:
linha A B C S
BC
1 0 0 0 A
2 0 0 1 B 00 01 11 10
3 0 1 0 C
0 A B D C
4 0 1 1 D
A
5 1 0 0 E
1 E F H G
6 1 0 1 F
7 1 1 0 G
8 1 1 1 H
1 0 0 0 0 A
00 01 11 10
2 0 0 0 1 B
3 0 0 1 0 C 00 A B D C
4 0 0 1 1 D
5 0 1 0 0 E 01 E F H G
6 0 1 0 1 F AB
7 0 1 1 0 G 11 M N P O
8 0 1 1 1 H
9 1 0 0 0 I 10 I J L K
10 1 0 0 1 J
11 1 0 1 0 K
12 1 0 1 1 L
13 1 1 0 0 M
14 1 1 0 1 N
15 1 1 1 0 O
16 1 1 1 1 P
Após aprender como se monta o mapa, vamos aos procedimentos necessários para a ex-
tração da expressão booleana com a ajuda do mapa.
Dizemos que duas células são adjacentes quando apenas uma de suas variáveis de entrada
muda de valor lógico. Sendo assim, observe a seguir as possibilidades dos enlaces dos mapas de
duas, três e quatro variáveis de entrada:
Possibilidades de enlaces
B B B
0 1 0 1 0 1
0 A B 0 A B 0 A B
A A A
1 C D 1 C D 1 C D
B B B
0 1 0 1 0 1
0 A B 0 A B 0 A B
A A A
1 C D 1 C D 1 C D
BC BC
00 01 11 10 00 01 11 10
0 A B D C 0 A B D C
A A
1 E F H G 1 E F H G
BC BC
00 01 11 10 00 01 11 10
0 A B D C 0 A B D C
A A
1 E F H G 1 E F H G
© U2 - Sistemas Digitais 63
BC BC
00 01 11 10 00 01 11 10
0 A B D C 0 A B D C
A A
1 E F H G 1 E F H G
BC BC
00 01 11 10 00 01 11 10
0 A B D C 0 A B D C
A A
1 E F H G 1 E F H G
BC BC
00 01 11 10 00 01 11 10
0 A B D C 0 A B D C
A A
1 E F H G 1 E F H G
BC BC
00 01 11 10 00 01 11 10
0 A B D C 0 A B D C
A A
1 E F H G 1 E F H G
BC BC
00 01 11 10 00 01 11 10
0 A B D C 0 A B D C
A A
1 E F H G 1 E F H G
CD CD
00 01 11 10 00 01 11 10
00 A B D C 00 A B D C
01 E F H G 01 E F H G
AB AB
11 M N P O 11 M N P O
10 I J L K 10 I J L K
CD CD
00 01 11 10 00 01 11 10
00 A B D C 00 A B D C
01 E F H G 01 E F H G
AB AB
11 M N P O 11 M N P O
10 I J L K 10 I J L K
CD CD
00 01 11 10 00 01 11 10
00 A B D C 00 A B D C
01 E F H G 01 E F H G
AB AB
11 M N P O 11 M N P O
10 I J L K 10 I J L K
© U2 - Sistemas Digitais 65
CD CD
00 01 11 10 00 01 11 10
00 A B D C 00 A B D C
01 E F H G 01 E F H G
AB AB
11 M N P O 11 M N P O
10 I J L K 10 I J L K
Expressões booleanas
Após estabelecer os enlaces das células adjacentes, deve-se extrair a expressão booleana
utilizando o método da soma de produtos, para enlaces iguais a zero, ou o método do produto
das somas, para os enlaces iguais a um. Veja, a seguir, as duas formas de extrair a expressão
booleana:
linha A B S B
1 0 0 1
0 1
2 0 1 1
0 1 1
3 1 0 0 A
4 1 1 0 1 0 0
linha A B S B
1 0 0 0 0 1
2 0 1 0 0 0 0
3 1 0 1 A
1 1 1
4 1 1 1
linha A B S B
1 0 0 0 0 1
2 0 1 1 0 0 1
3 1 0 1 A
1 1 1
4 1 1 1
linha A B C S BC
1 0 0 0 0
00 01 11 10
2 0 0 1 1
3 0 1 0 0
4 0 1 1 1 0 0 1 1 0
5 1 0 0 0 A
6 1 0 1 1 1 0 1 1 0
7 1 1 0 0
8 1 1 1 1
linha A B C S BC
1 0 0 0 1
2 0 0 1 0 00 01 11 10
3 0 1 0 1
4 0 1 1 0 0 1 0 0 1
5 1 0 0 1
A
6 1 0 1 0
7 1 1 0 1 1 1 0 0 1
8 1 1 1 0
linha A B C S BC
1 0 0 0 1
2 0 0 1 1 00 01 11 10
3 0 1 0 1
4 0 1 1 0
5 1 0 0 1 0 1 1 0 1
6 1 0 1 0 A
7 1 1 0 1
1 1 0 0 1
8 1 1 1 0
Terceira linha: A’.B.C’ Para este caso, temos primeiro o enlace que ocupa a primeira
e a quarta coluna nas duas linhas. Pense que a adjacência ocor-
Quinta linha: A . B’ . C’ re por trás, como se o mapa fosse interligado nas extremida-
des, formando um cone. Assim, a variável A muda de valor (da
Sétima linha: A . B . C’ linha um valendo zero para a linha dois valendo um), a variá-
vel muda de zero (primeira coluna) para um (quarta coluna) e
Em seguida, deve-se somar as multiplicações para montar a a variável C não muda (vale zero tanto para a primeira coluna
expressão: quanto para a quarta) e entra complementada na expressão.
S = C’. Temos um segundo enlace que deverá ser somado ao
S = A’.B’.C’ + A’ . B’ . C + A’.B.C’ + A . B’ . C’ + A . B . C’ termo extraído do primeiro enlace. O segundo enlace ocupa
as células da primeira e segunda coluna da primeira linha e,
portanto, a única variável que muda de valor é a variável C. A
variável A entra complementada, pois para toda a primeira
linha ela vale zero e a variável B também deverá entrar com-
plementada, pois, para a primeira e para a segunda coluna ela
também vale zero. A variável C muda da primeira para a se-
gunda coluna e, portanto, a variável C não entra na expressão.
Assim: S= C’ + A’ . B’
linha A B C D S CD
1 0 0 0 0 0
2 0 0 0 1 0 00 01 11 10
3 0 0 1 0 1
4 0 0 1 1 1
5 0 1 0 0 1 00 0 0 1 1
6 0 1 0 1 1
7 0 1 1 0 1
8 0 1 1 1 1 01 1 1 1 1
9 1 0 0 0 0
10 1 0 0 1 0 AB
11 1 0 1 0 0
11 1 1 0 0
12 1 0 1 1 0
13 1 1 0 0 1
14 1 1 0 1 1
10 0 0 0 0
15 1 1 1 0 0
16 1 1 1 1 0
linha A B C D S
1 0 0 0 0 1
2 0 0 0 1 1 CD
3 0 0 1 0 1
00 01 11 10
4 0 0 1 1 1
5 0 1 0 0 0
00 1 1 1 1
6 0 1 0 1 0
7 0 1 1 0 0
8 0 1 1 1 0 01 0 0 0 0
9 1 0 0 0 1 AB
10 1 0 0 1 1 11 0 0 0 0
11 1 0 1 0 1
12 1 0 1 1 1 10 1 1 1 1
13 1 1 0 0 0
14 1 1 0 1 0
15 1 1 1 0 0
16 1 1 1 1 0
linha A B C D S
1 0 0 0 0 1
2 0 0 0 1 0
3 0 0 1 0 1 CD
4 0 0 1 1 0
00 01 11 10
5 0 1 0 0 0
6 0 1 0 1 1 00 1 0 0 1
7 0 1 1 0 0
8 0 1 1 1 1 01 0 1 1 0
9 1 0 0 0 1 AB
10 1 0 0 1 0 11 0 1 0 0
11 1 0 1 0 1
10 1 0 0 1
12 1 0 1 1 0
13 1 1 0 0 0
14 1 1 0 1 1
15 1 1 1 0 0
16 1 1 1 1 0
linha A B S B
1 0 0 1 0 1
2 0 1 1
0 1 1
3 1 0 0 A
1 0 0
4 1 1 0
linha A B S B
1 0 0 0 0 1
2 0 1 0 0 0 0
3 1 0 1 A
1 1 1
4 1 1 1
linha A B S B
1 0 0 0 0 1
2 0 1 1 0 0 1
3 1 0 1 A
1 1 1
4 1 1 1
linha A B C S
1 0 0 0 0 BC
2 0 0 1 1
00 01 11 10
3 0 1 0 0
4 0 1 1 1
0 0 1 1 0
5 1 0 0 0
A
6 1 0 1 1
1 0 1 1 0
7 1 1 0 0
8 1 1 1 1
linha A B C S
1 0 0 0 1 BC
2 0 0 1 0
00 01 11 10
3 0 1 0 1
4 0 1 1 0
0 1 0 0 1
5 1 0 0 1
A
6 1 0 1 0
1 1 0 0 1
7 1 1 0 1
8 1 1 1 0
linha A B C S
BC
1 0 0 0 1
2 0 0 1 1 00 01 11 10
3 0 1 0 1
4 0 1 1 0
0 1 1 0 1
5 1 0 0 1
A
6 1 0 1 0
1 1 0 0 1
7 1 1 0 1
8 1 1 1 0
linha A B C D S
1 0 0 0 0 1
2 0 0 0 1 1 CD
3 0 0 1 0 1
4 0 0 1 1 1 00 01 11 10
5 0 1 0 0 0
6 0 1 0 1 0 00 1 1 1 1
7 0 1 1 0 0
8 0 1 1 1 0
01 0 0 0 0
9 1 0 0 0 1
AB
10 1 0 0 1 1
11 1 0 1 0 1 11 0 0 0 0
12 1 0 1 1 1
13 1 1 0 0 0 10 1 1 1 1
14 1 1 0 1 0
15 1 1 1 0 0
16 1 1 1 1 0
Exemplo 10 Mapa de Veitch-Karnaugh com quatro variáveis de entrada, enlaces de zeros e com
células iguais a X
É importante que você atentepara as células que possuem o valor X, pois elas poderão ser
utilizadas para enlaces de uns ou zeros de acordo com a conveniência do mapa. Se você estiver
utilizando enlaces de zeros e a(s) célula(s) com valor X ajudarem no processo de simplificação,
elas deverão ser utilizadas nos enlaces valendo zero, assim como, se você estiver utilizando
um mapa com enlaces de uns e a(s) célula(s) iguais a X ajudarem de alguma forma a obter o(s)
maior(es) enlace(s) de uns, ela(s) deverá entrar valendo um.
Lembre-se de quevocê não tem a obrigação de utilizar todas as células iguais a X. Deve-se
utilizar apenas as que forem convenientes para fazer o maior enlace possível.
linha A B C D S
1 0 0 0 0 1
2 0 0 0 1 0
CD
3 0 0 1 0 1
4 0 0 1 1 0 00 01 11 10
5 0 1 0 0 0
6 0 1 0 1 X 00 1 0 0 1
7 0 1 1 0 0
8 0 1 1 1 X
01 0 X X 0
9 1 0 0 0 1
AB
10 1 0 0 1 0
11 0 X 0 0
11 1 0 1 0 1
12 1 0 1 1 0
10 1 0 0 1
13 1 1 0 0 0
14 1 1 0 1 X
15 1 1 1 0 0
16 1 1 1 1 0
Multiplexadores
Um circuito multiplexador tem como função escolher uma de suas várias entradas para se
conectar à sua única saída.
Como exemplo de aplicação dos circuitos multiplexadores, temos:
• O circuito de controle dos sistemas de segurança monitorado por câmera, em que vá-
rias câmeras podem ser ligadas a um único monitor e, por meio do multiplexador, o
operador poderá escolher qual câmeraenviará imagem ao monitor em um determina-
do momento.
• Dispositivo de controle de várias impressoras compartilhando uma única interface com
o computador.
• O compartilhamento de um meio de transmissão de dados por vários processos de
computadores ou mesmo outros tipos de aparelhos, digitais ou não.
Para entender melhor, considere os circuitos multiplexadores como sendo uma chave se-
letora conforme a Figura 4.
© U2 - Sistemas Digitais 87
Figura 4 Multiplexador.
Perceba que, como o multiplexador apresentado possui quatro entradas, então serão ne-
cessárias duas variáveis de seleção, para que, dessa forma, sejam contempladas todas as possi-
bilidades de seleção.
A partir desse exemplo, serão apresentados apenas os diagramas dos circuitos combina-
cionais, porém não se esqueça de que eles são sempre constituídos por portas lógicas.
Demultiplexadores
Um circuito combinacional demultiplexador (DEMUX) faz exatamente o inverso do circuito
combinacional multiplexador (MUX).
Os demultiplexadores têm como função selecionar uma de suas várias saídas para se co-
nectar à sua única entrada.
Neste momento, fica fácil a compreensão de que poderemos utilizar um multiplexador e
um demultiplexador para compartilhar um meio de transmissão. Basta inserir um multiplexador
em uma ponta e um demultiplexador na outra e configurá-lo adequadamente para estabelecer
uma comunicação síncrona entre todos os dispositivos que estão inseridos neste contexto.
Da mesma forma que o MUX, imagine uma chave de múltiplas seleções que possui uma
única entrada e várias saídas como sendo um exemplo de demultiplexador.
Algumas aplicações de um demultiplexador são:
• Conversões de dados -> serial paralelo.
• Recepção de dados compartilhando um único meio.
• Compartilhamento de dispositivos.
Observe, nas Tabela 4, 5 e 6, os diagramas e tabelas verdade de um demultiplexador de
quatro saídas, de um de oito saídas e um de dezesseis saídas.
Codificadores e decodificadores
Os codificadores e decodificadores são circuitos combinacionais dedicados a transformar
sinais digitais de uma característica específica para outra, de modo a proporcionar uma comuni-
cação adequada entre circuitos digitais diferentes.
Os computadores trabalham com dados digitais (na base dois). Como é possível a comu-
nicação de um teclado alfanumérico com tantas teclas com um sistema digital de base dois?
Pois bem, o circuito que estabelece a comunicação entre o teclado alfanumérico e computador
digital é denominado de codificador.
Da mesma forma, um circuito que converte os sinais digitais dos comutadores em sinais de
base maior, como os utilizados em um display digital, recebe o nome de decodificador.
© U2 - Sistemas Digitais 91
Veja outras aplicações dos circuitos codificadores e decodificadores como, por exemplo:
1) Comunicação entre telado e display de uma calculadora eletrônica.
2) Reprodução sonora de um compact disc ou DVD.
3) Integração de sistemas que utilizam bases numéricas diferentes.
4) Sinais de dados (incluindo áudio e vídeo) transmitidos via satélite.
5) Modem.
6) Dispositivos utilizados para criptografia.
A seguir, serão apresentados alguns tipos de códigos utilizados no universo da computa-
ção:
Código BCH
O código BCH (Binary Coded Hexadecimal) codifica os valores da base hexadecimal para
binário da mesma forma que o Codificador BCD (Binary Coded Decimal) faz com os dígitos deci-
mais. Para esse codificador, todas as dezesseis linhas dos quatro dígitos binários da tabela serão
utilizados.
Veja, na Tabela 8, um exemplo doCódigo BCH.
Código Excesso 3
Conforme já estudado na unidade anterior (Sistemas Numéricos e Conversões de Bases),
as operações de subtração podem ser transformadas em soma utilizando a técnica da subtração
por complemento da base. Essa técnica utiliza com muita frequência a operação de complemen-
to.
O codificador Excesso 3 é útil na simplificação de subtração no sistema binário pelo fato de
que o complemento de um algarismo do sistema decimal correspondeao complemento, dígito
a dígito, do código Excesso 3.
Com o uso dos microcontroladores e microprocessadores, o uso do codificador Excesso 3
não se faz necessário, porém esse codificador foi muito utilizado nas calculadoras eletrônicas,que
não utilizavam esses tipos de circuitos integrados.
Veja, na Tabela 9, um exemplo do código Excesso 3.
Perceba que o complemento de (1010)2 é igual a (0101)2,da mesma forma que o comple-
mento dígito a dígito de (7)10 é igual a (2)10.
© U2 - Sistemas Digitais 93
Código Gray
O código Gray codifica os decimais de zero a quinze em dígitos binários, de forma que
somente um digito binário mude de valor de uma linha para outra. Esse código é utilizado por
contemplar o conceito de adjacência existente nos mapas de Veitch-Karnaugh,em que apenas
uma variável de entrada muda de uma célula para outra.
Veja, na Tabela 10, um exemplo do código Gray.
Percebeu que, ao pressionar a tecla y do teclado, o código binário (0111 1001)2será gerado
e enviado ao sistema digital?
Veja, agora,um exemplo de codificador e outro de decodificador:
Codificador BCD
O codificador BCD, apresentado na Figura 7, é capaz de receber, por meio de dez chaves
eletrônicas de seleção exclusiva (em que não se pode ligar mais de uma chave ao mesmo tem-
po), os algarismos de zero a nove (cada chave representará um algarismo), e, por meio do circui-
to codificador BCD, o sistema enviará a um conjunto de quatro leds o valor correspondente da
chave selecionada em binário por meio dos leds.
É importante ressaltar quea entrada zero não é necessária, por deixar todas as saídas em
nível lógico baixo. O zero será representado quando todas as entradas forem zero.
Somadores e Subtradores
Conheça, a seguir, os Somadores e Subtradores.
Somadores
Os circuitos somadores são responsáveis pela operação de soma de dígitos binários (bits).
Os somadores são divididos em dois tipos: meio-somador (half-adder),em que dois bits entram
no circuito para serem somados e o resultado é disponibilizado nas suas duas saídas, definidas
como resultado e estouro (vai-um);e os somadores completos(full-adder), quelevam em consi-
deração a entrada de um estouro da operação anterior. Dessa forma, o somador completo terá
três entradas, representando, respectivamente, o dígito binário de estouro e os dois dígitos
binários a serem somados.O resultado da soma será apresentado em suas duas saídas definidas
como resultado e estouro.
Para realizar a soma de mais de um dígito binário, deve-se associar um meio somador
(para a soma do primeiro bit) com n somadores completos,em que n deve corresponder ao nú-
mero de dígitos a serem somados menos um (que já foi conectado ao meio somador). Vejam os
exemplos nas Figuras 10, 11 e 12:
© U2 - Sistemas Digitais 99
Figura 10 Meio-somador.
X5 X4 X3 X2 X1
5V 5V 5V 5V 5V
U4 U3 U1 U2
V1
5V
Subtradores
Os circuitos subtradores ou subtratores são responsáveis pela operação de subtração de
dígitos binários (bits). Os subtradores, assim como os somadores, são divididos em dois tipos:
meio-subtrador (half-subtractor),em que dois bits entram no circuito para serem subtraídos e
o resultado é disponibilizado nas suas duas saídas, definidas como resultado e estouro (nes-
te caso,acontece o “empresta-um”); e subtrador completo (full-subtractor), os quais levam em
consideração a entrada do estouro da operação anterior. Dessa forma, o subtrador completo
terá três entradas, representando, respectivamente, o dígito binário de estouro e os dois dígitos
binários a serem subtraídos.O resultado da subtração será apresentado em suas duas saídas
definidas como resultado e estouro.
Veja, nas Figuras 13 e 14, os exemplos de meio-subtrador e de subtrador completo.
Circuitos sequenciais
Os circuitos apresentados até agora são chamados de combinacionais, pois, por meio da
combinação de portas lógicas, ocorre uma transformação nos sinais de entrada em sinais de
saída. Os circuitos sequenciais diferem-se dos circuitos combinacionais pelo fato de haver uma
retroalimentação ligando a(s) saída(s) atual(is) na(s) entrada(s) futura(s).
Mas como é possível a saída atual influenciar a saída futura? Se a entrada for alterada, a
saída também não será alterada? A resposta para essas perguntas está na imperfeição dos com-
ponentes eletrônicos. As suas saídas não são atualizadas imediatamente depois damudança dos
sinais de entrada e, sendo assim, é possível que a saída atual (denominada como estado interno)
altere a saída futura sem sofrer as consequências da atualização das entradas em um determi-
nado instante. Observe a Figura 15:
Flip-flops
Os flip-flops têm como característica armazenar um estado lógico e podem ser utilizados
como elemento de memória, partes constituintes de registradores, contadores etc., sendo am-
plamente utilizados na eletrônica digital.
Flip-flop RS
Os flip-flops do tipo RS possuem duas entradas, denominadas R (reset) e S (set), e duas
saídas Q e Q’. Esses flip-flops são considerados assíncronos por não depender do pulso de clock
para que as suas saídas sejam atualizadas, ou seja, as atualizações das saídas dependerão ape-
nas do tempo de atraso característico do componente eletrônico.
A saída Q dos flip-flopsRS é levada ao nível lógico alto quando a entrada S (set) estiver no
nível lógico alto e a entrada R (reset) estiver em nível lógico baixo.
Da mesma forma, a saída Q dos flip-flopsRS é levada ao nível lógico baixo quando a entra-
da S (set) estiver no nível lógico baixo e a entrada R (reset) estiver no nível lógico alto.
Quando a entrada S (set) e a entrada R (reset) estiverem no nível lógico baixo, as saídas
Q e Q’ deverão permanecer inalteradas, ou seja, a saída Q,queestava no nível lógico alto, con-
tinuará no nível lógico alto e se, ela estiver no nível lógico baixo, também continuará no nível
lógico baixo.
O problema do flip-flopRS aparece quando as entradas S (set) e R (reset) permanecem jun-
tas em nível lógico alto. Nesse caso (R=1 e S=1), o circuito ficará instável e ocorrerá um erro lógi-
co. Por esse motivo, não se deve deixar que um flip-flop RS receba S=1 e R=1 ao mesmo tempo.
Veja, a seguir, a tabela verdade (Tabela 11) e o diagrama de tempo (Figura 17) do flip-
-flopRS:
Observe que se pode alterar o circuito do flip-flop RS para que o mesmo receba sinais de
clock, transformando-o, dessa forma, em um dispositivo síncrono. Assim, as saídas serão atuali-
zadas no momento exato definido pelo circuito juntamente ao sinal de clock.
Flip-flop JK
O flip-flop JK é uma evolução do flip-flop RS.Ele resolve o problema do erro lógico quando
as entradas forem nível lógico alto para o set e também para o reset, agora denominados J e K,
respectivamente. Quando o flip-flop recebe nível lógico alto para o J (J=1) e nível lógico alto para
o K (K=1), a saída ficará oscilando entre nível lógico alto e nível lógico baixo (evento denominado
toogle).
Veja, na Tabela 12, a tabela verdade do flip-flop JK e, na Figura 19, o seu diagrama de tem-
po.
Flip-flop tipo T
Quando as entradas de um flip-flop JK estiverem ambas no nível lógico baixo, as saídas fu-
turas serão iguais às saídas atuais e, quando as entradas de um flip-flop JK estiverem ambas no
nível lógico baixo, as saídas futuras serão complementadas. Com essa configuração, o flip-flop
JK poderá ser utilizado como um divisor de frequência, um oscilador etc. Temos no mercado um
flip-flop denominado de flip-floptipoT, que tem exatamente essa função e é formado por um
flip-flop JK com as entradas curto-circuitadas.
Observe, na Figura 20, um exemplo de flip-flop tipo T e, na Tabela 14, sua tabela verdade.
SET
T Q
CLK ~Q
RESET
T_FF
Flip-flop tipo D
Quando as entradas de um flip-flop JK estiverem complementadas, ou seja, se J=1, então
K=0,ou se J=0, então K=1, as saídas futuras serãoiguaisà entrada J. A denominação desse flip-flop
no mercado é flip-flop tipo D e eleé utilizado como elementos de memória.
Observe, na Figura 21, um exemplo de flip-flopU6
tipo D e, na Tabela 15, sua tabela verdade.
SET
D Q
CLK ~Q
RESET
D_FF
Contadores
Um contador digital é formado por um conjunto de flip-flops tipo T(em alguns casos, pode-
-se utilizar também Flip-flops tipo D) interligados de forma a gerar saídas em uma sequência
predeterminada.
Os contadores podem ser síncronos ou assíncronos e ainda poderão contar de forma cres-
cente (up) ou decrescente (down).
A quantidade de elementos do tipo flip-flop e as configurações de interligação definirão
se o contador irá contar na base decimal (contador de década), hexadecimal ou em outra base
qualquer. O que muda é a hora da mudança do último algarismo para o zero.
© U2 - Sistemas Digitais 105
Ter um contador assíncrono não significa que ele não possui um sinal de clock. Um con-
tador sempre deverá ser controlado por pulsos de clock. O que acontece é que os pulsos não
serão simultâneos nos flip-flopsporque a entrada de clock deum flip-flop vizinho será a saída Q
de outroflip-flop. O único flip-flop que estará conectado diretamente ao gerador de pulsos de
clock do sistema é o primeiro.
Veja o diagrama de blocos de um contador assíncrono representado na Figura 22:
Veja que a saída Qa faz parte do dígito menos significativo, enquanto que a saída Qd cor-
responde ao bit mais significativo.
Como você está estudando Organização e Arquitetura de Computadores e não Sistemas
Digitais, ou ainda Circuitos Digitais, os outros tipos de contadores, como, por exemplo, os conta-
dores síncronos, decrescentes, representações como diagrama de estados ou ainda diagramas
de tempo, não serão apresentados. Para maiores informações sobre tais dispositivos digitais,
consulte a bibliografia básica e também a bibliografia complementar.
Registradores
Os registradores são subsistemas digitais capazes de manipular e armazenar dados.Estão
presentes em quase todos os dispositivos digitais e podem ser de quatro tipos: registrador se-
rial-serial,em que os dados entram no subsistema de forma serial e saem do mesmo também no
formato serial; registrador paralelo-paralelo, que tem como função receber e enviar os dados de
forma paralela (vários dígitos binários por vez); registrador serial-paralelo, que recebe os dados
no padrão serial e envia pelas suas saídas paralelas; e, por fim, registrador paralelo-serial, em
que os dados são registrados por meio de uma entrada paralela e transmitidos no modo serial.
Veja o diagrama de blocos de cada um desses tipos de registradores:
Séries TTL
No ano de 1964, a Texas Instrument lançou a primeira linha de circuitos integrados TTL
(transistor-to-transistor), as séries 74/54. Outras indústrias empregaram o mesmo sistema dei-
dentificação com diferentes prefixos:
• Texas instruments SN.
• National Semiconductors DM.
• Signetics S.
Um exemplo é a Porta 7408: DM7408,que equivale à Porta SN7408 e também à Porta
S7408.
Observe, na Tabela 17, as características das séries de componentes eletrônicos digitais
TTL:
8. QUESTÕES AUTOAVALIATIVAS
Confira, a seguir, as questões propostas para verificar o seu desempenho no estudo desta
unidade:
1) Conceitue o termo “sistemas digitais” e cite alguns exemplos de sua aplicação.
2) Os sistemas digitais utilizam as portas lógicas para a construção dos circuitos digitais. Pode-se afirmar que elas
são fundamentais na arquitetura dos computadores atuais. Explique o que são as portas lógicas.
3) Como continuidade da questão anterior,apresente o funcionamento das seguintes portas lógicas: AND, OR,
NOT, NAND, NOR, XOR, NXOR. Explique cada uma delas e apresente as respectivas tabelas verdades.
5) Como é possível desenhar um circuito digital por meiode uma expressão booleana? Cite exemplos.
6) Como é possível partir de um diagrama esquemático de um circuito digital e escrever uma expressão booleana?
Cite exemplos.
© U2 - Sistemas Digitais 109
7) Conceitue e cite uma aplicação para os mapas de Veitch-Karnaugh?
8) Como é estruturadoum mapa de Veitch-Karnaugh com duas variáveis de entrada? Cite um exemplo.
9) Como é estruturadoum mapa de Veitch-Karnaugh com três variáveis de entrada? Cite um exemplo.
10) Como é estruturadoum mapa de Veitch-Karnaugh com quatro variáveis de entrada? Cite um exemplo.
11) Considerando os mapas de Veitch-Karnaugh, o que são e como são feitos os enlaces?
12) Como é possível extrair uma expressão booleana a partir dos enlaces dos mapas de Veitch-Karnaugh?
13) Os multiplexadores são utilizados para escolher uma de suas entradas para estabelecer a conexão com a sua
única saída. Explique o funcionamento de um multiplexador e cite um exemplo.
15) Muitas vezes um codificador pode trabalhar em conjunto com um decodificador. Apresente uma soluçãoem que
sejanecessáriaa aplicação dos dois circuitos interligados. Aproveite para explicar o funcionamento dos circuitos
citados.
16) Explique os codificadores BCD-Display de sete segmentos e cite um exemplo de sua aplicação.
17) Como são utilizados os circuitos somadores? Qual é a diferença entre um circuito meio-somador e um somador
completo?
18) Como são utilizados os circuitos subtradores? Qual é a diferença entre um circuito meio-subtrador e um circuito
subtrador completo?
19) Como pode ser feita a soma de dois valores de quatro bits? Apresenteum exemplo desta aplicação.
20) Um flip-flopé constituído por portas lógicas, porém é considerado um circuito sequencial, ou seja, não é um
circuito combinacional. Explique o motivo dessa terminologia e apresente algumas aplicações que dependem
dos flip-flops.
21) Conceitue e cite quatro exemplos de configuração dos registradores estudados nesta unidade.
22) Conceitue e cite ao menos um exemplo de aplicação que utiliza contadores em seus circuitos.
23) Nos sistemas digitais, podemos dividir os circuitos em combinacionais ou sequenciais. Qual é a diferença entre
um circuito combinacional e um circuito sequencial?
24) Onde e como podemos comprar os componentes digitais estudados nesta unidade? Qual é a nomenclatura
utilizada para a compra destes componentes?
25) Considere a tabela verdade a seguirpara escrever a expressão booleana equivalente e simplificada, utilizando
para isso a ferramenta Mapa de Veitch-Karnaugh.
S= S=
9. CONSIDERAÇÕES
Você teve a oportunidade de aprender, nesta unidade, um pouco sobre os sistemas digi-
tais, sobre os conceitos e componentes utilizados nestes circuitos e sobre as suas aplicações.
De forma simplificada, pode-se afirmar que as portas lógicas são elementos físicos (com-
ponentes) que implementam as expressões booleanas. As expressões booleanas são escritas
com o objetivo de formalizar a solução de um problema utilizando circuitos digitais.
São exemplos de componentes digitais e também de circuitos digitais os multiplexadores,
os demultiplexadores, os codificadores, os decodificadores, os somadores, os subtradores, os
flip-flops etc.
Os computadores digitais são implementados por meio dos circuitos digitais. Conhecer o
hardware é fundamental para todo profissional da área de tecnologia da informação, seja ele
um usuário de sistema, um desenvolvedor ou um gestor.
Agora você já está pronto para continuar os estudos na próxima unidade, em que tratare-
mos sobre os processadores. Bons estudos.
10. E-REFERÊNCIAS
Lista de figuras
Figura 1 Exemplos de Portas Lógicas. Disponível em: <http://www.dglnet.com.br/users/amejvkii/page5.htm>. Acesso em: 18
maio 2005.
Figura 2 Circuito Digital. Disponível em: <http://www.inf.ufsc.br/ine5365/portlog.html>. Acesso em: 22 nov. 2007.
Figura 3 Circuito meio-somador. Disponível em: <http://www.inf.ufsc.br/ine5365/portlog.html>. Acesso em: 22 nov. 2007.
Figura 42 Diagrama de tempo do flip-flop RS. Disponível em: <http://pt.wikipedia.org/wiki/Ficheiro:SR_FF_timing_diagram.
png>. Acesso em: 18 out. 2012.
Figura 44 Diagrama de tempo do flip-flop JK. Disponível em: <http://upload.wikimedia.org/wikipedia/commons/8/85/JK_FF_
impulse_diagram.png>. Acesso em: 18 out. 2012.
© U2 - Sistemas Digitais 111
1. OBJETIVOS
• Compreender o funcionamento dos processadores e microcontroladores.
2. CONTEÚDOS
• Conceitos de processadores e microcontroladores.
• Organização de processadores.
• Barramentos.
• Instruções.
• Endereçamentos de operandos.
• Paralelismo.
• Arquiteturas Cisc e Risc.
4. INTRODUÇÃO À UNIDADE
Na unidade anterior, você conheceu um pouco sobre os sistemas digitais que compõem os
computadores e compreendeu conceitos importantes.
Nesta unidade, vamos, basicamente, estudar os processadores e como eles se apresentam
no mercado.
A função de um computador é executar tarefas com a finalidade de resolver problemas.
Uma tarefa pode ser executada por meio de uma sequência ordenada de instruções de
máquina. Uma instrução define como será a atividade do processador para executar uma tarefa
como, por exemplo, somar dois números inteiros.
O processador, como o próprio nome sugere, é o componente responsável pelo proces-
samento de instruções e de dados para que o computador execute as tarefas. Assim, não é raro
encontrar em algumas literaturas a associação do processador com o cérebro humano.
O processador pode ser dividido em três partes:
R
e
g
ULA i
s
t
r
a
d
o
UC r
e
s
Processador
Figura 1 Processador.
2. UC – Unidade de Controle
Unidade de controle é responsável pelo controle da execução de qualquer instrução den-
tro de um processador. É a UC que define o que tem que ser feito em cada instante, para a cor-
reta execução de uma instrução.
Um exemplo simples é quando colocamos um dado no barramento, ou quando fazemos
com que um registrador ou ULA retire esse dado do barramento e carregue-o para dentro de si.
3. Registradores
Imagine os registradores como pequenas memórias dentro do processador. Eles têm a função
de armazenar os dados que estão sendo processados em um determinado momento e, também,
armazenar informações importantes para a execução de uma instrução.
© U3 - Processadores 115
5. BARRAMENTO
Barramento pode ser definido como um conjunto de condutores por meio dos quais as
informações trafegam de uma parte do computador para outra. Fazendo uma comparação com
o nosso dia-a-dia, um barramento está para os módulos de um sistema de computador, assim
como as estradas estão para as cidades e tem os carros como bits que trafegam entre os módu-
los.
Há vários barramentos dentro de um computador, no momento estamos citando o barra-
mento interno ao processador.
Unidade de
Controle
ULA
Registradores
Memória
Principal Discos Impressora
Barramento
6. INSTRUÇÕES
Instrução é a representação elementar que gera uma ação em um computador. Determina
o que o computador deve fazer naquele instante. Um programa é composto por muitas instru-
ções, que são executadas de forma ordenada pelo computador.
Agora, veremos com mais detalhes como podemos trabalhar com as instruções.
Para escrever uma instrução que será executada por um computador, deve-se primeiro
informar qual é a instrução que será executada e depois os dados que estarão envolvidos no
processo da sua execução. A escrita pode ser dividida em várias partes: uma delas é o “código
de operação,” também conhecido como OPCODE, que é a instrução propriamente dita, e a(s)
outra(s) parte(s) são os operandos.
Código de operação
OPCODE é um código binário que identifica a instrução. É o código responsável por trans-
mitir a informação do que deverá ser feito no processador.
Este código, durante a execução da instrução, fica armazenado no registrador de instru-
ções e é utilizado por uma unidade conhecida como controlador sequencializador, que envia
mensagens a todas as estruturas envolvidas no processamento dos dados naquele instante.
Operando
Campo do operando, ou campos dos operandos, para alguns casos, contém o(s) dado(s)
que será(ao) processado(s) pela instrução do código de operação.
© U3 - Processadores 117
Muitas vezes, em vez de conter um dado propriamente dito, este campo aponta ou para a
localização de tal dado na memória do computador ou para um registrador que contenha esse
dado propriamente dito.
Assim, como algumas instruções possuem um ou mais campos para o operando, elas po-
dem por sua vez não fazer referência a nenhum operando, e para esses casos dizemos que essas
instruções não fazem referência à memória.
Tipos de instruções
As instruções podem ser de diferentes tipos. Observe-as a seguir:
1) Matemáticas e Lógicas: soma, subtração, and, or, not etc.
2) Movimentações de dados: mover um dado de um registrador para outro, de um regis-
trador para a memória, da memória para um registrador.
3) Entrada e saída: referem-se às instruções relacionadas, ou seja, comunicação da CPU
com os dispositivos de entrada e saída.
4) Controle: instruções de salto (para desviar a execução sequencial de instruções), pa-
radas, condicionais.
Execução de instruções
A execução de uma instrução pelo processador ocorre da mesma forma que a de uma
linha de produção, ou seja, estágios.
Observe os estágios a seguir:
1) S1: busca da instrução na memória do computador.
2) S2: decodificação da instrução pelo processador.
3) S3: busca do operando na memória do computador.
4) S4: execução da instrução pelo processador.
5) S5: escrita do resultado, normalmente, na memória do computador.
Os estágios anteriores são independentes. Enquanto uma instrução está no segundo está-
gio, a unidade de controle pode colocar a próxima instrução no primeiro estágio e assim suces-
sivamente.
Essa forma de execução de instruções é conhecida como Pipeline, em que as instruções
são executadas simultaneamente. Porém, cada uma em um estágio diferente da outra, como em
uma linha de montagem.
Tempo
7. ENDEREÇAMENTOS
Você compreendeu o que são e como funcionam as instruções. Agora, você verá como é
feito para localizar um operando.
Endereçamento é a indicação do local onde o operando se encontra na memória do com-
putador.
Existem vários tipos de endereçamento. A seguir, veremos esses tipos e como funcionam.
Endereçamento imediato
O valor do campo operando é o próprio dado, que é utilizado quando o valor do operando
é uma constante.
Como o dado não precisa ser procurado na memória, a execução da instrução fica mais
rápida. Porém, o tamanho do dado fica limitado ao tamanho do campo do operando.
Endereçamento direto
Endereçamento direto é, também, conhecido como modo direto. Neste endereçamento,
o valor do campo operando é o endereço do dado armazenado na memória principal.
Utilizado para operandos que variam seu valor durante a execução do programa, é uma
técnica mais lenta do que o endereçamento direto e mais rápida do que o endereçamento indi-
reto (próximo modo de endereçamento que estudaremos).
Este endereçamento limita-se ao campo do operando, que muitas vezes não consegue
endereçar toda a memória do computador, pelo fato de ter um tamanho reduzido.
Endereçamento indireto
No endereçamento indireto, ou modo indireto, o campo operando faz referência a uma
posição de memória que contém o endereço do operando propriamente dito. Assim, o dado
apontado na memória principal é um ponteiro para o dado propriamente dito.
© U3 - Processadores 119
Para esse caso não existe uma limitação de células endereçáveis, pois o endereço da me-
mória principal não fica limitado ao tamanho do campo operando, como no modo direto.
O modo indireto é mais lento do que o modo direto por realizar mais acessos à memória
(um para buscar o endereço (ponteiro) e outro para buscar o dado).
8. PARALELISMO
Para executar uma tarefa, o processador faz uma divisão de cada passo que será executa-
do. Esses passos são chamados de estados, os quais fazem com que as instruções possam ser
executadas e/ou controladas por partes menores.
O ritmo do processador é determinado pelo clock, definindo assim o tempo que irá gastar
para a execução de cada estado. O clock funciona como um relógio gerando pulsos (0(s) e 1(s))
em uma determinada frequência.
Quanto mais alta a frequência do clock, mais rápido o processamento dos dados.
Por exemplo: processador PIV 2.0 GHz (2 GigaHertz), Atlhon 1.8 GHz (1.8 GigaHertz)
etc.
Os processadores evoluíram rapidamente se comparado às tecnologias de memórias e,
assim, muitas vezes ele tem que ficar aguardando, sem operação nenhuma, a memória disponi-
bilizar os dados para que ele continue o processamento.
Multiprocessadores
Multiprocessadores (veja Figura 5-a) são processadores interligados que executam instru-
ções de um mesmo programa, simultaneamente, e compartilham uma mesma memória. Isso
é possível graças à divisão das instruções em estágios, como apresentado anteriormente e é
muito útil por aumentar, consideravelmente, o desempenho do sistema durante a execução de
um programa.
Multicomputadores
Multicomputadores (veja Figura 5-b) são processadores interligados que executam ins-
truções de um mesmo programa, simultaneamente. Contudo, apesar de compartilharem uma
memória em comum, para a troca de mensagens, cada processador possui sua própria memória
e trabalha como se fosse um computador independente, melhorando ainda mais o desempenho
do processamento.
Os multicomputadores surgiram para solucionar um problema que os projetistas de com-
putadores enfrentavam com a conexão de muitos processadores a uma mesma memória.
© U3 - Processadores 121
9. QUESTÕES DE PROJETOS
Além das instruções contidas dentro do processador, o computador também pode exe-
cutar instruções que serão implementadas por algum software. Observe um exemplo de como
funciona: imagine que uma calculadora só é capaz de efetuar somas. Com esta única função
presente no seu hardware, um usuário pode utilizar várias vezes a operação de soma para efe-
tuar uma operação de multiplicação. Dessa mesma forma, podemos encontrar instruções que
estão dentro do processador (como a operação de soma do nosso exemplo), ou instruções que
estão fora do processador, implementado na forma de programa (como é o caso do usuário que
utiliza várias vezes a soma para fazer uma multiplicação) só que dessa vez o usuário é a própria
máquina.
Assim, duas estratégias são possíveis na construção do decodificador de instruções da
unidade de controle:
Wired logic: as instruções são todas implementadas em hardware.
Microcódigo: apenas um grupo básico de instruções são implementadas em hardware, as
demais são montadas por meio de software, que usam as instruções básicas implementadas no
hardware.
CISC
A tecnologia CISC é mais antiga e tem como característica um grande número de instru-
ções complexas. A idéia inicial era de que quanto mais instruções fossem implementadas no
processador, melhor seria o seu desempenho e sua capacidade de processamento.
Frequentemente, a maior parte das instruções utilizadas pelo processador são instruções
simples e quase sempre as mesmas (compondo um grupo reduzido de instruções). Dessa forma,
observou-se que um novo projeto, com um hardware mais simples e com menos instruções,
deixando as instruções menos utilizadas implementadas em software poderia ser uma boa pro-
posta. Surge assim a tecnologia RISC, como uma proposta de melhorar os projetos de hardware,
deixando-os mais simples e mais eficientes.
RISC
RISC é uma tecnologia que possui um número de instruções reduzido, ou seja, um número
de instruções bem menor do que a tecnologia CISC, na qual somente as instruções utilizadas
com mais frequência são implementadas dentro do processador.
Normalmente, essas instruções são simples. As instruções mais complexas e que não são
utilizadas frequentemente são implementadas em software.
Como a arquitetura fica menor e mais simples, o tempo de execução das instruções dimi-
nui bastante, havendo um aumento considerável na velocidade do processamento e deixando o
hardware mais barato, uma vez que simplifica bastante o seu projeto.
10. MICROCONTROLADORES
Microcontroladores, também conhecidos como computadores em um chip, possuem to-
das as características de um processador, além de contar com dispositivos de entrada e saída
para poder ler dados do ambiente externo e também indicar a saída do processamento, seja
ligando ou desligando algum componente ou indicando visualmente (com um conjunto de leds
ou display) o resultado do seu processamento, Eles podem ter conversores analógicos e outros
dispositivos integrados para proporcionar uma pronta aplicação para tarefas de controle.
Os microcontroladores não possuem as mesmas capacidades de um processador, tanto
para efetuar tarefas genéricas quanto no que diz respeito ao volume de processamento e arma-
zenamento temporário, mas pela sua simplicidade possui um ótimo custo-benefício e, também,
desempenho para tarefas simples de controle e de automação.
4) Como um único barramento pode fazer a conexão com vários módulos? Explique.
6) Uma instrução é a representação elementar que gera uma ação em um computador. Ela determina o que o
computador deve fazer naquele instante. Um programa é composto por muitas instruções, que são executadas
de forma ordenada pelo computador. As instruções podem ser divididas em várias partes. Explique-as e cite
alguns exemplos do seu funcionamento.
7) Como o processador executa uma instrução? Cite um exemplo da execução de uma instrução.
9) Explique os tipos de endereçamentos apresentados nesta unidade ecite um exemplo para cada um.
11) Defina o termo clock e estabeleça uma relação entre clock e performance de um processador.
12) Qual é a diferença existente entre um sistema multicomputadores e um sistema multiprocessadores? Cite
exemplos.
14) Considerando-se as tecnologias CISC e RISC, podemos afirmar que uma tecnologia é melhor do que a outra?
Justifique.
15) Qual é a diferença existente entre um microprocessador e um microcontrolador? Qual é a aplicação de cada
um deles?12.
12. CONSIDERAÇÕES
Com o estudo dos processadores e dos conteúdos relacionados, muitos conceitos devem-
ter ficado mais claros para você, porém outras dúvidas podem surgir.
Nas próximas unidades, estudaremos outros conceitos importantes relacionados àarqui-
tetura e à organização de computadores. Espero que, ao término dos estudos da últimaunidade,
todas as peças desse grande “quebra-cabeça” se encaixem. Bons estudos!
13. E-REFERÊNCIAS
Figura 3 Diagrama funcional da UCP: Disponível em: <http://venus.rdc.puc-rio.br/rmano/comp8ucp.html>. Acesso em: 22 nov.
2007.
1. OBJETIVO
• Compreender as diversas memórias presentes no computador.
2. CONTEÚDOS
• Definição e caracterização de memórias.
• Organização de memórias.
• Endereçamento de memórias.
• Hierarquia de memórias.
• Memória principal e memória secundária.
4. INTRODUÇÃO À UNIDADE
Na unidade anterior, você conheceu os registradores, o que são e como funcionam as ins-
truções; compreendeu também os vários tipos de endereçamento.
Nesta unidade, você compreenderá como funciona a memória de um computador.
5. MEMÓRIAS DE UM COMPUTADOR
As memórias de um computador são elementos com a capacidade de armazenar dígitos
binários zero(s) e um(s), chamados de bits. Por meio da combinação dos bits, podemos repre-
sentar qualquer informação.
Os bits podem ser agrupados de diferentes formas (4 bits, 8 bits, 16 bits, 32 bits
etc.).
Nibble é o conjunto de 4 bits, e byte o conjunto de 8 bits.
O termo PALAVRA é atribuído ao conjunto de bits que armazena uma informação (PALA-
VRA = UNIDADE DE INFORMAÇÃO). O tamanho de uma PALAVRA pode variar de uma arquitetu-
ra para outra e, normalmente, contém o número de bits suficiente para armazenar um número
inteiro e uma instrução.
Um computador possui vários tipos de memórias e cada uma desempenha uma função es-
pecífica. Os diferentes tipos de memória estão organizados de forma hierárquica e interligados
por meio de um barramento.
6. CARACTERÍSTICAS DA MEMÓRIA
Dependendo do tipo de tecnologia empregada na memória, teremos diferentes caracte-
rísticas e aplicações. Observe, a seguir, a capacidade, a volatilidade e o tempo de acesso.
Capacidade
A capacidade de uma memória é calculada levando-se em conta o número de posições de
memória, multiplicado pelo número de células de memória existente em cada posição.
C=PXB
C = Capacidade.
P = Posições de memória.
B = Bits (ou quantidade de células de memória por posição).
Volatilidade
Memória volátil: esta memória perde suas informações quando a alimentação é cortada.
Por exemplo, quando estamos trabalhando com o computador e acaba a energia elétrica, todas
as informações que estavam armazenadas na memória volátil serão perdidas.
Memória não volátil: é a memória que armazena as informações que foram gravadas,
mesmo após o corte da energia elétrica.
© U4 - Memórias 127
Tempo de acesso
Tempo necessário para transportar os dados que estão na memória do computador para
o barramento. Quanto menor o tempo de acesso de uma memória, tanto maior será seu de-
sempenho.
A constituição das memórias pode variar de acordo com cada tipo. Os tipos mais comuns
são as memórias eletrônicas, magnéticas e ópticas.
7. TECNOLOGIAS DE MEMÓRIAS
Há várias maneiras de se fabricar memórias, e cada uma resulta em memórias com carac-
terísicas diferentes.
Flash
Memória Flash é uma memória de computador do tipo EEPROM que permite que múlti-
plos endereços sejam apagados ou escritos numa só operação.
Atualmente, a memória flash está cada vez mais sendo utilizada nos computadores como,
por exemplo, câmeras digitais, palms etc.
Podemos entender a memória flash como uma evolução da memória EEPROM. Enquanto
a EEPROM precisa ser totalmente apagada para ser reprogramada, a memória FLASH pode ser
apagada parcialmente, proporcionando, assim, maior facilidade na hora de fazer alterações em
sua programação.
Endereçamento
Uma memória, geralmente, é formada por um conjunto de linhas e colunas (matriz). Cada
intersecção das linhas com as colunas é chamada de posição de memória e contém uma ou mais
células de memórias capazes de armazenar um bit cada.
Para endereçar uma posição de memória, o barramento de endereço fornece, de forma
codificada, a linha e a coluna que será acessada, para que a operação indicada pelo barramento
de controle aconteça.
Controle
O controle de uma memória é realizado por meio de um conjunto de bits que são combi-
nados de forma a configurar a memória para leitura, escrita ou outras funções específicas como,
por exemplo, modo de programação.
Hierarquia de memórias
Veja na figura, a seguir, a organização hierárquica das memórias. E observe que quanto
mais próximo do topo da pirâmide, as memórias se encontram mais próximas do processador.
Registradores
Cache
Cache
Memória Principal
Disco Magnético
Custo Diminui
Registradores
Os registradores são dispositivos de armazenamento voláteis de dados. A tecnologia de
sua fabricação proporciona alto desempenho. Eles estão localizados dentro do processador,
com a capacidade de armazenamento de uma palavra de dado.
Outro fator que contribui para a alta velocidade dos registradores é sua localização dentro
do próprio chip do processador.
A função dos registradores é armazenar temporariamente dados intermediários durante
um processamento. Além disso, todos os dados e instruções são copiados para os registradores
antes de serem executados pela ULA.
Memória cache
As memórias cache localizam-se entre a memória principal e os registradores do proces-
sador.
Enquanto a memória principal constitui-se pela tecnologia RAM DINÂMICA (memória ca-
pacitiva), a memória cache é formada por módulos de memória RAM ESTÁTICA, proporcionando
assim melhor desempenho.
Memória Principal
A memória principal é constituída pela tecnologia RAM DINÂMICA e tem uma capacidade
de armazenamento maior do que a memória cache. Antes de serem executados, todos os pro-
gramas e os dados precisam estar armazenados na memória principal. A partir daí é que os da-
dos serão copiados para os níveis superiores (Cache e Registradores) de acordo com a demanda.
Memória Secundária
As memórias secundárias armazenam os dados e os programas de um computador. É uma
memória não-volátil. Os discos rígidos magnéticos (hard disk), também conhecidos como win-
chester, é o meio mais utilizado para este tipo de armazenamento.
Quando um computador é ligado, o processo de inicialização, também conhecido como
boot, verifica todos os dispositivos presentes no sistema e depois procura o sistema operacional
em uma das unidades de disco instalada.
Depois de verificados, os dados e as instruções dos programas são copiados para a memó-
ria principal do computador para que sejam utilizados.
Os programas e os dados para serem executados deverão estar na memória principal do
computador.
A memória secundária também é constituída por outros tipos de discos e fitas magnéticas e
ópticas. No entanto, o seu funcionamento será estudado com mais detalhe na próxima unidade.
© U4 - Memórias 131
9. QUESTÕES AUTOAVALIATIVAS
Confira, a seguir, as questões propostas para verificar o seu desempenho no estudo desta
unidade:
1) As memórias são amplamente utilizadas no universo dos dispositivos digitais. Elas são utilizadas pelos compu-
tadores de grande porte, computadores pessoais, celulares, máquinas fotográficas, videogames dentre outros.
Muitos usuários confundem os termos utilizados para as especificações ou mesmo referências desses impor-
tantes chips, além de ficarem perdidos quanto aos seus tipos e aplicações. Um exemplo é quando perguntamos
a um usuário comum quanto ele tem de memória em seu computador. Alguns responderão a quantidade de
memória primária, outros o tamanho do disco rígido. Sendo assim, conceitue o termo memória e apresente os
tipos de memórias que foram apresentados nesta unidade.
2) Uma memória pode ser identificada por sua capacidade de armazenamento. Explique o que significa capacida-
de de memória e cite um exemplo de como ela poderá ser calculada.
3) Diferencie a tecnologia de memória volátil da tecnologia de memória não volátil. Cite uma aplicação para cada
uma das tecnologias em questão.
4) Duas tecnologias podem ser utilizadas para a construção de memórias. Uma é a utilização deflip-flops e outra é
a utilização de elementos capacitivos. Explique as principais diferenças das duas tecnologias e cite um exemplo
de aplicação para cada uma delas.
7) Explique a hierarquia existente entre as memórias utilizadas por um computador PC padrão. Cite exemplos.
10. CONSIDERAÇÕES
Você acabou de estudar as tecnologias de memórias utilizadas nos computadores
atuais,sua organização e a relação existente entre elas eos processadores. Agora, você continua-
ráseus estudos e terá a oportunidade de conhecer os dispositivos e as interfaces que propor-
cionam a entrada e a saída de informações para que os processadores e as memórias possam
funcionar adequadamente.
Bons estudos!
11. E-REFERÊNCIAS
Figura 2 Hierarquia dos dispositivos de memória: Disponível em: <http://cwx.prenhall.com/bookbind/pubbooks/tanenbaum2/
chapter0/deluxe.html>. Acesso em: 22 nov. 2007.
1. OBJETIVO
• Conhecer os dispositivos de entrada e saída de dados dos computadores.
2. CONTEÚDOS
• Dispositivos de entrada.
• Dispositivos de saída.
• Tipos de comunicação.
• Interrupção.
• Acesso direto à memória.
4. INTRODUÇÃO À UNIDADE
Nas unidades anteriores, você pôde ver como o computador processa os dados, desde os
circuitos digitais até o processamento dos dados e os detalhes das implementações das memó-
rias.
Agora, vamos entender como funcionam os principais dispositivos de entrada e saída.
Tudo está interligado por meio de um barramento, proporcionando a troca de dados entre
os módulos.
Entre um dispositivo de entrada (teclado, winchester) e saída (vídeo, impressora, winches-
ter) e o barramento existe um circuito de interface, que é o hardware que controla as operações
específicas de cada dispositivo de acordo com os exemplos que serão apresentados na sequên-
cia.
O circuito de interface é importante. Ele é o responsável pelo controle e interfaceamento
entre os dispositivos de entrada e saída e o computador.
Na prática, temos como exemplo de circuito de interface:
• placa de vídeo que liga o monitor ao computador;
• placa de um controlador de disco (muitas vezes integrada à placa mãe);
• controladora de comunicação serial e paralela para conectar, por exemplo, o mouse e
uma impressora respectivamente;
6. TIPOS DE COMUNICAÇÃO
O computador pode fazer a comunicação com os dispositivos de duas formas:
• Comunicação serial: os bits são transferidos de forma sequencial (bit a bit) até que a
comunicação acabe. Para controlar o início e o fim da transmissão de dados, existem
bits de controle trafegando pelo canal de comunicação serial juntamente com os dados.
• Comunicação paralela: os bits trafegam de forma paralela (normalmente byte a byte)
pelo canal de comunicação. Embora esse meio de comunicação seja mais rápido, ele
sofre maiores influências do meio externo e, portanto, não pode ser muito extenso.
O meio de comunicação serial é mais lento do que a comunicação paralela, porém, sofre
menos interferências do meio externo.
Vejamos, agora, o que é uma interrupção.
Para que o processador possa trabalhar sem ficar checando se algum dispositivo está que-
rendo lhe transmitir algo, existe um sistema denominado interrupção.
Assim, se algum dispositivo de entrada e saída necessitar da atenção do processador, o con-
trolador envia um pedido de interrupção para que o processador interrompa o que ele está fa-
zendo e passe a tratar os dados do dispositivo que solicitou a interrupção. Depois de solucionar o
problema, ele continua com o processamento anterior.
Por outro lado, se mais de um dispositivo solicitar a interrupção ao mesmo tempo, uma
determinada hierarquia, que define as prioridades dos dispositivos, deverá ser respeitada. Nor-
malmente, é um número que indica a prioridade de cada interrupção.
DMA
O DMA (Acesso direto à memória) é uma técnica utilizada para proporcionar ao sistema
a possibilidade de transferência de dados de um dispositivo de entrada e saída ou da memória
para outro dispositivo, sem a necessidade do controle do processador.
O DMA é implementado na controladora do dispositivo e, algumas vezes, pode assumir o
controle de um barramento.
Teclado
O teclado é uma matriz de contados dispostos de forma organizada para que cada posição
represente um caractere ou função.
Quando o contato de um determinado ponto é fechado, o controlador do teclado gera
uma interrupção para o tratamento da função solicitada. Para que o sistema identifique qual te-
cla foi pressionada (qual contato foi fechado) sem que seja necessário um número muito grande
de fios, a informação que deverá ser passada do teclado ao seu controlador ocorre de forma
codificada.
Os códigos mais utilizados para a codificação da tecla pressionada são: ASCII (American
Standard Code for Information Interchange) e o EBCDIC (Extended Binary Coded Decimal Inter-
change Code).
A tecla pressionada é reconhecida pelo programa de controle do teclado e depois a mes-
ma tecla é convertida para um dos códigos anteriores.
Figura 2 Teclado.
7. MOUSE
O mouse é a forma mais comum de se mapear a tela, permitindo que o usuário do sistema
aponte para qualquer um dos seus pontos. A tela do computador é formada por muitos pontos
que, juntos, formam uma imagem. Por meio do mouse, é possível passar por esses pontos para
selecionar ou arrastar objetos na tela do computador, facilitando, assim, muitas tarefas.
Veja, a seguir, os três tipos mais comuns de mouses que podem ser encontrados no mer-
cado:
• Mecânico: possui duas rodas de borracha saliente, com seus eixos perpendiculares um
ao outro. O movimento de cada roda é monitorado por um resistor variável (potenciô-
metro) que indica a sua movimentação.
• Ópticos: não possui rodas e nem bola. Em lugar desses é usado um LED (Diodo Emissor
de Luz) e um foto sensor na parte debaixo. Esse mouse é usado sobre uma superfície de
plástico que contém uma grade retangular de linhas próximas. O movimento do mouse
sobre essa superfície causa um cruzamento entre as linhas da grade que é identificado
pelo fotodetector.
© U5 - Dispositivos de Entrada e Saída 137
• Óptico-mecânico: tem uma bola de borracha que aciona duas engrenagens alinhadas
a um ângulo de 90 graus uma em relação à outra. Com o movimento do mouse as en-
grenagens giram e os pulsos de luz atingem os sensores que registram o movimento.
Figura 3 Mouse.
8. MONITOR
O monitor é o dispositivo responsável pela saída visual de informações oriundas do com-
putador.
Existem diversos tamanhos de monitores disponíveis no mercado. Os mais comuns são
os de 14, 15 e 17 polegadas. Essa medida é, na realidade, referente ao tamanho da diagonal do
monitor conforme a figura a seguir.
O tipo de monitor mais comum é o monitor CRT (Cathode Ray Tube) que funciona de ma-
neira muito semelhante ao de uma televisão.
O monitor CRT é composto por um tubo e uma tela que contêm camadas de fósforos;
esses fósforos quando atingidos por elétrons disparados por um canhão localizado no fundo do
tubo fazem com que uma luz seja emitida com o foco muito bem definido.
O canhão, por sua vez, percorre toda a tela do tubo iluminando os fósforos responsáveis
pela formação das imagens. Esse percurso é repetido a todo instante para atualizar a imagem.
Esse processo é conhecido como varredura.
O canhão possui três feixes de cores (azul, verde e vermelho) e a combinação dessas cores
gera todas as outras cores necessárias para a formação da imagem.
Esses três feixes trabalham simultaneamente e em conjunto, atingindo assim o mesmo
fósforo, e definindo a cor resultante da luz a ser gerada.
O percurso do canhão é da esquerda para a direita e de cima para baixo. Ele faz uma var-
redura constante de acordo com uma frequência horizontal (número de linhas que ele consegue
varrer em um segundo) e uma frequência vertical (número de vezes que o canhão consegue
varrer toda a tela da primeira linha na posição mais à esquerda até a última linha na posição
mais à direita) por segundo.
Resolução do monitor
A resolução do monitor é definida pelo número de linhas horizontais e verticais que ele
possui. Quanto maior o número de linhas, melhor será a definição, pois serão utilizados mais
pontos (também conhecidos como pixels) para formar a mesma imagem. Quando dizemos que
um monitor possui a resolução de 800X600 significa que ele possui 800 colunas e 600 linhas
para formar uma imagem.
Outro fator que interfere na qualidade da imagem é o DOT PITCH, que é a distância entre
os pontos que formam a imagem; quanto menor for a distância, melhor será a qualidade da
imagem do monitor.
Outra tecnologia de monitores que está cada vez mais popular é o LCD (Liquid Crystal
Display) ou monitores de cristal líquido. Esses monitores são baseados no reflexo da luz em um
conjunto de substâncias formadas por materiais líquidos.
As moléculas de cristal líquido ficam distribuídas na tela em forma de bolhas orientadas
eletricamente. Elas serão responsáveis pela passagem da luz que irá compor as imagens.
9. IMPRESSORAS
Como você já sabe, as impressoras são responsáveis pela saída de dados na forma impres-
sa.
Agora, para conhecermos um pouco mais sobre as impressoras, veremos alguns de seus
tipos, diferenciando custos e aplicações.
As impressoras podem ser classificadas em:
• Alfanuméricas: que imprimem caracteres.
• Gráficas: que imprimem pontos, formando figuras ou letras por meio desses pontos.
Para medir a velocidade de impressoras alfanuméricas, utilizamos a unidade cps (carac-
tere por segundo), enquanto que para medir a velocidade em impressoras gráficas podemos
utilizar a unidade ppm (páginas por minuto). Nas impressoras gráficas, medimos também a sua
definição gráfica em dpi (dots per inch ou ppp - pontos por polegada).
Como exemplo de impressora alfanumérica podemos citar as impressoras de linha (que
imprime uma linha por vez) e impressoras de caractere (tipo margarida que funciona de forma
semelhante a uma máquina de escrever).
Veremos, agora, alguns exemplos de impressoras gráficas.
Impressora matricial
As impressoras matriciais trabalham com agulhas que são ativadas, eletromagneticamen-
te, para “martelar” um determinado ponto no papel que se encontra atrás de uma fita com
tinta.
Seu custo de aquisição não é o menor, se comparado com as impressoras a jato de tinta.
Porém, a manutenção é mínima, pois as fitas têm um custo muito pequeno, o que faz com que
essa tecnologia seja a mais interessante em muitos casos.
Vale ressaltar que essa impressora é ruidosa e a qualidade da impressão não é tão boa
quanto às impressoras a jato de tinta ou a laser.
Impressora a laser
As impressoras a laser estão cada vez mais presentes em nosso dia- a-dia, pois o seu cus-
to vem sendo reduzido e a qualidade de impressão não se compara com as outras tecnologias
apresentadas até agora.
Elas utilizam uma combinação complexa de fenômenos físicos, químicos, mecânicos e óp-
ticos para efetuarem uma impressão.
Podemos descrever o seu funcionamento da seguinte forma: um tambor rotativo recebe
uma tensão extremamente alta e fica energizado, ao mesmo tempo em que recebe uma cama-
da de material fotossensível. Depois disso, o laser desenha no tambor o conteúdo a ser impres-
so, descarregando por meio da luz as áreas do tambor que não contém nada para ser impresso;
o tambor vai rodando e entra em contato com o toner (um pó preto que é eletrostaticamente
sensível); a área do tambor que não foi descarregada atrai o pó que na próxima etapa será es-
tampado no papel e fixado por meio do calor.
© U5 - Dispositivos de Entrada e Saída 141
10. MODEM
O modem é um dispositivo que tem a função de converter os sinais digitais de um compu-
tador para sinais analógicos e, também, converter sinais analógicos para sinais digitais.
Ele é utilizado quando se faz necessário uma comunicação entre dois computadores uti-
lizando a linha telefônica. Como a linha telefônica transmite sinais analógicos e o computador
trabalha com sinais digitais, antes que a transmissão do dado ocorra é necessário transformar
esses sinais digitais em analógicos.
Quando o sinal é recebido pelo computador de destino, um outro modem converte no-
vamente os sinais analógicos recebidos pela linha telefônica em sinais digitais. Finalmente, o
computador de destino receberá a informação.
13. FITAS
As fitas magnéticas possuem uma grande capacidade de armazenamento, são baratas,
mas como os dados têm que ser acessados de forma sequencial o seu desempenho é muito
baixo.
Por todas as características apresentadas anteriormente, as fitas acabam sendo um exce-
lente recurso para armazenamento de cópias de segurança (backup).
Veja quais são os principais tipos de fitas encontrados no mercado nos dias de hoje:
• Streamer - pequena, parecida com uma fita cassete.
• DAT (Digital Audio Tape) - grande capacidade, menor que uma fita cassete.
• Fitas Cartucho - grande densidade.
• Rolo ou carretel.
2) Relacione o conceito de barramento com os dispositivos de entrada e saída. Quais são as suas funcionalidades?
Como ele é útil na arquitetura das estruturas de entrada e saída dos computadores atuais?
4) Qual tipo de comunicação é mais rápida, a serial ou a paralela? Qual é delas possui maior eficiência? Explique.
6) Conceitue o termo DMA e explique a sua importância na arquitetura dos computadores atuais.
7) Escolha quatro dispositivos de entrada e quatro dispositivos de saída e explique detalhadamente o funciona-
mento de cada um.
9) Quais tipos de dispositivos são mais adequados para a execução de backups regulares? Explique.
16. CONSIDERAÇÕES
Chegamos ao final de mais uma unidade. Espero que você tenha compreendido a impor-
tância dos dispositivos de entrada e saída, bem como o funcionamento básico de cada dispositi-
vo apresentado. Nas próximas unidades, você vai estudar o funcionamento de um computador
simples.
17. E- REFERÊNCIAS
1. OBJETIVO
• Identificar e analisar a estrutura física de um computador simples (SAP1).
2. CONTEÚDOS
• Contador de Programa.
• Entrada.
• RAM.
• Registrador de Instrução.
• Controlador Sequencializador.
• Acumulador.
• Somador-Subtrator.
• Registrador B.
• Registrador de Saída.
• Indicador Visual.
4. INTRODUÇÃO À UNIDADE
Nas unidades anteriores, você pôde aprender muitas coisas importantes sobre organi-
zação de computadores. Agora, vamos juntar os dispositivos estudados e entender como um
computador funciona.
Para entender o funcionamento dos computadores que utilizamos atualmente é neces-
sário estudar o funcionamento de computadores mais simples, e, partindo daí, entender a sua
evolução até chegar aos modernos computadores.
Os poderosos e complexos computadores modernos não foram construídos a partir de um
único projeto; na verdade, o que temos hoje é o resultado da evolução dos primeiros projetos de
computadores. Portanto, iniciaremos aqui o estudo de um computador simples e muito didá-
tico chamado SAP (Simple-As-Possible), como o próprio nome diz, ele é extremamente simples.
__ __ __ __ __ __ __
Observe, na Figura 1 os blocos, os nomes e a forma como eles são ligados uns aos outros,
para que as próximas explicações fiquem mais claras. Observe que um sinal ao ficar ativo quan-
do recebe um nivel lógico 0 pode ser representado colocando-se uma barra sobre o seu nome
ou uma apóstrofo após o sinal.
Registradores
Um registrador é uma memória interna à CPU. Tem a característica de ser muito rápida
e pode ou não ser acessada pelo usuário. Os registradores que não podem ser acessados pelo
usuário são utilizados normalmente pela própria unidade de controle do processador; eles po-
dem armazenar um ou mais bits, dependendo da sua função.
Muitos módulos do SAP1 são constituídos de um ou mais registradores.
Barramento
Pode-se definir um barramento como um conjunto de linhas de comunicação que são
compartilhadas entre diversos dispositivos.
Os dados e as instruções do SAP1 trafegam entre os módulos por meio de um barramento
(w) de 8 bits.
Além do barramento de dados, o SAP1 possui um barramento de controle de 12 bits, con-
forme veremos mais adiante.
Observe a seguir as funções dos módulos que compõem o SAP1.
Claretiano - Centro Universitário
150 © Arquitetura e Organização de Computadores
Entrada e REM
É neste módulo que ocorre a entrada de dados e instruções para que o SAP1 possa ser
programado (entrada), e também é o local onde fica armazenado o valor passado pelo CP, que
é o endereço que será acessado na memória RAM (Registrador de Endereço de Memória REM).
RAM
RAM é uma memória estática que possui 16 linhas e 8 bits por linha, ou seja 16 X 8, com a
finalidade de armazenar instruções e dados a serem utilizados pelo computador.
Durante o processamento, a RAM recebe endereços de 4 bits do REM e logo após é execu-
tado uma operação de leitura neste endereço e o seu conteúdo é disponibilizado no barramento
w para a devida utilização.
Registrador de instruções
Quando uma instrução é lida da memória RAM, o byte referente à instrução é enviado ao
Registrador de Instrução (RI), onde ele é separado em dois nibbles (meio byte), o nibble superior
é referente à própria instrução e é passado imediatamente ao Controlador-Sequencializador e o
nibble inferior é referente ao campo operando que, quando for o caso, será disponibilizado no
barramento w.
A tarefa desempenhada pelo Registrador de Instruções é parte integrante da Unidade de
Controle.
© U6 - SAP1: Arquitetura 151
Controlador-Sequencializador
Controlador-Sequencializador constitui parte da unidade de controle e é o módulo res-
ponsável pelo controle do computador.
Recebe o nibble referente a instrução que será executada naquele momento por inter-
médio do Registrador de Instrução, decodifica e envia uma palavra de controle de 12 bits para
todo computador.
A palavra de controle é responsável por habilitar ou desabilitar cada funcionalidade de
cada módulo presente no computador a fim de que ele execute uma determinada tarefa.
Podemos fazer uma analogia entre o Controlador-Sequencializador e um maestro de or-
questra, que determina quem, o que fazer e em que hora fazer uma determinada ação. O maes-
tro é parte significativa para os componentes de uma orquestra, assim como o Controlador-
-Sequencializador é para os módulos que compõe o computador.
Acumulador
O acumulador é um registrador de memória temporária que armazena operandos e tam-
bém resultados de processamentos. Recebe um dado do barramento e pode disponibilizá-lo
tanto para o Somador-Subtrator quanto para o barramento novamente.
Somador-Subtrator
O Somador-Subtrator é o módulo responsável por efetuar uma operação de soma ou sub-
tração entre o valor presente no acumulador com outro valor presente na memória RAM.
A subtração é feita pelo método do complemento de 2; ou seja, para subtrair, ele efetua
uma soma do acumulador com o complemento do segundo operando.
Registrador B
Registrador B é um registrador de memória temporária utilizado em uma operação
aritmética para pegar determinado valor presente no barramento e entregá-lo ao Somador-
-Subtrator.
Ele é necessário, pois o único caminho para se chegar ao Somador-Subtrator é por meio
do Acumulador ou do Registrador B; como o Acumulador já contém um operando, a única
forma de carregar o outro operando no Somador-Subtrator é passando por um caminho al-
ternativo, no caso o Registrador B.
O Acumulador, o Somador-Subtrator e o Registrador B são módulos que fazem parte da
Unidade Lógica e Aritmética do SAP1.
Registrador de Saída
Depois que o computador executou um determinado processamento, o resultado fica ar-
mazenado no Acumulador.
Para que o usuário do computador possa visualizar o resultado do processamento, é ne-
cessário transferir o conteúdo do Acumulador para um registrador que permita o envio do re-
sultado para o usuário.
O registrador responsável por pegar o resultado presente no Acumulador e disponibilizar
o seu conteúdo para um dispositivo visual é chamado de Registrador de Saída ou Porta de Saída.
Claretiano - Centro Universitário
152 © Arquitetura e Organização de Computadores
Clock
Você sabe o que é clock?
Um computador é uma ferramenta capaz de resolver problemas por meio da execução de
tarefas que são um conjunto de instruções, executadas pelo hardware do computador por meio
de uma subdivisão denominada microinstruções.
As microinstruções são responsáveis, por exemplo:
• colocar um byte da memória RAM no barramento w;
• fazer com que o acumulador leia o conteúdo do barramento w;
• fazer com que o somador subtrator efetue uma soma ou subtração etc.
Para que tudo isso ocorra de forma logicamente ordenada, existe a necessidade de se ter
um dispositivo capaz de sincronizar a execução dessas microinstruções e o dispositivo responsá-
vel pelo sincronismo do computador é o gerador de CLOCK.
© U6 - SAP1: Arquitetura 153
Definimos clock como sendo um trem de pulsos alternado entre um nível lógico alto (bit
1) e um nível lógico baixo (bit 0), fisicamente, em um circuito TTL, o nível lógico baixo é quando
um meio tem o seu potencial próximo a 0 volts e o nível lógico alto próximo de 5 volts.
Veja no gráfico a seguir, a representação de um sinal de clock.
Observe que para representar complemento, você pode utilizar a barra sobre o nome do
bit ou o apóstrofe após o nome. Isso significa que o bit estará ativo caso o seu valor seja igual a
zero (nível lógico baixo).
A Palavra de Controle controla a arquitetura, portanto, fique atento aos sinais que cada
módulo recebe e a sua função.
Nos módulos síncronos existe, além dos sinais de controle, uma entrada denominada CLK
ou CLK’. Estes sinais são referentes à entrada dos pulsos de clock e servem, conforme já citado
anteriormente, para sinalizar ao módulo o instante certo para receber ou enviar um dado por
meio do barramento.
Observe, a seguir, os módulos que compõem a arquitetura de um computador SAP1, os
sinais de controle e suas funções.
© U6 - SAP1: Arquitetura 155
Contador de Programa
Entrada e REM
RAM 16X8
CE’ – Quando ativo (receber o bit 0), disponibiliza o conteúdo apontado pelo
registrador de endereço (REM) no barramento w.
Registrador de Instruções
Controlador-Sequencializador
Controlador/
Sequencializador
Figura 6 Controlador-Sequencializador
Acumulador A
Figura 7 Acumulador.
La’ – Quando ativo (recebe o bit 0), habilita a leitura do barramento w, carregando
no acumulador o conteúdo do barramento.
Ea – Quando ativo (recebe o bit 1), disponibiliza o seu conteúdo no barramento w.
Somador/Subtrator
Figura 8 Somador/Subtrator.
Su – Quando ativo (recebe o bit 1), o Somador/Subtrator estará configurado para efetuar
uma subtração e quando inativo (recebe o bit 0) ele estará configurado para
efetuar uma soma.
Eu – Quando ativo (recebe o bit 1), disponibiliza o seu conteúdo no barramento w.
© U6 - SAP1: Arquitetura 157
Registrador B
Figura 9 Registrador B.
Registrador de Saída
Lb’ – Quando ativo (receber o bit 0), habilita a leitura do barramento w,
carregando no acumulador o conteúdo do barramento
Lo’ – Quando ativo (recebe o bit 0), habilita a leitura do barramento w, carregando
no acumulador o conteúdo do barramento.
7. QUESTÕES AUTOAVALIATIVAS
Confira, a seguir, as questões propostas para verificar o seu desempenho no estudo desta
unidade:
1) O SAP1 é um computador didático e possui uma estrutura extremamente simples, mas com todos os conceitos
utilizados nos computadores atuais. Explique a arquitetura desse computador, e também o que ele é capaz de
fazer.
5) Qual é o módulo que controla o clock do SAP1?Qual é a importância desse sinal na execução dos programas do
SAP1?
6) O que são os “sinais de controle” dos módulos do SAP1? Qual a sua função?
8) Explique como um dado armazenado na memória RAM pode ser “movido” para o registrador A. Quais sinais de
controle deverão estar ativos?
8. CONSIDERAÇÕES
Nesta unidade, você conheceu a estrutura do SAP1, seus módulos e suas respectivas fun-
ções. Nas próximas unidades, será apresentado o funcionamento do SAP1.
9. REFERÊNCIAS BIBLIOGRÁFICAS
MALVINO, Albert Paul; LASCHUK, Anatolio. Microcomputadores e microprocessadores. São Paulo: McGraw-Hill do Brasil, 1985.
EAD
SAP1: Conjunto de Instruções
e Programação
1. OBJETIVOS
• Conhecer e identificar o conjunto de instruções do SAP1.
• Programar o SAP1, em linguagem de máquina e em mnemônicos.
2. CONTEÚDOS
• Conjunto de instruções.
• Mnemônicos.
• Opcodes.
• Programação do SAP1.
4. INTRODUÇÃO À UNIDADE
Na Unidade 5, você conheceu a arquitetura física do SAP1 como o contador de programa,
memória, somador-subtrator etc.
Nesta unidade, você conhecerá o conjunto de instruções do SAP1 com mnemônicos, op-
codes, funções de cada um e a programação do SAP1.
Iniciaremos esta unidade conhecendo o conjunto de instruções da programação
SAP1.
Bom estudo!
5. CONJUNTO DE INSTRUÇÕES
Para que uma máquina seja definida como um computador, é necessário que ela tenha a
capacidade de ser programada.
Os computadores atuais podem ser programados utilizando-se uma linguagem de progra-
mação extremamente poderosa, como, por exemplo, o Pascal, o Java, o C++ etc. e, ao mesmo
tempo, com relativa facilidade de compreensão para um ser humano. Contudo, quando este
programa é traduzido em linguagem de máquina, os recursos que ele pode utilizar para execu-
tar as suas tarefas são definidos em um conjunto de funcionalidades denominado Conjunto de
Instruções.
Podemos definir, então, um conjunto de instruções como um conjunto de funcionalidades
ao qual um computador, por meio do processador ou microcontrolador, é capaz de responder
executando alguma tarefa. Estas instruções fazem parte do processador ou do microcontrolador.
Existem várias categorias de instruções, como por exemplo:
a) Instruções de movimentação de dados: servem para copiar um dado de um registra-
dor para outro.
b) Instruções aritméticas e lógicas: utilizadas para somar, subtrair, multiplicar, dividir,
executar operações lógicas booleanas como, por exemplo, AND, OR, NOT etc. Essas
operações podem ser Diádicas (quando envolve dois operandos) ou Monádicas (quan-
do envolve apenas um operando).
c) Instruções de comparação e desvio condicional: utilizadas para comparar valores ou
desviar o fluxo de execução do programa.
d) Instruções de chamadas a procedimentos: são responsáveis por chamar um procedi-
mento ou função (subconjunto de instruções).
e) Instruções de LOOP: usadas para controlar laços de repetição, fazendo com que um
conjunto de instruções sejam executadas várias vezes.
f) Instruções de Entrada e Saída: são as instruções responsáveis pela entrada e saída de
dados para serem processados (Entrada) ou que já foram processados (Saída).
O conjunto de instruções varia sempre de um computador para outro, mas os tipos apre-
sentados anteriormente e os termos que aprenderemos nesta unidade podem ser aplicados
para quase todos os processadores e microcontroladores.
Pelo fato do SAP1 ser extremamente simples, ele também tem poucas instruções (somen-
te cinco instruções) e por esse motivo você aprenderá a trabalhar com as instruções do SAP1 e
depois irá aprender as instruções mais complexas, acompanhando a sua evolução (instruções
do SAP2 e SAP3).
© U7 - SAP1: Conjunto de Instruções e Programação 161
Instruções
As instruções possuem um NOME, também conhecido por MNEMÔNICO (apelido) e po-
dem conter um ou mais OPERANDOS.
Além disso, como o computador entende apenas a presença ou ausência de sinal, ou seja, 0 ou
1, cada instrução possui um código denominado OPCODE (código de operação).
O OPCODE é utilizado sempre que for necessário fazer uma programação em linguagem
de máquina, ou quando você precisar entender o que se passa dentro da máquina quando uma
instrução estiver sendo executada.
Veja a seguir os nomes, opcodes e a respectivas funções das cinco instruções do SAP1.
MNEMÔNICO OPCODE FUNÇÃO
Carrega o valor contido no endereço de memória pelo seu operando no
LDA 0000
acumulador.
Soma o valor contido no endereço de memória apontado pelo seu operando
ADD 0001
com o conteúdo armazenado no acumulador.
Subtrai do valor contido no acumulador, o valor contido no endereço de
SUB 0010
memória apontado pelo seu operando.
Faz com que o conteúdo armazenado no acumulador seja indicado no
OUT 1110
módulo indicador visual binário.
HLT 1111 Pára o processamento. É utilizado no final do programa.
6. PROGRAMANDO O SAP1
Para entender melhor as instruções anteriores, vamos visualizar o mapa da memória do
SAP1.
Lembre-se de que a memória do SAP1 é uma memória 16 X 8, ou seja, temos 16 posições
de memória com 8 bits cada posição para o armazenamento de um dado.
Assim, podemos representar toda a memória do SAP1 da seguinte forma. Observe que no
conteúdo do endereço pode ser inserido tanto uma instrução quanto um dado.
ENDEREÇO CONTEÚDO ENDEREÇO CONTEÚDO
0H 8H
1H 9H
2H AH
3H BH
4H CH
5H DH
6H EH
7H FH
O SAP1 mistura as instruções e os dados em uma única memória e, sendo assim, a divisão
entre instruções e memória será feita da forma a seguir.
As instruções deverão ocupar, sequencialmente, as primeiras posições de memória e so-
mente após o término das instruções é que deverão ser inseridos os dados.
Não existe um ponto fixo separando a área de programação da área disponível para o
armazenamento dos dados, o programador é que deverá analisar a quantidade de memória
que será necessária para o armazenamento dos dados e instruções, e estudar a viabilidade de
escrever o programa com a memória disponível.
Chamamos de memória inferior à parte da memória que irá conter as instruções e memória
superior (de endereços mais altos) a parte da memória que irá conter os dados.
A menos que se tenha uma orientação prévia de quem está requisitando o programa, os
dados podem ser inseridos logo após a instrução HLT, mas o indicado é que eles sejam inseridos
de baixo para cima visando futuras alterações no programa (possibilidade de expansão).
No SAP 1, todos os operandos fazem referência a uma posição de memória e nunca ao
valor imediato, por exemplo: para somar 3 ao valor do acumulador, deve-se primeiro armazenar
valor 3 na memória e depois utilizar a instrução ADD XH, onde X é a posição de memória na qual
encontra-se o valor 37.
Vamos ver, mais detalhadamente, como as instruções do SAP 1 funcionam.
LDA
Carrega o valor contido no endereço de memória apontado pelo seu operando no acumulador.
A instrução LDA faz referência à memória por meio do seu campo de operando, ela busca
na memória RAM o valor armazenado na posição de memória apontado no campo operando e
armazena o valor que está armazenado no acumulador.
Exemplo:
Supondo que os dados armazenados na memória do SAP1 e os respectivos endereços
sejam.
CH 08H
DH 02H
EH 01H
FH 05H
ADD
Soma o valor contido no acumulador com o endereço de memória apontado pelo operan-
do da instrução ADD.
O resultado será escrito no acumulador, sobrescrevendo o seu conteúdo anterior.
Exemplo:
Supondo que os dados armazenados na memória do SAP 1 e os respectivos endereços
sejam:
CH 08H
DH 02H
EH 01H
FH 05H
A instrução ADD CH somará o valor 08H (que é o valor que está armazenado na posição CH
da memória RAM), ao valor armazenado no acumulador.
Se considerarmos que, no exemplo anterior, o valor que foi carregado no acumulador foi
02H, o ADD irá fazer uma soma dos valores 02H + 08H, obtendo o resultado AH que ficará ar-
mazenado no acumulador, sobrescrevendo assim, o valor 02H carregado pela instrução LDA do
exemplo anterior.
SUB
Subtrai do valor contido no acumulador, o valor contido no endereço de memória aponta-
do pelo seu operando.
O resultado será escrito no acumulador, sobrescrevendo o seu conteúdo anterior.
Exemplo:
Supondo que os dados armazenados na memória do SAP 1 e os respectivos endereços
sejam:
CH 08H
DH 02H
EH 01H
FH 05H
Resumindo––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
As instruções ADD e SUB executam operações de soma e subtração sempre envolvendo um operando que será
buscado na memória RAM com o conteúdo do acumulador. Sendo assim, para executar qualquer uma dessas
operações, é necessário carregar o primeiro operando no acumulador com a instrução LDA. Após a instrução a ser
executada, o resultado será escrito no acumulador, substituindo o valor anterior (primeiro operando) pelo resultado
obtido pelo Somador-Subtrator.
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
OUT
Esta instrução faz com que o conteúdo armazenado no acumulador seja indicado no mó-
dulo indicador visual binário.
A instrução OUT não faz referência à memória como nos exemplos das instruções LDA,
ADD e SUB.
O OUT irá, simplesmente, pegar o valor contido no acumulador e transferi-lo ao regis-
trador de saída, que por sua vez está conectado ao conjunto de LEDs que compõem o módulo
Indicador Visual Binário.
Exemplo:
OUT
Considerando todos os exemplos anteriores, o valor atual do acumulador é 09H e, assim,
o resultado obtido após o OUT desse exemplo será o seguinte:
HLT
A instrução HLT não faz referência à memória e serve para desativar o CLOCK fazendo com
que o módulo Controlador-Sequencializador pare de funcionar, encerrando o programa.
A falta da instrução HLT no final do programa, irá gerar um erro, pois o computador con-
tinuará procurando instruções nos próximos endereços de memória e encontrará apenas os
dados.
O erro causado é denominado refugo ou trash que quer dizer resposta sem significado
causado por processamento descontrolado.
Exemplo:
Agora, faremos um programa para retornar o resultado da expressão: 7 – 3.
Observação: Os valores 7 e 3 estão no sistema de numeração decimal e deverão ser arma-
zenados nas posições EH e FH da memória.
ENDEREÇO INSTRUÇÃO
0H LDA EH
1H SUB FH
2H OUT
3H HLT
4H
5H
6H
7H
8H
9H
AH
BH
CH
DH
EH 07H
FH 03H
Exemplo:
Vamos complicar mais um pouquinho. Faremos, agora, um programa para calcular a se-
guinte expressão: 2 + 5 +20 - 17.
Neste momento, sugerimos que você consulte o Apêndice A para entender a conversão do
sistema numérico decimal para o sistema numérico hexadecimal.
Observação: Os valores 2, 5, 20 e 17 estão no sistema de numeração decimal e deverão ser
armazenados nas posições de memória compreendidos entre CH e FH.
ENDEREÇO INSTRUÇÃO
0H LDA CH
1H ADD DH
2H ADD EH
3H SUB FH
4H OUT
5H HLT
6H
7H
8H
9H
AH
BH
CH 02H
DH 05H
EH 14H
FH 11H
Claretiano - Centro Universitário
166 © Arquitetura e Organização de Computadores
ENDEREÇO INSTRUÇÃO
0000 0000 1110
0001 0001 1111
0010 1110
0011 1111
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110 0000 0011
1111 0000 0101
© U7 - SAP1: Conjunto de Instruções e Programação 167
Exemplo:
Agora, faremos um programa para retornar o resultado da expressão: 7 – 3.
Observação: Os valores 7 e 3 estão no sistema de numeração decimal e deverão ser arma-
zenados nas posições EH e FH da memória.
ENDEREÇO INSTRUÇÃO
0000 0000 1110
0001 0010 1111
0010 1110
0011 1111
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110 0000 0111
1111 0000 0011
Exemplo:
Vamos complicar mais um pouquinho. Faremos, agora, um programa para calcular a se-
guinte expressão: 2 + 5 +20 - 17.
Observação: Os valores 2, 5, 20 e 17 estão no sistema de numeração decimal e deverão
ser armazenados nas posições de memória compreendidos entre CH e FH.
ENDEREÇO INSTRUÇÃO
0000 0000 1100
0001 0001 1101
0010 0001 1110
0011 0010 1111
0100 1110
0101 1111
0110
0111
1000
1001
1010
1011
1100 0000 0010
1101 0000 0101
1110 0001 0100
1111 0001 0001
8. QUESTÕES AUTOAVALIATIVAS
Confira, a seguir, as questões propostas para verificar o seu desempenho no estudo desta
unidade:
1) Conceitue o termo instrução.
3) Relacione os termos mnemônico e OPCODE. Explique o significado de cada termo e apresente um exemplo de
cada.
4) Defina linguagem de máquina e explique como é possível programar um computador nessa linguagem.
5) Defina linguagem de montagem e explique como é possível programar um computador nessa linguagem.
6) Como pode ser feito a tradução de um programa escrito em linguagem de montagem para linguagem de má-
quina? Cite um exemplo.
8) Escreva um programa em linguagem de montagem para realizar a seguinte operação aritmética: 75 + 20 – 18.
9. CONSIDERAÇÕES
Nesta unidade, além de estudar as instruções aceitas pelo computador SAP1, você teve
a possibilidade de aprender como se escreve um programa em linguagem de montagem e em
linguagem de máquina.
Na próxima unidade, você aprenderáde que forma uma instrução é executada no SAP1.
1. OBJETIVO
• Compreender e reconhecer os caminhos percorridos pelas instruções durante a execu-
ção de um programa.
2. CONTEÚDOS
• Ciclo de busca Feth.
• Ciclo de execução.
• Ciclo de máquina.
• Microprograma.
4) Tire dúvidas com o seu tutor sempre que for necessário e não deixe de levar para as
aulas presenciais as suas dúvidas e questionamentos.
4. INTRODUÇÃO À UNIDADE
Após estudar as instruções, os mnemônicos, os OPCODES e como fazer a programação
SAP1 na unidade anterior, nesta unidade, você conhecerá o modo como são executadas as ins-
truções do SAP1, o ciclo de busca Feth, o ciclo de execução, o ciclo de máquina e o microprogra-
ma.
Aconselho você a analisar os exemplos, linha a linha, para entender o seu funcionamento,
pois esse tipo de análise é um método eficiente para aprendizagem, além de prepará-lo para o
futuro aprendizado de novas estruturas.
Não deixe de refletir sobre cada parágrafo estudado, faça todas as atividades propostas,
leia as bibliografias propostas, visite sites e, não deixe dúvidas sobre o assunto. Lembre-se de
que estaremos sempre prontos a atendê-lo na sala de aula virtual.
Bom estudo!
5. CONTROLE DO SAP1
Você já viu que o módulo responsável pelo controle de todas as operações no SAP1 é o
Controlador-Sequencializador que envia, para toda a arquitetura, sinais de controle por meio de
um barramento que recebe o nome de Barramento de Controle.
Os sinais (bits) enviados ao computador pelo barramento de controle são chamados de
PALAVRA DE CONTROLE e os bits que trafegam por ali recebem um nome relacionado ao seu
significado e, também, uma representação que indica se ele será ativo no nível lógico 0 ou nível
lógico 1.
Por exemplo:
• se o nome do sinal aparecer escrito de forma complementada, ele estará ativo se o seu
valor for igual a 0 e inativo se o seu valor for igual a 1;
• se, ao contrário, o seu nome estiver escrito sem complemento, o sinal estará ativo caso
o seu valor seja 1 e inativo caso o seu valor seja 0.
Veja no quadro, a seguir, um exemplo prático:
SINAL 0 1
Cp Inativo Ativo
Ep Inativo Ativo
Ativo Inativo
LM
Ativo Inativo
CE
Ativo Inativo
Li
Inativo Ativo
Ea
© U8 - SAP1: Como as instruções são executadas 171
As palavras de controle são enviadas ao barramento e recebidas pelas unidades (ou mó-
dulos) do computador continuamente. Neste caso, é necessário um mecanismo para controlar
o momento exato de mudar a palavra de controle, este tempo é determinado pelo CLOCK do
computador.
Seria somente isso, caso o computador pudesse executar uma instrução em apenas um
pulso de CLOCK, mas na prática o computador necessita vários pulsos de CLOCK para conseguir
executar uma instrução.
Uma instrução é dividida em vários estágios de execução, e em cada estágio, uma palavra
de controle é gerada. Estas palavras que compõem as etapas de execução de uma instrução são
chamadas de MICROINSTRUÇÃO e a instrução propriamente dita pode ser chamada de MA-
CROINSTRUÇÃO (LDA, ADD, SUB etc.).
Os computadores executam os estágios da instrução, em uma organização dos pulsos de
CLOCK chamado de ESTADOS.
O SAP1 tem seis estados para controlar a execução de uma instrução. Estes estados, por
sua vez, são definidos por um CONTADOR EM ANEL localizado dentro do Controlador-Sequen-
cializador.
O contador em anel funciona da seguinte forma:
Com seis saídas (T6 T5 T4 T3 T2 T1), inicialmente, somente a saída T1 vale 1. Depois de um
pulso de CLOCK, a saída T2 passa a valer 1 e T1 volta a valer 0 e assim sucessivamente até chegar
em T6, retornando no próximo pulso de CLOCK a configuração inicial do contador e, assim, o
processo é reiniciado.
Estados de temporização:
T1 = 000001
T2 = 000010
T3 = 0000100
T4 = 0001000
T5 = 010000
T6 = 100000
Existem computadores que utilizam, por exemplo, três estados para buscar uma instrução
e nove para executar uma instrução.
Existem outros computadores que possuem ciclo de máquina de mais estados e, também,
casos em que o ciclo de máquina não é suficiente para buscar e executar todas as instruções.
Quando o ciclo de máquina possui menos estados do que o necessário para executar uma
instrução, consequentemente, o computador gastará mais de um ciclo. O conjunto de estados
gastos para buscar e executar uma instrução é chamado de CICLO DE INSTRUÇÃO.
Observe:
C o n Cp Ep Lm CE Li Ei La Ea Su Eu Lb Lo
= 0 1 0 1 1 1 1 0 0 0 1 1
Cp Ep Lm CE Li Ei La Ea Su Eu Lb L0
Con=
1 0 1 1 1 1 1 0 0 0 1 1
T6 3E3H NOP
LDA
Estado T4: os bits ativos são Lm’, Ei’, o que significa que o nibble referente ao endereço de
operando presente no Registrador de Instruções será colocado no barramento w (Ei’) e o mó-
dulo do registrador de endereços (REM) efetuará uma leitura do barramento w (Lm’), ou seja, o
campo que contém o endereço do operando da instrução LDA será movido para o módulo REM.
Estado T5: os bits ativos são CE’, La’, o que significa que a palavra de dado armazenada na RAM
que está sendo apontada pelo Registrador de Endereço (REM) será colocada no barramento w (CE’) e
que o Acumulador efetuará a leitura do barramento w (La’).
Estado T6: neste estado, todos os sinais da palavra de controle estão desabilitados, o que
significa ausência de operação Nop (inoperante).
ESTADO T4 ESTADO T5
ESTADO T6
ADD
Estado T4: os bits ativos são Lm’, Ei’, o que significa que o nibble referente ao endereço de
operando presente no Registrador de Instruções será colocado no barramento w (Ei’) e o mó-
© U8 - SAP1: Como as instruções são executadas 177
dulo do registrador de endereços (REM) efetuará uma leitura do barramento w (Lm’), ou seja, o
campo que contém o endereço do operando da instrução ADD será movido para o módulo REM.
Estado T5: os bits ativos são CE’, Lb’, o que significa que a palavra de dados presente na
memória RAM que está sendo apontada pelo módulo REM seja disponibilizada no barramento
w (CE’), e capturada pelo Registrador B (Lb’), ou seja, neste estado o operando da instrução ADD
será transferido para o registrador B para, depois, ser somado com o conteúdo do acumulador.
Estado T6: os bits ativos são: La’, Eu, o que faz com que o resultado obtido pela operação
do SOMADOR-SUBTRATOR, que é assíncrono, seja disponibilizado no barramento w (Eu) e cap-
turado pelo acumulador (La’), fazendo com que o resultado da operação seja armazenado no
acumulador.
SUB
Estado T4: os bits ativos são Lm’, Ei’, o que significa que o nibble referente ao endereço de
operando presente no Registrador de Instruções será colocado no barramento w (Ei’) e o mó-
dulo do registrador de endereços (REM) efetuará uma leitura do barramento w (Lm’), ou seja, o
campo que contém o endereço do operando da instrução SUB será movido para o módulo REM.
Estado T5: os bits ativos são CE’, Lb’, o que significa que a palavra de dados presente na
memória RAM que está sendo apontada pelo módulo REM seja disponibilizada no barramento
w (CE’), e capturada pelo Registrador B (Lb’), ou seja, neste estado o operando da instrução SUB
será transferido para o registrador B para depois ser subtraído do conteúdo do acumulador.
Estado T6: os bits ativos são: La’, Su, Eu, o que faz com que o resultado obtido pela ope-
ração do SOMADOR-SUBTRATOR, que é assíncrono, seja disponibilizado no barramento w (Eu)
e capturado pelo acumulador (La’), fazendo com que o resultado da operação seja armazenado
no acumulador. Observe que até aqui tudo ocorre de forma idêntica ao estado T6 da instrução
LDA, o que muda é o sinal Su que está alto, fazendo com que o SOMADOR-SUBTRATOR efetue
uma subtração e não uma soma.
Os módulos ativos das instruções ADD e SUB serão analisados juntos na mesma figura.
Observe a seguir:
ESTADO T4 ESTADO T5
ESTADO T6
OUT
No estado T4 da instrução OUT, os sinais Ea, Lo’ estão ativos, fazendo com que o conteúdo
armazenado no acumulador seja disponibilizado no barramento w (Ea) e o Registrador de Saída,
por meio do sinal (Lo’) ativo, captura o conteúdo do barramento w, mostrando instantaneamen-
te o seu conteúdo ao usuário do computador pelo módulo indicador visual binário (assíncrono
e conectado diretamente no registrador de saída).
Estados T5 e T6: nestes estados, todos os sinais da palavra de controle estão desabilitados,
o que significa ausência de operação Nop (inoperante).
© U8 - SAP1: Como as instruções são executadas 179
ESTADO T4 ESTADO T5
ESTADO T6
HLT
A instrução HLT simplesmente desliga o CLOCK do computador fazendo com que o Con-
trolador-Sequencializador pare de trabalhar. Ele não requer nenhum sinal de controle, pois não
envolve nenhum registrador.
7. QUESTÕES AUTOAVALIATIVAS
Confira, a seguir, as questões propostas para verificar o seu desempenho no estudo desta
unidade:
6) Explique o que acontece durante o ciclo de busca de uma instrução. Apresente as palavras de controle para os
estados que constituem o ciclo de busca.
8. CONSIDERAÇÕES
Você terminou de estudar a arquitetura e o funcionamento de um computador bem sim-
ples, denominado SAP1. Na próxima unidade, você irá conhecer o SAP2, que é uma evolução do
SAP1 na direção dos computadores atuais; além disso, serão apresentadas maisalgumas instru-
ções e uma arquitetura mais complexa e eficiente.
9. REFERÊNCIAS BIBLIOGRÁFICAS
MALVINO, Albert Paul; LASCHUK, Anatolio. Microcomputadores e microprocessadores. São Paulo: McGraw-Hill do Brasil, 1985.
EAD
SAP2: Arquitetura
e Programação
1. OBJETIVO
• Compreender a evolução da arquitetura e programação dos computadores, utilizando
como exemplo o SAP2.
2. CONTEÚDOS
• Arquitetura do SAP2.
• Instruções.
• Programação.
4. INTRODUÇÃO À UNIDADE
Nas unidades anteriores, você teve a oportunidade de aprender sobre a arquitetura e
programação do SAP1.
Nesta unidade, você conhecerá o SAP2, que é um computador que evoluiu do SAP1.
Assim, o SAP2 contempla toda a lógica do SAP1, só que com uma arquitetura mais comple-
ta, além de muitas instruções adicionais.
Bons Estudos!
Já com relação às instruções, a novidade fica por conta das instruções de salto e salto
condicional.
Cada módulo possui um sinal LOAD e um sinal HABILITA que poderão estar ativados ou
não.
Um sinal LOAD ativado significa que os dados fluem do barramento w para o registrador;
e um sinal HABILITA ativado significa que os dados fluem no sentido inverso, ou seja, do regis-
trador para o barramento.
Os sinais LOAD e HABILITA podem ficar desabilitados ao mesmo tempo, o que faz com
que aquele módulo fique invisível ao sistema, mas nunca poderão ficar habilitados ao mesmo
tempo.
Veja na Figura 2, a arquitetura em blocos do SAP2.
Portas de Entrada
A porta de entrada 1 é um codificador hexadecimal de teclado e a porta de entrada 2 é
uma porta serial que permite a entrada de dados bit a bit.
Claretiano - Centro Universitário
184 © Arquitetura e Organização de Computadores
A porta 2, além de receber sinais seriais, ainda tem a função de receber um sinal de “pron-
to” (READY) enviado pelo codificador hexadecimal de teclado (entrada 1).
Contador de Programa
O contador de programa do SAP2 possui 16 bits contra os 4 bits do SAP1, tendo, portanto,
65.535 linhas numeradas de 0000H a FFFFH.
REM
O registrador de endereços (REM) funciona de forma idêntica à do SAP1, apenas com a
diferença de endereçar 16bitsem vez de 4bits, como no SAP1.
Memória
A memória é constituída por uma ROM de 2K com os endereços que vão da posição 0000H
a 07FFH, e uma RAM de 62K endereçadas de 0800H a FFFFH.
Na memória ROM fica armazenado um programa denominado monitor, que tem a função
de inicializar o computador, reconhecendo o teclado, entrada serial etc.
Registrador de Instrução
O registrador de instrução do SAP2 pode trabalhar com 256 instruções contra o limite de
16 instruções do SAP1.
Nem o SAP1 utiliza 16 instruções, nem o SAP2 utiliza 256 instruções (ele tem apenas 42
instruções), mas o número de bits utilizados pelo RI para controlar as instruções é baseado no
conjunto de instruções 8080 e 8085, para que desde já possamos trabalhar com instruções com-
patíveis com essas arquiteturas.
Controlador-Sequencializador
O controlador-sequencializador funciona exatamente da mesma forma que o apresentado
no SAP1, com exceção do número de bits da palavra de controle, que é maior e, portanto, resul-
ta em um hardware mais complexo.
Acumulador
O acumulador tem uma saída bidirecional conectada ao barramento W e uma saída de
dois estados para a unidade lógica e aritmética.
Uma novidade é a conexão da ULA com um registrador que serve de indicador “flag” ou
“bandeira” e informa, por meio dos seus sinais, o estado atual do resultado da operação execu-
tada pela ULA.
O SAP2 tem dois flags; um flag de sinal, que fica setado quando o conteúdo do acumu-
lador ficar negativo, e outro flag de zero, que é setado quando o conteúdo do acumulador for
zero.
Registradores TMP, B e C
O registrador TMP é um registrador temporário e tem a mesma função do registrador B do
SAP1, ou seja, é por meio desse registrador que o segundo operando chega à ULA.
Já os registradores B e C são de propósito gerais e podem ser utilizados para armazenar
dados durante o processamento de instruções.
Portas de Saída
O SAP2 possui duas saídas: a primeira é um registrador que está conectado a um display
hexadecimal para que os dados possam ser visualizados; e a outra saída é um registrador res-
ponsável pelo envio dos dados a um dispositivo externo por meio de sinais seriais, ou seja, é
uma porta de saída serial.
A porta de saída serial possui um sinal importante: o ACKNOWLEDGE, que significa reco-
nhecimento e faz parte do procedimento de HANDSHAKING ou “aperto de mão”.
O “aperto de mão” é essencial para que haja uma comunicação de dados seriais assíncro-
na, pois é o procedimento responsável por negociar a transferência dos dados entre o emissor
e o receptor dos dados.
O ciclo de busca do SAP2 é igual ao ciclo de busca do SAP1, ou seja:
• o estado T1 é o estado de endereço;
• o estado T2 é o estado de incremento;
• o estado T3 é o estado de memória.
Já o ciclo de execução do SAP2 varia de acordo com cada instrução, da mesma forma que
você aprendeu na unidade anterior, referente ao SAP1.
Como o SAP2 possui um ciclo de máquina variável, algumas instruções poderão ser execu-
tadas mais rápida ou mais lentamente do que outras.
No SAP1, todos os estados anteriores fazem referência à memória, pois, obrigatoriamen-
te, a instrução sai da memória RAM e vai para o registrador de instruções.
Já no SAP2, nem todas as instruções fazem referência à memória e, para que isso fique
bem claro,as instruções serão agrupadas e apresentadas na seguinte sequência: primeiro, as
instruções com referência à memória, e, depois, as que não fazem referência à memória.
Exemplo:
A instrução LDA 1500H irá carregar o conteúdo armazenado na posição 1500H da memó-
ria RAM no acumulador.
INSTRUÇÃO OPERANDO
LDA 1500H
Exemplo:
A instrução STA 1540H irá mover o conteúdo do acumulador para a posição 1540H da
memória RAM.
INSTRUÇÃO OPERANDO
STA 1540H
O termo mover é muito utilizado na programação de baixo nível e significa que o dado
será copiado de um lugar para outro, ou seja, de um registrador para outro registrador, de um
registrador para a memória, ou da memória para um registrador.
Sintaxe:
MVI R, byte – onde R = registrador e byte é a constante.
Exemplo:
INSTRUÇÃO REGISTRADOR OPERANDO
MVI A 57H
MVI A,57H (observe que háuma vírgula separando o registrador do operando), carrega o
acumulador com o valor 57H, ou seja, com o número decimal.
57H = 0101 0111
5 7 Hexadecimal
0101 0111 Binário
01010111 = (103)10
© U9 - SAP2: Arquitetura e Programação 187
Instruções de Registradores
O acesso à memória faz com que as instruções sejam mais lentas e por isso, sempre que
possível, o melhor é utilizar instruções que não fazem referência à memória.
MOV (move)
A instrução MOV move o conteúdo de um registrador para outro.
Exemplo:
MOV A,B – move o conteúdo do registrador B para o acumulador (registrador A).
MOV C,B – move o conteúdo do registrador B para o registrador C.
Pode-se envolver qualquer registrador na instrução MOV, sempre respeitando a ordem:
o registrador apontado
no segundo operando será movido para o registrador apontado pelo
primeiro operando.
ADD
(add)
ADD é uma instrução que soma o conteúdo do registrador apontado na instrução com o
ADD (add)
conteúdo do acumulador.
ADD é uma instrução que soma o conteúdo do registrador apontado na instrução com o
conteúdo do acumulador.
Sintaxe:
ADD R
Sintaxe:
ADDRRé o nome do registrador cujo conteúdo será somado com o acumulador.
Onde
Onde R é o nome do registrador cujo conteúdo será somado com o acumulador.
Exemplo:
Exemplo:
Se A = 01H e C = 06H, então o conteúdo do acumulador após a instrução ADD C será 07H.
Se A = 01H e C = 06H, então o conteúdo do acumulador após a instrução ADD C será
07H.
Outros exemplos:
ADDexemplos:
Outros B – soma o conteúdo do registrador B com o conteúdo do acumulador.
ADD C B– –soma
ADD somaooconteúdo
conteúdodo
doregistrador C com
registrador B com ooconteúdo
conteúdodo
doacumulador.
acumulador.
ADD C – soma o conteúdo do registrador C com o conteúdo do acumulador.
SUB (sub)
SUB (sub)
A instrução SUB
A instrução significa
SUB significasubtrair
subtrairdodoacumulador
acumuladorooconteúdo
conteúdodo
doregistrador
registradorapontado
apontadopor
R. por R.
Sintaxe:
SUB R
Onde R é o nome do registrador cujo conteúdo será subtraído do acumulador.
Exemplo:
SUB B
SUB C
INR (incremento)
INR é uma instrução que incrementa o conteúdo de um registrador (A, B ou C).
Sintaxe:
INR R
Onde R representa o registrador que sofrerá o incremento (de uma unidade).
Exemplo:
INR A
INR B
INRC C
Se A = 41H, logo após a instrução INC A o valor de A será 42H.
DCR (decremento)
DCR é a instrução que, ao contrário do INR, decrementa uma unidade do registrador apon-
tado por R.
Sintaxe:
DCR R
Onde R representa o registrador que sofrerá o decremento.
Instruções de Salto
As instruções de salto permitem que a sequência de execução de um programa seja alte-
rada.
O salto pode ser condicional (acontecer ou não em determinados casos), ou incondicional
(sempre acontecer).
O SAP2 possui uma instrução de salto incondicional e três instruções de saltos condicio-
nais.
JMP (jump)
A instrução JMP solicita ao computador que salte para o endereço designado pelo campo
do seu operando.
© U9 - SAP2: Arquitetura e Programação 189
Sintaxe:
JMP endereço.
Exemplo:
JMP 1250H – esta instrução desvia o fluxo de execução do programa para o endereço de
memória 1250H.
A instrução JMP é incondicional e altera, durante a sua execução, o valor do registrador
contador de programa.
JM (jump if minus)
A instrução JM executa um salto condicional, ou seja, executa o salto caso o flag de sinal
esteja setado.
Sendo assim, o desvio só ocorreráse o conteúdo do acumulador for negativo; caso contrá-
rio, o conteúdo do registrador contador de programa continuará inalterado.
Sintaxe:
JM endereço
Exemplo:
JM 2100H
Ao passar por essa instrução e o flag de sinal estiver setado, o valor do contador de pro-
grama passará a ser 2100H.
JZ (jump if zero)
JZ é outra instrução de salto condicional, ou seja, executa o salto caso o flag de zero esteja
setado.
Sintaxe:
JZ endereço.
Exemplo:
JZ 2100H.
Ao passar por essa instrução e o flag de zero estiver setado, o valor do contador de pro-
grama passará a ser 2100H.
Sintaxe:
JNZ endereço.
Exemplo:
JNZ 2100H.
Ao passar por essa instrução e o flag de zero nãoestiver setado, o valor do contador de
programa passará a ser 2100H.
Instruções Lógicas
O Quadro 1 representa as instruções lógicas do SAP2 com os respectivos detalhamentos
de utilização.
Além das instruções apresentadas até o momento, existem mais seis delas. Observe, a
seguir, quais são e como funcionam.
HLT (halt)
A instrução HLT desliga o clock,fazendo com que o controlador-sequencializador pare de
funcionar, encerrando o programa.
IN (input)
A instrução IN move os dados de uma porta de entrada para o acumulador. As duas portas
de entrada disponíveis no SAP2 são numeradas como porta 1 e porta 2, devendo o número da
porta ser citado na instrução.
Sintaxe:
IN byte
Exemplos:
IN 02H – move o conteúdo da porta de entrada 2 para o acumulador.
IN 01H – move o conteúdo da porta de entrada 1 para o acumulador.
OUT
OUT(output)
(output)
AAinstrução
instruçãoOUT
OUTmove
moveo conteúdo do acumulador
o conteúdo parapara
do acumulador umauma
portaporta
de saída. ComoComo
de saída. o SAP2o
possui duas portas
SAP2 possui duas de saídadenumeradas
portas como porta
saída numeradas como3 porta
e porta
3 4, deve-se
e porta indicar aindicar
4, deve-se porta de des-
a porta
tino no seu campo
de destino no seu operando.
campo operando.
Sintaxe:
Sintaxe:
OUTporta
OUT porta
Exemplos:
Exemplos:
OUT03H
OUT 03H––move
moveooconteúdo
conteúdodo
doacumulador
acumuladorpara
paraa aporta
portadedesaída
saída03.
03.
OUT04H
OUT 04H––move
moveooconteúdo
conteúdodo
doacumulador
acumuladorpara
paraa aporta
portadedesaída
saída04.
04.
Instruçõesde
Instruções deRotacionamento
Rotacionamento
Rotacionar significa deslocar os bits, por exemplo, de um byte, para a esquerda ou para
Rotacionar significa deslocar os bits, por exemplo, de um byte, para a esquerda ou para a
a direita, movendo o bit mais significativo para a posição do menos significativo (no caso do
direita, movendo o bit mais significativo para a posição do menos significativo (no caso do rota-
rotacionamento à esquerda) e da posição menos significativa para a posição mais significativa
cionamento à esquerda) e da posição menos significativa para a posição mais significativa (no
(no caso do rotacionamento à direita).
caso do rotacionamento à direita).
Exemplo:
Exemplo:
MSB LSB MSB LSB
RAL
(rotate the accumulator to left)
A instrução RAL (rotacionar à esquerda) rotaciona o conteúdo do acumulador à esquerda.
Sintaxe:
RAL
Exemplo:
Se o conteúdo do acumulador for:
Acumulador = 0101 1011
O resultado de RAL será:
Acumulador = 1011 0110
Sintaxe:
RAR
Exemplo:
Se o conteúdo do acumulador for:
Acumulador = 0101 1011
O resultado de RAR será:
Acumulador = 1010 1101
É importante ressaltar que os dois flags do SAP2 conectados à unidade lógica e aritmética
também sofrem alterações com as instruções INR e DCR, pois o conteúdo do registrador que
está sendo incrementado ou decrementado será movido para o acumulador para que a ULA
possa somar ou subtrair uma unidade do seu valor.
Rótulos e Comentários
Para facilitar a programação dos computadores, é possível usar um programa denominado
assembler.
O assembler é um “compilador” para programas feitos em linguagem de montagem as-
sembly e, como tal, tem a função de transformar programas escritos em linguagem de monta-
gem (assembly) em linguagem de máquina.
Um dos recursos que esses programas oferecem é a possibilidade de se trabalhar com
comentários e rótulos.
Um comentário pode ser inserido em qualquer parte de um programa com a finalidade de
esclarecer o que está sendo feito naquela linha ou trecho do programa. Para inserir um comen-
tário, basta inserir o caractere “;” (ponto e vírgula).
Os rótulos, por sua vez, são úteis nos casos de desvio. Ao invés de entrar com um endere-
ço de desvio no campo operando de uma instrução de desvio, digita-se o rótulo (apelido para o
endereço de destino).
Veja um exemplo:
© U9 - SAP2: Arquitetura e Programação 195
Programação do SAP2
Veremos agora, alguns exemplos de programação do SAP2.
Exemplo 1
O programa a seguir, feito em linguagem de montagem, carrega o conteúdo 49H no acu-
mulador, 4AH no registrador B e 4BH no registrador C; depois, a instrução STA 6000H armazena
o conteúdo do acumulador na memória RAM, na posição 6020H.
MVI A,49H
MVI B,4AH
MVI C,4BH
STA 6020H
HLT
Em linguagem de máquina (com a representação em hexadecimal) o programa fica assim:
ENDEREÇO CONTEÚDO SIMBÓLICO
2000H 3EH MVI A,49H
2001H 49H
2002H 06H MVI B,4AH
2003H 4AH
2004H 0EH MVI C,4BH
2005H 4BH
2006H 32H STA 6020H
2007H 20
2008H 60
2009H 76H HLT
Cada linha de memória do SAP2 pode armazenar somente um byte;dessa forma, quando a
instrução tiver dois bytes, o que é armazenado primeiro na memória é o OPCODE e na próxima
posição de memória será armazenado o operando.
Na instrução STA 6020, o endereço possui dois bytes (6020H);assim, o byte inferior (20H)
vai para a próxima posição de memória e o byte superior (60H) fica na posição a seguir.
Desse modo, é fundamental que você saibaque os armazenamentos dos bytes ocorrem
nessa ordem para manter a compatibilidade com os processadores 8080 e 8085 da Intel.
Exemplo 2
Este exemplo somará os números decimais 23 e 45 e a resposta será armazenada na posi-
ção 5600H da memória RAM. Além disso, a resposta incrementada de uma unidade será arma-
zenada no registrador C.
Lembre-se de que os números decimais 23 e 45 equivalem a 17H e 2DH (caso tenha dúvi-
das, consulte o Apêndice A).
MVI A,17H
MVI B,2DH
ADD B
STA 5600H
INR A
MOV C,A
HLT
Em linguagem de máquina (com a representação em hexadecimal) o programa fica assim:
ENDEREÇO CONTEÚDO SIMBÓLICO
2000H 3EH MVI A,17H
2001H 17H
2002H 06H MVI B,2DH
2003H 2DH
2004H 80H ADD B
2005H 32H STA 5600H
2006H 00H
2007H 56H
2008H 3C INR A
2009H 4F MOV C,A
200AH 76H HLT
Exemplo 3
Este exemplo vai apresentar uma sub-rotina e vai incluir os conceitos de rótulo e comen-
tário.
RÓTULO MNEMÔNICO COMENTÁRIO
MVI C,46H ;inicializa o contador com o decimal 70.
VOLTA DCR C ; decrementa o registrador C
JNZ VOLTA ; teste contagem
NOP ; retardo
RET
MVI: 1 X 7 X 1 us 7us
DCR: 70 X 4 X 1 us 280us
JNZ: 69 X 10 X 1 us 690us Salta.
JNZ: 1 X 7 X 1 us 7us Não salta.
NOP: 1 X 4 X 1us 4us
RET: 1 X 10 X 1us 10us
TOTAL 998us 1ms aprox.
6. QUESTÕES AUTOAVALIATIVAS
Confira, a seguir, as questões propostas para verificar o seu desempenho no estudo desta
unidade:
1) O SAP1 possui uma arquitetura muito simples, com poucas instruções, alguns registradores unidirecionais, um
conjunto de chaves conectadas ao módulo de entrada, por onde a programação do SAP1 é executada, e um con-
junto de oito LEDs, que constitui o meio pelo qual o usuário recebe o resultado do processamento. Consideran-
do que o SAP 2 é uma evolução do SAP1, apresente as principais diferenças entre as duas arquiteturas. Lembre-
-se de separar as diferenças sob a visão da arquitetura física e também da arquitetura lógica (de programação).
4) Cite exemplos de utilização das novas instruções apresentadas durante o estudo desta unidade.
5) Durante uma operação aritmética, a unidade lógica e aritmética (ULA) pode chegar a um resultado positivo,
negativo ou igual a zero. Em muitos casos, é necessário que o sistema trate adequadamente tais resultados.
Explique de que forma é possível identificar tais resultados e pense em um exemplo de aplicação em que essa
identificação é necessária.
7) Um módulo bidirecional permite que o fluxo de dados alterne entre a entrada e a saída do barramento principal
ao módulo, além de, em alguns momentos, ficar em um estado “desligado”. Explique como isso é possível e cite
exemplos relacionados ao uso de tais estruturas.
8) O barramento e os registradores do SAP1 são de oito bits.Alguns registradores do SAP2 são de oito bits,outros
são de 16 bits, e o barramento do SAP2 é de 16 bits. Explique o motivo pelo qual alguns registradores e o barra-
mento principal do SAP2 são de 16 bits.
9) No SAP1, em virtude dos registradores e dos barramentos serem de oito bits, não é possível trabalhar com valo-
res ou mesmo resultados de números maiores que 255, uma vez que, para representar números maiores do que
255, é preciso utilizar mais de oito bits. Lembre-se de que (11111111)2 = (255)10.O SAP2 possui o barramento
principal de 16 bits. Isso significa que ele pode trabalhar com valores maiores do que o decimal 255? Justifique.
7. CONSIDERAÇÕES
O SAP2 apresentou a você a evolução da arquitetura de um computador muito simples
(SAP1) para a de um computador que, embora também seja simples, já possui muitas funciona-
lidades dos computadores que utilizamos até hoje.
Dessa forma, é possível percebermos que as máquinas atuais são uma evolução do SAP2
e reúnem todos os conceitos apresentados nestas últimas unidades.
Agora é só aplicar o conhecimento adquirido até aqui para usufruir melhor a ferramenta
que temos nas mãos – os nossos computadores.
Bons estudos!
8. REFERÊNCIAS BIBLIOGRÁFICAS
MALVINO, Albert Paul; LASCHUK, Anatolio. Microcomputadores e microprocessadores. São Paulo: McGraw-Hill do Brasil, 1985.
© U9 - SAP2: Arquitetura e Programação 199
APÊNDICE
EQUIVALÊNCIA DECIMAL - HEXADECIMAL - ASCII - BINÁRIO
LEITURA COMPLEMENTAR I –
HISTÓRIA E EVOLUÇÃO DOS
COMPUTADORES
1. INTRODUÇÃO
O computador pode ser definido como uma máquina capaz de executar uma ou mais ta-
refas, conforme uma programação prévia, com o objetivo de solucionar um ou mais problemas.
O início da computação foi marcado pelo cientista francês Blase Pascal (1623-1662) que
inventou a primeira máquina de calcular em 1642. Ela era totalmente mecânica e estava muito
longe da concepção que temos hoje do que é um computador.
O computador tem suas origens anteriores à eletrônica, ou seja, não é necessário a utili-
zação de dispositivos eletrônicos para a constituição de um computador.
A história da computação é dividida em gerações que mudam de acordo com as descober-
tas de novas tecnologias revolucionárias.
ENIAC - 1946, primeiro computador digital eletrônico de grande escala. O ENIAC tinha as seguintes
características:
• totalmente eletrônico;
• 17.468 válvulas;
• 500.000 conexões de solda;
• 30 toneladas de peso;
• 180 m2 de área construída;
• 5,5 m de altura;
• 25 m de comprimento;
• 2 vezes maior que MARK 1
• realizava uma soma em 0,0002s;
• realizava uma multiplicação em 0,005 s com números de 10 dígitos. Disponível em: <http://silverse-
ason.wordpress.com/2012/10/25/from-eniac-to-apple/>. Acesso em: 20 dez. 2012.
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
1) memória;
2) unidade aritmética lógica;
3) unidade de controle;
4) dispositivos de entrada e de saída.
Unidade Aritmética
Unidade de Unidade
Acumulador A
Controle Input/Output
Registro R
Porém, o custo dessas máquinas era elevado, o que restringiu sua utilização a aplicações
estratégicas do governo e a grandes empresas.
Figura 2 Transistor.
Lei de Moore
Gordon Moore, um dos fundadores da Intel, fez uma observação em 1965 que, hoje, é
conhecida como Lei de Moore.
A Lei de Moore prevê um crescimento de 60% ao ano para o número de transistores em
um único chip, e, consequentemente, na capacidade de memória e de processamento.
Observe, na Figura 4, a Lei de Moore.
Para que este modelo funcione, deve existir em cada cartão uma instrução. O operador
segue de escaninho em escaninho, fazendo exatamente o que está escrito em cada cartão, até
encontrar um cartão contendo uma instrução que ordene que ele pare. (Disponível em: <http://
venus.rdc.puc-rio.br/rmano/comp3mh.html>. Acesso em: 24 abr. 2005).
Computador
Máquina capaz de executar uma ou mais tarefas, conforme uma programação prévia, com
o objetivo de solucionar um ou mais problemas.
Hardware
Parte física do computador. São: as placas, o monitor, a impressora etc.
Software
Parte lógica do computador, ou seja, os programas.
Instruções
Representação elementar da ação de um computador. Determina o que ele deve fazer
naquele instante.
Programa
Conjunto de instruções para que o computador desenvolva uma determinada tarefa.
Linguagem de máquina
Trata-se do conjunto ordenado de 0(s) e 1(s) que determina, passo a passo e diretamente
para o hardware do computador, o que deve ser feito. Em outras palavras, é o programa tradu-
zido para uma linguagem capaz de ser executada pelo computador.
Tradutor
Programa utilizado para realizar traduções de uma linguagem para outra. Normalmente,
traduz um programa que está escrito em uma linguagem qualquer, para um programa escrito
em linguagem de máquina, ou seja, uma linguagem que o computador possa executá-la.
Interpretador
Traduz linha a linha de um programa, escrito em uma determinada linguagem, para a lin-
guagem de máquina.
Exemplificando:
O tradutor pega uma linha do programa e a traduz; em seguida, o computador executa a instrução.
Depois, o interpretador volta para pegar a próxima linha do programa para ser interpretada. No final,
não sobrará nada que não seja o programa fonte (escrito na linguagem fonte).
Compilador
Traduz todo o programa para a linguagem de máquina, gera um arquivo com o resultado
da tradução, conhecido como arquivo executável (que armazena o programa em linguagem de
máquina) e, somente a partir desse ponto, é que o programa poderá ser executado quantas
vezes forem necessárias.
Máquinas Multiníveis
As máquinas atuais são compostas por vários níveis, cada uma desempenha uma determi-
nada função e relaciona-se com outros níveis de outras camadas.
A idéia é resolver um problema complexo por partes menores e mais simples, que, quan-
do trabalhado em conjunto, desempenham a mesma função que teria se toda a organização
fosse implementada em um único nível.
A construção do projeto fica mais fácil, além de detectar erros e a divisão de tarefas.
O nível mais baixo é o mais próximo da máquina real, ou da parte física do computador.
Conforme os níveis vão ficando mais altos, eles se aproximam com a lógica dos seres hu-
manos e distanciam-se da máquina.
© U9 - SAP2: Arquitetura e Programação 209
Pelo menos um nível tem que ser implementado em hardware (parte física do computa-
dor) e os outros podem ser ou não implementados em software (parte lógica do computador).
Quem define como cada nível deverá ser implementado são os engenheiros do projeto.
Eles avaliam questões, como: custo financeiro, tempo, desempenho, complexidade, dentre ou-
tras variáveis, para definir se um determinado nível deverá ser implementado em software ou
em hardware.
Imagine um caso isolado, em que você tem um problema para ser resolvido e poderá
dividir sua resolução em duas partes, uma parte em um nível físico e outra em um nível lógico.
Como você determinaria o que seria implementado em software e o que seria implementado
em hardware?
Se implementarmos quase tudo em hardware, teremos um sistema muito rápido, porém a
complexidade de hardware será maior. Se optarmos por implementar quase tudo por software
e o mínimo necessário por hardware, teremos um hardware simples e barato, porém um siste-
ma lento e um software complexo e difícil de ser mantido.
Então, o que deverá ser implementado no hardware e no software? Esta é uma questão
que os engenheiros envolvidos na construção de um sistema de computação deverão analisar e
definir de forma adequada para obter um bom resultado.
Cada nível de uma organização, independente de como foi desenvolvida (seja por softwa-
re ou por hardware), ou da sua localização, poderá ser visto como um único computador que
pode ser real (hardware) ou virtual (software) e que, além disso, deverá receber instruções do
nível superior e executá-las, utilizando recursos do nível inferior.
Observe o exemplo de um computador multinível.
Máquina Virtual
Máquina virtual é um nível implementado por software, que trabalha exatamente como
um computador real.
Veja, como exemplo, as máquinas multiníveis apresentadas anteriormente. Cada nível
possui um conjunto de instruções próprias. Assim, para programar em um determinado nível,
basta conhecer seu conjunto de instruções.
Se o nível está executando as instruções diretamente no hardware, ou se ele depende de
outros níveis para chegar a executá-las, não é uma informação relevante para quem está geran-
do um programa. Assim, cada nível pode ser visto como um computador real.
O fato de considerar o que não é necessário saber sobre a forma de execução das instruções é
chamado de abstração e facilita o entendimento do computador como um todo.
Veja o exemplo a seguir.
Programas em Ln são
Máquina Virtual Mn interpretados e traduzidos
por um interpretador
Ling Máq - Ln residente na máquina Mn-1
Máquina Virtual M1
Ling Máq - L1
Programas em LD são
Máquina Virtual MD interpretados e executados
diretamente pelo hardware
Ling Máq - LD do computador.
4. E-REFERÊNCIAS
Lista de figuras
Figura 1 Máquina de Von Neumann. Disponível em: <http://venus.rdc.puc-rio.br/rmano>. Acesso em: 24 abr. 2005.
Figura 2 Transistor. Disponível em: <http://venus.rdc.puc-rio.br/rmano/comp2hc.htm>. Acesso em: 24 abr. 2005.
Figura 3 Apple II. Disponível em: <http://venus.rdc.puc-rio.br/rmano/comp2hc.html>. Acesso em: 24 abr. 2005.
Figura 4 Lei de Moore. Disponível em: <http://www.ime.usp.br/~is/ddt/mac339-01/aulas/www.linux.ime.usp.br/michele/
mac339/tec_info.html>. Acesso em: 24 abr. 2005.
Figura 5 Dilbert, de Scott Adams. Revista Exame. Disponível em: <http://wwwusers.rdc.puc-rio.br/rmano/ri.html>. Acesso em:
20 dez. 2012.
© U9 - SAP2: Arquitetura e Programação 213
Barramentos
Barramento de Controle
O barramento de controle do 8085 não está representado no diagrama de blocos do 8085,
porém, funciona de forma semelhante ao barramento de controle do SAP2, incluindo os sinais
de Carga e Habilitação presentes nos registradores de três estados.
O barramento de Dados e Endereços é multiplexado, o que significa que hora pode estar
sendo utilizado para trafegarem dados e hora para trafegarem instruções.
Acumulador
O acumulador possui uma saída de três estados para o barramento de dados de 8 bits e
também uma saída de dois estados para a ULA.
Registrador Temporário
O registrador temporário é utilizado para o armazenamento temporário de operandos,
para posterior movimentação para a ULA. Ele possui uma saída de três estados para o barramen-
to de dados de 8 bits e uma saída de dois estados para a ULA.
ULA e Flags
A ULA recebe os operandos de uma operação por meio do registrador temporário e do
acumulador. Após executar a operação designada, o resultado será armazenado no acumulador
por meio do barramento de dados.
O 8085 possui cinco flags, observe a seguir suas funções:
• flag de zero: é setado quando o conteúdo do registrador for igual a zero;
• flag de sinal: é setado quando o conteúdo do registrador tornar-se negativo;
• flag de transporte: utilizado quando ocorre estouro nas operações aritméticas;
• flag de paridade: é utilizado para verificar a paridade do conteúdo do acumulador;
• flag auxiliar: utilizado em operações BCD.
Temporização e Controle
O módulo de temporização e controle é o responsável por gerar os pulsos de CLOCK e os
sinais de controle (palavra de controle) que irão sincronizar e controlar todos os registradores da
máquina (sejam eles internos ou externos).
Registradores da CPU
Os registradores internos da CPU desempenham funções importantes. Eles funcionam
como se fosse uma pequena memória RAM, endereçável e com capacidade de leitura e escrita.
São exemplos de Registradores da CPU: Contador de Programas, Apontador de Pilha, e o
Incrementador/Decrementador.
Existem outros registradores da CPU de propósito geral.
Buffers
O 8085 possui um buffer de endereços e um buffer de dados/endereços para a manobra
de bits para fora ou para dentro do processador.
© U9 - SAP2: Arquitetura e Programação 215
Controle de Interrupção
Se um processador tivesse que ficar checando a todo o instante se algum dispositivo de
entrada e saída estivesse necessitando de sua atenção, o desempenho do processamento de um
programa ficaria extremamente comprometido.
Para solucionar este problema existe o conceito de interrupção. Fazendo uma analogia
com o nosso dia-a-dia, imagine que agora, durante a leitura desta apostila, o seu telefone to-
casse; você seria interrompido, provavelmente atenderia ao telefone e depois (espero) voltaria
a ler a apostila.
A Interrupção do 8085 e de todos os projetos de computadores, funciona da mesma for-
ma.
O processador fica processando o tempo todo, sem se preocupar com o que está ao seu
redor, e quando for o caso um sinal de interrupção irá fazer com que ele pare o que está fazen-
do e atenda, por exemplo, à necessidade de um dispositivo de E/S, retornando em seguida ao
processamento.
Um processador pode ter mais de uma entrada de interrupção e definir prioridades para
atendê-las.
2. INSTRUÇÕES
As instruções apresentadas na unidade 7 (SAP1) são totalmente compatíveis com o 8085.
Além dessas instruções, algumas outras foram acrescentadas.
Não é o objetivo entrar no mérito dessas novas instruções neste momento. É importante
que você conheça um pouco da arquitetura desse processador da INTEL.
O 8085 é o precursor de muitos outros processadores da Intel, todos com a compatibili-
dade preservada.
Observe, no quadro, os sucessores do 8085 por ordem, cronológica:
DATA PROCESSADOR
1978 8086
1979 8088
1982 80186
1982 80286
1985 80386 DX
1988 80386SX
DATA PROCESSADOR
1989 80486 DX
1991 80486 SX
1993 Pentium
1995 Pentium PRO
1997 Pentium MMX
1997 Pentium II
1999 Pentium III
2001 Pentium IV
Microcontroladores
Já sabemos que a diferença entre um processador e um microcontrolador é a presença,
dentro do chip do microcontrolador, de dispositivos como: memórias, recursos de entrada e
saída, conversores como, por exemplo, conversor analógico digital etc.
Tudo isso permite apelidar o microcontrolador como um computador de um só chip.
Então podemos concluir que o microcontrolador é superior ao processador, que depende
de dispositivos externos para funcionar. Certo?
Errado, cada um tem suas vantagens e desvantagens.
O processador é muito mais robusto e possui a capacidade de executar muitas tarefas
distintas, o que o faz ser apropriado para o uso em aplicações genéricas. Já, o microcontrolador
tem funções mais direcionadas às rotinas de controle, são mais simples, mas possuem menor
capacidade de processamento.
Então vamos à pergunta que você já deve estar formulando: Qual usar?
Se um microcontrolador atender a todas as exigências de um projeto, então é ele mesmo
que deve ser utilizado, pois é mais simples, mais barato e nem por isso deixa de ser confiável.
No entanto, se o microcontrolador não atender aos requisitos, aí será necessário projetar um
hardware mais complexo com o uso do processador ou de processadores.
Você sabe quem fabrica microcontroladores?
Existem muitos fabricantes e na maioria das vezes são os mesmos que fabricam processa-
dores. Ex: Intel, Motorola, Microchip, Atmel e muitos outros.
O microcontrolador mais conhecido, principalmente pelos hobistas, é o PIC da Microchip,
mas seus concorrentes o AT90S1200 e o ATMEGA, ambos da ATMEL, também são ótimas opções.
2. MICROCONTROLADOR AT90S1200
O microcontrolador que apresentaremos a seguir é o AT90S1200 da ATMEL. Ele é um dos
que oferece uma boa relação custo/benefício.
Veja as características do microcontrolador, a seguir:
• 1Kb Flash é uma tecnologia extremamente vantajosa, em que se pode escrever e apa-
gar os dados por aproximadamente 1.000 ciclos de escrita e apagamento a uma alta
velocidade e o mais interessante, no próprio circuito. (memória de programa).
• 64 Bytes EEPROM também pode ser programada no próprio circuito e possui um ciclo
de escrita/apagamento de aproximadamente 100.000 ciclos. (memória de dados).
3. E-REFERÊNCIAS
Lista de figuras
Figura 1 Encapsulamento do Microcontrolador AT90S1200. Disponível em: < www.atmel.com>. Acesso em: set. 2005 .
Figura 2 Arquitetura interna do microcontrolador AT90S1200 . Disponível em: <www.atmel.com>. Acesso em: set. 2005.