Escolar Documentos
Profissional Documentos
Cultura Documentos
12
INtRODUÇÃO AOS
MICROPROCESSADORES E
MIcROCOMPUTADORES
Sumário
dr ae didesvantagens
a Avaliar as Entevantagens entre os váriosmicropesador tieposum
ferença entre um de formato de palavas do computador.
a Analisar os chamados ciclos de busca e execuç o ocorridos durante a execução de uma instrução
básica
a Entender
Descrevero aspapel operacional
seqüènci dos diferentes
as de eventos tipos dedurante
que ocorrem os ciclutioslidezadosleituraem emicrocomputadores.
barramento escrita.
Introdução
Näo há nenhum exagero em dizer que os microprocessadores e os microcomputadores provocaram uma tremenda revolução
na indústria eletrónica e, por conta disso, causaram um tremendo impacto em muitos aspectos da vida de todos
ampl a variedadeemdelarga
A integração produtos (LSI) reduziu
escalautilizam tanto omicroprocessadores
rotineiramente processadores queem osseusprojprojetiestetas de uma
tamanho e o custoe dosmicrocomputadores
Neste capítulo, vamos estudar os princípios básicos da operação dos microcomputadores. Uma vez que existe
diversos livros-texto dedicados exclusivamente a este assunto, nosso principal objetivo neste capítulo é fornecer uma
base sólidaaquiparaenfocados
princípios Apesar de nosdeconcentrarmos
posteriores.a computadores
estudos aplicam-se todos nos microcomputadores, muitos dos conceitos e
tenetet um erro na elaboração do programa, ao fornecer um dado errado para ser processado, 0 computador produzirá
resultados errados. Um ditado bem popular entre os iniciados na ciência da computaçação diz que “lixo entra, lixo s
de "lixo" significa informaçáo errada. Ou seja, se o computador receber “lixo", vai processar "lixo" ae dar “lixo"
como resultado.
Talvez a pergunta feita no subtitulo ficasse melhor se fosse formulada de outra maneira: como os computadores
utam um programa? Esta questão é respondida pela análise do diagrama da arquitetura (combinação das diversa
partes componentes) do computador, e passando depois para o estudo do processo de execução de instruçóes propriamente
dito, processo este que acontece de maneira cielica durante a execução de um programa. Vamos fazer exatamente ista
analogia ao processo de execução de programas, analogia esta que
contempla diversos conceitos envolvidos na operação do computador.
gce n bkshs
nu neasut9s
BOMBAI Enate5ur dinrsi
20
(NHMo 201ote8
Unidade
Ca1gn
(UAL)
Do Para 0
exter ( N
Controlea
Cnt
mória
ética-lógica podem ser transteridos para a memória (seta 4) ou para a unidade de saída (seta 5).
Unidade de Memória A memória armazena grupos de digitos binários (palavras) que podem representar instruçóes
a serem executadas pelo computador ou dados para serem operados pelas instruçóes durante a execução de um programa,
Ela também serve como local de anmazenamento para resultados intermediários ou finais obtidos pelas operaçóes aritméticas
fetuadas pela unidade aritmética-lógica (seta 4). A memória é uma unidade que executa somente duas operaçóes:
leitura e escrita. 0 funcior la também é controlado pela unidade de controle, a qual indica, através
de sinais de controle (seta 6), qual das duas operaçóes a memória deve realizar naquele instante. Um determinado
adereço pode ser acessado pela unidade de controle, que gera o endereço desejado e 0 entrega à memória (seta 7).
As informaçóes podem ser escritas na memória vindas da unidade aritmética-lógica ou da unidade de entrada (seta 8),
mais uma vez sob o comando da unidade de controle. As informações podem ser lidas da memória para a unidade
aritmética-lógica (seta 2) ou diretamente para a unidade de saída (seta 9).
Unidade de Entrada A unidade de entrada é constituída por todos os tipos de dispositivos que obtém informaçóes
externas ao computador e as coloca na unidade de memória (seta 8) ou na unidade aritmética-lógica (seta 3). A unidade
de controle determina onde a informação de entrada deve ser colocada (seta 10). A unidade de entrada é usada no
armazenamento de instruçóes e dados na memória, para que o programa constituído por essas instruções e dados possa
ser executado. Esta unidade também é usada para entrar com dados na unidade aritmética-lógica, a partir de um dispositivo
externo, durante a execução de um programa. Alguns dos dispositivos de entrada mais comuns são teclados, discos
magnéticos, fitas magnéticas e conversores analógico-digitais (ADC's).
Unidade de Saída A idade de saída é1formada por todos os tipos de dispositivos usados para se transferir
informaçóes do computador para o "mundo exterior”. Os dispositivos de saída também são dirigidos pela unidade de
controle (seta 12), podendo receber dados de UAL (seta 5) ou da memória (seta 9), colocando-0s no formato apropriado
para consumo externo ao computador. Exemplos de dispositivos de saída são os displays, impressoras, discos magnético
fitas magnéticas, monitores de vídeo e conversores digital-analógicos (DAC'S).
Enquanto executa um programa, 0 computador tem necessidade de apresentar resultados ou sinais de controle
para 0 mundo exterior. Por exemplo, um sistema pode ter uma impressora de linhas como dispositivo de saída. Neste
caso, 0 computador envia sinais para que os resultados sejam impressos em formulário contínuo. Um pequeno microcom-
putador pode informar seus resultados usando um painel luminoso ou um display de LED's.
Interface 0 aspecto mais importante das unidades de ENTRADA e SAÍDA diz respeito ao interfaceamento, que
pode ser definido como 0 ato de combinar dispositivos muito diferentes, para que eles possam funcionar de forma
apativel e coordenada. Podemos também definir o interfaceamento de maneira mais específica, como sendo a sineroni-
ção da transmissão da informação digital entre o computador e os dispositivos externos de entrada e saída.
Muitos dispositivos de entrada/saída não são diretamente compatíveis com o computador por causa de diferenças
ocidade de operação, formato dos dados (hexa, ASCII, EBCDIC, binário), modos de transmissão (serial, paralelo)
níveis dos sinais lógicos. Tais dispositivos precisam de circuitos especiais de interface que permitam que eles se comuniquem
hidades de controle, aritmética-lógica e de memória do computador ao qual elas vão se ligar. Um bom exemplo
éo caso do terminal de vídeo, que pode operar como dispositivo de entrada e de saída. Este terminal transmite e
recebe dados serialmente, um bit de cada vez, enquanto a maioria dos computadores manipula dados em paralelo.
Assim, 0 terminal de vídeo precisa de um circuito de interface que faça as modificaçóes necessárias nos dados transmitidos/re-
cebidos, de maneira a permitir que a comunicação terminal-computador e computador-terminal seja feita sem problemas.
Unidade de Controle A função da unidade de controle parece óbvia à primeira vista. Como 0 nome indica,
ela controla (dirige) a operação de todas as demais unidades componentes do computador, fornecendo-Ihes sinais de
aporização e de controle. Vista por outro ángulo, a função da unidade de controle é semelhante à de um maestro,
que tem a responsabilidade de manter todos os membros de uma orquestra em perfeito sincronismo. Esta unidade
contém circuitos
execução lógicosdecombinacionais
das instruções um progra e seqüenciais, responsáveis pela geração dos sinais de controle necessários à
A unidade de controle busca uma instrução da memória, enviando seu endereço (seta 7) e um comando
unidade de memória. A instrução armazenada no endereço enviado é depois transferida para a unidade de
controle (seta 11). Esta instrução, que está codificada em binário, é então decodificada pelos circuitos da unidade de
controlepara
de atrole, determinarà execução
de qual desta struções estamos falando, 0 controle usa esta informação para gerar os sinais
das ininstrução.
COn
necessários
SECiO 125/EEMENTOS BÁsIcoS DE UM MICROcOMPUTADOR551
pocessdorsdio sepostda
poatse Centrat dedeProcesamento)
(Unidade somonetes uma uniaentode, Fig 122, puei
NaNeido a middsdeade anméi ca-liga : eiuidade
arintnslio a vezes
com
l i d ade de separaracparte i n tei
moa estodo dornormalminmeompundonee,
ns pcesmeto g ente" do compatador das demas, i r emos us sta denomi n açáo di v ersas
ente èé impkemcaiapoidas ecomounveenos mdestaist,rdsdd,senomms nmi
emaipv msnoeroempdtsomi
meroprskonsdor.n,cioudaade centea
QUEsTÓES DE REVISÄO
unidades básicas que compõem um computador digital, e descreva sucintamente cada uma del
1. Ci0 equeas éciumnco processador?
0 que significa interfaceamento, no contexto de um sistema de computação?
U l0a0e de me
cks
RAM RO
Intertad
latera
e et n
de saida
Dispositivo5
de entrada
Dispositivos
de salda
Unidade aritméticalógica
Este é 0 microcomputa0or ( )
Responder aos sinais gerados pelos dispositivos de ENTRADA e SAÍDA, como RESET e INTERRUPT.
0 microproeesador comtém todos os cireuitos umkógichip.
cos necessári
Lio
s à realização
Apesar odisso, podemos destats fungóes.
controlar o queTalocorre nio esd
lógicadentro do
sprocessador através dos programas colocados na memória para que o microprocessador os execute. Isso torma
ponivel externamente, por estar en
hicroprocesador bastante versátil quandoqueremos mudar a forma dele operar, trocamos simplesmente os programas
nazenados nas suas memórias RAM (sofnware) e ROM (firmware) em vez de alterar seus circuitos eletrónicos (hardware).
Alógica interna do mictoprooessador e extremamente complexa, estando distribuída por trés unidades básicas;
a wnidade de controle e iemporizaçao, a unidade de armazenameno interno e a unidade arimérica-lógica (ver Fig. 12.4).
Vale observar que, aleém das funçóes especificas de cada uma destas unidades, a interação entre elas é um ponto muito
importante no estudo do microprocessador. As principais funçóes de tais unidades, bem como as interagçóes entre elas,
serão analisadas a seguir.
Afunção primordial da unidade de controle e temporização é buscar as instruçóes na memória e decodificar (interpretar)
ódigos de operação, gerando os sinais de controle e de temporização necessários a que as demais unidades do
nicroprocessador possam efetivamente executar tais instruções. Esta unidade também gera sinais de controle e de tempori
zação para dispositivos externos ao microprocessador, como memórias do tipo RAMe ROM e dispositivos de ENTRÁDA
e SAÍDA.
A unidade de armazenamento interno contém diversos registradores utilizados durante a execução de uma instrução
pelo microprocessador. 0
des é 0 contador de programa (program counter – PC), responsável pelo
dele
do endereço da próxima instrução a ser executada pelo microprocessador. Iremos usar o PC em nossas
discussóes subseqüentes sobre execução de programas. Além do PĆ existem diversos outros registradores que realizam
várias funçóes, como: armazenamento do código de operação de instruçóes que estiverem sendo decodificadas, armazena
to de dados que estão sendo operados pela unidade aritmética-lógica, armazenamento de endereços de dados a
serem buscados na memória, e muitos outros registradores de propósito geral, cuja utilização é controlada pelas instruções
do programa em execução. *
A unidade aritmética-lógica realiza uma gama variada de operaçóes aritméticas-lógicas sobre dados. Tais operaçóes
sempre incluem a adição, a subtração, as operações lógicas como o AND, OR, EX-OR, operações de deslocamento,
além de operações de incremento e decremento. Os microprocessadores mais avançados têm uma UAL que pode fazer
multiplicação e divisão. Durante a operação do microprocessador, as operações executadas pela UAL estão sob controle
da uanidade de controle e temporização, a qual naturalmente faz o que o manda o código de operação da instrução
que foi lida da memória para ser executada.
Seção de
UAL | 1"4 l1eI I I ( w 1 1 |
temporário
Seção de
vole e temponzaya
Microprocessador
Fig. 12.4 Unidades funcionais de um chip microprocessador.
Os registradores da unidade de armazenamento são divididos em registradores de propósito geral, cujo uso é definido pelas instruções em execução,
e registradores de propósito específico, de uso exclusivo do processador, que os utiliza no processo de execução das instruções de um program
Além do PC, existem diversos outros registradores de propósito específico, como 0 registrador de instruções (instruction register IR), que arn
código da operação da instrução que está sendo executada, 0 registrador de endereços de memória (memory address register MAR), que
endereço da informação a ser lida ou escrita na memória, e 0 registrador de dados de memória (memory buffer register – MBR), que arn
informação a ser lda ou eScra Ia mCmUTa.
SEÇiO 126/ PALAVRA DE COMPUTADOR553
QUESTÓES DE REVISÄO
J. Espl as diferenças
Cite iqosueelementos básicosentrede um croprocesador e um microcomputador.
um mimicrocomputador.
Cite as trés unidades principais de um microprocessador.
2.
3,
4a seus
udores tal tananho está na faixa detém 32 bits.tamanhos de computador entre 8a 32 bits, enquanto que nos microcompu-
de 32-6
Os microcomputadores mais modernos (1BM PS2,ÄPPLE Maclntosh)
usum tamanho de palava de 16 e 32 bits. Em geral, um computador com palava de tamanhos maiores pode executar
pogamas numa velocidede mais alta pelo fato de a palav deste tipo de computador aaregar mais iniormaçso do
qgue a de um computador com palavra menor. No entanto, palavtas de tamanho muito grande signitiscam mais linhas
no barramento e, em consequéncia, mais conexóes entre o processador e memória, e entre o processador e dispositivos
dede entrada e saída, mais bits nos registradores internos, além de outros detalhes que complicam e encarecem o projeto
um computador.
Já sabemos de discussões anteriores que um grupo de oito bits é denominado byte. Por diversos motivos de natureza
histórica, o byte continua a ser usado até hoje como a unidade para descrever o tamanho da palavra e a capacidade
da memória dos computadores, mesmo os maiores, com tamanhos de palavras muito grandes. Diz-se que um computador
de oito bits tem palavra de um byte. Um computador de 16 bits tem palavra de dois bytes, e assim por diante. Uma
memória que possa armazenar 128K palavras de 16 bits, pode ter sua capacidade descrita como 256K byte
Tipos de Palavra de Computador Uma (palavvra, armazenada na memória de um computador, pode conter
um de dois tipos de informação — instruções ou dados. Dados podem ser informaçóes numéricas ou alfanuméricas
que são processadas pelo programa que o processador está executando. Os dados podem estar em vários formatos,
incluindo números binários com e sem sinal, números em BCD, em ponto flutuante, caracteres em BCD ou ASCII
e divers0s outros formatos. A seguir, apresentamos um exemplo de como 0 valor numérico + 86 o será armazenado
numa palavra de oito bits:
01010110
Abaixo está a representação em ASCII do caracter “ ", também numa palavra de oito bits:
01010110
Observe que 0 conteúdo das duas palavras é idéntico. 0 computador não tem como saber a diferença entre os dois
conteúdos. É da responsabilidade do programador conhecer os tipos de dados que estão sendo armazenados, para assegurar
que o programa possa interpretá-los e processá-los corretamente.
Apresentamos a seguir um exemplo de uma palavra de 16 bits usada para armazenar dois caracteres ASCII, “V»
e“W”;
0101 110010
Esta mesma palavra de 16 bits pode ser usada para representar +22103. Fica claro que quanto maior o tamanho
palavra,
da pala maiores serão os valores numéricos possíveis de armazenar nesta memória, e mais caracteres poderão
armazenados por palav
Palavras de instrução são bem mais complexas do que as de dados. Este assunto será discutido na seção seguinte.
554CAPTULo 12/INTRODUÇÁO AOS MICROPROCESSADORES E MICROcOMPUTADOREs
QUESTÖES DE REVISĀO
em duas palavra
(bits de 16 a 19) contém o código de operação (opcode), Os quatro bits do código de operação representam a operaçãc
que o computador está sendo instruído a realizar, como adição ou subtração. A segunda parte (bits de 0 a is) é o
ória onde 0 operando está armazenado.
ndereço do operando, que representa 0 luga
Palavra 00 mSIuya▇
ódigo de
Endereço de
operando de 16 bits
C
de quatro bits |
Com quatro bits usados para código de operação existem 2' = 16 possíveis códigos de operação diferentes, cada
m dos quais indicando uma instrução diversa. Isto significa que um computador que utilize este formato de instrução
fica limitado a executar apenas 16 instruçóes diferentes. Um computador mais versátil precisa ter mais instruções básic
qüência, precisa de mais bits no seu código de operação. De qualquer maneira, toda a instrução possível
de ser executada por um computador tem associado a ela um código de operação específico, através do qual o computador
(unidade de controle identificá-la (decodificá-la).
A palavra de instrução da Fig. 12.5 tem 16 bits reservados ao código do endereço do operando. Com estes 16
bits, existirão 21 = 65.536 endereços diferentes. Então esta palavra de instrução pode especificar 16 códigos de operação
versos e 21 = 65.536 endereços de operandos. Como exemplo podemos tomar a seguinte palavra de instrução de
dive
iver
20 b its
0 0 i0 10 11 0 10 01 1 10 0
Código. Código
de operação de Endereço
0 código de operação 0100 representa uma das 16 possíveis instruções que este computador está preparado para executar.
Vamos assumir que tal código de operação é da instrução de adição (ADD). 0 endereço do operando é010i101001110010
ou, numa representação mais conveniente, SA72 em hexa. De fato, esta palavra de instrução poderia ser representada
em hexadecimal, como abaixo:
4 5 A 7 2
Código Endereço
de operação
Esta palavra de instrução informa ao computador para fazer o seguint
Buscar a palavra de dados armazenada no endereço SA72, enviá-la para a unidade aritmética-lógica e adicioná-la
ao valor armazenado no acumulador. 0 resultado da soma deve ser armazenado no acumulador. (0 conteúdo anterior
do acumulador é perdido.)
Endereço do Endereço do
codigo operando 1 Endereço onde
lde operação
perando 2
amazenar 0 resulta
Código
de
Rit (
u a u uU y
r Código
V rar .
ind
Byte 2 do operando
Byte 2
Endereço
do operando
Um bom exemplo éa instruço de limpar o aculador clear the accumulator (CLA), que informa a0 computador
que todos os flip-flops do acumulador devem ser colocados no estado z
0 primeiro byte da instruçáo de dois bytes e um código de operação, eo segundo é um código de endereço de
oito bits, especificando o lugar na memória onde está armazenado o operando. Numa instrução de trés bytes, 0 segundo
eo terceirò bytes formam um endereço de 16 bis para o operando. Nas instruçóes multibyte, os dois ou trés bytes
Isto está
que formam a instrução devem ser armazenados em endereços consecutivos da memória.ria onde cadailustrado no Quadro
byte (palavra) está
i2.1 para instruçóes de trés bytes. A coluna da esquerda lista os endereços na memória
armazenado. Estes endereços estáo em codigo hexadecimal. A segunda coluna dá a palavra binária na forma como
ela realmente é armazenada na memória. A terceira coluna é o código hexa correspondente à palavra binária. Examine
cuidado este exemplo antes de prosseguir em seu estudo.
Os trés bytes armazenados nos endereços 0020, 0021 e 0022 constituem a instrução completa para a adição do
dado armazenado no endereço 3SF6 ao valor armazenado no acumulador. Os segundo e terceiro bytes guardam os
oito bits menos significativos (LO) e os oito bits mais significativos (HI) respectivamente, do endereço do operando,
Harmazenado no segundo byte e LO armazenado no terceiro
uns mierocomputadores usam a ordem invers
byte oda instrução. O endereço 3SF6 da memoria também aparece no quadro; ele contém a palavra de dado (7C) que
a unidade de controle do computador deverá buscar na memoria para enviar à unidade aritmética-lógica para adição.
U LNU 1 .1
maC eço ae
Memória (Hex ) Binário Descrição
QUESTÕES DE REVISĀO
As palavras de instrução que foram estudadas anteriormente são denominadas instruções em linguagem de máquina
pelo fato de estarem representadas por 1's e ('s, a única linguagem que a máquina (computador) entende. Muitas outras
linguagens podem ser usadas para se programar um computador e vocé já deve estar familiarizado com algumas delas,
no BASic e Pascal. Estas e outras linguagens de alto nível são projetadas para facilitar a escrita de progra
COm0
É inimpportante
n observar que os programas escritos em linguagem de alto nível devem ser convertidos para a linguagem
saçio 128/Eaiçio DE UM PoGaNA BN LNGLAGEN DE NiqU 557
QUADRO 12.2
A próximadoinstrução
Jump:no endereço opera
será obtida da especificada
em vez de ser obtida dda
JPZ
01110110/76 2qüéncia.
HLT
Jumpz: A próximase 0instrução
do operando acumulador endereso
obtida dozero.
será contiver Cas
00111111/SF contrário, será obtido da seqüéncia.
O computador
Pare:instruçóes a
pára de operar. Näo há mai
. SeCasoo valor de DIF for zero, o programa desvia para o endereço 0400, buscando lá a próxima instrução a ser executada.
contrário, o programa pára
0 Quadro 12.3 mostra o programa completo tal como ele aparecerá na memória do computador. Na verdade só
s duas primeiras colunas do quadro dizem respeito ao programa em linguagem de máquina. As demais informações
foram incluídas com propósitos meramente descritivos. A primeira coluna lista 0 endereço em hexa de cada localização
de memória usada pelo programa. A segunda dá 0 equivalente em hexa da palavra armazenada em cada I
de memória. Lembre-se de que tais valores em hexa representam os endereços reais e as instruções que 0 computadon
entende.
A terceira coluna fornece o mnemónico eo endereço do operando (se houver) associado a cada instrução. A última
coluna descreve a operação realizada por cada instrução. Por exemplo, a primeira instrução do programa é uma instrução
de trés bytes. 0 primeiro byte armazenado no endereço de memória 0000 éo código de operação SB. Os segundo
e terceiro bytes, armazenados nos endereços 0001 e 0002 representam 0 endereço do operando, 0300. 0
para esta instrução é LDA SO300. No caso, LDA é abreviação da operação de carga no acumulador (load accunulator) e
S0300 é dereço do operando, 0 símbolo $ é muitas ve es usado para indicar que 0 endereço está representado
em hexadecimal. Quando o computador executar esta instrução, ele vai ler o dado Y que está armazenado no endereço
(1900 e carregá-lo no acumuladon
0 programa começa no endereço 0000 e termina no 000C. Os endereços 0300 e 0302 são usados para armazenar
os dados. Ös conteúdos de tais endereços não estão indicados no, quadro pelo fato de os mesmos variarem no dec
a exæcução do programa. As localizaçóes de memória entre 000C e 030 não estáo sendo usadas.
Execução do Programa Vamos agora examinar como o computador trbalha em cada um dos pasos da
ação do programa em questão. Nossa intenção aqui é apenas resumir as principais operações, sem descer a detalhes
de como as coisas realmente acontecem dentro do computador. Em particular, veremos que o computador está sempre
m um de dois tipos de ciclos de operação: (1) o clelo de busca durante o qual a u tidade de controle busca a instruçad
(abdligo de operação e endereço) na memória e (2) o cielo de execuçio, durante o qual a unidade de controle gen
i sinais para a execução da operação indicada no código de operação da instrução.
(5 S
558CAPÍTULO 12/INTRODUçiO AOS MICROPROCESSADORES E MICROcOMPUTADORES
QUADRO 12.3
Endereço de Palavra de
Descrição
Memória (Hex )Memória (Hexa)Mnemónico
0000 SB LDASO300 Carregar o dado (Y) do endereço
M()1
(0300 no acumulador
(0)2
0005
programa
ponto,
12. Se o dado no acumulador não f
guesairouçáBCo deaoami r á Hval o r n0c. comtruodle idestncreementendera oeo,PCsendo
for igAualpróa xizetmao,inastuniuçidadeo serdeé bust unidadesdade modo
de trérsecomheci
parada (HLT), cuja execuçio fará com que a unitade de conttole parte asbuscas e execugóes de instruçóes.
Este programa bastante simples ilustra muitas das a
Jpruem
mpor t a nt e de
ent mágui
e nder n ai
eue , e mas
a r nem
eoecuci chee
o de pero
um pr o de
gr a most
ma e r
t a
e t aspasopotencia pasa,
a liedesderantersti
d e kama eni a um comput
ue dee sequi
sment
coIsas que ocorrem durante a execução de um programa em
e ncal , ador.edo
pani
neitoumulendzeo
eaneeeiesindooari sepeisezewoPz) u00 em weos eaempl o ) . o seoi e ncaneno do pr a geama s o mods vaana i stupi o
É
total de execução
QUESTÓES DE REVISÄo
Qual é a diferença entre um programa em linguagem de máquina e um programa em linguagem de alto nível?
2. 0 que vem a ser o mnemónico de uma instrução?
J, 0Qualqueé anormal
4.
execução? mente ocorre durante o ciclo de busca de uma instrução na memória? E durante o ciclo de
função do contador de programa (PC)?
Barramento de Endereços. É um barramento unidirecional pelo fato de a informação fluir sobre ele numa única
direção, sempre do microprocessador para a memória ou para os dispositivos de ENTRADAISAÍDA. Somente o micropre
ador pode colocar níveis lógicos nas linhas do barramento de endereços, gerando um máximo de 21=65.536 endereços
diferentes. Cada um deles corresponde a uma localização de memória ou a um dispositivo de ENTRADAISAÍDA.
Por exemplo, 0 endereço 20A06 poderá corresponder a uma localização na RAM ou na ROM, onde uma palavra
560 CAPÍTULO 12 /INTRODUÇiO AOS MICROPROCeSSADORES E MICROcOMPUTADORES
Barramento de endereço
81 Barramento de dac
Do|
R/w|
Circuito
2
gerador
de
RES O Barramento Interiace
clor
de controle de saida de entrada
INT
(16)Barrame
Dado Porta orta
de saída ntrada
cnIO e U
de saída
de en la
114 1
de oito bits está armazenada, ou pode ser uma referência a um registrador, também de oito bits, que é parte do circuito
de interface para o teclado.
Quando a unidade central de processamento desejar comunicar-se (ler ou escrever) com uma certa localização de
memória ou com um determinado dispositivo de ENTRADAISAÍDA, ela coloca o código do endereço respectivo em
us 16 pinos da saída de endereço, Aj até Aj , ou seja, no barramento de endereços. Os bits deste endereço, presentes
nas linhas do barramento de endereços, são então decodificados para selecionarem uma determinada localização de
nória ou um dispositivo de ENTRADAISAÍDA. Este processo de decodificação requer usualmente um circuito descodi-
ficador, não mostrado no diagraa
Barramento de Dados. É um barramento bidirecional pelo fato da informação fluir sobre ele em duas direções,
do microprocessador ou para o microprocessador. Os oito pinos de dados do microprocessador, D, a D,, podem funcionar
omo pinos de entrada ou pinos de saída, dependendo se o microprocessador estiver realizando uma operação de leitu
ou de escrita. Durante a leitura, estes pinos agem como entrada, recebendo os dados que foram colocados no bar
de dados pela memória ou por um dispositivo de ENTRADAISAÍDA selecionados pelo código do endereço posto pelo
microprocessador no barramento de endereço. Durante a escrita, estes mesmos pinos atuam como saída, colocando
dados no barramento de dados para serem enviados à memória ou a um dispositivo de ENTRADAISAÍDA selecionados
pelo microprocessador da mesma forma que na leitura. Em ambos os casos acima, Os dados transmitidos são palavras
de dados de oito bits, pois nosso microprocessador manipula dados de oito bits.
Barramento de Contr Trata-se do conjunto de sinais utilizado na sincronização dos diversos elementos component
do microcomputador. Alguns destes sinais de controle, tal como R/W, são sinais que 0 microprocessador envia para
outros elementos a fim de informá-los que tipo de operação está em progresso no momento. Os dispositivos de ENTRA-
DAISAÍDA também podem enviar sinais de controle para o microprocessador. Um exemplo éo sinal de RESET (RES),
que, quando aplicado em seu nível lógico BAIXO à entrada de mesmo nome do microprocessador, faz com que est
sinicie o processamento das instruções a partir de um determinado endereço, onde está armazenado um program
de inicialização do sistema. Outro exemplo é 0 sinal de interrupção (INī) que, quando aplicado em seu nível BĂIxO
pon um determinado dispositivo de ENTRADAISAÍDA à entrada de mesmo nome do microprocessador, faz com que
hesma
mes dé atenção a tal dispositivo.
sEçio 129/ BSTRUTURA THICA DE UM MICROcOMPUTADOR 561
sitmis de Clock Alguns micop oceuadons (Bs,
saesss,nioperozohnram coecon uun niooce sisisnalu decetidloeck.sendoNa dimodrador
c asi o n Rente29iemoscmsusotesdechsi
suegi si s t e ma dóde,
de chock aomo
do02, 6502) usam um sistema de clock de duas fases com
de o z%e
duas t
oto gue ambus as fao sve st o enere wamns
kenads de ,sioàs vez s gerados pelo micoposao, snsatameuredeocoralentode contole.asbes dent e i n ment ue asstee, deri s ki t i s de empo,
luas fases.
Portas de ENTRADASAÍDA
kado ou escrevendo na memóri a . ODurante
programa a execução
também de umexigprograma,
pode i r que el e0leimia couroprocesador
escreva em estáum dosconstantemeno
dida,sposipoderá
tivos
saiduantodo grande
dehrverentumradaconj sistema.delApesar do di a grama da Fi g . 12.7 motrar apenas um di s posi t i v
es conectados ao barramento do sistema microcomputador. Cada dispositivo de ENTRAo de eatrada sai
DaSAÍDA é normalmente
cão da interface conectado ao barramento do microcomputadon
é compatibiliza rcuito de intertace. A
o dispositivo
entre eles. A interface é necessária sempre spositoivomicrocomputador
que o dicom de ENTRADA deSAIDA ais dehaver
formausarquesinpossa controltrocae e dede tempo
dados
com fomatos elou niveis difetentes dos usados pelo microprooesador.
conheciPordoexempl tivo (telde eENTRADAISAÍDÀ
pela siog, laumingldiessaposiTTY co, emboraemumcodipouco
typewriter), que enviatíipniformaçóes go AScii para oé computador,
antiquado, o teleimpressor, mais
no modo
R/
Barramen
n
d r U 0V
antigo endereç
Barramento
de Oa0
Dado
Alta impedância vW I I
1emória
selecionada Barramento de
ou dispositivo de mazenadoe Fig. 12.10 Sinais de tempo para uma opera-
E/S habilitado no microprocessadon ção de leitura em microcomputador.
562 CAPÍTULo 12/INTRODUçiO AOS MICROPROCESsADORES E MICROcOMPUTADoRE
de transmissão serial, ou seja, um bit de cada vez sobre uma única linha de dados. O microcomputador, no entanto,
aceita dados vindos do baramento de dados na forma de oito bits paralelos. Neste cao, um circuito de interface é
do para converter o sinal serial da TTY em uma palavra de dados de oito bits paralelos, e outro para converter
os dados dos disdaposisaítivdosa dode microcomputador
Apesarparalelos ENTRADAISAIDAparaserem um sinal
tratados a serposi
serialcomo entregue
çóes deà memóri
TTY. a, eles são significantemente
diversosa dacapacimemóri
dade adeeminterromper
alguns spectos. Uma grande enquanto
o microprocessador diterença este éo fatoestiverde executando
os dispositivumos deprograma.
ENTRADAISAÍDA
Isto significa
queao miocdiroprocessador
spositivo de deENTRADASA
sua necessi d DA
ade de pode envi
comuni c a r
ar-se um
comsi n
elal
a . para
O miae entrada de
roprocessador i n terrupção
vai , (IN
então, i n ) a fi
terromperm dea iexecução
nformar
do programa em que ela está trabalhando no momento, e realizar a operação solicitada pelo dispositivo que a interromper
Nenhum tipo de memória é dotado da capacidade de interromper o microprocessador.
QUESTÖES DE REVISÁO
1. Descreva as funçóes de cada um dos trés barramentos que são parte de um sistema mierocomputador típico
0 que é um barramento unidirecional?
3. Qual dos barramentos inclui os sinais de clock?
operação completa de leitura ocorre em um período do clock. Normalmente, tal período fica entre 100 ns e 1Ò mo
para microprocessadores CMOS. A transição positiva de y começa o processo de geração pelo mieroprocessador dos
sinais R/e dos sinais de endereço. Após um pequeno retardo, a linha R/ vai para o nível lógico ALTO, eo barramento
de endereço passa a conter o novo código de endereço (ponto 1 do diagrama). Note que as formas de onda no barrament
de endereço mostram as duas possíveis transiçóes de suas linhas (BAIXO para ALTO e ALTO para BAIXO), pois
algumas das 16 linhas estarão mudando em uma das direçóes e outras na direção opos
Durante o pulso y,0 dispositvo ou a memória selecionada é habiltado (ponto 2) e começa a col car sua pala
de dados no barramento. Antes disso, as linhas do barramento de dados estavam em alta impedáncia, uma vez que
nenhum dos elementos conectados ao barramento estava habilitado. Em algum momento durante o pulso , os dados
no barramento ficam estáveis (ponto 3). Novamente as duas possíveis transições que as linhas de dados podem sofrer
estão mostradas no diagrama. 0 retardo entre o início do pulso ea estabilização dos dados no barramento depende
da velocidade de operação da memória e dos dispositivos de ENTRADAISAÍDA. Para as memórias, este retardo recebe
sç O 12.10/OPERAÇÓES DE LE URA E ESCRITA563
eeastes do mideopeen
ane de som tranicdeMa dano,cida en,
cecosadosNa (pato4 nto bsonnoetsio rde Ebaameni
ded,oune▇ dados NTRADA SAiDAen un do
o sio amnesdos
r
eeem a velcddes compativeis oom a tregitsca do cbet aikopuntosś sec a
A0peração de Escrita Os seginles pusos ocomen durme una spernęgdo de extitz
= O para ger
0mentemieroR/processador a os niveis lógicos adequados em sua linha RiW, para iniciar uma operaçáo de escrita. Normal-
escrita.
2. Smul taneamente,or mécropreesador
0 mcroproeessador ooloxasineatáo, umacolpalocaavrao oódide gdados oitle tits dene 16barasentoade
o de umde endereço bis no baramento de endereço.
dados atravi s de seus pinos
D,aD, ,quecomoestá0o agora
(essador
habilitadas acumulagiador. como saiosda.demaiEstas paleleamentos
ndo Todos vra de dados vem normamente
conectados stradorterdosuasmicsiropro
hao baramentode umnão regideveráo das
4, Ano posi çio de memóri
barramento. Todos aosesool
demaihidsaelouementos
o disposi ivo de aoENTRADASAÍDA
conectados selecioternadosuaspegam
barramento nao deverao de dados
entradasa palhabiavralitadas.
o sinalo procedi
DASAÍDA sinaisacitomabarramento
RWv eosmento
selbarramento
tem seu diadegramaendereço
habilitados
ecionados desão dados (ponto
de tempo(pontomostrado
2),emeoummicurto
croprocesador
. 12.11.,Maia memori
1) Durantena Fiogpuso
coltempo
oca seudentro
dado nodo pulbarramento sposidtaivdeo de iENTRA.
s uma avez,ou dia subi
de dados.
nicializa
eis noeseri
0sgtaoniventão estabi l i z am-se i n tervao de
tos na posiçcão de memória selecionada enquanto e alto. Se um dispositivo de ENTRADAISAÍDA
ecionado, ele normalmente retira
s o Estes dados
As operaçóes de leitura e escrita envoldado oria das atinaviddescida
vem ado maibarramento izadas 4).
ades dedoumpulsoC real(ponto fora do microprocessador.
o R/
de endereço
Endereço Novo
antig0 adereçor
Barramento
de dados
Dado
Alta impedåncia * n1
processador
W e geração
dv
RN
de endereçu
EXEMPLO 12.1
está oObserve
deAbaioitoxo bits. de umcomopequeno
código que programatemarmazenado
cada palavra nas necessários
oito bits, são posiçóes dedoimemóri
s bytesa desucessivos , de um Co
0020) apara0029,representar
códi go do endereço do operando, Determine o número total de operações de leitura e escrita que o microprocessador
deverá efetuar enquanto executa tal progra
Endereço de Endereço de
Descrição
nória Palavra (Hex )Mnemônico
0020hh SB taLDAS50 Carregar o acumulador com X
(1 susuat
0021a
0022
(atms
ADDUUL Adicione Y ao conteúdo do acumul
0024 02 |
025 (spatas )
UUZ0 8A. 1A U0
Armazene o conteúdo do acumulador
0027 03 |
Endereço onde o conteúo
)L0 50 J
Ldo acumulador será armazenado
3F HLT Pare a operação
Solução 0 microprocessador inicia a execução do programa lendo o conteúdo da posição 0020 da memória. A palavra
ada lá (SB) é obtida pelo microprocessador que a trata como um código de operação. (Em outras palavras,
microprocessador sempre considera a primeira palavra de um programa como sendo um código de operação.) Em
seguida o microprocessador decodifica este código de operação para determinar a operação a ser realizada e se um
endereço de operando segue o código de operação na memória. Neste caso, um endereço de operando deve
nos próximos dois bytes do programa armazenado. Entáo, 0 microprocessador vai precisar ler os endereços 0021 e
022 para obter o endereço do dado X. Uma vez que tal endereço (500i) tenha sido lido para um registrador do micropro-
cessador, este executa a instrução de LDA, lendo a posição de memória 5001 e colocando seu conteúdo no acumuladon
Baseado no exposto, podemos concluir que a execução da primeira instrução necessitou de quatro operações de leitura:
ma para 0 código de operação, duas para o endereço e uma para a execução da instrução LDA.
De maneira similar, quatro outras leituras serão necessárias para executar a segunda instrução, que começa no
endereço 0023. Tal instrurução também usa um endereço de operando de dois bytes, e precisa ler 0 conteúdo de tal
endereço para transferi-lo à unidade aritmético-lógica.
A terceira instrução, código de operação em 026, também tem um operando cujo endereço está em dois bytes.
0 microprocessador então executa três operações de leitura e mais uma de escrita, pois a instrução é STA, havendo,
portanto, necessidade de guardar o conteúdo do acumulador na memória, endereço 5003.
A instrução final, em 0029, é um código de operação sem endereço de operando. 0 microprocessador lé este código
de operação (3F), decodifica-0, e em seguida encerra a execução de tal programa.
0 número total de operações de leitura executadas é, portanto,, doze e há somente uma operação de escrita executada
no decorrer da execução do programa.
QUESTÕES DE REVISĀO
Descreva 0 conjunto de passOs necessárior paId qu U IIU U UCeSSauor xecuteuma operação de leitura.
I0
Nossa discussão ao longo deste capítulo foi somente uma breve introdução aos princípios básicos, terminologia e operações
Nos
mais comuns relacionadas com alguns dos microprocessadores e microcomputadores no mercado. Não tivemos oportunidade