Rappresentazione delle informazioni Occorre un codice Legato alla tecnologia usata • Robustezza • Semplicita’ • Economicita’ 1 © 1999 Roberto Bisiani Rappresentazione delle informazioni, cont. Numeri • Rappresentazione decimale codificata • Rappresentazione posizionale – Intera positiva e negativa – Floating point (virgola mobile) Informazione alfanumerica • Codice ASCII (8 bit) • Unicode (16 bit) Indirizzi • Rappresentazione posizionale – Intera positiva 2 © 1999 Roberto Bisiani Memoria Numero di parole (milioni di byte) Word, byte, … Dimensioni di parola (8, 16, 32, 64 bit) 3 © 1999 Roberto Bisiani Indirizzi Necessari per memorizzare informazioni complesse Indicano (puntano a) una locazione di memoria Numeri positivi interi Legame indirizzo massimo –dimensioni di parola di memoria In un’architettura vengono usate diverse dimensioni di parola: • Di memoria – Logico – Fisico • Del data-path • Dei bus di interconnessione 4 © 1999 Roberto Bisiani Numeri interi positivi Quindi • Dati • Indirizzi Rappresentazione posizionale in base 10: • Simboli uguali assumono valori diversi a seconda della loro posizione nel numero • Somma delle potenze del 10 pesate per il valore del simbolo corrispondente – In un calcolatore viene solitamente usata la base 2. Vantaggi: • Semplice da leggere • Aritmetica semplice (provare con i numeri “romani”) 5 © 1999 Roberto Bisiani Altre basi Per convenienza si usano a volte altre base per manipolare esternamente le informazioni all’interno di un calcolatore. Ottale (base 8) Esadecimale (base 16) MA LA RAPPRESENTAZIONE INTERNA NON CAMBIA!!!! 6 © 1999 Roberto Bisiani Altre basi Non a caso sono basi “potenza di 2” • La conversione da e a binario e’ molto facile 7 Il loro uso e’ superato grazie alla potenza delle interfacce utente. © 1999 Roberto Bisiani Conversioni Base B decimale Basta rappresentare usando una rappresentazione decimale come potenze di B e poi fare i conti. Es. 01001 0 * 24 + 1 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 8 + 1 = 9 8 © 1999 Roberto Bisiani Conversioni, cont. 9 © 1999 Roberto Bisiani Conversioni, cont. Non sempre si puo’ rappresentare un numero finitamente in due basi diverse. Esempio: il numero 0,357 base 10 non si puo` rappresentare finitamente in base 2: 0,357 * 2 = 0,714 e segno quindi 0 0,714 * 2 = 1,428 e segno quindi 1 0,428 * 2 = 0,856 e segno quindi 0 0,856 * 2 = 1,712 e segno quindi 1 0,712 * 2 = 1,424 e segno quindi 1 ......... 10 © 1999 Roberto Bisiani Numeri negativi Segno e grandezza • Non efficente nell’implementare le operazioni aritmentiche 11 © 1999 Roberto Bisiani Numeri negativi, cont. 12 Complemento a uno © 1999 Roberto Bisiani Numeri negativi, cont. 13 Complemento a uno: due zeri, negazione facendo il complemento bit a bit © 1999 Roberto Bisiani Numeri negativi, cont 14 Complemento a due: uno zero, negazione facendo complemento a 1 e somma di 1. © 1999 Roberto Bisiani Operazioni aritmetiche 15 Numeri positivi: bit a bit dato che si tratta di una rappresentazione posizionale Numeri negativi: le rappresentazioni in complemento permettono di utilizzare sempre la somma anche per sottrarre © 1999 Roberto Bisiani Overflow Overflow traboccamento • Si verifica se il risultato di un’operazione non puo’ essere rappresentato con il numero di bit a disposizione Nel caso di complemento a due (la norma): • Si verifica solo se i segni sono uguali -124+ 10000100 67= 01000011 _____ ________ -57 11000111 70+ 01000110 70= 01000110 ____ ________ 140 10001100 16 Segni discordi. Risultato corretto. Segni concordi. Risultato scorretto (140 è fuori dal range):OVERFLOW. © 1999 Roberto Bisiani Numeri frazionari 17 Fixed point © 1999 Roberto Bisiani Numeri frazionari Floating point come la notazione scientifica esponenziale Aumenta la gamma di valori rappresentabili Diminuisce e dimenta variabile la precisione: • NON TUTTI I VALORI SONO RAPPRESENTABILI!!!!!!! • Esempio: 1753.427 si puo’ rappresentare come: 0.1753427*10^4=1.753427*10^3=...=1753427*10^-3 18 © 1999 Roberto Bisiani Gamma di rappresentazione Le possibilita’ di rappresentare un certo valore non sono uniformi in tutta la gamma di valori rappresentabili. Vedere figura B-1 (Numeri floating point ) 19 © 1999 Roberto Bisiani Una possibile rappresentazione floating point Standard IEEE 754 • Singola precisione, 32 bit • Doppia precisione, 64 20 © 1999 Roberto Bisiani Standard floating point 21 I numeri sono sempre normalizzati, cioe’ la parte frazionaria e’ del tipo 1.xxxxxxxxx…. Il primo 1 non viene rappresentato perche’ implicito Lo zero si rappresenta con un esponente e frazione a zero © 1999 Roberto Bisiani Rappresentazione dell’esponente Biased, cioe’ “spostata” di meta’ della precisione possibile Esempio: se l’esponente e’ di 8 bit invece di rappresentare l’esponente in complemento (da –128 a +127) lo si rappresenta come: • Esponente reale + 128 • Quindi l’esponente reale –128 viene rappresentato come 0, l’esponente reale 0 come 128 22 Perche’? Per far si’ che due numeri floating point siano confrontabili in grandezza dagli stessi circuiti che confrontano i numeri interi. © 1999 Roberto Bisiani Esempio 23 A cosa corrisponde questo numero? Il bit di segno è 1, mentre il campo esponente contiene 129 e il campo significant contiene 1x2^-2: il numero corrispondente alla notazione è quindi -1.01 x 2^2, che corrisponde al numero decimale -1.25 x 4=-5.0 © 1999 Roberto Bisiani