Escolar Documentos
Profissional Documentos
Cultura Documentos
Hardware
Hardware
TECNOLOGIAS
As primeiras tecnologias utilizadas em memrias foram as memrias de ncleos magnticos, hoje
apenas uma curiosidade. As memrias modernas so compostas por circuitos semicondutores, com
novas tecnologias sendo criadas a cada ano permitindo que grandes quantidades de clulas de
memria sejam encapsuladas em pequenas pastilhas.
HIERARQUIA DE MEMRIA
A MP no o nico dispositivo de armazenamento de um computador. Em funo de caractersticas
como tempo de acesso, capacidade de armazenamento, custo, etc., podemos estabelecer uma
hierarquia de dispositivos de armazenamento em computadores.
Tipo
Registrador
Memria Cache
Memria
Mbytes
Principal
Memria Auxiliar Gbytes
mdia
mdio Placa
Voltil
baixa
baixo
No Voltil
Externa
A UCP v nesta ordem e acessa primeiro a que est mais prxima. Subindo na hierarquia, quanto
mais prximo da UCP, maior velocidade, maior custo, porm menor capacidade de armazenamento.
REGISTRADORES
Registradores so dispositivos de armazenamento temporrio, localizados na UCP, extremamente
rpidos, com capacidade para apenas um dado (uma palavra). Devido a sua tecnologia de
construo e por estar localizado como parte da prpria pastilha ("chip") da UCP, muito caro. O
conceito de registrador surgiu da necessidade da UCP de armazenar temporariamente dados
intermedirios durante um processamento. Por exemplo, quando um dado resultado de operao
precisa ser armazenado at que o resultado de uma busca da memria esteja disponvel para com ele
realizar uma nova operao.
Mquinas RISC so geralmente construdas com um grande conjunto de registradores, de forma a
trazer os dados para o mais prximo possvel da UCP, de forma a que o programa opere sempre
sobre dados que esto em registradores.
Registradores so VOLTEIS, isto , dependem de estar energizados para manter armazenado seu
contedo.
MEMRIA CACHE
Com o desenvolvimento da tecnologia de construo da UCP, as velocidades foram ficando muito
mais altas que as das memrias, que no tiveram a mesma evoluo de velocidade (o
aperfeioamento das memrias se deu mais no fator capacidade). Desta forma, os tempos de acesso
s memrias foram ficando insatisfatrios e a UCP ao buscar um dado na memria precisa ficar
esperando muitos ciclos at que a memria retorne o dado buscado ("wait states"), configurando um
gargalo ("bottleneck") ao desempenho do sistema.
Memria Principal
Conforme definimos anteriormente, Memria Principal a parte do computador onde programas e
dados so armazenados para processamento. A informao permanece na memria principal apenas
enquanto for necessrio para seu emprego pela UCP, sendo ento a rea de MP ocupada pela
informao pode ser liberada para ser posteriormente sobregravada por outra informao. Quem
controla a utilizao da memria principal o Sistema Operacional.
ESTRUTURA DA MEMRIA PRINCIPAL - CLULAS E ENDEREOS
A memria precisa ter uma organizao que permita ao computador guardar e recuperar
informaes quando necessrio. No teria nenhum sentido armazenar informaes que no fosse
possvel recuperar depois. Portanto, no basta transferir informaes para a memria. preciso ter
como encontrar essa informao mais tarde, quando ela for necessria, e para isso preciso haver
um mecanismo que registre exatamente onde a informao foi armazenada (lembrando nossa
analogia com o computador hipottico, imagine encontrar uma informao guardada ao acaso, se
nosso escaninho tivesse 1 milho de compartimentos ...).
Clula a unidade de armazenamento do computador. A memria principal organizada em
clulas. Clula a menor unidade da memria que pode ser endereada (no possvel buscar uma
"parte" da clula) e tem um tamanho fixo (para cada mquina). As memrias so compostas de um
determinado nmero de clulas ou posies. Cada clula composta de um determinado nmero de
bits. Todas as clulas de um dado computador tem o mesmo tamanho, isto , todas as clulas
daquele computador tero o mesmo nmero de bits.
Cada clula identificada por um endereo nico, pela qual referenciada pelo sistema e pelos
programas. As clulas so numeradas seqencialmente, uma a uma, de 0 a (N-1), chamado o
endereo da clula. Endereo o localizador da clula, que permite identificar univocamente uma
clula. Assim, cada clula pode ser identificada pelo seu endereo.
Unidade de transferncia a quantidade de bits que transferida da memria em uma nica
operao de leitura ou transferida para a memria em uma nica operao de escrita. O tamanho da
clula poderia ser igual ao da palavra, e tambm unidade de transferncia, porm por razes
tcnicas e de custo, so freqentemente diferentes.
OBS.: Uma clula no significa o mesmo que uma palavra; uma clula no necessariamente contm
uma palavra. Palavra a unidade de processamento da UCP. Uma palavra deve representar um dado
ou uma instruo, que poderia ser processada, armazenada ou transferida em uma nica operao.
No entanto, em geral no assim que acontece e os computadores comerciais no seguem um
padro nico para a organizao da UCP e MP. Computadores comerciais (tais como por exemplo
os baseados nos processadores Intel 486) podem ter o tamanho da palavra definido como de 32 bits,
porm sua estrutura de memria tem clulas de 16 bits.
A estrutura da memria principal um problema do projeto de hardware:
- mais endereos com clulas menores ou menos endereos com clulas maiores?
O tamanho mais comum de clula era 8 bits (1 byte); hoje j so comuns clulas contendo vrios
bytes.
4 bits
-
0 a (N-1) T - Capac. da
Faixa de
memria
endereos
1 K byte
1 K endereos 256 bits
4 Gbytes
1 Mbyte
0 a 65.535
0 a 262.143
N - n de
endereos
UC - Unidade de Controle - tem por funes a busca, interpretao e controle de execuo das
instrues, e o controle dos demais componentes do computador
Obs.: Neste curso, por simplicidade, ser considerado apenas o funcionamento serial em uma UCP.
Outras abordagens sero discutidas no captulo Tpicos Avanados de Arquitetura (UCP's no
pipelined).
A seguir apresentado o diagrama esquemtico de uma UCP.
elementares (primitivas) executveis pelo hardware (ver Conceito de Processo). Cada uma das
instrues tem um cdigo binrio associado, que o cdigo da operao.
Formato geral de uma Instruo
Cdigo de operao (OPCODE)
UCP / MP
Barramento de endereos - unidirecional
(s a UCP envia dados - write - ou l dados - read - da MP)
Barramento de dados - bidirecional
Barramento de controle - bidirecional
10
10
9
11
10
1024
1024
1024
1024
1024
10
10
TAMANHO
DA CLULA
EM BITS
8
12
10
10
1024
10
2) Um computador tem 512 endereos e cada clula tem 10 bits. Qual a capacidade:
a) do REM;
b) do RDM;
c) da MP em bits.
3) Um computador tem um RDM de 16 bits e um REM de 20 bits. Sabe-se que a clula desse
computador de 8 bits e que ele tem um nmero de clulas igual sua possibilidade de
endereamento. Pede-se:
a) qual o tamanho da barra de endereos?
b) quantas clulas so lidas da memria em uma nica operao?
c) quantos bits tem a memria desse computador?
PALAVRA (UNIDADE DE INFORMAO)
Palavra a unidade de informao do sistema UCP / MP.
A conceituao mais usada (IBM, Digital) define palavra como sendo a capacidade de manipulao
de bits do ncleo do computador (UCP e MP). Pressupe-se aqui que todos os elementos do ncleo
do computador (o que inclue o tamanho da UAL, do acumulador e registradores gerais da UCP e o
barramento de dados) tenham a mesma largura (processem simultaneamente o mesmo nmero de
bits), o que nem sempre acontece. Muitas vezes encontram-se computadores em que o tamanho da
UAL e do acumulador (e registradores gerais) no o mesmo tamanho dos barramentos. Desta
forma, encontram-se especificaes de "computadores de 64 bits" mesmo quando seu barramento
fabricantes para gravar programas que no se deseja permitir que o usurio possa alterar ou apagar
acidentalmente (tal como por ex..a BIOS - Basic Input Output System e microprogramas de
memrias de controle). Quando se liga uma mquina, da ROM que vem os programas que so
carregados e processados no "boot" (na inicializao o hardware aponta automaticamente para o
primeiro endereo da ROM). Desta forma, parte do espao de endereamento da MP ocupado por
ROM. A ROM mais lenta que a R/W e barata, porm o processo produtivo depende de ser
programada por mscara ("mask programmed") em fbrica e devido ao alto custo da mscara
somente se torna econmica em grandes quantidades.
Obs.: Boot (ou bootstrap loader) o processo de inicializao e carga dos programas bsicos de
um computador, automtica, sem interveno externa. Este termo vem de uma analogia com um
processo (impossvel) que seria uma pessoa se levantar puxando-se pelos cordes de suas prprias
botas.
PROM - Programmable Read Only Memory ou memria apenas de leitura, programvel. Esta
memria uma ROM programvel (em condies e com mquinas adequadas, chamadas
queimadores de PROM) e geralmente comprada "virgem" (sem nada gravado), sendo muito
utilizada no processo de testar programas no lugar da ROM, ou sempre que se queira produzir ROM
em quantidades pequenas. Uma vez programada (em fbrica ou no), no pode mais ser alterada.
EPROM - Erasable Programmable Read Only Memory ou memria apenas de leitura, programvel
(com queimadores de PROM) e apagvel (com mquinas adequadas, base de raios ultra-violeta).
Esta memria uma PROM apagvel. Tem utilizao semelhante da PROM, para testar
programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas,
com a vantagem de poder ser apagada e reutilizada.
EEPROM (ou E2PROM) - Electrically Erasable Programmable Read Only Memory ou memria
apenas de leitura, programvel e eletronicamente altervel. Tambm chamada EAROM
(Electrically Alterable ROM). Esta memria uma EPROM apagvel por processo eletrnico, sob
controle da UCP, com equipamento e programas adequados. mais cara e geralmente utilizada
em dispositivos aos quais se deseja permitir a alterao, via modem, possibilitando a carga de novas
verses de programas distncia ou ento para possibilitar a reprogramao dinmica de funes
especficas de um determinado programa, geralmente relativas ao hardware (p.ex., a reconfigurao
de teclado ou de modem, programao de um terminal, etc).
Lgica Temporizada
Conforme vimos ao analisar a comunicao entre UCP e memria, as instrues, os dados e os
endereos "trafegam" no computador atravs dos barramentos (de dados, de endereos e de
controle), sob a forma de bits representados por sinais eltricos: uma tenso positiva alta ("high" geralmente no entorno de 3 volts) significando "1" e uma tenso baixa ("low" - prxima de zero)
significando "0". Mas os dados no computador no ficam estticos; pelo contrrio, a cada ciclo
(cada "estado") dos circuitos, os sinais variam, de forma a representar novas instrues, dados e
endereos. Ou seja, os sinais ficam estticos apenas por um curto espao de tempo, necessrio e
suficiente para os circuitos poderem detetar os sinais presentes no barramento naquele instante e
reagir de forma apropriada. Assim, periodicamente, uma nova configurao de bits colocada nos
circuitos, e tudo isso s faz sentido se pudermos de alguma forma organizar e sincronizar essas
variaes, de forma a que, num dado instante, os diversos circuitos do computador possam
"congelar" uma configurao de bits e process-las. Para isso, preciso que exista um outro
elemento, que fornece uma base de tempo para que os circuitos e os sinais se sincronizem. Este
circuito chamado clock - o relgio interno do computador. Cada um dos estados diferentes que os
circuitos assumem, limitados pelo sinal do clock, chamado um ciclo de operao.
Clock
A Unidade de Controle da UCP envia a todos os componentes do computador um sinal eltrico
regular - o pulso de "clock" - que fornece uma referncia de tempo para todas as atividades e
permite o sincronismo das operaes internas. O clock um pulso alternado de sinais de tenso,
gerado pelos circuitos de relgio (composto de um cristal oscilador e circuitos auxiliares).
Ciclo de Operao
Cada um destes intervalos regulares de tempo delimitado pelo incio da descida do sinal,
equivalendo um ciclo excurso do sinal por um "low"e um "high" do pulso.
O tempo do ciclo equivale ao perodo da oscilao. A fsica diz que perodo o inverso da
freqncia. Ou seja,
P = 1 / f.
A freqncia f do clock medida em hertz. Inversamente, a durao de cada ciclo chamada de
perodo, definido por P=1/f (o perodo o inverso da freqncia).
Por exemplo, se f = 10 hz logo P = 1/10 = 0,1 s.
processadores de um tipo sejam fabricados pelos mesmos processos e nas mesmas mquinas,
apenas alguns sero certificados para a mxima freqncia prevista, o que obriga que o preo dos
processadores de clock mximo seja muito mais caro que o dos muitos outros que no obtiveram
certificao para aquele elevado clock e sero vendidos com "tags" de 166 ou 133 Mhz, a preos
reduzidos.
Instrues por ciclo
Qual a real importncia e significado da freqncia do processador?
Quando se faz uma soma em uma calculadora, basta teclar cada um dos algarismos do 1 nmero,
teclar o sinal de mais, depois teclamos os algarismos do segundo nmero e teclamos o sinal de
igual.
comum pensar que nos computadores as coisas se passam mais ou menos do mesmo jeito. No
entanto, a soma propriamente dita a menor das tarefas que um computador executa quando soma
dois nmeros. Neste exemplo, o computador precisaria localizar a instruo de soma na memria e
mov-la para a UCP. Esta instruo estaria codificada na forma de dgitos binrios e teria que ser
decodificada para determinar a operao a ser realizada (no caso, ADD), o tamanho dos dados
(quantas clulas eles ocupam), determinar a localizao e buscar cada um dos nmeros na memria,
e s ento, finalmente, fazer a soma. Para o computador, a soma realmente a parte mais simples e
mais rpida de toda a operao, j que decodificar a instruo e principalmente obter os dados
tomam a maior parte do tempo (este assunto ser discutido no Captulo sobre Representao de
Instrues).
Cada nova gerao de processadores tem sido capaz de executar as operaes relativas ao
processamento de uma instruo em menor nmero de ciclos do clock (ver seo sobre Pipeline em
Tpicos Avanados de Arquitetura). Por exemplo, na famlia Intel x86:
- 386 - mnimo de 6 ciclos por instruo de soma de 2 nmeros;
- 486 - em geral, 2 ciclos por instruo de soma de 2 nmeros;
- Pentium - 1 ciclo por instruo de soma de 2 nmeros;
- Pentium Pro - 1 ciclo por instruo de soma de 3 nmeros; na soma de mais nmeros, quando um
dos nmeros est em memria de baixa velocidade, o Pentium Pro capaz de "pular" este nmero e,
enquanto busca o nmero que falta, seguir adiante, buscando e somando os demais nmeros para
finalmente incluir o nmero que faltava na soma.
Usando uma analogia com um automvel, para andar mais rpido geralmente mais eficaz trocar
de marcha do que acelerar. Comparativamente, um processador de 66 Mhz hoje equivaleria a uma
pequena presso no acelerador e um de 300 Mhz ao acelerador pressionado at o fundo (p na
tbua!). Mas, se um 8088 fosse a 1 marcha, um Pentium II seria equivalente 5 marcha e seria
certamente muito mais rpido, mesmo que fosse possvel "acelerar" o 8088 ao mesmo clock do
Pentium. Se compararmos um 486 DX4-100 (100 Mhz) com um Pentium tambm de 100 Mhz,
veremos que o Pentium 100 ser substancialmente mais rpido, o que se deve sua arquitetura e
no ao clock.
portanto um engano comparar apenas a freqncia do clock: o desempenho do processador deve
ser avaliado por um conjunto de caractersticas da arquitetura, do qual a freqncia do clock
apenas um deles - e no o mais importante (mais detalhes sero apresentados no captulo Tpicos
Avanados de Arquitetura).
REPRESENTAO DE INSTRUES
INSTRUO DE MQUINA
Quem executa um programa o hardware e o que ele espera encontrar um programa em
linguagem de mquina (uma sequncia de instrues de mquina em cdigo binrio). Um programa
em linguagem de alto nvel no pode ser executado diretamente pelo hardware. Ele tem que ser
transformado (traduzido) para linguagem de mquina por um compilador, antes de ser carregada em
memria, para que o hardware possa execut-lo. A linguagem de mquina composta de cdigos
binrios, representando instrues, endereos e dados e est totalmente vinculada ao conjunto
("set") de instrues da mquina.
Funcionalmente as operaes do computador so:
matemticas (aritmticas, lgicas, de complemento, de deslocamento...)
movimentao de dados (memria <--> registrador)
entrada-sada (leitura e escrita em dispositivos externos - dispositivos de Entrada / Sada)
controle (desvio da sequncia de execuo, parar, etc...)
Obs.: O conjunto de instrues de alguns processadores, como por exemplo o Intel 8080, no possui
instrues para multiplicao ou diviso; portanto, um programa em linguagem de mquina, nestes
processadores, no pode fazer multiplicao ou diviso diretamente (somente atravs de
combinao de outras instrues). J um programa em linguagem de nvel mais alto pode
implementar comandos de multiplicao (ou diviso) que combinem uma srie de instrues
binrias do conjunto de instrues para fazer uma multiplicao (ou diviso) atravs de repetidas
somas (subtraes) ou por deslocamento de bits.
Ex. de um conjunto de instrues de uma mquina hipottica:
Instruo
Significado
Operao
Carregar no
Load
ACC <-- op
acumulador
Store
Salvar na memria
op <-- ACC
Add
Somar
ACC <-- ACC + op
Sub
Subtrair
ACC <-- ACC - op
Mult
Multiplicar
ACC <-- ACC * op
Div
Dividir
ACC <-- ACC / op
Jmp
Desviar
CI <-- op
Desviar, se ACC igual
Jz
CI <-- op, se ACC = 0
zero
Desviar, se ACC no
Jnz
CI <-- op, se ACC != 0
zero
Read
Ler entrada
op <-- entrada
Print
Imprimir
saida <-- op
Stop
Terminar
Cdigo
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1100
Cada uma das instrues tem um cdigo binrio associado, que o cdigo da operao.
Sero usadas as seguintes convenes:
Operador
+
*
/
<-<<
>>
Significado
adio
subtrao
multiplicao
diviso
atribuio
deslocamento
esquerda
deslocamento direita
Operador
~
=
!=
|
^
Significado
not (negao)
igual
diferente
or (AND)
exclusive or (XOR)
&
and (E)
Operando 1 (OP1)
OP 2 OP 3...
=>
=>
ADD OP1
=>
uma "folga" e os cdigos no utilizados ficaram como reserva para futuras implementaes em
outros processadores da mesma "famlia", o que permitiu manter a compatibilidade entre os
processadores da famlia.
No Intel 8080, o cdigo de operaes varia apenas os 6 bits mais significativos; os 2 bits menos
significativos so utilizados para indicaes da especificidade da instruo, conforme veremos na
seo sobre o Conjunto de Instrues do Intel 8080.
Outros sistemas possuem cdigo de operao de tamanho varivel.
Por exemplo, o IBM/370 tem:
---> 166 instrues com cdigo de operao de 8 bits.
---> 11 instrues com cdigo de operao de 16 bits.
Opcodes com tamanho varivel permitem codificar maior quantidade de instrues com menos bits
e permitem projetar um compromisso mais flexvel entre a quantidade de bits do opcode e do(s)
campo(s) de operando(s). Esta organizao bastante comum.
OPERANDO
A funo do operando identificar / localizar o dado que ser processado.
Quanto ao nmero de operandos, podemos considerar:
Um maior nmero de operandos permite maior completeza, por possibilitar ter todos os operandos
necessrios indicao dos dados para a realizao de operao. Em conseqncia, embora mais
operandos ocupem mais memria, ser necessrio uma menor quantidade de instrues em um
programa, ocupando menor espao em memria.
Com um menor nmero de operandos, as referncias ficam menos completas, e sero necessrias
mais instrues no programa. No entanto, tendo menos operandos, o espao ocupado na memria
pelos operandos ser menor.
A deciso sobre o nmero de operandos tomada pelo projetista, levando em conta esse balano.
Como geralmente o operando contm um endereo da MP, o nmero de bits ocupado por um
operando depende do nmero de clulas endereveis de memria, ou seja, preciso saber quantas
clulas podem ser endereadas na memria principal para saber quantos bits sero necessrios para
o operando.
Obs.: desta forma, pode-se concluir que o nmero de bits de cada operando ser igual ao nmero de
bits do REM e do CI.
Por simplicidade, neste curso vamos considerar que todas as instrues de uma mquina tem o
mesmo tamanho. Esta simplificao muitas vezes no corresponde realidade de uma mquina
comercial, mas atende aos objetivos deste curso.
Exerccio 1:
(Adaptado do livro Organizao Estruturada de Computadores, A. Tanembaum, pg. 250)
Uma certa mquina tem endereos de 6 bits e instrues de 16 bits. Algumas das instrues deste
computador tem um operando e outras tem dois operandos. Se h n instrues de dois operandos,
qual o nmero mximo de instrues de um operando?
Exerccio 2:
As instrues de um certo computador ocupam sempre 1 (uma) palavra de 36 bits. O conjunto de
- a UC envia um sinal memria de operao de leitura (memory read), via barramento de controle;
- a memria l o endereo que est no REM, via barramento de endereos, e busca o contedo da
clula referenciada;
- a memria coloca no RDM, via barramento de dados, o contedo da clula lida;
- a memria envia UC, via barramento de controle, um sinal de "leitura concluda";
- a UC transfere o operando (o contedo do RDM) ao RI.
* Se o operando o prprio dado:
-- a UC transfere o dado (o contedo do RDM) ao ACC.
-- vai para operao 4; caso contrrio:
* Se o operando um ponteiro para onde o dado est armazenado:
-- a UC coloca no REM o endereo de onde o dado est armazenado;
-- a UC envia um sinal memria de operao de leitura (memory read), via barramento de
controle;
-- a memria l o endereo que est no REM, via barramento de endereos, e busca o contedo da
clula referenciada;
-- a memria coloca no RDM, via barramento de dados, o contedo da clula lida;
-- a memria envia UC, via barramento de controle, um sinal de "leitura concluda";
-- a UC transfere o dado (o contedo do RDM) ao ACC;
-- vai para operao 4.
4 - A UC comanda a execuo da instruo (a operao executada sobre o dado).
Fase: Execuo da instruo - ciclo de execuo
- UAL executa a instruo.
5 - Se o programa tiver terminado, Para; seno, volta ao passo 1.
Exemplo 1:
Formato da Instruo de Mquina:
Cdigo Operao
Operando
8 bits
8 bits
tamanho da instruo = 16 bits
RI (16 bits)
2Axx
2A0C
OPERAO
L opcode
L operando
Carrega
T2
02
0C
01
0C
2A0C
Acumulador
Obs.: usamos um x para indicar que o contedo de uma clula ou de parte da clula no importa
("don't care") e no considerado ( desprezado) para a presente operao, podendo ser nulo ou
ento conter o resultado de uma operao anterior.
Exemplo 2:
Considerando a mesma mquina do exemplo anterior, qual seria o processamento da instruo
LDIA Op ==> ACC <--- ((Op))
Obs.: A instruo do exerccio LDIA Op (LDIA um mnemnico para "load accumulator indirect")
significa "carrega no acumulador o contedo da posio de memria apontada pela posio indicada
no operando". Portanto, a posio de memria indicada pelo Operando um ponteiro para a posio
onde est o dado e existe uma indireo. Esse assunto ser tratado em detalhe na prxima seo Modo de Endereamento.
CICLO de
CI
ACC REM RDM
RI (16 bits) OPERAO
TEMPO
T0
00
x
00
2A
2Axx
L opcode
T1
02
x
01
0C
2A0C
L operando
T2
02
x
0C
01
2A0C
L dado
Carrega dado no
T3
02
01
0C
01
2A0C
acumulador
Exemplo 3:
Numa mquina de 2 operandos, a MP tem 256 clulas com 20 bits, o RDM tem 20 bits e cada
instruo ocupa 1 clula. Em seu conjunto de instrues, o cdigo binrio 6 tem o seguinte
significado:
6 => ADD Op1, Op2 ==> (Op1) <---- (Op1) + (Op2) - soma o contedo da posio de memria
indicada em Op1 com o contedo da posio de memria indicada em Op2 e coloca o resultado na
posio de memria indicada em Op1.
Mostre o contedo dos registradores da UCP e das posies de memria que se alterarem aps a
execuo da instruo dada.
Mapa da memria:
ENDEREO
10
....
B2
B3
....
MP (T1)
6B2B3
.....
03210
04591
.....
Soluo:
A MP tem 256 clulas = 28 clulas ----> REM = 8 bits ----> CI = 8 bits
Clula = 20 bits e 1 instruo = 20 bits
RDM = 20 bits e RI = 20 bits
Operando = 8 bits ---> 8 bits x 2 operandos = 16 bits (cada instruo tem 2 operandos); logo, o
opcode tem 4 bits.
Cada instruo ocupa uma clula, logo n=1 (o incremento do CI ser sempre 1).
Formato da
operando operando
opcode
instruo:
1
2
(20 bits)
4 bits
8 bits
8 bits
-
CI
REM
RDM
ACC
T0
10
10
6B2B3
OPERAO
L instruo (opcode + 2
operandos)
T1
T2
T3
11
11
11
B2
B3
B2
03210
04591
077A1
03210
077A1
077A1
L 1 dado
L 2 dado
Executa instruo
Desvantagens
a) Limitao do endereo da MP que pode ser indicado pelo tamanho do campo operando.
b) mais lento que o modo imediato.
Utillizao
Quando o dado varia de valor a cada execuo.
Exemplos de Instrues do Intel 8080:
LDA Op (load accumulator), sendo Op um endereo na memria ==> ACC <--- (Op)
(carrega o contedo da posio de memria indicada pelo operando no acumulador).
LDA 978A ===> ACC <--- (978A) = carrega no acumulador o contedo da posio de memria
978A.
JMP Op ("jump") ==> CI <--- (Op)
JMP 1000H ==> CI<--- (1000H) = causa um desvio para o endereo contido nas posies 1000 e
1001 (hexadecimal) da memria, carregando o contedo das posies 1000 e 1001H no CI
Obs: como o CI contm 16 bits (um endereo), sero necessrias DUAS clulas de memria (uma
clula contm 8 bits), o que requer dois ciclos de busca memria.
MOV R, Op ==> R <--- (Op)
MOV B, 7AC1 ==> B <--- (7AC1), move o contedo da posio de memria (8 bits) indicada pelo
operando - 7AC1 - para o registrador B (8 bits).
Exerccio:
Comparar o efeito das instrues acima no modo direto com as instrues equivalentes no modo
imediato, em termos de acessos memria.
Resp: No modo de endereamento direto, so necessrios mais de 1 acessos MP para a busca do
dado, sendo 1 no ciclo de busca para busca do operando e pelo menos 1 no ciclo de execuo para a
busca do dado propriamente dito. No modo imediato, necessrio apenas um acesso memria no
ciclo de busca para a busca do dado (o operando o prprio dado). No necessrio nenhum acesso
de busca memria no ciclo de execuo.
MODO INDIRETO
O campo operando contm um endereo de memria cujo contedo o endereo do dado a ser
operado.
Portanto, h um duplo endereamento. O endereo intermedirio chamado ponteiro (pointer)
DESENHO (a incluir)
Exemplo:
LDID Op ==> ACC <--- ((Op))
So necessrios 3 ou mais acessos memria: 1 para buscar o opcode, 1 (ou 2, quando for uma
referncia memria) para buscar o operando (Op) e mais 1 para buscar o dado ((Op))
propriamente dito (ou 2, quando o dado for um endereo de memria; por exemplo, quando for uma
instruo de desvio).
Vantagem
a) Permite implementar estruturas de organizao de dados mais complexas, mais sofisticadas.
b) Elimina a limitao de clulas endereveis.
Desvantagem
Requer maior quantidade de acessos MP para completar o ciclo de execuo da instruo,
acarretando que o tempo requerido para a execuo da instruo maior.
Obs.1: possvel haver vrias indirees. Em algumas mquinas, existe 1 bit que sinaliza no caso
de existirem vrias Indirees. Enquanto este bit for 0, continua com as indirees, at encontr-lo
ligado.
Obs.2: O Intel 8080 somente dispe de instrues com modo de endereamento indireto usando
registradores como ponteiro. Os exemplos dessa aplicao so apresentados no item sobre
ENDEREAMENTO POR REGISTRADOR.
Utilizao
Manuteno de ponteiro de dados
Exemplo:
Relao de dados a serem movimentados para novas posies de memria (por exemplo, elementos
de vetores), basta modificar o valor da clula endereada pela instruo (no necessrio mudar o
valor do operando).
ENDEREAMENTO POR REGISTRADOR
Existem outros modos de endereamento, que usam registradores para indicar a posio onde esto
os dados. Os modos de endereamento direto e indireto por registrador funcionam de forma
semelhante aos modos de endereamento direto e indireto vistos anteriormente (em que o operando
aponta para uma posio de memria), porm o operando aponta para um registrador (onde est o
dado - endereamento direto - ou ento faz referncia memria - endereamento indireto).
Modo por registrador direto
O operando aponta para um registrador, o qual contm o dado.
Modo por registrador indireto
O operando aponta para um registrador, o qual contm um endereo de memria (ponteiro) para o
dado.
Vantagens
Maior velocidade / rapidez de execuo - o acesso ao registrador muito mais rpido que o acesso
memria.
Economia de espao de armazenamento de instruo (o tamanho da instruo menor porque como
so poucos registradores, so menos bits para seus endereos).
Desvantagem
No so adequados para transferncia de variveis da MP para ULA.
Pequeno nmero de registradores - se forem muitos os dados endereados por registrador, os
registradores disponveis podem no ser suficientes.
Utilizao
Implementao de contadores.
Exemplo de uso:
0020
xxx
0030
3A
10
Exemplo:
A instruo CALL requer 5 acessos memria, sendo 3 para buscar a instruo (opcode mais
operando de 2 bytes) e mais 2 para salvar ("push") o contedo (2 bytes) do CI (Program Counter)
para o ponteiro da pilha (Stack Pointer).