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

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

Embed Size (px)

Citation preview

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

© 2007 by Pearson Education

Nível de arquitetura do conjunto de instrução

CapítuloCapítulo

55

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

© 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

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

© 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

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

© 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

Page 5: © 2007 by Pearson Education Nível de arquitetura do conjunto de instrução Capítulo 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

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

© 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

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

© 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

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

© 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

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

© 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

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

© 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

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

© 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

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

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

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

© 2007 by Pearson Education

Visão geral do nível ISA do Pentium 4

Registradores primáriosdo Pentium 4.

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

© 2007 by Pearson Education

Visão geral do nível ISAda UltraSPARC III (1)

Registradores gerais da UltraSPARC III.

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

© 2007 by Pearson Education

Operação das janelas de registrador da UltraSPARC III.

Visão geral do nível ISAda UltraSPARC III (2)

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

© 2007 by Pearson Education

Visão geral do nível ISA do 8051

(a) Organização de memória em chip para o 8051. (b) Principais registradores do 8051.

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

© 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

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

© 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

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

© 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., e-mail, 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

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

© 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

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

© 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

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

© 2007 by Pearson Education

Tipos de dados do 8051

Tipos de dados numéricos do 8051. Os tipos suportadosestã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

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

© 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)

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

© 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

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

© 2007 by Pearson Education

Formatos de Instruções (2)

Algumas relações possíveis entre comprimentode 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

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

© 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

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

© 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

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

© 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

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

© 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

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

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

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

© 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

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

© 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

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

© 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

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

© 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

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

© 2007 by Pearson Education

Formatos de instrução do 8051

Formatos de instrução do 8051.

• Possui 6 formatos de instruções simples • As instruções são de 1, 2 ou 3 bytes

1 byte

2 bytes

3 bytes

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

© 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

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

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

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

© 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

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

© 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

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

© 2007 by Pearson Education

Endereçamento

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

© 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

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

© 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

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

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

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

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

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

© 2007 by Pearson Education

Endereçamento Indexado (1)

Programa genérico em linguagem de montagem para calcular

a operação OR de Ai AND Bi para dois vetores de 1024 elementos.

• Tem-se dois vetores unidimensionais de 1.024 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 1.024 produtos booleanos para ver se há ao menos um par não zero no conjunto.

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

© 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 124300

A[1] no endereço 124300

A[2] no endereço 124300

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

© 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)

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

© 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

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

© 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

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

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

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

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

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

© 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

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

© 2007 by Pearson Education

Avaliação de fórmulas emnotação polonesa invertida

Utilização de uma pilha para avaliar uma fórmulaem notação polonesa invertida.

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

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

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

© 2007 by Pearson Education

Projeto simples para os formatos de instruçãode uma máquina de três endereços.

Ortogonalidade de Opcodes e modos de endereçamento (2)

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

© 2007 by Pearson Education

Modos de endereçamentodo Pentium 4 (1)

Modos de endereçamento de 32 bits do Pentium 4.

M[x] é a palavra de memória em x.

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

© 2007 by Pearson Education

Acesso a a[i].

Modos de endereçamentodo Pentium 4 (2)

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

© 2007 by Pearson Education

Discussão dos modosde endereçamento

Comparação entre os modos de endereçamento.

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

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

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

© 2007 by Pearson Education

Entrada/Saída (1)

Registradores de dispositivo para um terminal simples.

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

© 2007 by Pearson Education

Entrada/Saída (2)

Exemplo de E/S programada.

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

© 2007 by Pearson Education

Entrada/Saída (3)

Sistema com controlador de DMA.

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

© 2007 by Pearson Education

Instruções do Pentium 4 (1)

Uma seleção de instruções

de inteiros do Pentium 4.

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

© 2007 by Pearson Education

Instruções da UltraSPARC III (1)

Instruções de inteiros da

UltraSPARC III primária.

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

© 2007 by Pearson Education

Instruções do 8051 (1)

Conjunto de instruções do 8051.

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

© 2007 by Pearson Education

Instruções do 8051 (2)

Conjunto de instruções do 8051.

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

© 2007 by Pearson Education

Conjunto de instruções do 8051.

Instruções do 8051 (3)

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

© 2007 by Pearson Education

Conjunto de instruções do 8051.

Instruções do 8051 (4)

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

© 2007 by Pearson Education

Conjunto de instruções do 8051.

Instruções do 8051 (5)

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

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

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

© 2007 by Pearson Education

Procedimentos Recursivos (1)

Configuração inicial para o problema Torres de Hanói para cinco discos.

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

© 2007 by Pearson Education

Procedimentos recursivos (2)

Etapas requeridas para resolver o problema Torres de Hanói para três discos.

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

© 2007 by Pearson Education

Procedimentos Recursivos (3)

Etapas requeridas para resolver o problema Torres de Hanói para três discos.

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

© 2007 by Pearson Education

Procedimentos Recursivos (4)

Procedimento para resolver o problema Torres de Hanói.

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

© 2007 by Pearson Education

Procedimentos Recursivos (5)

Pilha em diversos pontos durante a execução da rotina do slide anterior.

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

© 2007 by Pearson Education

Co-rotinas (1)

Quando um procedimento é chamado, a sua execução sempre começa na primeira declaração do procedimento.

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

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

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

© 2007 by Pearson Education

Interrupções

Exemplo de seqüência temporal de várias interrupções.

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

© 2007 by Pearson Education

Torres de Hanói em linguagem de montagem do Pentium 4 (1)

Torres de Hanói para Pentium 4.

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

© 2007 by Pearson Education

Torres de Hanói para Pentium 4.

Torres de Hanói em linguagem de montagem do Pentium 4 (2)

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

© 2007 by Pearson Education

Torres de Hanói em linguagem de montagem do Pentium 4 (3)

Torres de Hanói para Pentium 4.

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

© 2007 by Pearson Education

Torres de Hanói em linguagem de montagem UltraSPARC III (1)

Torres de Hanói para UltraSPARC III.

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

© 2007 by Pearson Education

Torres de Hanói em linguagem de montagem UltraSPARC III (2)

Torres de Hanói para UltraSPARC III.

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

© 2007 by Pearson Education

Reduzindo Referencias à Memória

Registradores do Itanium 2.

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

© 2007 by Pearson Education

Escalonamento de Instruções

O pacote IA-64 contém três instruções.

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

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

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

© 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)

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

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