software básico nível isa capítulo 5 mitsuo takaki mt2/ [email protected]

46
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki http://www.cin.ufpe.br/~mt2/ [email protected]

Upload: internet

Post on 22-Apr-2015

111 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Software Básico

Nível ISACapítulo 5

Mitsuo Takakihttp://www.cin.ufpe.br/~mt2/

[email protected]

Page 2: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Arquitetura em Camadas

Page 4: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Arquitetura em Camadas

Page 5: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Nível ISA

Page 9: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 10: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 11: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Propriedades

• Algumas arquiteturas definem documentos de requisitos da camada ISA.– Diferentes implementadores podem construir a

máquina e obter o mesmo desempenho.

Page 12: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Compilador

• O desenvolvedor de um compilador necessita obter informações do nível ISA.

• Se não for utilizado de forma correta, pode produzir resultados errados.

Page 13: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 14: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Modo Núcleo

• O SO é executado neste modo.

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

Page 15: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 16: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Modelos de Memória

Page 17: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 18: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 19: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Alinhamento das Palavras

Page 20: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 21: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Espaço de Endereço

• A maioria das máquinas possuem apenas um único espaço linear de endereço.

• Algumas possuem espaços de endereços separados para instruções e dados.– A busca de uma instrução no endereço 8 vai para

um espaço de endereço diferente da busca por um dado no endereço 8.

Page 22: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Espaço de Endereço Separado

• A principal vantagem deste esquema é que fica impossível sobrescrever acidentalmente o programa.– Overflow.

• Atenção!! Este esquema é diferente do uso de uma cache dividida.

Page 23: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Semântica da Memória

• A semântica da memória é mais um aspecto do modelo de memória do nível ISA.

• Espera-se que após uma instrução STORE, a execução de um LOAD, no mesmo endereço, retornará o valor que acabou de ser escrito.

Page 24: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Semântica da Memória

• Em muitos projetos, as microinstruções são reordenadas.

• Há uma chance da memória não ter o comportamento esperado.– Este problema é agravado como uso de

multiprocessadores.– Há uma sequência de instruções de leitura/escrita

a uma memória compartilhada.

Page 25: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Semântica da Memória

• Existem diversas soluções para este problema, como:– Serializar requisições de memória;– Não prover garantias;– Usar modelos de memória intermediários.

Page 26: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Serializar Requisições de Memória

• Cada instrução é concluída antes da próxima ser emitida.

• Forma simples de implementar.

• Degrada o desempenho do sistema.

Page 27: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Não Prover Garantias

• O programa deve executar uma instrução SYNC sempre que necessitar uma ordenação.– Bloqueia todas as requisições de memória até que

as anteriores tenham concluído.

• Passa toda responsabilidade para os compiladores.– Necessitam entender detalhes do funcionamento

da microarquitetura.

Page 28: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Modelos de Memória Intermediária

• O hardware fica responsável por bloquear automaticamente a emissão de certas referências à memória.

• Algumas referências não são bloqueadas.

Page 29: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Registradores

Page 30: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Registradores

• 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 31: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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, ponteiro de pilha...

• Todos os registradores do nível ISA são visíveis no nível abaixo.

Page 32: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Categorias de Registradores

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

Page 33: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Registradores de Uso Especial

• Incluem o PC e o ponteiro de pilha.

• Possuem papéis especiais no funcionamento do computador.

Page 34: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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.

Page 35: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 36: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 37: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 38: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 39: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 40: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Registrador de Controle

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

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

Page 41: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 42: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

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 43: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Bits da PSW

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

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

Page 44: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Instruções

Page 45: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Instruções

• É a principal característica do nível ISA.

• Sempre existem instruções aritméticos, booleanas, LOAD, STORE, MOVE...

Page 46: Software Básico Nível ISA Capítulo 5 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Instruções

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