Nível ISA
Introdução
• Os computadores foram divididos em diversas camadas para simplificar o desenvolvimento de aplicações e reduzir custos de produção.
• O entendimento dessas diferentes camadas permite entender o funcionamento interno do computador.
Arquitetura em Camadas
Arquitetura em Camadas
Nível ISA
• Chamado de nível de arquitetura do conjunto de instruções.
• Está localizado entre o nível da microarquitetura e o nível de SO.
• Foi desenvolvido antes de qualquer nível.– Nos primeiros computadores só existiam nível de
lógica digital e ISA.
Nível ISA
• Os programas em diversas linguagens são traduzidos para uma linguagem intermediária comum.– Da mesma forma que Java converte para
Bytecode.– O hardware deve ser capaz de executar
programas de nível ISA diretamente.
Nível ISA
• Define a interface entre os compiladores e o hardware.– É uma linguagem que ambos devem entender.– Os compiladores devem saber transformar de
uma linguagem alto nível para uma linguagem do nível ISA.
Nível ISA
Nível ISA
• O Nível ISA depende de uma negociação entre os projetistas de compiladores e os engenheiros de Hardware – Engenheiros de Hardware felizes e – Desenvolvedores de Software contentes
• As novas máquinas devem ser compatíveis com: – Antigos Sistemas Operacionais – Aplicações já desenvolvidas – O desafio é construir máquinas melhores e
compatíveis com as anteriores
Nível ISA
• Quais as características que uma boa ISA deve ter? – Ser implementada com eficiência, tanto nas
tecnologias atuais como nas futuras • hardware mais simples • hardware com melhor tecnologia disponível
– Facilidade de se gerar código para a ISA
Propriedades
• O nível ISA define como a máquina se apresenta a um programador de linguagem de máquina.– Quais as instruções disponíveis;– Qual modelo de memória utilizado;– Quais e quantos registrados existem;– Quais os tipos de dados suportados...
Propriedades
• Outras questões não fazem parte deste nível:– Se a microarquitetura é microprogramada ou não.– Se possui paralelismo ou não...
• Outras questões são visíveis neste nível:– Uso de processadores específicos para números
inteiros e ponto flutuante...
Propriedades
• Algumas arquiteturas definem documentos de requisitos da camada ISA.– Diferentes implementadores podem construir a
máquina e obter o mesmo desempenho. Ex: V9 SPARC
• Para algumas arquiteturas não existe uma documentação formal de especificação – fabricante não quer clones de sua máquina (ex:
Pentium-Intel)
Propriedades• Para outras arquiteturas o nível ISA é especificado por um
documento formal – permitindo que diferentes implementadores construam
máquinas distintas, rodando o mesmo software (chips funcionalmente identicos com diferenças em preço e performance)
– O documento formal contém • seções normativas: que impoem requisitos que devem ser
atendidos na implementação • seções informativas: que ajuda o leitor a entender os
requisitos sem entrar na definição formal • conjuntos de testes: conjunto de testes específicos para se
verificar a implementação em relação a especificação formal
Modos de Utilização
• Este nível provê, no mínimo, dois modos de utilização:– Modo núcleo ou modo kernel.– Modo usuário.
Modo Núcleo
• O SO é executado neste modo.
• Permite executar qualquer instrução, sem restrições.
Modo Usuário
• Executa programas do usuário.
• Possui acesso restrito à algumas instruções importantes.– Não é possível usar as instruções que manipulam
a cache, por exemplo.
Modelos de Memória
Modelos de Memória• Todos os computadores dividem a memória em
células endereçáveis.
• O tamanho mais utilizado é de 8 bits, chamado de 1 byte.
• Este tamanho facilita o armazenamento de caracteres ASCII.– 7 bits do caractere;– 1 bit de paridade.
Modelos de Memória
• Estes bytes são agrupados em palavras.– Podem ser de 4 ou 8 bytes.
• As instruções podem manipular palavras inteiras.
• Algumas arquiteturas exigem que as palavras sejam alinhadas.
Alinhamento das Palavras
Alinhamento das Palavras
• No Pentium 4, é possível referenciar qualquer byte.
• Sem alinhamento, uma palavra pode ficar “espalhada”.– Necessita de duas instruções para carregar a
palavra.
Registradores
Registradores
• Memórias rápidas usadas em execução de instruções dentro do processador (objetivo é minimizar os acessos às memórias externas ao processador)
• Todos os computadores possuem registradores visíveis no nível ISA.
• São visíveis para controlar a execução do programa, reter resultados temporários e outros fins.
Registradores
• Em geral, os registradores do nível de microarquitetura não são visíveis no nível ISA.
• Alguns são visíveis em ambos os níveis.– PC (contador de programa), ponteiro de pilha...
• Todos os registradores do nível ISA são visíveis no nível abaixo.
Categorias de Registradores
• Os registradores do nível ISA podem ser separados em duas categorias:– Registradores de uso especial.– Registradores de uso geral.
Registradores de Uso Especial
• Incluem o PC e o ponteiro de pilha.
• Possuem papéis especiais no funcionamento do computador.
• Alguns só são usados pelo processador
Registradores de Uso Geral
• Contém variáveis locais e resultados intermediários de cálculos.
• Sua função é prover acesso rápido a dados muito usados.
• São, em geral, simétricos e intercambiáveis (usados indistintamente)
Registradores de Uso Geral
• No Pentium 4, há um registrador chamado EDX.– É usado como registrador de uso geral, mas
também armazena metade do produto em uma multiplicação e retém metade do dividendo em uma divisão.
Uso dos Registradores
• É comum que SOs e compiladores adotem convenções sobre o uso dos registradores.
• Alguns podem ser utilizados para armazenar parâmetros de procedimentos e outros como registradores transitórios.
Uso dos Registradores
• Sem uma convenção:– Registradores que armazenam uma variável local
pode perder seu conteúdo após um procedimento.
– O endereço de retorno pode ser perdido.
Uso dos Registradores
• Os registradores de uso especial são usados apenas pelo SO.– São acessados em modo núcleo.
• Compiladores e usuários não necessitam saber que eles existem.
Registrador de Controle
• Possui um comportamento híbrido de núcleo/usuário.
• O registrador de flags ou PSW (Program Status Word) é um registrador de controle.
• Possui vários bits importantes para CPU.
Registrador de Controle
• Estes bits são atualizados em todo ciclo da ULA.
• Refletem o estado da última operação.
Bits da PSW
• N – Setado quando o resultado é negativo.• Z – Quando o resultado é zero.• V – Quando resultado excede a capacidade da
ULA.• C – Quando o resultado causou um vai-um do bit
da esquerda.• A – Quando houve um vai-um do bit 3 (vai-um
auxiliar)• P – Quando o resultado teve paridade par.
Bits da PSW
• As instruções de comparação e desvio condicional utilizam estes bits para realizar uma determinada ação.
• Por exemplo, a instrução CMP (comparação) na verdade subtrai os operandos e, se forem iguais, seta Z como 1.
Bits da PSW
• A PSW pode ser lida em modo usuário.
• Alguns campos só podem ser escritos em modo núcleo.
Instruções
Instruções
• É a principal característica do nível ISA.• O conjunto de instruções controlam tudo o que a máquina
pode fazer • Tipos de instruções típicas:
– LOAD, STORE - realizam o movimento de dados e instruções entre memória e registradores
– MOVE - realizam cópia de valores entre registros – ADD, SUB, MULT,... - realizam operações aritméticas – AND, OR, XOR, ... - realizam operações lógicas – EQ, NEQ, LEQ,... - realizam operações de comparação – GOTO - operação de desvio
Visão Geral
• Serão abordados os níveis ISA das arquiteturas:– Pentium 4;– SPARC v9;– 8051
Tipos de Dados
• Se existe suporte de hardware para um determinado tipo de dado – usuário não pode manipular dado em formato
particular diferente do especificado (implementado)
• Se não existe esse suporte – usuário tem maior flexibilidade para trabalhar
com tipos diferentes ou próprios
Tipos Dados
• Se existe suporte de hardware para um determinado tipo de dado – usuário não pode manipular dado em formato
particular diferente do especificado (implementado)
• Se não existe esse suporte – usuário tem maior flexibilidade para trabalhar
com tipos diferentes ou próprios
Dados Numéricos• Tipos de Dados Numéricos
– Inteiros • Comumente de 8, 16, 32 e 64 bits, com sinal e sem sinal • Muitas vezes representados em complemento de 2 • Exemplo: Para o caso de 32 bits sem sinal temos 232 valores
inteiros• Exemplo: Para caso de 32 bits com sinal temos 231 valores
inteiros mais o sinal – Ponto Flutuante
• Comumente de 32, 64 e 128 bits, com sinal e sem sinal • Considera-se o sinal, a parte inteira e a parte decimal • Podem existir registradores específicos para esses tipos de dados
Dados Não Numéricos
• Tipos de Dados não numéricos – Textos ou alfanuméricos
• Tipicamente usados em processadores de texto, planilhas e banco de dados
• Códigos mais usados atualmente: ASCII (8 bits) e UNICODE (16bits)
Formato de Instruções
• Uma instrução é formada por: – um código de operação (obrigatório) – informações a respeito da fonte e do destino de
seus operandos (facultativo)
• um, dois ou três endereços
Formato de Instruções
• Formatos de instruções muito comuns: (a) Instrução sem endereço. (b) Instrução com um endereço. (c) Instrução com dois endereços. (d) instrução com três endereços.
Formato de Instruções
• O código de operação informa ao hardware o que deve ser feito quando de sua execução.
• As instruções – podem ter tamanhos diversos (complica o projeto
mas tem-se economia de memória) ou – serem todas de tamanhos iguais (simplifica o
projeto, mas desperdiça espaço. Porque?)
Formato de Instruções
• Algumas das relações possíveis entre o tamanho das instruções e o tamanho das palavras de memória
Critérios para Determinação do Formato de Instruções
• Para uma arquitetura ter sucesso comercial • Pode-se querer que ela dure 20 anos ou mais,
mantendo compatibilidades• O ISA deve ter a capacidade de suportar o acréscimo de
novas instruções • O ISA deve ser capaz de explorar novidades ao longo do
tempo de vida • Algumas decisões tomadas quando do projeto ISA
podem revelar-se inadequadas ao longo do tempo, principalmente se a tecnologia for incompatível com a implementação do ISA
Critérios para Determinação do Formato de Instruções
• Em geral as instruções pequenas são mais atraentes do que as grandes. Porque?
• A banda passante (número de bits por segundo que a memória é capaz de liberar) da memória tem crescido menos que a velocidade dos processadores. As memórias atuais não tem a capacidade de suprir instruções e operandos na velocidade que o processador pode consumi-las.
• Um programa feito com instruções de 16 bits gasta metade do espaço de memória de um programa com instruções de 32 bits.
• Deve-se considerar, também, a taxa de crescimento do preço de memória e a taxa de crescimento do tamanho dos programas.
Critérios para Determinação do Formato de Instruções
• Por outro lado, a minimização do tamanho das intruções pode dificultar muito a sua decodificação. O projetista é obrigado a usar um conjunto restrito de códigos para as instruções e o projeto pode não ser flexível para aumento da quantidade de instruções
Endereçamento
• Como os bits de endereçamento são interpretados no processo de localização do operando?
• Normalmente esses bits contêm o endereço do operando na memória
• Mas isso não é regra geral
Modos de endereçamento
• Endereçamento Imediato
• Endereçamento Direto
• Endereçamento Via Registrador
• Endereçamento Indireto Via Registrador
• Endereçamento Indexado
• Endereçamento Base_Indexado
• Endereçamento Via Estrutura de Pilha
55 Org. e Arq. de Computadores I
Endereçamento Imediato
• O campo de instrução de endereçamento contém o valor do operando
• Esse operando é conhecido como operando imediato, pois ele é trazido automaticamente da memória, na própria operação de busca da instrução.
• Mais usado para especificar constantes de valor pequeno. Porque?
Instrução com operando imediato, para carregar o valor 4 no registrador 1.
56 Org. e Arq. de Computadores I
Endereçamento Direto
• O operando armazenado na memória é informado pelo seu endereço completo
• Esse modo de endereçamento é conhecido como modo de endereçamento direto.
• O endereçamento direto só pode ser usado para acessar variáveis globais cujo endereço seja conhecido em tempo de compilação.Porque?
57 Org. e Arq. de Computadores I
Endereçamento Via Registrador
• é, conceitualmente, idêntico ao endereçamento direto, mas especifica um registrador em vez de um endereço de memória.
• é o modo de endereçamento mais usado na maioria dos processadores (mantém-se as variáveis mais usadas no processamento e aproveita-se o baixo tempo de acesso e o número de bits reduzido dos registradores)
• não pode ser usado em operações de carga (LOAD) e armazenamento (STORE) envolvendo memória principal.
58 Org. e Arq. de Computadores I
Endereçamento Indireto Via Registrador
• o operando especificado vem da memória ou vai para a memória, mas seu endereço não está gravado na instrução, (como no endereçamento direto). O endereço é obtido indiretamente a partir do endereço de um registrador de referência.
• por exemplo, quando se tem um loop de manipulação de um array usa-se o endereço do início do array como referência e os demais são obtidos indiretamente com base nessa referência.
59 Org. e Arq. de Computadores I
Endereçamento Indexado
• Endereçamento de memória a partir do conteúdo de um registrador (implícito ou explícito) somado a um deslocamento constante.
Endereçamento Base-Indexado
• Modo de endereçamento segundo o qual o endereço de memória é calculado somando-se o conteúdo de dois registradores com um deslocamento (opcional). Um dos registradores é o registrador base e o outro é o registrador índice.
60 Org. e Arq. de Computadores I
Endereçamento Via Estrutura de PilhaEndereçamento Via Estrutura de Pilha
• Instruções sem endereços explícitos (Exemplo: IADD) são possíveis de serem definidas desde que sua execução esteja associada a uma estrutura de pilha.
61 Org. e Arq. de Computadores I
Comparação de modos de endereçamento.
Modo de endereçamento
Imediato
Direto
Via registrador
Indireto via Registrador
Indexado
Base-Indexado
Via estrutura de pilha
• Exercícios• O que é o nível ISA e qual a sua importância no projeto de um
computador de uso geral. • A especificação definida no nível ISA depende de negociações entre os
interessados no computador. Quem são esses interessados e quais são as características dessas negociações?
• Explique as 3 seções que geralmente são colocadas num documento formal de específicação do nível ISA.
• Qual a importância da especificação dos registradores do computador no nível ISA. Explique a diferença entre registradores de propósito geral e registradores de propósito específico
Top Related