Paraula (informàtica)

De Viquipèdia
Dreceres ràpides: navegació, cerca

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 al 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. Molts 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 dels exemples d'un dels primers mides de paraula. Alguns dels primers ordinadors eren decimals en comptes de binari s, típicament tenint 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 sencers poden estar disponibles en diverses grandàries diferents, però una de les mides disponibles gairebé sempre serà la paraula . Els altres mides, solen ser múltiples o fraccions de la grandària de paraula. Les mides més petits 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 utilitzat é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. sencers, 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ípic é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 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 donat. 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[modifica | modifica el codi]

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 de ecomomía en dissenys fortament aposten per una grandària o uns quants grandàries relacionades per múltiples o fraccions (submúltiples) d'una longitud primària. La mida triat 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 dels 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 siguin 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ó del IBM S/360, disseny que utilitzava caràcters de 8 bits i suportava lletres minúscules, la mida estàndard d'un caràcter (o més correctament, un byte) es va convertir en 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[modifica | modifica el codi]

Els primers dissenys de màquines inclou 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 el IBM 702, el IBM 705, el IBM 7080, el IBM 7010, el UNIVAC 1050, el IBM 1401 i el IBM 1620.

Moltes d'aquestes màquines treballen amb una unitat de memòria alhora i com 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[modifica | modifica el codi]

Els valors de dades poden ocupar diferents grandàries de memòria, perquè, per exemple, alguns números necessiten ser capaços de tenir més precisió que altres. Les grandàries comunament utilitzats normalment es trien per ser múltiples de potències de 2 de la unitat de resolució adreces (byte o paraula). Això és convenient perquè convertint l'índex d'un element d'un array 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[modifica | modifica el codi]

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 parde de 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 alternatiu a la longitud de paraula original en un disseny de compatibilitat cap enrere. La longitud de paraula original roman estant disponible en dseños 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 utilitzava 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 les extensions d'arquitectura AMD64 fent que predomini la grandària de 64 bits són 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 relacionats estretament més que en una mida de paraula simple omnipresent. Les mides estan íntimament relacionats 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 les propietats de la grandària pròpiament dit en un disseny recent.

DWORD i Qword[modifica | modifica el codi]

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 bit s, una unitat DWORD té una longitud de 32 bit s.

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 el la implementació del SSE i els seus antecessors.

Taula de mides de paraula[modifica | modifica el codi]

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)
{w/Panel #26}
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 1/6w, ⅓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 1/6w, ¼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 la aplicacíó de bits.

Vegeu també[modifica | modifica el codi]

Referències[modifica | modifica el codi]

  • 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).