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

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

Apr 17, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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.