Sunteți pe pagina 1din 23

Universidade Federal de Pelotas

Instituto de Fsica e Matemtica


Departamento de Informtica
Bacharelado em Cincia da Computao

Arquitetura e Organizao
de Computadores II
Aula 1
Arquitetura do Processador MIPS: caractersticas
gerais, registradores, formatos de instruo, modos
de endereamento
Prof. Jos Lus Gntzel
guntzel@ufpel.edu.br
www.ufpel.edu.br/~guntzel/AOC2/AOC2.html

Arquitetura do MIPS
Registradores
32 registradores de propsito geral de 32 bits
$0, $1, , $31
operaes inteiras
endereamento
$0 tem sempre valor 0
$31 guarda endereo de retorno de sub-rotina

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.2

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Tipos de Dados
dados inteiros disponveis em instrues load e store
bytes
meias-palavras de 16 bits
palavras de 32 bits
dados inteiros disponveis em instrues aritmticas e lgicas
meias-palavras de 16 bits (estendidos para 32 bits)
palavras de 32 bits

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.3

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Modos de Endereamento
acessos memria devem ser alinhados
dados de 32 bits precisam iniciar em endereos mltiplos de 4
dados de 16 bits precisam estar em endereos mltiplos de 2
modo registrador
para instrues aritmticas e lgicas: dado est em registrador
para instrues de desvio incondicional: endereo est em
registrador

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.4

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Modos de Endereamento
modo base e deslocamento
para instrues load e store
base registrador inteiro de 32 bits
deslocamento de 16 bits contido na prpria instruo
modo relativo ao PC
para instrues de branch condicional
endereo a soma do PC com deslocamento contido na
instruo
deslocamento dado em palavras e precisa ser multiplicado
por 4

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.5

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Modos de Endereamento
modo imediato
para instrues aritmticas e lgicas
dado imediato de 16 bits contido na prpria instruo
dado estendido para 32 bits
extenso com sinal nas instrues aritmticas
extenso sem sinal nas instrues lgicas
para que se possa especificar constantes de 32 bits
instruo lui (load upper immediate)
carrega 16 bits imediatos na parte superior do registrador
parte inferior do registrador zerada
instruo seguinte precisa fazer soma imediata do registrador
com 16 bits da parte inferior
ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.6

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Modos de Endereamento
modo absoluto
para instrues de desvio incondicional
instruo tem campo com endereo de palavra com 26 bits
endereo de byte obtido com dois bits menos significativos
iguais a 0
4 bits mais significativos obtidos do PC
s permite desvios dentro de uma rea de 256 Mbytes
PC

00
4 bits
ComputaoUFPel
Arquitetura e Organizao de Computadores II

26 bits
slide 1.7

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues Principais
Instrues de referncia memria (tipo I):
Load word ( lw ) e store word ( sw )
Instrues aritmticas e lgicas (tipo R):
( add, sub, and, or, slt )
Instrues de salto:
Branch on equal ( beq ) e jump ( j )

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.8

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues Principais
tipo

Instruo

Aritmtica

Add immediate

addi $s1, $s2, 100

$s1 = $s2 + 100

Aritmtica

Add

add $s1, $s2, $s3

$s1 = $s2 + $s3

Aritmtica

Subtract

sub $s1, $s2, $s3

$s1 = $s2 - $s3

Aritmtica

OR

or $s1, $s2, $s3

$s1 = $s2 OR $s3

Aritmtica

AND

and $s1, $s2, $s3

$s1 = $s2 AND $s3

Transf. de dados

Load word

lw $s1, 100($s2)

$s1 = Mem[$s2+100]

Transf. de dados

Store word

sw $s1, 100($s2)

Mem[$s2+100] = $s1

Transf. de dados

Load Upper Immediate

lui $s1, 100

$s1 = 100 * 2

Desvio cond.

Branch on equal

beq $s1, $s2, L

if($s1 == $s2) go to L

Desvio cond.

Branch on not equal

bne $s1, $s2, L

if($s1 != $s2) go to L

Desvio cond.

Set on less than

slt $s1, $s2, $s3

if($s2 < $s3) $s=1; else $s1=0

Desvio cond.

Set less than immediate

slti $s1, $s2, 100

if($s2 < 100) $s=1; else $s1=0

Desvio incond.

Jump

j 2500

Desvia para 10000

Desvio incond.

Jump register

jr s$1

Desvia para $t1

Desvio incond.

Jump and link

jal 2500

$ra = PC+4; desvia para 10000

ComputaoUFPel
Arquitetura e Organizao de Computadores II

exemplo

slide 1.9

significado

16

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues
todas as instrues tm 32 bits
todas tm opcode de 6 bits
o modo de endereamento codificado juntamente com o
opcode
31

26

25

opcode
6 bits

ComputaoUFPel
Arquitetura e Organizao de Computadores II

26 bits

slide 1.10

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues formato R: add, sub, or, and
opcode = 0
funct define a operao a ser feita pela ALU
shamt (shift amount) usado em instrues de deslocamento
31

26

25

21

20

16

15

11

10

opcode

rs

rt

rd

shamt

funct

6 bits

5 bits

5 bits

5 bits

5 bits

6 bits

registradores-fonte

Simblico (exemplo):

registrador-destino

add $s1,$s2, $s3

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.11

($s1 $s2 + $s3)

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues formato I: load word (ld) e store word (sw)
load word (lw): opcode = 35
store word (sw): opcode = 43
31

26

25

21

20

16

15

opcode

rs

rt

Deslocam. ou oper. Imediato

6 bits

5 bits

5 bits

16 bits

Simblico

registrador-base para o
clculo do endereo de
memria

registrador-destino (para lw)


ou
registrador-fonte (para sw)

lw $s1, deslocam($s2)

($s1 Mem[$s2 + deslocam] )

sw $s1, deslocam($s2)

(Mem[$s2 + deslocam] $s1 )

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.12

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instruo formato I: Desvio Condicional
beq: branch on equal
Opcode = 4
Campo deslocamento usado para calcular o endereo-alvo
Se o contedo do registrador cujo endereo est no campo rs
for igual ao contedo do registrador cujo endereo est em
rt, ento salta para a posio endereo+PC+4
31

26

25

21

20

16

15

opcode

rs

rt

Deslocam. ou oper. Imediato

6 bits

5 bits

5 bits

16 bits

Simblico

registradores a
serem comparados

beq $s1, $s2, deslocm

( if

ComputaoUFPel
Arquitetura e Organizao de Computadores II

($s1== $s2) then PCPC+4+deslocam)


slide 1.13

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instruo formato J: Desvio Incondicional
j: jump

Opcode = 2

Campo deslocamento usado para calcular o endereo-alvo

Se o contedo do registrador cujo endereo est no campo rs for


igual ao contedo do registrador cujo endereo est em rt, ento
salta para a posio endereo+PC+4
31

26

25

opcode

endereo

6 bits

26 bits

Simblico
j endereo

( PCendereo )

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.14

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues load/store
so sempre tipo I
qualquer registrador de propsitos gerais ou de ponto
flutuante pode ser carregado ou armazenado da / na
memria
pode-se carregar ou armazenar bytes, meias palavras,
palavras ou palavras em preciso dupla ( ponto flutuante )
endereamento sempre por base e deslocamento

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.15

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues load/store
lb, lh, lw load byte, halfword, word
sinal estendido em lb e lh
lbu, lhu load byte, halfword sem extenso de sinal
sb, sh, sw store byte, halfword, word

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.16

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues Aritmticas e Lgicas

operao entre 2 registradores, resultado num terceiro registrador


tipo R
add, and, nor, ori, or, sub, xor
existem verses com endereamento imediato
addi, andi, ori, xori
tipo I
comparao compara dois registradores e coloca valor 1 ( ou 0 )
em registrador destino
slt, slti
$0 usado para sintetizar operaes populares
carga de constante = soma imediata onde $0 um dos
operandos
mover de registrador para registrador = soma com $0

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.17

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues Aritmticas e Lgicas
instrues de deslocamento varivel
tipo R
sllv, srlv shift lgico (entra 0 na extremidade)
srav shift aritmtico (duplica sinal)
desloca registrador rt pela distncia especificada no
registrador rs e coloca resultado no registrador rd
instrues de deslocamento constante
tipo I
sll, sra, srl
desloca registrador rt pela distncia especificada no
campo imediato e coloca resultado no registrador rd
ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.18

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues Aritmticas e Lgicas
instruo de multiplicao: mul
multiplica registradores rs e rt
resultado colocado em hi (32 msb) e lo (32 lsb)
instruo de diviso: div
divide registrador rs pelo registrador rt
quociente colocado em lo
resto colocado em hi
instrues de movimentao permitem transferir dados entre
hi e lo e os demais registradores
mfhi Rd, mflo Rd
mthi Rs, mtlo Rs
ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.19

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues Aritmticas e Lgicas
instrues unsigned no geram overflow
addu, addiu, divu, multu, subu, sltu, sltiu
instrues no-unsigned geram overflow
endereo da instruo que causou overflow colocado no
registrador EPC (em um co-processador)
instruo mfc0 copia valor do EPC para outro
registrador qualquer
instruo jr (jump para endereo especificado por
registrador) usada para desviar para rotina de
atendimento

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.20

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues de Desvio Incondicional

instruo j
tipo J
endereo destino = concatenao dos 4 msb do PC com endereo
imediato de 28 bits
instruo jr
tipo I: endereo destino contido em registrador
tambm serve para retornar de sub-rotina
instruo jal (jump and link)
tipo J
desvio para sub-rotina, endereo especificado na instruo
endereo de retorno salvo em $31
instruo jalr (jump and link register)
tipo R
desvio para sub-rotina, endereo especificado em rs
ComputaoUFPel
Prof. Jos Lus Gntzel
slide 1.21

endereo
de
retorno
salvo
em
rd
Arquitetura e Organizao de Computadores II

Arquitetura do MIPS
Instrues de Desvio Condicional
so sempre tipo I
endereo destino = soma do PC com offset imediato de 16
bits
instrues que testam um nico registrador
bgez, bgtz, blez, bltz desvia se registrador , >, , <
zero
bgezal, bltzal como bgez e bltz, mas salva de endereo
de retorno em $31
instrues que comparam dois registradores
beq, bne desvia se registradores so iguais (diferentes)

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.22

Prof. Jos Lus Gntzel

Arquitetura do MIPS
Instrues de Ponto Flutuante

mover operandos de preciso simples ou dupla entre registradores


mov.d, mov.s
soma, subtrao, negao, multiplicao, diviso em preciso simples
e dupla
add.s, sub.s, neg.s, mul.s, div.s
add.d, sub.d, neg.d, mul.d, div.d
comparaes em preciso simples e dupla
c.eq.s, c.le.s, c.lt.s,
c.eq.d, c.le.d, c.lt.d,
converso para ponto flutuante de preciso simples (ou dupla)
cvt.s.d, cvt.s.w converter FP double (ou inteiro) para FP single
cvt.d.s, cvt.d.w converter FP single (ou inteiro) para FP double
converso de ponto flutuante para inteiro
cvt.w.s, cvt.w.d converter FP double (ou single) para inteiro

ComputaoUFPel
Arquitetura e Organizao de Computadores II

slide 1.23

Prof. Jos Lus Gntzel

S-ar putea să vă placă și