Remove ads
dimensione nativa dei dati usati da un computer Da Wikipedia, l'enciclopedia libera
In informatica, una parola (in inglese word) è l'unità d'informazione naturale caratteristica dell'architettura di un processore. Una parola è un gruppo di bit di una determinata dimensione che sono gestiti come unità dal set di istruzioni o dall'hardware di un processore. La dimensione (o lunghezza) della parola è un'importante caratteristica dell'architettura di un computer.
La sua dimensione influenza diversi aspetti della struttura e del funzionamento di un computer, poiché è la stessa della maggior parte dei registri dei microprocessori. Anche la dimensione dei dati trasferiti dalla CPU alla memoria è generalmente pari a quella di una parola. Infine, gli indirizzi usati per specificare posizioni di memoria sono usualmente singole parole.
I microprocessori moderni hanno normalmente parole di 16, 32 o 64 bit. Molte altre dimensioni sono state usate in passato, tra cui 12, 36 e 60 bit; lo slab è un esempio di una delle prime dimensioni di word. Molti dei primi computer erano decimali anziché binari, e avevano di solito word di 10 o 12 cifre decimali, e alcuni computer addirittura non avevano una word di lunghezza definita.
I microprocessori più comuni usati nei computer attuali sono basati sull'architettura IA-32 (ad esempio, i Pentium di Intel e gli Athlon di AMD). Questa architettura è un'estensione della struttura dell'Intel 8086, che aveva una word di 16 bit. L'architettura IA-32 supporta ancora il software scritto per l'8086, perciò il concetto di “word” nel contesto dell'IA-32 non è cambiato. Questo è spesso fonte di confusione, perché la word dell'IA-32 è a 32 bit, ma il termine “word” in questa architettura si riferisce ad una dimensione di 16 bit.
Per ragioni legate soprattutto alla portabilità del codice sorgente, nei linguaggi di programmazione il termine word viene usato in genere senza specificarne la dimensione, e viene considerato un tipo di dato. In questo caso indica sempre un gruppo di 16 bit. Viene usato insieme ad altri tipi di dato: nibble (4 bit), byte (8 bit), dword o double word (32 bit), qword o quad word (64 bit).
Quando un programma elabora dei dati di tipo word, deve tenere conto dell'ordine dei byte con cui vengono immagazzinati i dati.
In base a come è organizzato un computer, unità della dimensione di una word possono essere usati per:
Con l'aumento di complessità nel design dei computer, è diminuita l'importanza della dimensione della word nell'architettura. Questo a causa della maggior capacità dell'hardware di usare una gamma più ampia di dimensioni per i dati, in quanto dimensioni differenti hanno diversa efficacia nei vari contesti. Uno dei problemi però è la necessità di mantenere la retrocompatibilità, pur aumentando le prestazioni e le capacità dei processori. Come conseguenza la dimensione scelta per la word nel progetto originale deve poter coesistere con dimensioni alternative senza intaccare la compatibilità con il codice esistente.
Uno degli esempi più noti è l'architettura x86. Il progetto originale dell'8086 prevedeva chiaramente una word di 16 bit. Il progetto molto più evoluto dell'80386 aggiunse alla base dell'8086 un'organizzazione basata su unità di 32 bit. Se fosse stato un progetto privo di vincoli, avrebbe avuto una word di 32 bit, ma essendo un'estensione dell'8086 la dimensione della word ha continuato ad essere a 16 bit. La stessa situazione si è recentemente riproposta, con l'estensione di questa architettura a 64 bit.
Perciò l'architettura dei computer moderni, più che su di un'unica onnipresente dimensione di word, è basata su una "famiglia" di dimensioni strettamente legate fra loro (essendo potenze di 2 della dimensioni più piccola). Quindi sarebbe arbitrario definire una di queste dimensioni la word dell'architettura, ed è per queste ragioni storiche che il termine word oggi è quasi considerato semplicemente il sinonimo di “16 bit” (così come byte è il sinonimo di “8 bit”).
Quando si progetta l'architettura di un computer, la scelta della dimensione della word è di importanza sostanziale. Vi sono considerazioni di progetto che suggeriscono particolari dimensioni dei gruppi di bit per particolari usi (ad esempio, per gli indirizzi), e queste considerazioni portano a differenti dimensioni per i vari usi. Tuttavia, gli aspetti di economicità nella progettazione spingono per un'unica dimensione, o a una serie molto ridotta di dimensioni diverse ma risultanti da multipli o sottomultipli di una dimensione primaria. Questa dimensione preferenziale diventa la dimensione della word nell'architettura.
La dimensione del “carattere” è una di quelle che influenza la scelta della word. Prima della metà degli anni sessanta, i caratteri erano spesso registrati come numeri di 6 bit; questo permetteva di avere non più di 64 caratteri, quindi i letterali erano limitati alle maiuscole. Siccome è efficiente in termini di tempo e di spazio avere la word multipla della dimensione del carattere, le word in quel periodo erano multiple di 6 bit (nelle macchine binarie). Una scelta comune era la word a 36 bit, che era anche una buona dimensione per i numeri a virgola mobile.
Dopo l'introduzione da parte di IBM del System/360, il cui design usavano caratteri a 8 bit e che supportava anche le lettere minuscole, la dimensione standard dei caratteri (o, più precisamente, del byte) divenne di 8 bit. Di conseguenza la dimensione della word divenne naturalmente un multiplo di 8 bit, con word di 16, 32 e 64 bit.
Fra le prime architetture di computer ve ne erano alcune che usavano ciò che spesso è chiamata “word a lunghezza variabile”. In questo tipo di architettura, gli operandi numerici non hanno una dimensione fissa, ma la loro lunghezza è determinata da uno speciale carattere terminatore. Queste macchine usavano per i numeri la codifica BCD (binary-coded decimal); esempi sono l'IBM 702, l'IBM 1401 e l'IBM 1620.
Il modello di memoria di un'architettura è influenzato fortemente dalla dimensione della word. In particolare la risoluzione degli indirizzi di memoria (la più piccola unità di memoria che può essere indirizzata) è generalmente della dimensione di una word. In questo approccio, i valori degli indirizzi che differiscono di uno indicano word adiacenti in memoria. Questo è naturale per le macchine che lavorano quasi esclusivamente con word (o multipli di word), ed ha il vantaggio di permettere alle istruzioni di usare campi di dimensioni minime per contenere gli indirizzi, il che permette una dimensione più piccola delle istruzioni o un maggior numero di istruzioni.
Quando la gestione dei byte è parte significativa del carico di lavoro, è usualmente più vantaggioso usare il byte, anziché la word, come unità della risoluzione della memoria. Questo permette di accedere in maniera semplice ad un carattere arbitrario in una stringa. Una word può essere lo stesso indirizzata, ma l'indirizzo usato richiede alcuni bit in più dell'alternativa con risoluzione a word. In queste architetture la dimensione della word deve essere un valore intero multiplo della dimensione del byte. Questo approccio all'indirizzamento fu usato nell'IBM 360, e da allora è stato l'approccio più comune nel design dei computer.
I valori dei dati possono occupare dimensioni differenti in memoria perché, per esempio, alcuni numeri devono avere una precisione maggiore di altri. Le dimensioni usate comunemente sono scelte come potenze di 2 multiple dell'unità di risoluzione degli indirizzi (byte o word). Questo è comodo perché convertire l'indice di un elemento di un array nell'indirizzo di memoria dell'elemento richiede solo un'operazione di shift anziché una moltiplicazione. In alcuni casi questa relazione permette anche di evitare l'uso delle divisioni. Di conseguenza, molti dei computer moderni hanno dimensione della word (e degli altri operandi) che sono potenze di 2 della dimensione del byte.
Anno | Architettura del computer |
Dimensione della word (w) |
Dimensioni degli interi |
Dimensioni virgola mobile |
Dimensioni delle istruzioni |
Allineamento della memoria |
---|---|---|---|---|---|---|
1941 | Z3 | 22 b | – | w | 8 b | w |
1942 | ABC | 50 b | w | – | – | – |
1944 | Harvard Mark I | 23 d | w | – | 24 b | – |
1946 (1948) |
ENIAC | 10 d | w | – | – (2d ) |
– |
1951 | UNIVAC I | 12 d | w | – | ½w | w |
1952 | IAS machine | 40 b | w | – | ½w | w |
1952 | IBM 701 | 36 b | ½w, w | – | ½w | ½w |
1953 | IBM 702 | n d | 0d, ... 511d | – | 5d | d |
1954 | IBM 650 | 10 d | w | w | w | w |
1954 | IBM 704 | 36 b | w | w | w | w |
1954 | IBM 705 | n d | 0d, ... 255d | – | 5d | d |
1959 | IBM 1401 | n d | 1d, ... | – | d, 4d, 5d, 7d, 8d | d |
1959 | IBM 1620 | n d | 2d, ... | 4d, ... 102d | 12d | d |
1960 | LARC | 12 d | w, 2w | w, 2w | w | w |
1960 | PDP-1 | 18 b | w | – | w | w |
1961 | IBM 7030 Stretch | 64 b | 1b, ... 64b, 1d, ... 16d |
w | ½w, w | b, ½w, w |
1962 | IBM 7094 | 36 b | w | w, 2w | w | w |
1964 | CDC 6600 | 60 b | w | w | ¼w, ½w | w |
1965 | IBM 360 | 32 b | ½w, w, 1d, ... 16d |
w, 2w | ½w, w, 1½w | 8 b |
1965 | UNIVAC 1108 | 36 b | 1/6w, ¼w, 1/3w, ½w, w | w, 2w | w | w |
1965 | PDP-8 | 12 b | w | – | w | w |
1970 | PDP-11 | 16 b | w | 2w, 4w | w, 2w, 3w | 8 b |
1971 | Intel 4004 | 4 b | w | – | 2w, 4w | w |
1972 | Intel 8008 | 8 b | w | – | w, 2w, 3w | w |
1975 | Cray-1 | 64 b | 24 b, w | w | ¼w, ½w | w |
1978 (1980) |
Intel 8086 (w/Intel 8087) |
16 b | 8 b, w (w, 2w, 4w) |
– (2w, 4w, 5w, 17d) |
8, 16, 24, ... 112 b | 8 b |
1978 | VAX-11/780 | 32 b | 8 b, ½w, w, 1d, ... 31d, 1b, ... 32b | w, 2w | TBD | 8 b |
1979 | Motorola 68000 | 32 b | 8 b, ½w, w | – | ½w, w, ... TBD | 8 b |
1982 (1983) |
Motorola 68020 (w/Motorola 68881) |
32 b | 8 b, ½w, w | – (w, 2w, 2½w) |
½w, w, ... TBD | 8 b |
1985 | MIPS | 32 b | 8 b, ½w, w | w, 2w | w | 8 b |
1991 | PowerPC | 32 b | 8 b, ½w, w | w, 2w | w | 8 b |
2000 | Itanium (IA-64) | 64 b | 8 b, ¼w, ½w, w | ½w, w | 41 b | 8 b |
legenda: b: bit, d: cifre digitali, w: dimensione della word dell'architettura, n: dimensione variabile |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.