1 / 62

Nível ISA

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.

thane-nash
Download Presentation

Nível ISA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 destinode seusoperandos (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.

More Related