Warum gibt es keine 256-Bit- oder 512-Bit-Mikroprozessoren?

95

In einem 8-Bit-Mikroprozessor besteht sein Datenbus aus 8 Datenleitungen. In einem 16-Bit-Mikroprozessor besteht sein Datenbus aus 16 Datenleitungen usw.

Warum gibt es weder einen 256-Bit-Mikroprozessor noch einen 512-Bit-Mikroprozessor? Warum erhöhen sie nicht einfach die Anzahl der Datenleitungen und erstellen einen 256-Bit-Mikroprozessor oder einen 512-Bit-Mikroprozessor?

Welches Hindernis verhindert die Erstellung eines 256-Bit-Mikroprozessors oder eines 512-Bit-Mikroprozessors?

Michael Harris
quelle
20
Sogar Marketing kann nicht einfach eine Zahl für immer erhöhen.
Olin Lathrop
82
Warum gibt es noch keinen Rasierer mit 256 Klingen?
Rocketmagnet
11
@OlinLathrop Kasse der Gillete Fusion Power , mit 5 Klingen und einem Akku!
Brendan Long
6
Die Antwort ist ungefähr die gleiche wie die auf diese Frage: Wir haben 1 & 2 & 3 & 4 & 5 & 6 & 8 & 12 & 16 Zylinderautos. Warum haben wir keine Autos mit 32, 64 und 128 Zylindern?
Russell McMahon
13
@ Russell: Weil es dann einen globalen Mangel an Zylindern geben würde.
Olin Lathrop

Antworten:

110

Denk darüber nach. Was genau stellen Sie sich einen "256-Bit" -Prozessor vor? Was macht die Bit-Ness eines Prozessors überhaupt aus?

Ich denke, wenn keine weiteren Qualifikationen vorgenommen werden, bezieht sich die Bit-Ness eines Prozessors auf seine ALU-Breite. Dies ist die Breite der Binärzahl, die in einer einzigen Operation nativ verarbeitet werden kann. Ein "32-Bit" -Prozessor kann daher in einzelnen Befehlen direkt mit Werten arbeiten, die bis zu 32 Bit breit sind. Ihr 256-Bit-Prozessor würde daher eine sehr große ALU enthalten, die 256-Bit-Zahlen in einzelnen Operationen addieren, subtrahieren, ODER-verknüpfen, UND-verknüpfen usw. kann. Warum willst du das? Durch welches Problem lohnt es sich, die große und teure ALU zu haben und zu bezahlen, selbst wenn der Prozessor nur 100 Iterationen einer Schleife und dergleichen zählt?

Der Punkt ist, Sie müssen für die breite ALU bezahlen, ob Sie sie dann häufig oder nur für einen kleinen Teil ihrer Fähigkeiten verwenden. Um eine 256-Bit-ALU zu rechtfertigen, müssten Sie ein ausreichend wichtiges Problem finden, das wirklich von der Manipulation von 256-Bit-Wörtern in einzelnen Anweisungen profitieren kann. Sie können sich wahrscheinlich ein paar Beispiele ausdenken, aber es gibt nicht genug solcher Probleme, die den Herstellern das Gefühl geben, dass sie jemals eine Rendite auf die erheblichen Investitionen erhalten, die für die Herstellung eines solchen Chips erforderlich sind. Wenn es Nischen-, aber wichtige (gut finanzierte) Probleme gibt, die von einer breiten ALU wirklich profitieren können, dann würden wir sehr teure, sehr zielgerichtete Prozessoren für diese Anwendung sehen. Ihr Preis würde jedoch eine breite Verwendung außerhalb der engen Anwendung verhindern, für die sie entworfen wurde. Zum Beispiel, Wenn 256 Bit bestimmte Kryptografieanwendungen für das Militär ermöglichen würden, würden wahrscheinlich spezialisierte 256-Bit-Prozessoren auftauchen, die jeweils 100 bis 1000 Dollar kosten. Sie würden eine davon nicht in einen Toaster, ein Netzteil oder sogar ein Auto stecken.

Ich sollte auch klarstellen, dass die breite ALU nicht nur die ALU verteuert, sondern auch andere Teile des Chips. Eine 256 Bit breite ALU bedeutet auch, dass es 256 Bit breite Datenpfade geben muss. Das allein würde viel Siliziumfläche in Anspruch nehmen. Diese Daten müssen von irgendwoher kommen und irgendwohin gehen, daher müssten Register, Cache, anderer Speicher usw. vorhanden sein, damit die breite ALU effektiv genutzt werden kann.

Ein weiterer Punkt ist, dass Sie mit jedem Breitenprozessor eine beliebige Breitenarithmetik ausführen können. Sie können ein 32-Bit-Speicherwort in ein anderes 32-Bit-Speicherwort in einem PIC 18 in 8-Anweisungen einfügen, während Sie dies in derselben Architektur tun können, die in nur 2 Anweisungen auf 32 Bit skaliert ist. Der Punkt ist, dass eine schmale ALU Sie nicht davon abhält, umfangreiche Berechnungen durchzuführen, sondern dass die umfangreichen Berechnungen länger dauern. Es ist also eine Frage der Geschwindigkeit, nicht der Fähigkeit. Wenn Sie sich das Spektrum der Anwendungen ansehen, für die bestimmte Breitenzahlen erforderlich sind, werden Sie feststellen, dass nur sehr wenige 256-Bit-Wörter benötigen. Die Kosten für die Beschleunigung nur dieser wenigen Anwendungen mit Hardware, die den anderen nicht hilft, lohnen sich nicht und sind keine gute Investition für die Produktentwicklung.

Olin Lathrop
quelle
9
Ich hasse es, es zu sagen, aber ich bin hier nicht einverstanden. Lassen Sie mich ein Beispiel ausdenken: Grafik-Rendering für Videospiele. Es ist ein kleiner Markt, von dem Sie vielleicht gehört haben, dass er 10 Milliarden Dollar wert ist.
Rocketmagnet
39
@Rocket: Zuerst fragte das OP nach einem Mikroprozessor , nicht nach einem Grafikprozessor. Zweitens erfordert das Rendern von Grafiken keine besonders breiten Wörter. Viele kleinere Operationen können parallel ausgeführt werden, aber ich würde nicht 8 CPU-Kerne parallel bezeichnen, die jeweils mit 32-Bit-Daten arbeiten - ein "256-Bit" -Prozessor. Nennen Sie Ihren Quad-Core-PC einen "256-Bit" -Prozessor, nur weil jeder Core 64-Bit-Daten nativ verarbeiten kann? Ich denke, das ist ein Missbrauch des Begriffs, und selbst Intel-Marketing scheint nicht mehrere Kerne auf diese Weise zu platzieren.
Olin Lathrop
30
@Rocket: SIMD ist eine andere Art von Parallelität, aber ich würde es immer noch nicht als breite ALU bezeichnen, sondern nur eine Reihe kleiner ALUs, die eng parallel laufen. Sie können beispielsweise auf einem solchen SIMD-Prozessor keine 256-Bit-Addition mit allen Überträgen durchführen. Parallelität ist nicht dasselbe wie eine breitere ALU. Sie scheinen alles zu tun, um etwas Gegenteiliges zu tun. Vielleicht können Sie argumentieren, was parallel oder breiter ist, aber unkonventionelle Definitionen zu verwenden und dann zu behaupten, andere Interpretationen seien erstaunlich falsch, ist nur ein Pissing Contest.
Olin Lathrop
15
@Rocket: Nur weil die CPU 256 Bit gleichzeitig verarbeiten kann, wenn mehrere Vorgänge gleichzeitig ausgeführt werden, wird sie nicht zu einer "256-Bit" -CPU. Das würde bedeuten, dass es direkt mit 256 Bit breiten Zahlen arbeiten kann, was es nicht kann. Wie Sie selbst sagten, gibt es keinen Übertrag zwischen den getrennten parallelen ALU-Einheiten, was es nicht zu einer 256-Bit-ALU macht. Sie scheinen eine ungewöhnliche Definition dessen zu haben, was die Bitanzahl einer CPU bedeutet. Es ist nicht die Anzahl der Bits, die gleichzeitig verarbeitet werden können, sondern die Breite eines Wortes, das als Ganzes verarbeitet werden kann.
Olin Lathrop
19
Als ich in der Schule war, wurde uns beigebracht, dass Software-Leute die Bitigkeit in Bezug auf die "logische" Befehlssatzbreite und Hardware-Leute die Bitigkeit in Bezug auf die Busbreite gemessen haben. So war der 8088 ein 16-Bit-Prozessor für Softwareleute und ein 8-Bit-Prozessor für Hardwareleute. Der 8086 war für alle 16-Bit. Natürlich würden die Marketing-Leute die größte Anzahl nehmen, die sie finden könnten. Hoffen wir also, dass sie diesen Kommentarthread nicht lesen und mit der Vermarktung von 512-Bit-CPUs beginnen! :-)
Mark Harrison
34

Nun, ich kenne 256 oder 512 Bit nicht, aber ich habe von einem 1024-Bit-Prozessor gehört (ich kann ihn momentan nicht finden). Das Wort ist VLIW für Very Long Instruction Word . Das ist also der Befehlsbus, nicht die Datenbusbreite. Die Vorteile sind, dass Sie Instruction Level Parallelism (ILP) in großem Umfang implementieren können .

Meine erste Begegnung mit ILP muss vor 20 Jahren mit Motorola-DSPs stattgefunden haben, die Anweisungen zum Durchführen eines MAC (Multiplizieren und Akkumulieren) beim Verschieben von Daten in den und aus dem Speicher enthielten, sodass Sie beim nächsten Befehl ohne Verschwendung einen neuen MAC ausführen können Zeit zwischen zwei MACs zum Verschieben von Daten.
Heute gibt es auch Universalregler, die diese Option anbieten. VLIW wendet dies in einem viel höheren Umfang an.

Da Ihre Datenbusbreite nicht so breit ist, können Sie mehrere Befehle plus Konstanten in einem Befehl haben. Der Grund, warum der Datenbus nicht dem Trend folgt, ist, dass er ziemlich nutzlos ist. Ein 64-Bit-Datenregister kann eine 20-stellige Dezimalzahl darstellen. Wann haben Sie das letzte Mal 20 Stellen Genauigkeit benötigt? Für die meisten Anwendungen gilt 10 = .20

Lesen Sie weiter
VLIW Architecture

stevenvh
quelle
Die meisten finanziellen Berechnungen :( stoßen jetzt auf dieses Problem
so verwirrt
Ich dachte, der x86 sei eine VLIW-CPU. ;-)
Macke
1
@MarcusLindblom Nur wenn Sie mit VLIW Anweisungswörter mit variabler Länge meinen. ;-)
ein CVn
3
@ AK4749 In diesem Fall werden Ihre Vorhersagen wahrscheinlich von den Banken verworfen, die Ihre Transaktionen nach "echten" Rechnungslegungsregeln abwickeln. Das heißt, wenn Sie einen Plan ausführen, der auf diesen Regeln basiert, werden nicht die erwarteten Ergebnisse erzielt, da die realen Banken die realen Rechnungslegungsregeln verwenden und nicht die Genauigkeit von Nano-Cent. Und natürlich, weil die Märkte unsicher sind. Wenn also 1-Cent-Fehler am Anfang 1 Billion Dollar Fehler am Ausgang ergibt, sind diese 1 Billion Dollar nur ein Simulationseffekt, den Ihre Kunden nicht verwenden sollten, um Pläne zu schmieden.
Das Photon
1
Natürlich würden sie niemals jahrzehntelange Vorhersagen als Grundlage für aktuelle Entscheidungen verwenden, auch wenn ich als Programmierer nicht so dumm wäre. Allerdings (und um klar zu sein, wir haben das divergierende Fehlerproblem gelöst, damit es nicht existiert), benötigen die größten Kunden diese Art von Funktionen für jeden schändlichen Zweck, den sie ihren Lieferanten nicht preisgeben möchten. Nachdem ich einige Jahre im Finanzbereich gearbeitet habe, kann ich Ihnen sagen, dass Finanzunternehmen tatsächlich präzisere Berechnungen verwenden (1/2)
so verwirrt, dass der
28

"Zeuge" eines Mikroprozessors wird üblicherweise in Bezug auf die Größe der Universalregister definiert. Die Größe bestimmt, wie viele Daten ein Prozessor nativ verarbeiten kann und auf wie viel Speicher er zugreifen kann. 64-Bit-Zahlen reichen für fast jeden Algorithmus aus, und die Menge an adressierbarem Speicher (16 Millionen Terabyte) reicht für einige Zeit aus. Es hat einfach keinen Vorteil, die Größe der Allzweckregister zu erhöhen. Auf der anderen Seite skaliert der Bereich der arithmetischen Logikeinheiten (ALU), die zum Ausführen von Operationen an den Registern verwendet werden, mit dem Quadrat der Anzahl von Bits. Eine 256-Bit-ALU wäre 16x größer und deutlich langsamer.

Andererseits ist es sinnvoll, den Prozessor zu verbreitern, um viele kleinere Operationen gleichzeitig ausführen zu können. Die Sandy Bridge- und Ivy Bridge-Prozessoren von Intel bieten genau das. Sie verfügen über 256-Bit-SIMD-Register und können zwei Rechenoperationen und eine Speicheroperation pro Zyklus ausführen. Man könnte sie also 256-Bit- oder sogar 768-Bit-Prozessoren nennen, wenn man ein hinterhältiger Vermarkter wäre, der regelmäßig verwendete Begriffe verbiegen möchte.

Ameisen Aasma
quelle
Das ist eine beeindruckende Architektur.
Trygve Laugstøl
6
+1 für "hinterhältiger Vermarkter, der regelmäßig verwendete Begriffe verbiegen möchte."
Dan Neely
14

Erstens wird die Bitgröße eines Prozessors normalerweise durch die abstrakte Architektur bestimmt, die für den Maschinensprachenprogrammierer sichtbar ist, und nicht durch Implementierungsdetails wie die Größe des Datenbusses.

Das Motorola 68000 ist beispielsweise ein 32-Bit-Prozessor. Es verfügt über 32-Bit-Datenregister und 32-Bit-Adressregister. In der ersten Version dieser Architekturfamilie sind nur 24 Bit Adressleitungen verfügbar. Darüber hinaus gibt es Varianten, die nur einen 8-Bit-Datenbus haben (daher werden 32-Bit-Speicheroperationen vom Prozessor als Mehrfachzugriffszyklen ausgeführt).

Nun zur Frage, warum nicht zu 256 und 512 wechseln? Prozessoren manipulieren "nativ" mehrere Arten von Datentypen. Daher ist es hilfreich zu prüfen, was 256 oder 512 Bit für jeden dieser Datentypen einzeln bedeuten. Wir haben Ganzzahlen, Zeiger und Gleitkommatypen.

  1. Ganzzahlen: Programme erzielen eine Menge Meilen aus 32- und 64-Bit-Ganzzahlen. Wenn 64 Bit eine Einschränkung darstellen, besteht die Korrektur darin, dass Software-implementierte Bignum-Ganzzahlen vorhanden sind. Hochstufige Sprachen können Integer-Typen implementieren, sodass die Operationen reibungslos zwischen "Fixnums" und "Bignums" wechseln. Natürlich erzielen Sie mit Bignums Leistungseinbußen, aber im Großen und Ganzen müssen Sie berücksichtigen, dass es sich bei wie vielen Operationen in einem Programm um Bignum-Operationen handelt. 256- oder 512-Bit-Nummern machen Bignums nicht überflüssig, sondern erhöhen nur den Headroom, bevor wir auf Bignums umsteigen müssen. Wenn Sie öffentliche 2048-Bit-Schlüssel manipulieren möchten, reichen 512-Bit-Ganzzahlen nicht aus (ein Bignum mit 512-Bit-Ziffern kann jedoch schnell sein).

  2. Zeiger: Breitere Zeiger ermöglichen zwei Dinge: breitere Adressräume und zusätzliche Metadaten, die in einem Zeiger gespeichert sind. Adressräume sind heutzutage virtuell und können daher wachsen, auch wenn die Erinnerungen nicht wachsen. Es wurde vorgeschlagen, dass bei 128-Bit-Zeigern der Adressraum so groß ist, dass Sie alle Benutzerbereichsprozesse eines Betriebssystems und den Kernel an zufälligen Stellen in einem einzigen ungeschützten Bereich ablegen können, was unwahrscheinlich ist kollidieren. Anstatt einfach einen größeren Adressraum zu erstellen, können dickere Zeiger verwendet werden, um Bits zu übertragen, die keine Adressbits sind, wie z. B. Informationen über das Referenzobjekt (Typ, Größe und andere Informationen) oder sicherheitsrelevante Informationen. Es gibt wahrscheinlich eine "optimale Fettigkeit" für diese Art von Dingen, und wenn ich raten würde, würde ich sie immer noch auf 128 Bits begrenzen. Tut es nicht' Es scheint keinen Sinn zu machen, auf 256-Bit-Zeiger zuzugreifen, ganz zu schweigen von 512. Fette Zeiger haben den Nachteil, dass sie alle Datenstrukturen aufblähen, die Zeiger enthalten. Und im Allgemeinen möchten Sie, dass die Zeiger dieselbe Größe haben, andernfalls benötigen Sie Komplikationen in der Befehlssatzarchitektur (wie Speichersegmente), wobei Sie dann vollständige Zeiger (Segmentdeskriptor und Versatz) oder nur lokale Zeiger (Versatz innerhalb eines verstandenen Segments) haben. .

  3. Gleitkommatypen: Mehr Bits in Gleitkommazahlen bedeuten mehr Präzision. Ich würde sagen, dass die Gleitkommatypen am meisten von einer breiteren Darstellung profitieren. Ein 256- oder 512-Bit-Floating-Typ verbessert die Stabilität des numerischen Codes und die Qualität wissenschaftlicher Berechnungen, die viele Iterationen erfordern, und akkumuliert dabei Fehler. Die Genauigkeit in Gleitkommazahlen ist nicht gleichbedeutend mit der Genauigkeit in ganzen Zahlen: Wir können den Gleitkommatyp nicht in Bereiche wie Festkommazahlen oder Grenzkommazahlen unterteilen. Eine höhere Genauigkeit bei Gleitkommazahlen wirkt sich auf die Qualität aller ungenauen Zahlen aus, unabhängig davon, ob sie nahe bei Null liegen oder eine große Größe haben. Mehr Bits in Gleitkommaexponenten können den Bereich der Gleitkommazahlen erheblich erweitern und sind viel schneller als das Hinzufügen von Bits zu einer Bignum-Ganzzahl.

Aus diesen Gründen vermute ich, dass der vorherrschende zukünftige Trend darin bestehen wird, die Breite von Hardware-Gleitkommazahlen zu erhöhen, nicht unbedingt gefolgt von einer Erhöhung der Breite von Zeigern und ganzen Zahlen.

Denken Sie daran, dass Gleitkommazahlen in der Vergangenheit den anderen Typen bereits voraus waren. Zum Beispiel herrschten eine Zeit lang 32-Bit-Prozessoren vor, die 64-Bit-IEEE-Double-Floats unterstützen. Dies liegt daran, dass Sie mit 32-Bit-Zeigern und ganzen Zahlen viel anfangen können, während 32-Bit-Gleitkommazahlen für ernsthafte numerische Arbeiten nur sehr begrenzt zur Verfügung stehen.

Eine sehr, sehr nützliche Funktion, die sich in Gleitkommadarstellungen sehen lässt, wären ein paar Ersatzbits für ein Typ-Tag. Das Implementieren von Gleitkommatypen in dynamischen Hochsprachen (in denen Objekte über einen Typ verfügen, Speicherorte jedoch Werte aller Art enthalten) ist schwierig, da in Zeigern und ganzzahligen Objekten Ersatzbits gefunden werden können, um Teile eines Objekts zu platzieren Das Identifizieren von Typ-Tags ist mit Gleitkommazahlen schwierig. Was häufig passiert, ist, dass Gleitkommazahlen auf Heap zugewiesen werden. Einige Schemata stehlen Bits von der Mantisse, sodass Gleitkommatypen in dieser Sprache im Vergleich zu Gleitkommas in anderen Sprachen auf derselben Maschine an Genauigkeit verlieren.

Kaz
quelle
Schöne Beschreibung. Übrigens haben die üblichen x86-Prozessoren seit langer Zeit 80-Bit-Gleitkommazahlen, seit ich mich recht erinnere, die erste Hardware-Gleitkommazahl für sie. Die 80 Bit sind FPU-intern, dann werden im Allgemeinen 32 oder 64 Bit exportiert.
Olin Lathrop
Technisch schon erledigt. Google "Nan Boxing" oder "Nonne Boxing". Vielversprechender sind Hardware-Typ-Tags in 64-Bit-ARMs, aber das wird leider nicht so bald sein.
Whitequark
3
Auf die 80er Version konnte direkt zugegriffen werden. In den 90ern, als ich das Programmieren in TurboPascal lernte, gab es einen 80-Bit-Float-Typ.
Dan Neely
@DanNeely: Ich habe manchmal gedacht, dass Prozessoren von Gleitkommatypen mit 3D-Koordinaten profitieren, indem sie entweder drei 80-Bit-Zahlen zu einem 256-Bit-Block oder drei 42-Bit-Zahlen zu einem 128-Bit-Block oder drei kombinieren 21-Bit-Zahlen in einen 64-Bit-Block. Ich frage mich, wie schwer so etwas zu implementieren wäre und wie nützlich es sein könnte?
Supercat
@supercat GPGU Wikipedia: Die meisten Operationen auf der [NVidia] GPU werden vektorisiert ausgeführt: Eine Operation kann mit bis zu vier Werten gleichzeitig ausgeführt werden. Wenn beispielsweise eine Farbe <R1, G1, B1> durch eine andere Farbe <R2, G2, B2> moduliert werden soll, kann die GPU die resultierende Farbe <R1 * R2, G1 * G2, B1 * B2> in einer erzeugen Betrieb.
Kaz
9

Es hilft Ihnen nicht wirklich, etwas Nützliches zu tun. Mit 64-Bit-Zahlen erhalten Sie für fast alle Zwecke eine ausreichende Genauigkeit (Intel-Systeme verfügen jedoch über 80-Bit-Gleitkommazahlen). Die zusätzlichen Leitungen erhöhen jedoch die Kosten und den Stromverbrauch und wirken sich geringfügig negativ auf die Taktrate aus.

In der Vergangenheit verwenden CPUs die Mindestanzahl von Bits, die für den beabsichtigten Zweck sinnvoll ist. Mit den Fortschritten in der Technologie wurden breitere Busse und ALUs möglich, daher die Vergrößerung der Busgröße, um einer breiteren Anwendbarkeit zu dienen:

  • 4 Bits: genug für eine Ziffer, daher praktisch für (BCD-ähnliche) Taschenrechner, Registrierkassen usw. (was ein ziemlich begrenzter Bereich ist)
  • 8 Bit: genug für ein (ASCII) -Zeichen, praktisch für Textverarbeitungssysteme (das ein SEHR weiter Bereich ist), auch für Ton mit geringer Qualität
  • 16 Bit: Als 16-Bit-Adressen populär waren, waren 2 ^ 16-Speicheradressen eine vernünftige Menge (zumindest viel vernünftiger als 2 ^ 8 oder 2 ^ 32). 16 Bit liefern eine recht akzeptable Audioqualität, und die meisten A / D-Wandler liefern weniger als 16 Bit. Daher ist es sinnvoll, mit solchen Werten in 16 Bit zu rechnen
  • 32 Bit: 32 Bit entsprechen der Genauigkeit der meisten (aber nicht aller) vom Menschen gemessenen Größen. Wenn Sie nicht mit großen Datenbanken arbeiten, waren 2 ^ 32 Adressen für die meisten praktischen Zwecke ausreichend.
  • 64 Bits: mit> 2 ^ 32 Bytes Speicher jetzt praktisch.
  • 128 Bit: Derzeit wenig Vorteil gegenüber 32 Bit, außer in der Kryptographie. Wann erwarten wir mehr als 2 ^ 64 Bytes auf einer Festplatte? wahrscheinlich nicht so bald.
pjc50
quelle
1
"640K sollten für jeden genug sein." - Bill Gates (1981)
jippie
6
@jippie - Gates hat das eigentlich nie gesagt.
Rocketmagnet
1
Tatsächlich waren die meisten 8-Bit-CPUs in der Lage, 2 ^ 16 Bytes Speicher zu adressieren, und 16 Bitters 2 ^ 32, die 80386 (32 Bits) konnten theoretisch auch 2 ^ 64 Bytes (4 GB) Speicher adressieren, was ziemlich nutzlos gewesen wäre damals sowieso ...
Axel
1
20
3
@Michael - es ist aller Zeiten und ich habe es während meiner gesamten Karriere gesehen: Es gibt nur sehr wenige wirklich visionäre Produktmanager. Anekdote: Anfang der 1970er Jahre sagte Robert Noyce in einem Vortrag über die Zukunft der Mikroprozessoren die aktuelle Miniaturisierung voraus, und jemand im Publikum sagte: "Verdammt, ich möchte nicht einen ganzen Computer in einem Loch im Boden verlieren." Worauf Noyce verächtlich antwortete: "Sie verstehen es überhaupt nicht. Sie interessieren sich nicht für das, was Sie verloren haben; Sie werden Tausende von anderen haben." Das war Anfang der 1970er Jahre. Robert Noyce war ein Visionär.
Stevenvh
9

Tatsächlich gibt es solche Prozessoren und sie sind abhängig davon, wie Sie die Bitanzahl definieren, üblich. Sie verwenden jetzt mit ziemlicher Sicherheit einen. Wie Olin erklärte, werden 256-Bit-Zahlen nicht häufig verwendet, aber wie steht es mit 4 x 32-Bit-Zahlen? Was wäre, wenn die ALU gleichzeitig 4 Paare von 32-Bit-Zahlen hinzufügen könnte? Solche (mir bekannten) ALUs wurden erstmals in den 1970er Jahren in Vektor-Supercomputern implementiert. Das erste Mal, dass ich einen solchen Computer besaß, war, als ich einen der Intel Pentiums mit MMX hatte.

Intel MMX Typ

Erinnerst du dich an die Jungs?

Die MMX-Chips hatten einen SIMD- Befehlssatz (Single Instruction - Multiple Data ), mit dem Sie 1 × 64-Bit-Paare, 2 × 32-Bit-Paare, 4 × 16-Bit-Paare oder 8 × 8-Bit-Paare hinzufügen können.

Aber das ist doch nichts. Eine moderne Grafikkarte verfügt über eine GPU (früher für Graphics Processing Unit, jetzt für General Processing Unit). Dies sind oft breite SIMD-Implementierungen, die in der Lage sind, auf 128 oder 256 Bits gleichzeitig zu verzweigen, zu laden und zu speichern. Intels Larrabee-Prototyp-Mikroarchitektur enthält mehr als zwei 512-Bit-SIMD-Register auf jedem seiner Kerne.

GPU SIMD

Bitte beachten Sie, dass SIMD nicht mit Multi-Core zu verwechseln ist. Jeder Kern einer CPU hat eine eigene ALU, die eine Reihe von ganzen Zahlen addieren kann.

Raketenmagnet
quelle
1
"1 × 16-Bit-Paar, 2 × 32-Bit-Paare, 4 × 16-Bit-Paare oder 8 × 8-Bit-Paare" Sind Sie sicher, dass Sie diesen Teil richtig verstanden haben?
ein Lebenslauf
4
Auf den ersten Blick sah das aus wie eine Kraft-Single mit einem Intel-Logo
Chris Laplante
4
4x32-Bit-Variablen sind immer noch nur 32 Bit. Die Bit-Ness ist die maximale individuelle Ganzzahl, mit der die ALU arbeiten kann. Durch mehrmaliges paralleles Ausführen wird die Bitbreite nicht erhöht. -1
Connor Wolf
3

Weil wir es noch nicht brauchen.

Normalerweise wird die Bitanzahl (die ich als die Anzahl der Bits in einem Register definieren würde) mehr oder weniger direkt in die Größe des adressierbaren Speichers übersetzt. Dies wird natürlich vereinfacht, da es je nach Prozessor Register geben kann, die die doppelte Bitlänge haben, oder es gibt Techniken, um diese Speicherbeschränkungen zu umgehen (erinnert sich jemand daran, in 16-Bit-Fenstern programmiert zu haben?).

Axel
quelle
3

"Warum erhöhen sie nicht einfach die Anzahl der Datenleitungen und erstellen eine 256-Bit-Version?"

Alle Intel-Prozessoren, die in den LGA-2011-Sockel passen, verfügen tatsächlich über 256 Datenpins, die mit 256 Datenleitungen auf dem Motherboard verbunden sind, die zum DRAM führen. Ich wäre ein wenig überrascht, wenn der neueste Laptop oder Desktop-Computer, den Sie verwendet haben, nicht mindestens 256 Datenleitungen hätte. Darf ich fragen, woher Sie diese falsche Vorstellung haben, dass sie "nicht ... einfach die Anzahl der Datenleitungen erhöhen"?

Das LGA-2011 Socket-Datenblatt , Abschnitt 6.1, gibt an, dass diese CPUs 256 Datenpins und 76 Adresspins (Bankadresse + Speicheradresse) haben.

Davidcary
quelle
-1

weil es keine Anwendung gibt, die Daten mit mehr als 128 Bit gleichzeitig darstellen muss oder kann.

und Sie wissen, Multimedia-Prozessoren und Grafikkarten werden es weit vor den CPU-Mainboards schaffen, nur weil es bei Foto / Video Sinn macht, so große Datenlängen zu verwenden, um auf einmal verarbeitet zu werden.

Paulo
quelle
-4

Ein Computersystem ist in seiner Bedeutung eine Rechenmaschine, die einige Eingaben erfordert und einige Ausgaben liefert. Wir müssen den Computer in diesen Linien zufriedenstellen, daher kamen die Entwickler zu einem Benchmark mit 3 Bussen, nämlich Adressbus, Datenbus und Steuerbus. 1) Der Adressbus holt / wählt eine bestimmte Adresse im Speicher für Lese- / Schreibvorgänge. 2) Der Datenbus holt dann die vorliegenden Daten zum / vom Prozessor und Speicher für Verarbeitungs- / Speicherzwecke. 3) Der Steuerbus Erstellt ein Schnittstellensteuerungsprotokoll und fordert das System auf, es zu beachten.

Diese werden benötigt, um eine nützliche Berechnung für einen Benutzer / Server / Client durchzuführen. Im Allgemeinen hängt die Leistung (Geschwindigkeit der Aufgabenerfüllung, weniger Störungen usw.) vom Löschen der Flaschenhälse im System ab. Wenn die CPU in der Lage ist, mit einer viel höheren Rate als der Übertragungsgeschwindigkeit von einem Festplattenlaufwerk zu verarbeiten, tritt der Flaschenhals an der Festplatte auf. Ebenso müssen wir eine richtige Verarbeitungsgeschwindigkeit für eine bestimmte Datengeschwindigkeit und Codebreite haben.

Von Anfang an sind aus verschiedenen Gründen, wie z. B. der H / W-Komplexität, den Kosten, den Anforderungen, den effektiven Algorithmen und dem Hauptgrund des Marktumfangs, die Haupthindernisse für die Erzeugung einer hohen Datenbusbreite, wie vom Question Host erwähnt, z 512 bit. Das ist möglich! Die Anforderung ist jedoch noch nicht vorhanden, der Marktumfang ist bei den heutigen Anforderungen und dem Fehlen eines ergänzenden Software-Supports noch nicht ersichtlich.

Ein 256-Bit-Prozessor gibt die Breite des Datenbusses an, die ein bestimmter Prozessor verarbeiten kann, oder die ALU kann in einer einzelnen Ausführung verarbeitet werden. Wir begannen mit 4 Bit, dann mit 8,16,32 und gegenwärtig mit 64 und sogar 128 Bit, die die gegenwärtigen Market Scope-Produkte sind.

Bevor Sie diese Fragen stellen, müssen Sie immer die marktseitige Nachfrage und ihren Umfang sehen. In der Geschichte ist dies der einzige direkte Weg, um die Lebensweisen zu verstehen. Wenn Sie es sich nicht leisten können, wie können Sie es kaufen? und wenn du es nicht kaufen kannst, wie kann der Produzent dann produzieren? und wenn er nicht produzieren kann, dann gibt es keine Existenz für dieses Produkt !!

Sri Krishna
quelle
6
Das Großschreiben von Substantiven macht es schwer zu lesen.
pjc50
hmm, ja ich muss damit anfangen.
Sri Krishna
@ pjc50 Vielleicht kommt er aus Deutschland? Oh warte, "Asking" und "Buy" werden ebenfalls groß geschrieben, vielleicht nicht ...
Alex