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

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

Arquitetura de computadores

Apresentações semelhantes


Apresentação em tema: "Arquitetura de computadores"— Transcrição da apresentação:

1 Arquitetura de computadores
Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas IFSP – Campus Capivari

2 Conjunto de instruções
22/05/2013

3 Características e funções
Conjunto de instruções Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Características e funções

4 Tópicos abordados Objetivos; Características de instruções de máquina.
Tipos de operandos; Tipos de dados; Tipos de operações; Linguagem de montagem. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

5 Objetivos O conjunto de instruções da máquina é o limite entre o projetista e o programador para visualização da mesma máquina: Para o projetista, implementar uma CPU significa por em prática o conjunto de instruções daquela CPU em projeto; Para o programador de linguagem de montagem (ASSEMBLY) significa conhecer os registradores, estrutura de memória, tipos de dados e o funcionamento da ULA; Para tentar aproximar essas duas formas de visualizar o problema, abordaremos o conjunto de instruções para poder chegarmos no funcionamento da CPU. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

6 Características de instruções de máquina
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Características de instruções de máquina

7 Características de instruções de máquinas
O funcionamento da CPU depende das instruções que ela pode executar; Essas instruções são chamadas de instruções de máquina ou instruções do computador; A variedade de instruções que a CPU pode operar é conhecido como conjunto de instruções da CPU; Podemos ter dois tipos de CPU de acordo com o conjunto de instruções : Processadores CISC; Processadores RISC; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

8 Elementos de instruções de máquina
As instruções devem ter as informações necessárias para a CPU operar; Geralmente as instruções são formadas por: Código de operação: Determina o que deve ser feito pela CPU. Operando fonte: Dados de entrada; Operandos de destino: Dados de saída; Endereço da próxima instrução: Indica onde a CPU deve buscar a próxima instrução; Normalmente incrementada automaticamente pelo PC, mas pode ser indicada caso haja um desvio. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Operandos FONTE e DESTINO podem estar em registradores, na memória principal ou na memória virtual, bem como em um dispositivo de I/O

9 Representação das instruções
Instruções são uma sequência de bits divididos em campos referentes aos elementos da instrução; Na maioria do conjunto de instruções temos vários formatos para elas, de acordo com sua funcionalidade; Adição – ADD; Subtração – SUB; Multiplicação – MPY; ... Durante a execução, uma instrução é lida no IR; A CPU deve extrair o conteúdo dos seus vários campos para decodificá-la. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

10 Representação das instruções
Instrução de 16 bits hipotética código da operação Endereço Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

11 Tipos de instruções Vamos considerar um trecho de código em Java:
public class somando{   public static void main(String args[]){        Integer x, y; x = x + y;      }   } O comando soma acima faz com que o valor contido em Y seja adicionado ao valor contido em X e armazenado em X novamente; Como podemos representar essa soma em linguagem de máquina? Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

12 Tipos de instruções Primeiramente vamos supor que o compilador atribuiu dois endereços de memória para as duas variáveis: X = 513; Y = 514. Considerando um conjunto simples de instruções de máquina, esse comando (x = x + y) pode ser efetuado em três instruções: Carrega um registrador com o conteúdo de 513; Adiciona o conteúdo do registrador ao conteúdo de 514; Armazena o conteúdo do registrador em 513. Assim, uma única instrução de alto nível implica em três de baixo nível; Qualquer programa de alto nível deve ser traduzido em linguagem de máquina para ser executado. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

13 Tipos de instruções Podemos então determinar os tipos de instruções de máquina como: Processamento de dados: Instruções aritméticas ou lógicas. Armazenamento de dados: Instruções de memória. Movimentação de dados: Instruções de I/O. Controle: Instruções de teste e desvio. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

14 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Tipos de operandos

15 Tipos de operandos Os tipos de dados mais importantes são: Endereços;
Números; Caracteres e ; Dados lógicos. Os endereços são colocados nessa categoria, pois geralmente para determiná-los, cálculos são efetuados; Endereços serão discutidos em aula futura. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

16 Tipos de operandos - Números
Números são muito utilizados e possui limitação em dois sentidos: Limite para a magnitude; Limite para a precisão em caso de ponto flutuante. Geralmente podemos ter três tipos de números: Inteiro; Ponto flutuante e; Decimal. Decimal são empacotados em grupos de 4 bits (BCD). 0 = 0000, 1 = 0001, ..., 8 = 1000, 9 = 1001 Exemplo: 0255 em binário = 0255 em BCD = Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 BCD = Binary coded decimal Decimal é usado para evitar o custo de conversão.

17 Tipos de operandos - Caractere
Texto é uma sequencia de caracteres; Um caractere é uma sequência de bits para representar um número, um símbolo ou uma letra. Existem diversos códigos para representar caracteres em bits; O código mais conhecido é o ASCII (American Standard Code for Information Interchange); 7 bits para representar um caractere – 128 caracteres diferentes. Um bit extra para paridade; Outro código é o ISO 8859 (International Organization for Standardization) 8 bits para representar um caractere – 255 caracteres Outro é o UNICODE, que pode chegar a 17 mil caracteres. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

18 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Tipos de operações

19 Tipos de operações O número de códigos de operação distintos varia muito de máquina para máquina, mas algumas são comuns a todas: Operações de transferência de dados; Operações aritméticas; Operações lógicas; Operações de conversão; Operações de E/S; Operações de controle de sistema; Operações de transferência de controle; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

20 Operações de transferência de dados
É o tipo mais importante de instrução de máquina devendo especificar várias informações como: Endereços dos operandos fonte e de destino; O tamanho dos dados a serem transferidos; O modo de endereçamento de cada operando; As operações de transferência de dados são o tipo mais simples de operação, em termos da ação tomada pela CPU; Se o operando fonte e de destino são registradores, a CPU simplesmente transfere dados de um registrador para outro, uma operação interna da CPU; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

21 Operações de transferência de dados
Se um ou ambos os operandos estão na memória, a CPU tem de efetuar algumas ou todas as ações a seguir: Calcule o endereço de memória; Se o endereço se refere à memória virtual, traduza esse endereço para um endereço de memória real; Determine se o item endereçado está na memória cache; Se não estiver, emita um comando para o módulo de memória; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

22 Operações aritméticas
A maioria das máquinas fornece operações aritméticas básicas para soma, subtração, multiplicação e divisão; Essas operações são oferecidas, invariavelmente, para números inteiros; Muitas vezes, elas são também oferecidas para números na representação decimal e números de ponto flutuante; Outras possíveis operações por exemplo são: Tomar o valor absoluto do operando; Negar o operando; Incrementar o operando de 1; Decrementar o operando de 1. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

23 Operações lógicas A maioria das máquinas fornece também uma variedade de operações para manipular bits individuais ou de uma palavra; Essas operações são baseadas em operações booleanas podendo ser NOT, AND, OR, XOR e EQUAL: NOT (NÃO) inverte um bit. AND (E), OR (OU) e XOR (ou-exclusivo) são as funções lógicas mais comuns com dois operandos; A operação EQUAL é um teste de igualdade binária, bastante útil. Outra operações lógicas são o deslocamento lógico, deslocamento aritmético e a rotação; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

24 Operações de conversão
Mudam ou operam sobre o formato de dados; Um exemplo simples é a conversão de um número decimal para binário; Outro exemplo é a conversão de código ASCII em EBCDIC. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

25 Operações de I/O As instruções de entrada / saída (I/O) foram discutidas na aula de I/O; Como vimos, existe uma variedade de abordagens, incluindo E/S programada, E/S mapeada na memória, DMA e uso de processadores de E/S. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

26 Operações de controle de sistema
Instruções de controle tipicamente são reservadas para uso pelo sistema operacional; Exemplos podem ser: Uma instrução de controle de sistema pode servir para ler ou modificar o conteúdo de um registrador de controle; Outro exemplo, ainda, seria o acesso a blocos de controle de processo, em um sistema de multiprogramação. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

27 Operações de transferência de controle
Têm como função alterar a sequência de execução de instruções; Nessas instruções, a CPU atualiza o contador de programa com o endereço de alguma outra instrução armazenada na memória; As operações de transferência de controle encontradas mais comumente em um conjunto de instruções são: As operações de desvio; Salto e ; Chamada de procedimento. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

28 Instrução de desvio Uma instrução de desvio tem como um de seus operandos o endereço da próxima instrução a ser executada; Com frequência, essa instrução é um desvio condicional, isto é, o desvio será feito apenas se uma dada condição for satisfeita; Um desvio pode ser aleatório em relação ao endereçamento de memória, ou seja, tanto para a frente como para trás; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

29 Instrução de salto Tipicamente, um salto indica que a execução de uma instrução da sequência de instruções deve ser omitida; O endereço da próxima instrução a ser executada é obtido somando o endereço da instrução corrente com um valor para chegar a próxima instrução; Não ocorre informando o endereço da próxima instrução, mas sim calculando um novo valor para PC; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

30 Instruções de chamada de procedimento
Um procedimento é um subprograma que é incorporado em um programa maior; Existem por questões de economia, modularidade e reutilização de código; Pode ser invocado, ou chamado, em qualquer ponto do programa; Uma chamada a um procedimento instrui o processador a executar todo o procedimento e, então, retornar ao ponto em que ocorreu a chamada; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

31 Instruções de chamada de procedimento
O mecanismo de controle de procedimentos envolve duas instruções básicas: Chamada de procedimento: Desvia a execução do programa para o procedimento; Retorno da execução: Retorna no ponto onde foi invocado o procedimento; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

32 Instruções de chamada de procedimento
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

33 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Linguagem de montagem

34 Linguagem de montagem Programadores desenvolvem em linguagens de alto nível, como, Java, C, .NET, etc. Computadores interpretam apenas código binário, devendo o código de alto nível ser convertido em linguagem de máquina; Se desejássemos programar diretamente em linguagem de máquina seria muito trabalhoso e propenso a erros: Um exemplo simples: N = I + J + K Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

35 Linguagem de montagem Programadores desenvolvem em linguagens de alto nível, como, Java, C, .NET, etc. Computadores interpretam apenas código binário, devendo o código de alto nível ser convertido em linguagem de máquina; Se desejássemos programar diretamente em linguagem de máquina seria muito trabalhoso e propenso a erros: Um exemplo simples: N = I + J + K Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

36 Linguagem de montagem N = I + J + K Quantas instruções de máquina devem ser executadas? 1 – Carrega I para AC; 2 – Adiciona I em J e guarda em AC; 3 – Adiciona AC em K e guarda em AC; 4 – Grava AC na memória; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

37 Linguagem de montagem Em binário seria: I J K N Carrega Adiciona
Grava Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 I 201 em binário – 201 em BCD – J K N

38 Linguagem de montagem Como desenvolver dessa forma seria praticamente impossível atualmente, podemos ir subindo o nível em programação; Uma primeira melhoria seria utilizar hexadecimal, ficando assim: Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

39 Linguagem de montagem Um terceiro nível é a linguagem simbólica;
Utiliza símbolos para representar as operações; Aumenta a complexidade pois necessita de um programa para traduzir os símbolos em binário; Ainda assim a programação é complicada; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 DAT é um pseudocódigo inventado pelo autor para representar um dado na memória A complicação está nos endereços absolutos 201, 02, 203, 204 das 4 primeiras linhas.

40 Linguagem de montagem Um quarto nível seria um programa simbólico mas sem uso de endereços absolutos, e sim com símbolos para representá-los; Essa linguagem é chamada de Assembly e o programa é Montado por um montador (assembler) para se tornar código binário; Representa um grande marco evolução das linguagens de programação; Permitiu o surgimento de linguagens de alto nível. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

41 Linguagem de montagem Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Rótulos de instruções são implícitas, pois geralmente são incrementadas pelo PC Rótulo de dados substituem endereços absolutos.

42 Linguagem de montagem Exemplo de programa em Assembly:
1 Copiar para o acumulador o conteúdo da posição de memória com o endereço 64; 2 Adicionar ao acumulador o conteúdo da posição de memória com o endereço 65 (ficando o resultado no acumulador); 3 Copiar para a posição de memória com o endereço 66 o valor que ficou no acumulador. Em linguagem Assembly consta de três instruções e ocupa seis bytes. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

43 Linguagem de montagem Exemplo de programa em Assembly:
código máquina em hexadecimal E5 40 25 41 F5 42 Linguagem Assembly: MOV A,64 ADD A,65 MOV 66,A Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

44 Linguagem de montagem Mais um exemplo de programa em Assembly:
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013


Carregar ppt "Arquitetura de computadores"

Apresentações semelhantes


Anúncios Google