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

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

Organização e Arquitetura de Computadores

Apresentações semelhantes


Apresentação em tema: "Organização e Arquitetura de Computadores"— Transcrição da apresentação:

1 Organização e Arquitetura de Computadores
Capítulos 9 e 10 Conjunto de Instruções

2 O que é um conjunto de instruções?
Coleção completa das instruções que são entendidas por uma CPU Código de máquina Binário Representada por códigos em assembly (linguagem de montagem) 2

3 Elementos de uma instrução
Código de operação (Cod.Op ou Opcode) Especifica a operação a ser efetuada Ex. ADD Referência a operando fonte Operandos para a operação Dados de entrada Referência a operando de resultado Resultado da operação Referência à próxima instrução Indica onde a CPU deve buscar a próxima instrução Normalmente a próxima instrução Excessões: jumps 3

4 Localização dos Operandos
Memória principal (ou virtual ou cache) Registradores da CPU Dispositivos de I/O 4

5 Ciclo de instruções

6 Representação de Instruções
Cada instrução é representada por um único padrão de bits Para a compreensão humana, uma representação simbólica é usada: mnemônicos e.x. ADD, SUB, LOAD Operandos também podem ser representados dessa maneira ADD A,B 5

7 Quantos endereços utilizar???
Número de endereços Instruções podem ser analisadas de acordo com o número de endereços de operandos Operações aritméticas podem demandar um maior número de operandos Considere a operação: Y=(A-B)/(C*D*E) Quantos endereços utilizar??? 7

8 3, 2 ou 1 endereços?

9 Número de endereços 3 endereços Operando 1, Operando 2, Resultado
a = b + c; Pouco utilizadas Necessita de palavras grandes para armazenar todos os parâmetros da instrução 7

10 Número de endereços 2 endereços
Um endereço funciona duplamente como operando e resultado a = a + b Reduz o comprimento da instrução Necessita de algum trabalho extra Armazenamento temporário de alguns resultados 8

11 Número de endereços 1 endereço Segundo endereço é implícito
Normalmente é um registrador (ex: acumulador) Comum nas máquinas mais simples 9

12 Número de endereços 0 (zero) endereços
Todos os endereços são implícitos Usa uma pilha e.g. push a push b add pop c c = a + b 10

13 Vantagens/Desvantagens
Mais endereços Instruções mais complexas Mais registradores Operações entre registradores são mais rápidas Menos instruções por programa Menos endereços CPU mais simples Instruções menos complexas Mais instruções por programa Busca/execução mais rápidas 11

14 Decisões de projeto Algumas decisões de projeto devem ser levadas em conta Efeito significativo sobre a implementação da CPU Complexidade Custos Necessidades do programador 12

15 Decisões de projeto Repertório das operações Tipos de dados
Quantas operações? O que elas podem fazer? Quão complexas são? Tipos de dados Formato das instruções Comprimento do código de operação (quantos bits) Número de endereços 12

16 Decisões de projeto Registradores Modos de endereçamento
Número de registradores disponíveis na CPU Quais operações podem ser feitas em quais registradores? Gerais ou específicos Modos de endereçamento RISC versus CISC 13

17 Trabalho 3 Pesquisa Arquiteturas RISC x Arquiteturas CISC Tópicos:
Características dos dois grupos de arquiteturas Vantagens e Desvantagens Exemplos de arquiteturas (número de registradores, instruções, desempenho) Dupla Páginas: entre 4 e 6 páginas (formato artigo) Entrega: último dia de aula de OAC (2006) Consultar no mínimo 4 referências (citá-las no texto)

18 Tipos de operando Endereços (detalhes Cap. 10) Números Caracteres
Inteiros Ponto Flutuante Decimais (BCD: binary coded decimal) 4 bits para cada dígito decimal Caracteres ASCII EBCDIC Lógicos Bits or flags Cap. 8 8 bits por caracter 14

19 Tipos de operação Quantidade de instruções varia de acordo com a máquina Mas a classe de instruções é basicamente a mesma: Transferência de dados Aritmética Lógica Conversão E/S Controle Transferência de controle 18

20 Transferência de dados
Especificar Fonte Destino Quantidade de dados Em alguns casos diferentes instruções para diferentes movimentos e.x. IBM 370 19

21 Exemplos

22 Aritmética Adição, subtração, multiplicação e divisão Exemplo
Inteiros com sinais Floating point Exemplo 20

23 Lógica Operações aplicadas a bits AND, OR, NOT Exemplo 21

24 Conversão E.x. Binário para decimal 22

25 Input/Output Instruções específicas
Pode ser executadas instruções de movimentação de dados Pode ser executado por uma controladora separada (DMA) 23

26 Controle Instruções privilegiadas
CPU deve estar em um estado específico Para uso do sistema operacional 24

27 Transferência de controle
3 motivos Decisão Repetição Modularidade Tipos de intruções: Desvio/Saltos (jumps) Chamadas de procedimento 25

28 Instruções de Desvio/Salto
Comumente instruções são executadas em seqüência Pode haver a necessidade de desviar (pular) uma instrução (ou algumas) Intruções: Desvio feito se alguma condição é satisfeita (desvio condicional) Desvio incondicional 25

29 Chamadas de procedimento
Desenvolvimento em módulos Procedimentos Vantagens: Modularidade Economia de código 25

30

31 Retorno de procedimentos
3 possibilidades Registrador Área de memória Pilha (também usada para passagem de parâmetros) Registro de ativação

32 Modos de Endereçamento
Imediato Direto Indireto Registrador Indireto a Registrador Indexado (Displacement) Pilha (Stack)

33 Endereçamento Imediato (cap 10)
Operando é parte da instrução Operando = campo do endereço e.x. ADD 5 Soma 5 ao conteúdo do acumulador 5 é o operando Nenhuma referência à memória para buscar dados Rápido

34 Endereçamento Direto Campo de endereços contém o endereço do operando
Endereço efetivo (EA) = campo de endereço efetivo(A) e.x. ADD A Adiciona o conteúdo de uma célula A ao acumulador Olha na memória o no endereço A para um operando Referencia uma memória única para acessar os dados Não apresenta cálculos adicionais para trabalhar com o endereço efetivo Espaço de endereçamento limitado

35 Endereçamento Direto Instrução Cod.Op Endereço A Memória Operando

36 Endereço Indireto Células de memória apontadas por um campo do endereço que contém o endereço (ponteiro) do operando EA = (A) Olhe em A, encontre o endereço(A) e procure lá pelo operando e.x. ADD (A) Soma o conteúdo da célula apontada ao conteúdo de A ao acumulador

37 Endereço Indireto Instrução Cod.Op Endereço A Memória Operando
Ponteiro para operando Operando

38 Endereçamento a registrador
Operando émantido num registrador definido no campo de endereço EA = R Número limitado de registradores Campo de endereços necessário é pequeno Instruções menores (tamanho menor) Busca da instrução mais rápida Nenhum acessoà memória Execução muito rápida Espaço de endereçamento limitado

39 Endereçamento a registrador
Instrução Banco de Registradores Cod.Op Endereço do Registrador R Operando

40 Endereçamento Indireto a Registrador
EA = (R) O operando está na memória apontado pelo conteúdo de um registrador R Maior espaço de endereçamento (2n) Um acesso a menos na memória do que o modo de endereçamento indireto (puro)

41 Endereçamento Indireto a Registrador
Instrução Cod.Op Registrador de Endereços R Memória Banco de Registradores Ponteiro para operando Operando

42 Endereçamento a Deslocamento
EA = A + (R) Campo de endereços armazena dois valores A = valor base R = registrador que armazena o deslocamento ou vice versa

43 Endereçamento a Deslocamento
Instrução Cod.Op Registrador R Endereço A Memória Banco de Registradores + Ponteiro para Operando Operando

44 Endereçamento Relativo
Uma versão de endereçamento a deslocamento R = contador de instruções (PC) EA = A + (PC) i.e. pega o operando da célula A da posição corrente apontada pelo PC Vantagens: princípio da localidade e uso do cache

45 Endereçamento base-registrador
A armazena o deslocamento R armazena um ponteiro para o endereço base R pode ser explícito ou implícito e.x. registradores de segmento do 80x86

46 Endereçamento Indexado
A = base R = deslocamento EA = A + R Bom para fazer acessos a arrays R++

47 Endereçamento à pilha Operando está implicitamente no topo de uma pilha

48 Comparativo

49 Tamanho da instrução (cap. 10)
Afetado por e afeta: Tamanho da memória Organização da memória Estrutura do barramento Complexidade da CPU Velocidade da CPU Compromisso entre um repertório variado de instruções e a economia de espaço Memórias são baratas

50 Alocação de bits Número de modos de endereçamento Número de operandos
Registradores versus memória Número de conjuntos de registradores Faixa de endereçamento Granularidade do endereçamento

51 Novos conjuntos de intruções
MMX SSE e SSE2 3DNOW! Características Multimídia Operações sobre múltiplos dados (vetorial) Registradores maiores (SSE)

52 Linguagem de Montagem CPU: linguagem de máquina
Simplificar a escrita de programas

53

54 Ordenação de Bytes Little endian: Big endian:
escreve dados com a seguinte ordenação: [lo-bytes] [hi-bytes] Big endian: [hi-bytes] [lo-bytes] 28

55 Exemplo Endereço de memória: byte Palavra: 16 bits (2 bytes)
Uma palavra: será armazenada da seguinte forma: - Little endian: 1600: 1599: - Big endian 1600: 1599:

56 Exemplos Pentium (80x86), VAX: little-endian
IBM 370, Motorola 680x0 (Mac), e a maioria dos RISC: big-endian 30

57 Atividade Prática: Neander

58 Arquitetura Largura de dados e endereços de 8 bits
Dados representados em complemento de dois 1 acumulador de 8 bits (AC) 1 apontador de programa de 8 bits (PC) 1 registrador de estado com 2 códigos de condição: negativo (N) e zero (Z)

59 Instruções Código Instrução Comentário 0000 NOP nenhuma operação
0001 STA end armazena acumulador - (store) 0010 LDA end carrega acumulador - (load) 0011 ADD end soma 0100 OR end “ou” lógico 0101 AND end “e” lógico 0110 NOT inverte (complementa) acumulador 1000 JMP end desvio incondicional - (jump) 1001 JN end desvio condicional - (jump on negative) 1010 JZ end desvio condicional - (jump on zero) 1111 HLT término de execução - (halt)

60 Programando... Soma de dois valores
As variáveis e o resultado estão dispostos segundo o mapa de memória abaixo: posição: 128: variável A posição: 129: variável B posição: 130: resultado R

61 Resolução – R=A+B Endereço Instr. Significado
0 LDA AC recebe 1.o valor 2 ADD Soma 2.o valor ao acumulador 4 STA Armazena o valor na posição 130 6 HLT Finaliza o programa A B R

62 Exercícios Desenvolva um programa que some dois números e teste se o resultado é negativo Desenvolva um programa que some dois números (nas posições 128 e 129), armazene o resultado em (130) e armazene o valor 1 em (131) se não houver overflow, 255 caso contrário Desenvolva um programa para ordenar 3 números armazenados inicialmente nas posições 128, 129 e 130 Entregar: Fluxograma de execução Código (.mem)


Carregar ppt "Organização e Arquitetura de Computadores"

Apresentações semelhantes


Anúncios Google