# Paraula (informàtica)

En el context de la informàtica, una paraula és una cadena finita de bits que són manejats com un conjunt per la màquina. Les mides o longitud d'una paraula fa referència al nombre de bits continguts en ella, i és un aspecte molt important en el moment de dissenyar una arquitectura de computadors.
La mida d'una paraula es reflecteix en molts aspectes de l'estructura i les operacions dels ordinadors. La majoria dels registres en un ordinador normalment tenen la mida de la paraula. El valor numèric típic manipulat per un ordinador és probablement la mida de paraula. La quantitat de dades transferides entre la CPU de l'ordinador i el sistema de memòria sovint és més d'una paraula. Una adreça utilitzada per designar una localització de memòria sovint ocupa una paraula.
Els ordinadors moderns normalment tenen una mida de paraula de 16, 32 o 64 bits. Moltes altres mides s'han utilitzat en el passat, com 8, 9, 12, 18, 24, 36, 39, 40, 48 i 60 bits. El slab és un exemple d'una de les primeres mides de paraula. Alguns dels primers ordinadors eren decimals en comptes de binaris, típicament tenien una grandària de paraula de 10 o 12 dígits decimals i alguns dels primers ordinadors no tenien una longitud de paraula fixa.
Algunes vegades, la mida d'una paraula es defineix per tenir un valor particular per compatibilitat amb els ordinadors anteriors. Els microprocessadors utilitzats en ordinadors personals (per exemple, els Intel Pentium i els AMD Athlon) són un exemple d'això. La seva arquitectura IA-32 és una extensió del disseny original del Intel 8086 que tenia una mida de paraula de 16 bits. Els processadors IA-32 segueixen suportant programes del 8086 (x86), així que el significat de "word" en el context IA-32 segueix sent el mateix i es continua dient que són 16 bits, malgrat el fet que en l'actualitat pot (i, especialment, quan la mida de l'operand per defecte és 32-bit) opera més com una màquina amb una mida de paraula de 32 bits. Similarment en la nova arquitectura x86-64, una "paraula" segueix sent 16 bits, encara que els operands de 64-bit ("quadruple paraula") siguin més comuns.
Depenent de com s'organitza un ordinador, les unitats de mida de paraula es poden utilitzar per:
* Nombres enters: els contenidors de valors numèrics enters poden estar disponibles en diverses grandàries diferents, però una de les mides disponibles gairebé sempre serà la paraula. Les altres mides, solen ser múltiples o fraccions de la grandària de paraula. Les mides més petites normalment s'utilitzen només per eficiència en la utilització de memòria, en carregar en el processador els seus valors normalment són majors contenidors de grandària paraula.
* Nombres en coma flotant: els contenidors per a valors numèrics en coma flotant són típicament una paraula o un múltiple d'una paraula.
* Adreces: els contenidors per a adreces de memòria han de ser capaços d'expressar el rang necessari de valors, però no excessivament grans. Sovint, la mida utilitzada és el de la paraula però pot ser un múltiple o una fracció.
* Registres: els registres són dissenyats amb una grandària apropiada per al tipus de dada que emmagatzemen, p. ex. enters, nombres en coma flotant o adreces. Moltes arquitectures de computadors utilitzen registres de "propòsit general", que poden albergar diversos tipus de dades, aquests registres es dimensionen per permetre els més grans d'aquests tipus i la mida típica és la mida de paraula de l'arquitectura.
* Transferència memòria-processador: quan el processador llegeix del subsistema de memòria a un registre o escriu el valor d'un registre en memòria, la quantitat de dades transferides és sovint una paraula. En els subsistemes de memòria simples, les paraules són transferides sobre el bus de dades de memòria, que, típicament, té un ample d'una paraula o mitja paraula. En els subsistemes de memòria que utilitzen memòria cau, la transferència de grandària de la paraula es produeix entre el processador i la memòria cau de nivell un, en els nivells més baixos de la jerarquia de memòria les grans transferències (amb múltiples de la longitud de paraula) són normalment utilitzades.
* Resolució d'unitats de direcció: és una arquitectura donada, els successius valors d'adreces designen successives unitats de memòria. En molts ordinadors, la unitat pot ser un caràcter o una paraula (alguns han utilitzat una resolució de bit). Si la unitat és una paraula, llavors es pot accedir a una gran suma de memòria utilitzant una adreça d'una grandària donada. D'altra banda, si la unitat és un byte, es poden adreçar caràcters individuals (p. ex. seleccionats durant l'operació de memòria).
* Instruccions: les instruccions màquina normalment són fraccions o múltiples de la longitud de paraula de l'arquitectura. Aquesta és una elecció natural, ja que les instruccions i les dades normalment comparteixen el mateix subsistema de memòria.

## Elecció de la mida de paraula

Quan es dissenya una arquitectura de computadors, l'elecció de la longitud de paraula és de substancial importància. Hi ha consideracions de disseny que promouen grandàries d'agrupacions de bits per a usos particulars (p. ex. adreces), i aquestes consideracions apunten a diferents grandàries per a diferents usos. No obstant això, les consideracions d'ecomomia en dissenys aposten molt per una o diverses grandàries relacionades per múltiples o fraccions (submúltiples) d'una longitud primària. La mida triada es converteix en la longitud de paraula de l'arquitectura.
La mida de caràcter és una de les influències en l'elecció de la longitud de paraula. Abans de mitjans de la dècada del 1960, els caràcters s'emmagatzemaven sovint en sis bits, això permetia, com a molt, 64 caràcters, així que els alfabets es limitaven a les majúscules. Com és eficient en temps i espai que la grandària de paraula sigui un múltiple de la grandària de caràcter, les longituds de paraula en aquest període són normalment múltiples de 6 bits (en màquines binàries). Una elecció comú van ser les paraules de 32 bits, que és també una bona mida per a les propietats numèriques d'un format en coma flotant.
Després de la introducció de l'IBM S/360, disseny que feia servir caràcters de 8 bits i suportava lletres minúscules, la mida estàndard d'un caràcter (o més correctament, un byte) va esdevenir vuit bits. Les mides de paraula a partir de llavors van ser, naturalment, múltiples de vuit bits, amb 16, 32 i 64 bits sent utilitzats comunament.
En arquitectura d'ordinadors, 16 bits és un adjectiu usat per descriure enters, adreces de memòria o altres unitats de dades que comprenen fins a 16 bits d'ample, o per referir-se a una arquitectura de CPU i ALU basades en registres, bus d'adreces o bus de dades d'aquest ample.

### Arquitectures de paraula variable

Els primers dissenys de màquines inclouen alguns que utilitzaven el que sovint es deia una longitud de paraula variable. En aquest tipus d'organització, un operand numèric no té longitud fixa, sinó que es detecta quan acaba amb un caràcter especial, com les màquines utilitzaven el BDC per a nombres. Exemples d'aquesta classe de màquines són l'IBM 702, l'IBM 705, l'IBM 7080, l'IBM 7010, el UNIVAC 1050, l'IBM 1401 i l'IBM 1620.
Moltes d'aquestes màquines treballen amb una unitat de memòria alhora i cada instrucció de dades té una longitud de diverses unitats, cada instrucció triga diversos cicles solament a accedir a memòria. Per aquesta raó, aquestes màquines de vegades són tan lentes. Per exemple, les instruccions d'un IBM 1620 Model I triguen 8 cicles només per llegir 12 dígits de la instrucció (el Model II ho va reduir a 6 cicles, però reduïa els temps a 4 cicles si ambdós camps d'adreces no es necessitaven en la instrucció).

### Les potències de 2

Els valors de dades poden ocupar diferents grandàries de memòria, perquè, per exemple, alguns nombres necessiten ser capaços de tenir més precisió que altres. Les grandàries comunament utilitzades normalment es trien per ser múltiples de potències de 2 de la unitat de resolució d'adreces (byte o paraula). Això és convenient perquè convertint l'índex d'un element d'un array (en català formació) en la direcció de l'element, només requereix una operació de desplaçament (que és només una pista conductora en maquinari) en comptes d'una multiplicació. En alguns casos aquesta relació pot també evitar la utilització d'operacions de divisió. Com a resultat, molts dissenys de computadors moderns tenen grandàries de paraula (i altres mides d'operands) que són una potència de 2 vegades la grandària d'un byte.

## Famílies de mides

Segons els dissenys de computadors s'han fet més complexos, la importància central d'una grandària de paraula simple en una arquitectura ha decrescut. Encara que gran part del maquinari pot utilitzar una àmplia varietat de mides de dades, les forces del mercat exerceixen pressió per mantenir la compatibilitat mentre s'estenen les capacitats dels processadors. Com a resultat, el que ha d'haver estat la grandària de paraula central en un disseny recent, ha de coexistir com una grandària alternativa a la longitud de paraula original en un disseny de compatibilitat cap enrere. La longitud de paraula original roman estant disponible en dissenys futurs, formant les bases d'una grandària de família.
Un gran exemple d'això es pot veure en els dissenys x86. L'arquitectura del 8086 original clarament feia servir una grandària de paraula de 16 bits. El significantemente realçat disseny del 80386 afegit al 8086 és base d'una organització que està basada en unitats de 32 bits. Si fos un disseny lliure, hauria tingut una mida de paraula de 32 bits, però com a extensió del 8086, la seva grandària de paraula va continuar sent considerat com 16 bits. Com a resultat, es diu que el 80386 i els seus successors són de "32-bit", però normalment no tenen una paraula de 32 bits. Aquesta mateixa situació ha tornat a ocórrer recentment a la mateixa línia, com en les extensions d'arquitectura AMD64, fent que predomini la grandària de 64 bits per descartar el suport per a 16 i 32 bits.
Es pot veure que una arquitectura de computadors actual està basada en una família de mides relacionades estretament més que en una mida de paraula simple omnipresent. Les mides estan íntimament relacionades uns amb els altres mitjançant factors sencers, normalment potències de dos. Denominar a un d'ells longitud de paraula de l'arquitectura pot ser arbitrari, i la longitud pot ser designada per la història de l'evolució de l'arquitectura més que per les propietats de la grandària, pròpiament dit, en un disseny recent.

## DWORD i Qword

En ciències de la computació, DWORD (en anglès double word, doble paraula) és una unitat de dades que és dues vegades la grandària d'una paraula. En les plataformes x86, que tenen una longitud de paraula de 16 bits, una unitat DWORD té una longitud de 32 bits.
Qword (en anglès quadruple word, quadruple paraula) és una unitat de dades que és quatre vegades la grandària d'una paraula. En les plataformes x86, aquesta unitat de dades és 64 bits.
Finalment, Intel utilitza el terme DQWord (en anglès double quadruple word, doble cuadrupe paraula) per denotar dades de 128 bits, trobat en la implementació del SSE i els seus antecessors.

## Taula de mides de paraula

| Any | Arquitectura | Longitud de paraula (w) | Enters | Punt flotant | Instrucció | Unitat d'adreces | Longitud de caràcter |
| 1941 | Zuse Z3 | 22 b | – | w | 8 b | w | – |
| 1942 | ABC | 50 b | w | – | – | – | – |
| 1944 | Harvard Mark I | 23 d | w | – | 24 b | – | – |
| 1946 (1948) {1953} | ENIAC (w/Panel #16 Arxivat 2010-01-03 a Wayback Machine.) {w/Panel #26 Arxivat 2005-12-31 a Wayback Machine.} | 10 d | w, 2w (w) {w} | – | – (2d, 4d, 6d, 8d) | – – {w} | – |
| 1951 | UNIVAC I | 12 d | w | – | ½w | w | 1 d |
| 1952 | Máquina IAS | 40 b | w | – | ½w | w | 5 b |
| 1952 | IBM 701 | 36 b | ½w, w | – | ½w | ½w, w | 6 b |
| 1952 | UNIVAC 60 | n d | 1d, ... 10d | – | – | – | 2d, 3d |
| 1953 | IBM 702 | n d | 0d, ... 511d | – | 5d | d | 1 d |
| 1953 | UNIVAC 120 | n d | 1d, ... 10d | – | – | – | 2d, 3d |
| 1954 (1955) | IBM 650 (w/IBM 653) | 10 d | w | – (w) | w | w | 2 d |
| 1954 | IBM 704 | 36 b | w | w | w | w | 6 b |
| 1954 | IBM 705 | n d | 0d, ... 255d | – | 5d | d | 1 d |
| 1954 | IBM NORC | 16 d | w | w, 2w | w | w | – |
| 1956 | IBM 305 | n d | 1d, ... 100d | – | 10d | d | 1 d |
| 1958 | UNIVAC II | 12 d | w | – | ½w | w | 1 d |
| 1958 | SAGE | 32 b | ½w | – | w | w | 6 b |
| 1958 | Autonetics Recomp II | 40 b | w, 79 b, 8d, 15d | 2w | ½w | ½w, w | 5 b |
| 1959 | IBM 1401 | n d | 1d, ... | – | d, 2d, 4d, 5d, 7d, 8d | d | 1 d |
| 1959 (TBD) | IBM 1620 | n d | 2d, ... | – (4d, ... 102d) | 12d | d | 2 d |
| 1960 | LARC | 12 d | w, 2w | w, 2w | w | w | 2 d |
| 1960 | IBM 1410 | n d | 1d, ... | – | d, 2d, 6d, 7d, 11d, 12d | d | 1 d |
| 1960 | IBM 7070 | 10 d | w | w | w | w, d | 2 d |
| 1960 | PDP-1 | 18 b | w | – | w | w | 6 b |
| 1961 | IBM 7030 (Stretch) | 64 b | 1b, ... 64b, 1d, ... 16d | w | ½w, w | b, ½w, w | 1 b, ... 8 b |
| 1961 | IBM 7080 | n d | 0d, ... 255d | – | 5d | d | 1 d |
| 1962 | UNIVAC III | 25 b, 6 d | w, 2w, 3w, 4w | – | w | w | 6 b |
| 1962 | UNIVAC 1107 | 36 b | ¹/₆w, ⅓w, ½w, w | w | w | w | 6 b |
| 1962 | IBM 7010 | n d | 1d, ... | – | d, 2d, 6d, 7d, 11d, 12d | d | 1 d |
| 1962 | IBM 7094 | 36 b | w | w, 2w | w | w | 6 b |
| 1963 | Gemini Guidance Computer | 39 b | 26 b | – | 13 b | 13 b, 26 b | – |
| 1963 (1966) | Apollo Guidance Computer | 15 b | w | – | w, 2w | w | – |
| 1964 | CDC 6600 | 60 b | w | w | ¼w, ½w | w | 6 b |
| 1965 | IBM 360 | 32 b | ½w, w, 1d, ... 16d | w, 2w | ½w, w, 1½w | 8 b | 8 b |
| 1965 | UNIVAC 1108 | 36 b | ¹/₆w, ¼w, ⅓w, ½w, w, 2w | w, 2w | w | w | 6 b, 9 b |
| 1965 | PDP-8 | 12 b | w | – | w | w | 8 b |
| 1970 | PDP-11 | 16 b | w | 2w, 4w | w, 2w, 3w | 8 b | 8 b |
| 1971 | Intel 4004 | 4 b | w, d | – | 2w, 4w | w | – |
| 1972 | Intel 8008 | 8 b | w, 2d | – | w, 2w, 3w | w | 8 b |
| 1972 | Calcomp 900 | 9 b | w | – | w, 2w | w | 8 b |
| 1974 | Intel 8080 | 8 b | w, 2w, 2d | – | w, 2w, 3w | w | 8 b |
| 1975 | Cray-1 | 64 b | 24 b, w | w | ¼w, ½w | w | 8 b |
| 1975 | Motorola 6800 | 8 b | w, 2d | – | w, 2w, 3w | w | 8 b |
| 1975 | MOS Tech. 6501 MOS Tech. 6502 | 8 b | w, 2d | – | w, 2w, 3w | w | 8 b |
| 1976 | Zilog Z80 | 8 b | w, 2w, 2d | – | w, 2w, 3w, 4w, 5w | w | 8 b |
| 1978 (1980) | Intel 8086 (w/Intel 8087) | 16 b | ½w, w, 2d (w, 2w, 4w) | – (2w, 4w, 5w, 17d) | ½w, w, ... 7w | 8 b | 8 b |
| 1978 | VAX-11/780 | 32 b | ¼w, ½w, w, 1d, ... 31d, 1b, ... 32b | w, 2w | ¼w, ... 14¼w | 8 b | 8 b |
| 1979 | Motorola 68000 | 32 b | ¼w, ½w, w, 2d | – | ½w, w, ... 7½w | 8 b | 8 b |
| 1982 (1983) | Motorola 68020 (w/Motorola 68881) | 32 b | ¼w, ½w, w, 2d | – (w, 2w, 2½w) | ½w, w, ... 7½w | 8 b | 8 b |
| 1985 | ARM1 | 32 b | w | – | w | 8 b | 8 b |
| 1985 | MIPS | 32 b | ¼w, ½w, w | w, 2w | w | 8 b | 8 b |
| 1989 | Intel 80486 | 16 b | ½w, w, 2d w, 2w, 4w | 2w, 4w, 5w, 17d | ½w, w, ... 7w | 8 b | 8 b |
| 1989 | Motorola 68040 | 32 b | ¼w, ½w, w, 2d | w, 2w, 2½w | ½w, w, ... 7½w | 8 b | 8 b |
| 1991 | PowerPC | 32 b | ¼w, ½w, w | w, 2w | w | 8 b | 8 b |
| 2000 | IA-64 | 64 b | 8 b, ¼w, ½w, w | ½w, w | 41 b | 8 b | 8 b |
| 2002 | XScale | 32 b | w | w, 2w | ½w, w | 8 b | 8 b |
| claus: b: bits, d: dígits decimals, w : grandària de paraula d'arquitectura, n : grandària variable ||||||||
Això és molt recomanable per a l'aplicacio de bits.

## Vegeu també

* Byte
* 32 bits
* 64 bits
* Tipus de dades màquina

## Bibliografia

* Gerrit A. Blaauw & Frederick P. Brooks, Arquitectura de Computadors: Conceptes i Evolució (Addison-Wesley, 1997, ISBN 0-201-10557-8).
* Anthony Ralston & Edwin D. Reilly, Enciclopèdia de la Tercera Edició de la Ciència de Computadors (Van Nostrand Reinhold, 1993, ISBN 0-442-27679-6).
* Computer Architecture: Concepts and Evolution. Addison-Wesley, 1997. ISBN 0-201-10557-8.
* Encyclopedia of Computer Science. 3rd. Van Nostrand Reinhold, 1993. ISBN 0-442-27679-6.
Viccionari