620 likes | 717 Views
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.
E N D
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.
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 • 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 • 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 • 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 • 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 • É 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 destinode seusoperandos (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.