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

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

© 2007 by Pearson Education Nível de arquitetura do conjunto de instrução Capítulo 5.

Apresentações semelhantes


Apresentação em tema: "© 2007 by Pearson Education Nível de arquitetura do conjunto de instrução Capítulo 5."— Transcrição da apresentação:

1 © 2007 by Pearson Education Nível de arquitetura do conjunto de instrução Capítulo 5

2 © 2007 by Pearson Education Nível ISA - Introdução Historicamente foi desenvolvido antes dos outros níveis Originalmente era o único nível É a interface entre o software e o hardware Os programas escritos em várias linguagens de alto nível são traduzidos para uma forma intermediária comum (nível ISA) O hardware é construído de tal forma que possa executar o nível ISA diretamente Define a interface entre os compiladores e o hardware

3 © 2007 by Pearson Education Nível ISA - Introdução O nível ISA é a interface entre os compiladores e o hardware. Compilador e hardware precisam entender a linguagem do nível ISA

4 © 2007 by Pearson Education Nível ISA - Introdução Quando surge um novo hardware, as perguntas a serem feitas pelos clientes potenciais são: É compatível com o hardware antigo ? Pode executar o SO antigo ? Executará todos o programas de aplicação já existentes sem a necessidade de modificação e recompilação ? Isto leva os projetistas de computador a manterem a mesma ISA entre modelos ou ao menos permitir compatibilidade

5 © 2007 by Pearson Education Nível ISA - Introdução Um hardware novo pode ser compatível com uma ISA antiga mas características do novo hardware precisam de software novo para serem exploradas Pode-se passar de um projeto com características implementadas a nível de microprograma para as mesmas características implementadas com execução direta no hardware Novo software para explorar tais características ISA compatível com programas antigos

6 © 2007 by Pearson Education Nível ISA - Visão Geral Propriedades O nível ISA é o modo como a máquina se apresenta a um programador de linguagem de máquina Código de nível ISA é o que um compilador produz, ignorando chamadas ao SO e linguagem de montagem simbólica Para produzir código de nível ISA, necessita- se saber O modelo de memória Quais e quantos são os registradores Quais tipos de dados e instruções estão disponíveis

7 © 2007 by Pearson Education Nível ISA - Visão Geral Propriedades Não são questões do nível ISA: Se a microarquitetura é microprogramada ou não o é Se tem paralelismo ou não Se é superescalar ou não Tais aspectos não são visíveis para o escritor de compilador Nível ISA especificado V9 SPARC Diferentes chips com preços variados capazes de rodar os mesmos programas de aplicação Nível ISA não especificado Chip Intel Pentium 4 Clonado

8 © 2007 by Pearson Education Nível ISA - Visão Geral Propriedades Na maioria das máquinas há no mínimo os modos Kernel (núcleo) Executa o SO Permite que todas as instruções sejam executadas Usuário Executa programas de aplicação Não permite que certas instruções sejam manipuladas diretamente E.g., manipulação da cache

9 © 2007 by Pearson Education Nível ISA - Visão Geral Modelo de Memória Todos os computadores dividem a memória em células de endereço consecutivos O tamanho de células mais comum é 8 bits Historicamente usadas células de 1 a 60 bits Uma célula de 8 bits é denominada byte Codificação ASCII levou a células de 8 bits Codificação UNICODE necessita de 16 bits

10 © 2007 by Pearson Education Nível ISA - Visão Geral Modelo de Memória Bytes são agrupados em palavras de 32 bits 4 bytes 64 bits 8 bytes Há instruções disponíveis para se manipular palavras inteiras

11 © 2007 by Pearson Education Nível ISA - Visão Geral Modelo de Memória Há arquiteturas que exigem palavras alinhadas em suas fronteiras Mais eficiente E.g., Pentium 4 Nível ISA permite endereçar palavras de forma não alinhada, o que causa mais acesso à memória Compatibilidade com o nível ISA de máquinas 8088 antigas Outras permitem endereçamento de palavras não alinhadas

12 © 2007 by Pearson Education Nível ISA - Visão Geral Modelo de Memória Palavra de 8 bytes em memória little-endian. (a) Alinhada. (b) Não alinhada. Algumas máquinas requerem que palavras na memória sejam alinhadas.

13 © 2007 by Pearson Education Visão geral do nível ISA do Pentium 4 Registradores primários do Pentium 4.

14 © 2007 by Pearson Education Visão geral do nível ISA da UltraSPARC III (1) Registradores gerais da UltraSPARC III.

15 © 2007 by Pearson Education Operação das janelas de registrador da UltraSPARC III. Visão geral do nível ISA da UltraSPARC III (2)

16 © 2007 by Pearson Education Visão geral do nível ISA do 8051 (a) Organização de memória em chip para o (b) Principais registradores do 8051.

17 © 2007 by Pearson Education Tipos de dados Uma questão fundamental é se há ou não há suporte de hardware para um tipo particular de dado O hardware espera um certo formato de inteiros e não funciona adequadamente quando recebe qualquer outra coisa E.g., Se o hardware somente suporta aritmética de 32 bits e é necessário um tipo de dado de 64 bits (dupla precisão), faz-se necessário dar suporte a nível de software

18 © 2007 by Pearson Education Tipos de dados Os tipos de dados podem ser divididos em numéricos e não numéricos Tipos numéricos: O principal entre os tipos numéricos são os inteiros Um inteiro de 32 bits com sinal pode manipular números positivos e negativos ( (2 ** 31) – 1) Para números não inteiros (e.g 3,2) são usados números de ponto flutuante Com comprimentos de 32, 64 ou 128 bits (dependendo da arquitetura) O bug do milêncio Y2K foi causado por programadores que objetivavam otimizar o uso recursos computacionais Usaram 2 dígitos decimais para o ano ao invés de 16 bits

19 © 2007 by Pearson Education Tipos de dados Os tipos de dados podem ser divididos em numéricos e não numéricos Tipos não numéricos: Computadores modernos são usados para aplicações não numéricas (e.g., , vídeo, web, fotos) São necessários tipos de dados muitas vezes não suportados pelo nível ISA Muitas vezes o nível ISA possui instruções para manipular cadeias de caracteres Valores booleanos Não há suporte a endereçar bits Mapas de bits onde uma palavra é usada para armazenar 32 valores booleanos Ponteiros Um ponteiro é um endereço de memória

20 © 2007 by Pearson Education Tipos de dados do Pentium 4 Tipos de dados numéricos do Pentium 4. Os tipos suportados estão marcados com x. Manipula bem inteiros de 8 ou 16 bits Possui numerosas instruções para efetuar operações aritméticas e boolenas Operandos não tem que estar alinhados na memória Desempenho melhor se os endereços de palavras forem múltiplos de 4 bytes Bom na manipulação de caracteres ASCII de 8 bits Instruções especiais para buscar e manipular caracteres

21 © 2007 by Pearson Education Tipos de dados da UltraSPARC III Tipos de dados numéricos da UltraSPARC III. Os tipos suportados estão marcados com x. É baseada em registradores Quase todas as instruções operam em registradores de 64 bits Tipos de dados de caracteres e cadeia de caracteres não são suportados por hardware, mas sim inteiramente por software

22 © 2007 by Pearson Education Tipos de dados do 8051 Tipos de dados numéricos do Os tipos suportados estão marcados com x. Todos os registradores tem 8 bits, inclusive ponteiros, caracteres Todo bit pode ser endereçado individualmente O bit zero é o mais à direita no byte Há instruções para bits individuais Ajustar, liberar, efetuar operações AND e OR Completar, mover e testar bits

23 © 2007 by Pearson Education Formatos de Instrução (1) Quatro formatos comuns de instrução: (a) Instrução sem endereço. (c) Instrução com dois endereços. (b) Instrução com um endereço. (d) Instrução com três endereços. Uma instrução consiste em um opcode geralmente com informações adicionais De onde vem os operandos e para onde vão os resultados O endereçamento define onde estão os operandos (seus endereços)

24 © 2007 by Pearson Education Formatos de Instrução (1) Instruções sempre possuem um opcode O opcode indica o que a instrução faz Endereços indicam onde estão os operandos

25 © 2007 by Pearson Education Formatos de Instruções (2) Algumas relações possíveis entre comprimento de instrução e de palavra. Um programa que consistem em n instruções de 16 bits, ocupa apenas metade da memória que um programa de n instruções de 32 bits É preciso contrabalançar o tamanho mínimo da instrução com o tempo requerido para decodificá-la e executá-la

26 © 2007 by Pearson Education Formatos de Instruções (2) Uma outra razão para minimizar o comprimento da instrução é a largura de banda da memória (bits/s) A capacidade de processamento dos processadores tem crescido mais rápido que a largura de banda da memória Processadores ficam ociosos e o gargalo é a largura de banda da memória O gargalo da largura de banda da memória diz respeito à RAM e a Cache

27 © 2007 by Pearson Education Formatos de Instruções (2) Instruções mais curtas significam um processador mais rápido Computadores modernos podem executar várias instruções por ciclo de relógio Buscar várias instruções por ciclo de relógio se torna imperativo O tamanho da cache de instruções é um importante critério de projeto para o desempenho

28 © 2007 by Pearson Education Expansão de Opcodes (1) Instrução com um opcode de 4 bits e três campos de endereço de 4 bits cada. Denomina-se expansão de opcode ao artifício utilizado pelos projetistas de computador ao contrabalancear o tamanho/quantidade de memória endereçável com a quantidade de instruções possíveis

29 © 2007 by Pearson Education Expansão de Opcodes (1) Instrução com um opcode de 4 bits e três campos de endereço de 4 bits cada. Neste projeto é possível 16 instruções de três endereços Seria ideal para uma CPU com 16 registradores

30 © 2007 by Pearson Education Expansão de Opcodes (2) Expansão de opcode que permite 15 instruções de três endereços, 14 instruções de dois endereços, 31 instruções de um endereço, e 16 instruções sem endereço. Os campos marcados com xxxx, yyyy e zzzz são campos de endereço de 4 bits.

31 © 2007 by Pearson Education Expansão de Opcodes (2) Instruções de 3 endereços tem um opcode de 4 bits Instruções de 2 endereços tem um opcode de 8 bits Instruções de 1 endereço tem um opcode de 12 bits Instruções sem endereço tem um opcode de 16 bits

32 © 2007 by Pearson Education Formatos das instruções do Pentium 4 Formatos de instrução do Pentium 4. Bastante complexo com 6 campos de tamanho variável, cinco dos quais opcionais Arquitetura evoluiu por muitas gerações mantendo opções desastrosas do início do projeto

33 © 2007 by Pearson Education Formatos das instruções do Pentium 4 Formatos de instrução do Pentium 4. Nas primeiras arquiteturas Intel, todos os opcodes tinham 1 byte 1 byte de prefixo usado extensivamente para modificar algumas instruções Com o tempo a Intel esgotou seus opcodes Um opcode extra OxFF foi designado como código de escape para permitir um segundo byte de instrução Instruções difíceis de decodificar

34 © 2007 by Pearson Education Formatos de instrução da UltraSPARC III Os formatos originais de instrução da SPARC. Consiste inteiramente em instruções de 32 bits alinhadas na memória Instruções simples que especificam apenas uma única ação Uma instrução aritmética típicia especifica dois operandos fontes e um único registrador de destino

35 © 2007 by Pearson Education Formatos de instrução do 8051 Formatos de instrução do Possui 6 formatos de instruções simples As instruções são de 1, 2 ou 3 bytes 1 byte 2 bytes 3 bytes

36 © 2007 by Pearson Education Endereçamento O Endereçamento permite indicar onde estão os operandos que fazem parte das instruções Modos de Endereçamento: Endereçamento imediato Endereçamento direto Endereçamento de registrador Endereçamento indireto de registrador Endereçamento indexado Endereçamento de base indexado Endereçamento de pilha

37 © 2007 by Pearson Education Endereçamento O Endereçamento permite indicar onde estão os operandos que fazem parte das instruções Modos de Endereçamento: Endereçamento imediato É o modo mais simples de uma instrução especificar seu operando O endereço realmente contém o operando em si e não uma informação que descreva onde o operando está Tem a vantagem de não exigir uma referência extra à memória para buscar o operando Operando imediato é buscado na memória juntamente com a instrução Desvantagem é que somente uma constante pode ser fornecida neste modo Instrução imediata para carregar 4 no registrador 1.

38 © 2007 by Pearson Education Endereçamento O Endereçamento permite indicar onde estão os operandos que fazem parte das instruções Modos de Endereçamento: Endereçamento direto Um operando é indicado na memória através do seu endereço completo Neste caso a instrução sempre acessará a mesma localização da memória O endereço direto é usado para acessar variáveis globais cujos endereços são conhecidos no momento da compilação

39 © 2007 by Pearson Education Endereçamento O Endereçamento permite indicar onde estão os operandos que fazem parte das instruções Modos de Endereçamento: Endereçamento de registrador É o mesmo que o endereçamento direto, mas especifica um registrador em vez de uma localização de memória Como os registradores são muito importantes, devido ao acesso rápido e endereços curtos, esse modo de endereçamento é o mais comum na maioria dos computadores Compiladores verificam quais variáveis serão mais acessadas e as colocam em um registrador E.g., o índice de um laço é posto em um registrador pelo compilador

40 © 2007 by Pearson Education Endereçamento O Endereçamento permite indicar onde estão os operandos que fazem parte das instruções Modos de Endereçamento: Endereçamento de registrador Em arquiteturas carregue armazene, como a UltraSARC III quase todas as instruções usam exclusivamente o modo registrador A única vez em que o modo registrador não é usado é quando um operando é transferido da memória para um registrador Instrução LOAD ou do registrador para a memória Instrução STORE

41 © 2007 by Pearson Education Endereçamento O Endereçamento permite indicar onde estão os operandos que fazem parte das instruções Modos de Endereçamento: Endereçamento indireto de registrador O operando que está sendo especificado vem da memória ou vai para a memória O endereço do operando na memória não está ligado à instrução (como no modo direto) O endereço do operando fica armazenado em um registrador O endereço do operando na instrução é na verdade um ponteiro

42 © 2007 by Pearson Education Endereçamento O Endereçamento permite indicar onde estão os operandos que fazem parte das instruções Modos de Endereçamento: Endereçamento indireto de registrador Vantagens O endereço do operando na instrução faz referencia à memória sem pagar o preço por ter um endereço de memória completo na instrução Pode usar diferentes palavras de memória em diferentes execuções da instruções

43 © 2007 by Pearson Education Endereçamento O Endereçamento permite indicar onde estão os operandos que fazem parte das instruções Modos de Endereçamento: Endereçamento indireto de registrador E.g., Um programa genérico em linguagem de montagem para calcular a soma dos elementos de um vetor.

44 © 2007 by Pearson Education Endereçamento O Endereçamento permite indicar onde estão os operandos que fazem parte das instruções Modos de Endereçamento: Endereçamento indexado É o nome que se dá ao endereçamento de memória que fornece um registrador mais um deslocamento constante É útil para poder referenciar palavras de memória cujo deslocamento em relação a um registrador é conhecido.

45 © 2007 by Pearson Education Endereçamento Indexado (1) Programa genérico em linguagem de montagem para calcular a operação OR de A i AND B i para dois vetores de 1024 elementos. Tem-se dois vetores unidimensionais de palavras cada, A e B Deseja-se calcular A[i] AND B[i] para todos os pares e então efetuar uma operação OR com esses produtos booleanos para ver se há ao menos um par não zero no conjunto.

46 © 2007 by Pearson Education Endereçamento Indexado (2) Possível representação de MOV R4, A (R2). A Palavra de memória endereçada é A[0] no endereço A[1] no endereço A[2] no endereço

47 © 2007 by Pearson Education Endereçamento O Endereçamento permite indicar onde estão os operandos que fazem parte das instruções Modos de Endereçamento: Endereçamento de base indexado Algumas máquinas tem um modo de endereçamento no qual o endereço de memória é calculado somando dois registradores mais um deslocamento (opcional) Um dos registradores é a base e o outro é o índice LOOP: MOV R4,(R2+R5) AND R4,(R2+R6)

48 © 2007 by Pearson Education Endereçamento O Endereçamento permite indicar onde estão os operandos que fazem parte das instruções Modos de Endereçamento: Endereçamento de pilha

49 © 2007 by Pearson Education Notação Polonesa Invertida (1) A forma com o operador entre os operandos é chamada notação infixa x + y A forma com o operador após os operandos é denominada pós- fixa ou notação polonesa invertida x y + Vantagens da notação polonesa invertida sobre a notação infixa Na expressão de fórmulas algébricas, qualquer fórmula pode ser expressa sem parênteses

50 © 2007 by Pearson Education Notação Polonesa Invertida (1) Cada vagão ferroviário representa um símbolo na fórmula a ser convertida de notação infixa para notação polonesa invertida.

51 © 2007 by Pearson Education Notação Polonesa Invertida (2) Tabela de decisão usada pelo algoritmo de conversão da notação infixa para a notação polonesa invertida.

52 © 2007 by Pearson Education Alguns exemplos de expressões infixas e seus equivalentes em notação polonesa invertida. Notação Polonesa Invertida (3) Infixa Notação polonesa invertida

53 © 2007 by Pearson Education Avaliação de fórmulas em notação polonesa invertida Utilização de uma pilha para avaliar uma fórmula em notação polonesa invertida.

54 © 2007 by Pearson Education Ortogonalidade de Opcodes e modos de endereçamento (1) Projeto simples para formatos de instrução de uma máquina de três endereços.

55 © 2007 by Pearson Education Projeto simples para os formatos de instrução de uma máquina de três endereços. Ortogonalidade de Opcodes e modos de endereçamento (2)

56 © 2007 by Pearson Education Modos de endereçamento do Pentium 4 (1) Modos de endereçamento de 32 bits do Pentium 4. M[x] é a palavra de memória em x.

57 © 2007 by Pearson Education Acesso a a[i]. Modos de endereçamento do Pentium 4 (2)

58 © 2007 by Pearson Education Discussão dos modos de endereçamento Comparação entre os modos de endereçamento.

59 © 2007 by Pearson Education Controle de laço (a) Laço do tipo teste no final. (b) Laço do tipo teste no início.

60 © 2007 by Pearson Education Entrada/Saída (1) Registradores de dispositivo para um terminal simples.

61 © 2007 by Pearson Education Entrada/Saída (2) Exemplo de E/S programada.

62 © 2007 by Pearson Education Entrada/Saída (3) Sistema com controlador de DMA.

63 © 2007 by Pearson Education Instruções do Pentium 4 (1) Uma seleção de instruções de inteiros do Pentium 4.

64 © 2007 by Pearson Education Instruções da UltraSPARC III (1) Instruções de inteiros da UltraSPARC III primária.

65 © 2007 by Pearson Education Instruções do 8051 (1) Conjunto de instruções do 8051.

66 © 2007 by Pearson Education Instruções do 8051 (2) Conjunto de instruções do 8051.

67 © 2007 by Pearson Education Conjunto de instruções do Instruções do 8051 (3)

68 © 2007 by Pearson Education Conjunto de instruções do Instruções do 8051 (4)

69 © 2007 by Pearson Education Conjunto de instruções do Instruções do 8051 (5)

70 © 2007 by Pearson Education Fluxo de controle seqüencial e desvios Contador de programa como função do tempo (ajustada). (a) Sem desvios. (b) Com desvios.

71 © 2007 by Pearson Education Procedimentos Recursivos (1) Configuração inicial para o problema Torres de Hanói para cinco discos.

72 © 2007 by Pearson Education Procedimentos recursivos (2) Etapas requeridas para resolver o problema Torres de Hanói para três discos.

73 © 2007 by Pearson Education Procedimentos Recursivos (3) Etapas requeridas para resolver o problema Torres de Hanói para três discos.

74 © 2007 by Pearson Education Procedimentos Recursivos (4) Procedimento para resolver o problema Torres de Hanói.

75 © 2007 by Pearson Education Procedimentos Recursivos (5) Pilha em diversos pontos durante a execução da rotina do slide anterior.

76 © 2007 by Pearson Education Co-rotinas (1) Quando um procedimento é chamado, a sua execução sempre começa na primeira declaração do procedimento.

77 © 2007 by Pearson Education Co-rotinas (2) Quando uma co-rotina é reiniciada, sua execução começa na primeira declaração não executada na última chamada, e não no princípio.

78 © 2007 by Pearson Education Interrupções Exemplo de seqüência temporal de várias interrupções.

79 © 2007 by Pearson Education Torres de Hanói em linguagem de montagem do Pentium 4 (1) Torres de Hanói para Pentium 4.

80 © 2007 by Pearson Education Torres de Hanói para Pentium 4. Torres de Hanói em linguagem de montagem do Pentium 4 (2)

81 © 2007 by Pearson Education Torres de Hanói em linguagem de montagem do Pentium 4 (3) Torres de Hanói para Pentium 4.

82 © 2007 by Pearson Education Torres de Hanói em linguagem de montagem UltraSPARC III (1) Torres de Hanói para UltraSPARC III.

83 © 2007 by Pearson Education Torres de Hanói em linguagem de montagem UltraSPARC III (2) Torres de Hanói para UltraSPARC III.

84 © 2007 by Pearson Education Reduzindo Referencias à Memória Registradores do Itanium 2.

85 © 2007 by Pearson Education Escalonamento de Instruções O pacote IA-64 contém três instruções.

86 © 2007 by Pearson Education Reduzindo Desvios Condicionais: Predicação (1) (a) Declaração if. (b) Código genérico de montagem para (a). (c) Instrução condicional.

87 © 2007 by Pearson Education (a) Declaração if. (b) Código genérico de montagem para (a). (c) Execução condicional. Reduzindo Desvios Condicionais: Predicação (2)

88 © 2007 by Pearson Education Reduzindo Desvios Condicionais: Predicação (3) (a) Declaração if. (b) Código genérico de montagem para (a). (c) Execução predicada.


Carregar ppt "© 2007 by Pearson Education Nível de arquitetura do conjunto de instrução Capítulo 5."

Apresentações semelhantes


Anúncios Google