8/17/2019 SDI Aritmeticos
1/143
Sistemas Digitais I - 1420009
Circuitos Aritméticos
Prof. Denis Teixeira Franco
Engenharia EletrônicaCentro de Engenharias
Universidade Federal de Pelotas
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )
Sistemas Digitais I - 1420009 1 / 70
http://find/
8/17/2019 SDI Aritmeticos
2/143
Outline
1 Representação binária de valoresIntroduçãoNúmeros InteirosNúmeros Reais
2 Operações com inteiros
IntroduçãoAdição e SubtraçãoMultiplicaçãoDivisão
3 Operações com reais
4 Desempenho aritmético de processadores recentes
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )
Sistemas Digitais I - 1420009 2 / 70
http://find/
8/17/2019 SDI Aritmeticos
3/143
Representação binária de valores
Outline
1 Representação binária de valoresIntroduçãoNúmeros InteirosNúmeros Reais
2 Operações com inteirosIntroduçãoAdição e SubtraçãoMultiplicaçãoDivisão
3 Operações com reais
4 Desempenho aritmético de processadores recentes
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )
Sistemas Digitais I - 1420009 3 / 70
http://find/
8/17/2019 SDI Aritmeticos
4/143
Representação binária de valores Introdução
Sistema posicional
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 4 / 70
http://find/
8/17/2019 SDI Aritmeticos
5/143
Representação binária de valores Introdução
Sistema posicional
Representação dos números:
N =n−1
i =−m
(x i · B i )
N → Número
B → Base do sistema de numeração
x i → D́ıgito na posição i
−m até n − 1 → Posição dos d́ıgitos relativa ao ponto (v́ırgula)
234, 18 = 2 · 102 + 3 · 101 + 4 · 100 + 1 · 10−1 + 8 · 10−2
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 4 / 70
http://find/
8/17/2019 SDI Aritmeticos
6/143
Representação binária de valores Introdução
Representação numérica em computação
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 5 / 70
R ˜ bi ´ i d l I d ˜
http://find/
8/17/2019 SDI Aritmeticos
7/143
Representação binária de valores Introdução
Representação numérica em computação
Representações convencionais:
Ponto fixo
Sinal magnitudeComplemento de 2
Notação em excessoBCD
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 5 / 70
R t ˜ bi ´ i d l I t d ˜
http://find/
8/17/2019 SDI Aritmeticos
8/143
Representaçao binaria de valores Introduçao
Representação numérica em computação
Representações convencionais:
Ponto fixo
Sinal magnitudeComplemento de 2
Notação em excessoBCD
Ponto flutuante
Norma IEEE 754
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 5 / 70
Representacão binária de valores Introducão
http://find/
8/17/2019 SDI Aritmeticos
9/143
Representaçao binaria de valores Introduçao
Representação numérica em computação
Representações convencionais:
Ponto fixo
Sinal magnitudeComplemento de 2
Notação em excessoBCD
Ponto flutuante
Norma IEEE 754
Outras representações: aplicações espećıficas
Redundant Number Systems
Residue Number Systems (RNS)
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 5 / 70
Representacão binária de valores Números Inteiros
http://find/
8/17/2019 SDI Aritmeticos
10/143
Representaçao binaria de valores Numeros Inteiros
Representação numérica em computação
Representações convencionais:
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 6 / 70
Representacão binária de valores Números Inteiros
http://find/
8/17/2019 SDI Aritmeticos
11/143
Representaçao binaria de valores Numeros Inteiros
Representação numérica em computação
Representações convencionais:
Sinal magnitude
Duas representações para zero : +0 e −0Hardware mais complexo
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 6 / 70
Representacão binária de valores Números Inteiros
http://find/
8/17/2019 SDI Aritmeticos
12/143
Representaçao binaria de valores Numeros Inteiros
Representação numérica em computação
Representações convencionais:
Sinal magnitude
Duas representações para zero : +0 e −0Hardware mais complexo
Complemento de 2
Uma única representação para zeroMesmo HW para adição e subtraçãoLevemente assimétrica (um valor negativo a mais)
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 6 / 70
Representação binária de valores Números Inteiros
http://find/
8/17/2019 SDI Aritmeticos
13/143
p ¸
Representação numérica em computação
Representações convencionais:
Sinal magnitude
Duas representações para zero : +0 e −0Hardware mais complexo
Complemento de 2
Uma única representação para zeroMesmo HW para adição e subtraçãoLevemente assimétrica (um valor negativo a mais)
Notação em excesso
Permite comparação relativa entre magnitudes
Considera números como não sinalizados
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 6 / 70
Representação binária de valores Números Inteiros
http://find/
8/17/2019 SDI Aritmeticos
14/143
Representação numérica em computação
Representações convencionais:
Sinal magnitude
Duas representações para zero : +0 e −0Hardware mais complexo
Complemento de 2
Uma única representação para zeroMesmo HW para adição e subtraçãoLevemente assimétrica (um valor negativo a mais)
Notação em excesso
Permite comparação relativa entre magnitudes
Considera números como não sinalizados
BCD
Representação intuitivaAplicações financeiras, contabilidade, etc
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 6 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
15/143
Números reais
Métodos de representação finita:
Incapazes de representar todos os números reais
Representação aproximadaPonto fixo: precisão e alcance limitadosNúmeros racionais: dificulta operações aritméticasPonto flutuante: mais utilizadoSistema logaŕıtmico: e = log b |x |, caso especial de ponto flutuante
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 7 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
16/143
Representação em ponto flutuante
Floating-point numbers :
Quatro componentes
SinalMantissa (s)Base do expoente (b)Expoente (e)
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 8 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
17/143
Representação em ponto flutuante
Floating-point numbers :
Quatro componentes
SinalMantissa (s)Base do expoente (b)Expoente (e)
x = ±s × b e
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 8 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
18/143
Representação em ponto flutuante
Floating-point numbers :
Quatro componentes
Sinal
Mantissa (s)Base do expoente (b)Expoente (e)
x = ±s × b e
Base normalmente impĺıcita
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 8 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
19/143
Representação em ponto flutuante
Formato:
f e
Sinal: 0 → +; 1 → −
Expoente: Representação em excesso de N (biased notation)
Comparação rápida de expoentes
Mantissa: Normalizada para um MSB não zero (”1,” impĺıcito)s = 1, f
Valores entre 1 e ≈ 2
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 9 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
20/143
Representação em ponto flutuante
Faixas de representação:
maxNúmeros negativos
Overflow
Números positivos0
Underf low
− +
Overflow
−min−max min
0, −∞ e + ∞ : representações especiais
max = maior mantissa × b maior expoente
min = menor mantissa × b menor expoente
Variação na densidade dos valores
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 10 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
21/143
Representação em ponto flutuante
O padrão IEEE 754:
ANSI/IEEE Standard 754-1985
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 11 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
22/143
Representação em ponto flutuante
O padrão IEEE 754:
ANSI/IEEE Standard 754-1985
IEEE 754-2008
Formatos definidos
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 11 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
23/143
Representação em ponto flutuante
O padrão IEEE 754:
ANSI/IEEE Standard 754-1985
IEEE 754-2008
Formatos definidos
Meia precisão: 16 bits
Precisão simples: 32 bits
Precisão dupla: 64 bits
Precisão quádrupla: 128 bits
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 11 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
24/143
Representação em ponto flutuante
O padrão IEEE 754:
ANSI/IEEE Standard 754-1985
IEEE 754-2008
Formatos definidos
Meia precisão: 16 bitse = 5 bits, bias = 15; mantissa = 10 + 1 bits
Precisão simples: 32 bits
e = 8 bits, bias = 127; mantissa = 23 + 1 bits
Precisão dupla: 64 bits
e = 11 bits, bias = 1023; mantissa = 52 + 1 bits
Precisão quádrupla: 128 bits
e = 15 bits, bias = 16383; mantissa = 112 + 1 bits
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 11 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
25/143
Representação em ponto flutuante
IEEE 754-2008:
[1, 254]
0
0
Subnormal
NaN
±
0
±0
0
0
255
255
0
0
Normalizado
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 12 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
26/143
Representação em ponto flutuante
IEEE 754-2008:Not-a-number: NaN
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 13 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
27/143
Representação em ponto flutuante
IEEE 754-2008:Not-a-number: NaN
Exemplo: 0/0NaN + valor = NaN
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 13 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
28/143
Representação em ponto flutuante
IEEE 754-2008:Not-a-number: NaN
Exemplo: 0/0NaN + valor = NaN
±∞
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 13 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
29/143
Representação em ponto flutuante
IEEE 754-2008:Not-a-number: NaN
Exemplo: 0/0NaN + valor = NaN
±∞
valor ÷ (+∞) = ±0(+∞)× valor = ±∞
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 13 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
30/143
Representação em ponto flutuante
IEEE 754-2008:Not-a-number: NaN
Exemplo: 0/0NaN + valor = NaN
±∞
valor ÷ (+∞) = ±0(+∞)× valor = ±∞
Subnormal
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 13 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
31/143
Representação em ponto flutuante
IEEE 754-2008:Not-a-number: NaN
Exemplo: 0/0NaN + valor = NaN
±∞
valor ÷ (+∞) = ±0(+∞)× valor = ±∞
Subnormal
(0, 0001)2 × 2−126
Graceful underflow
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 13 / 70
Representação binária de valores Números Reais
http://find/
8/17/2019 SDI Aritmeticos
32/143
Representação em ponto flutuante
IEEE 754-2008:Not-a-number: NaN
Exemplo: 0/0NaN + valor = NaN
±∞
valor ÷ (+∞) = ±0(+∞)× valor = ±∞
Subnormal
(0, 0001)2 × 2−126
Graceful underflow Códigos especiais propagados até o final do cálculo
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 13 / 70
Representação binária de valores Números Reais
R ˜ fl
http://find/
8/17/2019 SDI Aritmeticos
33/143
Representação em ponto flutuante
IEEE 754-2008:Not-a-number: NaN
Exemplo: 0/0NaN + valor = NaN
±∞
valor ÷ (+∞) = ±0(+∞)× valor = ±∞
Subnormal
(0, 0001)2 × 2−126
Graceful underflow Códigos especiais propagados até o final do cálculo
Suporte a formatos estendidos
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 13 / 70
Representação binária de valores Números Reais
R ˜ fl
http://find/
8/17/2019 SDI Aritmeticos
34/143
Representação em ponto flutuante
Exemplo:
x = 100, 2510
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 14 / 70
Representação binária de valores Números Reais
R ˜ fl
http://find/
8/17/2019 SDI Aritmeticos
35/143
Representação em ponto flutuante
Exemplo:
x = 100, 2510
10010 = 11001002
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 14 / 70
Representação binária de valores Números Reais
R t ˜ t fl t t
http://find/
8/17/2019 SDI Aritmeticos
36/143
Representaçao em ponto flutuante
Exemplo:
x = 100, 2510
10010 = 11001002
0, 2510 = 0, 012
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 14 / 70
Representação binária de valores Números Reais
R t ˜ t fl t t
http://find/
8/17/2019 SDI Aritmeticos
37/143
Representaçao em ponto flutuante
Exemplo:
x = 100, 2510
10010 = 11001002
0, 2510 = 0, 0121100100, 012 = 1, 10010001× 2
6
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 14 / 70
Representação binária de valores Números Reais
Representacão em ponto flutuante
http://find/
8/17/2019 SDI Aritmeticos
38/143
Representaçao em ponto flutuante
Exemplo:
x = 100, 2510
10010 = 11001002
0, 2510 = 0, 0121100100, 012 = 1, 10010001× 2
6
f = 1001000100...
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 14 / 70
Representação binária de valores Números Reais
Representacão em ponto flutuante
http://find/
8/17/2019 SDI Aritmeticos
39/143
Representaçao em ponto flutuante
Exemplo:
x = 100, 2510
10010 = 11001002
0, 2510 = 0, 0121100100, 012 = 1, 10010001× 2
6
f = 1001000100...
e = 610 → 6 + 127 = 13310 → 100001012
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 14 / 70
Representação binária de valores Números Reais
Representacão em ponto flutuante
http://find/
8/17/2019 SDI Aritmeticos
40/143
Representaçao em ponto flutuante
Exemplo:
x = 100, 2510
10010 = 11001002
0, 2510 = 0, 0121100100, 012 = 1, 10010001× 2
6
f = 1001000100...
e = 610 → 6 + 127 = 13310 → 100001012
x = 0 10000101 10010001000000000000000
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 14 / 70
Representação binária de valores Números Reais
Representacão em ponto flutuante
http://find/
8/17/2019 SDI Aritmeticos
41/143
Representaçao em ponto flutuante
Exemplo:
x = 100, 2510
10010 = 11001002
0, 2510 = 0, 0121100100, 012 = 1, 10010001× 2
6
f = 1001000100...
e = 610 → 6 + 127 = 13310 → 100001012
x = 0 10000101 10010001000000000000000x = 42C 88000h
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 14 / 70
Operações com inteiros
Outline
http://find/
8/17/2019 SDI Aritmeticos
42/143
Outline
1
Representação binária de valoresIntroduçãoNúmeros InteirosNúmeros Reais
2
Operações com inteirosIntroduçãoAdição e SubtraçãoMultiplicaçãoDivisão
3 Operações com reais
4 Desempenho aritmético de processadores recentes
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 15 / 70
Operações com inteiros Introdução
Introducão
http://find/
8/17/2019 SDI Aritmeticos
43/143
Introduçao
Operações básicas:Adição
Subtração
Multiplicação
Divisão
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 16 / 70
Operações com inteiros Introdução
Introducão
http://find/
8/17/2019 SDI Aritmeticos
44/143
Introduçao
Operações básicas:Adição
Subtração
Multiplicação
Divisão
Blocos de base:
Half adder (HA)
Somador (2,2)
Full adder (FA)
Somador (3,2)
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 16 / 70
Operações com inteiros Adição e Subtração
Adicão e subtracão
http://find/
8/17/2019 SDI Aritmeticos
45/143
Adiçao e subtraçaoO somador completo
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 17 / 70
Operações com inteiros Adição e Subtração
O somador ripple-carry
http://find/
8/17/2019 SDI Aritmeticos
46/143
O somador ripple carry
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 18 / 70
Operações com inteiros Adição e Subtração
Subtracão
http://find/
8/17/2019 SDI Aritmeticos
47/143
Subtraçao
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 19 / 70
Operações com inteiros Adição e Subtração
Subtração
http://find/
8/17/2019 SDI Aritmeticos
48/143
¸
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 20 / 70
Operações com inteiros Adição e Subtração
A adição
http://find/
8/17/2019 SDI Aritmeticos
49/143
¸
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 21 / 70
Operações com inteiros Adição e Subtração
A adição
http://find/
8/17/2019 SDI Aritmeticos
50/143
¸
Operação básica para as demais operações
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 21 / 70
Operações com inteiros Adição e Subtração
A adição
http://find/
8/17/2019 SDI Aritmeticos
51/143
¸
Operação básica para as demais operações
O somador ripple-carry é simples mas lento
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 21 / 70
Operações com inteiros Adição e Subtração
A adição
http://find/
8/17/2019 SDI Aritmeticos
52/143
Operação básica para as demais operações
O somador ripple-carry é simples mas lento
Tempo de operação ∼= 2 · n ńıveis lógicos (para n bits)
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 21 / 70
Operações com inteiros Adição e Subtração
A adição
http://find/
8/17/2019 SDI Aritmeticos
53/143
Operação básica para as demais operações
O somador ripple-carry é simples mas lento
Tempo de operação ∼= 2 · n ńıveis lógicos (para n bits)
Somadores rápidos baseiam-se na quebra da cadeia de carry
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 21 / 70
Operações com inteiros Adição e Subtração
O somador carry-select
http://find/
8/17/2019 SDI Aritmeticos
54/143
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 22 / 70
Operações com inteiros Adição e Subtração
O somador carry-select
http://find/
8/17/2019 SDI Aritmeticos
55/143
Tempo de operação ∼= (2 · n)/2 + 1 ńıveis lógicos (para n bits)
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 22 / 70
Operações com inteiros Adição e Subtração
O somador carry-select
http://find/
8/17/2019 SDI Aritmeticos
56/143
Tempo de operação ∼= (2 · n)/2 + 1 ńıveis lógicos (para n bits)∼= 50% maior
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 22 / 70
Operações com inteiros Adição e Subtração
O somador carry-lookahead
http://find/
8/17/2019 SDI Aritmeticos
57/143
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 23 / 70
Operações com inteiros Adição e Subtração
O somador carry-lookahead
http://find/
8/17/2019 SDI Aritmeticos
58/143
Reinterpretação da tabela do somador completoO sinal de carry pode ser gerado pelos bits de entrada
O sinal de carry pode ser propagado a partir do carry precedente
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 23 / 70
Operações com inteiros Adição e Subtração
O somador carry-lookahead
http://find/
8/17/2019 SDI Aritmeticos
59/143
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 24 / 70
Operações com inteiros Adição e Subtração
O somador carry-lookahead
http://find/
8/17/2019 SDI Aritmeticos
60/143
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 25 / 70
Operações com inteiros Adição e Subtração
O somador carry-lookahead
http://find/
8/17/2019 SDI Aritmeticos
61/143
G3 P3 G2 P2 G1 P1 G0 P0
c0
c1c2c3c4
i i i i i i i i
iiii
i
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 26 / 70
Operações com inteiros Adição e Subtração
O somador carry-lookahead
http://find/
8/17/2019 SDI Aritmeticos
62/143
G0/P0G1/P1G2/P2G3/P3
c1c2c3c4
Carry Lookahead Block
0G0/P0G1/P1G2/P20 00G3/P3
c1c2c3c4 0 0 0 0
c0 0Carry Lookahead Block
c0
G0/P0G1/P1G2/P2G3/P3
c1c2c3c4
Carry Lookahead Block c0 1
1111
1 1 1 1
m−1
m−1m−1m−1
m−1 m−1 m−1 m−1
m−1
m = n/4 0m−1c4 = carry−out c0 = carry−in
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 27 / 70
Operações com inteiros Adição e Subtração
O somador carry-lookahead
http://find/
8/17/2019 SDI Aritmeticos
63/143
G0/P0G1/P1G2/P2G3/P3
c1c2c3c4
Carry Lookahead Block
0G0/P0G1/P1G2/P20 00G3/P3
c1c2c3c4 0 0 0 0
c0 0Carry Lookahead Block
c0
G0/P0G1/P1G2/P2G3/P3
c1c2c3c4
Carry Lookahead Block c0 1
1111
1 1 1 1
m−1
m−1m−1m−1
m−1 m−1 m−1 m−1
m−1
m = n/4 0m−1c4 = carry−out c0 = carry−in
Tempo de operação ∼= (4 · Log 4n) + 1 ńıveis lógicos (para n bits)
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 27 / 70
Operações com inteiros Adição e Subtração
O somador carry-lookahead
http://find/
8/17/2019 SDI Aritmeticos
64/143
G0/P0G1/P1G2/P2G3/P3
c1c2c3c4
Carry Lookahead Block
0G0/P0G1/P1G2/P20 00G3/P3
c1c2c3c4 0 0 0 0
c0 0Carry Lookahead Block
c0
G0/P0G1/P1G2/P2G3/P3
c1c2c3c4
Carry Lookahead Block c0 1
1111
1 1 1 1
m−1
m−1m−1m−1
m−1 m−1 m−1 m−1
m−1
m = n/4 0m−1c4 = carry−out c0 = carry−in
Tempo de operação ∼= (4 · Log 4n) + 1 ńıveis lógicos (para n bits)∼= 100% maior
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 27 / 70
Operações com inteiros Adição e Subtração
Somadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
65/143
Carry-skipCarry-save
Ling
Ladner-Fischer
Kogge-Stone
Brent-Kung
H́ıbrido B-K/K-S
Manchester
Carry-free
...
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 28 / 70
Operações com inteiros Multiplicação
Multiplicação
http://find/
8/17/2019 SDI Aritmeticos
66/143
Segunda operação mais frequente, após a adição
Implementada por diferentes algoritmos
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 29 / 70
Operações com inteiros Multiplicação
Multiplicação
http://find/
8/17/2019 SDI Aritmeticos
67/143
Segunda operação mais frequente, após a adição
Implementada por diferentes algoritmos
Exemplo: Multiplicação por somas sucessivas
S = B × AS = A + A + ... + A + A (B vezes)
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 29 / 70
Operações com inteiros Multiplicação
Multiplicação
http://find/
8/17/2019 SDI Aritmeticos
68/143
Segunda operação mais frequente, após a adição
Implementada por diferentes algoritmos
Exemplo: Multiplicação por somas sucessivas
S = B × AS = A + A + ... + A + A (B vezes)Lento
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 29 / 70
Operações com inteiros Multiplicação
Multiplicação
http://find/
8/17/2019 SDI Aritmeticos
69/143
Segunda operação mais frequente, após a adição
Implementada por diferentes algoritmos
Exemplo: Multiplicação por somas sucessivas
S = B × AS = A + A + ... + A + A (B vezes)LentoLatência variável, dependente da magnitude de B
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 29 / 70
Operações com inteiros Multiplicação
Multiplicação
http://find/
8/17/2019 SDI Aritmeticos
70/143
Segunda operação mais frequente, após a adição
Implementada por diferentes algoritmos
Exemplo: Multiplicação por somas sucessivas
S = B × AS = A + A + ... + A + A (B vezes)LentoLatência variável, dependente da magnitude de B
Algoritmo básico: ”Desloca e soma” (shift and add )
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 29 / 70
Operações com inteiros Multiplicação
Algoritmo básico
http://find/
8/17/2019 SDI Aritmeticos
71/143
Soma de produtos parciais deslocados: números não-sinalizados
Multiplicando (MD)
Multiplicador (MR)
Produto (PR)
B
A
S
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 30 / 70
Operações com inteiros Multiplicação
Algoritmo básico
http://find/
8/17/2019 SDI Aritmeticos
72/143
Soma de produtos parciais deslocados: números não-sinalizados
B (m−bits) = S ((n + m)−bits)
01234567AAAAAAAA
01234567AAAAAAAA
B0
01234567AAAAAAAA
B0
01234567 AAAAAAAA
01234567
AAAAAAAA
01234567AAAAAAAA
01234567AAAAAAAA
01234567AAAAAAAA
01234567AAAAAAAA
SSSSSSSS01234567
Multiplicando (MD)
Multiplicador (MR)
Produto (PR)
B
A
S
BBBBBBB1234567
0= PP
SSSSSSS89101112
S131415
B1
= PP1
B = PPB = PP
B = PP
B = PP
B = PP
B = PP
2 2
3 3
4 4
5 5
6 6
7 7
Produtoparcial
A (n−bits)
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 30 / 70
Operações com inteiros Multiplicação
Algoritmo básico
http://find/
8/17/2019 SDI Aritmeticos
73/143
Exemplo:
(46)
0100100
00000 0 0 0
111 100 0 0
(38)1
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 31 / 70
Operações com inteiros Multiplicação
Algoritmo básico
http://find/
8/17/2019 SDI Aritmeticos
74/143
Exemplo:
(1748)
0100100
00000 0 0 0
1 0100100
1 0100100
00000 0 0 0
1 0100100
00000 0 0 0
1 0100100
00000 0 0 0
111 100 0 0
0000 0 0010
(38)
(46)
1011011
1
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 31 / 70
Operações com inteiros Multiplicação
Algoritmo básico
http://find/
8/17/2019 SDI Aritmeticos
75/143
Geração dos produtos parciais:PP i = B i × A
PP i = 0PP i = A
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 32 / 70
Operações com inteiros Multiplicação
Algoritmo básico
http://find/
8/17/2019 SDI Aritmeticos
76/143
Geração dos produtos parciais:PP i = B i × A
PP i = 0PP i = A
PPi
Bi
Bi
PPi
A
MUX0
nn
n
1
A0
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 32 / 70
Operações com inteiros Multiplicação
Algoritmo básico
http://find/
8/17/2019 SDI Aritmeticos
77/143
Soma dos produtos parciais:
Sequencial
Otimização da área de implementação
Aumento da latênciaParalela
Otimização da latênciaAumento da área de implementação
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 33 / 70
Operações com inteiros Multiplicação
Desloca-soma sequencial
http://find/
8/17/2019 SDI Aritmeticos
78/143
Circuito de multiplicação sequencial (sem a PC):
PR
n n
n
n
n
MR MD
0
0 1MUX
PP
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 34 / 70
Operações com inteiros Multiplicação
Desloca-soma sequencial
http://find/
8/17/2019 SDI Aritmeticos
79/143
Caracteŕısticas:
Área reduzida
Número fixo de ciclos de operação na versão śıncrona
Números sinalizados:
Multiplicando negativo
Implementar extensão de sinal nos produtos parciais
Multiplicador negativo
Subtrair o produto parcial gerado pelo bit de sinal
Topologia do multiplicador padrão, com pequenas modificações
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 35 / 70
Operações com inteiros Multiplicação
Desloca-soma paralelo
http://find/
8/17/2019 SDI Aritmeticos
80/143
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 36 / 70
Operações com inteiros Multiplicação
Desloca-soma paralelo
Circuito de multiplicacão paralelo:
http://find/
8/17/2019 SDI Aritmeticos
81/143
Circuito de multiplicaçao paralelo:
n+1
n
n
n
PP1
n
n
PP0
PP
PP2
3
n+1
Implementação paralela:
Área proporcional à largura dos operandos
Para operandos de n-bits: n-1 somadores de n-bits
Latência fixa
Pode ser amplamente otimizado
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 36 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
82/143
Aceleração da multiplicação:
Multiplicação vista como adição de múltiplos operandos
Otimização posśıvel através da:
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 37 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
83/143
Aceleração da multiplicação:
Multiplicação vista como adição de múltiplos operandos
Otimização posśıvel através da:
Redução do número de produtos parciaisManipulação simultânea de mais de um bit do multiplicador
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 37 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
84/143
Aceleração da multiplicação:
Multiplicação vista como adição de múltiplos operandos
Otimização posśıvel através da:
Redução do número de produtos parciaisManipulação simultânea de mais de um bit do multiplicadorAceleração das somasPipeline, árvores, etc
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 37 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
85/143
Multiplicadores otimizáveis por três elementos:
Circuitos de formação dos produtos parciais
Portas ANDMultiplexersRecodificadores de Booth
´Arvores de redução dos produtos parciaisNormalmente baseados em árvores do tipo carry-save
WallaceDaddaArray
Conversor de representação redundante para o resultado finalSomador rápidoCarry-lookahead
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 38 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
86/143
Dot representation/notation:
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 39 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
87/143
Multiplicador matricial (array ):
0000
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 40 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
88/143
Multiplicador matricial (array ):
0000
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 40 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
89/143
Multiplicador matricial (array ):
Full adders, half adders: números sem sinal
FAs, HAs, FAs e HAs modificados: números com sinal
Método de Baugh-Wooley
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 41 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
90/143
Multiplicador matricial (array ):
Full adders, half adders: números sem sinal
FAs, HAs, FAs e HAs modificados: números com sinal
Método de Baugh-Wooley
Estrutura regular, adequada para VLSI
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I 1420009 41 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
91/143
Multiplicador matricial (array ):
Full adders, half adders: números sem sinal
FAs, HAs, FAs e HAs modificados: números com sinal
Método de Baugh-Wooley
Estrutura regular, adequada para VLSI
Implementa a função MAC (multiply-accumulate)
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I 1420009 41 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidosO algoritmo de Booth
http://find/
8/17/2019 SDI Aritmeticos
92/143
Booth’s recoding :
Redução do número de produtos parciais
Recodificação de sequências de 1s
32+16+8+4 = 60
0 0 1 1 1 1 0 0
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I 1420009 42 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidosO algoritmo de Booth
http://find/
8/17/2019 SDI Aritmeticos
93/143
Booth’s recoding :
Redução do número de produtos parciais
Recodificação de sequências de 1s
64 −4 = 60
0 0 1 1 1 1 0 0
32+16+8+4 = 60
0 1 0 0 0 0 01
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I 1420009 42 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidosO algoritmo de Booth modificado
http://find/
8/17/2019 SDI Aritmeticos
94/143
Modified Booth’s recoding :
MR
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
i i−1MR MR
0
1
0
1
MRi+1
0
1
0
1
0
MD
MD
2MD
−2MD
−MD
−MD
PP j
Tabela de recodificação
−0
MD
−MD
−0
−2MD
0 00 0
11
00
0 1 11 1 1
00 0
MD
1
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I 1420009 43 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidosO algoritmo de Booth modificado
http://find/
8/17/2019 SDI Aritmeticos
95/143
Modified Booth’s recoding : exemplo Booth-2
− 0
1 0 1 0 1 1 0
0 0 0 0 0 0 02 * multiplicand
signextension
partial
products
Result
1 1 1 1 1
0 0 0
0
−2 * multiplicand
(630)
0 1 0 1 0 1 0
0 0 1 0 0 1 1 1 0 1 1 0
− 0
group
3−bit
0 0 00 0 1
0 1 00 1 1
1 0 01 0 1
1 1 0
1 1 1
0 1 1 1 1 0
Multiplicand
Multiplier
0 1 0 1 0 1Partial
product
0multiplicand
multiplicand2 * multiplicand
−2 * multiplicand
− multiplicand− multiplicand
(30)
(21)
0
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I 1420009 44 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidosO algoritmo de Booth modificado
http://find/http://find/
8/17/2019 SDI Aritmeticos
96/143
Modified Booth’s recoding :
Manipulação direta de números sinalizados (complemento de 2)
Latência fixa: metade dos produtos parciais
Versões paralelas e sequenciais
Prof Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I 1420009 45 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidosO algoritmo de Booth modificado
http://find/
8/17/2019 SDI Aritmeticos
97/143
Modified Booth’s recoding :
Manipulação direta de números sinalizados (complemento de 2)
Latência fixa: metade dos produtos parciais
Versões paralelas e sequenciais
Booth-3: 0, MD, 2MD, 3MD, 4MD, -4MD, -3MD, -2MD, -MD, -0
Um terço dos produtos parciais
P f D is T i i F ( E h i El t ˆ i C t d E h i s U i sid d F d l d P l t s )Sist s Di it is I 1420009 45 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidosO algoritmo de Booth modificado
http://find/
8/17/2019 SDI Aritmeticos
98/143
Modified Booth’s recoding :
Manipulação direta de números sinalizados (complemento de 2)
Latência fixa: metade dos produtos parciais
Versões paralelas e sequenciais
Booth-3: 0, MD, 2MD, 3MD, 4MD, -4MD, -3MD, -2MD, -MD, -0
Um terço dos produtos parciaisGeração de ±3MD não é trivial
P f D i T i i F ( E h i El t ˆ i C t d E h i U i id d F d l d P l t )Si t Di it i I 1420009 45 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
99/143
Wallace Tree: árvore de redução
P f D i T i i F ( E h i El t ˆ i C t d E h i U i id d F d l d P l t )Si t Di it i I 1420009 46 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
100/143
Wallace Tree: árvore de redução
P f D i T i i F ( E h i El t ˆ i C t d E h i U i id d F d l d P l t )Si t Di it i I 1420009 46 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
101/143
Wallace Tree: primeiro ńıvel
P f D i T i i F ( E h i El ˆ i C d E h i U i id d F d l d P l )Si Di i i I 1420009 47 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
102/143
Wallace Tree: primeiro ńıvel
P f D i T i i F ( E h i El ˆ i C d E h i U i id d F d l d P l )Si Di i i I 1420009 47 / 70 Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
103/143
Wallace Tree: segundo ńıvel
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 48 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
104/143
Wallace Tree: segundo ńıvel
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 48 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
105/143
Wallace Tree: terceiro ńıvel
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 49 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
106/143
Wallace Tree: terceiro ńıvel
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 49 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
107/143
Wallace Tree: quarto ńıvel
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 50 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
108/143
Wallace Tree: quarto ńıvel
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 50 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
109/143
Wallace Tree: somador final
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 51 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
110/143
Wallace Tree: somador final
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 51 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
111/143
Wallace Tree:
Redução do número de ńıveis em relação a um multiplicador matricial
16 PPs ⇒ 6 ńıveis32 PPs ⇒ 8 ńıveis
64 PPs ⇒ 10 ńıveis
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 52 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
112/143
Wallace Tree:
Redução do número de ńıveis em relação a um multiplicador matricial
16 PPs ⇒ 6 ńıveis32 PPs ⇒ 8 ńıveis
64 PPs ⇒ 10 ńıveisRedução do tamanho do somador final
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 52 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
113/143
Wallace Tree:
Redução do número de ńıveis em relação a um multiplicador matricial
16 PPs ⇒ 6 ńıveis32 PPs ⇒ 8 ńıveis
64 PPs ⇒ 10 ńıveisRedução do tamanho do somador final
Pode ser combinado com recodificação
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 52 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/
8/17/2019 SDI Aritmeticos
114/143
Wallace Tree:
Redução do número de ńıveis em relação a um multiplicador matricial
16 PPs ⇒ 6 ńıveis32 PPs ⇒ 8 ńıveis
64 PPs ⇒ 10 ńıveisRedução do tamanho do somador final
Pode ser combinado com recodificação
Estrutura irregular
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 52 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/http://goback/
8/17/2019 SDI Aritmeticos
115/143
Dadda Tree:
Similar ao Wallace
Redução ḿınima em cada ńıvel (máxima para Wallace)
Fase de redução com menos HW
Somador final mais longo
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 53 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/http://goback/
8/17/2019 SDI Aritmeticos
116/143
Multiplicação por constantes:
Aplicação em filtros, matrizes, etc
Somas e deslocamentos correspondentes aos bits em 1Recodificação: somas, subtrações e deslocamentos
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 54 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/http://goback/
8/17/2019 SDI Aritmeticos
117/143
Multiplicação por constantes:11310 = 11100012
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 55 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
Multiplicação por constantes:
http://find/http://goback/
8/17/2019 SDI Aritmeticos
118/143
p ¸ p
11310 = 11100012
R 1 × 113
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 55 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
Multiplicação por constantes:
http://find/http://goback/
8/17/2019 SDI Aritmeticos
119/143
p ¸ p
11310 = 11100012
R 1 × 113
R 2 = R 1
8/17/2019 SDI Aritmeticos
120/143
p ¸ p
11310 = 11100012
R 1 × 113
R 2 = R 1
8/17/2019 SDI Aritmeticos
121/143
11310 = 11100012
R 1 × 113
R 2 = R 1
8/17/2019 SDI Aritmeticos
122/143
11310 = 11100012
R 1 × 113
R 2 = R 1
8/17/2019 SDI Aritmeticos
123/143
11310 = 11100012
R 1 × 113
R 2 = R 1
8/17/2019 SDI Aritmeticos
124/143
11310 = 11100012
R 1 × 113
R 2 = R 1
8/17/2019 SDI Aritmeticos
125/143
Ou:
113 = 128− 16 + 1
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 56 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
http://find/http://goback/
8/17/2019 SDI Aritmeticos
126/143
Ou:
113 = 128− 16 + 1
R 8 = R 1
8/17/2019 SDI Aritmeticos
127/143
Ou:
113 = 128− 16 + 1
R 8 = R 1
8/17/2019 SDI Aritmeticos
128/143
Ou:
113 = 128− 16 + 1
R 8 = R 1
8/17/2019 SDI Aritmeticos
129/143
Ou:
113 = 128− 16 + 1
R 8 = R 1
8/17/2019 SDI Aritmeticos
130/143
2 somadores, 2 deslocadores
Multiplicação por múltiplas constantes:
Compartilhamento de subexpressões
9A = 5A + 4A13A = 5A + 8A
18A = 2 • 9A
21A = 5A + 16A
Algoritmos para determinação das subexpressões
Robert Bernstein
Vincent Lefèvre
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 57 / 70
Operações com inteiros Multiplicação
Multiplicadores rápidos
Multiplicador matricial Pipeline:
http://find/
8/17/2019 SDI Aritmeticos
131/143
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 58 / 70
Operações com inteiros Divis̃ao
Divisão
http://find/
8/17/2019 SDI Aritmeticos
132/143
Duas classes de algoritmos:
Baseados em subtração
Lento, latência proporcional à largura do operando
Baseados em multiplicaçãoMais rápidos, latência proporcional ao log 2 da largura do operandoEtapas mais complexas
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 59 / 70
Operações com inteiros Divis̃ao
Divisão baseada em subtração
Exemplo:
http://find/
8/17/2019 SDI Aritmeticos
133/143
Exemplo:
(2)
0 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 0 0 01 0 1
1
1 0
1 0 1
0 0
1 0 1 0
1
1 0 Resto
Quociente
(74) (8)
(9)
1
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 60 / 70
Operações com inteiros Divis̃ao
Divisão baseada em subtração
Implementacão sequencial:
http://find/
8/17/2019 SDI Aritmeticos
134/143
Implementaçao sequencial:
DD
QCDR
controle
RM
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 61 / 70
Operações com inteiros Divis̃ao
Divisão baseada em subtração
Implementação sequencial:
Mais complexa que a multiplicação
Interdependência das acões (no mesmo ciclo)
http://find/
8/17/2019 SDI Aritmeticos
135/143
Interdependencia das açoes (no mesmo ciclo)Ciclo lento, para acomodar as diferentes ações
Números sinalizados:
Com restauro do resto parcial
Ajuste prévio do sinal dos operandosAjuste do sinal do resultado e do resto
Sem restauro do resto parcial
Sem ajuste prévio
Ajuste do sinal do resultado e do restoAjuste do sinal do resto
DD = QC × DR + RM
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 62 / 70
Operações com inteiros Divis̃ao
Divisão baseada em subtração
Implementacão matricial:
http://find/
8/17/2019 SDI Aritmeticos
136/143
Implementaçao matricial:
caminho crítico
XOR
FA
1
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 63 / 70
Operações com inteiros Divis̃ao
Divisão baseada em multiplicação
http://find/
8/17/2019 SDI Aritmeticos
137/143
Multiplicação do dividendo pelo inverso (rećıproco) do divisor.
O problema é determinar o valor rećıproco...
Dois métodos principais
Expansão em séries (Maclaurin)Método iterativo de Newton-Raphson
Look-up tables
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 64 / 70
Operações com reais
Outline
1 Representação binária de valoresIntroduçãoNúmeros Inteiros
http://find/
8/17/2019 SDI Aritmeticos
138/143
Numeros InteirosNúmeros Reais
2 Operações com inteirosIntroduçãoAdição e SubtraçãoMultiplicaçãoDivisão
3 Operações com reais
4 Desempenho aritmético de processadores recentes
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 65 / 70
Operações com reais
Adição e subtração em ponto flutuante
http://find/
8/17/2019 SDI Aritmeticos
139/143
(±s 1× b e 1) + (±s 2× b e 2) = ±s × b e
1 Verifica operandos com valor zero2 Alignment shift 3
Adição/subtração das mantissas4 Normalization shift
Possibilidade de overflow/underflow
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 66 / 70
Operações com reais
Multiplicação e divisão em ponto flutuante
Multiplicação
(±s 1× b e 1) × (±s 2× b e 2) = ±(s 1× s 2) × b e 1+e 2
1 Verifica operandos com valor zero
http://find/
8/17/2019 SDI Aritmeticos
140/143
p2 Multiplicação das mantissas3 Adição dos expoentes4 Normalização do resultado
Possibilidade de overflow/underflow
Divisão
(±s 1× b e 1) ÷ (±s 2× b e 2) = ±(s 1÷ s 2) × b e 1−e 2
1 Verifica operandos com valor zero2 Divisão das mantissas
3 Subtração dos expoentes4 Normalização do resultado
Possibilidade de overflow/underflow
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 67 / 70
Operações com reais
Conversão e exceções
http://find/
8/17/2019 SDI Aritmeticos
141/143
Arredondamento: 5 tipos
Exceções
Adição: (+∞) + (−∞)
Multiplicação: 0 ×∞Divisão: 0/0 ou ∞/∞
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 68 / 70
Desempenho aritmético de processadores recentes
Outline
1 Representação binária de valoresIntroduçãoNúmeros Inteiros
http://find/
8/17/2019 SDI Aritmeticos
142/143
Números Reais
2 Operações com inteirosIntroduçãoAdição e SubtraçãoMultiplicaçãoDivisão
3 Operações com reais
4 Desempenho aritmético de processadores recentes
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 69 / 70
Desempenho aritmético de processadores recentes
Desempenho de processadores recentes
Latência: números de ciclos para resultado com dependência
Latência de despacho: número de ciclos para iniciar uma novaoperacão
http://find/
8/17/2019 SDI Aritmeticos
143/143
operaçao
Valores do tipo NaN, overflow, underflow e subnormal, podemadicionar 100+ ciclos
Pentium 4 Sandy Bridge Atom BulldozerLat̂encia Lat. Desp. Latência Lat. Desp. Latência Lat. Desp. Latência Lat. Desp.
ADD/SUB 0,5 0,25 1 0,33 1 0,5 1 0,5IMUL 14 4,5 3 1 7 7 4 2IDIV 50 23 21-24 11-14 38 38 23 20FADD/FSUB 5 1 3 1 5 1 5-6 1FMUL 7 2 5 1 5 2 5-6 1
FDIV 43 43 10-24 10-24 71 71 10-42 5-18FSIN 180 170 47-100 - 260 - 65-210 65-210FCOS 207 207 47-115 - 260 - 160 160
Prof. Denis Teixeira Franco ( Engenharia Eletrônica Centro de Engenharias Universidade Federal de Pelotas )Sistemas Digitais I - 1420009 70 / 70
http://find/