nível isa

62
Nível ISA

Upload: thane-nash

Post on 03-Jan-2016

17 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Nível ISA

Nível ISA

Page 2: 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.

Page 3: Nível ISA

Arquitetura em Camadas

Page 4: Nível ISA

Arquitetura em Camadas

Page 5: Nível ISA

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.

Page 6: Nível 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.

Page 7: Nível ISA

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.

Page 8: Nível ISA

Nível ISA

Page 9: 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

Page 10: Nível ISA

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

Page 11: Nível 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...

Page 12: Nível ISA

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...

Page 13: Nível ISA

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)

Page 14: Nível ISA

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

Page 15: Nível ISA

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.

Page 16: Nível ISA

Modo Núcleo

• O SO é executado neste modo.

• Permite executar qualquer instrução, sem restrições.

Page 17: Nível ISA

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.

Page 18: Nível ISA

Modelos de Memória

Page 19: Nível ISA

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.

Page 20: Nível ISA

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.

Page 21: Nível ISA

Alinhamento das Palavras

Page 22: Nível ISA

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.

Page 23: Nível ISA

Registradores

Page 24: Nível ISA

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.

Page 25: Nível ISA

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.

Page 26: Nível ISA

Categorias de Registradores

• Os registradores do nível ISA podem ser separados em duas categorias:– Registradores de uso especial.– Registradores de uso geral.

Page 27: Nível ISA

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

Page 28: Nível ISA

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)

Page 29: Nível ISA

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.

Page 30: Nível ISA

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.

Page 31: Nível ISA

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.

Page 32: Nível ISA

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.

Page 33: Nível ISA

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.

Page 34: Nível ISA

Registrador de Controle

• Estes bits são atualizados em todo ciclo da ULA.

• Refletem o estado da última operação.

Page 35: Nível ISA

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.

Page 36: Nível ISA

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.

Page 37: Nível ISA

Bits da PSW

• A PSW pode ser lida em modo usuário.

• Alguns campos só podem ser escritos em modo núcleo.

Page 38: Nível ISA

Instruções

Page 39: Nível ISA

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

Page 40: Nível ISA

Visão Geral

• Serão abordados os níveis ISA das arquiteturas:– Pentium 4;– SPARC v9;– 8051

Page 41: Nível ISA

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

Page 42: Nível ISA

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

Page 43: Nível ISA

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

Page 44: Nível ISA

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)

Page 45: Nível ISA

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

Page 46: Nível ISA

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.

Page 47: Nível ISA

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?)

Page 48: Nível ISA

Formato de Instruções

• Algumas das relações possíveis entre o tamanho das instruções e o tamanho das palavras de memória

Page 49: Nível ISA

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

Page 50: Nível 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.

Page 51: Nível ISA

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

Page 52: Nível ISA

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

Page 53: Nível ISA

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

Page 54: Nível ISA
Page 55: Nível ISA

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.

Page 56: Nível ISA

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?

Page 57: Nível ISA

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.

Page 58: Nível ISA

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.

Page 59: Nível ISA

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.

Page 60: Nível ISA

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.

Page 61: Nível ISA

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

Page 62: Nível ISA

• 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