Firmware Division & Floating pointer adder

Documenti analoghi
Firmware Division & Floating gpointer adder

Firmware Division. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Architettura degli Elaboratori

Numeri reali. Notazione scientifica (decimale) Floating Point. Normalizzazione. Esempi. Aritmetica del calcolatore (virgola mobile)

Moltiplicazioni e Divisioni. G. Michele Pinna (1)

Lezione 7 ALU: Moltiplicazione e divisione

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL

Moltiplicazione e Divisione tra numeri relativi

Codifica. Rappresentazione di numeri in memoria

Lezione 7 Sommatori e Moltiplicatori

CONVERSIONE DA DECIMALE A BINARIO

La codifica binaria. Sommario

Sistema Numerico Decimale

Esercitazione del 2/3/2010- Numeri binari e conversione

Laboratorio del 21/10/2010- Numeri binari e conversione

Aritmetica dei Calcolatori Elettronici

Rappresentazione dei Numeri

Rappresentazione dei numeri reali in un calcolatore

Rappresentazione dell informazione

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Esercitazione del 09/03/ Soluzioni

Conversione binario-decimale. Interi unsigned in base 2. Esercitazioni su rappresentazione. dei numeri e aritmetica

Architetture aritmetiche

LA TRASMISSIONE DELLE INFORMAZIONI SECONDA PARTE 1

Esercitazione Informatica I (Parte 1) AA Nicola Paoletti

La rappresentazione dei dati

La rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Somma di numeri binari

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Codifica di informazioni numeriche

Lezione 2. Rappresentazione dell informazione

Rappresentazione di numeri reali. Architetture dei Calcolatori (Lettere. Perché la rappresentazione in virgola mobile

Sistemi di Numerazione Binaria

Lezione 6. Lezione 6

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica:

Lezione 4. Lezione 4. Rappresentazioni numeriche. Rappresentazioni numeriche. Rappresentazioni numeriche. Rappresentazioni numeriche

Esercitazione n. 5. Rappresentazione dei numeri

Lezione 3. I numeri relativi

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica:

Lezione 2. Rappresentazione dell informazione

Sperimentazioni di Fisica I mod. A Lezione 3

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Calcolatori: Rappresentazione dei Dati e Aritmetica binaria

UNIVERSITÁ POLITECNICA DELLE MARCHE

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

GLI ERRORI. Problema. valutare l'accuratezza del risultato di un calcolo e quindi l'affidabilità del risultato stesso. Prof.

Fondamenti di Informatica - 1. Esercizi A.A. 2011/2012

Rappresentazione numeri relativi e reali

Argomenti trattati: Rappresentazione dell informazione. Proprietà di una codifica: Codifica: Teoria generale

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Codifica binaria. Rappresentazioni medianti basi diverse

Calcolatori Elettronici Parte II: Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

La codifica. dell informazione

1.2f: Operazioni Binarie

Calcolo numerico e programmazione Rappresentazione dei numeri

Rappresentazione di numeri interi

Utilizzata per rappresentare numeri frazionari nella. numero =(mantissa) 2 esponente. Il formato piu utilizzato e quello IEEE P754, rappresentato

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Numeri binari Conversioni numeriche: decimali-binario Operazioni algebriche con numeri binari Russo ing. Saverio

Rappresentazione di numeri reali. Rappresentazione in virgola mobile. Perché la rappresentazione in virgola mobile. Rappresentazione in virgola mobile

Aritmetica dei Calcolatori 3

04 Aritmetica del calcolatore

Gli errori nella risoluzione di un problema

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Rappresentazione dei Dati

Decimale, binaria,esadecimale

Lezione 2. La conoscenza del mondo

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Rappresentazione in virgola mobile

Rappresentazione e Codifica dell Informazione

Rappresentazione dell informazione

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Rappresentazione e Codifica dell Informazione

Riassunto Nell'esercitazione di oggi e' stata introdotta la codifica binaria naturale, intera e razionale in virgola fissa. Il materiale teorico

Aritmetica dei Calcolatori

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Aritmetica in virgola mobile Algebra di Boole e reti logiche Esercizi. Mercoledì 8 ottobre 2014

Rappresentazione dei dati in memoria

Rappresentazione e Codifica dell Informazione

Moltiplicazione. Divisione. Multipli e divisori

Algebra di Boole e porte logiche

Rappresentazione dell Informazione

Rappresentazione di dati: numerazione binaria. Appunti per la cl. 3 Di A cura del prof. Ing. Mario Catalano

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Le quattro operazioni fondamentali

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

I.4 Rappresentazione dell informazione

ESERCIZIARIO DI MATEMATICA

NUMERO RELATIVO. È caratterizzato da: segno positivo (+) o negativo (-) parte numerica che è detta valore assoluto

Lezione 4. Lezione 4. Rappresentazioni numeriche. Rappresentazioni numeriche. Rappresentazioni numeriche. Rappresentazioni numeriche

Lezione 4. Lezione 4

Informatica Generale 1 - Esercitazioni Flowgraph, algebra di Boole e calcolo binario

Rappresentazione dei numeri ed aritmetica di

La codifica binaria. Informatica B. Daniele Loiacono

Operazioni in N Le quattro operazioni Definizioni e Proprietà

I sistemi di numerazione e la numerazione binaria

Transcript:

Firmware Division & Floating pointer adder Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimenti sul Patterson: 3.4, 3.5 1/47 Sommario Divisione intera Somma in virgola mobile 2/47 1

Implementazione circuitale gli stessi attori della moltiplicazione A - moltiplicando (shift a sx), 64 bit ALU 64 B moltiplicatore, 32 bit P Prodotto, 64 bit Controllo 3/47 Algoritmi per la moltiplicazione Il razionale degli algoritmi firmware della moltiplicazione è il seguente. Si analizzano sequenzialmente i bit del moltiplicatore e: 1) Si mette 0 nella posizione opportuna (se il bit analizzato del moltiplicatore = 0). 2) Si mette una copia del moltiplicando nella posizione opportuna (se il bit analizzato del moltiplicatore è = 1). Moltiplicando Moltiplicatore Prodotto La moltiplicazione viene effettuata come somme successive, con peso crescente, di uno tra i 2 valori: {moltiplicando, 0} 1 1 0 1 1 x 1 0 1 = ---------------------- 1 1 0 1 1 + 0 0 0 0 0 - --------------------- 1 1 0 1 1 1 1 0 1 1 - - ----------------------- 1 0 0 0 0 1 1 1 4/47 2

La divisione decimale Dividendo Divisore - - 2516 : 12 = 209 116 8 Resto Quoziente Dividendo = Divisore * Quoziente (quoto) + Resto 5/47 - - - - 2516 : 12 = 0209 12x0 = 0 = ---- 25-12x2 = 24= ----- 11-12x0 = 0= ------- 12x9 = 116-108 = ------- 8 Resto La divisione decimale Dividendo = Divisore * Quoziente (quoto) + Resto 6/47 3

La divisione decimale::algoritmo Passo 1) 2 5 1 6 : 0012 = 0209 Il 12 nel 2 ci sta 0 volte. -0 12 x 0 = 0 -- 2 Resto parziale - I Passo 2) 2 5 Considero il 5 del divisore e lo affianco al resto parziale. Il 12 nel 25 ci sta 2 volte. -2 4 12 x 2 = 24 ----- 1 Resto parziale - II Passo 3) 1 1 Considero l 1 del dividendo e lo affianco al resto parziale. Il 12 nell 11 ci sta 0 volte. -0 12 x 0 = 0 ----- 1 1 Resto parziale III Passo 4) 1 1 6 Considero il 6 del dividendo e lo affiunco al resto parziale. Il 12 nel 16 ci sta 1 volta. -1 0 8 12 x 9 = 108 ------ 8 Resto parziale IV = RESTO 7/47 La divisione tra numeri binari Divisione decimale fra i numeri a = 1.001.010 e b = 1.000 a : b =? 1001010 : 1000 = 1 Dividendo : Divisore 74 : 8 = 9 resto 2 1000- ----- 1 - - - 1001010 : 1000 = 1001 Quoziente 1000- ----- 1010 Resto parziale 1000- ----- 10 Resto Dividendo = Quoziente x Divisore + Resto 8/47 4

Confronto tra moltiplicazione e divisione La moltiplicazione opera per somme successive di quantità pesate con peso crescente. La sottrazione opera erodendo dal dividendo somme successive di quantità pesate con peso decrescente. 9/47 Confronto tra divisione tra numeri binari e decimali In DECIMALE: Ad ogni passo devo verificare QUANTE VOLTE il resto parziale contiene il divisore. Il risultato è un numero che va da 0 a 9 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} In BINARIO: Ad ogni passo devo verificare SE il resto parziale contiene il divisore. Ovverosia se lo contiene 0 o 1 volta. Il risultato è un numero che può valere {0, 1}. In DECIMALE: Il numero che viene sottratto al resto parziale è ottenuto moltiplicando il divisore per una delle cifre da 0 a 9. In BINARIO: Il numero che viene sottratto al resto parziale può essere solamente 0 o il DIVISORE stesso In entrambi i casi il quoziente si forma dalla cifra più significativa, cioè da sinistra a destra. 10/47 5

Peculiarità della divisione Come rappresento la condizione il divisore è contenuto nel resto parziale? Esempi: 10 (resto parziale) non è contenuto in 1000 (divisore) 1001 (resto parziale è contenuto in 1000 (divisore) Per tentativo. Eseguo la sottrazione. Risultato >= 0 il resto parziale è contenuto nel divisore. Risultato < 0 il resto parziale non è contenuto nel divisore (è più piccolo del divisore). Osserviamo che nel secondo caso abbiamo fatto in realtà una sottrazione che non avremmo dovuto effettuare. NB il calcolatore non può sapere se il resto parziale contiene il divisore fino a quando non ha effettuato la sottrazione. 11/47 La divisione tra numeri binari Divisione decimale fra i numeri a = 100 1010 e b = 000 1000 a : b =? 74 : 8=? Nel primo passaggio allineo il divisore con la prima cifra significativa (=1) del dividendo. 000 000 100 1010-000 000 100 1010 + (Resto parziale = dividendo)-divisore * 2 6 000 100 000 0000 = 111 100 000 0000 = ---------------------- ------------------------ 111100100 1010 111 100 100 1010 ( = -438 10 ) Nuovo resto parziale 12/47 6

Note e strategia di implementazione I bit del dividendo vengono analizzati da sx a dx. Il divisore viene spostato verso dx di 1 bit ad ogni passo. Il quoziente cresce dal bit più significativo verso il bit meno significativo. Cresce verso dx. All inizio il divisore è allineato alla sinistra del dividendo: le cifre del dividendo sono allineate agli 0 del divisore e gli 0 del dividendo sono allineati alle cifre del divisore. Ci sono N+1 passi di divisione, il primo darà sempre 0 e si potrebbe omettere. Occorre quindi effettuare: Shift quoziente a sx ad ogni passo. Scrittura di 1 o 0 nel registro quoziente. Shift del divisore verso dx ad ogni passo.. Utilizzo un unico registro per dividendo e resto. Considero il primo resto parziale uguale al dividendo (inizializzazione). Il primo passo sarà a vuoto perchè produrrà sempre quoziente 0. 13/47 Inizializzazione: Resto = [0 Dividendo] Divisore = [Divisore 0] Quoziente = 0 k = 0 Divisione:: algoritmo per 32 bit 14/47 7

Il circuito firmware della divisione Inizializzazione: Resto = 0 Dividendo sub, add 1 bit (segno) Shift left Write {0, 1} 15/47 Esempio Divisione decimale fra i numeri a = 7 e b = 2 a : b =? Inizializzo il divisore alla sinistra delle quattro cifre significative. La prima cifra del quoziente sarà sempre 0. 16/47 8

Esempio step 1 Il resto parziale è inizializzato a: [0 dividendo]: 0000 0111 0000 0111 : 0010 = Il divisore non è contenuto nel resto parziale -0010 0000 -------- <0 Osservando i registri, in pratica, eseguiamo la differenza tra: 0000 0111 7 - Resto parziale 0010 0000 = 32 = 2*2 4 - Divisore allineato al di fuori e alla sx dei 4 bit del dividendo. ------------- 1110 0111+ -25 10 < 0 0010 0000= ------------- 0000 0111 +7 17/47 Quoziente al passo 1: 0 Storno la sottrazione Esempio step 2 Il resto parziale è ancora uguale al dividendo: 0000 0111 0000 0111 : 0010 = Il divisore (0001 0000) non è contenuto nel resto parziale -0001 0000 --------------- <0 Osservando i registri, in pratica, eseguiamo la differenza tra: 0000 0111 7 - Resto parziale 0001 0000 = 16 = 2*2 3 - Divisore allineato al MSB dei 4 bit del dividendo. ------------- 1111 0111+ -9 10 + < 0 0001 0000= 16 ------------- 0000 0111 +7 18/47 Quoziente al passo 2: 00 Storno ancora la sottrazione 9

Esempio step 3 Il resto parziale è ancora uguale al dividendo: 0000 0111 0000 0111 : 0010 = Il divisore (0000 1000) non è contenuto nel resto parziale (0111) -0000 1000 ----------- <0 Osservando i registri, in pratica, eseguiamo la differenza tra: 0000 0111 7 - Resto parziale 0000 1000 = 8 = 2 * 2 2 - Divisore allineato al terzo dei 4 bit del dividendo. ------------- 1111 1111+ -1 10 < 0 0000 1000= +8 ------------- 0000 0111 +7 Quoziente al passo 3: 000 Storno ancora la sottrazione 19/47 Esempio step 4 Il resto parziale è ancora uguale al dividendo: 0000 0111 0000 0111 : 0010 = Il divisore (0000 0010) è contenuto nel resto parziale -0000 0100 -------- 0 001 > 0 Osservando i registri, in pratica, eseguiamo la differenza tra: 0000 0111 Resto parziale 0000 0100 = Divisore allineato al secondo dei 4 bit del dividendo. ------------- 0000 0011 3 10 E il nuovo resto parziale 7 1*2 2 = 3 Quoziente al passo 4: 0001 Non storno la sottrazione. Il resto non è più uguale al dividendo. 20/47 10

Esempio step 5 Il resto parziale = 0000 0011 0000 0111 : 0010 = Il divisore (0010) è contenuto nel resto parziale -0000 0010 -------- 0001 > 0 Osservando i registri, in pratica, eseguiamo la differenza tra: 0000 0011 Resto parziale 0000 0010 = Divisore allineato LSB dei 4 bit del dividendo. ------------- 0000 0001 1 10 E il nuovo resto parziale 3 1*2 1 = 1 RESTO FINALE Quoziente al passo 5: 00011 21/47 Divisione:: algoritmo 22/47 11

Inizializzazione: Resto = Dividendo 1001010 : 1000 = 1-1000 ---------- 1010 Divisione:: passo 1 23/47 Inizializzazione: Resto = Dividendo 1001010 : 1000 = 10-1000- ---------- 1010-1000 ---------- < 0 Divisione:: passo 2 24/47 12

Inizializzazione: Resto = Dividendo 1001010 : 1000 = 100-1000- ---------- 1010-1000 ---------- < 0 Divisione:: passo 3 25/47 Inizializzazione: Resto = Dividendo 1001010 : 1000 = 1001-1000- ---------- 1010-1000 ----------- 10 Divisione:: passo 4 26/47 13

Come ottimizzare il circuito della divisione Il resto si sposta di 1 bit alla volta verso dx ma rimane pari al numero di bit della parola. Possiamo evitare di spostare il resto. Il divisore si sposta verso dx di un bit ad ogni passo e viene sottratto al resto parziale. Otteniamo lo stesso risultato se spostiamo il resto parziale a sx di un bit ad ogni passo. Il quoziente si sposta verso sx ad ogni passo. Inizializziamo il resto come RESTO = 0 DIVIDENDO. Alla fine avremo: RESTO QUOZIENTE. Ad ogni passo sposto il dividendo di una posizione a sx ed inserisco un bit del quoziente. 27/47 Il circuito firmware con un ottimizzazione Inizializzazione: Resto = 0 Dividendo 32 bits 32 bits-alu sub, add Shift Left Shift left Write {0, 1} 1 bit (segno) 28/47 14

Il circuito firmware ottimizzato della divisione Inizializzazione: Resto = 0 Dividendo All inizio 0 Dividendo Alla fine Resto Quoziente 29/47 Circuito ottimizzato della moltiplicazione A Moltiplicando, 32 bit 32 32 ALU 32 add 32 P Prodotto, 32 63 bit Moltiplicatore, 31 0 bit Shift dx Write Controllo 32 bit 32 bit Suddivisione logica di P, alla prima iterazione 30/47 15

Un unico circuito per moltiplicazione e divisione A Inizializzazione: A = Moltiplicando / Divisore B = Resto = 0 Dividendo / Prodotto Moltiplicatore B 31/47 Il segno della divisione Dividendo = Quoziente x Divisore + Resto + + + + - - - + - - - + Qual è il segno del resto? Esempio: +7 = +2 x +3 + 1-7 = -2 x +3-1 (sarebbe uguale anche a -2*+4 +1!!, ma cambierebbe il quoziente in funzione del segno del resto!) +7 = -2 x -3 + 1-7 = +2 x -3-1 Osserviamo che il quoziente è positivo se i segni di Divisore e Dividendo sono concordi. Il resto ha il segno del Dividendo. 32/47 16

Sommario Divisione intera Somma in virgola mobile 33/47 Codifica in virgola mobile Standard IEEE 754 (1980) Rappresentazione polarizzata dell esponente: Polarizzazione pari a 127 per singola precisione => 1 viene codificato come 1000 0000. Polarizzazione pari a 1023 in doppia precisione. 1 viene codificato come 1000 0000 000. 34/47 17

Esempio di somma in virgola mobile a = 9,999 x 10 1 b = 1,61 x 10-1 a + b =? NB I numeri decimali sono normalizzati. Una possibilità è: 99,99 + 0,161 = --------- 100,151 100,151 1,0015 x 10 2 in forma normalizzata 35/47 Algoritmo di somma in virgola mobile - I 1) Trasformare i due numeri in modo che le due rappresentazioni abbiano la stessa base: allineamento della virgola. Quale si allinea? 2) Effettuare la somma delle mantisse. Se il numero risultante è normalizzato termino qui. Altrimenti: 3) Normalizzare il risultato. 36/47 18

Algoritmo di somma in virgola mobile - II 1) Trasformare uno dei due numeri in modo che le due rappresentazioni abbiano la stessa base: allineamento della virgola. Si allinea all esponente più alto (denormalizzo il numero più piccolo). 2) Effettuare la somma delle mantisse. Se il numero risultante è normalizzato termino qui. Altrimenti: 3) Normalizzare il risultato. 37/47 Esempio di somma in virgola mobile - II a = 9,999 x 10 1 b = 1,61 x 10-1 a + b =? Supponiamo di avere a disposizione 4 cifre per la mantissa e due per l esponente. Devo trasformare uno dei numeri, una possibilità è: 9,999 x 10 1 + 0,016 x 10 1 = Perdo un bit perchè non rientra nella capacità della mantissa ----------------- 10,015 x 10 1 Il risultato non è più normalizzato, anche se i due addendi sono normalizzati. Normalizzazione per ottenere il risultato finale: 10,015 x 10 1 = 1,001 x 10 2 in forma normalizzata. NB: In questa fase si può generare la necessità di rinormalizzare il numero (passo 3): Esempio: 9,99999 x 10 2 => Arrotondo alla cifra più vicina => 10,00 x 10 3 => Normalizzazione => 1,0 x 10 4 38/47 19

Approssimazione Interi -> risultato esatto (o overflow) Numeri decimali -> Spesso occorrono delle approssimazioni Troncamento (floor): 1,001 x 10 2 (cf. Slide precedente) Arrotondamento alla cifra superiore (ceil): 1,002 x 10 2 Arrotondamento alla cifra più vicina: 1,002 x 10 2 IEEE754 prevede 2 bit aggiuntivi nei calcoli per mantenere l accuratezza. bit di guardia (guard) bit di arrotondamento (round) 39/47 Esempio: aritmetica in floating point accurata a = 2,34 b = 0,0256 a + b =? Codifica su 3 cifre decimali totali. Approssimazione mediante arrotondamento. Senza cifre di arrotondamento devo scrivere: 2,34 + 0,02 = ----- 2,36 Con il bit di guardia e di arrotondamento posso scrivere: 2,3400 + 0,0256 = -------- 2,3656 L arrotondamento finale fornisce per rintrare in 3 cifre decimali fornisce: 2,37 40/47 20

Algoritmo risultante 41/47 Il circuito della somma floating point: gli attori A + B C Rappresentazione normalizzata IEEE754 42/47 21

Il circuito della somma floating point: determinazione dell esponente comune exp 1 Mux exp 2 ALU 8 sub exp Controllo Exp somma = exp1 = 1 Confronto degli esponenti Esempio: 9,999 x 10 1 + 1,61 x 10-1 =? 1) 1,61 x 10-1 = 0,0161 x 10 1 => exp = +2 43/47 Il circuito della somma floating point: allineamento delle mantisse e somma Esempio: 9,999 x 10 1 + 1,61 x 10-1 =? 2) 9,999 x 10 1 + 0,0161 x 10 1 Mux Shift dx Mux 9,999 + 0,0161 = -------- 10,0151 exp Controllo Allineamento mantisse ALU 23 Somma mantisse (2) 44/47 22

Il circuito della somma floating point: arrotondamento e normalizzazione exp 1 exp 2 Mux Exp (1) exp Controllo Somma Mantisse (2) Shift dx Normalizzazione Mantissa (3) Increment +1? Exp normalizzato Normalizzazione Esponente (3) Circuito arrotondamento Mantissa Esempio: 9,999 x 10 1 + 1,61 x 10-1 =? 2) 9,999 x 10 1 + 0,0161 x 10 1 = 10,0151x 10 1 3) 10,0151x 10 1 => 1,00151x 10 2 4) 45/47 1,00151x 10 2 => 1,001x 10 2 Arrotondamento (4) Circuito della somma floating point Le tre linee in blu contengono lo stesso segnale di controllo. Gestisce anche la rinormalizzazione: 9,99999 x 10 2 = 10,00 x 10 3 Gestisce anche i numeri negativi. Problemi? 46/47 23

Esempio P = 0,5 0,4375 somma binaria con precisione di 4 bit. A = 1,000 x 2-1 B = -1,110 x 2-2 Espressione in forma normalizzata. 1) Allineamento di A e B. Trasformo B: -1,110 x 2-2 = -0,1110 x 2-1 2) Somma delle mantisse: 1,000 + (-0,111) = 0,001 x 2-1 3) Normalizzazione della somma: 0,001 x 2-1 = 1,000 x 2-4 Controllo di overflow o underflow: -126-4 127. 4) Arrotondamento della somma: 1,000 non lo richiede. 1,000 x 2-4 = 1/2 4 = 1/16 = 0,0625 c.v.d. 47/47 Circuito della somma floating point con bit di arrotondamento In quale caso la mantissa viene scalata a sx? In quale caso l esponente viene decrementato? 23bit 23bit La rappresentazione interna, secondo IEEE 754, prevede 2 bit aggiuntivi: bit di guardia e bit di arrotondamento. 25 bit! 25 bit! 48/47 23 bit 24

Prodotto e divisione in virgola mobile Prodotto delle mantisse Somma degli esponenti Normalizzazione Divisione in virgola mobile = Prodotto di un numero per il suo inverso. 49/47 Sommario Divisione intera Somma in virgola mobile 50/47 25