Warum haben wir keine 33-Bit-CPUs? [geschlossen]

9

Ich habe gesehen, dass sich CPUs und Betriebssysteme in Bezug auf Bits von 8-Bit auf 16-Bit, auf 32-Bit und derzeit auf 64-Bit nach oben bewegt haben. Ich verstehe, dass diese Änderung dazu dient, die maximale Speichermenge zu erhöhen, die von der CPU adressiert werden kann.

Was ich nicht verstehe ist, warum es immer eine Verdoppelung der Busgröße gibt. Ist es nur eine willkürliche / geschäftliche Entscheidung, die Busgröße zu verdoppeln, oder gibt es einen anderen Grund?

Warum können wir keine 33-Bit-CPU haben? Oder wenn das nicht genug wäre, eine 34-Bit-CPU? 64-Bit scheint ein solch massiver und unnötiger (teurer?) Sprung in den Adressraum und vermutlich die Komplexität des zugrunde liegenden Siliziums zu sein.

localhost
quelle
3
@sawdust - Es ist jedoch nichts Heiliges daran, einen Datenpfad zu haben, der ein Vielfaches von 8 Bits ist, und noch weniger einen, der eine Potenz von zwei Vielfachen von 8 Bits hat.
Daniel R Hicks
7
Diese Frage ist eigentlich nicht so schlimm und nicht ganz so einfach wie "na ja, lerne binären Derp!", Wie Daniel (und meine Antwort) hervorheben. Ich werde es aus diesem Grund wieder auf Null bringen.
Marshall Eubanks
1
Ihre Frage enthält eine falsche Prämisse. Die Erhöhung der Bitbreite diente hauptsächlich dazu, die Breite von Allzweckregistern zu erhöhen. Die Zunahme der Breite der Zeiger war historisch zweitrangig.
David Schwartz
1
@sawdust Ich habe eine ziemlich gute Vorstellung davon, wie Binärdateien funktionieren, was aus meiner Frage wirklich ziemlich offensichtlich ist. Nein, danke für Ihre nicht hilfreiche und eher unhöfliche Antwort.
localhost
1
@ Marshaul: Diese Frage wurde tatsächlich unter Null herabgestimmt? Warum?? Das ist eine gute Frage! Ich denke, die Downvoter hatten wahrscheinlich noch weniger Verständnis für Binärzahlen als der Fragesteller.
HelloGoodbye

Antworten:

7

Ich habe 12-, 14-, 15-, 17-, 18-, 20-, 24- und 48-Bit-CPUs gesehen. Aber mit moderner VLSI-Technologie (oder ist es mittlerweile ULSI?) Ist das Hinzufügen weiterer Bits zum Datenpfad nicht so teuer. Chipentwickler drängen so viel Breite wie möglich auf den Chip, da dies den Durchsatz mit relativ geringen zusätzlichen Kosten und nur einer geringen Zykluszeitstrafe erhöht.

Es ist viel schwieriger, mit einem engen Datenpfad und einer schnelleren Zykluszeit mehr Geschwindigkeit / Durchsatz zu erzielen.

Daniel R Hicks
quelle
(Ich habe vergessen, 60-Bit-CPUs zu erwähnen - Die alte CDC 6600-Serie.)
Daniel R Hicks
Obwohl dies eine interessante Antwort ist, erklärt sie immer noch nicht, warum Zweierpotenzen in modernen PCs bevorzugt zu sein scheinen, was meiner Meinung nach das eigentliche Ziel der Frage ist, obwohl sie zum Zeitpunkt ihrer Erstellung noch nicht vollständig verwirklicht war.
HelloGoodbye
@HelloGoodbye Es sind nicht so viele Zweierpotenzen, sondern Vielfache von 8. Ein 32-Bit-Datenbus kann genau 4 Bytes in einen Befehl schreiben.
Jiggunjer
4

Im Gegensatz zu vielen Umständen in einem Computer, zum Beispiel beim Adressieren, bei denen das Erhöhen der Adresslänge um ein Bit die Menge des adressierbaren Speichers um eine Potenz von 2 erhöht (und warum Potenzen von 2 im Speicher so häufig sind), ist die tatsächliche Wortlänge der CPU kann ein beliebiger bequemer Wert sein.

Die üblichen Wortlängen für Prozessoren (16, 32 und 64 Bit) ergaben sich tatsächlich als Vielfache von 8 (anstelle von Zweierpotenzen, obwohl diese speziellen Vielfachen von 8 natürlich auch Potenzen von 2 sind), wobei 8 Bit die sind Mindestgröße für ein einzelnes Zeichen , selbst der kleinste häufig verwendete primitive Datentyp.

Da 8 Bit selbst zu ungenau sind, um für numerische Werte (oder sogar für erweiterte Zeichensätze wie UTF-16) sehr nützlich zu sein, ermöglichen Wörter, die größer als 8 Bit sind, eine viel höhere Effizienz, wenn mit Werten gearbeitet wird, die mehr als so viele Genauigkeitsbits verwenden und Vielfache von 8 Bits (der kleinste häufig verwendete Datentyp) sind immer noch die natürliche Wahl, sodass man eine ganzzahlige Quantifizierung von (z. B. 2, 4 oder 8) Zeichen in einem Wort speichern kann, ohne verschwendete, nicht verwendete Bits zu hinterlassen.

Der Wikipedia-Artikel über Wörter enthält einen Abschnitt zur Auswahl der Wortgröße mit etwas mehr Details.

Marshall Eubanks
quelle
1
Nicht alle Vielfachen von 8 sind Potenzen von 2.
cpast
Hervorragender Punkt, ich wollte wirklich "diese Potenzen von 2" sagen. Ich werde das Problem beheben.
Marshall Eubanks
Es wurden Computer mit 6- und 10-Bit- "Zeichen" gebaut.
Daniel R Hicks
Sicher, und wieder kann die Wortlänge eine beliebige Zahl sein, die nicht auf der Zeichenlänge oder irgendetwas Besonderem basieren muss. Zum Beispiel würde eine ALU, die selten mit "Zeichen" arbeitet, wahrscheinlich eine Wortlänge haben, die auf der üblicherweise verwendeten Ganzzahl mit der geringsten Genauigkeit basiert. Ich wollte nichts Vorschreibendes vorschlagen, nur den Grund für die häufigsten Entscheidungen (und die, nach denen er gefragt hat) erklären.
Marshall Eubanks