Organização de computadores Professora Marcela Santos [email protected] Aula 8 – Conjunto...

32
Organização de computadores Professora Marcela Santos [email protected] Aula 8 – Conjunto de instruções

Transcript of Organização de computadores Professora Marcela Santos [email protected] Aula 8 – Conjunto...

Page 1: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Organização de computadores

Professora Marcela [email protected]

Aula 8 – Conjunto de instruções

Page 2: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

•Os elementos essenciais de uma instrução são: opcode: código de operação e endereços de operandos .

Formatos de instruções

Page 3: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

•Caso o processador seja um sucesso comercial, seu conjunto de instruções dever ter um bom tempo de vida útil.

É importante que o conjunto de instruções tenha a capacidade de suportar o acréscimo de instruções que venham a surgir ao longo do tempo

Formatos de instruções- critérios para determinação do formato das instruções

Page 4: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

•Em geral instruções pequenas são mais atraentes que as grandes.

•Isso se dá pelo fato de uma instrução pequena gastar menos memória.

Um programa composto por n instruções de 16 bits gasta menos memória que um programa com n instruções de 32 bits.

Formatos de instruções- critérios para determinação do formato das instruções

Page 5: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

•Porém com o declínio do preço das memórias esse fator pode ser menos importante com o passar do tempo

•A minimização das instruções pode dificultar muito sua decodificação, por esse motivo o tamanho ideal deve levar em conta também o tempo necessário para sua decodificação e execução

Formatos de instruções- critérios para determinação do formato das instruções

Page 6: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

•Porém com o declínio do preço das memórias esse fator pode ser menos importante com o passar do tempo

•A minimização das instruções pode dificultar muito sua decodificação, por esse motivo o tamanho ideal deve levar em conta também o tempo necessário para sua decodificação e execução

Formatos de instruções- critérios para determinação do formato das instruções

Page 7: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

•Uma das restrições mais sérias quando se está falando de desempenho de um processador vem do fato da velocidade da memória de suprir instruções e operandos ser mais baixa quando comparada com a velocidade do processador

•Um outro critério é ter espaço suficiente no campo de formato das instruções para que todas as operações desejadas sejam expressas

Formatos de instruções- critérios para determinação do formato das instruções

Page 8: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

•Um terceiro critério trata dos bits do campo de endereçamento da instrução. Considere um projeto de uma máquina que trate caracteres de 8 bits e cuja memória precise armazenar 232 caracteres.

•Os prjetistas podem optar por atribuir endereços consecutivos de 8, 16, 24 ou 32 bits.

Formatos de instruções- critérios para determinação do formato das instruções

Page 9: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

•Em algumas máquinas, todas as instruções tem o mesmo tamanho, este fato simplifica bastante o projeto do hardware, mas muitas vezes desperdiça espaço.

•Para não alterar seu tamanho, se necessário, pode-se fazer uso da expansão do opcode sem alteração de tamanho, um exemplo é dado a seguir:

Formatos de instruções

Page 10: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

•Considere uma instruçã o com (n+k) bits.

•Com um código de operação de k bits e endereço de n bits.

•Assim pode-se ter 2k operações e endereçar 2n

Page 11: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

•Os mesmos (n+k)bits podem ser usados

•Com um código de operação de k-1 bits e endereço de n+1 bits.

•Assim pode-se ter 2k-1 operações e endereçar 2n+1

Page 12: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

No endereçamento, cada instrução especifica uma operação em certos dados e podem ser especificadas de diferentes modos, os mais comuns são:

Endereçamento das instruções

Endereço imediato Endereço direto Endereço por registrador

Endereço indireto Endereço indexado

Endereço por pilha

Polonesa reversa

Page 13: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Endereçamento Imediato: o campo endereço contém opróprio operando direto e não o endereço onde ele está armazenado.

Ele é imediato porque é buscado na memória ao mesmo tempo em que a instrução é buscada.

Sua vantagem é a de não precisar de uma referência àmemória para buscar o operador e a desvantagem é a que restringe o operando a um número que caiba em um campo de endereçamento.

Endereçamento imediato

Page 14: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Endereçamento Direto: é passado no campo endereço o endereço da palavra na memória onde o operando está contido.

Sua vantagem é a de que o valor do operando pode ser alterado e a desvantagem é que os endereços diretos são muito curtos para endereçar todos os espaços de memória.

Endereçamento direto

Page 15: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Endereçamento por Registrador: Tem o mesmo conceito de endereçamento direto, a diferença é que o operando estará armazenado em um registrador e não na memória principal.

Como o número de registradores é bem menor que o número de posições de memória, o campo de endereçamento é mais curto e assim instruções diferentes são utilizadas para representar operando do registrador e operando da memória principal.

Endereçamento por registrador

Page 16: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Para saber se o operando da instrução pertence à memória principal ou aos registradores, deve-se por um bit a mais, que indica se deseja acessar a memória principal ou um dos registradores.

Sua vantagem é que os registradores são mais rápidos que a memória principal. Como são em pequenos números, são necessários apenas poucos bits para endereçar-los e a sua desvantagem é que complica a programação, pelo fato de ter que existir uma lógica para decidir quais instruções serão guardadas em memória e quais serão guardadas em registrador.

Endereçamento por registrador

Page 17: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Endereçamento Indireto: O campo operando tem um endereço para a memória principal que aponta para outro endereço onde está o valor.

Sua vantagem é que a partir de um campo de endereço com número de bits restritos pode-se acessar a um espaço de endereçamento maior e há a possibilidade da implementação de ponteiros e sua desvantagem é o número de acessos para resgatar o valor.

Endereçamento indireto

Page 18: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Endereçamento Indexado: Utilizado quando é executada uma operação sobre uma seqüência de estruturas de dados armazenados consecutivamente em memória. Converte na utilização de registros de índice. Os endereços possuem duas parte, o número do registrador de índice e uma constante.

O endereço do registrador onde está o operando é igual ao número do registro mais constante. A indexação também é usada em casos de endereçar um campo com deslocamento conhecido, como em variáveis locais e procedimentos. Sua vantagem é a implementação de vetores e a desvantagem é o acesso a memória principal.

Endereçamento indexado

Page 19: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Endereçamento indexado

Page 20: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Endereçamento por Pilha: Consistem em itens de dados armazenados em ordem consecutiva na memória, onde oprimeiro item é denominado fundo da pilha. O apontador dapilha é um registrador que contém o endereço do topo da pilha.

As instruções sem operadores utilizam a pilha para efetuar as operações, onde os operandos utilizados são sempre retiradosdo topo da pilha e o resultado dessa operação é deixado no topo.

Sua vantagem é oferecer a possibilidade de especificar instruções sem os operandos e a implementação de procedimentos, já sua desvantagem é o acesso a memória principal.

Endereçamento por Pilha

Page 21: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Polonesa Reversa: é uma diferente forma de escrever operações matemáticas, onde os operadores são colocados após os operandos.

Sua vantagem é que toda expressão pode ser expressa sem parênteses, possui notação ideal para avaliar expressões através de pilha, operadores infixados tem precedência e é arbitrário e indesejável.

Polonesa reversa

Page 22: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

As instruções do nível ISA(ISA - Instruction SetArchitecture)podem ser agrupadas segundo suas funcionalidades.

Segue, a descrição das categorias mais comuns de instruções de máquina, sem a pretensão de esgotar o assunto:

Tipos de instruções

Page 23: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Instruções de Movimento de Dados: Compreende, na verdade, a uma duplicação de dados: cria-se um novo objeto, com a mesma configuração de bits do objeto original.

O conteúdo original da memória não é apagado (pelo menos de imediato)

Tipos de instruções

Page 24: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Operações Diádicas

Operações diádicas são aquelas que combinam dois operandos para produzir um resultado.

Exemplo: Todas as arquiteturas têm instruções para soma, subtração, multiplicação e divisão de números inteiros.

Também, as funções booleanas AND, NAND, OR, NOR, XOR e outras são operações diádicas.

Tipos de instruções

Page 25: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Operações Monádicas

Operações monádicas são aquelas que têm apenas um operando e produzem um resultado.

Tipos de instruções

Page 26: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Refere-se à ordem em que instruções, expressões e chamadas de função são executadas ou avaliadas em programas de computador sob programação imperativa ou funcional.

Os tipos de fluxo de controle disponíveis mudam de linguagem para linguagem, mas podem ser cruamente caracterizados por seus efeitos.

Fluxo de controle

Page 27: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

O primeiro é a continuação da execução em uma outra instrução, como na estrutura sequencial ou em uma instrução jump.

O segundo é a execução de um bloco de código somente se uma condição é verdadeira, uma estrutura de seleção.

O terceiro é a execução de um bloco de código enquanto uma condição é verdadeira, ou de forma a iterar uma coleção de dados, uma estrutura de repetição.

Fluxo de controle

Page 28: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

O quarto é a execução de instruções distantes entre si, em que o controle de fluxo possivelmente volte para a posição original posteriormente, como chamadas de subrotinas e corotinas.

O quinto é a parada do programa de computador.

Fluxo de controle

Page 29: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

Interrupções e sinais são mecanismos de baixo nível quepodem alterar o fluxo de controle de forma similar a uma subrotina, mas geralmente em resposta a algum estímuloexterno ou um evento ao invés de uma estrutura de controle em uma linguagem.

Em nível de linguagem de máquina, as instruções de estruturas de controle geralmente funcionam ao alterar o contador de programa.

Fluxo de controle – Interrupções e sinais

Page 30: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

PROCEDIMENTO - quando a chamada procedimento terminar sua tarefa, ela retorna o controle para o comando ou instrução seguinte a chamada. É necessário uma estrutura de pilha para armazenar parametros, endereços de retorno e variáveis, se houve.

Fluxo de controle

Page 31: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

CO-ROTINA - quando 2 procedimentos, cada um considerandoo outro como procedimento (no sentido dele ser chamado), executar alguma tarefa e então retornar para o comando seguinte à chamada.

Para implementar co-rotinas são necessárias múltiplas pilhas, pois cada co-rotina pode também chamar procedimentos de modo usual e ainda fazer chamadas de co-rotinas.

Fluxo de controle

Page 32: Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções.

TRAP (ARMADILHA) - tipo de procedimento iniciado por alguma condição causada pelo programa. Usualmente uma condição importante e rara (Ex.: overflow).

INTERRRUPÇÕES - são modificações no fluxo de controle causadas não por uma execução de programa, mas por outra coisa, usualmente relacionada a Entradas e Saídas. Neste caso, o computador volta ao estado anterior à interrupção.

Fluxo de controle