Haben moderne Prozessoren Redundanz in ihren Logikeinheiten, um Produktionsfehler zu kompensieren?


10

Moderne Prozessoren bestehen aus Milliarden von Transistoren, und neue Produktionstechnologien haben zumindest in den ersten Monaten häufig Probleme mit der Ausbeute, aber ich denke, dass es auch nach Jahren hin und wieder zu fehlerhaften Chips kommen wird.

Ich weiß, dass es in großen Blöcken (z. B. im Cache) die Möglichkeit gibt, nur Teile davon zu deaktivieren und dadurch die verfügbare Speichermenge zu reduzieren (so dass Sie den Chip zumindest zu einem niedrigeren Preis verkaufen können, anstatt ihn wegzuwerfen). Aber gibt es etwas Ähnliches für die Logikeinheiten? Ich bin mir bewusst, dass es mehrere ALUs zum Versenden gibt, aber ist dies eine Sache, um nur eine davon zu deaktivieren, wenn ein Produktionsfehler vorliegt? Oder gibt es noch zusätzliche Ersatz-ALUs? Denn für mich ist es kaum zu glauben, dass Fabs nur jeden Chip entsorgen, bei dem ein fehlerhafter Transistor in den Logikteilen vorhanden ist, während das Deaktivieren einer vollständigen ALU die erreichbare Verarbeitungsleistung erheblich reduzieren würde.


Nur meine Vermutung. Der Preis für die Herstellung von Siliziumwafern ist bei großen Mengen relativ niedrig, und Sie können ihn vor dem Gehäuse im Gehäuse testen, um vollständige Chips mit relativ geringer Ausfallrate herzustellen. > 50% des Preises sind reines Marketing. Ich denke auch, dass viele Prozessorvarianten innerhalb derselben Familie in derselben Topologie hergestellt werden und sich nur in einigen ausgeschalteten Funktionen / Kernen / Caches unterscheiden (wie Sie geschrieben haben), sodass der Hersteller die große Lücke hat, um auch bei eine niedrige Produktionsausfallrate aufrechtzuerhalten beschädigte Einheiten. Ich bezweifle jedoch, dass sie beispielsweise mehrere reservierte ALUs für denselben Kern haben.
Zyklon125

Ich denke, das bekannteste Beispiel dafür war der Intel 486SX, der derselbe Chip wie der DX mit einer deaktivierten FPU war. Aber es würde mich interessieren, wie der moderne Zustand ist.
pjc50

Ich bezweifle es sehr. Die Menge an Logik und Entwurfszeit, die erforderlich ist, um Redundanz auf niedriger Ebene mit der Geschwindigkeit moderner Prozessoren zu ermöglichen, wäre es nicht wert. Redundanz auf Blockebene (Core, fpu, Cache) oder nur Blockdeaktivierung wäre viel mehr als genug, um die Ausbeute signifikant zu steigern. Und bei aktuellen Prozessorpreisen und Wafergrößen könnte sogar eine Ausbeute von 5% rentabel sein.
Edgar Brown

Sie denken also, wenn eine ALU nicht verwendbar ist, deaktivieren sie einfach den Kern. Ja, könnte eine Möglichkeit sein. Ich hoffte, jemand hier würde es wirklich wissen.
Jusaca

1
Ja, sie deaktivieren den Kern. Es ist eine Praxis namens "Binning".
DKNguyen

Antworten:


3

Wie andere gesagt haben, ist es schwierig, redundante ALU-Logik innerhalb eines Kerns zu erkennen.

Ein Kern wurde entwickelt, um den Durchsatz zu optimieren. Jede zusätzliche Logik für eine redundante ALU würde die Leistung beeinträchtigen und eine größere Fläche würde den gesamten Kern verlangsamen. Mit der Weiterentwicklung der Technologie wurde das Silizium kleiner, wodurch die Kerne schneller wurden, aber im Wesentlichen dasselbe geistige Eigentum verwendet wurde. Warum redundante ALUs, wenn Platz für redundante Kerne verfügbar ist, um die Produktionsausbeute zu erhöhen?

Im Jahr 2011 meldete Intel ein Patent für mindestens 32 Kerne mit 16 aktiven und 16 freien Kernen an. Das Patent besagt, dass fehlerhafte Kerne höhere Temperaturen haben würden, die das Einschalten eines Ersatzkerns ermöglichen. Im Wesentlichen dynamische Kernzuweisung nach Bedarf.

Möglicherweise können Kerne mit hoher und niedriger Leistung entsprechend den Aufgaben zugewiesen werden. Oder schalten Sie einen fehlerhaften Kern aus, der durch höhere Temperaturniveaus erkannt wird. Betreiben Sie die Kerne schachbrettartig, um die Hitze zu reduzieren.

Intel-Patent: Verbesserung der Zuverlässigkeit eines Vielkernprozessors


Das macht sehr viel Sinn, ich habe nicht über die Auswirkungen auf die Leistung nachgedacht, die freie Siliziumbereiche innerhalb eines Kerns haben können. Das Deaktivieren ganzer Kerne scheint der richtige Weg zu sein, wie auch die anderen Antworten implizieren.
Jusaca

5

Nicht in der Logik.

Wenn es jedoch große Speicher (SRAM) gibt, ist es üblich, einen Speicher mit 'Redundanz' zu verwenden. Diese haben eine spezielle Logik, die so programmiert werden kann, dass sie einen Bereich ersetzt, häufig mehrere Zeilen oder Spalten.

Der fehlerhafte Bereich wird während des Tests erkannt und dann wird der redundante Speicher so programmiert, dass er die fehlerhaften Stellen ersetzt.

Dieser 'Ersatz' muss jedoch mit OTP-Bits (One-Time-Programmable) oder einem anderen Speicher eingerichtet werden, der seinen Wert enthält. Daher werden diese Speicher nur in Chips verwendet, die über eine solche "permanente Speicher" -Funktion verfügen, oder es muss auch eine solche Programmierfunktion hinzugefügt werden, wobei alle damit verbundenen Kosten anfallen.


Denken Sie, dass diese OTP-Bits elektronisch programmiert sind, wie das Brennen einer Sicherung oder so, oder müssen die großen Hersteller mit Lasertrimmen direkt auf den Chip gehen?
Jusaca

1
OTP sind On-Chip-Sicherungen, die elektronisch programmiert werden können (ähnlich wie EEPROM, aber dann permanent). Endbenutzer können sie auch für Seriennummern, Ethernet-Adressen, Verschlüsselungsschlüssel usw.
brennen

4

Dies ist bei einfachen MCUs oder typischen Single-Core-Prozessoren sicherlich nicht der Fall. Die Kosten für Ersatzblöcke würden sich nicht lohnen, und diese Prozessoren verwenden keine hochmodernen Gravurverfahren und benötigen keine großen Siliziumflächen, sodass die Ausbeute gut genug ist.

Dies geschieht jedoch für einige Mehrkernprozessoren, bei denen die Siliziumfläche ziemlich groß ist und die feinere Gravurprozesse verwenden, die zu höheren Fehlerraten führen können. Auf diesen Prozessoren können ganze Kerne deaktiviert werden (dies sind ziemlich große Logikblöcke, die viel mehr als eine ALU enthalten), wenn sie defekt sind. Der Prozessor wird dann als unteres Modell verkauft.

Quelle: /skeptics/15704/are-low-spec-computer-parts-just-faulty-high-spec-computer-parts


3

Ich kann Ihre Frage mit Sicherheit nicht beantworten. Es macht wenig Sinn, Einheiten zu deaktivieren, die kleiner als 1 Kern sind, da es sich um einen sehr feinkörnigen "Funktionsumfang" handelt, der aktiviert werden kann oder nicht, und das kartesische Produkt aller möglichen Funktionen würde unzählige mögliche CPU-Modelle ergeben. Es gibt bereits viele CPU-Modelle, die 10-100-mal höher sind, wird definitiv nicht helfen!

Ein weiterer Aspekt ist, dass die Milliarden von Transistoren (größtenteils) zur Herstellung von Caches verwendet werden und dass Hersteller bei defekten Transistoren definitiv CPUs verkaufen, bei denen Teile ihres On-Die-Caches deaktiviert sind (siehe z. B. AMD Thorton gegen AMD Barton).

Aber ich kann Ihnen eine Anekdote erzählen, die ich von einer Person gehört habe, der ich vertraue. Vor langer Zeit war ich ein neugieriger Overclocker. In meinen Tagen war AMD Athlon Thoroughbred die preisgünstigste übertaktbare CPU der Wahl:

Athlon Vollblut

Bei der Montage kundenspezifischer Kühllösungen musste beim Anbringen des Kühlkörpers sehr vorsichtig vorgegangen werden, da dieser direkt gegen die Matrize drückt. Wenn Sie ungleichmäßigen Druck ausübten, waren die Matrizen dafür bekannt, dass sie an den Ecken leicht rissen, wenn Sie zuerst an einer Ecke Kraft ausübten.

Diese Person hatte genau das Gleiche getan, ein bedeutender Teil einer Ecke war weg, aber die CPU funktionierte auf wundersame Weise einwandfrei, wenn auch mit stark reduzierter Speicherleistung. Die Ecke enthielt nur den L2-Cache. Nachdem dieser Teil weg war, arbeitete das Caching-Protokoll irgendwie um den jetzt sehr defekten Würfel herum . Wahrscheinlich wurden Cache-Fehler für alle Abfragen in diesem Teil gemeldet, sodass die CPU nur auf ihren L1-Cache (oder nur einen Teil von L2) reduziert wurde, sodass sie in den meisten Tests viel langsamer war und in engen Schleifen praktisch die gleiche Leistung aufwies.

In der gleichen Richtung könnte man sagen, dass die CPU möglicherweise auf andere ALUs zurückgreifen kann , wenn eine ALU defekt ist und irgendwie signalisieren kann, dass sie die Arbeit abgelehnt hat . Ob dies von CPU-Herstellern gemacht wird, ist unbekannt (und ich bezweifle es), aber das Cache-Beispiel (von vor 15 Jahren) zeigt, dass es definitiv machbar ist.


Dies ist sicherlich sehr beeindruckend, und es scheint sogar eine Art dynamischer Prozess zu sein, da das System das fehlerhafte Chipteil selbst erkannt hat. Als ich die Frage stellte, dachte ich eher an eine Erkennung durch ein Testsystem in der Produktionslinie. Aber diese Geschichte ist definitiv interessant;)
Jusaca
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.