Академический Документы
Профессиональный Документы
Культура Документы
Computadores
Universidade de Brasília
Departamento de Ciência da Computação
Tópicos
…
1111 1111 1111 1111 1111 1111 1111 1101dois = 4.294.967.293dez
$t0
… 12 F7 F0 …
$t1
Lb $t1, 0($t0) FFFFFF F7 Sinal replicado
$t2
Lbu $t2, 0($t0) 000000 F7 Zero replicado
Comparação em Complemento de 2
0 0 16 10 6 0
Aplicações
Selecionar um byte:
srl $t0, $t0, 8
0000 0000 0000 0000 0101 0110 0111 1000
0000 0000 0000 0000 0000 0000 0101 0110
Multiplexador S
S
X0 00
A 0
X1 01
B 1 X2 10
X3 11
2x1
4x1
Elementos Básicos ...
Somador
Entradas Saídas
a b CarryI CarryOu Som
n t a
0 0 0 0 0
CarryIn
0 0 1 0 1
a
Soma 0 1 0 0 1
+
b 0 1 1 1 0
CarryOut
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
ULA de 1-bit
a
0
1 Saída
2
b +
CarryOut
ULA de 32 bits
CarryIn Operação
a0 CarryIn
b0
ULA 0 Resultado0
CarryOut
a1 CarryIn
b1
ULA 1 Resultado1
CarryOut
a31 CarryIn
ULA 31 Resultado31
b31
Incluindo Subtração
a
0
1 Saída
b 0 2
+
1
CarryOut
Adaptando ao MIPS
a
0
b 0 2
+
1
Less 3
CarryOut
Calculando slt
a
0
1
Saída
b 0 + 2
1
Less 3
Set
Overflow
Overflow
ULA de 32 bits
InverteBit
Operação
a0
b0 ULA 0
Resultado0
a1
b1 ULA 1
0 Resultado1
a31 Resultado31
b31 ULA 31
Overflow
0
Set
Testando igualdade
NegaBit
Operação
a0
b0 ULA 0 Resultado0
a1
b1 ULA 1 Resultado1
0
Zero
a31 Resultado31
b31 ULA 31
0 Overflow
Set
Multiplicação
Multiplicando 1 0 0 0dez
Multiplicador × 1 0 0 1dez
1000
0000
0000
1000
Produto 1 0 0 1 0 0 0dez
Multiplicação
Multiplicando
Deslocamento à esquerda
64 bits
Produto Teste de
escrita controle
64 bits
Início
Multiplicador0 = 1 Multiplicador0 = 0
Teste do
Multiplicador0
2) Desloque o registrador
Multiplicando 1 bit à esquerda
3) Desloque o registrador
Multiplicador 1 bit à direita
Multiplicando (fixo)
32 bits
Multiplicador
Multiplicador0 = 1 Multiplicador0 = 0
Teste do
Multiplicador0
Não: < 32
32a repetição? repetições
Sim: 32 repetições
Fim
Exemplo Multiplicação II
Multiplicando: 0010
Multiplicador:
0011
Iteração Passo Multiplicador Multiplicando Produto
0 Valores iniciais 0011 0010 0000 0000
1a :1 Prod = Prod + Mcand 0011 0010 0010 0000
2: Deslocamento à direita do Produto 0011 0010 0001 0000
3: Deslocamento à direita do Multiplicador 0001 0010 0001 0000
1 1a :1 Prod = Prod + Mcand 0001 0010 0011 0000
2: Deslocamento à direita do Produto 0001 0010 0001 1000
3: Deslocamento à direita do Multiplicador 0000 0010 0001 1000
2 1: 0 Nenhuma operação 0000 0010 0001 1000
2: Deslocamento à direita do Produto 0000 0010 0000 1100
3: Deslocamento à direita do Multiplicador 0000 0010 0000 1100
4 1: 0 Nenhuma operação 0000 0010 0000 1100
2: Deslocamento à direita do Produto 0000 0010 0000 0110
3: Deslocamento à direita do Multiplicador 0000 0010 0000 0110
Versão Final
Multiplicando (fixo)
32 bits
Unidade Lógico
Aritmética
(32 bits)
Sim: 32 repetições
Fim
Exemplo III
Multiplicando: 0010
Multiplicador:
0011
Iteração Passo Multiplicando Produto
0 Valores iniciais 0010 0000 0011
1a :1 Prod = Prod + Mcand 0010 0010 0011
2: Deslocamento à direita do Produto 0010 0001 0001
1 1a :1 Prod = Prod + Mcand 0010 0011 0001
2: Deslocamento à direita do Produto 0010 0001 1000
2 1: 0 Nenhuma operação 0010 0001 1000
2: Deslocamento à direita do Produto 0010 0000 1100
4 1: 0 Nenhuma operação 0010 0000 1100
2: Deslocamento à direita do Produto 0010 0000 0110
Multiplicando Números com Sinal
00102
01102
------- Deslocamento (0 no multiplicador)
0000
0010 soma (1 no multiplicador)
0010 soma (1 no multiplicador)
0000
------------------- deslocamento (0 no multiplicador)
000011002
Algoritmo de Booth ...
Booth observou que uma ULA que possa tanto somar como
subtrair pode chegar ao mesmo resultado de diferentes
maneiras.
Outro fator que constatou o Booth era que as operações
de deslocamentos eram mais rápidas que as de soma (e
subtração)
Exemplo: 21dez 14dez = 294dez
0 1 0 1 0 12 (21dez)
●Multiplicando
0 0 1 1 1 02 (14dez) •Multiplicador
0 +1 0 0 -1 0
----------------------------------------- •Multiplicador
recodificado de Booth
string de 1s
Algoritmo de Booth ...
0 1 0 1 0 12 (21dez) ●Multiplicando
0 0 1 1 1 02 (14dez) •Multiplicador
0 +1 0 0 -1 0
----------------------------------------- •Multiplicador
desloca Desloca desloca recodificado de Booth
soma subtrai
Codificação
string de 1s
0 1 1 1 1 0
X $t2 01000000000000000000000000000000
00011111111111111111111111111111 11000000000000000000000000000000
Hi Lo
mfhi $t3 $t3 00011111111111111111111111111111