Bit
![]() ![]() | |
Tipus | unitat d'informació, concepte i unitat derivada en UCUM ![]() |
---|---|
Sistema d'unitats | Sistema Internacional de Quantitats ![]() |
Unitat de | informació i capacitat binària equivalent ![]() |
Conversions d'unitats | |
A unitats estàndard | 0,125 B 0,69314718055995 nat 1 bit ![]() |
Un bit —simbolitzat habitualment com a b, de l'anglès, binary digit, "dígit binari"— és la unitat d'informació mínima utilitzada en Informàtica i en teoria de la informació. Un bit pot tenir només dos estats mútuament exclusius, habitualment representats amb 0 i 1, o vertader o fals, obert o tancat, blanc o negre, nord o sud, masculí o femení, vermell o blau, etc. Només cal assignar un d'aquests valors a l'estat de "apagat" (0), i l'altre a l'estat de "encès" (1). La paraula «bit» és la contracció de les paraules angleses binary digit, que signifiquen «xifra binària», amb un doble sentit de la paraula bit, que també significa «tros». No s'ha de confondre un bit amb un byte, paraula anglesa que es pronuncia /bait/. En informàtica, el byte és un grup elemental de 6 a 9 bits, generalment 8, en aquest cas també se'n dirà un octet.
Se'n deu la invenció a John Tukey i la popularització a Claude Elwood Shannon.[1]
Es pot imaginar un bit com una bombeta que pot estar en un dels següents dos estats:
Història
[modifica]La codificació de la informació usant símbols discrets (bits) es va començar a usar en les targetes perforades inventades per Basile Bouchon i Jean-Baptiste Falcon (1732), desenvolupat per Joseph Marie Jacquard (1804), i més tard adoptada per Semen Korsakov, Charles Babbage, Herman Hollerith, i els primers fabricants d'ordinadors com IBM. La mateixa idea es pot aplicar a una cinta de paper perforada. En tots aquests sistemes, el mitjà (targeta o cinta) conté, conceptualment, una llista de posicions que poden contenir forats. Cada posició pot estar perforada o no, constituint així un bit d'informació. La codificació de text mitjançant bits també fou utilitzat en codi Morse (1844) i als inicis de les màquines amb capacitat de comunicació digital com els teletips.
Ralph Hartley va suggerir l'ús d'una mesura logarítmica de la informació en 1928. Claude I. Shannon va ser el primer a utilitzar la paraula bit en el seu estudi A Mathematical Theory of Communication.[2] Ell atribueix l'origen de la paraula a John W. Tukey, que havia escrit una nota dels Laboratoris Bell el 9 de gener de 1947 a la qual va contraure "dígit binari" ("binary digit") simplement "bit". Curiosament, Vannevar Bush havia escrit el 1936 que "bits d'informació" podrien ser emmagatzemats en les targetes perforades utilitzades en els ordinadors mecànics de l'època.[3] La primera computadora programable construïda per Konrad Zuse usava notació binària per als nombres.
Notació dels valors
[modifica]Un bit no pot tenir més que dos valors. Segons el context, digital, lògic (vegeu Àlgebra de Boole, electrònica digital, o magnètica, se'ls anomena «zero» i «un», que equival respectivament a «fals» i «verdader», «obert» i «tancat», o «nord» i «sud»):
Context | Valors | |
---|---|---|
digital | 0 | 1 |
lògic | no/fals | si/veritat |
espai | aquí | allà |
electrònica | obert | tancat |
magnètic | nord | sud |
òptic | negre | blanc |
El valor 0 és associat a «obert» en electrònica, ja que quan un interruptor és obert, llavors el circuit està obert, i el corrent no passa.
Abreviatura i símbol
[modifica]No hi ha un estàndard universalment acceptat sobre les abreviatures de bit i byte. Un estàndard freqüentment citat és el de la Comissió electrotècnica internacional[4] que defineix bit com el símbol de la unitat binària (per exemple kbit per a quilobit). El mateix estàndard defineix o i B per al byte.
Avui, l'estàndard harmonitzat ISO/IEC[5] reemplaça i anul·la els articles 3.8 i 3.9 de la norma IEC 60027-2:2005 (els relatius a la teoria de la informació i als prefixos binaris).
Un altre estàndard sovint citat és l'IEEE 1541, que dona b com a símbol d'unitat per a bit i B per a byte. Aquesta convenció és freqüentment utilitzada en informàtica, però no gaudeix d'un reconeixement internacional per diverses raons:
- aquests dos símbols ja són utilitzats per a altres unitats: b per al barn i B per al bel;
- bit és ja l'abreviatura de binary dígit, hi ha poques raons per abreviar-lo més;
- les normes del SI volen que les majúscules en els símbols d'unitats estiguin reservades a les que tenen per origen el nom d'una persona (A, símbol de l'ampere; V, símbol del volt, etc.; però tots els noms d'unitats s'escriuen en minúscules: metre, segon, ampere, volt, etc.)
- en lloc de byte, el terme octet és utilitzat en certs àmbits (per l'UIT sobretot)
- b és de vegades utilitzat com a símbol del byte, així com bit per al bit.
El bel és rarament utilitzat així, s'utilitza més aviat el decibel (dB), que és poc probable confondre amb un decibyte, l'eventualitat d'una confusió és rara, tot i que les dues unitats són utilitzades en telecomunicacions.
Paral·lelització del tren de bits
[modifica]Dels anys 1970 fins al 1986, els investigadors han intentat tractar els més grans nombres sencers possibles per cicle de rellotge pels seus processadors més poderosos. En efecte, és molt més eficaç en termes de rapidesa fer per una instrucció un càlcul sobre una xifra codificat en un gran nombre d'octets més aviat que de descompondre l'operació en diverses operacions que manipulen xifres més petites.
L'Intel 4004 va ser el primer microprocessador. Manipulava paraules de 4 bits. Els processadors de 8 bits el va reemplaçar; han seguit els de 16 bits, els 16-32, els de 32 bits, els de 64 bits que equipen els ordinadors personals des de 2002, i així fins al processador Very Long Instruction Word.
Tractament paral·lel dels bits
[modifica]Els circuits electrònics són sovint concebuts per tractar diversos bits en paral·lel. Això permet accelerar o augmentar les capacitats de tractament de la informació.
Exemple d'acceleració de tractament: Cal un segon per transferir un megabyte de dades a través d'un bus informàtic de 8 bits cadenciat a 1 megahertz. Si l'amplada del bus és duplicada a 16 bits, llavors amb mig segon n'hi ha prou.
Exemple d'augment de les capacitats: Un processador de 32 bits pot dirigir un màxim de 4 GiB de memòria d'ordinador i un de 64 bits pot dirigir 16 EiBs.
El subdimensionament de les capacitats dels processadors és un problema històric per l'augment de les capacitats de memòria. Així, els PC Compatibles han estat de manera inicial basats en una arquitectura de 16 bits (estructura x86) que no podia adreçar més de 64 kbibytes de memòria sense passar per complicacions (segmentació, memòria estesa, memòria expandida). Les capacitats de tractament 32 bits foren introduïdes en la família x86 amb l'Intel 80386, però no va ser fins a un sistema operatiu concebut per treure profit de les capacitats de 32 bits (Linux, Windows NT, Windows 95) quan els 4 gibibytes d'adreçament poden plenament ser explotats.
Les dificultats trobades per augmentar les capacitats ampliant el nombre de bits tractats de manera simultània constitueixen un desafiament tècnic que ha estat àmpliament explotat pel màrqueting. Així els venedors de consoles de jocs i de targetes gràfiques han presentat sovint el seu producte com de 32, 64 o 128 bits basant-se en el bus més ample que es podia trobar al producte, sense que constituís una especificació tècnica molt pertinent.
Little endian i big endian
[modifica]Little endian i big endian es refereixen a l'ordre que les màquines assignen als bytes que representen nombres o valors numèrics. Una màquina little endian assigna els bytes menys significatius a l'extrem més baix de la memòria, mentre que una màquina big endian assigna els bytes més significatius a l'extrem més alt. Als ordinadors, cada byte s'identifica amb la seva posició a la memòria (direcció). Quan es manegen nombres de més d'un 'byte', aquests bytes també han d'estar ordenats de menor a major, indicant la posició del byte menys significatiu i del byte més significatiu. D'aquesta manera, un byte amb el número decimal 27 s'emmagatzemaria en una màquina little endian igual que en una màquina big endian, ja que només ocupa un byte. No obstant això, per a números més grans els bytes que els representen s'emmagatzemarien en diferent ordre a cada arquitectura. Aquest aspecte és particularment important en la programació en llenguatge assemblador o en codi màquina, ja que algunes màquines consideren el byte situat en la direcció més baixa de la memòria el menys significatiu (arquitectura little endian), com els processadors Intel) mentre que altres consideren que aquest és el byte més significatiu (arquitectura big endian, com els processadors Motorola).
Per exemple, considerem el nombre hexadecimal sencer AABBCCDD
, de 32 bits (4 bytes), localitzat a la direcció 100 de la memòria. El nombre ocuparia les posicions des de la 100 a la 103, però depenent de si la màquina és little o big endian, els bytes s'emmagatzemarien de diferent manera:
Little endian (com Intel)
100
|
101
|
102
|
103
|
||
...
|
DD
|
CC
|
BB
|
AA
|
...
|
Big endian (com Motorola)
100
|
101
|
102
|
103
|
||
...
|
AA
|
BB
|
CC
|
DD
|
...
|
A les imatges de dalt, on es representen les posicions de memòria 100, 101, 102 i 103 creixent d'esquerra a dreta, «sembla» que la representació big endian és més natural, ja que el nombre AABBCCDD
ho podem llegir correctament (vegeu figura), mentre que en la representació little endian sembla que el número està al revés, o potes amunt. Tot i això, no hi ha res que ens impedeixi imaginar que les adreces de memòria «creixen» de dreta a esquerra, i en observar la memòria d'aquesta manera, la representació little endian «es veu natural» i és la big endian la que «sembla» al revés, com es mostra a les figures de baix.
Little endian (com Intel)
103
|
102
|
101
|
100
|
||
...
|
AA
|
BB
|
CC
|
DD
|
...
|
Big endian (com Motorola)
103
|
102
|
101
|
100
|
||
...
|
DD
|
CC
|
BB
|
AA
|
...
|
Independent de si la màquina és d'arquitectura little endian o big endian, els bits dins de cada byte sempre estan en el mateix ordre, amb el bit més significatiu a l'esquerra i el menys significatiu a la dreta. Els registres del processador, que poden ser de 4 a 64 bits, i més, també tenen els seus bits en el mateix ordre en tots dos tipus de màquina. La diferència entre little i big endian només existeix externament, a l'ordre en què els bytes es representen en memòria.
Arquitectures de 4, 8, 16, 32 i 64 bits
[modifica]Quan es parla de CPUs o microprocessadors de 4, 8, 16, 32, 64 bits, es refereix a la mida, en nombre de bits, que tenen els registres interns del processador i també a la capacitat de processament de la unitat aritmeticològica (ALU). Un microprocessador de 4 bits té registres de 4 bits i l'ALU fa operacions amb les dades en aquests registres de 4 bits, mentre que un processador de 8 bits té registres i processa les dades en grups de 8 bits bits.
Els processadors de 16, 32 i 64 bits tenen registres i ALU de 16, 32 i 64 bits respectivament, i generalment poden processar les dades, tant a la mida en bits dels seus registres com, depenent del seu disseny, en determinats submúltiples d'aquests . Així, un processador de 16 bits pot processar les dades en grups de 8 i 16 bits, comportant-se com si fos un processador tant de 8 com de 16 bits. Un processador de 32 bits pot processar les dades en grups de 8, 16 i 32 bits, i el processador de 64 bits pot processar les dades en grups de 8, 16, 32 i 64 bits. Per poder fer-ho, els processadors de 16, 32 i 64 bits generalment tenen els seus registres dividits en altres registres més petits. Així, els registres d'un processador de 32 bits, per exemple, poden estar dividits alhora en registres de 16 i 8 bits i pot fer operacions aritmètiques, lògiques, de comparacions, i d'altres, amb qualsevol dels seus registres en qualsevol d'aquestes mides.
Quan es parla de processadors de, diguem-ne 32 bits, ens referim a la seva capacitat de processar dades en fins a 32 bits simultàniament (també pot processar dades en 8 i 16 bits). La denominació de "microprocessador de 32 bits" no es refereix a la mida del bus de dades del CPU ni del bus d'adreces, sinó a la seva capacitat de treballar normalment amb les dades al nombre màxim de bits (llevat d'alguna excepció).
Per exemple, els primers processadors de l'arquitectura x86, l'Intel 8086 i l'Intel 8088, eren processadors de 16 bits, perquè tenien registres de 16 bits (i de 8 bits) i les seves unitats aritmètiques lògiques podien efectuar operacions de 16 bits (i de 8 bits). Tot i això, exteriorment, el 8086 tenia un bus de dades de 16 bits i podia moure dades des de i cap al CPU en blocs de 8 i 16 bits, mentre que el 8088 tenia un bus de dades de només 8 bits, i també podia moure dades de 8 i 16 bits des de i cap al CPU, però, com que el seu bus de dades era de només 8 bits, per moure 16 bits de dades havia de fer dues operacions de lectura o escriptura, de 8 bits, pel seu limitat bus de dades. Això era completament transparent, els dos processadors executaven exactament el mateix conjunt d'instruccions de 16 bits, només que el 8088 era més lent cada vegada que havia de llegir o escriure 16 bits de dades cap a o des de la memòria.
Referències
[modifica]- ↑ En el marc de la teoria de la informació proposada per Shannon, quan es rep la informació que correspon a un esdeveniment que té 1 possibilitat sobre 2 de produir-se, es rep un bit d'informació. A tall d'exemple: quan l'àrbitre tira una moneda en un partit de futbol, dona un bit d'informació als 2 capitans dels equips en competició.
- ↑ Shannon, Claude «A Mathematical Theory of Communication». Bell Labs Technical Journal., 1948. Arxivat de l'original el 1998-07-15 [Consulta: 4 octubre 2014]. Arxivat 1998-07-15 a Wayback Machine.
- ↑ Bush, Vannevar «Instrumental analysis». Bulletin of the American Mathematical Society 42 (10):, 1936, pàg. 649–669..
- ↑ IEC 60027
- ↑ ISO/IEC 80000
Bibliografia
[modifica]- John B. Anderson, Rolf Johnnesson, Understanding Information Transmission, editor Wiley, 2006, ISBN 0471711195 y 9780471711193.
- Norman Abramson, Information theory and coding, McGraw-Hill, 1963.
Vegeu també
[modifica]