2010ocd cp 10 conjunto de instrucoes - escola de artes ... conjunto de instrucoes... · ocd –...
Post on 12-Nov-2018
233 Views
Preview:
TRANSCRIPT
Organização de Computadores Digitais
Cap.10: Conjunto de Instruções:Modos de Endereçamento e Formatos
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
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
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
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
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
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.
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
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
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
OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto
Endereçamento Imediato
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
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
OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto
Endereçamento Direto
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
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
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
OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto
Endereçamento Indireto
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?
OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto
Endereçamento por registrador
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.
OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto
Endereçamento Indireto porRegistrador
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)
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
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,…
OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto
Endereçamento por Deslocamento
+
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
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
OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto
Endereçamento por pilha
+
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)
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
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
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
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
OCD – Organização de Computadores Digitais - 2010 Prof. Camilo Rodrigues Neto
Leitura adicional
o Stallings capítulo 10o Intel e PowerPC Web sites
top related