Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Utilizzo della Virgola Mobile , Dispense di Architettura Tecnica

Breve spiegazione sull'utilizzo della virgola mobile in ambito di architettura di rete

Tipologia: Dispense

2016/2017

Caricato il 22/02/2017

AleJoker95
AleJoker95 🇮🇹

4.7

(4)

4 documenti

1 / 19

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
Architetture dei Calcolatori
(lettere A-I)
Rappresentazione in virgola mobile
Architetture dei Calcolatori 2004/05
Valeria Cardellini 1
Rappresentazione di numeri reali
Con un numero finito di cifre è possibile rappresentare
solo un numero razionale che approssima con un
certo errore il numero reale dato
Vengono usate due notazioni
Notazione in virgola fissa
Dedica parte delle cifre alla parte intera e le altre alla parte
frazionaria (la posizione della virgola è fissata su un bit
prestabilito): +XXX .YY
Notazione in virgola mobile
Dedica alcune cifre a rappresentare un esponente della base
che indica l’ordine di grandezza del numero rappresentato
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Anteprima parziale del testo

Scarica Utilizzo della Virgola Mobile e più Dispense in PDF di Architettura Tecnica solo su Docsity!

Architetture dei Calcolatori

(lettere A-I)

Rappresentazione in virgola mobile

Architetture dei Calcolatori 2004/

Rappresentazione di numeri reali

  • Con un numero finito di cifre è possibile rappresentare solo un numero razionale che approssima con un certo errore il numero reale dato
  • Vengono usate due notazioni
    • Notazione in virgola fissa
      • Dedica parte delle cifre alla parte intera e le altre alla parte frazionaria (la posizione della virgola è fissata su un bit prestabilito): +^ XXX .YY
    • Notazione in virgola mobile
      • Dedica alcune cifre a rappresentare un esponente della base che indica l’ordine di grandezza del numero rappresentato

Architetture dei Calcolatori 2004/ Valeria Cardellini 2

Perché la rappresentazione in

virgola mobile

  • Limitazioni della rappresentazione in virgola fissa
    • Non rappresenta bene numeri frazionari molto grandi
    • Non rappresenta bene numeri (frazioni) molto piccoli
  • La rappresentazione in virgola mobile estende l’intervallo di numeri rappresentati a parità di cifre, rispetto alla notazione in virgola fissa
  • Si può usare la notazione scientifica
    • Si esprime 432 000 000 000 come 4.32 x 10 11
    • Le 11 posizioni dopo il 4 vengono espresse dall’esponente
  • Principio della rappresentazione in virgola mobile (detta anche floating point ) - Si fa scorrere la virgola decimale fino ad una posizione conveniente, tenendo conto di ogni spostamento con l’esponente

Architetture dei Calcolatori 2004/

Rappresentazione in virgola mobile

  • E’ utile perché
    • Permette di rappresentare in maniera compatta numeri molto grandi, ma anche molto piccoli, sia positivi sia negativi
  • Numeri reali rappresentati tramite una coppia di numeri <m,e> n = ±m ⋅ b±e
    • m: mantissa (detto anche significante ), normalizzata tra due potenze successive della base b bi -1^ ≤ |m| < bi
    • e: esponente intero (detto anche caratteristica )
  • Sia m che e hanno un numero fissato di cifre:

Intervalli limitati

Errori di arrotondamento

Architetture dei Calcolatori 2004/ Valeria Cardellini 6

Standard per la rappresentazione

  • Importanza di definire uno standard per la rappresentazione dei numeri in virgola mobile - Per definire la semantica delle istruzioni in virgola mobile
  • International Standard Organization (ISO)
    • Vi appartengono circa 100 organizzazioni che si occupano di creare standard
  • IEEE Computer Society (Institute of Electrical and Electronics Engineers) definisce lo “IEEE standard for binary floating arithmetic” (riferito come IEEE 754 ) nel 1985 - Specifica il formato, le operazioni, le conversioni tra i diversi formati floating point e quelle tra i diversi sistemi di numerazione, il trattamento delle eccezioni
  • Nel 1989 IEEE 754 diventa uno standard internazionale (IEC 559)

Architetture dei Calcolatori 2004/

Standard IEEE 754

  • Formato non proprietario, ossia non dipendente dall’architettura del calcolatore
  • Precisione semplice a 32 bit:
  • Precisione doppia a 64 bit:
  • Notazioni in modulo e segno
  • Alcune configurazioni dell’esponente sono riservate
  • Segno (1 bit):
    • 0 per positivo, 1 per negativo

esp mantissa

esp mantissa

Architetture dei Calcolatori 2004/ Valeria Cardellini 8

IEEE 754 a 32 bit: esponente

  • Esponente (8 bit)
    • Rappresentato in eccesso 127 ( polarizzazione o bias )
    • L’intervallo di rappresentazione è [-127, 128]
    • Le due configurazioni estreme sono riservate, quindi -126 ≤ e ≤ 127
    • Se gli 8 bit dell’esponente contengono 10100011 = 163 10
      • L’esponente vale 163-127=
    • Se gli 8 bit dell’esponente contengono 00100111 = 39 (^10)
      • L’esponente vale 39-127=-
  • Perché la polarizzazione?
    • Il numero più grande che può essere rappresentato è 11…
    • Il numero più piccolo che può essere rappresentato è 00…
    • Quindi, quando si confrontano due interi polarizzati, per determinare il minore basta considerarli come interi senza segno

Architetture dei Calcolatori 2004/

IEEE 754 a 32 bit: mantissa

  • Mantissa (23 bit)
    • E’ sempre normalizzata
      • Convenzione che la prima cifra significativa si trovi immediatamente a sinistra del punto decimale - Si ottiene aumentando o diminuendo il valore dell’esponente di tante unità quante sono le posizioni di cui è spostato il punto, ad es. 128·10^12 = 1.28·10 14
    • Se ne rappresenta soltanto la parte frazionaria
    • Due rappresentazioni, a seconda del valore dell’esponente:
      1. Numeri normalizzati : e≠ 00000000
      2. Numeri denormalizzati: e=

Architetture dei Calcolatori 2004/ Valeria Cardellini 12

Esempi: conversione da virgola mobile

  • Quale numero in singola precisione rappresentano i seguenti 32 bit 1 10000001 01000000000000000000000 - Segno negativo (-) - Esponente e = 2 7 + 2^0 - 127 = 129 - 127 = 2 - Mantissa m = 1 + 2 -2^ = 1. - Quindi il numero rappresentato è -1.25·2 2 = - 0 10000011 10011000000000000000000 - Segno positivo (+) - Esponente e = 2 7 + 2 1 + 2 0 - 127 = 131 - 127 = 4 - Mantissa m = 1 + 2 -1^ + 2 -4^ + 2 -5^ = 1. - Quindi il numero rappresentato è 1.59375 ·2 4 = 25.

Architetture dei Calcolatori 2004/

Esempi: conversione in virgola mobile

  • Quale è la rappresentazione a singola precisione del numero 8. - Segno positivo (0) - 8.5 in binario è 1000.1·2^0 = 1.0001·2^3 - Esponente e: 3 + 127 = 130 = 10000010 - Mantissa m: 00010000000000000000000 - Quindi 0 10000010 00010000000000000000000 -13. - Segno negativo (1) - 13.75 in binario è 1101.11·2^0 = 1.10111·2^3 - Esponente e: 3 + 127 = 130 = 10000010 - Mantissa m: 10111000000000000000000 - Quindi 1 10000010 10111000000000000000000

Architetture dei Calcolatori 2004/ Valeria Cardellini 14

Standard IEEE 754 a 32 bit:

estremi degli intervalli

  • Più grande normalizzato: ~± 2128 X 11111110 11111111111111111111111 ± 2127 ~
  • Più piccolo normalizzato: ± 2 - X 00000001 00000000000000000000000 ± 2 -126^1
  • Più grande denormalizzato: ~ ± 2 - X 00000000 11111111111111111111111 ± 2 -126^ (0.11... ) 2 ≈ 1
  • Più piccolo denormalizzato: ± 2 - X 00000000 00000000000000000000001 ± 2 -126^ (0.00...1 ) 2 = 2-

Architetture dei Calcolatori 2004/

Intervallo di rappresentazione

Overflow negativo

Numeri negativi rappresentabili

Overflow positivo

Numeri positivi rappresentabili

Underflow positivo

Underflow negativo

Zero

-2 128 -2 -149 0 2 -149 2 128

( ] x [ )

  • L’overflow può essere positivo Quando si devono rappresentare numeri positivi maggiori di 2 128
  • L’overflow può essere negativo Quando si devono rappresentare numeri negativi minori di –2 128
  • L’underflow può essere positivo Quando si devono rappresentare numeri positivi minori di 2 -
  • L’underflow può essere negativo Quando si devono rappresentare numeri negativi maggiori di -2 -

Architetture dei Calcolatori 2004/ Valeria Cardellini 18

Configurazioni particolari

  • Lo standard IEEE 754 attribuisce valori convenzionali a particolari configurazioni di e ed m - e ed m tutti 0: rappresentano il valore 0 ( altrimenti non rappresentabile ) - m tutti 0 ed e tutti 1: rappresentano l’ infinito (±∞) - m ≠ 0 ed e tutti 1: rappresentano la situazione Not A Number (NAN) , cioè un valore indefinito (ad es. il risultato di una divisione per 0 o la radice quadrata di un numero negativo)
  • Queste convezioni sono una caratteristica peculiare della notazione IEEE 754; non valgono, se non esplicitamente definite, per altre notazioni

Architetture dei Calcolatori 2004/

Osservazioni sulla precisione singola

  • In modo assolutamente indipendente dalla rappresentazione usata, con 32 bit è possibile rappresentare “soltanto” 2 32 valori diversi
  • I numeri rappresentati in virgola mobile hanno una densità maggiore vicino allo zero
  • Diversi compromessi nella scelta del formato
  • Incrementando la dimensione dell’esponente
    • Si diminuisce la dimensione del significando
    • Si espande l’intervallo di rappresentazione (esponenti maggiori) ma si perdono cifre significative (precisione)
  • Possibilità di usare altre basi implicite (no standard IEEE 754!) - IBM S/390 usa base 16: aumenta l’intervallo di rappresentazione, a scapito della precisione

Architetture dei Calcolatori 2004/ Valeria Cardellini 20

IEEE 754 a 64 bit

  • Segno (1 bit)
  • Esponente (11 bit)
    • Rappresentato in eccesso 1023
    • L’intervallo di rappresentazione è [-1023, 1024]
  • Mantissa (52 bit)
    • Normalizzata come nella singola precisione
  • Configurazione riservate come nella singola precisione per la rappresentazione di - 0 - Numeri denormalizzati (positivi e negativi) - Infinito (positivo e negativo) - NaN (Not a Number)
  • Esercizio
    • Quali è l’intervallo di rappresentazione dei numeri a doppia precisione?

Architetture dei Calcolatori 2004/

Altri formati dello standard IEEE 754

  • Oltre ai formati base per la singola precisione (32 bit) e la doppia precisione (64 bit), sono stati definiti i formati estesi - A singola precisione - A doppia precisione

Architetture dei Calcolatori 2004/ Valeria Cardellini 24

Unità aritmetica per addizione in

virgola mobile

Architetture dei Calcolatori 2004/

Moltiplicazioni in virgola mobile

  1. Multiply the significands
  2. Round the significand to the appropriatenumber of bits

Still normalized?

Start

Yes

No

No

Overflow orunderflow? Yes Exception

  1. Normalize the product if necessary, shiftingit right and incrementing the exponent

numbers, subtracting the bias from the sum1. Add the biased exponents of the two to get the new biased exponent

Done

  1. Set the sign of the product to positive if thesigns of the original operands are the same; if they differ make the sign negative

Architetture dei Calcolatori 2004/ Valeria Cardellini 26

Moltiplicazioni in virgola mobile (2)

  • Si moltiplicano le mantisse e si sommano algebricamente gli esponenti
  • Se necessario si scala la mantissa per normalizzarla e si riaggiusta l’esponente
  • Esempio ( Notazione IEEE 754 ) n 3 = n 1 x n 2 n 1 : 0 10011001 10010111011100101100111 n 2 : 1 10101010 10000000000000000000000 e 1 = (26) 10 , e 2 = (43) (^10)
    • e 1 + e 2 = (69) 10 = 11000100
    • m 1 x m 2 = 10.
    • si scala la mantissa di un posto
    • si aumenta di 1 l’esponente n 3 : 1 11000101 00110001100101100001101

N.B.: ricordare il bit implicito delle mantisse nella moltiplicazione

Architetture dei Calcolatori 2004/

Modalità di arrotondamento

  • Lo standard IEEE 754 prevede 4 modalità di arrotondamento
  • Arrotondamento al valore pari più vicino (più usato)
    • Al valore la cui cifra meno significativa è pari (si ha così sempre 0 nella cifra meno significativa)
  • Arrotondamento a zero (troncamento)
  • Arrotondamento a +∞
  • Arrotondamento a -∞

Architetture dei Calcolatori 2004/ Valeria Cardellini 30

Esempio 1 (2)

  • Estremi degli intervalli e numerali -128 ≤ e ≤ 127
  • Numero più grande: ~2 128 X 11111111 1111111
  • 2 255-128^ =2^127 ~
  • Numero più piccolo: 2 - X 00000000 0000000
  • 2 0-128^1
  • Intervalli: (-2 128 , -2 -128^ ] [2 -128^ , 2 128 )
  • Ordini di grandezza decimale 2 128 = 2 3·40 + 8^ = 2 8 (2 40 ) 3 ∼ 28 (10 12 ) 3 = 256·10 36 = 2.56·10 38

esp mantissa

Architetture dei Calcolatori 2004/

Esempio 1 (3)

  • Rappresentare nella notazione data il numero n rappresentato in CP2 dai tre byte FF5AB (FF5AB9) (^) CP2 = 1111 1111 0101 1010 1011 1001 = = -(0000 0000 1010 0101 0100 0111) = = -(2 15 +2 13 +2^10 +2 8 +2 6 +2 2 +2 1 +2 0 )= = -2 15 (2 0 +2 -2+2 -5+2 -7+2 -9+2 -13+2 -14+2 -15) - Esponente 15+128 = (143) 10 = (10001111) (^2) - Mantissa 0100101 - La rappresentazione chiesta è quindi: 1 10001111 0100101
  • Errore relativo ed assoluto
    • Errore assoluto e (^) A e (^) A = n – n’ = -2 15 (2 0 +2 -2+2 -5+2 -7+2 -9+2 -13+2 -14+2 -15) +
      • 2 15 (2 0 +2 -2+2 -5+2 -7) = -2 15 (2 -9+2 -13+2 -14^ +2 -15) = -(2 6 +2 2 +2 1 +2 0 ) = -
    • Errore relativo e (^) R e (^) R = e (^) A/n ∼ 2 -9^ (vedi il rapporto tra e (^) A ed n)

Architetture dei Calcolatori 2004/ Valeria Cardellini 32

Esempio 2

  • Rappresentazione binaria in virgola mobile a 16 bit:
    • 1 bit per il segno (0=positivo)
    • 8 bit per l'esponente, in eccesso 128
    • 7 bit per la parte frazionaria della mantissa normalizzata tra 1 e 2
  • Dato il numero razionale m rappresentato in tale notazione dai due byte 43A5, calcolare l’intero n che approssima m per difetto, e rappresentarlo in complemento a 2 con 16 bit

Architetture dei Calcolatori 2004/

Esempio 2 (2)

  • m = 43A5 = (0100 0011 1010 0101) 0 10000111 0100101 - Segno positivo (+) - Esponente: 2^7 +2^2 +2^1 +2^0 -2^7 = 7 - Mantissa: 1+2-2^ +2 -5^ +2 - - n = 2^7 ·(2^0 +2-2^ +2 -5^ +2-7^ ) = 2^7 +2^5 +2^2 +2^0 = (165) 10 = = (10100101) (^2) - In CP2 con 16 bit: 0000000010100101

Architetture dei Calcolatori 2004/

Esempio 4 (2)

  • 1 bit per il segno, 7 bit per l’esponente in eccesso 64, 8 bit per la parte frazionaria della mantissa m = FA53 = 1111 1010 0101 0011 m = 1 1111010 01010011 n = E8F2 = 1110 1000 1111 0010 n = 1 1101000 11110010 e (^) m = 1111010 = 2 6 +2 5 +2 4 +2 3 +2 1 -64= e (^) n = 1101000 = 2 6 +2 5 +2 3 -64=
  • Occorre scalare m (^) n di 18 posizioni mn’ = 00000000 m = 1 1111010 01010011 n’ = 1 1111010 00000000 1 1111010 01010011