 Willkommen zu dem Talk über wie man hochverlässige Elektronikdesign von Scheimeln und davon in der Übersetzung von Pink Displatcher und Florian live vom 36 C3. Guten Morgen Kongress. Vielleicht hat irgendjemand von euch in irgendwann mal in seinem Leben gesehen, dass sein Computer komische Dinge gemacht hat oder Dinge, die ihr nicht erwartet hat, die ihr nicht hätte tun sollte. Typischerweise ist das das Resultat von einem Software-Bug irgendwo in dem Software-Stack auf dem dein PC läuft. Aber hast du jemals darüber überdacht, was wie groß die Wahrscheinlichkeit ist, dass das komische Verhalten durch ein Bitflip irgendwo in dem Speicher eines Computers ist? Was ihr hier jetzt ausseht, ist ein Physikexperiment, eine Nebelkammer, das ein Experiment, das sehr einfach zu visualisieren ist und das macht sehr klar, wie groß der konstante Strom von Hintergrundstrahlung ist und dem wir ständig ausgesetzt ist. Was hier passiert? Das hochenergetische Teilchen, zum Beispiel aus dem Weltraum, die gehen durch gasförmigen Alkohol und die kolonisieren mit den Alkoholmodulen und produzieren dabei eine Kondensationsspur. Wenn man sich jetzt ein Computer vorstellt, als ein großer Anfall von Speicherzellen, also zum Beispiel beim Rechner sind das vier Gigabyte oder auch mehr, und das sind sehr, sehr klein und man kann überlegen, dass die Energie, die nötig ist, um ein Bit in jeder dieser Zelle zu scheiden, sehr, sehr klein ist. Und vor ein paar Jahren gab es eine Studie, das in einer Studie, das in einem Computer mit etwa vier Gigabyte RAM, ein Bitflip durch eine kosmische Hintergrundstrahlung, etwa alle 32 Stunden passiert, also etwas seltener als einmal am Tag. 2008 ist tatsächlich ein Quantasflug fast abgestürzt und die Ursache dafür ist tatsächlich darauf zurückgeführt wurde, dass irgendwo in dem Steuerechner ein Bit umgeklippt ist. 2003 ist in Belgium eine kleine lokale, lokale Wahl, ein Fehler aufgetreten, dass ein Kandidat plötzlich 4096 zusätzliche Stimmen gekriegt hat in einem einzigen Event und das ist wahrscheinlich auch wieder ein Bitflip durch einen kosmischen Strahlen und das ist nur erkannt worden, weil die Zahl der Stimmen für diesen einen Kandidaten als unwahrscheinlich viel zu groß aufgefallen ist, sonst wurde es möglicherweise gar nicht entdeckt worden. Ja, und Jim und ich, wir arbeiten bald auf diesem Thema, wie man strahlungstolerante Elektronik baut für die Experimente im Zahn am LHC. Ihr könnt uns in der Lötter Labor Assembly treffen, wenn ihr euch mehr dafür interessiert, worüber wir heute reden und wir geben auch ein kleines workshop morgen in einem der Seminarräume über Strahlungserkennung. Wenn ihr euch mehr dafür interessiert, könnt ihr euch das angucken. So, ja, um einen Hintergrund für welche Umgebung, wo wir arbeiten, also wenn ihr einen normalen i7 zum Beispiel nehmt und sie in der Umgebung betreibt, wo wir unsere Geräte betreiben, dann würde er vermutlich in ungefähr 1 Minute sterben oder 2, einfach weil die Strahlung da so hoch ist. Die Motivation heute hier ist euch einen Hintergrund darüber geben, was gibt es alles für Dinge zu berücksichtigen, welche Herausforderung gibt es, wenn man strahlungsgehärtete Elektronik gibt, wie kann man die verschiedenen Strahlungseffekte klassifizieren und erklären und was kann man machen, um sie ihnen vorzubeugen und wie kann man validieren, dass der Schutz der Schaltkreise, die man entwickelt, tatsächlich funktioniert. Und ja, wo wir arbeiten, geht es halt darum zu gucken, dass diese Experimente beim Zahn tatsächlich funktionieren. Ja, was meinen wir damit, wenn wir Strahlungsumgebungen sagen? Wenn ihr über Strahlung denkt, dann ist etwas worden hier als erstes, denkt es vielleicht der Weltraum. Der Weltraum ist einfach gefüllt mit sehr hohen hochenergetischen Partikeln, Elektronen, Protonen und die, wenn sie in der Nähe von Planeten wie unserer Erde vorbeifügen, dann haben die so häufig ein Magnetfeld und diese hochenergetischen Felder werden tatsächlich von diesen Magnetfeldern abgelennt. Sie können den Planet wie zum Beispiel unseren Planeten von dieser hochenergetischen Strahlung schützen, aber dadurch kommen halt häufig um die Planeten herum zu diesen Strahlungsgürten, diesen Vanillengürteln, wie nach dem Entdecker dieses Effekts benannt ist. Und wenn Satelliten um die Erde umkreisen, dann gehen sie häufig in diese Bereiche von sehr hoher Strahlung und das muss man natürlich berücksichtigen, wenn man die Elektronik für so einen Satelliten entwickelt. Und wenn die Erde eigentlich genug Strahlung gibt, dann kann man vielleicht an die berühmte Juno-Jupiter-Mission denken, die ist vom Jahr berühmt geworden und um Jupiter um den Jupiter erwarteten die Entwickler der Sonde so viel Strahlung, dass sie einfach die gesamte Elektronik in einen dicken Titanenkontakt Würfel gepackt haben. Ein anderes, wo man heute, hier sieht man eine Hand und Röntgenstrahlung ist natürlich auch eine Art Strahlung und die Dosis, die jeder Patient abbekommt während der Diagnose oder während der Behandlung von einer Krankheit, das ist noch nicht die ganze Geschichte, wenn es um medizinische Anwendung geht. Das heißt, dies ist ein medizinischer Teilchenbeschleuniger, der für Krebsbehandlungen benutzt wird und in dieser Art Beschleunigern werden Protonen oder Eisenatome beschleunigt und die zerstören dann sehr selektiv Krebszellen im Körper und das ist ziemlich nah an dem, an der Umgebung der wir arbeiten und Schimmen und ich arbeiten an der Elektron für den CMS-Detektor am LHC und wir haben hier diesen extra Strahlungs resistente Computer gebaut und Elektronik gebaut, die sehr, sehr starke Dosis von Strahlungen abkönnen und immer noch funktionieren und wir haben extra Elektronik hierfür designed und wenn wir das nicht gemacht hätten, würde es einfach überhaupt nicht funktionieren, um mal zu demonstrieren, wie man sich das vorstellen kann, die Größenordnung von dieser Umgebung, dies ist ein einzelner Plot von einer Kollision in einem Ergebnis, in einem Atlas-Experiment und jeder dieser kleinen Spuren, die man diesen Diagramm sieht, ist ein, ein, oder mehrere Sekundärpartikel, die erzeugt wurden in dieser Kollision von zwei Protonenbündeln in diesem Experiment und jeder von denen natürlich fliegt hier rum in dieser Elektronik, in der Detektorelektronik und macht diese Spuren sichtbar und zerfallen weiter in weitere Sekundärpartikeln und die treffen unsere Elektronik und wenn das noch nicht schlimm genug wäre, als wenn das noch nicht schlimm genug wäre, ist das Digital-Elektronik und diese Kollisionen sind 40 Millionen mal pro Sekunde. Natürlich haben wir dann noch viel, viel mehr Ereignisse und Probleme, die entstehen können in unseren Schaltkreisen und wir wollen euch jetzt mal alle Sachen vorstellen, die passieren können, die verschiedenen Strahlungs- effekte, aber erst mal gehen wir noch einen Schritt zurück und was meinen wir, wenn wir Digital-Elektronik sagen oder Digital-Elektronik und darum soll es heute vor allem gehen und aus euren Universitätsvorlesungen wisst ihr wahrscheinlich in der ersten, in der ersten Vorlesung digital Logik, das ist Kombinationslogik und das ist eine einfache, kombiniert einfach Zweingangssignale und macht einen Ausgang, wie man diesen und oder nicht und oder oder oder exklusiv oder und wenn man, ja wir benutzen diese überall und man will natürlich auch einen Zustand speichern in einem komplexeren Schaltkreis, vielleicht die Register in der CPU und speichert intern Informationen, dafür benutzen wir andere Logik, das ist Sequenzial-Logik, die ist getaktet mit einer Taktfrequenz und das ändert sich der, die der Ausgang immer nur, wenn das Takt-Signal sich ändert und jetzt gucken wir nach, gucken wir mal, wie diese verschiedenen Funktionalitäten implementiert sind. Heute benutzen wir CMOS-Technologie und im Prinzip kann man das alles so repräsentieren, als diese digitalen GATTA mit PMOS und CMOS und MOSFET-Transistoren in CMOS-Technologie und wenn wir versuchen, ein Modell zu bauen für digitale oder noch oder komplexe digitale Schaltkreise, dann benutzen wir oft einen endlichen Automaten, einen Zustandsautomaten als Modell und dieser Modell benutzt kombinatorische und sequenzielle Teile und der Ausgang hängt ab von dem internen Status im Register und auch vom Input für die Kombinationslogik und auch der Zustand ändert sich auch durch die Eingänge und durch den internen Status, den internen Zustand und das ist ein vereinfachtes Modell, wie man verschiedene Effekte modellieren kann und jetzt gucken wir einfach mal, was Strahlung Transistor an tun kann und erst mal gucken wir, was überhaupt ein Transistor ist und wie der aussieht und wie ihr vielleicht wisst ist in CMOS, Transistoren in CMOS-Technologie sind aus auf Wafers aus sehr reinem Silizium gebaut, sehr regelmäßig organisierte Siliziumatome und wenn man daraus einen Transistor bauen will, dann machen wir einen Doping um hier Diffusionsbereiche, die Source und Drain von dem Transistor dann werden und da ist dann ein insulierendes Oxid, eine insulierende Oxid Schicht und darauf kommt dann Polisilikon, die dann das Gate bildet und dann sieht der Schaltkreis vielleicht ungefähr so aus und um das noch mal ins Feilnis zu setzen, die Größenordnung sind sehr, sehr klein hier, wir haben hier wenige 10 Nanometer für einige der Abmessungen hier, die wir gezeigt haben und die Technologie wird immer noch kleiner und kleiner und dann merkt man natürlich und kann sehen, wie klein die Information, wie klein die Energie ist, die wir brauchen, um die Information zu speichern und dann sind sie natürlich noch empfindlicher für Strahlung und jetzt gucken wir mal, was verschiedene Strahlungseffektarten existieren und wir unterteilen die in zwei Hauptklassen. Die erste wären die kumulativen Effekte, das sind Effekte, wie der Name schon sagt, die sich addieren im Laufe der Zeit, das heißt wenn man einen Schaltkreis da reintut in diese Strahlung, dann addieren sich die Effekte durch die Strahlungsdosis und dann wird die Performance schlechter und auf anderen Seite haben wir die Single Event Effekts, die immer in einem Moment in der Zeit passieren und ohne das Vorhersagen könnte, ohne dass man Vorhersagen kann, ändert sich die Funktionalität von dem Schaltkreis und erst betrachten wir die kumulativen Effekte und nachher wird Schirmus dann die Single Event Effekte betrachten. Bei den kumulativen Effekten haben wir zwei verschiedene Unterklassen, die ersten sind über Junisierung oder die Energiedosis und die andere ist die Displacement Effekt, das sind Schäden und das ist genau das, was es sagt, nämlich wenn ein Atom im Silizium Gitter verschoben wird und aus seinem Gitter verschoben wird und das ändert die Struktur von dem Silizium Halbleiter und aber diese haben zum Glück bei CMOS keinen großen Effekt bei den Sachen, die wir uns heute angucken, deswegen lassen wir die aus Acht und wir gucken eher über die Junisierung Effekte und die Junisierung ist, wenn Elektronen entfernt von einem Atom werden oder hinzugefügt werden, dann wird daraus ein Ion und diese Effekte sind sehr kritisch für die Schaltkreise, die wir bauen und was passiert ist, die ändern das Verhalten von dem Transistor. Ohne genau in die Halbleiter Details zu gehen, wollte ich noch zeigen, dass diese typischen Effekte, die uns angehen, sind in diesem ganz einfachen Schaltkreis, das ist nur ein Inverter, der hat zwei Transistoren und hier und da und was der Schaltkreis normalerweise macht ist, der nimmt einen Input und invertiert das und gibt am Ausgang das invertierte Signal ab und wenn der Transistor bestrahlt wird mit einer zunehmenden Dosis, dann werden die Flanken der Signale langsamer und der Transistor braucht einfach länger, um sich ein und aus zu schalten und was das macht ist, das limitiert die maximale Frequenz mit der der arbeiten kann und das ist nichts, was man will, sondern man will eine bestimmte Frequenz haben mit der das System arbeitet und wenn die maximale Frequenz immer niedriger wird, dann wird der irgendwann versagen, wenn die Frequenz zu hoch wird und jetzt gucken wir mal, wie wir das beheben können. Das erste ist natürlich, als ich über die Juno gesprochen habe, ist die Abschirmung, wenn man einfach die Elektronik in eine Kiste tun kann und die Strahlung abschärmen kann, dann halten die dann natürlich länger und nehmen weniger Schaden von der Strahlung. Dieser Ansatz wird im Weltraum oft benutzt in Satelliten, aber ist nicht unbedingt nützlich, wenn man wirklich die Strahlung messen will, wie wir das zum Beispiel im Teilchenbeschleuniger machen will, für die wir die Stadtkreise bauen. Erst mal wollen wir die Strahlung messen, das heißt wir können nicht die Dektoren abschirmen und wir wollen natürlich auch die Spuren von diesen sekundär Produkten nicht behindern mit unserer Abschirmung, das heißt es im Teilchenbeschleuniger nicht besonders nützlich in dieser Umgebung, also müssen wir was anderes machen. Wir müssen unsere Schaltkreise selbst designen und wir haben deswegen einige Freiheiten im Design auf der Ebene des Transistors selbst. Wir können die Größe des Transistors ändern, wir können sie größer machen und um größere Strahlungsdosen zu verkraften. Wir haben spezielle Techniken im Layout, wir können das einfach stabiler machen. Und die dritte Maßnahme, vielleicht die wichtigste für uns, nennen wir Modellieren. Wir können tatsächlich ganzen Effekte, die die Strahlung auf unseren Transistoren haben will, charakterisieren und wenn wir das wissen will und dann können wir halt berechnen, wenn wir wissen, wir packen es für ein Jahr in das Strahlungs Umgebung, packen dann über Design, ich halt meine Schaltung und dann weiß ich einfach, es kann nach einem Jahr, kann es immer noch die Sachen, am Ende seiner erwarteten Lebensdauer, kann es immer noch das tun, was es tun muss. Es kann dann vielleicht ein bisschen weniger tun, als man theoretisch möglich, aber dafür die ganze Zeit. Und jetzt geht Schimmelnder weiter und beschreibt die Radiation Effekte. Wie gesagt, es gibt die kumulativen Effekte und es gibt diese Einzel-Event-Effekte und die können jederzeit passieren und dann kann es sofort schalten, sobald ein Effekt auftritt und dann geben wir weiter unterteilen, in harte Fehler, die sind permanent, die können den Schaltkreis zerstören. Diese sind kritisch für Leistungsgeräte, wo du hohe Leistungstichten hat, aber nicht so wichtig für digitale Geräte. Die andere Klasse sind weiche Fehler. Hier unterscheiden wir Transienten und statische, Transienten, die gehen durch die Schaltung, wenn ein Event hilft und es sind besonders Tricket für digitale Synchrone-Schaltungen. Die andere Klasse sind statische Eventen, die einzelne Event, zum Beispiel, bedeutet einfach, dass ein, die deine Speicherstelle einfach umgekippt wird und wenn das System nicht so designt ist, dass es mit einer falschen Speicherstelle umgehen kann, führt das zu Fehler. Im folgenden guck mal mit unserem Wesentlichen um diese weichen Fehler. Was ist die Quelle von dieser Art von Fehler? Wie Stefan gesagt hat, ein stüffelter Transistor besteht aus Diffusionszeit, Gate und einem Kanal und hier sieht man eine Diffusionsstelle und wenn ein Teilchen da durchgeht, generiert es Paare von freien Elektronen und Löchern und erzeugt ein elektrisches Feld, die werden dann durch die Drift eingefangen, dass er resultiert in einem kurzen Stromstoß, der sehr kurz ist und der Rest der Ladung wird dann durch einen langsameren Prozess ausgeglichen. Was wir jetzt uns überlegen, was in einer typischen Speicherstelle in so einem Fall passieren. Das hier ist die einfachste Speicherstelle, die besteht aus zwei miteinander verbundenen Inventieren. Lass uns überlegen, wer in einem Low zuschaut und dann trifft ein Teilchen diesen einen Transistor. Das bringt dann plötzlich den Drain dieses Prozessors auf niedriges Potential, das macht dann den Eingang des zweiten Inverters und das führt den Inverter dazu, den Zustand zu ändern. Das heißt, man hat im Prinzip steht halt, dass nicht mehr der ursprüngliche Datum da drin ist, sondern halt nur der Fehler und man verliert die Daten, die da vorher ist. Jetzt kann man überlegen, wie viel Energie braucht man, um so einen Fehler zu auszulösen. Das kann man entweder aus Messungen kriegen oder aus Simulationen. Wir können machen, hier zeige ich euch, oben haben wir Strom als Funktion der Zeit, unten haben wir die Ausbrungsspannung in der Mitte, die Spannung als Funktion der Zeit und unten die Blittförde. Wenn man sehr wenig Strom hat, dann ändert sich unten der Output natürlich nicht und wenn man einen bestimmten Moment wird der Ausgang sich verändern und in den anderen Zustand umschalten. Und wenn man hier jetzt ausmisst, was ist tatsächlich die Fläche unter der Stromkurve, dann kann man gucken, was ist die kritische Ladung, die man braucht, um die Speicherzelle umkippen zu lassen. Und wenn man weitergeht und mehr Strom hat, sieht man nicht mehr, viele Unterschiede, es wird nur noch ein bisschen schneller. Und man sieht auch hier, dass dann die Wahrscheinlichkeit auf einzelt. Wenn man so viel Spannung Strom hat, dann wird der Fehler sicher auftreten. Also jetzt haben wir nur herausgefunden, was ist die Wahrscheinlichkeit für einen Bitflip von 0 auf 1 in Ausgang B. Und natürlich kann man auch die anderen gucken, wenn man in die anderen Zellen einen Strom indiziert. Und wenn man dann am Ende die Überlagerung dieser vier Effekte für die verschiedenen Transistoren überlagert und sie mit der Fläche der einzelnen Transistoren multipliert, dann sieht man halt die Wahrscheinlichkeit, dass es umkippt. Und wenn man dann die Strahlungseigenschaft da umgeben und gibt, dann kann man berechnen, was ist die erwartete Rate von Fehlern in dem Unwandhent. Also was ist die, das ist jetzt überlegen jetzt, aber wir wissen, wie häufig die Fehler auftreten können, wie kann man sie vorbeugen. Nun, dann kann man einmal auf die Technologie leffen. Die moderne Technologien geben einem viel kleinere Geräte und dann die Geräte werden kleiner, da wird auch die Kapazitäten kleiner. Das ist natürlich für unsere Zwecke sehr schlecht, weil dadurch die kritische Strom, der benötigt ist, umzukippen, werden viel kleiner und die Wahrscheinlichkeit wird großen, aber aber auch die Fläche der Transistoren wird dadurch kleiner, dadurch wird die Wahrscheinlichkeit wie getroffen werden kleiner und damit die genauen Effekte hängen halt von den Details der Umgebung und des Systems ab. Die andere Gegenmaßnahmen setzen auf dem Zellenniveau ein. Man kann die kritische Ladung erhöhen, indem man zum Beispiel die Kapazität der einzelnen Knoten erhöht, indem man etwa größere Transistoren benutzt, aber das ist natürlich nicht so schön, weil das ganze Gerät größer wird oder man kann zusätzliche Kapazitäten zufügen durch etwa metallisch Layer, aber das erhöht natürlich die Kapazität des Schaltkreises und dann senkt dann die Geschwindigkeit. Das andere Möglichkeit ist die Information auf mehreren Knoten im Schaltung zu sparen. Hier zum Beispiel, das wird die Information in vier Knoten gespeicht. Die Architektur ist sehr ähnlich wie die grundlegende SRAM Zelle, aber man muss aber bei solchen Fällen vorsichtig sein. Wenn man diesen Bild analysiert, stellt man fest, die Information ist in vier Quellen, die zählen gespeichert, aber wenn man es analysiert, stellt man fest, dass es wenig Vorteile gibt, weil es die gleichen Fehler anfällig ist. Das hier ist besser. Man kann eine gegenseitig verschaltete Zelle machen. Diese hat auch zwei stabile Konfigurationen, aber in diesem Fall kann Daten von der Niedrige Niveau nur nach links weitergehen, die Information und der Hohlzustand kann nur nach rechts übergehen. Das heißt, wenn man ein Fehler injiziert, kann er nicht mehr als für eine Zelle weitergehen. Es hat natürlich auch einige Nachteile. Es braucht mehr Platz als eine einfache SRAM Zelle und schreibt aufwendiger. Die Frage ist, wie effektiv ist diese Zelle? Hier schreibe ich einen Platt über wie hoch die Wahrscheinlichkeit einen Fehler haben als Funktion der eingeschalteten Energie. Oben sieht er die Pinkellinie. Das ist die Wahrscheinlichkeit für eine normale nicht geschützte Schelle. Das Grüne ist, dass die Wahrscheinlichkeit für diese Dice-Zelle, die etwa eine oder eine großen Ordnung kleiner ist. Aber es gibt halt auch andere Fälle. Man hat manchmal hier, dass häufig zwei Zellen oder kleinen Zellen sehr eng beieinander ist und dass zwei Zellen durch ein einzelnes Teilchen ein Fehler injiziert wird, weil bei einzelnen Knoten von diesem Schaltung verschieden empfindlich waren. Darum haben wir ein anderes System gebaut, wo wir die empfindlichen Zellen weiter voneinander entfernt haben und man konnte sehen, dass diese Schwelten sehr viel besser geworden sind. Man kann aber auch Gegenmaßnahmen auf dem Blockniveau machen. Man kann encodieren zum Beispiel Fehlerkorrektur durch einen Hemmengode. Das heißt für eine bestimmte Anzahl von Bits, für unsere vier Bits, fügen wir drei Paritäts-Bits hinzu und wenn man dann die Paritäts-Bits berechnet, kann man gucken, ob der interne Zustand korrekt ist. Und wenn irgendeines der Paritäts-Bits nicht null ist, dann zeigen sie einem sofort, wo der Fehler aufgetreten ist und man kann die Information benutzen, um den Fehler zu korrigieren. In diesem Fall ist natürlich die Effizienz nicht sehr hoch, weil wir brauchen drei zusätzliche Bits, um vier Bits zu schützen, aber wenn die Länge des Zustands nicht verrührt wird, wird auch diese Kodierung effektiver werden. Und der andere Möglichkeit ist, man kann einen Schritt des Designs zu verändern, kann man einfach das Design verdreifachen oder eine beliebige andere. Und dann stimmt man einfach ab, die Schaltung, einfach ab, welche der drei Dinger rechts hat. Das nennt man so dreifach Modulare-Redundanz. Normalerweise geben halt diese drei Ausgänge den gleichen Versionen, aber in normalen. Und wenn im normalen Betrieb ist halt der Ausgang von dem Voter, dann halt das gleiche. Aber wenn halt ein Problem ist, zum Beispiel hier in diesem Teil B, dann wird dieses Problem tatsächlich durch diese Abstimmungstelle diesen Voter einfach maskiert und man sieht es auf der Ausseite nicht. Aber man sollte sein, dass man das nicht als Design-Template benutzt. Lass uns überlegen, was passiert, wenn man das hier als eine Statement, als ein Zustandsmaschinen modelliert. Also man hat hier diese Speicherstelle als Zustandsmaschinen und ein Voter am Ausgang. Wenn man hier zum Beispiel den in der ersten Stelle ein Fehler ist, dann ist der Output von A kaputt. Aber natürlich der Output am Ende des Voters der S ist, ist doch richtig. Aber was passiert, wenn eine Weile später in der Speicher B oder C Fehler aufgeht. Aber dann ist der Zustand insgesamt kaputt und man kann nicht mehr feststellen, was eigentlich der wahre Wert ist. Also was kann man machen, also um sicher zu sein, benutzt nicht diese Technik direkt. Was kann man machen, um dieses Problem umzugehen? Nun, man kann den, die die Ausgabe des, dieses Abstimmungsbausteins als Eingang in die Schaltung selbst. Das ist jetzt das Problem, wenn man einen Fehler in dem einer dieser Zelle hat, benutzen wir immer die Ausgabe dieser Abstimmung, die sicherstellt, dass im nächsten Zyklus der Wert, der falsche Wert wieder korrigiert hat. Und wenn dann später eine andere Zelle einen Fehler hat, dann ist der alte Fehler schon gesetzt. Bis jetzt berücksichtigen wir nur Fehler in unseren Speicherzellen. Aber was passiert, wenn wir einen Fehler in dem Voter haben, dann sehen wir, es gibt kein, wenn man sehr Unglück hat, wenn Fehler genau wegen einer, einer Taktzyklus ist, dann kann das sein, dass man alle Register gleichzeitig überschreiben mit dem. Nun, wie kann man mit diesem Macht nun, wie kann man das ändern? Nun, man kann gucken, die, die Takte ein wenig gegeneinander zu verschieben, die kürzer ist als die gesamte Taktzeit. Und jetzt sind die Register der Ausgang des Voters, wird zu verschiedenen Zeiten gesammelt und wenn der Voter ein Fehler macht, dann wird es meistens nur ein betreffen und man kann natürlich ein viel, immer noch Probleme geben, weil man unglücklich ist, genau im falschen Moment Fehler auftreten, dann kann man immer wieder den gesamten Zustand kaputten ist. Also was man sehen, wir führen mehr und mehr, was hinzu, was kann man bewegen, was passiert, wenn man alles tripliziert, wir verdreifachen die Register, wir verdreifachen die Voter und jetzt sehen wir, wenn ein Fehler kein halt nur ein Fehler, wir sehen ein Fehler in einem Speichestelle, kann man einen Ausgang beeinflussen und wird sofort wieder beim nächsten Zeichnernsuch ist und das ist relativ verböt, aber unglücklicherweise ist nichts für, nichts frei. Hier habe ich verschiedene Schämen miteinander verglichen und man sieht, je mehr zuverlässig man haben will, desto mehr kosten muss man haben, mehr Geräte oder geringere Operationsgeschwindigkeit. Also welche man benutzt, hängt dann davon ab, was man machen will. Halt für die empfindlichsten Sache möchte man diese komplette Verdreifachung müssen machen und für andere Sachen anderes. Ja und wenn es nicht missionskritisch ist und wenn man einige Ausfallzeit tolerieren kann, dann kann man auch einfach zwischendurch immer mal das System überprüfen und neu aufsetzen, vielleicht mit Parathezbits und Kandidaten kopieren an einen sicheren Ort oder man hat einen Watchdog und der rausfindet, wenn irgendwas schief gegangen ist und das System wieder initialisiert und jetzt haben wir über die Grundlagen gesprochen, womit wir uns rumschlagen müssen und jetzt geht es um den Workflow im Design von unseren strahlungsresistenten Schaltkreisen. Wir haben die funktionale Spezifikation, wir versuchen rauszufinden, in welcher Strahlungsumgebung das arbeitet, also haben wir auch eine Strahlungsspezifikation und dann gucken wir, was die kumulativen und die Single Event Effekte sind und wenn es nicht extrem selten passiert, dann müssen wir Sachen vielleicht außerhalb von der Strahlungszone haben und dann können wir vielleicht mit dem kommerziell verfügbaren Equipment Number Crunching machen und das ist dann auch außerhalb der Strahlungszone, aber wir haben dann die Funktionalimplementation und das wird typischerweise mit einer Hardware Description Language gemacht wird, was man aus FPG vielleicht kennt und dann wollen wir hier verstehen, wie wir unsere Funktionalen Ziele erreichen können, sodass die Schaltung funktioniert, wie wir das erwarten, dann wählen wir aus, welche Teile wir schützen wollen vor den Strahlungseffekten, zum Beispiel können wir Duplicierungen benutzen oder andere Methoden und heute benutzen wir meist die Verdreifachung als das einfachste und straightforward Methode und dann wählen wir aus, wie wir die triplicieren, die Logik und wir machen einfach Copy und Paste dreifach und haben Postfix, Softfix, A, B oder C und das hat einige Nachteile, das verbraucht viel Zeit und ihr habt vielleicht gemerkt, dass ich hier schon Fehler hab und das passiert ganz leicht dabei, also machen wir das nicht, sondern wir haben unser eigenes Tool, das heißt TMRG und das automatisiert diesen Prozess der Triplicierung der Verdreifachung und eliminiert die häufigsten Fehler, die ich eben beschrieben hab und wenn wir diesen Code tripliciert haben und bevor wir die Simulation und dann machen wir alle Simulationen nochmal, um zu sehen, ob das wirklich alles so funktioniert, wie wir das haben wollen und dann gehen wir in den Logik, Prozess der Logik-Synthese und haben dann diese High-Level Hardware Description Language und bauen daraus dann das Design auf der Ebene der GATTA und die können auch sequenziell sein oder kombinatorisch und moderne Tools versuchen natürlich die Logik zu optimieren, soweit wie möglich und unsere Logik ist einfach sehr redundant und das ist sehr einfach zu optimieren und dann könntet ihr einfach die Sachen entfernen in der Optimierung und da müssen wir aufpassen, dass die Logik nicht die Redundanz optimiert und da müssen wir sehen, dass unser Design Intent, unser was wir damit wollen ist, einfach verstanden von dem Tool und dann haben wir die Ausgabe und dann wird die Platzierung und das Routing gemacht und diese Repräsentation wird in ein Layout überführt, was dann wirklich unser digitaler Chip wird, alle Zellen und alle Verbindungen werden geroutet und platziert und es gibt eine andere Gefahr hier noch, die ich kurz erwähnt habe in moderner Technologie, sind diese Zellen so winzig, dass sie einfach von einem einzelnen Partikel beeinflusst werden können und auch mehrere zusammen von einem und das heißt, wir müssen die Informationen von einem Zustand auseinander, so dass ein einzelner Partikel nicht zwei Zellen von einem von demselben Register beeinflussen kann und im letzten Schritt müssen wir natürlich alles verifizieren, dass das, was wir gemacht haben, wirklich richtig ist und auf diesem Level versuchen wir auch einige Single Event Effekte in unserer Simulation zu machen und wir flippen einfach Bits und Indizierende Ladungen und gucken, ob das funktioniert und das funktioniert sehr gut und ist sehr schön, aber das Problem damit ist, dass wir diese Simulationen sehr spät im Design-Zeitel erst machen können und das ist nicht optimal und wenn wir da ein Problem finden in unserer Simulation, dann ist es mehrere Größenordnungen schwieriger als und das ist dann nicht mehr so einfach rauszufinden, wo das was genau passiert und es ist besser, dass im Design schon zu machen und es ist nicht so trivial, diese Hardware-Beschreibungssprache zu mapen auf das, was dann am Ende in der kombinatorischen oder sequenzialen Logik wird und um das zu machen, haben wir ein anderes Tool benutzt, wir haben uns entschlossen, Josef von Clifford benutzt, den wir auch auf Kongress vorgestellt worden ist und haben dann einen ersten Durchgang gemacht, um zu verstehen, welche von unseren Elementen sequenzial und welche kombinatorisch abgebildet werden und dann können wir effektiv die Fehler-Simulation effektiver machen als für und ich habe vergessen zu sagen, dieses TMRG Tool ist auch Open Source, wenn ihr euch damit beschäftigen wollt, geht auf uns zu. Natürlich, wenn unsere, die Verifikation fertig ist, dann geht es dann zum Tape out und wir schicken unseren Chip an den Hersteller und wenn alles klar gegangen ist, kriegen wir dann unseren Chip zurück. Nachdem man dann ein paar Monate geduldig gewartet hat, während der Chip hergestellt wird, während man dann Test-Sap abgebaut hat und so dann ist jetzt eine gute Zeit, wie darüber nachzudanken, wie man das testen und validieren kann, dass all die ganzen Maßnahmen, die man getroffen hat, tatsächlich effektiv sind, um den Chip gegen Strahlung zu schützen und wir werden versuchen, um die kumulativen Energiedoseffekte zu testen. Dazu benutzt man typischerweise Röntgenstrahlen sehr ähnlich wie im medizinischen Röntgenbilden. Diese ist relativ niederenergetisch, kann keine Single Event Effekte machen, aber man kann halt kumulative Effekte damit testen. Typischerweise benutzt man so ein Gerät, relativ kompakt, kann man im Labor stehen haben und man benutzt das, um halt große Radiatsstrahlungsdosis auf dem Chip anzusammeln und dann kann man halt testen, wie stark der Chip langsamer wird durch die Strahlungsdosis und dann kriegt man typischerweise so eine Grafik, X-Axis ist die Dosis und die Y-Axis ist die Frequenz des Chips und man kann jetzt sagen, okay, wenn ich meine Erwendung erwarte, ich die und die Dosis und da kann ich sehen, okay, unter den und den Bedingungen wird mein Chip noch schnell genug sein, wenn ich diese Strahlung habe. Das ist für die kumulative Effekte, der Test für die Einzel-Event Effekte ist etwas aufwendiger. Hier geht man im schwere Ionen, dafür geht man zu einem speziellen Einrichtung, davon ein paar in Europa, das ist ein Teilchenbeschleuniger irgendwie, die können typische Arten von Schwere Ionen beschleunigen und dann auf deinen Chip schießen, den man in eine Wackungenkammer packt und diese Ionen können einen sehr klar bekannten Energien in den Chip deponieren. Problem ist, diese Geräte sind sehr teuer zu und auch schwierig dran zu kommen, man muss aber Monate vorher buchen, aber Vorteil ist, man kann verschiedene Ionen mit verschiedenen Energien benutzen und man kann sehr, sehr detaillierte Empfindlichkeitskurven machen und man kann halt gucken, wie häufig ein bestimmter Einzel-Event-Effekt in der Aufpass passieren wird, wenn irgendwas nicht geschützt ist. Problem ist, dass die meistens die Schaltung mit dem Chip mit tausenden von Teilchen pro Sekunde bombardieren und man weiß nie genau wo auf dem Chip sie treffen und das muss ein bisschen vorsichtig sein und muss genau das Verhalten des Chips sehr genau kennen, um zu erkennen, dass irgendetwas schiefgenommen. Das ist typischerweise nicht sehr einfach. Das ist so, man kann, ja man hat einen komischen Crash irgendwo im Software Stack und man muss erstmal gucken, was tatsächlich passiert ist. Typischerweise findet man irgendetwas, das nicht sauber geschützt ist und dann sieht man komische Effekte in der Schaltung und dann versucht man rauszufinden, wo die Probleme eigentlich sitzt. Und die Antwort für diese Sachen, wo Präzision gibt, ist die Antwort natürlich wie immer Laser und es gibt verschiedene Arten von Laser, wo man detailliert testen kann. Der erste Typ, da ist der Single Photon Absorption, also Einzelphoton Absorption, da schlückt man einen Laserstrahl auf einen Transistor, kann sehr große Energien deponieren und kann halt in sehr große Energien auf einmal deponieren und man kann den Laser natürlich beliebig über den Chip gehen lassen und dann sieht man, wo die Fehler sind. Und es muss natürlich durch das ganze Silikon geben oder bis es zu dem Transistor kommt. Das ist hauptsächlich dafür da, um die destruktive Effekte zu finden, die den Chip zerstören. Kleverer ist die zwei Photon Absorption, die benutzt zwei Laser mit verschiedenen Wallenlängen und die haben zu wenig Energie, dass sie alleine einen Effekt in dem Chip erzeugen können. Und nur wenn halt beide Laser gleichzeitig einen Punkt treffen, dann kann man in einem sehr kleinen und sehr wohl definierten Volumen einen Effekt induzieren und man kann dann sehr schön durch, in allen drei Dimensionen, in den Chip testen und man kriegt sehr schöne Ergebnisse. Hier sieht man im Hintergrund, in Schwarz und Weiß sieht man ein Infrarotbild des Chips, wo man die Komponenten sehen und in Blau darüber kann man all die empfindlichen Punkte sehen, wo man irgendwelche Dinge sehen konnte, die man nicht erwartet hatte, einen Bitflip in einem Register. Und da kann man ins Layout gehen, was ist der Transistor oder das Gate in deiner Netzliste, der dafür ist und dann kann man halt in dem Software, in der Simulation gehen, so ähnlich wie man mit dem Debugger halt genau halt, dann drückt auf den Source Code gehen kann. Ja, es ist immer gut aus den Fehlern zu lernen und wir haben auch aus unseren Fehlern gelernt und wenn ihr selber mal solche strahlungsresistente Schaltungen bauen wollt, dann könnt ihr aus unseren Problemen lernen, die wir hatten. Und das Erste ist, das erkennt ihr wahrscheinlich wieder, dass diese voll dreifach redundante Layout was Schimmon euch gezeigt hat und wir haben alles tripliciert und wir waren sicher, dass alles okay war und das Einzige war, die Änderung war, die Änderung an dem Reset in den Registern und wir wollen das wieder auf Null zurücksetzen, wenn wir starten und natürlich jede CDU hat einen Reset und wo wir nicht dran gedacht haben, ist natürlich irgendwann gibt es einen Puffer, der diese Reset, diese Reset Leitung treibt und das ist natürlich auch ein transienter Effekt und sobald das passiert, sind alle Registern natürlich gleichzeitig ein Fehler und dann funktioniert die ganze Triplicierung nicht mehr und dann dachten wir im nächsten Mal, wir sind jetzt schlauer und natürlich haben wir alles verdreifacht, also verdreifachen wir auch die Reset Leitung und der Designer von diesem Block hatte natürlich die besten Absichten, aber später, als wir das gebaut haben, passiert es immer noch manchmal, dass ein vollständiger Reset passiert ist, ohne dass wir eine Erklärung dafür hatten und was natürlich, woran nicht gedacht wurde, hier war, dass dieser Reset verbunden war mit dem Systemreset von dem Chip, den wir hatten und typischerweise Pins auf dem Chip, sind nicht beliebig viele da, also will man nicht einfach drei Pins nur für einen blöden Reset verschwenden, den man 99% der Zeit sowieso nicht braucht, das heißt was er gemacht hatte, wir haben einfach das verbunden, diese Reset Leitung mit einem einzelnen Input Puffer verbunden und jetzt mit einem Chip verbunden war auf dem Chip und natürlich war das auch eine kleine empfindliche Gegend und ein Single Event Abset hat trotzdem immer noch alle unsere 3 Flip Flops betroffen und die letzte, das letzte, was wir gelernt haben, geht zurück auf die Implementierungs Details, über die Scheman gesprochen hat und wir waren total überzeugt, dass das funktionieren müsste, das war einfach ein Lehrbuch Beispiel und der Code war so klein und wir haben alles untersucht und wir waren wirklich sicher, dass nichts passieren könnte und aber als wir dann das Lasertesting Experiment gemacht haben und in einer vereinfachten Form und wir haben nur diese erste Voting-Einheit betroffen und nur dieses Register war betroffen und die anderen konnten einfach nichts, keinen anderen Effekt zeigen und als wir das Leerot angeguckt haben, was in dem Chip passiert war, war dieses und zwei der Votor waren einfach gar nicht da und Scheman hat den Grund dafür euch gesagt und die Synthesitools sind so schlau, redundant zu finden und wir hatten ihnen nicht gesagt, dass er dieses nicht optimieren sollte, diesen redundanten Teil und dann hat die Synthesilatik das einfach wegoptimiert und natürlich war dieser Voter dann das sensitive Element, das empfindliche Element und natürlich gehen dann alle Register kaputt und wir waren so sicher, dass wir alles angeguckt hatten und alles überprüft hatten und es hätte funktionieren müssen, aber manchmal passiert es einfach so und ja hoffentlich konnten wir euch einige Einsichten vermitteln und was wir machen mit den Experimenten beim LHC oder was ihr machen könnt bei dem Satellit, an dem er arbeitet und das ihr an alles denkt, bevor ihr in den Weltraum schießt und kommt an der Assembly vorbei, die ich am Anfang euch gezeigt habe oder kommt einfach nach dem, nach der Präsentation vorbei. Vielen Dank. Jo, vielen Dank. Es gibt jetzt 10 Minuten für Fragen. Ihr könnt natürlich auch, wenn ihr im Internet seid, über die am Anfang genannten Hashtags, immer klark oder über den UrgChannel Fragen, die wird in der Signalengel stellen, aber jetzt die erste Frage aus dem Saal. Benutzt ihr auch Strahlung als Quelle für Zufälligkeit, wenn es benötigt wird? Ja, das wird manchmal benutzt. Wir machen das nicht, aber für Zufallszahlen Generatoren wird das benutzt und der benutzen radioaktiven Zerfall als Zufallsquelle, aber wir machen das hier nicht für unsere Sachen. Okay, next question goes to the mark for number four. Do you do your replication before or after elaboration? Macht ihr eure Vertreifachung vor oder nach Elaboration? Im Moment machen wir das davor und wir machen, haben Verilog input und Verilog Output und dann sind wir flexibler, wie man verschiedene Triplikationsschämen implementieren kann. Wenn man das nur nach der Elaboration macht, dann wäre die volle Vertreifachung einfach, aber dann hat man nicht mehr die präzise Kontrolle über die verschiedenen Level der Vertreifachung. Ist es möglich, DC DC Converter oder Schaltnetzteile in Strahlungsangebungen zu benutzen? Ja, wir haben ein spezielles Programm, was strahlungsresistente DC DC Converter hat und die gibt es auch für Weltraumanwendungen, soweit ich weiß, und die sind gegen ionisierende Strahlung gehärtet und auch gegen Single-Event-Absetz. Ich finde mich nur, ist die Möglichkeit jedes Gate oder so in einer Art Mesh-Network miteinander zu verbinden? Da weiß ich nicht davon, dass das gemacht wird und ich würde sagen, es ist nichts, was wir machen und ich weiß auch nicht genau, vielleicht kannst du anders fragen? Auf der letzten, bei den Lesson-Learns, ja. Könntet ihr alles in einem Vorstellungsnetzwerk miteinander verbinden? Also können wir unser eigenes FPGA bauen, das Programmable Logic und wir haben nur sehr wenig Leistung zur Verfügung, das heißt, wir können diese Komplexität einfach nicht benutzen, wir können es auch strahlungsgehärtet machen, aber es ist nicht, was wir typischerweise machen. Ich wollte fragen, ist die Ausrichtung oder Transistoren und eure Schaltungen Teileres Designs, typischerweise hat man einen Bauen im Box, um eine Schaltung, benutzt der Dover, um die Strahlendosis zu reduzieren, wenn ihr die Strahlenquellen kennt? Nein, ich glaube wir machen das nicht, wir kontrollieren natürlich die Ausrichtung der Transistoren im Design, aber normalerweise gehen wir von aus, dass die Strahlungen senkrecht auf den Chipfell, das heißt, wenn wir es 90 Grad drehen, dann gewinnt man nicht so viel und normalerweise sind unsere Chips in einem großen System eingebaut und wir haben keine Kontrolle darüber, wie sie dann ausgerichtet sind. Gibt, nimmt der Metastabilität, berücksichtigt ihr, wenn ihr den Voter designt? Der Voter selbst ist nur kombinatorisch und ja, aber der Rest kann zu jeder Zeit ändern und die Voter könnten dann vielleicht Glitches haben. Ja, korrekt, um das zu vermeiden, also wir nehmen, wir berücksichtigen das nicht im Design, was macht dieses Bit oder dieses, sondern wir vermeiden einfach dieses Problem grundsätzlich selbst, wenn man Metastabilität in einem der Blocks hätte, in A, B oder C, dann wäre das im nächsten Taktzyklus gefixt, denn normalerweise sind unsere Systeme arbeiten mit niedriger Frequenz, nur einige hundert Megahertz, das heißt, jede Metastabilität wird einfach beim nächsten Taktzyklus schon gelöst. Nächste Frage, Mike, von Nr. 1. Wie behandelt ihr die mögliche Register-Duplizierung, die PlacentRoute machen können und die sind dann vielleicht nicht tripliziert? Ja, im Typ SNESAC Design Flow ist das eigentlich nicht das, was passiert, dass man Retiming macht und neue Register dazu baut, aber was wir machen, wir sagen, einfach macht diese Optimierung nicht, sondern behalt alle Register, so wie wir sie beschrieben haben und beschränken auch die Engine, dass sie solche Änderungen nicht macht. Die nächste Frage vom Internet. Habt ihr paar einfache Tipps, um die Strahlungs-Toleranz zu verbessern? Ja, der einfachste Tipp ist einfach pack alles in eine große Kiste und es gibt keine Einzellösung, die auf alle Anwendungen passt und es kommt immer darauf an, was für eine Umgebung du hast und sich bewusst zu sein, was für Raten und was für eine Anzahl von Events du hast, was für Artenpartikel kommen und dann entsprechend passende Maßnahmen zu ergreifen. Es gibt keinen One-size-fits-all. Hi, thanks for the talk. How much of your software used to design is actually open-source? Wie viel von der Software, die ihr benutzt, ist open-source. Ich kenne nur extrem teure Ship-Design-Software. Ja, und alle Implementierungs-Tools und alle Synthesizer und alle Routing-Tools, die wir benutzen, ja, das ist closed-source und kommerziell und wenn du nach dieser kleinen, ja, wir können nicht sagen, was wir genau benutzen, aber alles, was wir selbst entwickeln, machen wir natürlich open-source und geben das der Community und es gibt andere Design-Tools auch, die frei verfügbar sind und wir geben das an die Community weiter in diesem Kontext. Habt ihr versucht, gesteuerte Molekult-Strahlen zu benutzen? Ja, und das Wille, was ich gezeigt habe, das ist wirklich in Darmstadt, in Deutschland, und ist ein Microbeam, ein Mikrostrahleinrichtung, die einen steuerbaren, schwer johnen Strahl hat und das macht wahrscheinlich genau das, wonach du gefragt hast. Aber das ist nicht typisch, das ist ein ganz spezieller Fall und wahrscheinlich der einzige Stelle in Europa, wo das möglich ist. Microbeam, Nummer 1? Das war ein sehr gutes Gespräch, danke sehr viel. Meine Frage ist, habt ihr das, was ihr macht, damit verglichen, was gemacht wird, wenn sichere Chips gemacht wird, zum Beispiel für SmartCards oder es gibt da Techniken, die gegen Angriffe auf Silikon schützen sollen? Nein, das haben wir nicht wirklich verglichen, aber es stimmt, die Techniken, die wir machen, können auch in anderen Umgebungen verwendet werden. Es ist nicht genau das, was du gesagt hast, aber auf einem ähnlichen Level ist. In ganz kleiner Technologie bekommt man Probleme mit der Zuverlässigkeit und der Rate von funktionierenden Geräten und die Verbindung zwischen den Gates können einfach kaputt sein nach der Herstellung und wenn man diese Redundanz mit ähnlichen Techniken einbaut, kann das benutzt werden, um den Yield zu erhöhen und den Anteil der funktionierenden Geräte. Das wird heute noch nicht so oft benutzt, aber ich glaube, das kann auch für solche Security-Fold-Angriffe benutzt werden. Ihr habt auch Gegenmaßnahmen auf dem Zellenniveau genannt. Gestern gab es einen netten Talk von dem LibreSilicon-Leuten, die eine Standard-Zellenbibliothek für eine Open Source-Zellenbibliothek entwichten wollen. Seid ihr in Kontakt mit denen, um zum Beispiel über ... Ja, wir haben das auch gesehen gestern, aber wir haben keinen Kontakt mit denen. Zwei Fragen vom Internet. Würde TTL oder ähnliche Logik, wäre die Strahlenhard härter? Ja, wir haben BJT Transistoren, hat Stefan kurz erzählt, dass diese Verschiebungsschaden kein Problem bei uns, aber das ist ein Problem bei TTL. Das heißt, wenn wir mit hoher Energie bestrahlt werden, mit Protonen, dann nehmen die sehr viel Schaden und deswegen benutzen wir die in unserer Umgebung gar nicht. Die könnten wahrscheinlich robuster sein gegen Single Event Effekte. Das heißt, der Widerstand ist immer schon viel niedriger, aber die haben andere Probleme. Und ein anderes Problem ist auch, diese Geräte verbrauchen viel, viel mehr Leistung und das können wir uns in unseren Anwendungen nicht leisten. Und die andere wäre, wie benutze ich die Ausgabe des Full-TMR-Outputs? Kommen da wirklich drei Signale raus? Und woher wüsste ich, welchen ich benutzen soll? Mit dieser Architektur kann man entweder die ganze Triplikation auf die ganze Logik ausweiten und alles verdreifachen. Das ist in die Richtung der Lessons learned. Natürlich hat man immer ein Interface zu deinem Chip und man hat die Pins, einfach die Ein- und Ausgabe sind und da muss man sich entscheiden, will man auch wirklich drei Input Pins haben für jedes Signal oder hat man irgendwann einen Voter und dann kombiniert man diese Signale. Aber ich habe diese empfindliche Region auf meinem Chip reduziert und dann sind das nur noch die In- und Output Pins. Was ist natürlich weh? Typischerweise triplicieren wir all die ganzen internen Dinge von unseren Schalten, aber wenn wir benutzen auch andere Sachen, zum Beispiel Error-Correct-Codes, die werden dann erlauben, die Fehler später im Backend zu originieren. Und die letzte Frage, ich weiß nicht viel über Physik. Wie wichtig ist das physikalische Test, nachdem der Chip fabriziert wird, ist die Computersimulation genug, wenn man einfach Partikel darauf schießt? Ja und nein, im Prinzip sollte man natürlich alle Effekte simulieren können, die wir uns angucken. Aber das Problem ist, wenn das Design groß wird und das ist einfach was passiert, wenn die Technologie kleiner wird und das Entergebnis kann dann Millionen oder Milliarden Knoten haben und das kann man einfach nicht mehr erschöpfen testen, weil man so viele Dimensionen hat, die man ändern muss, wo man Sachen injiziert und Bitflips oder Transienten und in jedem dieser Knoten und für verschiedene Offsets in der Zeit und der Zustandsraum ist einfach viel zu groß, um das in einer kompletten Simulation zu testen. Und deswegen machen wir typischerweise, hat man dann was vergessen, was man dann irgendwie nur am physischen Testing am Ende testen kann und wenn man es wirklich in den Satelliten tut und am Ende findet man da vielleicht doch raus, dass es nicht funktioniert, also es ist schon sehr wichtig. Vielen Dank, das war die Übersetzung des Vortrags.