Organizao de computadores Aula 8 Conjunto de instrues

  • Slides: 32
Download presentation
Organização de computadores Aula 8 – Conjunto de instruções Professora Marcela Santos marcela@edu. estacio.

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

Formatos de instruções • Os elementos essenciais de uma instrução são: opcode: código de

Formatos 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- critérios para determinação do formato das instruções • Caso o processador

Formatos de instruções- critérios para determinação do formato das 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 • Em geral instruções

Formatos de instruções- critérios para determinação do formato das 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 • Porém com o

Formatos de instruções- critérios para determinação do formato das 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 • Porém com o

Formatos de instruções- critérios para determinação do formato das 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 • Uma das restrições

Formatos de instruções- critérios para determinação do formato das 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 • Um terceiro critério

Formatos de instruções- critérios para determinação do formato das 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 • Em algumas máquinas, todas as instruções tem o mesmo tamanho,

Formatos 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:

 • Considere uma instruçã o com (n+k) bits. • Com um código de

• 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 2 k operações e endereçar 2 n

 • Os mesmos (n+k)bits podem ser usados • Com um código de operação

• 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 2 k-1 operações e endereçar 2 n+1

Endereçamento das instruções No endereçamento, cada instrução especifica uma operação em certos dados e

Endereçamento das 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ço imediato Endereço direto Endereço por registrador Endereço indireto Endereço indexado Endereço por pilha Polonesa reversa

Endereçamento imediato Endereçamento Imediato: o campo endereço contém o próprio operando direto e não

Endereçamento imediato Endereçamento Imediato: o campo endereço contém o pró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 direto Endereçamento Direto: é passado no campo endereço da palavra na memória onde

Endereçamento direto Endereçamento Direto: é passado no campo 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 por registrador Endereçamento por Registrador: Tem o mesmo conceito de endereçamento direto, a

Endereçamento por registrador 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 Para saber se o operando da instrução pertence à memória principal

Endereçamento por registrador 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 indireto Endereçamento Indireto: O campo operando tem um endereç para a memória principal

Endereçamento indireto Endereçamento Indireto: O campo operando tem um endereç 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 indexado Endereçamento Indexado: Utilizado quando é executada uma operação sobre uma seqüência de

Endereçamento indexado 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

Endereçamento indexado

Endereçamento por Pilha: Consistem em itens de dados armazenados em ordem consecutiva na memória,

Endereçamento por Pilha: Consistem em itens de dados armazenados em ordem consecutiva na memória, onde o primeiro item é denominado fundo da pilha. O apontador da pilha é 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 retirados do 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.

Polonesa reversa Polonesa Reversa: é uma diferente forma de escrever operações matemáticas, onde os

Polonesa reversa Polonesa Reversa: é uma diferente forma de escrever operações matemáticas, onde os operadores são colocados após o 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.

Tipos de instruções As instruções do nível ISA(ISA - Instruction Set Architecture)podem ser agrupadas

Tipos de instruções As instruções do nível ISA(ISA - Instruction Set Architecture)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 Instruções de Movimento de Dados: Compreende, na verdade, a uma duplicação

Tipos 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 Operações Diádicas Operações diádicas são aquelas que combinam dois operandos para

Tipos 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 Operações Monádicas Operações monádicas são aquelas que têm apenas um operando

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

Fluxo de controle Refere-se à ordem em que instruções, expressões e chamadas de função

Fluxo de controle 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 O primeiro é a continuação da execução em uma outra instrução,

Fluxo de controle O primeiro é a continuação da execução em uma outra instrução, como na estrutura sequencial ou em uma instrução jum 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 O quarto é a execução de instruções distantes entre si, em

Fluxo de controle 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 – Interrupções e sinais são mecanismos de baixo nível que podem

Fluxo de controle – Interrupções e sinais são mecanismos de baixo nível que podem alterar o fluxo de controle de forma similar a uma subrotina, mas geralmente em resposta a algum estímulo externo 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 PROCEDIMENTO - quando a chamada procedimento terminar sua tarefa, ela retorna

Fluxo de controle 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 houv

Fluxo de controle CO-ROTINA - quando 2 procedimentos, cada um considerando o outro como

Fluxo de controle CO-ROTINA - quando 2 procedimentos, cada um considerando o 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 TRAP (ARMADILHA) - tipo de procedimento iniciado por alguma condição causada

Fluxo de controle 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.