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.
quelle
Antworten:
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
quelle
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.
quelle
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
quelle
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:
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.
quelle