Von 32-Bit auf 64-Bit, 48-Bit überspringen?

Von 32-Bit auf 64-Bit, 48-Bit überspringen?

Die Computerarchitektur wurde von 16 Bit auf 32 Bit und dann auf 64 Bit aktualisiert. Was war der Grund für das Überspringen von 48 Bit? Welche Argumentation wurde für das Upgrade auf 64 Bit und nicht auf eine andere Variante verwendet?

Die folgende Tabelle veranschaulicht: 2^32 ist 65536-mal größer als 2^16. Daher erscheint es logisch, 2^48 zu verwenden, was ebenfalls 65536-mal größer als 2^32 ist. Die Verwendung von 2^64 scheint im Vergleich ein gewaltiger Sprung zu sein. (10 Jahre nach der Einführung von amd64 werden Desktop-Computer mit zweistelligem GB RAM verkauft, während Server dreistelliges GB RAM verwenden.)

    2^16                        65.536
    2^32                 4.294.967.296  2^16 X 65536
    2^48           281.474.976.710.656  2^32 X 65536
    2^64    18.446.744.073.709.600.000  2^32 X 4294967296

UNTEN BEARBEITEN

Ich benutzte einOnline-Umrechner von Dezimalzahlen in Binärzahlenund ich erhalte diese Ergebnisse. Anscheinend ist 2^48 mit 48 binären Einsen maximal ausgereizt.

    1111111111111111                      65535  2^16 - 1 (16 ones)
    10000000000000000                     65536  2^16

    11111111111111111111111111111111                    4294967295  2^32 - 1 (32 ones)
    100000000000000000000000000000000                   4294967296  2^32

    111111111111111111111111111111111111111111111111            281474976710655 2^48 - 1 (48 ones)
    1000000000000000000000000000000000000000000000000           281474976710656 2^48

    1111111111111111111111111111111111111111111111111111111111111111    18446744073709551615    2^64 - 1 (64 ones)
    10000000000000000000000000000000000000000000000000000000000000000   18446744073709551616    2^64

Antwort1

64 Bit ist der nächste logische Schritt nach oben.

Der Grund hierfür liegt hauptsächlich darin, dass der Schritt zur Verdoppelung (oder Halbierung) der Bitanzahl in Software und Hardware für Systeme, die nativ in einer anderen Größe arbeiten, leicht zu handhaben ist. 32-Bit-Systeme verarbeiteten intern bereits routinemäßig 64-Bit-Werte, bevor 64-Bit-CPUs verfügbar wurden.

Beispiel: Ein 32-Bit-System kann eine 64-Bit-Zahl problemlos verarbeiten, indem es sie in zwei 32-Bit-Variablen/Registern speichert. Der
Umgang mit einer 48-Bit-Zahl ist umständlich: Sie müssten entweder eine 32-Bit- und eine 16-Bit-Variable zusammen verwenden oder nur einen Teil einer 32-Bit-Variablen oder drei 16-Bit-Variablen. Keine dieser Lösungen für 48 Bit ist optimal.

Generell gilt: Jedes System, das mit X Bits arbeitet, kann problemlos Größen von (N * X) und (X / N) verarbeiten, wobei N eine Potenz von 2 ist. Die Logik lautet also 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 usw.
Jede andere Größe erfordert eine kompliziertere Handhabung in Hardware und/oder Software und ist daher nicht optimal.

Wenn Sie sich also für eine größere Bitgröße in der Hardwarearchitektur entscheiden, ist es sinnvoll, dieselbe Progression zu verwenden, da zur Unterstützung der neuen Bitgröße nur geringfügige Aktualisierungen an Betriebssystemen, Software und Compilern erforderlich sind.

(Dies alles gilt für die native Bitgröße der CPU-Register. Wenn Sie über die „Anzahl der Adressleitungen“ nachdenken, die die RAM-Chips adressieren, sehen Sie möglicherweise tatsächlich eine kleinere Zahl als für die Architektur normal.
Intern verwenden diese CPUs mehr Bits, aber nicht alle Bits sind mit echten Adressleitungen verbunden.
Z. B.: 20 Leitungen bei 8088- und 8086-CPUs, 20 Leitungen bei 80286 und 36 Leitungen bei Pentium II)

Antwort2

Was im Grunde passiert ist, ist Byte-Adressierung. Davor gab es keinen zwingenden Grund, Prozessoren eine Wortlänge von zwei Potenzen zu geben (obwohl es im Allgemeinen physikalische Gründe für ein Vielfaches von 2 oder 4 gab, da Schaltkreise in solchen Vielfachen vorkamen).

Vor der Byte-Adressierung hatte das Speicherwort dieselbe Breite wie das Prozessorwort, und der Speicher wurde (hauptsächlich) in Wörtern adressiert. Bei der Byte-Adressierung war es jedoch von Vorteil, dass die „Wort“-Länge eine Zweierpotenz der Byte-Größe war, sodass die „Wort“-Grenzen in einer schönen binären Progression verliefen (was sowohl für Menschen als auch für die Computerhardware angenehm zu handhaben war).

(Warum die Byte-Adressierung so in Mode gekommen ist, dafür kann ich im Moment kein überzeugendes Argument liefern.)

Wenn das Standardzeichen 10 Bit statt 8 Bit hätte, hätten wir wahrscheinlich Prozessoren mit 20, 40, 80 Bit statt 16, 32, 64.

verwandte Informationen