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

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

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

Apresentações semelhantes


Apresentação em tema: "Organização e Arquitetura de Computadores Capítulos 9 e 10 Conjunto de Instruções."— 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)

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

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

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

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

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

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

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

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

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

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

15 Decisões de projeto  Repertório das operações 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

16 Decisões de projeto  Registradores 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

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

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

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

21 Exemplos

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

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

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

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)

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

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

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

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

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 Endereço ACod.Op Instrução 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 Endereço A Cod.Op Instrução Memória Operando Ponteiro para 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 Endereço do Registrador R Cod.Op Instrução Banco de Registradores Operando

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

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

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 Registrador R Cod.Op Instrução Memória Operando Ponteiro para Operando Banco de Registradores Endereço A +

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 EA = A + R 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: escreve dados com a seguinte ordenação: [lo-bytes] [hi-bytes]  Big endian: escreve dados com a seguinte ordenação: [hi-bytes] [lo-bytes]

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

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

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çoInstr.Significado 0LDAAC recebe 1.o valor ADDSoma 2.o valor ao acumulador STAArmazena o valor na posição HLTFinaliza o programa 12812A 1294B 130R

62 Exercícios 1. Desenvolva um programa que some dois números e teste se o resultado é negativo 2. 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 3. 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 Capítulos 9 e 10 Conjunto de Instruções."

Apresentações semelhantes


Anúncios Google