Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRaphaella Mario Alterado mais de 11 anos atrás
1
Organização de computadores Professora Marcela Santos marcela@edu.estacio.br Aula 8 – Conjunto de instruções
2
Os elementos essenciais de uma instrução são: opcode: código de operação e endereços de operandos. Formatos de instruções
3
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
4
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
5
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
6
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
7
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
8
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 2 32 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
9
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
10
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
11
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
12
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 imediatoEndereço diretoEndereço por registrador Endereço indiretoEndereço indexado Endereço por pilha Polonesa reversa
13
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 imediato
14
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
15
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
16
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
17
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
18
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
20
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. Endereçamento por Pilha
21
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
22
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
23
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
24
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
25
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
26
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
27
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
28
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
29
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 – Interrupções e sinais
30
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
31
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
32
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.