A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Nível ISA.

Apresentações semelhantes


Apresentação em tema: "Nível ISA."— Transcrição da apresentação:

1 Nível ISA

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

3 Arquitetura em Camadas

4 Arquitetura em Camadas

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

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

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

8 Nível ISA

9 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

10 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

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

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

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

14 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

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

16 Modo Núcleo O SO é executado neste modo.
Permite executar qualquer instrução, sem restrições.

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

18 Modelos de Memória

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

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

21 Alinhamento das Palavras

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

23 Registradores

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

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

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

27 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

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

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

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

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

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

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

34 Registrador de Controle
Estes bits são atualizados em todo ciclo da ULA. Refletem o estado da última operação.

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

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

37 Bits da PSW A PSW pode ser lida em modo usuário.
Alguns campos só podem ser escritos em modo núcleo.

38 Instruções

39 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

40 Visão Geral Serão abordados os níveis ISA das arquiteturas: Pentium 4;
SPARC v9; 8051

41 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

42 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

43 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

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

45 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

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

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

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

49 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

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

51 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

52 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

53 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

54 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. Org. e Arq. de Computadores I

55 Endereçamento Imediato
Vantagem: Não exigi uma referência extra à memmória para buscar o operando Desvantagem: Somente uma constante pode ser fornecida desse modo. O número de valores é limitado pelo tamanho do campo

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? A instrução sempre acessará a mesma localização de memória O valor pode mudar, mas a localização não pode. Org. e Arq. de Computadores I

57 Endereçamento Direto

58 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 é usado quando um operando é transferido da memória para um registrador. (operações de carga - LOAD) ou de um registrador para memória (instruções e armazenamento (STORE) envolvendo memória principal. Endereço contido na instrução Org. e Arq. de Computadores I

59 Endereçamento via Registrador

60 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. Endereço é denominado de ponteiro 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. Org. e Arq. de Computadores I

61 Endereçamento Indireto via Registrador

62 Org. e Arq. de Computadores I
Endereçamento Indexado Poder referenciar palavras de memória cujo deslocamento a um registrador é conhecido. Endereçamento de memória que fornece um a partir do conteúdo de um registrador (implícito ou explícito) somado a um deslocamento constante. Org. e Arq. de Computadores I

63 deslocamento chama-se habitualmente um índice e o seu valor fica contido num registador do CPU. Assim, ao aceder a uma tabela, o índice dá o deslocamento de cada elemento, relativo à base, cujo endereço vem indicado na própria instrução. O endereço efectivo é obtido pela soma EndereçoBase + (RegistadorÍndice).

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

65 durante a execução, definirmos o valor do endereço de base, isto é, o apontador para a base da estrutura e, depois, o valor do índice de cada elemento, à medida que vamos iterando ao longo da estrutura.

66 Org. e Arq. de Computadores I
Endereç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 Consistem em itens de dados armazenados em ordem consecutiva na memória, onde o primeiro item é denominado fundo da pilha. O apontador da pilha é um registrador que contém o endereço do topo da pilha. As instruções sem operadores utilizam a pilha para efetuar as operações, onde os operandos utilizados são sempre retirados do topo da pilha e o resultado dessa operação é deixado no topo. Sua vantagem é oferecer a possibilidade de especificar instruções sem os operandos e a implementação de procedimentos, já sua desvantagem é o acesso a memória principal Org. e Arq. de Computadores I

67 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 Comparação de modos de endereçamento. Org. e Arq. de Computadores I

68 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


Carregar ppt "Nível ISA."

Apresentações semelhantes


Anúncios Google