Henryk Plötz: 1kb = 1024 Byte - sinnlose Definition?

Beitrag lesen

Moin,

Das ist das, was ich meinte, als ich schrieb, die MB/GB-Angaben sind nur Kosmetik für den Nutzer... Ich kann mir nämlich nicht vorstellen, dass ein Rechner sagt: Gib mir doch mal den Wert von Position 5 MB, 8 KB, 4 Bytes, sondern einfach: Position 12345678 - und aus diesem Grunde ist die Umrechnung in MB/GB/TB oder was auch immer nur für den "dummen Nutzer"...

Und das passiert eben grade nicht. Handelsübliche Computer arbeiten binär und nicht dezimal. Es geht also nicht um Position 1234 - dann würden Grenzen zu Tausendern, Millionen, etc. wirklich Sinn machen - sondern um 10011010010b - und da ist es halt einfacher und sinnvoller Grenzen bei ganzen Zweierpotenzen (bzw. bei Vielfachen von Zweierpotenzen) zu legen.

Zum Beispiel kann man im Addressdecoder sparen da der ggbf. nur ein paar Addressleitungen ansehen muß anstatt alle. Einfaches (und künstlich kleines) Beispiel: Wenn man 16 Speicherbausteine zu je 16 Byte hat, dann muß man sich nur die ersten 4 Bit der Addresse ansehen um zu erkennen zu welchem Speicherbaustein das jetzt gehört. Also 0b bis 1111b zum ersten, 10000b bis 11111b zum zweiten, 100000b bis 101111b zum dritten, 110000b bis 111111b zum vierten Baustein, und so weiter.

Würde man 26 Bausteine zu 10 Byte verwenden (mit ähnlich viel Gesamtspeicher), müsste der Decoder entscheiden ob die Addresse zwischen 0b und 1001b liegt (erster Baustein), dann zwischen 1010b und 10011b (zweiter Baustein), dann zwischen 10100b und 11101b, etc.[1] Dabei wäre die größte mögliche Addresse 100000011b, d.h. man bräuchte 9 Leitungen - eine mehr als in dem binären Beispiel. Gut, man könnte auch nur 25 Bausteine nehmen, dann ist die größte Addresse 11111001b, aber dann hat man 6 Addressen verschenkt die gar nie auf einen Baustein passen.

Um auf dein anfängliches Beispiel zurückzukommen: Doch, genau das passiert (irgendwie). Das Byte bei 5 MiB, 8 KiB und 4 Bytes hat die Addresse

33 2222222222 1111111111 0000000000
Bit-Nummer 10 9876543210 9876543210 9876543210

Addresse:  00 0000000101 0000001000 0000000100b

Ich hab das schon mal passend aufgetrennt (_diese_ Auftrennung ist nun natürlich nur zum Verständnis für 'den "dummen Nutzer"') und wenn du hinsiehst siehst du in der hinteren Gruppe die 4 (als 100b), in der vorletzten Gruppe die 8 (als 1000b) und davor die 5 (als 101b) und die Gruppen stehen für die Bytes, die Kibibytes, die Mebibytes und die Gibibytes.

[1] Der aufmerksame Beobachter erkennt: Das letzte Bit ist irrelevant für die Entscheidung und muß nicht dekodiert werden. Die Bits davor sind Vielfache von 101b.

PS: Falls es nicht aufgefallen ist: Alle Zahlen ohne Suffix sind Dezimalzahlen, alle Zahlen mit einem b hintendran sind in Binärdarstellung.

--
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~