Top Banner

of 143

SDI Aritmeticos

Jul 06, 2018

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 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/