Aula 04 Instruções Aritméticas
-
Upload
joao-henrique-flores-franca -
Category
Documents
-
view
222 -
download
0
Transcript of Aula 04 Instruções Aritméticas
-
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