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

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

Software Básico Nível ISA Capítulo 5 Mitsuo Takaki

Apresentações semelhantes


Apresentação em tema: "Software Básico Nível ISA Capítulo 5 Mitsuo Takaki"— Transcrição da apresentação:

1 Software Básico Nível ISA Capítulo 5 Mitsuo Takaki

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

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

11 Propriedades Algumas arquiteturas definem documentos de requisitos da camada ISA. Diferentes implementadores podem construir a máquina e obter o mesmo desempenho.

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

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

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

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

16 Modelos de Memória

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

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

19 Alinhamento das Palavras

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

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

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

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

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

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

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

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

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

29 Registradores

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

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

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

33 Registradores de Uso Especial
Incluem o PC e o ponteiro de pilha. Possuem papéis especiais no funcionamento do computador.

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

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

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

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

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

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

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

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

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

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

44 Instruções

45 Instruções É a principal característica do nível ISA.
Sempre existem instruções aritméticos, booleanas, LOAD, STORE, MOVE...

46 Instruções Serão abordados os níveis ISA das arquiteturas: Pentium 4;
SPARC v9; 8051


Carregar ppt "Software Básico Nível ISA Capítulo 5 Mitsuo Takaki"

Apresentações semelhantes


Anúncios Google