aula 04 instruções aritméticas

Upload: joao-henrique-flores-franca

Post on 17-Feb-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Aula 04 Instrues Aritmticas

    1/39

    ARQUITETURA E ORGANIZAO DE COMPUTADORES

    INSTRUES ARITMTICASIgor Luiz Oliveira de Souza

  • 7/23/2019 Aula 04 Instrues Aritmticas

    2/39

    AGENDA 1. Organizao de um Computador

    Arquitetura de Von Neumann (rpida reviso)

    2. Arquitetura MIPS Componentes bsicos Conceito de programa armazenado Instrues bsicas

    Linguagem de Montagem (Assembly)Instrues aritmticas

    Programa adaptado da aula Sistemas Processadores e Perifricos

    Prof. Frank Sill Torres

    DELT Escola de Engenharia UFMG

  • 7/23/2019 Aula 04 Instrues Aritmticas

    3/39

    ORGANIZAO DE UM COMPUTADOR

    Arquitetura de Von Neumann

  • 7/23/2019 Aula 04 Instrues Aritmticas

    4/39

    ORGANIZAO DE UM COMPUTADOR

  • 7/23/2019 Aula 04 Instrues Aritmticas

    5/39

    ARQUITETURAMIPS

    MIPS (Microprocessor without Interlocking Pipeline Stages)

    Arquitetura tipo RISCVerses de 32 e 64 bits (ns usamos: 32 bits)

    Quase 100 milhes de processadores MIPS fabricados em 2009

    Usada pela NEC, Nintendo, Cisco, Silicon Graphics, Sony, impressorasHP e Fuji, etc.

  • 7/23/2019 Aula 04 Instrues Aritmticas

    6/39

    ARQUITETURAMIPS

    Componentes bsicos:BarramentoUnidade de controleBanco de registradoresUnidade lgica e aritmtica (ALU)Contador de programa (PC)

    Registrador de instrues (IR)Memria

  • 7/23/2019 Aula 04 Instrues Aritmticas

    7/39

    ARQUITETURAMIPS

  • 7/23/2019 Aula 04 Instrues Aritmticas

    8/39

    ARQUITETURAMIPSBarramento

    A interconexo dos componentes bsicos (exceto unidade decontrole) se d por meio do barramento (bus)

    Barramento um conjunto de condutores por meio dos quais os bitsso transmitidos

    Maior parte dos barramentos do MIPS tem 32 bits de largura

  • 7/23/2019 Aula 04 Instrues Aritmticas

    9/39

    ARQUITETURAMIPSUnidade de controle

    Implementado no nvel de hardware para buscar uma sequencia desinais de controle na memria (programa) e execut-las

    Envia sinais de controle para orientar os MUX sobre qual barramentode entrada deve ser selecionado para sada

    As trilhas de controle no esto mostradas no diagrama simplificado

  • 7/23/2019 Aula 04 Instrues Aritmticas

    10/39

    ARQUITETURAMIPS

    Banco de registradores

    A arquitetura MIPS possui um banco de 32 registradores

    Cada um deles comportam valores de 32 bits

    O nome de todos os registradores comea com o smbolo docifro: $

  • 7/23/2019 Aula 04 Instrues Aritmticas

    11/39

    ARQUITETURAMIPS

    Banco de registradores

    Adota-se uma conveno que especifica quais deles devem serutilizados em certas circunstncias

    Os registradores PC (contador de programas) e IR (registrador

    de instruo) no fazem parte do banco de registradores

  • 7/23/2019 Aula 04 Instrues Aritmticas

    12/39

    ARQUITETURAMIPS

    Banco de registradores

  • 7/23/2019 Aula 04 Instrues Aritmticas

    13/39

  • 7/23/2019 Aula 04 Instrues Aritmticas

    14/39

    ARQUITETURAMIPS

    Unidade lgica e aritmtica (ALU)

    Responsvel pela execuo (em binrio) das seguintes operaes:- Aritmticas- Lgicas (AND, OR, NOT, XOR)

    A operao a ser realizada depende do cdigo de operao buscadona memria principal

  • 7/23/2019 Aula 04 Instrues Aritmticas

    15/39

    ARQUITETURAMIPS

    Contador de programa (PC)

    um registrador que inicializado pelo sistema operacional com oendereo da primeira instruo do programa armazenado na memria

    Todas as instrues tm 32 bits de tamanho

    Aps uma instruo ser buscada na memria e armazenada no IR, o PC incrementado em quatro Bytes, de forma que o CPU ter o endereoda prxima instruo a ser executada

  • 7/23/2019 Aula 04 Instrues Aritmticas

    16/39

    ARQUITETURAMIPSMemria Pode ser vista como um grande arranjo de clulas:

    onde informaes so armazenadas(store)de onde informaes so buscadas(load)

    Tais operaes so realizadas sobre uma palavra por vez

    A arquitetura MIPS define palavras de 4 Bytes de tamanho

    A menor unidade de endereamento um Byte

  • 7/23/2019 Aula 04 Instrues Aritmticas

    17/39

    ARQUITETURAMIPS

    Registrador de instruo (IR)

    um registrador de 32 bits que possui uma cpia da mais recenteinstruo buscada na memria

    A depender do cdigo contido no IR, a unidade de controle determinar

    qual a operao a ser realizada

  • 7/23/2019 Aula 04 Instrues Aritmticas

    18/39

    ARQUITETURAMIPS

    Conceito de Programa Armazenado

    John Von Neumann em 1942 (tambm: Arquitetura-von-Neumann)

    Instrues so codificadas em bits

    add $17, $18, $19 00000010010100111000100000100000

    Programas so armazenados na memria Instrues so lidas e escritas da memria assim como os dadosque sero transformados (processados)

  • 7/23/2019 Aula 04 Instrues Aritmticas

    19/39

  • 7/23/2019 Aula 04 Instrues Aritmticas

    20/39

    ARQUITETURAMIPS

    Conceito de Programa Armazenado

    Ciclo de busca e execuo da instruo (simplificado) 1. Instrues so lidas da memria e carregadas no registrador RI

    2. Os bits da instruo guardada no registrador RI so decodificados e controlam

    as aes subsequentes

    3. A instruo executada e o endereo para a leitura da prxima instruo calculado

  • 7/23/2019 Aula 04 Instrues Aritmticas

    21/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly)

    Todas as instrues aritmticas e lgicas com trs operandos

    A ordem dos operandos fixa (destino primeiro)

    Sintaxe de instrues assembly:

    o1. Label: opcional, identifica bloco do programao2. Cdigo de operao: indicado por um Mnemnicoo3. Operandos: Registradores ou memriao4. Comentrios: opcional, tudo que vem depois do #

  • 7/23/2019 Aula 04 Instrues Aritmticas

    22/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Sabendo-se que:

    1) O cdigo de instruo de soma add;

    2) Somente uma operao feita por instruo;3) Cada instruo tem trs operandos: nesse caso 2 para serem

    somados e1 para guardar a soma;

    Como ficaria a sequencia de instrues para:a = b + c

  • 7/23/2019 Aula 04 Instrues Aritmticas

    23/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Sabendo-se que:

    1) O cdigo de instruo de soma add;2) Somente uma operao feita por instruo;3) Cada instruo tem trs operandos: nesse caso 2 para serem

    somados e1 para guardar a soma;

    Como ficaria a sequencia de instrues para:a = b + c + d + e

  • 7/23/2019 Aula 04 Instrues Aritmticas

    24/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Exigir que cada instruo tenha exatamente 3 operandos, est de acordo

    com a filosofia de manter o hardware simples:1) O hardware para um nmero varivel de operandos mais

    complicado do que o hardware para um nmero fixo;

    1Princpio de Projeto MIPS: A simplicidade favorece a regularidade

  • 7/23/2019 Aula 04 Instrues Aritmticas

    25/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Sabendo-se que:

    1) O cdigo de instruo da subtrao sub;

    2) Somente uma operao feita por instruo;

    3) Cada instruo tem trs operandos;

    Como ficaria a sequencia de instrues para:

    a = b + c

    d = a - e

  • 7/23/2019 Aula 04 Instrues Aritmticas

    26/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Sabendo-se que:

    1) O cdigo de instruo da subtrao sub;

    2) Somente uma operao feita por instruo;

    3) Cada instruo tem trs operandos;

    4) Necessidade de estruturas temporrias;

    Como ficaria a sequencia de instrues para:

    f = (g+h) (i+j)

  • 7/23/2019 Aula 04 Instrues Aritmticas

    27/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Operandos de hardware do computador:

    1) Os operandos das instrues so restritos e precisam ser de umgrupo limitado de locais especiais embutidos diretamente no hardware,chamados registradores.

    2) Cada um dos 3 operandos das instrues aritmticas do MIPSprecisa ser escolhido a partir dos 32 registradores de 32 bits.

  • 7/23/2019 Aula 04 Instrues Aritmticas

    28/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly)

    Motivo de serem 32 registradores:

    - Uma quantidade maior de registradores pode aumentar o ciclo doclock simplesmente porque ossinais eletrnicoslevam mais tempoquando precisam atravessar uma distncia maior.

    2Princpio de Projeto MIPS: menor significa mais rpido

  • 7/23/2019 Aula 04 Instrues Aritmticas

    29/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Operandos de hardware do computador:

    - Embora pudssemos simplesmente escrever instrues usandonmeros para os registradores, de 0 a 31, a conveno do MIPS usarnomescomumsinal de cifro seguido por doiscaracteres para representarumregistrador. Por conveno, teremos:

    - $s0, $s1..., $s7 - para registradores que correspondem s

    variveis dos programas em C, Java...- $t0,$t1,...,$t7 para registradores que possuem valores

    temporrios para compilar o programa nas instrues MIPS.

  • 7/23/2019 Aula 04 Instrues Aritmticas

    30/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Exemplo

    Some b com c e coloque o resultado em a

    Equivalente ao comando em linguagem C :

    Instruo de linguagem de montagem :

  • 7/23/2019 Aula 04 Instrues Aritmticas

    31/39

    ARQUITETURAMIPS Exemplo

  • 7/23/2019 Aula 04 Instrues Aritmticas

    32/39

    INSTRUES ARITMTICASExemplo

    f = (g+h) (i+j)

    As variveis f,g,h,i e j so associadas aos registradores $s0, $s1, $s2, $s3 e $s4,respectivamente. Qual o cdigo MIPS compilado?

  • 7/23/2019 Aula 04 Instrues Aritmticas

    33/39

    INSTRUES ARITMTICASInstrues imediatas:

    Constantes so usadas com frequncia em operaes;

    Nesses casos, incluir constantes em uma instruo agiliza as operaes, em vez decarregar asconstantesa partir da memria;

    Tais instrues so conhecidas como instrues imediatas.

    3Princpio de Projeto MIPS: Agilize os casos mais comunsAs instrues imediatas ilustram este princpio.

  • 7/23/2019 Aula 04 Instrues Aritmticas

    34/39

    INSTRUES ARITMTICASInstruo addi:

    addi = add immediate = operao usada para somar com uma constante

    Ex: a = b + 4;addi $s0, $s1,4 # $s0 $s1 + 4

  • 7/23/2019 Aula 04 Instrues Aritmticas

    35/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly)

    Pseudo-Instrues:

    Instrues que no existem para o processador MIPS. Elas so chamadaspseudo-instrues e podem ser utilizadas pelo programador porque sotraduzidas pelo montador para uma sequencia de instrues MIPSexistentes. So algumas delas:

    li load imediate (carregador imediato)

    Ex: li $t0,4 # $t0 4

  • 7/23/2019 Aula 04 Instrues Aritmticas

    36/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Pseudo-Instrues:

    mult Multiplicao

    Ex: mult $s0, $s1, $s2 # $s0 $s1 X $s2

    div Diviso

    Ex: div $s0, $s1, $s2 # $s0 $s1 / $s2

  • 7/23/2019 Aula 04 Instrues Aritmticas

    37/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Exerccios:

    Escreva um cdigo de instrues do MIPS que forem necessrios para assituaes abaixo: 2 X 5;

    1 Passo: Carregar os nmeros nos registradoresli $t0,2 # $t0 2

    li $t1,5 # $t1 5

    2 Passo: Operao de multiplicaomult $t2, $t0,$t1 # $t2 $t0 x $t1

  • 7/23/2019 Aula 04 Instrues Aritmticas

    38/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Exerccios:

    Escreva um cdigo de instrues do MIPS que forem necessrios para assituaes abaixo: 8 + 3 - 7;

    1 Passo: Carregar os nmeros nos registradoresli $t0,8 # $t0 8

    li $t1,3 # $t1 3li $t2,7 # $t2 7

  • 7/23/2019 Aula 04 Instrues Aritmticas

    39/39

    ARQUITETURAMIPSLinguagem de Montagem (Assembly) Instrues aritmticas

    Exerccios:

    Escreva um cdigo de instrues do MIPS que forem necessrios para assituaes abaixo: 8 + 3 - 7;

    2 Passo: Operao de adioadd $t3, $t0,$t1 # $t3 $t0 + $t1

    3 Passo: Operao de subtraosub $t4, $t3,$t2 # $t4 $t3 - $t2