Você está na página 1de 43

Arquitetura de computadores

Conjunto de Instruções
ISA - Instruction Set Architecture
Arquitetura de computadores I
Conjunto de Instruções

“Conjunto de instruções é a estrutura do computador na


qual o programador de linguagem de máquina deve
entender para escrever programas para determinada
máquina”
Material da IBM da década de 60 ao introduzir o IBM
260 e unificar arquiteturas e conjunto de instruções
Arquitetura de computadores I
Conjunto de Instruções

Também a descrição da máquina que o projetista de


hardware deve conhecer e entender para projetar a
correta implementação do computador.
Arquitetura de computadores I
Conjunto de Instruções
Interface entre Software e Hardware:
Atua como interface entre o Software e o Hardware
Arquitetura de computadores I
Conjunto de Instruções
Provê um mecanismo pelo qual o software indica
ao hardware o que deve ser feito
Arquitetura de computadores I
Conjunto de Instruções
Interface entre Software e Hardware:
• Utilização em muitas e diferentes formas (generalidade)
• Prover conveniência para o alto nível
• Prover eficiência no baixo nível
Arquitetura de computadores I
Conjunto de Instruções
Categorias:
• Armazenamento dos operandos no CPU
Onde é que os operandos são guardados para além da
memória?
Arquitetura de computadores I
Conjunto de Instruções
Categorias:
• Número de operandos chamados por instrução
Quantos operandos são chamados numa instrução
típica.
Arquitetura de computadores I
Conjunto de Instruções
Categorias:
• Localização dos operandos
Pode algum operando de uma instrução da ALU estar
localizado na memória? Ou têm todos os operandos na
memória interna do CPU?
Arquitetura de computadores I
Conjunto de Instruções
Categorias:
• Operações
Quais as operações fornecidas pela ISA.
Arquitetura de computadores I
Conjunto de Instruções
Categorias:
• Tipo e tamanho dos operandos
Qual é o tipo e o tamanho de cada operando e como é
isso especificado?
Arquitetura de computadores I
Conjunto de Instruções
A ISA estabelece os padrões de bit's para cada
instrução limitando o software a essas instruções.
Alterar a ISA supõe alterações no hardware.
Pode limitar inovações
Arquitetura de computadores I
Conjunto de Instruções

Mudanças e evoluções ao longo do tempo para se adaptar as


necessidades da computação e ao hardware
Arquitetura de computadores I
Conjunto de Instruções
Arquitetura de computadores I
Conjunto de Instruções
Organização da ISA influenciada e determinada pela
localização de operandos
Arquitetura de computadores I
Conjunto de Instruções
Arquitetura de acumulador
Utiliza apenas um acumulador, utiliza um único
operando da memória para executar a operação.
Arquitetura de computadores I
Conjunto de Instruções
Arquitetura de acumulador
Utiliza apenas um acumulador, utiliza um único
operando da memória para executar a operação.
Arquitetura de computadores I
Conjunto de Instruções:
Arquitetura de Pilha
A pilha está localizada na memória, a CPU contém um registro
com um ponteiro para o topo da pilha. Cada instrução causa
uma mudança ao ponteiro do topo da pilha
Arquitetura de computadores I
Conjunto de Instruções
Arquitetura de registradores
Modelos: registrador-memória, registrador-registrador
Arquitetura de computadores I
Conjunto de Instruções
Arquitetura de registradores
Modelos: registrador-memória, registrador-registrador
Arquitetura de computadores I
Conjunto de Instruções : Sumário das arquiteturas
Arquitetura de stack
• modelo simples de avaliação de expressões
(algoritmo Reverse Polish).
• instruções pequenas (boa densidade de código).
• a stack não pode ser acessada aleatoriamente o que
torna difícil gerar código eficiente (difícil de
otimizar).
• difícil de ter uma implementação rápida devido ao
continuo uso da stack.
Arquitetura de computadores I
Conjunto de Instruções
Arquitetura de acumulador
• mínimo de estados internos.
• instruções pequenas.
• não tem mais nenhuma memória temporária, apenas
o acumulador (é a arquitetura que gera maior tráfico
de memória)
Arquitetura de computadores I
Conjunto de Instruções
Arquitetura de registradores
• modelo mais geral para a geração de código (torna
mais fácil a geração de código).
• os dados podem ser armazenados durante um longo
período nos registradores
• todos os operandos têm de ser nomeados o que
conduz a instruções mais longas.
Arquitetura de computadores I
Conjunto de Instruções
Visão Geral
As arquiteturas de stack e de acumulador foram bastante
populares no inicio pois a memória era cara, registradores eram
grandes e caros (queriam-se pouco) e a tecnologia de compilação
ainda era primitiva.
Arquitetura de computadores I
Conjunto de Instruções
Visão Geral
Atualmente as arquiteturas de registradores dominam:
• menor importância do tamanho do código, os circuitos de
alta-velocidade são mais baratos e cada vez menores,
• evolução da tecnologia de compiladores
• uso eficiente dos registradores diminui o tráfico de memória
Arquitetura de computadores I
Conjunto de Instruções
Armazenamento de instruções e dados na memória
No geral o endereço é do tipo byte
Ordenação:
Big Endian
os bytes de menor ordem têm o menor endereço.
Little Endian
os bytes de maior ordem têm o menor endereço.
Arquitetura de computadores I
Conjunto de Instruções
Armazenamento de instruções e dados na memória
No geral o endereço é do tipo byte
Ordenação:
Big Endian
os bytes de menor ordem têm o menor endereço.
Arquitetura de computadores I
Conjunto de Instruções
Armazenamento de instruções e dados na memória
No geral o endereço é do tipo byte
Ordenação:
Little Endian
os bytes de maior ordem têm o menor endereço.
Arquitetura de computadores I
Conjunto de Instruções
Armazenamento de instruções e dados na memória
Arquitetura de computadores I
Conjunto de Instruções
Alinhamento

No geral acesso da CPU a objetos maiores que um byte


devem estar numa memória alinhada.
Arquitetura de computadores I
Conjunto de Instruções
Alinhamento
Justificativa
• Acessos não alinhados requerem múltiplos acessos e por
isso são mais lentos.
• Lógica de hardware barata
• Simplificação desenvolvimento de software
Arquitetura de computadores I
Conjunto de Instruções
Modos de endereçamento
O modo de endereçamento indica onde se encontra o operando
(registrador, parte da instrução, ou endereço de memória)
Arquitetura de computadores I
Conjunto de Instruções
Modos de endereçamento
Imediato
Arquitetura de computadores I
Conjunto de Instruções
Modos de enderaçamento
Registrador
Arquitetura de computadores I
Conjunto de Instruções
Modos de endereçamento
Registrador Indireto
Arquitetura de computadores I
Conjunto de Instruções
Modos de enderaçamento
Direto
Arquitetura de computadores I
Conjunto de Instruções
Modos de endereçamento
Memoria Indireto
Arquitetura de computadores I
Conjunto de Instruções
Modos de endereçamento
Deslocamento
Arquitetura de computadores I
Conjunto de Instruções
Exemplos: ATMEGA 328
Arquitetura de computadores I
Conjunto de Instruções
Exemplos: ARM
Arquitetura de computadores I
Conjunto de Instruções
Exemplos: x86
Arquitetura de computadores I
Conjunto de Instruções
Exemplos: Neander
Arquitetura de computadores I
Conjunto de Instruções

Projeto de Conjunto de Instruções

Você também pode gostar