Você está na página 1de 4

Tipos de Instrues

O Nvel da Arquitetura do Conjunto de Instrues (ISA) (Parte III)


O Curso de Tecnologia em Telemtica Nvel da Arquitetura do Conjunto de Arquitetura de Computadores Disciplina Instrues (ISA) (Parte III)
Prof. Daniella Dias danidias.jp@gmail.com

As instrues do nvel ISA podem ser agrupadas segundo suas

funcionalidades. Exemplos:
Instrues de Movimento de Dados Operaes Didicas Operaes Mondicas Comparaes e Desvios Condicionais Instrues de Chamadas a Procedimento Controle de Loop Entrada/Sada

Instrues de Movimento de Dados


Compreende, na verdade, a uma duplicao de dados. Cria-se um novo objeto, com a mesma configurao de bits do objeto

Razes que motivam a cpia de dados de um lado para outro:


1. A atribuio de valores a variveis
Exemplo: O comando A = B implementado copiando-se no

original. O contedo original da memria no apagado (pelo menos de imediato) As instrues de movimento de dados precisam, antes de mais nada, indicar a quantidade de dados a ser movida de um lugar para outro.

endereo A o valor armazenado em B.

2. Disponibilizao de dados em locais de acesso mais eficiente.


Um dado, que muito usado em um programa, pode ser copiado Exemplo: a varivel de controle de um loop.

para um registrador ou para uma memria cache.

Operaes Didicas
So aquelas que combinam dois operandos para produzir um

Operaes Didicas
A funo OR usada para insero de bits em uma palavra. Exemplo Para se modificar os 4 bits mais a direita de uma palavra podeExemplo:

resultado. Exemplo: Exemplo Todas as arquiteturas tm instrues para soma, subtrao, multiplicao e diviso de nmeros inteiros. Tambm, as funes booleanas AND, NAND, OR, NOR, XOR e outras so operaes didicas. A funo AND muito usada para extrair, ou isolar, bits de palavras. Exemplo: 1011 1101 1010 A
0000 1111 0000 B (mscara) 0000 1101 0000 A AND B

se fazer:

1001 1111 1001 0000 1001

1101 1111 1101 0000 1101

1010 0000 0000 0101 0101

A B (mscara) A AND B C (A AND B) OR C

A funo AND tende a remover 1s, a funo OR tende a inserir 1s nos

resultados das operaes envolvendo essas funes. A operao XOR simtrica.

Operaes Mondicas
So aquelas que tm apenas um operando e produzem um resultado. As instrues para deslocar ou rotacionar o contedo de uma palavra ou

Operaes Mondicas
Muitas vezes as operaes de deslocamento a direita so realizados com

de um byte so mondicas. Exemplos: 1011 1101 1011 A 0010 1111 0110 A deslocado 2 bits direita (equivale a uma diviso por 4) 1110 1111 0110 A rotacionado 2 bits direita
Vantagem do descolamento?

extenso do sinal. Neste caso um nmero negativo continuar negativo aps sofrer uma operao de deslocamento. Exemplos: 1011 1101 1011 A 0010 1111 0110 A deslocado 2 bits direita, sem extenso de sinal 1110 1111 0110 A deslocado 2 bits direita, com extenso de sinal

Comparaes e Desvios Condicionais


Os programas precisam ter a capacidade de testar seus dados e alterar a

Comparaes e Desvios Condicionais


Tambm, comum utilizar-se desvios ao comparar-se um dado com o

seqncia de execuo de suas instrues com base nos resultados desses testes. Exemplo a instruo sqrt (x) - raiz quadrada de x - deve testar o valor Exemplo: de x antes de ser executada. Se x>=0 o resultado a raiz quadrada de x, caso contrrio, a instruo deve desviar a seqncia de execuo para um LABEL de erro ou "warning". Os desvios podem ser determinados pela comparao de 1 bit de dados. Exemplo: Exemplo Para saber se um dado positivo ou negativo, compara-se seu bit mais significativo com 0 ou 1, respectivamente.

valor 0 (por exemplo em loops do tipo while( i != 0)).


Para isto, em geral todos os processadores tm um circuito OR com as

entradas ligadas a todos os bits de um dado.


No necessrio comparar todos os bits do dado. Neste caso, a sada desse OR s ser 0 quando todos os bits do dado

forem iguais a 0.

10

Comparaes e Desvios Condicionais


Pode-se ter, ainda, circuitos comparadores de dois dados

Comparaes e Desvios Condicionais


Outro ponto importante: Comparao de nmeros com e sem

indicando se os dados so iguais ou diferentes. A instruo que realiza essas operaes tem 3 endereos. Por qu?
Um endereo para o desvio.

sinal.

Valor sem sinal 000 001 010 011 100 101 110 111

Valor com sinal 100 (menor) 101 110 111 000 001 010 011 (maior)
12

E as mquinas que no permitem 3 endereos? Uma soluo possvel: 02 instrues: 1 modifica bits da mquina; 2 compara esses bits e desvia.

11

Instrues de Chamadas a Procedimento


Um procedimento (sub-rotina, mtodo ou funo) pode ser definido

Instrues de Chamadas a Procedimento


Os endereos de retorno so

como um grupo de instrues que realizam uma determinada tarefa e que podem ser chamadas (invocadas) a partir de diversas posies de um programa ( inclusive de outro procedimento ou do mesmo procedimento - recurso)

Essas instrues, alm do cdigo de operao, devem ter: um endereo do procedimento chamado e, tambm, um endereo de retorno que ser usado, quando a execuo do procedimento retorno, chamado terminar, para retorno ao programa chamador.

armazenados em uma pilha, implementada na memria, que cresce ou diminui a medida que os procedimentos so chamados e retornam, respectivamente.

13

14

Controle de Loop
i = 1;

Todos os esquemas de instrues para implementar um controle de loop baseiam-se em um contador que cresce ou decresce de uma constante, sempre que se completar uma passagem pelo loop. Mtodos para implementao de um loop loop:

Loop com teste de trmino no final do corpo das instrues; Loop com teste de trmino no incio do corpo das instrues.

L1: primeiro comando do loop; . . . ltimo comando do loop; i = i+1; if (i < n) goto L1;

i = 1; L1: if ( i > n ) goto L2 primeiro comando do loop; . . . ltimo comando do loop; i = i+1; goto L1; L2: (b)

(a)

(a) Loop com teste de trmino no final do corpo das instrues. (b) Loop com teste de trmino no incio do corpo das instrues.
15 16

Controle de Loop

Entrada/Sada

Diferena entre comparao no incio e no final? No final, o loop executado ao menos uma vez. Isso bom? Se uma arquitetura s disponibilizar uma nica instruo, tanto para teste quanto para incremento, os projetistas sero obrigados a optar por uma das implementaes. At 1977 FORTRAN s fazia o teste no final.

Existem, basicamente, 3 esquemas diferentes para a realizao de operaes de E/S em computadores pessoais: 1. E/S programada com espera ocupada 2. E/S dirigida por interrupo 3. E/S com acesso direto memria (DMA)

17

18

E/S programada com espera ocupada


Mais simples de todos os mtodos; Esses processadores tm, em geral, uma nica instruo de entrada e uma nica de

E/S dirigida por interrupo


Neste mtodo o processador inicia uma operao de E/S com um

sada;

Trabalha com dois registradores para fazer a E/S Registrador de estado Registrador de dados Essas instrues so executadas em loop No uma boa soluo, o processador gasta grande parte do tempo do processamento

no loop

Na operao de E/S, um nico caractere transferido entre um registrador fixo do

processador e o dispositivo de E/S selecionado na instruo;

dispositivo e sai do processo, levando o dispositivo a interromp-lo ao trmino da operao. Desvantagem? A desvantagem deste mtodo que existe a necessidade de se gerar uma interrupo para cada caractere transmitido, e o processamento de interrupes caro.

Existe um tempo de espera para que um bit de controle avise que um caractere pode ser

lido ou escrito de, ou para, um dispositivo de E/S.

19

20

E/S com acesso direto memria (DMA)

Agrega-se um componente ao processo de E/S programada, um chip controlador conhecido como DMA (Direct Memory Access - Acesso Direto Memria). Este dispositivo tem acesso direto ao barramento. O DMA recebe informaes sobre um endereo de memria, a quantidade de bytes a serem transferidos, o nmero do dispositivo a ser acessado e a direo (leitura ou escrita) dos dados. Com essas informaes o DMA capaz de transferir dados entre a memria e o dispositivo de E/S, via barramento, sem interveno do processador. Assim o processador fica livre para realizar outras operaes.

Endereo Memria Contador Controladora RS232C

Dispositivo

Direo

Barramento

Sistema com um controlador DMA.


21 22

Você também pode gostar