Unità di informazione

Da Wikipedia, l'enciclopedia libera.

In informatica e telecomunicazioni, per unità di informazione si intende la capacità di un dato sistema di memorizzazione o canale di comunicazione, usato come termine di paragone per misurare la capacità di altri sistemi di memorizzazione o canali di comunicazione.

Nella teoria dell'informazione, il concetto di unità di informazione è legato ai concetti di contenuto di informazione e/o entropia di variabili aleatorie.

Le unità più comuni sono il bit, come capacità di un sistema che può esistere in soli due stati, ed il byte, che è l'equivalente di otto bit. Multipli di queste unità possono essere utilizzate aggiungendovi i prefissi del Sistema Internazionale o i prefissi per multipli binari secondo la standardizzazione definita dal IEC.

Unità primarie[modifica | modifica sorgente]

Comparazione tra differenti unità di informazione: bit, trit, nat, ban. La quantità di informazione equivale all'altezza delle barre.

Nel 1928, Ralph Hartley osservò un principio di memorizzazione fondamentale[1] che fu in seguito formalizzato da Claude Shannon nel 1945: la quantità di informazione che può essere memorizzata in un sistema è proporzionale al logaritmo logb N del numero N di possibili stati del sistema. Cambiando la base del logaritmo da b in un differente numero c, si ottiene l'effetto di moltiplicare il valore del logaritmo per un valore costante logc N = (logc b) logb N. Quindi la scelta della base b determina l'unità utilizzata per misurare l'informazione. In particolare se b è un numero naturale, l'unità corrisponde alla quantità di informazione che può essere memorizzata in un sistema con b possibili stati.

Quando b vale 2, l'unità è il bit (contrazione di binary digit). Un sistema con 8 possibili stati, per esempio, può memorizzare fino a log28 = 3 bit di informazione. Altre unità di informazione spesso usate includono:

  • b = 3: l'unità informativa è chiamata "trit" (contrazione di Ternary numeral system), e corrisponde a log2 3 (≈ 1.585) bit[2].
  • b = 10: l'unità informativa è chiamata digit decimale, hartley, ban, decit, o dit, e corrisponde a log2 10 (≈ 3.322) bit.[1][3][4][5].
  • b = e (numero di Nepero): l'unità informativa è chiamata nat, nit, or nepit (da John Napier), ed equivale a log2 e (≈ 1.443) bit[1].

Trit, ban, e nat sono utilizzati raramente per misurare capacità di memorizzazione, ma il nat, in particolare, è spesso usato in teoria dell'informazione, poiché i logaritmi naturali sono più semplici da maneggiare a livello di formalismo matematico.

Unità derivate[modifica | modifica sorgente]

Numerosi nomi sono stati adottati per designare gruppi di bit

Byte[modifica | modifica sorgente]

Storicamente, un byte era il numero di bit necessari per codificare un carattere di testo all'interno di un computer (definizione dipendente quindi dall'architettura dell'elaboratore); oggi, tuttavia, assume sempre il significato di otto bit. Un byte può quindi rappresentare 28 = 256 distinti valori, come ad esempio i numeri interi tra 0 e 255, o tra -128 e 127. Lo standard IEEE 1541-2002 stabilisce che "B" (lettera maiuscola) è il simbolo che indica il byte. I Byte, ed i multipli di essi, sono sempre utilizzati per indicare la grandezza di file e la capacità di memorizzazione di computer.

Nibble[modifica | modifica sorgente]

Un gruppo di quattro bit è chiamato nibble. Questa unità è spesso utilizzata nella rappresentazione esadecimale, poiché un nibble contiene la stessa quantità di informazione di una cifra esadecimale[6].

Word, blocchi e pagine[modifica | modifica sorgente]

I computer generalmente manipolano i bit in gruppi di grandezza prefissata, convenzionalmente chiamati word. Il numero di bit all'interno di una word è generalmente definito dalla grandezza dei registri della CPU, o dal numero di bit che sono spostati dalla memoria principale in una singola operazione.

Alcuni linguaggi macchina utilizzano gruppi di due words (un "double word" o "dword"), o quattro words (un "quad word" o "quad").

La memoria cache di un computer generalmente opera su blocchi di memoria che consistono in diverse word consecutive. Queste unità sono a volte chiamate blocchi cache o cache lines.

Il sistema di memoria virtuale partiziona la memoria principale del computer in unità ancora più grandi, tradizionalmente chiamate pagine.

Multipli sistematici del bit e del byte[modifica | modifica sorgente]

Utilizzando i prefissi standard del Sistema Internazionale si possono ottenere termini per gruppi di bit espressi in potenze di 10: kilo- = 103 = 1000 (kilobit o kbit), mega- = 106 = 1000000 (megabit o Mbit) e giga- = 109 = 1 000 000 000 (gigabit or Gbit). Questi prefissi sono più spesso utilizzati per i multipli del byte, esempi sono il kilobyte (kB = 8000 bit), il megabyte (1 MB = 8 000 000 bit), ed il gigabyte (1 GB = 8 000 000 000).

Tuttavia, per ragioni tecniche, le capacità delle memorie dei computer sono spesso multipli di una grande potenza di due, come ad esempio 228 = 268 435 456 byte. Per evitare di utilizzare numeri "scomodi", spesso si utilizzano i prefissi del Sistema Internazionale per indicare la più vicina potenza di due, ad esempio utilizzando il prefisso kilo per 210 = 1024, mega per 220 = 1 048 576, e giga per 230 = 1 073 741 824, e così via. Per esempio, un chip di memoria RAM con una capacità di 228 byte è indicato come un chip da 256 megabyte. La tabella sottostante illustra queste differenze.

Symbol Prefix Significato SI Significato binario Differenza di dimensioni
K kilo 103   = 10001 210 = 10241 2.40%
M mega 106   = 10002 220 = 10242 4.86%
G giga 109   = 10003 230 = 10243 7.37%
T tera 1012 = 10004 240 = 10244 9.95%
P peta 1015 = 10005 250 = 10245 12.59%
E exa 1018 = 10006 260 = 10246 15.29%
Z zetta 1021 = 10007 270 = 10247 18.06%
Y yotta 1024 = 10008 280 = 10248 20.89%

Nel passato, la lettera maiuscola K veniva utilizzata in luogo della lettera minuscola k per indicare 1024 invece di 1000. Tuttavia, questa differenza di simbologia non è mai stata applicata coerentemente. Dall'altro lato, per sistemi di memorizzazione esterna (come dischi ottici), i prefissi SI vengono utilizzati con il loro significato originario (potenze di 10).

Ci sono stati numerosi tentativi di risolvere la confusione utilizzando notazioni alternative per i multipli espressi sotto forma di potenze di due. Nel 1998 lo IEC ha pubblicato uno standard che definisce una serie di prefissi binari che utilizzano 1024 invece di 1000 come radice principale[7]:

Simbolo Prefisso
Ki kibi, binary kilo 1 kibibyte (KiB) 210 byte 1024 B
Mi mebi, binary mega 1 mebibyte (MiB) 220 byte 1024 KiB
Gi gibi, binary giga 1 gibibyte (GiB) 230 byte 1024 MiB
Ti tebi, binary tera 1 tebibyte (TiB) 240 byte 1024 GiB
Pi pebi, binary peta 1 pebibyte (PiB) 250 byte 1024 TiB
Ei exbi, binary exa 1 exbibyte (EiB) 260 byte 1024 PiB

Tuttavia, lo standard JEDEC definisce le lettere maiuscole K, M, e G per le potenze binarie 210, 220, 230, e 240 per rispecchiare l'utilizzo comune[8].

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

Note[modifica | modifica sorgente]

  1. ^ a b c (EN) Norman Abramson, Information theory and coding, McGraw-Hill, 1963.
  2. ^ (EN) Donald E. Knuth, Seminumerical algorithms in The Art of Computer programming, vol. 2.
  3. ^ (EN) Shanmugam, Digital and Analog Computer Systems, 2006.
  4. ^ (EN) Gregg Jaeger, Quantum information: an overview, 2007.
  5. ^ (EN) I. Ravi Kumar, Comprehensive Statistical Theory of Communication, 2001.
  6. ^ dictionary reference.com, titolo=Nybble http://dictionary.reference.com/browse/nybble titolo=Nybble. URL consultato il 12 agosto 2012.
  7. ^ . Lo standard ISO/IEC è ISO/IEC 80000-13:2008. Questo standard cancella e sostituisce i commi 3.8 e 3.9 di IEC 60027-2:2005. L'unica differenza sostanziale è l'aggiunta di definizioni esplicite per alcune quantità. ISO Online Catalogue.
  8. ^ JEDEC Solid State Technology Association, Terms, Definitions, and Letter Symbols for Microcomputers, Microprocessors, and Memory Integrated Circuits in JESD 100B.01, dicembre 2002. URL consultato il 5 aprile 2009.