Ausbeuten in DRAM und anderen massiv redundanten Prozessen

Ich durchforste gerade die elektrotechnische Literatur über die Art von Strategien, die verwendet werden, um hochkomplexe, aber auch extrem anfällige Systeme wie DRAM zuverlässig zu produzieren, wo Sie eine Reihe von vielen Millionen Komponenten haben und wo ein einziger Fehler das gesamte System lahmlegen kann .

Es scheint, dass eine übliche Strategie darin besteht, ein viel größeres System herzustellen und dann beschädigte Zeilen/Spalten mithilfe einstellbarer Sicherungen selektiv zu deaktivieren. Ich habe gelesen[1], dass (Stand 2008) kein funktionierendes DRAM-Modul vom Band kommt und dass bei 1-GB-DDR3-Modulen mit allen vorhandenen Reparaturtechnologien die Gesamtausbeute von ~0 % auf etwa 70 % steigt. .

Das ist jedoch nur ein Datenpunkt. Was ich mich frage, ist das etwas, das im Feld beworben wird? Gibt es eine anständige Quelle, um die Verbesserung der Ausbeute im Vergleich zum SoA zu diskutieren? Ich habe Quellen wie diese[2], die eine anständige Arbeit leisten, um den Ertrag aus Grundprinzipien zu diskutieren, aber das ist 1991, und ich stelle mir vor / hoffe, dass die Dinge jetzt besser sind.

Wird darüber hinaus auch heute noch mit redundanten Zeilen/Spalten gearbeitet? Wie viel zusätzlicher Platinenplatz benötigt diese Redundanztechnologie?

Ich habe mir auch andere parallele Systeme wie TFT-Displays angesehen. Ein Kollege erwähnte, dass Samsung es irgendwann billiger fand, kaputte Displays herzustellen und sie dann zu reparieren, anstatt ihren Prozess auf eine akzeptable Ausbeute zu verbessern. Dazu habe ich aber noch keine vernünftige Quelle gefunden.

Ref

[1]: Gutmann, Ronald J, et al. 3D-Ics-Prozesstechnologie auf Waferebene. New York: Springer, 2008. [2]: Horiguchi, Masahi, et al. "Eine flexible Redundanztechnik für hochdichte DRAMs." Solid-State Circuits, IEEE Journal of 26.1 (1991): 12-17.

Zeilen- und Spaltenredundanz wird auch heute noch verwendet. Im Itanium 2 L3-Cache wurde Redundanz auf Blockebene verwendet (siehe Stefan Rusu et al., "Itanium 2 Processor 6M: Higher Frequency and Larger L3 Cache", 2004). Eine weitere Überlegung für die Ausbeute ist das Binning sowohl für Geschwindigkeit/Leistung/Betriebstemperatur als auch „Kapazität“ (z. B. Chip-Multiprozessoren können mit einer Reihe von Kernzahlen verkauft werden; sogar DRAM mit hoher Defektzahl könnte theoretisch als halbe Kapazität verkauft werden Teil).
faszinierend, danke. Wenn ich mir das Cache-Design anschaue, sehe ich 140 Subarrays mit jeweils 2 Subbänken, die wiederum acht 96x256-Array-Blöcke haben. Jeder Block hat 32 Bit. Das bedeutet, dass insgesamt 140 * 2 * 8 * 96 * 256 * 32 = 1,762 x 10 ^ 9 Bits erforderlich sind, um 48 x 10 ^ 6 Bits Speicher zu erzeugen. Ist das richtig?
Nein, die 32 Bit sind Teil eines 96x256-Blocks (12 Cache-Wege * 8 * 4 * 32 Bit pro Cache-Zeile). Es sollte auch beachtet werden, dass einige der Bits für ECC verwendet werden, sodass der Cache 6 MB an Daten hatte . (Die Verwendung von ECC führt beim Binning zu einem weiteren Rückgang der Ausbeute. Die ECC-Anforderungen variieren je nach Anwendung, und überschüssiges ECC kann verwendet werden, um eine niedrigere Spannung (oder Aktualisierungsrate für DRAM) ohne Datenverlust für einen Teil mit niedrigerer Leistung zu unterstützen und eine Korrektur für die Herstellung bereitzustellen Dies ist eher eine theoretische Überlegung, da Marketingfaktoren im Allgemeinen eine solche Flexibilität nicht zulassen.)
Danke noch einmal. Dies dient eher dazu, eine Schätzung der Gesamtkosten des Herstellungsprozesses zu erhalten. Das heißt, wie viel zusätzlicher Platz auf der Platine (repräsentativ für die aufgewendeten physischen Ressourcen) ist erforderlich, um diese 6 MiB zu erreichen? Ich werde versuchen, dies anhand der Fläche abzuschätzen, die der L3-Cache einnimmt, und mich bei Ihnen melden.
Also habe ich anhand dieser Tabelle[1] geschätzt, dass die Chipfläche ~ 400 mm ^ 2 beträgt, und von Rusu et. Al. Ich gehe davon aus, dass die Bitzellenfläche 2,45 um ^ 2 betrug. [1] gibt auch zu, dass 50 % der Platinenfläche L3-Cache sind und dass jedes Subarray direkt mit dem Bus kommuniziert. Das bedeutet, dass ~81x10^6 Bits möglich sind, aber nur 48x10^6 verwendet werden. (Ich bin mir nicht sicher, was das ECC ist, aber) Klingt ein Faktor von ~ 2 vernünftig? [1]: decus.de/slides/sy2004/22_04/3c08.pdf
Die Verwendung des Bitzellenbereichs berücksichtigt nicht die Zeilendecodierung und anderen Overhead. Der Bereichs-Overhead der Redundanz könnte einfach abgeschätzt werden, indem erkannt wird, dass 4 der 140 Subarrays Spares sind (etwas weniger als 3 % Overhead), wobei zusätzlicher Routing-Overhead ignoriert wird. Es sollte auch beachtet werden, dass L3-Cache-Versionen mit 3 MiB verkauft wurden, sodass die Ausbeute für 6-MiB-Versionen niedriger sein durfte. (Ich würde vermuten , dass die Verwendung von Transistoren mit größerer als der minimalen Größe für die SRAM-Zellen für eine geringere Leckage auch die effektive Defektrate leicht verringern könnte.) 136 verwendete Subarrays bedeuten 8 für ECC (6+% Overhead).
ok danke nochmal für die klärung. Meine Analysearbeit scheint darauf hinzudeuten, dass selbst 4 Redundanzen eine sehr große Ertragssteigerung bieten können, insbesondere in einem System, das nur aus etwa hundert Teilen besteht (wenn wir jedes Modul als diskretes Teil mit einer Ausfallwahrscheinlichkeit betrachten). , das ist also immer noch hilfreich. Ich denke, ohne solide Zahlen zu den Erträgen für 6MiB, 3MiB usw. Cache-Versionen ist es immer noch strittig.
Im Allgemeinen beziehen wir uns eher auf „Die“ als auf „Platine“, wenn wir eher von Halbleitern als von PCBs sprechen. 3% erscheinen vernünftig, Faktor zwei absolut nicht.
@Mephistopheles Ja, Redundanztechniken werden immer noch angewendet, siehe mein Umfragepapier, in dem mehrere Papiere dazu zusammen mit ihrem Verbesserungsbereich überprüft werden.

Antworten (1)

Kein Hersteller wird jemals Ertragsdaten veröffentlichen, es sei denn, er muss aus irgendeinem Grund. Es gilt als Geschäftsgeheimnis. Um Ihre Frage direkt zu beantworten, nein, es wird in der Branche nicht beworben.

Es gibt jedoch viele Ingenieure, deren Aufgabe es ist, den Liniendurchsatz und die End-of-Line-Ausbeute zu verbessern. Dies besteht häufig darin, Techniken wie Binning und Blockredundanz zu verwenden, um Verluste außerhalb der Leitung ausreichend zu machen, um verkaufsfähig zu sein. Blockredundanz wird heute sicherlich verwendet. Es ist ziemlich einfach zu analysieren:

(fehlgeschlagene Blöcke pro Teil)/(Blöcke pro Teil)*(fehlgeschlagene Blöcke pro Teil)/(Blöcke pro Teil)

Dadurch erhalten Sie die Wahrscheinlichkeit, dass beide parallelen Blöcke ausfallen. Ich bezweifle, dass Sie am Ende eine Rendite von nur 70 % erzielen würden, da normalerweise 90 % die akzeptable Mindestrendite ist.

Obwohl ich Ihre Antwort zu schätzen weiß, hat @Paul-a-clayton diese Informationen bereitgestellt und konnte auch echte Veröffentlichungen (insbesondere das Itanium 2) in den Kommentaren zitieren. Während Blockredundanz in diesen Papieren diskutiert wird, heißt es außerdem: "Diese Verwendung von Subarrays optimiert die Nutzung der Chipfläche, ohne den Grundriss des Kerns einzuschränken", ohne die Fehlertoleranz zu erwähnen. Wenn Sie Artikel haben, die speziell Blockredundanz als Werkzeug zur Fehlerbehandlung vorschlagen, würden wir uns sehr darüber freuen.