(Dit is de derde van een vierdelige post die 10GB/s in perspectief plaatst. In het eerste deel beschreven we wat een hypothetische film kijkende robot zou kunnen doen met een 10GB/s SSD. Deel 2 definieerde de standaard meeteenheden – bits en bytes – die in computertechnologieën worden gebruikt. Dit deel probeert een bijzonder verwarrend probleem met opslag en gegevens uit te leggen: twee veelgebruikte definities voor dezelfde eenheid prefixen.)
Heb je ooit een computersysteem gekocht met, laten we zeggen, een opslagapparaat van 500 GB, maar toen je het voor de eerste keer opstartte, meldde je OS slechts 465 GB? We zagen in deel 2 dat giga miljard betekent, dus een schijf van 500 GB zou een capaciteit van 500 miljard bytes moeten hebben – niet 465 miljard. Juist? Juist! En ook niet juist. Als je toevallig in de discrepantie hebt gegraven, heb je je waarschijnlijk gerealiseerd dat de ontbrekende 35GB helemaal niet ontbrak. Het is gewoon dat giga niet altijd precies zo wordt gebruikt als je denkt dat het zou moeten. Net zoals veel bakkers het woord dozijn gebruiken voor 13, wordt giga- in sommige kringen gebruikt voor 1.073.741.824! Voor velen van ons die zijn opgegroeid met het begrip dat een miljard een 1 is met negen nullen erna, kan deze “andere” definitie enige verduidelijking behoeven.
A Trip Down Memory Lane
Computers gebruiken informatie en instructies die in gegevensbestanden zijn opgenomen. Deze gegevensbestanden bevinden zich op twee plaatsen in een modern computersysteem: het primaire geheugen en het secundaire geheugen. Primair geheugen, nu meestal RAM (random access memory), bevat gegevens die computerprocessoren onmiddellijk kunnen openen. Secundaire opslag is voornamelijk opslag voor de langere termijn, zoals harde schijven (HDD’s) en solid state drives (SSD’s). Gegevens in secundaire opslag moeten eerst naar het RAM worden verplaatst voordat een computer ze kan gebruiken. De situatie is vergelijkbaar met het bureaublad van een kantoor en de archiefkast: Documenten op het bureaublad zijn als bestanden in RAM, omdat zij de enige zijn die u – net als een computerprocessor – onmiddellijk kunt openen, lezen en actie ondernemen; u kunt documenten in de archiefkast, of secundaire opslag, ook gebruiken, maar pas nadat u ze uit de kast hebt gehaald en op het bureaublad hebt gezet.
De grootte van een bestand, waar het zich ook bevindt, wordt meestal uitgedrukt in bytes. En zoals vermeld in deel 2 van dit bericht, omdat deze groottes meestal in de duizenden, miljoenen of zelfs miljarden bytes lopen, worden deze groottes zelden vermeld zonder speciale voorvoegsels. Het probleem ontstaat omdat fabrikanten van secundaire opslagapparaten van oudsher de traditionele set voorvoegsels gebruiken om de opslagcapaciteit van hun schijven te meten, terwijl de fabrikanten van RAM en CPU-chips ervoor hebben gekozen een andere set definities te gebruiken voor dezelfde voorvoegsels!
Een verhaal van twee systemen
De meeste computer- en elektronica-industrieën gebruiken het metrische, of decimale, voorvoegselsysteem. De huidige vorm werd oorspronkelijk in 1960 gestandaardiseerd door het Internationaal Stelsel van Eenheden (SI). Het metriek stelsel van voorvoegsels heeft als basis het getal 10, zodat de voorvoegsels overeenkomen met getallen die gehele machten van 10 zijn. Kilo- is bijvoorbeeld 103, wat betekent 10 driemaal vermenigvuldigd met zichzelf, of 1.000. De volgende voorvoegsels in het systeem kunnen gemakkelijk worden uitgedrukt als machten van die 1.000. Het voorvoegsel mega- is bijvoorbeeld 1.0002 (1.000.000) en giga- is 1.0003 (1.000.000.000). De opslagindustrie gebruikt het metrische voorvoegselsysteem om de capaciteit van secundaire opslagapparaten te beschrijven.
Het binaire voorvoegselsysteem komt om de hoek kijken wanneer men het over primair geheugen heeft. Het binaire voorvoegselsysteem heeft als basis het getal 2, zodat de voorvoegsels overeenkomen met getallen die gehele machten van 2 zijn. Wanneer gegevens in het primaire geheugen terechtkomen, krijgt elk stukje informatie een uniek adres toegewezen dat de processor in staat stelt de gegevens te vinden wanneer dat nodig is. Tegen het midden van de jaren zestig werd een binair adresseringsschema standaard in computerarchitecturen, omdat met een binair systeem de binaire gegevens in het geheugen het meest efficiënt kunnen worden gerangschikt, zodat ze allemaal geldige adressen hebben.
In het begin werd de capaciteit van het hoofdgeheugen uitgedrukt in absolute getallen, maar toen vroege computerprofessionals de behoefte ontdekten om grotere geheugencapaciteiten uit te drukken, vonden ze ook de behoefte om voorvoegsels te gebruiken om ze te beschrijven. De opslagindustrie was al overgegaan op het gebruik van het op SI gebaseerde metrische voorvoegselsysteem. Voor het gemak besloten deze professionals ook het voorvoegselsysteem over te nemen… met enkele wijzigingen. Ze merkten dat het getal 1.024, of 210 (binair), ongeveer gelijk was aan 1.000, of 103 (decimaal), dus begonnen ze het voorvoegsel kilo te gebruiken, niet om 1.000 aan te duiden, maar om 1.024 aan te duiden! Latere voorvoegsels in het systeem kunnen worden uitgedrukt als machten van die 1.024. Mega- werd bijvoorbeeld 1,0242 en giga- werd 1,0243.
De volgende tabel is een uitbreiding op een tabel die in deel 2 van dit bericht is gepresenteerd, en bevat niet alleen de betekenis van elk voorvoegsel, maar ook de exacte waarde van de voorvoegsels van beide systemen.
Je moet echter niet vergeten dat de totale capaciteit van onze hypothetische SSD nog steeds 500.000.000.000 bytes is. Wanneer je dit getal deelt door een gigabyte, kun je twee verschillende waarden krijgen omdat er twee verschillende definities van gigabyte zijn. Wanneer je een gigabyte definieert als 1.0003 (of 1.000.000.000) bytes, zoals het Internationaal Stelsel van Eenheden en zoals opslagfabrikanten doen, dan is 500.000.000.000 bytes hetzelfde als 500GB. Wanneer je een gigabyte definieert als 1.0243 (of 1.073.741.824) bytes, zoals RAM-fabrikanten en sommige grote besturingssystemen doen, dan is 500.000.000.000 bytes hetzelfde als 465GB.In het begin was dit geen probleem – het verschil in benadering was te verwaarlozen. Het verschil tussen een metrische kilobyte en een binaire kilobyte is immers slechts 2,4%. Bovendien wist iedereen die het ooit over KB had gehad al of men het over 1000 bytes opslagruimte of over 1.024 bytes geheugen had. Maar naarmate de tijd verstreek, begonnen de capaciteiten in zowel geheugen als opslag te groeien. Naarmate de capaciteit toeneemt, worden de relatieve verschillen tussen de decimale en binaire waarden van hetzelfde kengetal duidelijker. Bijvoorbeeld, hoewel de discrepantie tussen de binaire en metrische kilo-waarde slechts 2,4% is, groeit het verschil tussen een giga-waarde in de twee interpretaties tot 7,4%, en tot 12,6% wanneer men spreekt over peta-!
Omdat deze discrepantie problemen kon opleveren, ontstond eind jaren negentig in wetenschappelijke kringen een beweging om formeel een nieuwe, aparte naamgevingsconventie voor voorvoegsels van grote binaire getallen vast te stellen. In 1998 werden de resulterende binaire voorvoegsels goedgekeurd door de normalisatie-instellingen de Internationale Elektrotechnische Commissie (IEC), de Internationale Organisatie voor Normalisatie (ISO) en het National Institute of Standards and Technology (NIST), en ze worden nu “IEC-voorvoegsels” genoemd. De voorvoegsels in dit systeem zijn bedoeld om een duidelijk onderscheid te maken tussen de twee systemen en worden gevormd als samentrekkingen waarbij de eerste twee letters van de SI-voorvoegsels worden gecombineerd met de letters bi (afkorting van binair). De volgende tabel bevat een lijst van de voorvoegsels en hun betekenis.
Hoewel de gevolgen van het foutief gebruiken van het ene voorvoegsel terwijl je het andere zou moeten gebruiken misschien niet zo dramatisch zijn als de ontkoppeling die resulteerde in het beruchte opbranden in 1999 van NASA’s Mars Climate Orbiter, toen de software de kracht van de stuwraketten berekende in “pounds”, maar een apart stuk software de gegevens overnam in de veronderstelling dat het de metrische eenheid “newtons” betrof, kan inzicht in het verschil tussen deze systemen u behoeden voor verrassingen – of in ieder geval voor verwarring.Helaas zijn nog niet alle computer-, software- en geheugenfabrikanten begonnen met het gebruik van de gestandaardiseerde wetenschappelijke definities, zodat u waarschijnlijk nog steeds hetzelfde voorvoegsel gebruikt ziet voor zowel metrische als binaire interpretaties. Verwarring bij consumenten kan nog steeds ontstaan wanneer het opslagapparaat dat zij installeren een bepaalde capaciteit aangeeft met gebruikmaking van standaard voorvoegsels, maar hun besturingssysteem, dat de capaciteit van het primaire geheugen en de secundaire opslag in termen van binaire voorvoegsels kan uitdrukken, een andere capaciteit weergeeft die er anders uitziet. Om de verwarring te beperken, geven de meeste opslagfabrikanten tegenwoordig op hun producten en in hun literatuur uitleg over de precieze waarde van het gebruikte voorvoegsel.
Het volgende deel van dit bericht zal gaan over overdrachtssnelheden en de unieke overwegingen die worden gemaakt bij het uitdrukken ervan met gegevens.