35
Organização de Computadores Digitais Cap.10: Conjunto de Instruções: Modos de Endereçamento e Formatos

2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

  • Upload
    dominh

  • View
    233

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

Organização de Computadores Digitais

Cap.10: Conjunto de Instruções:Modos de Endereçamento e Formatos

Page 2: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

o Os modos de endereçamento são um aspecto da Arquitetura do conjunto de instruções nos projetos das CPUs.

o Os vários modos de endereçamento definidos em uma Arquitetura do conjunto de instruções determinam como as instruções da linguagem de máquina identificam os operandos de cada instrução.

Modos de endereçamento

Page 3: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

o Um modo de endereçamento especifica como calcular o endereço efetivo (real) de um operando através da informação disponível nos registradores ou em constantes da instrução.

o Os modos de endereçamento são de interesse dos projetistas/programadores de compiladores e daqueles que escrevem diretamente em linguagem assembler.

o Não há um padrão universalmente aceito para os nomes dos modos de endereçamento.

Modos de endereçamento

Page 4: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

o Diferentes arquiteturas de computador variam muito no número de modos de endereçamento disponíveis.

o É em geral possível, ao custo de algumas instruções extras e talvez um registrador, utilizar uns poucos modos de endereçamento simples para realizar todas as funções que modos mais complexos permitem.

o É um fato aceito que é mais fácil aumentar a performance dos computadores se se tem uns poucos modos de endereçamento simples, do que se se tem muitos modos.

o Máquinas RISC têm em torno de 5 modos de endereçamento (o IBM System/360 mainframe tinha somente 3).

o Máquinas CISC (DEC VAX supermini) tinham até mais de 12 modos.

Modos de endereçamento

Page 5: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

o Se há poucos modos, o modo requerido é codificado no próprio opcode (e.g. IBM System/390 e na maioria das RISC).

o Se há muitos modos, o modo requerido é codificado em um campo específico do opcode (DEC VAX permitia múltiplos operandos em quase todas as instruções, reservando os primeiros bits para especificar o tipo de modo de endereçamento). Em agosto de 2000 a Compaq anunciou o fim da produção dos modelos VAX.

o Medidas em programas gerados com compiladores a partir de linguagens de alto nível revelam que uns poucos modos são utilizados em 90 % dos casos.

Modos de endereçamento

Page 6: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Número e Localização dos OperandosUma característica de um conjunto de instruções é o número de operandos

explicitamente indicados em uma instrução aritmética ou lógica. Em algumas arquiteturas, estas instruções referenciam explicitamente três operandos, dois operandos-fonte e um operando-destino, como por exemplo em:

o ADD R1, R2, R3, onde R1 e R2 são os operandos-fonte e R3 é o operando-destino.

Em outras arquiteturas, instruções aritméticas/lógicas especificam apenas dois operandos. Neste caso, um dos operandos-fonte é também o operando-destino. Por exemplo, na instrução:

o ADD R1, R2, onde R2 contém um dos operandos-fonte e também é usado como operando-destino.

Quanto à localização dos operandos especificados por uma instrução aritmética/lógica, podemos encontrar arquiteturas onde podem ser realizados acessos aos operandos diretamente a partir da memória principal. Por exemplo, nestas arquiteturas podemos ter instruções tais como:

o ADD M1,R1,R2o ADD M1,M2,R1o ADD M1,M2,M3onde M1, M2 e M3 são endereços de locações de memória. Em um outro extremo, existem arquiteturas onde todos os operandos encontram-

se apenas em registradores. As instruções aritméticas/lógicas são todas do tipo:

o ADD R1,R2,R3o ADD R1,R2

Page 7: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Número e Localização dos OperandosA partir do número de operandos explicitamente referenciados e da localização

destes operandos, podemos classificar as arquiteturas nos seguintes tipos:o arquiteturas memória-memória: as instruções aritméticas/lógicas usam três

operandos e todos os operandos podem estar na memória;o arquiteturas registrador-memória: as instruções aritméticas/lógicas usam dois

operandos, sendo que apenas um deles pode residir na memória;o arquiteturas registrador-registrador: as instruções aritméticas/lógicas usam

três operandos, todos em registradores. Neste caso, apenas duas instruções acessam diretamente a memória: LOAD e STORE. A instrução LOAD carrega em um registrador um dado armazenado na memória e instrução STORE armazena na memória o conteúdo de um registrador.

Arquiteturas memória-memória e registrador-memória apresentam como vantagem um menor número de instruções no código do programa, já que não é necessário carregar previamente em registradores os operandos-fonte de uma instrução aritmética/lógica, como acontece em uma arquitetura registrador-registrador. Por outro lado, a existência de instruções aritméticas/lógicas mais poderosas torna mais complexa a implementação da arquitetura.

As arquiteturas Intel 80x86 e Motorola MC680x0 são do tipo registrador-memória.

Uma arquitetura memória-memória antiga foi o DEC VAX 11.

Page 8: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Modos de endereçamento

o Imediatoo Diretoo Indiretoo Registradoro Indireto por Registradoro Deslocamento (Indexado) o Pilha

Os campos de endereçamento são pequenos para o tamanho de memória que se quer acessar. As técnicas devem balancear: • quantidade de posições x flexibilidade de endereçamento• # de referências à memória em cada instrução x complexidade do cálculo de endereços

Page 9: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Imediato

o O operando faz parte da instruçãoo Operando = campo de endereçoo e.g. ADD 5

o Adiciona 5 ao conteúdo do acumuladoro 5 é o operando

o Características: o Rápido: não é necessário fazer acesso à memória para buscar o dado

o Desvantagem: o campo de operando é muito menor que o tamanho da palavra

Page 10: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Imediato

Exemplo ADD 5 o Adiciona 5 ao conteúdo do acumuladoro 5 e’ o operando

o É a forma mais simples de endereçamento em que o operando está presente na instrução

o Este modo de endereçamento pode ser utilizado para definir e utilizar constantes e inicializar variáveis

Page 11: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Imediato

Page 12: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Direto

o O campo de endereçamento contém o endereçoefetivo do operando

o Esta técnica foi muito utilizada nas primeirasgerações de computadores

o Implica um acesso à memória

o Limita o espaço de endereçamento

Page 13: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Direto

Exemplo, ADD A o Adiciona o conteúdo da célula A aoacumulador

o Busca no endereço de memória A o operando

Page 14: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Direto

Page 15: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Indireto

o Esta técnica procura solucionar o problema do espaço de endereçamentoda técnica anterior colocando no campo do endereço da instrução uma referênciaà memória que contém o endereçocompleto da operação

Page 16: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Indireto

o Vantagem o Para uma palavra de tamanho N estádisponível um espaço de endereçamento 2N

o Desvantagem o São necessários 2 acessos para buscar o operando, um para o endereço, outro para o valor do operando

Page 17: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Indireto

o Exemplo: ADD (A) o Adicione o conteúdo da célulareferenciada pelo conteúdo de A ao acumulador

Page 18: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Indireto

Page 19: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento por Registrador

o Esta técnica é semelhante ao endereçamento direto, a única diferença é que o campo refere um registrador em vez de uma posição de memória

o Tipicamente o campo de endereço que referencia os registradores tem de 3 a 4 bits para referenciar um conjunto de 8 a 16 registradores

o Vantagens o Apenas um pequeno campo de endereço é necessário e não são necessárias referências à memória

o Execução muito rápida o Desvantagens

o Número limitado de registradores o Quais valores ficarão nos registradores?

Page 20: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento por registrador

Page 21: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Indireto porregistrador

o Esta técnica é parecida ao endereçamento indireto, porém o campo de endereço refere-se a um registrador e não uma posição da memória

o As vantagens e limitações são basicamente as mesmas que o endereçamento indireto: o Para uma palavra de tamanho N está disponível um espaço de endereçamento 2N

o São necessários 2 acessos para buscar o operando, um para o endereço, outro para o valor do operando

o O endereço no registrador pode ser o resultado de uma conta/operação previamente feita.

Page 22: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento Indireto porRegistrador

Page 23: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento por Deslocamento

o Esta técnica combina as técnicas de endereçamento direto e do endereçamento indireto por registrador

o Esta técnica obriga a que a instrução tenha dois campos de endereço o Sendo pelo menos um explícito (valor A usado diretamente)

o O outro campo de endereçamento, R, referencia implicitamente um registrador cujo conteúdo éadicionado a A para produzir o endereçamento deslocado

EA = A + (R)

Page 24: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento por Deslocamento

1 - Endereçamento Relativoo Usa-se o PC (Program Counter) o O campo de endereço da instrução corrente é um deslocamento em relação ao PC

o Esta técnica explora o princípio da localidade permitindo poupar bits de endereço na instrução

2 - Endereçamento Baseado em registradoro O registrador de referência contém a posição da memória e o endereço da instrução contém o deslocamento a partir duma posição de memória

Page 25: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento por Deslocamento

3 - Endereçamento Indexado o Neste caso o campo do endereço referencia a memória principal e o registrador de referência contém um deslocamento positivo a partir dessa posição de memória

o Esta aproximação é exatamente contrária ao endereçamento baseado em registrador e tem grande utilidade na execução de instruções iterativas através de alterações sucessivas do registrador de referência

EA = A + (R) R = R + 1o Por exemplo suponha-se que se quer adicionar um elemento aos elementos de uma lista. O melhor seria começar com a base e somar um elemento à base A:

A+1 A+2 A+3,…

Page 26: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento por Deslocamento

+

Page 27: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento por Pilha

o A pilha é um conjunto reservado de localizações de memória

o A pilha é gerida em filosofia LIFO (Last In First Out) o Associado à pilha existe um apontador que é o endereço do topo da pilha

o O apontador para o topo da pilha é mantido num registrador especial (SP – Stack Pointer), o que faz com que o endereçamento por pilha seja de fato um endereçamento indireto por registrador

Page 28: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento por Pilha

o O operando está (implicitamente) no topo da pilha

o ex ADD o remove dois elementos da pilha e adiciona-os e coloca o resulta na pilha

Page 29: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Endereçamento por pilha

+

Page 30: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Formato das Instruções

o O formato das instruções define a forma como os campos são distribuídos

o Cada instrução deve ter um código de operação (OPCODE) e, explícita ou implicitamente, um ou mais operandos

o Cada operando explícito tem de ser referenciado utilizando um dos métodos descritos anteriormente (endereçamento)

Page 31: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Tamanho das Instruções

o É o fator básico do desenho do conjunto de instruções e esta decisão afeta e é afetada por:o Tamanho da memória o Organização da memória o Estrutura do bus o Velocidade do CPU

o O compromisso mais obvio é entre o desejo de ter um repertório de instruções mais poderoso (ou seja, mais OPCODES, mais operandos, mais modos de endereçamento) e a necessidade de poupar espaço

Page 32: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Tamanho das Instruções

Além deste compromisso existem outras considerações:

o O tamanho das instruções deve ser igual ou múltiplo do bus do sistema, caso contrário as instruções não ficariam completas;

o O tamanho das instruções deve também ser múltiplo do tamanho dos caracteres (8 bits) e dos números com vírgula fixa (inteiros) para não haver desperdícios de bits nos cálculos efetuados

Page 33: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Alocação de Bits

Os seguintes fatores determinam a utilização dos bits de endereçamento:

o Nº de modos de endereçamento

o Os modos de endereçamento indicados explicitamente ocupam mais bits que os indicados implicitamente

o Nº de operandos

o Menos endereços podem levar a programas mais longos e complexos

o Registrador x Memória

o Quantos mais registradores forem utilizados para referenciar operandos, menos bits serão necessários

Page 34: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Alocação de Bits

o Nº de conjuntos de registradores o Atualmente a tendência tem sido para dividir os registradores em bancos especializados (e.g. dados e deslocamentos), usando os opcode(s) da instrução para determinar implicitamente sobre que banco de registradores a operação deve ser realizada

o Alcance do endereçamento (quando o acesso é feito àmemória principal)o Está diretamente relacionado com o nº de bits para endereçamento na instrução

Page 35: 2010ocd cp 10 Conjunto de instrucoes - Escola de Artes ... Conjunto de instrucoes... · OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto o Os modos

OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto

Leitura adicional

o Stallings capítulo 10o Intel e PowerPC Web sites