Buscar

Processadores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 118 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 118 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 118 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Processadores
Arquitetura de Computadores
Leonard B. Moreira
UERJ
e-mail: leonardbarreto@gmail.com.br julho, 2013
Leonard B. Moreira (-) Processadores 1 / 118
Suma´rio
1 Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Func¸a˜o Processamento
Func¸a˜o Controle
2 Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
3 Funcionamento do Processador: o ciclo de instruc¸a˜o
4 Modos de Enderec¸amento
Modo Imediato
Modo Direto
Modo Indireto
por Registrador
Indexado
Modo base mais deslocamento
5 Execuc¸a˜o de Programas
6 Refereˆncias
Leonard B. Moreira (-) Processadores 2 / 118
Organizac¸a˜o Funcional da UCP
Suma´rio
1 Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Func¸a˜o Processamento
Func¸a˜o Controle
2 Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
3 Funcionamento do Processador: o ciclo de instruc¸a˜o
4 Modos de Enderec¸amento
Modo Imediato
Modo Direto
Modo Indireto
por Registrador
Indexado
Modo base mais deslocamento
5 Execuc¸a˜o de Programas
6 Refereˆncias
Leonard B. Moreira (-) Processadores 3 / 118
Organizac¸a˜o Funcional da UCP
Organizac¸a˜o Funcional da UCP
Processador realiza operac¸a˜o com dados (processamento) e controla
todo o funcionamento do sistema (controle);
E´ capaz de realizar algumas primitivas(operac¸o˜es), como:
- operac¸o˜es aritme´ticas
- operac¸a˜o de movimento de dados
- operac¸a˜o de E/S
Leonard B. Moreira (-) Processadores 4 / 118
Organizac¸a˜o Funcional da UCP
Organizac¸a˜o Funcional da UCP
Processador executa instruc¸o˜es
- a instruc¸a˜o de ma´quina formaliza uma determinada operac¸a˜o a ser
realizada pela UCP;
- geralmente uma instruc¸a˜o de ma´quina identifica qual operac¸a˜o deve ser
realizada e onde esta˜o os dados a serem manipulados;
Figura 1 : Funcionamento do hardware do processador - ciclo de instruc¸a˜o ba´sico
Leonard B. Moreira (-) Processadores 5 / 118
Organizac¸a˜o Funcional da UCP
Organizac¸a˜o Funcional da UCP
A func¸a˜o da UCP consiste resumidamente em:
1 buscar uma instruc¸a˜o na memo´ria;
2 interpretar que operac¸a˜o a instruc¸a˜o esta´ explicitando;
3 buscar os dados onde estiverem armazenados, para trazeˆ-los ate´ a UCP;
4 executar efetivamente a operac¸a˜o com o(s) dado(s);
5 guardar o resultado(se houver) no local definido na instruc¸a˜o;
6 reiniciar o processo buscando uma nova instruc¸a˜o;
Leonard B. Moreira (-) Processadores 6 / 118
Organizac¸a˜o Funcional da UCP
Organizac¸a˜o Funcional da UCP
Figura 2 : Ciclo de instruc¸a˜o ba´sico
Leonard B. Moreira (-) Processadores 7 / 118
Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
As func¸o˜es e atividades realizadas pela UCP podem ser divididas em
duas grandes categorias:
- func¸a˜o de processamento
- func¸a˜o de controle
Figura 3 : Diagrama em bloco (ba´sico) de uma UCP
Leonard B. Moreira (-) Processadores 8 / 118
Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
A Figura 3 apresenta as duas areas funcionais interligadas pelo
barramento interno
Importante!
O barramento interno e´ onde fluem os sinais de dados, de enderec¸os e
de controle;
a parte constitu´ıda pelos componentes da a´rea de processamento e´
conhecida como Data Path;
Leonard B. Moreira (-) Processadores 9 / 118
Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Componentes da a´rea funcional de processamento
1 Unidade lo´gica e aritme´tica (ULA, UAL, ALU)
2 Registradores de dados e registradores especiais de estado (PSW -
program status word)
Figura 4 : Componentes da a´rea funcional de processamento
Leonard B. Moreira (-) Processadores 10 / 118
Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Componentes da a´rea funcional de controle 5;
1 Unidade de controle, relo´gio (clock)
2 Registradores especiais
Program Counter(PC) ou Contador de Instruc¸o˜es(CI)
Instruction Register(IR) ou Registrador de Instruc¸o˜es(RI)
Memory Address Register(MAR) ou Registrador de Enderc¸os de
Memo´ria(REM)
Memory Data Register(MDR) ou Registrador de Dados de
Memo´ria(RDM)
Leonard B. Moreira (-) Processadores 11 / 118
Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Figura 5 : Componentes ba´sicos da a´rea funcional de controle
Leonard B. Moreira (-) Processadores 12 / 118
Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Figura 6 : Diagrama em bloco simplificado da func¸a˜o controle
Leonard B. Moreira (-) Processadores 13 / 118
Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Esquema simplificado de uma UCP
Leonard B. Moreira (-) Processadores 14 / 118
Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Componentes com func¸a˜o de processamento
Leonard B. Moreira (-) Processadores 15 / 118
Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Componentes com func¸a˜o de controle
Leonard B. Moreira (-) Processadores 16 / 118
Organizac¸a˜o Funcional da UCP
Func¸a˜o Processamento
Esseˆncia dos sistemas de computac¸a˜o, combinando hardware com
software capaz de realizar diferentes tarefas conforme a ordem e a
sequeˆncia de instruc¸o˜es que recebe
Basicamente consiste:
1 ULA
2 Registradores de dados
3 Registrador especial de controle (ou de flags)
4 Barramento interno
Leonard B. Moreira (-) Processadores 17 / 118
Organizac¸a˜o Funcional da UCP
Unidade Aritme´tica e Lo´gica
Dispositivo da UCP que efetivamente executa as operac¸o˜es
matema´ticas com os dados. Tais operac¸o˜es podem ser:
- soma, subtrac¸a˜o, multiplicac¸a˜o, divisa˜o;
- operac¸o˜es lo´gicas: AND, OR, XOR
- operac¸o˜es complemento, deslocamento a` direita, deslocamento a`
esquerda
- incremento/decremento de 1 a um valor
Tais operac¸o˜es podem utilizar dois valores, por isso possui duas
entradas;
Ale´m das entradas, recebe tambe´m sinais de controle que va˜o
determinar que operac¸a˜o sera´ realizada;
Leonard B. Moreira (-) Processadores 18 / 118
Organizac¸a˜o Funcional da UCP
Registradores de Dados
Para que um dado possar ser transferido para a UCP, e´ necessa´rio que
ele permanec¸a (mesmo que por um breve instante) em um registrador
Resultados de operac¸o˜es devem ser armazenado para uso posterior ou
apenas ser transferido para a memo´ria;
Assim, servem de memo´ria auxiliar ba´sica para a ULA;
Geralmente possuem largura igual ao tamanho estabelecido pelo
fabricante para a palavra do referido processador;
Um registrador especial e´ o acumulador (ACC) que ale´m de
armazenar dados, servia tambe´m de elemento de ligac¸a˜o da ULA co
os restares dispositivos do processador;
Leonard B. Moreira (-) Processadores 19 / 118
Organizac¸a˜o Funcional da UCP
Registradores Especiais de Controle
Tambe´m conhecido por registrador especial de estado ou Program
Status Word(PSW);
Diferentemente dos registradores de dados, indicam o estado de
va´rios elementos referentes a` operac¸a˜o em si;
Geralmente na˜o armazena dados na forma integral (u´nico valor), ele
se divide em bits que possuem significado diferente;
Leonard B. Moreira (-) Processadores 20 / 118
Organizac¸a˜o Funcional da UCP
Registradores Especiais de Estado
Os principais bits de estado mais frequentemente encontrados nas
UCPs sa˜o:
1 sinal: conte´m o sinal resultante da u´ltima operac¸a˜o aritme´tica
realizada pela UCP;
2 overflow: quando setado (=1) indica que a u´ltima operac¸a˜o aritme´tica
resultou em um estouro de valor;
3 zero: quando setado (=1) indica que a u´ltima operac¸a˜o aritme´tica
resultou em valor zero;
4 vai 1(carry): indica que ”vai 1”para o bit mais a esquerda; pode
indicar tambe´m overflow em operac¸o˜es com nu´meros sem sinal;
5 paridade: e´ setado (=1) ou na˜o (=0), dependendo da quantidade de
bits 1 no byte recebido;Leonard B. Moreira (-) Processadores 21 / 118
Organizac¸a˜o Funcional da UCP
Figura 7 : EFLAGS register do Pentium
Leonard B. Moreira (-) Processadores 22 / 118
Organizac¸a˜o Funcional da UCP
A Influeˆncia do Tamanho da Palavra
Um dos elementos fundamentais que determina a velocidade com que
a UCP realiza o ciclo de instruc¸a˜o e´ o tamanho da palavra;
O tamanho influenciara´ no tamanho dos elementos ligados a` a´rea de
processamento, a ULA e os registradores de dados;
Influeˆncia no desempenho devido ao tamanho escolhido para o
barramento interno e externo.
Influeˆncia na implementac¸a˜o f´ısica do acesso a` memo´ria;
Leonard B. Moreira (-) Processadores 23 / 118
Organizac¸a˜o Funcional da UCP
A Influeˆncia do Tamanho da Palavra
Operac¸a˜o de soma em sistemas com tamanhos diferentes de palavras
Operac¸a˜o: somar 2 nu´meros com 16 bits de tamanho; A=3A2516 e
B=172C16
Sistemas considerados:
- Sistema 1: palavra de 8 bits, MP com 64K ce´lulas de 8 bits.
- Sistema 2: palavra de 16 bits, MP com 1M com ce´lulas de 8 bits;
Leonard B. Moreira (-) Processadores 24 / 118
Organizac¸a˜o Funcional da UCP
A Influeˆncia do Tamanho da Palavra
Operac¸a˜o realizada em duas etapas lo´gicas pois os nu´meros sa˜o de
16bits e o processador so´ permite armazenar, processar e transferir
dados com 8 bits.
1 Na 1a etapa sa˜o transferidos para ULA, via ACC e BD, a primeira
metade de cada nu´mero (25 p/ A e 2C p/ B). Enta˜o sa˜o somados;
2 2a etapa realizada de forma ideˆntica para segunda metade dos nu´meros;
3 Per´ıodo de tempo gasto: tempo etapa 1 + tempo etapa 2
Figura 8 : Sistema 1: Palavra de 8 bits e MP de 64Kb
Leonard B. Moreira (-) Processadores 25 / 118
Organizac¸a˜o Funcional da UCP
A Influeˆncia do Tamanho da Palavra
Operac¸a˜o realizada em uma etapa lo´gica pois os nu´meros sa˜o de
16bits e o processador tambe´m opera nu´meros de 16 bits;
- A operac¸a˜o completa gasta um um per´ıodo de tempo
A operac¸a˜o no sistema 2 gasta a metade do tempo do sistema 1. Isto
torna a capacidade do processador do sistema 2 bem maior do que a
capacidade do sistema 1.
Figura 9 : Sistema 2: Palavra de 16 bits e MP de 1M
Leonard B. Moreira (-) Processadores 26 / 118
Organizac¸a˜o Funcional da UCP
Func¸a˜o Controle
Parte funcional da UCP que realiza as atividades de:
1 busca da instruc¸a˜o que sera´ executada, armazenando-a em um
registrador;
2 interpretac¸a˜o das ac¸o˜es a serem desencadeadas com a execuc¸a˜o da
instruc¸a˜o;
3 gerac¸a˜o dos sinais de controle apropriados para ativac¸a˜o das atividades
requeridas para a execuc¸a˜o da instruc¸a˜o identificada;
Importante!
A a´rea de controle e´ projetada para entender o que fazer, como fazer e
comandar quem vai fazer no momento adequado!
Leonard B. Moreira (-) Processadores 27 / 118
Organizac¸a˜o Funcional da UCP
Func¸a˜o Controle
Os dispositivos ba´sicos que fazer parte da a´rea funcional de controle
sa˜o:
1 unidade de controle (UC);
2 relo´gio ou clock;
3 registrador de instruc¸a˜o(RI) ou instruction register(IR)
4 contador de instruc¸a˜o(CI) ou program counter(PC)
5 decodificador de instruc¸a˜o;
6 registrador de dados da memo´ria (RDM) e registradores de enderec¸o de
memo´ria (REM)
a organizac¸a˜o dos componentes e o funcionamento ba´sico da a´rea de
controle constituem a microarquitetura do processador!
Leonard B. Moreira (-) Processadores 28 / 118
Organizac¸a˜o Funcional da UCP
Unidade de Controle
Possui lo´gica necessa´ria para realizar movimentac¸a˜o de dados e de
instruc¸o˜es de e para o processador;
Realiza estas operac¸o˜es mediante sinais de controle que emite em
instantes de tempo determinados;
Um diagrama simplificado e´ mostrado na Figura 6, e as conexo˜es da
UC com outros componentes sa˜o exibidos nas Figuras 5 e 14
Leonard B. Moreira (-) Processadores 29 / 118
Organizac¸a˜o Funcional da UCP
Unidade de Controle
Os sinais de controle eitidos pela UC ocorrem em va´rios instantes
durante o per´ıodo de realizac¸a˜o de um ciclo de instruc¸a˜o;
De modo geral, todos possuem durac¸a˜o fixa e igual originada em um
gerador de sinais denominado relo´gio (clock) (Figura 6).
Os microeventos (ou microoperac¸o˜es) comandados pelo
funcionamento da UC podem ser iniciados segundo os princ´ıpios:
1 por microprogramac¸a˜o; ou
2 por programac¸a˜o pre´via diretamente no hardware.
Leonard B. Moreira (-) Processadores 30 / 118
Organizac¸a˜o Funcional da UCP
Unidade de Controle
Lembre-se que...
O in´ıcio da busca da instruc¸a˜o consiste na busca(fetch) da referida
instruc¸a˜o...
...trazendo uma co´pia dela da MP para RI(no processador)
- Para efetivar esta ac¸a˜o, sa˜o realizadas algumas ac¸o˜es menores que,
em conjunto, constituem a desejada transfereˆncia;
- Tais operac¸o˜es menores denominam-se microoperac¸o˜es, por se
constitu´ırem na menor parte individualmente executa´vel pelo
processador.
Leonard B. Moreira (-) Processadores 31 / 118
Organizac¸a˜o Funcional da UCP
Unidade de Controle
t0 : REM ←− (CI )
t1 : CI ←− CI + N
RDM ←− M(Op.)
t2 : RI ←− RDM
Tabela 1 : Sequeˆncia de microoperac¸o˜es realizadas em um ciclo de busca
Leonard B. Moreira (-) Processadores 32 / 118
Organizac¸a˜o Funcional da UCP
Unidade de Controle
Outra caracter´ıstica da UC, refere-se ao modo pelo qual o sistema
conduz a execuc¸a˜o das instruc¸o˜es:
- Processadores que executam instruc¸o˜es de modo exclusivamente
sequencial ou serial (SISD);
- Processadores que executam instruc¸o˜es de modo concorrente, ou tipo
pipeline;
- Processadores que executam va´rias instruc¸o˜es simultaneamente
(processamento paralelo);
- Processadores que realizam processamento vetorial;
Leonard B. Moreira (-) Processadores 33 / 118
Organizac¸a˜o Funcional da UCP
Relo´gio
Relogio (ou um contador de tempo) e´ um dispositivo gerador de
pulsos cuja durac¸a˜o e´ chamada de ciclo.
Os pulsos alternam entre 0 (intensidade baixa) e 1(intensidade alta);
Serve para sincronizar e cadenciar as ac¸o˜es;
- sincronizar: permitir que duas ou mais ac¸o˜es ocorram no mesmo
instante de tempo;
- cadenciar: entenda-se por controlar a velocidade com que as ac¸o˜es
ocorrem;
Leonard B. Moreira (-) Processadores 34 / 118
Organizac¸a˜o Funcional da UCP
Relo´gio
Figura 10 : Pulsos de relo´gio
Leonard B. Moreira (-) Processadores 35 / 118
Organizac¸a˜o Funcional da UCP
Relo´gio
Algumas considerac¸o˜es da Figura 10:
- O ciclo do relo´gio e´ o intervalo entre o in´ıcio da descida (ou subida)
de um pulso ate´ o in´ıcio da subida (ou descida) do outro pulso;
- per´ıodo: intervalo de tempo gasto para se obter um ciclo do sinal do
relo´gio (geralmente, em nanossegundos);
- lado de subida(rising edge): e´ a parte do pulso que realiza a transic¸a˜o
do valor baixo para o valor alto;
- tempo de subida(rising time): e´ o per´ıodo de tempo gasto pelo sinal
para realizar toda a subida(geralmente, em nanossegundos);
- lado de descida(falling edge): e´ a parte do pulso que realiza a
transic¸a˜o do valor alto para o valor baixo;
- tempo de descida(falling time): e´ o per´ıodo de tempo gasto pelo
sinal para realizar toda a descida(geralmente, em nanossegundos);
- frequeˆncia(clock rate): e´ a quantidade de ciclos por segundo de um
relo´gio. O per´ıodo e´ o inverso da frequeˆncia.Usualmente medida em
Hertz(Hz), onde 1 Hz = 1 ciclo/s.
Leonard B. Moreira (-) Processadores 36 / 118
Organizac¸a˜o Funcional da UCP
Relo´gio
A Figura 12 mostra um exemplo de um esquema relacionado ao
relogio de um processador e os pulsos por ele gerado;
o ciclo de relo´gio esta´ relacionado a` realizac¸a˜o de uma operac¸a˜
elementar durante o ciclo de uma instruc¸a˜o;
Mesmo sendo elementar, esta operac¸a˜o na˜o se realiza em um so´ passo
sendo necessa´rio dividir o ciclo de ma´quinaem subciclos;
A estes diferentes passos de uma operac¸a˜o elementar denomina-se
microoperac¸o˜es;
Leonard B. Moreira (-) Processadores 37 / 118
Organizac¸a˜o Funcional da UCP
Relo´gio
Figura 11 : Diagrama em bloco do conjunto de tempo da a´rea de controle
Figura 12 : Diagrama de tempo do ciclo do processador (t0) e seus 5 subciclos
Leonard B. Moreira (-) Processadores 38 / 118
Organizac¸a˜o Funcional da UCP
Registrador de Instruc¸a˜o(RI)
Possui a func¸a˜o espec´ıfica de armazenar a instruc¸a˜o a ser executada
pelo processador;
A instruc¸a˜o e´ armazenada no RI ao fim do ciclo de leitura;
Atualmente o RI armazena parte da instruc¸a˜o (co´digo da operac¸a˜o)
ale´m de uso de buffers para armazenar instruc¸o˜es em fila ants mesmo
da execuc¸a˜o
Leonard B. Moreira (-) Processadores 39 / 118
Organizac¸a˜o Funcional da UCP
Contador de Instruc¸a˜o(CI)
Possui a func¸a˜o espec´ıfica de armazenar o enderec¸o da pro´xima
instruc¸a˜o a ser executada;
Seu conteu´do e´ automaticamente modificado logo no in´ıcio do ciclo
de instruc¸a˜o;
Registrador crucial para o processo de controle e de sequenciamento
da execuc¸a˜o dos programas.
Possibilidades de alterac¸a˜o do conteu´do do CI:
1 incremento automa´tico em um ciclo de instruc¸a˜o;
2 reinicializac¸a˜o do sistema (hardware programado para inserir no CI o
enderec¸o da 1a instruc¸a˜o do programa de inicializac¸a˜o);
3 instruc¸o˜es de desvio(jump ou branch) ou comandos de desvio (p.e.,
if-then-else ou do..while);
4 quando o SO decide mudar de programa em execuc¸a˜o;
Leonard B. Moreira (-) Processadores 40 / 118
Organizac¸a˜o Funcional da UCP
Decodificador de Instruc¸a˜o
Utilizado para identificar qual operac¸a˜o sera´ realizada, correlaionada a`
instruc¸a˜o cujo co´digo de operac¸a˜o foi decodificado;
Como sa˜o muitas instruc¸o˜es, e´ necessa´rio que cada um possua uma
identificac¸a˜o pro´pria e u´nica;
O dispositivo recebe em sua entrada um conjunto de bits(N) para
identificar uma instruc¸a˜o de ma´quina e 2N sa´ıdas;
A Figura 13 mostra um exemplo com 4 entradas e 16 sa´ıdas.
- Cada linha de sa´ıda aciona de modo diferente a UC e esta emite sinais
de controle por diferentes caminhos;
Leonard B. Moreira (-) Processadores 41 / 118
Organizac¸a˜o Funcional da UCP
Decodificador de Instruc¸a˜o
Figura 13 : Exemplo de decodificador com 4 entradas e 16 sa´ıdas
Leonard B. Moreira (-) Processadores 42 / 118
Organizac¸a˜o Funcional da UCP
Registrador de Dados de Memo´ria(RDM) e
Registrador de Enderec¸os de Memo´ria(REM)
Utilizados pelo processador e memo´ria para comunicac¸a˜o e
transfereˆncia de informac¸o˜es;
Em geral, o RDM possui um tamanho igual ao do barramento de
dados;
- ultimamente o BD tem sido constru´ıdo com largura - em bits - mu´ltipla
do tamanho da palavra;
Em geral, o REM possui um tamanho igual ao dos enderec¸os de
memo´ria(e consequentemente o BE do sistema);
Pelo tamanho do REM pode-se calcular o espac¸o ma´ximo de
enderec¸amento
Leonard B. Moreira (-) Processadores 43 / 118
Instruc¸o˜es de ma´quina
Suma´rio
1 Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Func¸a˜o Processamento
Func¸a˜o Controle
2 Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
3 Funcionamento do Processador: o ciclo de instruc¸a˜o
4 Modos de Enderec¸amento
Modo Imediato
Modo Direto
Modo Indireto
por Registrador
Indexado
Modo base mais deslocamento
5 Execuc¸a˜o de Programas
6 Refereˆncias
Leonard B. Moreira (-) Processadores 44 / 118
Instruc¸o˜es de ma´quina
Instruc¸o˜es de ma´quina
E´ a formalizac¸a˜o de uma operac¸a˜o ba´sica, simples(ou primitiva) que o
hardware e´ capaz de realizar diretamente;
O projeto do computador e´ centrado no conjunto de instruc¸o˜es de
ma´quina que se deseja que ele execute;
Uma das mais fundamentais ana´lises e deciso˜es de projeto envolveo o
tamanho e a complexidade do conjunto de instruc¸o˜es:
- quanto menor e mais simples o conjunto de instruc¸o˜es, mais ra´pido e´ o
ciclo de tempo do processador;
Leonard B. Moreira (-) Processadores 45 / 118
Instruc¸o˜es de ma´quina
Instruc¸o˜es de ma´quina
Pode-se utilizar, pelo menos, duas tecnologias de projeto de
processadores:
Sistemas com conjunto de instruc¸o˜es complexo (complex instruction
set computers - CISC )
Sistemas com conjunto de instruc¸o˜es reduzido (reduced instruction set
computers - RISC )
Do ponto de vista f´ısico, uma instruc¸a˜o de ma´quina e´ um grupo de
bits que indica ao processador uma operac¸a˜o ou ac¸a˜o que ele deve
realizar;
Quando se menciona conjunto de instruc¸o˜es estamos nos referindo
a todas as poss´ıveis instruc¸o˜es que podem ser interpretadas e
executadas por um processador;
Leonard B. Moreira (-) Processadores 46 / 118
Instruc¸o˜es de ma´quina
Instruc¸o˜es de ma´quina
Interpretac¸a˜o das instruc¸o˜es de ma´quina
As instruc¸o˜es de ma´quina sao interpretadas pelo n´ıvel inferior, denominado
microarquitetura, na˜o vis´ıvel ao programador, que compreende
principalmente os elementos da a´rea de controle.
Leonard B. Moreira (-) Processadores 47 / 118
Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
Podemos separar o grupo de bits que cnstitui uma instruc¸a˜o em duas
partes:
1 uma delas indica o que e´ a instruc¸a˜o e como sera´ executada;
- constitu´ıda de um so´ campo
2 a outra se refere ao(s) dado(s) que sera´(a˜o) manipulado(s) na
operac¸a˜o;
- podera´ ter um ou mais campos
Assim, temos os seguintes campos em cada instruc¸a˜o:
- um campo (um subgrupo de bits) chama-se co´digo da operac¸a˜o;
- o restante grupo de bits (se houver) denominado campo do(s)
operando(s) ou operando(s);
Co´digo de operac¸a˜o Operando(s)
Leonard B. Moreira (-) Processadores 48 / 118
Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
Co´digo de Operac¸a˜o(C.Op.): e´ o camp da instruc¸a˜o cujo valor bina´rio
e´ a identificac¸a˜o da operac¸a˜o a ser realizada;
- cada instruc¸a˜o possui um co´digo;
- a largura do campo indica a quantidade de instruc¸o˜es do referido
processador(e.g., C.Op.=8 bits implica em 28 instruc¸o˜es de ma´quina)
Campo operando(Op.): indicam a localizac¸a˜o do dado (ou dados) que
sera´ manipulado durante a realizac¸a˜o da operac¸a˜o;
Leonard B. Moreira (-) Processadores 49 / 118
Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
A instruc¸a˜o pode ser constitu´ıda de um ou mais campos ”operando”
C.Op. Operando 1 Operando 2 Operando 3
Esta instruc¸a˜o poderia ser do tipo somar o valor armazenado na MP
no enderec¸o indicado no campo operando 1 com valor armazenado
na MP no enderec¸o indicado no campo operando 2 e armazenar o
resultado na posic¸a˜o de MP, cujo enderec¸o esta´ indicado no campo
operando 3;
Ou: SOMAR Operando1, Operando2, Operando3
Ou: ADD Op1, Op2, Op3
Leonard B. Moreira (-) Processadores 50 / 118
Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
Pode-se economizar o emprego de operandos, escolhendo um para
servir a um duplo propo´sito;
C.Op. Operando 1 Operando 2
Esta instruc¸a˜o poderia ser do tipo somar o valor armazenado na MP
no enderec¸o indicado no campo operando 1 com valor armazenado
na MP no enderec¸o indicado no campo operando 2 e armazenar o
resultado na posic¸a˜o de MP, cujo enderec¸o esta´ indicado no campo
operando 1;
Ou: SOMAR Operando1, Operando2
Ou: ADD Op1, Op2
Leonard B. Moreira (-) Processadores 51 / 118
Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
Pode-se utilizar o ACC para armazenar inicialmente um dos valores e,
depois da realizac¸a˜o da soma, armazenar o resultado;
C.Op. Operando 1
E sua representac¸a˜o: ACC ←− ACC + (Operando)
Leonard B. Moreira (-) Processadores 52 / 118
Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
Importante!
Um mesmo conjunto de instruc¸o˜es de um processadorpodem existir
formatos diferentes de instruc¸o˜es, inclusive para a realizac¸a˜o de uma
mesma operac¸a˜o;
Outro fator a ser considerado no projeto do conjunto de instruc¸o˜es
refere-se ao modo de localizar o dado, chamado de modo de
enderec¸amento
Leonard B. Moreira (-) Processadores 53 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Suma´rio
1 Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Func¸a˜o Processamento
Func¸a˜o Controle
2 Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
3 Funcionamento do Processador: o ciclo de instruc¸a˜o
4 Modos de Enderec¸amento
Modo Imediato
Modo Direto
Modo Indireto
por Registrador
Indexado
Modo base mais deslocamento
5 Execuc¸a˜o de Programas
6 Refereˆncias
Leonard B. Moreira (-) Processadores 54 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
A base de projeto de um processador e´ a escolha do conjunto de
instruc¸o˜es que ele ira´ executar...
Para em seguida definir e especificar os demais componentes da
arquitetura e da organizac¸a˜o.
Mostraremos o funcionamento ba´sico de um processador,
apresentando as etapas requeridas para o processador completar a
execuc¸a˜o de uma instruc¸a˜o de ma´quina;
Leonard B. Moreira (-) Processadores 55 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Sera´ utilizado um subsistema UCP/MP hipote´tico, com as seguintes
caracter´ısticas:
Figura 14 : Descric¸a˜o das caracter´ısticas principais de um pequeno processador
Leonard B. Moreira (-) Processadores 56 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
As instruc¸o˜es JZ Op., JP Op.,JN Op, JMP Op. mostradas na Figura
TAL sa˜o instruc¸o˜es de desvio;
Importante!
Desvio e´ uma alterac¸a˜o forc¸ada da sequeˆncia de execuc¸a˜o de um
programa (e.g. instruc¸o˜es if..then).
Os desvios se efetivam pela alterac¸a˜o de enderec¸o de busca de
instruc¸a˜o (armazenado no CI);
Eles podem ser classificados como:
1) desvio incondicional: na˜o ha´ condic¸a˜o a ser satisfeita e o desvio e´
sempre executado;
2) desvio condicional: o valor do campo operando da instruc¸a˜o somente
sera´ transferido para o CI se uma dada condic¸a˜o for satisfeita;
Leonard B. Moreira (-) Processadores 57 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Importante!
Lembre-se que, pela caracter´ıstica sequencial de execuc¸a˜o, o hardware
incrementa o conteu´do do CI (CI=CI+1)a
Os desvios se efetivam pela alterac¸a˜o de enderec¸o de busca de
instruc¸a˜o (armazenado no CI);
aEm computadores CISC, C=CI+n onde n e´ a quantidade de ce´lulas
ocupadas por uma u´nica instruc¸a˜o
Leonard B. Moreira (-) Processadores 58 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
O ciclo de instruc¸a˜o apresentado na Figura a seguir, pode ser descrito
em LTR(linguagem de transfereˆncia entre registradores):
Leonard B. Moreira (-) Processadores 59 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Iniciar
RI ←− (CI) Buscar a instruc¸a˜o, cujo enderec¸o esta´ no CI
(CI) ←− (CI) + 1 Conteu´do de CI e´ incrementado para o en-
derec¸o da pro´xima instruc¸a˜o
Interpretar o C.Op O decodificador recebe os bits do C.Op. e
gera uma sa´ıda
Buscar Op.(se houver)
Executar a instruc¸a˜o
Escrever resultado
Retornar
Leonard B. Moreira (-) Processadores 60 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Notac¸a˜o
* (RI) ou (CI) entre pareˆnteses indica conteu´do do enderec¸o (de RI ou CI)
* RI ou CI sem pareˆnteses indica valor (de RI ou CI);
Leonard B. Moreira (-) Processadores 61 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Vamos considerar a execuc¸a˜o de duas das instruc¸o˜es definidas:
LDA Op e ADD Op.
E tambe´m alguns valores iniciais existentes ao iniciar a execuc¸a˜o do
primeiro ciclo de instruc¸a˜o da instruc¸a˜o LDA.
Leonard B. Moreira (-) Processadores 62 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Figura 15 : Dados iniciais para execuc¸a˜o do ciclo das instruc¸o˜es LDA e ADD
Leonard B. Moreira (-) Processadores 63 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Dados iniciais para execuc¸a˜o do ciclo das instruc¸o˜es LDA e ADD:
a) A instruc¸a˜o LDA esta´ armazenada na MP em 0216. Sua descric¸a˜o e´
1B416 ou 0001101101002. Segundo o formato de instruc¸a˜o temos:
0001 10110100
C.Op. Op.
b) O valor do dado armazenado na ce´lula de enderec¸o B4 e´ igual a 1A716
(valor assumido no exemplo)
c) a instruc¸a˜o ADD esta´ armazenada no enderec¸o 0316 e sua descric¸a˜o e´
3B516 (0011101101012);
0011 10110101
C.Op. Op.
Leonard B. Moreira (-) Processadores 64 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Atenc¸a˜o!
Os co´digos de operac¸a˜o(C.Op.) para ADD igual a 3 (00112) e LDA igual a
1(00012) esta˜o definidos na caracter´ıstica proposta para o subsistema de
acordo com FIGURA
Leonard B. Moreira (-) Processadores 65 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Dados iniciais para execuc¸a˜o do ciclo das instruc¸o˜es LDA e ADD:
d) O valor do dado armazenado em B516 e´ 07D16 ou 12510;
e) O valor armazenado no CI = 0216 e´ considerado no exemplo como
tendo sido atribu´ıdo pelo SO;
f) O valor armazenado no RI = 31716 (provavelmente e´ o valor da
instruc¸a˜o anteriormente executada)
g) O valor armazenado no registrador de dados R0 = 20B16 (tambe´m e´
um valor obtido em operac¸a˜o anterior)
h) O valor armazenado no REM = B3 e no RDM = 7BC (operac¸o˜es
anteriores)
Leonard B. Moreira (-) Processadores 66 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Ao terminar um ciclo de uma instruc¸a˜o qualquer, a UC reinicia o
processo atrave´s da execuc¸a˜o do ciclo de uma nova instruc¸a˜o;
No caso, a instruc¸a˜o foi o LDA do exemplo;
Leonard B. Moreira (-) Processadores 67 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Execuc¸a˜o do ciclo de instruc¸a˜o LDA Op.:
1 RI←−(CI)
a) A UC aciona a transfereˆncia dos bits do CI para o REM (CI−→REM =
02)
b) A UC ativa a linha READ do barramento de controle (reconhecido pelo
decodificador de end. da MP)
c) O dispositivo de controle da memo´ria decodifica o enderec¸o. Apo´s,
transfere os bits da ce´lula de enderec¸o 02 (valor 1B4) para o
barramento de dados e da´ı para o RDM.
d) A seguir, o valor 1B4 e´ transferido do RDM para o RI, substituindo o
valor 317 que estava armazenado
Leonard B. Moreira (-) Processadores 68 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Execuc¸a˜o do ciclo de instruc¸a˜o LDA Op. (continuac¸~ao...)
2 CI←−(CI)+1
a) Resultado: CI = 03
Figura 16 : Fluxo de dados e de enderec¸os durante a realizac¸a˜o do ciclo de
busca da instruc¸a˜o LDA
Leonard B. Moreira (-) Processadores 69 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Execuc¸a˜o do ciclo de instruc¸a˜o LDA Op. (continuac¸~ao...)
3 Decodificac¸a˜o do Co´digo de Operac¸a˜o
a) A UC emite o sinal apropriado para que o RI transfira para o
decodificador de instruc¸a˜o os 4 bits que correspondem ao valor do
C.Op. (Resultado: decodificador←−00012b) O decodificador seleciona a linha de sa´ıda correspondente a` UC que
emitira´ os sinais adequados a` operac¸a˜o (execuc¸a˜o de);
4 Se tiver operando(s), busca´-lo(s); sena˜o, passar para o item 5;
Leonard B. Moreira (-) Processadores 70 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Execuc¸a˜o do ciclo de instruc¸a˜o LDA Op. (continuac¸~ao...)
5 Execuc¸a˜o da operac¸a˜o
a) A UC emite o sinal para que os bits correspondentes ao valor do campo
do operando da instruc¸a˜o (B4) sejam transferidos para o REM
b) UC ativa linha READ, ativando o circuito de controle da MP para
decodificar o enderec¸o B4;
c) Transfereˆncia o valor armazenado na ce´lula de enderec¸o B4 (valor 1A7)
para o RDM - via barramento de dados;
6 Escrever o resultado
a) Resultado: RDM = 1A7
No instante seguinte, a UC emite o sinal apropriado para que este valor
seja transferido (co´pia) para o registrador R0;
Leonard B. Moreira (-) Processadores 71 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Ao final temos os seguintes valores conforme Figura
Figura 17 : Fluxo de dados e de enderec¸os durante o ciclo de execuc¸a˜o da
instruc¸a˜o LDA
Leonard B. Moreira (-) Processadores 72 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Importante!
Os passos 1 e 2 correspondem ao ciclo de busca (fetch) e os seguintes -
3,4,5 e 6 - correspondem ao ciclo de execuc¸a˜o!
Leonard B. Moreira (-) Processadores 73 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Vamos descrever o ciclo de instruc¸a˜o ADD Op (considerar que e´ a
instruc¸a˜o seguinte na sequeˆncia de execuc¸a˜o)
- CI = 03; RI = 1B4; R0=1A7; REM = B4; RDM = 1A7;
Figura 18 : Dados iniciais para a execuc¸a˜o da instruc¸a˜o ADD
Leonard B. Moreira (-) Processadores 74 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Execuc¸a˜o do ciclo de instruc¸a˜o ADD Op.:
1 RI←−(CI)
a) REM←−CI = 03
b) Ativac¸a˜o da linha READ pela UC.
c) RDM←−3B5
d) RI←−3B5, substituindo o valor 1B4 da instruc¸a˜o anterior.
2 (CI)←−(CI)+1
a) CI = 03 +1 = 4
Leonard B. Moreira (-) Processadores 75 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Figura 19 : Fluxo de dados e de enderec¸os durante a realizac¸a˜o do ciclo de busca
da instruc¸a˜o ADD
Leonard B. Moreira (-) Processadores 76 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Execuc¸a˜o do ciclo de instruc¸a˜o ADD Op. (continuac¸~ao...):
3 Decodificac¸a˜o do co´digo de operac¸a˜o
a) C.Op. = 3
b) Decodificador←−(RI(C.Op.)): a definic¸a˜o da sa´ıda decodificada
correspondente a` operac¸a˜o ADD e´ enviada para a UC;
c) A UC emite sinais apropriados para a realizac¸a˜o dos passos 4 e 5 de
acordo com sua programac¸a˜o pre´via;
Leonard B. Moreira (-) Processadores 77 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Execuc¸a˜o do ciclo de instruc¸a˜o ADD Op. (continuac¸~ao...):
4 Buscar operando na MP: como instruc¸a˜o determina que o valor em
R0 seja somado a um valor que esta´ na MP (end. B5), trata-se de um
ciclo de memo´ria para leitura.
a) A UC emite sinal de controle de modo que: REM←−Op. REM←−B5,
pois Op. B5
b) O valor de B5 e´ colocado no barramento de enderec¸os (UC) e a UC
ativa a linha READ
c) O controle da MP dcodifica o enderec¸o B5 e, em seguida, os bits
armazenados no enderec¸o B5(07D) sa˜o transferidos para o RDM.
RDM←−(M(REM))
RDM←−(M(B5))
RDM = 07D
d) UAL←−R0(1A7), que e´ o primeiro operando
R0 ←−RDM(07D)
UAL←−R0(07D), que e´ o segundo operando
Leonard B. Moreira (-) Processadores 78 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Execuc¸a˜o do ciclo de instruc¸a˜o ADD Op. (continuac¸~ao...):
5 Execuc¸a˜o da operac¸a˜o
a) UC emite sinal que aciona a entrada dos dois valores no circuito lo´gico,
que realiza a adic¸a˜o e obte´m o resultado na sa´ıda
b) 1A716 + 07D16 = 22416
6 Escrever o resultado
a) O resultado e´ transferido para R0, concluindo a execuc¸a˜o do subciclo
de execuc¸a˜o e o ciclo completo de instruc¸a˜o
Importante!
A instruc¸a˜o ADD consumiu dois ciclos de memo´ria (para leitura), um para
a busca da instruc¸a˜o e outro para a busca do 2o operando
Leonard B. Moreira (-) Processadores 79 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Figura 20 : Fluxo de dados e de enderec¸os durante a realizac¸a˜o do ciclo de
execuc¸a˜o da instruc¸a˜o ADD
Leonard B. Moreira (-) Processadores 80 / 118
Funcionamento do Processador: o ciclo de instruc¸a˜o
Funcionamento do Processador: o ciclo de instruc¸a˜o
Atenc¸a˜o!
O tempo ba´sico de excuc¸a˜o e´ praticamente o mesmo da instruc¸a˜o LDA,
visto que ambas realizaram a mesma quantidade de acessos a` MP;
A pequena diferenc¸a existente reside na opearc¸a˜o aritme´tica realizada pela
instruc¸a˜o ADD;
No entanto se a instruc¸a˜o a ser executada possu´ısse dois operandos,
por exemplo:
(Op.1)←−(Op.1) + (Op.2)
A completa realizac¸a˜o de seu ciclo de instruc¸a˜o consumiria quatro
ciclos de memo´ria(quatro acessos):
1 um ciclo de memo´ria para buscar a instruc¸a˜o e armazena´-la no RI;
2 um ciclo de memo´ria para buscar o primeiro operando (Op.);
3 um terceiro ciclo para buscar o segundo operando, e;
4 o u´ltimo ciclo para armazenar o resultado da operac¸a˜o na memo´ria, no
enderec¸o indicado por Op.
Leonard B. Moreira (-) Processadores 81 / 118
Modos de Enderec¸amento
Suma´rio
1 Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Func¸a˜o Processamento
Func¸a˜o Controle
2 Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
3 Funcionamento do Processador: o ciclo de instruc¸a˜o
4 Modos de Enderec¸amento
Modo Imediato
Modo Direto
Modo Indireto
por Registrador
Indexado
Modo base mais deslocamento
5 Execuc¸a˜o de Programas
6 Refereˆncias
Leonard B. Moreira (-) Processadores 82 / 118
Modos de Enderec¸amento
Modos de Enderec¸amento
Ate´ o momento descrevemos o formato ba´sico de instruc¸o˜es de
ma´quina e o ciclo de execuc¸a˜o de cada instruc¸a˜o, concluindo que:
a) o enderec¸amento de uma instruc¸a˜o e´ realizado atrave´s do valor em CI
(RI←−CI);
b) toda instruc¸a˜o consiste em um co´digo de operac¸a˜o para o processador
executar uma operac¸a˜o sobre os dados, que podem ser nu´meros,
caracter ou um enderec¸o.
c) a localizac¸a˜o do dado pode estar explicitamente indicada no campo de
operando (ou implicitamente quando possui somente um registrador -
ACC)
Ate´ aqui o campo de operando continja o enderec¸o da MP onde esta´
localizado o referido dado da instruc¸a˜o;
Esta na˜o e´ a u´nica maneira de indicar a localizac¸a˜o de um
dado, havendo outros modos de enderec¸amento!
Leonard B. Moreira (-) Processadores 83 / 118
Modos de Enderec¸amento
Modos de Enderec¸amento
Dentre os diversos modeos de enderec¸amento desenvolvido para
processadores, os principais sa˜o:
imediato
direto
indireto
por registrador
indexado
base mais deslocamento
Os diversos modos existem para atender a`s necessidades os diferentes
requisitos dos programas (caracter´ısticas da CISC);
Leonard B. Moreira (-) Processadores 84 / 118
Modos de Enderec¸amento Modo Imediato
Modo Imediato
O valor do dado e´ indicado no pro´prio campo do operando
Me´todo simples e ra´pido
- curto tempo de execuc¸a˜o da instruc¸a˜o pois na˜o gasta ciclo de memo´ria
(exceto o requeridopara sua busca)
Assim, o dado e´ transferido da MP juntamente com a instruc¸a˜o
Este modo e´ u´til:
- para inicializac¸a˜o de contadores
- na operac¸a˜o com constantes matema´ticas
- para armazenamento de ponteiros em registradores do processador
- indicac¸a˜o da quantidade de posic¸o˜es em que um determinado nu´mero
sera´ deslocado;
Leonard B. Moreira (-) Processadores 85 / 118
Modos de Enderec¸amento Modo Imediato
Modo Imediato
C.Op. Operando (o valor do dado)
01101010 100110001101010001100001
6A16 98D46116
Instruc¸a˜o LDA Op.: R0 ←−Op.
C.Op. = 6A−→LDA: Operando 98D461 e´ o pro´prio valor do dado,
como por exemplo, uma constante
Leonard B. Moreira (-) Processadores 86 / 118
Modos de Enderec¸amento Modo Imediato
Modo Imediato
Dentre as desvantagens:
limitac¸a˜o do valor ma´ximo do dado a ser manipulado
- limitac¸a˜o do tamanho do campo operando das instruc¸o˜es
alterac¸a˜o do valor do campo operando a cada execuc¸a˜o (valores
diferentes) em programas repetidamente executados;
Leonard B. Moreira (-) Processadores 87 / 118
Modos de Enderec¸amento Modo Direto
Modo Direto
O valor contido com campo operando da instruc¸a˜o indica o enderec¸o
de memo´ria onde se localiza o dado;
Pode indicar tambe´m o enderec¸o da ce´lula inicial (dados armazenados
em mu´ltiplas ce´lulas ou me´todo disposic¸a˜o do dado e´ big-endian)
E´ tambe´m um mode simples de acesso
requer apenas uma refereˆncia a` MP
pore´m e´ mais lento do que o modo imediato
Leonard B. Moreira (-) Processadores 88 / 118
Modos de Enderec¸amento Modo Direto
Modo Direto
O valor contido com campo operando da instruc¸a˜o indica o enderec¸o
de memo´ria onde se localiza o dado;
Pode indicar tambe´m o enderec¸o da ce´lula inicial (dados armazenados
em mu´ltiplas ce´lulas ou me´todo disposic¸a˜o do dado e´ big-endian)
E´ tambe´m um modo simples de acesso
requer apenas uma refereˆncia a` MP para acessar o dado
pore´m e´ mais lento do que o modo imediato
Leonard B. Moreira (-) Processadores 89 / 118
Modos de Enderec¸amento Modo Direto
Modo Direto
Desvantagem: espac¸o de enderec¸amento limitado
- limitac¸a˜o de memo´ria a ser usada conforme o tamanho do campo
operando
- Por exemplo, com tamanho de 12 bits somente pode-se acessar as
ce´lulas na faixa de 0 a 4095.
Leonard B. Moreira (-) Processadores 90 / 118
Modos de Enderec¸amento Modo Indireto
Modo Indireto
O valor do campo operando representa o enderec¸o de uma ce´lula cujo
conteu´do e´ outro enderec¸o de memo´ria onde conte´m o valor do dado;
- existe um duplo enderec¸amento, onde o enderec¸o intermedia´rio e´
conhecido como ponteiro
O enderec¸o pode ser referenciado em n´ıveis: R0 ←−(...(Op.)...)
- o enderec¸amento de n´ıvel 1 e´ o mais comum R0 ←−((Op.))
A vantagem e´ o grande espac¸o de enderec¸amento
- 2n, onde n e´ o nu´mero de bits da palavra
Leonard B. Moreira (-) Processadores 91 / 118
Modos de Enderec¸amento Modo Indireto
Modo Indireto
- A desvantagem e´ o mu´ltiplo acesso a` MP para obter um operando,
portanto mais lento;
Leonard B. Moreira (-) Processadores 92 / 118
Modos de Enderec¸amento por Registrador
por Registrador
O enderec¸o da instruc¸a˜o passa a ser o de um dos registradores, e na˜o
mais de uma ce´lula de MP;
Vantagens
- Necessita de campo de enderec¸o muito menor
- Instruc¸o˜es mais curtas
- Busca de instruc¸a˜o mais ra´pida
- Nenhuma busca a` memo´ria para obter operando, portanto execuc¸a˜o
muito ra´pida
Neste modo, maior quantidade de registradores implica melhor
desempenho
Leonard B. Moreira (-) Processadores 93 / 118
Modos de Enderec¸amento Indexado
Indexado
O enderec¸o do dado e´ a soma do valor do campo operando e de um
valor armazenado em um dos registradores (registrador ı´ndice);
Muito utilizados para acessos a elementos de arrays
- localizac¸a˜o pode ser dada por um ponteiro, e o elemento desejado
atrave´s de um deslocamento
Vantagem: Rapidez na execuc¸a˜o das instruc¸o˜es de acesso aos dados
(a alterac¸a˜o dos enderec¸os e´ realizada na UCP.
Leonard B. Moreira (-) Processadores 94 / 118
Modos de Enderec¸amento Indexado
Indexado
Exemplo
ADD R3, (R1+R2)
Significado:
- Regs(R3)←−Regs(R3)+MP(Regs(R1)+Regs(R2))
usado no acesso aos elementos de um vetor (R1=base, R2=´ındice)
Leonard B. Moreira (-) Processadores 95 / 118
Modos de Enderec¸amento Indexado
por Registrador
Desvantagem: nu´mero limitado de registradores (espac¸o de
enderec¸amento extremamente limitado)
Leonard B. Moreira (-) Processadores 96 / 118
Modos de Enderec¸amento Modo base mais deslocamento
Modo base mais deslocamento
Enderec¸o e´ obtido atrave´s da soma dos valores encontrados nos dois
campos da instruc¸a˜o:
- um com um valor denominado deslocamento (displacement) - valor
relativo que se desloca em relac¸a˜o a 1a instruc¸a˜o;
- ..e outro com o enderec¸o do registrador (base ou segmento)
Semelhante ao modo indexado, exceto pela aplicac¸a˜o e no propo´sito
do me´todo
- o valor a se manter fixo e´ o da (registrador)base/segmento, variando o
campo deslocamento em cada instruc¸a˜o
- no modo indexado o conteu´do do registrador e´ o que se altera
Leonard B. Moreira (-) Processadores 97 / 118
Modos de Enderec¸amento Modo base mais deslocamento
Modo base mais deslocamento
Leonard B. Moreira (-) Processadores 98 / 118
Modos de Enderec¸amento Modo base mais deslocamento
Modo base mais deslocamento
Sobe o que realmente acontece na ma´quina, pode-se observar:
- no modo indexado va´rios dados sa˜o acessados com diversos valores de
registrador-´ındice e um u´nico valor no campo operando;
- no modo base mais deslocamento va´rios dados sa˜o acessados com um
u´nico valor de registrador-base e valores diferentes no campo
deslocamento da instruc¸a˜o;
Leonard B. Moreira (-) Processadores 99 / 118
Execuc¸a˜o de Programas
Suma´rio
1 Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Func¸a˜o Processamento
Func¸a˜o Controle
2 Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
3 Funcionamento do Processador: o ciclo de instruc¸a˜o
4 Modos de Enderec¸amento
Modo Imediato
Modo Direto
Modo Indireto
por Registrador
Indexado
Modo base mais deslocamento
5 Execuc¸a˜o de Programas
6 Refereˆncias
Leonard B. Moreira (-) Processadores 100 / 118
Execuc¸a˜o de Programas
Execuc¸a˜o de Programas
Um programa e´ escrito em uma linguagem que a ma´quina na˜o
entende
- Linguagem de alto n´ıvel
E´ necessa´rio traduzir o programa para a linguagem bina´ria (ou
linguagem de ma´quina)
Leonard B. Moreira (-) Processadores 101 / 118
Execuc¸a˜o de Programas
Execuc¸a˜o de Programas
Ineficieˆncia de se programar em linguagem de ma´quina
- pode ter milhares de instruc¸o˜es, conhecimento profundo da arquitetura,
ma˜o de obra cara, etc;
Para minimizar estes efeitos, foi desenvolvida a linguagem de
montagem (Assembly);
- intuito de representar as instruc¸o˜es atrave´s de s´ımbolos e na˜o nu´meros;
Uma instruc¸a˜o ADD SALARIO e´ mais fa´cil de ser entendida e
representada do que 1110 0100 1001 1001
Leonard B. Moreira (-) Processadores 102 / 118
Execuc¸a˜o de Programas
Execuc¸a˜o de Programas
Para usar linguagem de montagem e´ necessa´rio converter os s´ımbolos
em co´digo de ma´quina
Este processo de conversa˜o (ou traduc¸a˜o) e´ chamado de montagem...
... e e´ realizado por um programa chamado montador(Assembler);
O montador leˆ cada instruc¸a˜o em Assembly e cria uma instruc¸a˜o
equivalente em linguagem de ma´quina
Leonard B. Moreira (-) Processadores 103 / 118
Execuc¸a˜o de Programas
Execuc¸a˜o de Programas
Ainda assim, a tarefa de programar em linguagem de montagem e´
a´rdua, tediosa e complexa;
O desenvolvimento de linguagens que refletissem mais os
procedimentosutilizados na soluc¸a˜o de um problema era necessa´ria
- sem preocupac¸a˜o com o tipo de UCP, memo´ria onde sera´ alocado, etc..
Tais linguagens sa˜o denominadas de linguagens de alto n´ıvel ;
- tambe´m conhecidas como orientada a problema;
- permite que especifique as ac¸oes do computador com menos instruc¸o˜es
(atrave´s de comandos);
Leonard B. Moreira (-) Processadores 104 / 118
Execuc¸a˜o de Programas
Execuc¸a˜o de Programas
Leonard B. Moreira (-) Processadores 105 / 118
Execuc¸a˜o de Programas
Gerac¸a˜o do Executa´vel
Leonard B. Moreira (-) Processadores 106 / 118
Execuc¸a˜o de Programas
Compilac¸a˜o
Compilador traduz o programa escrito em linguagem de alto n´ıvel
para linguagem de montagem
Compilador executa treˆs func¸o˜es:
1 Ana´lise le´xica: decompo˜e o programa fonte em seus elementos
individuais distintos (comandos, operadores, varia´veis) e verifica se
esta˜o de acordo com as regras da linguagem
2 Ana´lise sinta´tica: cria as estruturas para os comandos e verifica a
correc¸a˜o das estruturas (por exemplo, tem int antes de main, tem abre
e fecha pareˆnteses)
3 Ana´lise semaˆntica:verifica as regras semaˆnticas esta´ticas da
linguagem (por exemplo, estar atribuindo valores do tipo correto para
uma varia´vel)
- Ex.: Parcela1=1.5, poderia dar erro pois varia´vel Parcela1 e´ do tipo int
Leonard B. Moreira (-) Processadores 107 / 118
Execuc¸a˜o de Programas
Montagem
Montador realiza a traduc¸a˜o de um programa em linguagem de
montagem (co´digo fonte) para linguagem bina´ria (co´digo objeto)
Func¸o˜es ba´sicas:
1) Substituir co´digos de operac¸o˜es simbo´licos por valores nume´ricos
2) Substituir nomes simbo´licos de enderec¸os por valores nume´ricos
3) Reservar espac¸o de memo´ria para armazenamento de instruc¸o˜es e dados
4) Converter valores de constantes para bina´rios
5) Examinar a correc¸a˜o de cada instruc¸a˜o
Leonard B. Moreira (-) Processadores 108 / 118
Execuc¸a˜o de Programas
Link-edic¸a˜o
Link-editor ou ligador
Algumas rotinas ja´ existem codificadas no sistema, por exemplo,
rotinas para entrada e sa´ıda de dados, de modo que o programador
na˜o precisa codifica´-las.
printf(), readln(), rotinas matema´ticas como seno e cosseno.
Estas rotinas sa˜o armazenadas em bibliotecas que sa˜o inclu´ıdas no
co´digo objeto gerado pelo compilador.
Para que o co´digo da subrotina externa seja anexada ao co´digo objeto
utiliza-se o processo de ligac¸a˜o
- Este processo examina todo o co´digo objeto e procura por refereˆncias
externas na˜o resolvidas assinaladas pelo compilador.
- Ele procura pela rotina no sistema e, se a encontra, inclui seu co´digo
no co´digo objeto, caso contra´rio, gera uma mensagem de erro.
Leonard B. Moreira (-) Processadores 109 / 118
Execuc¸a˜o de Programas
Programas Interpretados
Linguagem interpretada
Realiza as treˆs fases (compilac¸a˜o, ligac¸a˜o e execuc¸a˜o) comando a
comando do programa fonte.
Um programa fonte e´ executado pelo programa interpretador.
Leonard B. Moreira (-) Processadores 110 / 118
Execuc¸a˜o de Programas
Compilac¸a˜o x Interpretac¸a˜o
Erros sa˜o detectados de forma mais fa´cil na interpretac¸a˜o
Utiliza-se mais memo´ria na interpretac¸a˜o porque interpretador tem
que estar na memo´ria
Na interpretac¸a˜o, loop tem que ser traduzido em todas as iterac¸o˜es
Programas muito utilizados sa˜o traduzidos toda vez que sa˜o
executados na interpretac¸a˜o
Leonard B. Moreira (-) Processadores 111 / 118
Execuc¸a˜o de Programas
Compilac¸a˜o x Interpretac¸a˜o
Tabela 2 : Resumo do uso de recursos de computac¸a˜o durante o processo de
compilac¸a˜o e de interpretac¸a˜o
Recursos Compilac¸a˜o Interpretac¸a˜o
Uso da memo´ria (durante a execuc¸a˜o)
- Interpretador ou compilador Na˜o Sim
- Co´digo-fonte Na˜o Parcial
- Co´digo-executa´vel Sim Parcial
- Rotinas de bibliotecas So´ as necessa´rias Todas
Instruc¸o˜es de ma´quina (durante a execuc¸a˜o)
- Operac¸o˜es de traduc¸a˜o Na˜o Sim
- Ligac¸a˜o de bibliotecas Na˜o Sim
- Programa de aplicac¸a˜o Sim Sim
Leonard B. Moreira (-) Processadores 112 / 118
Execuc¸a˜o de Programas
Execuc¸a˜o de programas em co´digo de ma´quina
Para converter um programa Assembly em linguagem de ma´quina e
podermos realizar os ciclos de instruc¸a˜o passo a passo (execuc¸a˜o do
programa), vamos considerar:
a) UCP/MP com mesmas caracter´ısticas anteriorimente descritas;
b) as varia´veis usadas no programa sa˜o:
Varia´vel Enderec¸o(Hexadecimal) Valor(Hexadecimal)
Y 1F 051
Z 20 03E
T 21 003
X 22 01A
c) o programa esta´ armazenado na MP a partir do enderec¸o 18h, e no
instante inicial vamos considerar que:
I) CI=1816
II)Conteu´do de RI e R0 sa˜o da instruc¸a˜o anterior
Leonard B. Moreira (-) Processadores 113 / 118
Execuc¸a˜o de Programas
Execuc¸a˜o de programas em co´digo de ma´quina
Tabela 3 : Programa em linguagem de montagem para solucionar a expressa˜o
X=Y+Z-T
ORG
LDA Y
ADD Z
SUB T
STR X
JZ FIM
PTR X
FIM HLT
Ver descric¸o˜es e C.Op. da instruc¸o˜es na Figura 14
Leonard B. Moreira (-) Processadores 114 / 118
Execuc¸a˜o de Programas
Execuc¸a˜o de programas em co´digo de ma´quina
Tabela 4 : Tabela contendo trecho da MP onde se encontram armazenados o
programa e os dados do exemplo
Enderec¸o Conteu´do
18 11F
19 320
1A 421
1B 222
1C 51E
1D B22
1E 000
1F 051
20 03E
21 003
22 01A
Leonard B. Moreira (-) Processadores 115 / 118
Execuc¸a˜o de Programas
Execuc¸a˜o de programas em co´digo de ma´quina
Tabela 5 : Tabela contendo trecho da MP onde se encontram armazenados o
programa e os dados do exemplo
CI RI R0
18 XXX XXX
Instruc¸a˜o 1: 19 11F 051
Instruc¸a˜o 2: 1A 320 08F
Instruc¸a˜o 3: 1B 421 08C
Instruc¸a˜o 4: 1C 222 08C
Instruc¸a˜o 5: 1D 51E 08C
Instruc¸a˜o 6: 1E B22 08C
Instruc¸a˜o 7: 1F 000 08C
Leonard B. Moreira (-) Processadores 116 / 118
Refereˆncias
Suma´rio
1 Organizac¸a˜o Funcional da UCP
Func¸o˜es realizadas pela UCP
Func¸a˜o Processamento
Func¸a˜o Controle
2 Instruc¸o˜es de ma´quina
Formato das Instruc¸o˜es
3 Funcionamento do Processador: o ciclo de instruc¸a˜o
4 Modos de Enderec¸amento
Modo Imediato
Modo Direto
Modo Indireto
por Registrador
Indexado
Modo base mais deslocamento
5 Execuc¸a˜o de Programas
6 Refereˆncias
Leonard B. Moreira (-) Processadores 117 / 118
Refereˆncias
Refereˆncias
TANENBAUM, Andrew .S. Organizac¸a˜o estruturada de
computadores. 3a ed. Sa˜o Paulo: Pearson Prentice Hall, 2005.
MONTEIRO, M. Introduc¸a˜o a Organizac¸a˜o de Computadores. 5a ed.
Rio de Janeiro: LTC, 2007.
Leonard B. Moreira (-) Processadores 118 / 118
	Organização Funcional da UCP
	Instruções de máquina
	Funcionamento do Processador: o ciclo de instrução
	Modos de Endereçamento
	Modo Imediato
	Modo Direto
	Modo Indireto
	por Registrador
	Indexado
	Modo base mais deslocamento
	Execução de Programas
	Referências

Outros materiais