Binárny prefix

Binárny prefix alebo binárna predpona je niektorý z prefixov, ktoré sa v informatike používajú na prehľadnejšie vyjadrenie veľkých násobkov jednotiek veličín.

Prefixy 
V súčasnosti sa v informatike zvyknú používať dve „sady“ prefixov:
 Štandardné prefixy IEC
 Prefixy založené na symboloch SI, ktoré však nie sú štandardizované a môžu viesť k rozličným výkladom a nedorozumeniam. Rozšírili sa najmä v minulosti, keď neexistovali štandardizované prefixy IEC.

Štandardné prefixy IEC  
V roku 1999 zverejnila Medzinárodná elektrotechnická komisia (IEC) druhý dodatok k "IEC 60027-2: Písmenové symboly pre použitie v elektrotechnickej technológii – časť 2: Telekomunikácie a elektronika". Tento štandard, schválený v 1998 zaviedli prefixy kibi-, mebi-, gibi-, tebi-, pebi-, exbi- pre špecifikáciu binárnych násobkov množstva. Názvy pochádzajú z prvých dvoch písmen originálnych SI prefixov nasledovaných skratkou bi, ktorá znamená "binárny". Z pohľadu IEC je tiež vyjasnené, že SI prefixy majú jedine svoj desiatkový význam a nikdy dvojkový.

Dodatok bol pridaný do ďalšej verzie štandardu: "IEC 60027-2 (2000-11) Ed. 2.0".

Do roku 2005 táto konvencia stále nezískala široké použitie, hoci používanie rastie. Je silne podporované mnohými štandardizačnými telesami vrátane IEEE and CIPM.

Príklad :   300 GB   =   279,397 GiB, nakoľko 279,397 GB × 10243 je cca 300 miliárd bajtov a teda 300 GB v dekadickom zmysle.

Názvy IEC sú definované iba po exbi-, v súlade s prefixom SI sústavy exa-. Dva SI prefixy zetta- (1021) a yotta- (1024) nemajú zodpovedajúce IEC binárne prefixy, hoci logické pokračovanie by bolo zebi- (Zi = 270 = 1 180 591 620 717 411 303 424) a yobi- (Yi = 280 = 1 208 925 819 614 629 174 706 176).

Binárne prefixy s použitím SI symbolov 
Tieto prefixy sa v praxi často používajú, nie sú však štandardizované a správne. Ich používanie v binárnom zmysle môže viesť k vážnym nedorozumeniam, vzhľadom na to, že ich možno chápať:
 v zmysle ako ich definuje sústava SI (prefix je 1000-násobkom (103) predchádzajúceho), alebo tak, ako sa 
 bežne používajú v informatike, keď je každý nasledujúci prefix 1024-násobkom (210) predchádzajúceho.

Jednopísmenové skratky sú identické s prefixami SI s výnimkou "K", ktorého použitie je zameniteľné s "k" (v SI, "K" znamená kelvin a iba "k" znamená 1 000). Boli návrhy používať "k" pre 1 000 a "K" pre 1 024, ale nevzťahuje sa to na prefixy vyšších rádov.

So zvyšujúcim sa rádom sa zvyšuje rozdiel medzi hodnotami s použitým binárnym a decimálnym prefixom, od 2,4 % pre kilo na vyše 20,8 % pre yotta.

Neformálne sa často používajú prefixy samostatne. Preto sa hovorí o "20-kilových súboroch" (40 binárnych kilobajtov) a "2-megovom internetovom pripojení (2 desiatkové megabity za sekundu)". Aké jednotky sa používajú závisí na tom, čo presne sa meria.

Poznámky k použitiu 
V ďalšom texte sa používa fráza "desiatkové jednotky" ako "SI určenie v štandardnom desiatkovom zmysle (mocniny 1000)" a "binárne jednotky" ako "SI určenie v tradičnom počítačovom binárnom (mocniny 1024) zmysle". Rovnako, sledujúc nedorozumenia z toho vznikajúce, tu použitý symbol pre bajt je B, ktorý v SI znamená Bel. Bolo často odporúčané používať pre bajt b, ten sa však používa aj pre bit (iný symbol je bit). Tento spor nesmeruje k rozriešeniu, keďže SI sa nezaoberá jednotkami množstva informácie.

Niektoré jednotky boli v informatickom kontexte vždy chápané ako dekadické. Napríklad Hertz (Hz), ktorý sa používa na meranie hodinových frekvencií elektronických komponentov a bit/s na meranie bit rate. To znamená, že 1 GHz procesor vykoná 1,000,000,000 hodinových impulzov za sekundu, 128 kbit/s MP3 tok potrebuje 128,000 bitov (15.625 KiB) za sekundu a internetové pripojenie 1 Mbit/s prenesie 1,000,000 bits (pribl. 122 KiB) za sekundu.

Veľkosti elektronických pamätí ako RAM a ROM sa udávajú v binárnych jednotkách, pretože z fyzickej štruktúry zariadenia je prirodzené, že je v mocninách dvoch. Toto je prípad, kedy sa kapacita udáva výhradne v binárnom zmysle napriek tomu, že sú tu používané veľmi hlboko zakorenené dekadické prefixy. Dávnych 64 MB RAM je teda 65 536 kB, resp. 67 108 864 B a nie 64 000 kB ani 64 000 000 B. Podobne aj 2 GB RAM nie je za žiadnych okolností 2 000 MB či 2 000 000 kB alebo 2 000 000 000 B, ale 2 048 MB, resp. 2 097 152 kB alebo 2 147 483 648 B. Pri deklarovaní kapacity RAM ale zrejme bude veľmi ťažké odbremeniť sa od dekadických prefixov a slangovo hovoriť o 64 "mebiovej" či 2 "gibiovej" RAMke, miesto "megovej" a "gigovej". Rovnako sa ani na poli udávaní kapacít RAM nezačalo deklarovanie kapacity binárnymi prefixami, aj keď to je prvé miesto, kde je vhodné začať, keďže kapacity RAM sú výhradne myslené v binárnom zmysle. Možno v dobe, keď budú mať RAM desiatky či stovky GB, budú rozdiely tak veľké a očividné (ako v prípade pevných diskov), že uvidíme 256 GiB modul miesto 256 GB modulu. Na druhej strane je otázne, čo bude motiváciou k takejto náprave, nakoľko situácia na poli RAM je opačná ako na poli pevných diskov (binárne myslené kapacity RAM majú v skutočnosti väčšiu kapacitu ako udávajú ich dekadické predpony a operačný systém počítajúci kapacity tiež binárne ich označí správne, pričom pevné disky sú na tom opačne).

Výrobcovia pevných diskov uvádzajú kapacitu v desiatkových jednotkách, takže to, čo je inzerované ako "30 GB" disk, dokáže nahrať 30 × 109 bajtov, čo sa zhruba rovná 28×230 bajtom (t. j. 28 GiB). Toto použitie má dlhú tradíciu v inžinierskej praxi a pravdepodobne nebolo ovplyvnené marketingom. Je to tak preto, že nič na fyzickej štruktúre disku nie je prirodzene mocninou dvoch: počty platní, stôp a sektorov na stopu sú všetky plynulo premenné (hoci veľkosť individuálneho sektora je polovica kilobajtu alebo násobky).

Používatelia moderných PC samozrejme považujú RAM aj pevný disk za druhy pamäťového média a očakávajú, že sa ich kapacita bude merať rovnakým spôsobom. Operačné systémy zvyčajne oznamujú miesto na disku použitím binárnych jednotiek. Kupcovi "30 GB" pevného disku tak Microsoft Windows oznámi "28 GB" namiesto "30 GB" alebo "28 GiB". To môže vyvolať zmätok, najmä v spojení s neschopnosťou rozlišovať medzi kapacitami naformátovaných a nenaformátovaných diskov.

Niektoré miery kapacity médií – napr. diskety -- používajú ešte mätúcejší hybridný systém. K diskovým médiám sa pristupuje po sektoroch, nie po jednotlivých bajtoch. Sektory sú určené pre priamy prenos do RAM, ktorá sa označuje v binárnych jednotkách, takže samotná veľkosť sektora je takmer vždy násobkom dvoch. Veľkosť sektora môže byť od 512 bajtov (disketa) po 2 048 bajtov (DVD). Tisíc sektorov (binárne kilobajty) vytvorí 1 024 000-bajtový "megabajt". Preto "1,44 MB" disketa neunesie 1,44 × 220 bajtov ani 1,44 × 106 bajtov, ale 1,44 × 1000 × 1024 bajtov (pribl. 1,406 binárneho MiB alebo 1,475 desiatkového MB).

Kapacita CD sa vždy udáva v binárnych jednotkách. Napriek tomu, že na CD je deklarovaná kapacita "700 MB" (alebo "80-minútové"), CD má kapacitu 700 MiB = cca 734 MB. Otázka je, či by malo byť na CD pripísané malé písmenko "i" (t. j. "700 MiB" miesto "700 MB") alebo jednoducho uvádzať kapacitu správne ako "734 MB". Ale DVD kapacity sú v desiatkových jednotkách, t. j. správne a operačné systémy ich zobrazia nesprávne. "4,7 GB" DVD má nominálnu kapacitu 4,7 GB, to je ale 4,38 GiB. Najnovšie blu ray disky kopírujú zvyklosť DVD diskov a udávajú kapacity tiež dekadicky. Teda jednovrstvový blu-ray disk s kapacitou "25 GB" bude mať kapacitu 25 miliárd bajtov, čo je ale len 23,284 GiB. Pod povrchom je ale všetko v poriadku, nakoľko operačný systém myslí binárne a deklaruje kapacitu v 1 073 741 824 – násobku a nie 1 000 000 000 – násobku, teda 23,284 × 1 073 741 824 = cca 25 miliárd bajtov a teda 25 GB v dekadickom zmysle.

Zaujímavé je z tohto pohľadu sledovať kapacitu USB klúčov. Prvé USB kľúče od 1632 MB do 256512 MB sledovali binárnu (alebo hybridnú dekadicko-binárnu) líniu, podobne ako 1,44 palcové diskety. Ale USB kľúče výrazne nad 1 GB udávajú kapacitu čisto v dekadickom zmysle. 8 GB USB kľúč môže mať dnes kapacitu približne 8 003 000 000 bajtov, t. j. 8,003 GB (3 MB je bonus výrobcu). Ale operačný systém ukáže 7,45 GB (správne by malo byť GiB a teda za číslom 7,45 je nesprávna jednotka). Ak očakávame 8 GB USB kľúč, ktorý operačný systém identifikuje ako 8 GB, musel by mať kapacitu 8 × 10243 = 8 589 934 592 bajtov a nie 8 003 000 000 bajtov.

Desiatkové kapacity sa používajú, keď ide o šírku pásma zberníc (Napr. "Ultra SCSI má šírku pásma 40 megabajtov za sekundu"). Zaujímavé je, že to nie je preto, že disky alebo bit-rate používajú desiatkové jednotky, ale kvôli hodinovým frekvenciám.

Referencie

Pozri aj 
 IEC 60027-2
 Integrálny dátový typ
 Bit
 Nibble
 Byte
 Oktet
 Kapacita počítačových pamätí

Externé odkazy 
 Markus Kuhn's 1996-1999 paper on bits, bytes, prefixes and symbols
 IEC prefixes and symbols for binary multiples 
 http://physics.nist.gov/cuu/Units/binary.html
 http://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-27
 http://www.quinion.com/words/turnsofphrase/tp-kib1.htm 
 Get Ready for the mebi, gibi and tebi (NIST TechBeat) 
 WiebeTech (drive manufacturer) white-paper on the controversy over drive capacities 
 "There is no such thing as a 1.44MB standard format floppy disc." , by Jonathan de Boyne Pollard

Meranie
Jednotky informácie
Predpony