Forum: Mikrocontroller und Digitale Elektronik uC mit sicherem RAM ausstatten


von Hi-Tech-Progger S. (Gast)


Lesenswert?

Liebes Forum!

Wir haben das folgende Problem mit einer unserer Basiskarten:

An einem 8Bit-Mixrocontroller in einer Sicherheitsbaugruppe sollen 
RAM-Bausteine angeschlossen werden, die mit Speichertestzyklen gefahren 
werden, so dass man erkennt, ob Fehler entstanden sind. Die Fehler 
entstehen durch starke Strahlung und sollen korrigiert werden.

Der Microcontroller besitzt dazu aber nicht die geforderte Bandbreite, 
wir hätte also Bedarf für einen zwischen-Chip, der das leisten müsste.

Ist jemandem ein solche Chip bekannt, der das leisten könnte?

Oder muss dort etwas Eigenes her? Einen logischen programmierbaren 
Schaltkreis könnte man keicht noch integrieren, es fragt sich, ob es für 
sowas Standardschaltungen gibt.

Soweit mir bekannt, machen RAMs im Computer einen ECC - ich weiß aber 
nicht, wer das auswertet und wie.

?

Danke

von wendelsberg (Gast)


Lesenswert?

Gab es fuer solche Sachen vor vielen Jahren nicht ein Parity-Bit?
Wenn es z.B. moeglich ist, die Daten in 7 Bit unterzubringen, koennte 
man das 8te als Parity verwenden und den Bereich zyklisch pruefen.

wendelsberg

von Hi-Tech-Progger S. (Gast)


Lesenswert?

Ein Parity wird meistens nicht ausreichen. Wir müssten schon mehrere 
Bits redundant in die RAMs schieben um es sicher zu machen. Wieviel  man 
da braucht, wird noch analysiert.

von (prx) A. K. (prx)


Lesenswert?

Reinhard S. schrieb:
> Soweit mir bekannt, machen RAMs im Computer einen ECC - ich weiß aber
> nicht, wer das auswertet und wie.

Wenn es fertige ECC Bausteine für RAMs mal gegeben hat, dann gibt es die 
sicherlich heute nicht mehr. Sowas ist längst in jene Komponenten 
gewandert, die RAMs ansteuern. In heutigen Servern also ins 
Speicherinterface der Prozessoren selbst.

Dürfte auf ein CPLD rauslaufen, wenn Software nicht in Frage kommt. Nur 
kann sich natürlich auch ein CPLD was einfangen, oder der Controller... 
oder sind nur die RAMs selbst exponiert?

: Bearbeitet durch User
von oszi40 (Gast)


Lesenswert?

Von RAM-Fehlern her gesehen, habe ich schon die wildesten Sachen erlebt. 
Wenn ganze Reihen von Bits kippen, ist das ja noch schnell zu erkennen 
wenn der RAM vorher mit Nullen oder Einsen getetstet wird. Interessanter 
sind die manchmal auftretenden Fehler, die man NUR durch Zufallsmuster 
erkennt wenn sich z.B. irgendwelche Adressbereiche spiegeln. Einen 
Bereich mit bunter Mischung beschreiben und Prüfsummen über bestimmte 
Bereiche bilden wäre ja möglich, solange es dauerhafte Daten sind. Aber 
bei veränderlichen ist die Sache nicht ganz so trivial. Paritätsprüfung 
zeigt auch nur Fehler WENN zufällig nur ein Bit betroffen ist, wenn es 2 
sind, stimmt die Rechnung wieder.

von SenseAmp (Gast)


Lesenswert?

Wieviel kGy?

von wendelsberg (Gast)


Lesenswert?

Immer 16Bit verwenden, bei denen die oberen und unteren 8 Bits immer 
gleich sind und das beim Lesen auch geprueft wird?

Ob das natuerlich mit sinnvollem Aufwand in C zu machen ist?

wendelsberg

von (prx) A. K. (prx)


Lesenswert?

wendelsberg schrieb:
> Immer 16Bit verwenden, bei denen die oberen und unteren 8 Bits immer
> gleich sind und das beim Lesen auch geprueft wird?

Ist im worst case nicht besser als parity.

Man sollte zudem vorher genau wissen, gegen was man sich absichern will. 
Neben persistenten Fehlern in der RAM Zelle gibts ja auch noch 
transiente Fehler irgendwo anders. Bitleitung, Wortleitung, ... Wenn man 
einen Wortleitungsfehler korrigieren können will, dann muss man entweder 
sehr genau wissen, wie das RAM intern aufgebaut ist, oder man nimmt 
einen RAM-Baustein pro Bit.

von oszi40 (Gast)


Lesenswert?

wendelsberg schrieb:
> mit sinnvollem Aufwand

Nicht umsonst werden bei Flugzeugen getrennte Rechner eingesetzt. Es 
nützt ja wenig, wenn der RAM ok ist und der Fehler bei der Verarbeitung 
eintritt.

von Frank K. (fchk)


Lesenswert?

Reinhard S. schrieb:

> An einem 8Bit-Mixrocontroller in einer Sicherheitsbaugruppe sollen
> RAM-Bausteine angeschlossen werden, die mit Speichertestzyklen gefahren
> werden, so dass man erkennt, ob Fehler entstanden sind. Die Fehler
> entstehen durch starke Strahlung und sollen korrigiert werden.

Nehmt FRAM. Das ist prinzipbedingt strahlungsunempfindlich, behält 
seinen Inhalt auch ohne Spannungsversorgung und hat keine ernsthafte 
Grenze für Schreibzyklen.

Schau her:

http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20110015720.pdf

http://www.cypress.com/products/f-ram-parallel
http://www.cypress.com/products/f-ram-serial

TI hat MSP430 Prozessoren mit FRAM.

fchk

von Lars R. (lrs)


Lesenswert?

Smartfusion2. Wahlweise mit dem integrierten Cortex-M3 oder einen 8Biter 
drauf konfigurieren. SECDED von Haus aus. Mehr kann man implementieren.

Bei dem bisher angedachten Szenario sollte auch der SRAM im uC 
"behandelt" werden. Gibt es noch 8Biter aus alten Zeiten, die das 
effizient vorsehen? Oder gibt es so etwas in 8Bit auch als neu?

von (prx) A. K. (prx)


Lesenswert?

Frank K. schrieb:
> TI hat MSP430 Prozessoren mit FRAM.

Ist eine nette Idee, aber deren FRAM adressiert wohl eher nicht die 
Strahlung. Man hat nichts davon, wenn zwar das FRAM seinen Inhalt 
behält, aber Prozessor und SRAM durch irgendwelche Fehler Unsinn 
reinschreiben.

Da muss man sich schon eine Gesamtlösung überlegen, wenn es wirklich 
kritisch ist. Sowas wie ein Master/Checker System beispielsweise, in dem 
mehrere Systeme parallel laufen und auf Gleichlauf kontrolliert werden. 
Dummerweise steigt die Komplexität um Grössenordnungen, wodurch die 
Fehlerwahrscheinlichkeit ebenso absteigt.

Lars R. schrieb:
> Bei dem bisher angedachten Szenario sollte auch der SRAM im uC
> "behandelt" werden.

Nicht nur RAM ist gefährdet. Auch normale Logik, Register, ...

: Bearbeitet durch User
von holger (Gast)


Lesenswert?

>Nicht nur RAM ist gefährdet. Auch normale Logik, Register, ...

Und das Flash. Die Strukturen sind noch kleiner als RAM.
Der beste Schutz wäre Strahlung gar nicht erst ran zu lassen.

von Lars R. (lrs)


Lesenswert?

A. K. schrieb:
> Lars R. schrieb:
>> Bei dem bisher angedachten Szenario sollte auch der SRAM im uC
>> "behandelt" werden.
>
> Nicht nur RAM ist gefährdet. Auch normale Logik, Register, ...

Ja, berücksichtigt werden müssen die auch. Aber deren Inhalt ändert sich 
häufiger. Im Idealfall ständig. Es muss auch nicht jeder Treffer ein 
Flipflop kippen. Wenn man aber den SRAM "länger" nicht "behandelt", so 
steht nur noch Müll drin.

holger schrieb:
>>Nicht nur RAM ist gefährdet. Auch normale Logik, Register, ...
>
> Und das Flash. Die Strukturen sind noch kleiner als RAM.

Für das Kippen einer Flashzelle ist der erforderliche Energiebedarf sehr 
viel größer.

Wenn dann die Belastung so hoch ist, dass keine einzige Addition oder 
Bitoperation mehr korrekt ausgeführt werden kann, so braucht man sich um 
den Flash auch nicht mehr zu sorgen. Dann funktioniert auch Redundanz 
mittels gegenseitiger Überprüfung mehrer Systeme nicht mehr.

von Werner M. (Gast)


Lesenswert?

wendelsberg schrieb:
> Immer 16Bit verwenden, bei denen die oberen und unteren 8 Bits immer
> gleich sind und das beim Lesen auch geprueft wird?

Du bist mir ein Schlaumeier. Wie willst du die Fehler korrigieren, wenn 
du nicht weißt, welches Byte gestört ist.

Für Erkennung und Korrektur von Fehlern in Datenworten sollte man sich 
mal mit dem Hammingabstand von Codeworten beschäftigen.

von Peter D. (peda)


Lesenswert?

Reinhard S. schrieb:
> An einem 8Bit-Mixrocontroller in einer Sicherheitsbaugruppe sollen
> RAM-Bausteine angeschlossen werden, die mit Speichertestzyklen gefahren
> werden

Wie kommst Du darauf, daß man einen SRAM testen müsse?
Gibt es eine Vorschrift, die Ihr einhalten müßt und in der das explizit 
verlangt wird?

Eine 4-Transistor SRAM-Zelle ist so ziemlich der sicherste RAM-Speicher, 
da kippt viel eher was in der CPU um.

Ein SRAM-Test war nur in den Anfängen nötig, wo die RAM-Baugruppen noch 
extra Steckkarten waren und die ICs in billigen Sockeln steckten. Da 
traten in der Tat sehr häufig Kontaktprobleme auf, die RAM-Fehler 
vorgaukelten.

von oszi40 (Gast)


Lesenswert?

Peter D. schrieb:
> und die ICs in billigen Sockeln steckten.

Das ist Deine Theorie. Auch eingelötete hatten Fehler und Zeitprobleme! 
Wenn Du Dir Bussignale mal genauer ansiehst, wirst Du begeisteret sein, 
daß es überhaupt so gut funktioniert.

von Hi-Tech-Progger S. (Gast)


Lesenswert?

A. K. schrieb:
> Dürfte auf ein CPLD rauslaufen, wenn Software nicht in Frage kommt. Nur
> kann sich natürlich auch ein CPLD was einfangen, oder der Controller...
> oder sind nur die RAMs selbst exponiert?

Es ist auch der Controller betroffen, aber die RAMs sind die großen 
Datenspeicher. Der Controller hat alles temporär und rechnet mehrfach 
dasselbe.

von Gerhard (Gast)


Lesenswert?

Ob das hier die richtige Plattform für sowas ist? Wird wohl eher in 
Richtung ganz schlechte, schlechte und halbgare Vermutungen gehen. Wie 
man mit sowas umgeht, ist schon echtes Spezialwissen. Wenn 
Spezialanforderungen bestehen, sollte auch Spezialwissen vorhanden sein, 
nicht zusammengeklaubtes.

Mein Ansatz wäre:
-parallele Systeme (mindestens 3) Ganz grosses Achtung, wenn eins 
abweicht (und nicht unbedingt annehmen, dass das eine abweichende falsch 
ist, die anderen beiden aber richtig sind)

Vielleicht ist in der Raumfahrttechnik was zu finden, ist deren 
tägliches Brot, Abschirmung auch nur sehr begrenzt möglich.
Ältere Technologien mit grösseren Strukturen können (nicht müssen!) 
strahlungsfester sein.

Ringkernspeicher? :-)

von Jens (Gast)


Lesenswert?

Nochmal die Frage:
Welche Dosis erwartet Ihr?

Jens

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Gerhard schrieb:
> Ringkernspeicher? :-)

Sehr gutes Stichwort. Genau dafür habe ich mal ein FPGA-Design gemacht. 
Die RAM-Bausteine und die internen Block-RAM-Areale sind leider von 
Strahlen betroffen, weil CMOS-basierte S-RAM-Technologien aufgrund ihres 
Herstellungsprozesses / Dotierung einen hohen Einfangquerschnitt für 
Teilchen und Elektronen haben. Solange es nur Elektronen sind, kann man 
von ausschließlich temporären Störungen ausgehen, ansonsten muss man 
Altersdegradation unterstellen, messen und Teile tauschen.

Die Störsicherheitsthematik wurde damals ebenfalls mit Redundanz gelöst. 
Alle benötigten Werte im FPGA und den RAM-Bausteinen mehrfach 
hinterlegen und beim Laden auf Konsistenz prüfen bzw. durch 
Mehrfachrechnen zu sichern.  die Ist eine klassische Aufgabe für den 
FPGA. Auch das Image des FPGAs selber kann man so prüfen.

Was an Aufwand zu treiben ist, liegt an der Exposition und die 
Anforderungen (FMEA). Um eine genügende Sicherheit zu haben kann man 
einfach die Redundanz steigern, also alle Werte 4x und dann einen 
Mehrheitsvergleich. Das eventuell kaputte kann man so sehr sicher 
detektieren und gleich wieder hinbiegen.

Da muss man dann halt bauen und auch einfach messen, was passiert.

von Peter D. (peda)


Lesenswert?

oszi40 schrieb:
> Wenn Du Dir Bussignale mal genauer ansiehst, wirst Du begeisteret sein,
> daß es überhaupt so gut funktioniert.

Der beste RAM-Test nützt nicht die Bohne, wenn ein Anfänger das Layout 
macht.
Ich hatte mal ein Board von nem externen Dienstleister machen lassen, 
das sah aus, wie das Spiel Misthaufen. Das Oszi hat dann auch schöne 
Unterschwinger gezeigt (-2V) und es lief unzuverlässig.
Ich habs dann selber gemacht und die Signale sahen aus, wie gemalt.

von Tüddel (Gast)


Lesenswert?

Hab vor Kurzem ein ähnliches Problem gehabt wie Reinhard!

Es gibt da so(ooooo) viele Möglichkeiten. Vor Redundanten Speicher (z.B. 
TMR), über redundante Speicherblöcke (also alles mehrfach speichern und 
dann Voten) oder über spezielle Checksummen,... bis hin zu alles in 
Tantal einwickeln und und Worse Case Berechnungen der 
Warscheinlichkeitshäufung.
Man ist sich da in der Raumfahrt auch nicht ganz einig ;-)

Ich habe dann für uns (weil u.A. der Platz für redundante 
Bauteile/Module) nicht ausreichte und uns die Signale an der Logik 
ausgingen auf ein "größers" MRAM von Everspin ausgewichen. Zusätzlich 
hat das Latch-Up Protection der Stromversorgung und eine 
Signalisolierung bei Latch-Up auslösung bekommen (nicht das der Latch-Up 
von einem Signal gehalten wird).

Dadurch das der Platz im RAM größer ist als wir eigentlich brauchen ist 
jetzt Platz für redundante Daten, Checksummen sowie (ich meine) Hamming 
Codierte Daten.

PS
Wie sicherst du denn die Registerflips im µC durch Bestrahlung? Sind ja 
auch nur "SRAM-Zellen". - Eine Methode ist Zeitliche Redundanz - Alles 
mehrfach und Zeitlich versetzt durchführen und dann ein "Diff" über die 
Einzelergebnisse ;-)
Ich meine das CNES dazu ein paar schöne Papers hat...

von Thomas V. (thomas_v70)


Lesenswert?

Wenn es eine Sicherheitsbaugruppe ist sollte eigentlich nach ISO26260 ja 
auch ein Sicherheitskonzept erstellt worden sein.

Wurden Euch den die daraus abgeleiteten Sicherheitsziele übersendet?

Weil ansonsten ist die "Erfüllung" dieses Requirements ggf. eine 
unendliche Geschichte, weil sich das ja fast endlos auf die einzelnen 
Baugruppenkomponenten unterschiedlich dekomponieren lässt.

von BertRAM (Gast)


Lesenswert?

Reinhard S. schrieb:
> An einem 8Bit-Mixrocontroller in einer Sicherheitsbaugruppe sollen
> RAM-Bausteine angeschlossen werden, die mit Speichertestzyklen gefahren
> werden, so dass man erkennt, ob Fehler entstanden sind. Die Fehler
> entstehen durch starke Strahlung und sollen korrigiert werden.

Warum nimmst Du nicht, anstatt da einen zusätzlichen Chip 
dazwischenzufrickeln, gleich ordentliches rad-hardened RAM?
BAE zum Beispiel hat soviel davon davon, daß sie die sogar verkaufen!
Beispielsweise sei für das SRAM "Independence" (BAE-Nummer 8427352)
die "Featureliste" aus dem BAE-Katalog zitiert:
"The 16 Mb monolithic SRAM 'Independance' has total-dose tolerance
of greater than 1 Mrad and an upset rate of less than 1E-12 upsets
per bit-day. Prompt dose levels are >1E9 rad/sec"
Die Anderen üblichen Verdächtigen dürften wohl ähnliche
Teile im Programm haben.

von .. (Gast)


Lesenswert?

Jürgen S. schrieb:
> Was an Aufwand zu treiben ist, liegt an der Exposition und die
> Anforderungen (FMEA). Um eine genügende Sicherheit zu haben kann man
> einfach die Redundanz steigern, also alle Werte 4x und dann einen
> Mehrheitsvergleich. Das eventuell kaputte kann man so sehr sicher
> detektieren und gleich wieder hinbiegen.

Warum wieder hinbiegen wenn man eines von den dreien nehmen kann?
Oder meinst du eintragen, damit die nicht wieder verwendet werden,
ein Speichermanagament auf der Suche nach fehelerhaften Speicherstellen?

Dann einen ASIC Baustein und das System von Grund auf aufbauen oder
sich bei den NAND oder anderen Herstellergruppen über APP Note 
schlaumachen, wie die es machen.

'ASIC' meine 2 ct ;-)

von .. (Gast)


Lesenswert?

Peter D. schrieb:

> Ich habs dann selber gemacht und die Signale sahen aus, wie gemalt.

Soviel Eigenlob kenn ich nicht von dir -
/* http://www.progforum.com/archive/index.php/t-1623.html */
zudem du da ja einen ganz anderen Standpunkt hast.
 ;-)

von .. (Gast)


Lesenswert?

.. schrieb:
> Jürgen S. schrieb:
>> Was an Aufwand zu treiben ist, liegt an der Exposition und die
>> Anforderungen (FMEA). Um eine genügende Sicherheit zu haben kann man
>> einfach die Redundanz steigern, also alle Werte 4x und dann einen
>> Mehrheitsvergleich. Das eventuell kaputte kann man so sehr sicher
>> detektieren und gleich wieder hinbiegen.
>
> Warum wieder hinbiegen wenn man eines von den dreien nehmen kann?
> Oder meinst du eintragen, damit die nicht wieder verwendet werden,
> ein Speichermanagament auf der Suche nach fehelerhaften Speicherstellen?
>
> Dann einen ASIC Baustein und das System von Grund auf aufbauen oder
> sich bei den NAND oder anderen Herstellergruppen über APP Note
> schlaumachen, wie die es machen.
>
> 'ASIC' meine 2 ct ;-)

Tut dem Mann leid, links vergessen:

http://asic-soc.blogspot.de/2007/07/sram-cell-design.html
http://www.ece.cmu.edu/~cssi/research/pdf/rethinking-asic-design.pdf

http://www.embedded.com/design/mcus-processors-and-socs/4007087/Looking-for-new-SRAM-options-in-embedded-ASIC-and-SOC-designs

von bko (Gast)


Lesenswert?

wg. Strahlung+Bauteile -> z.B.: bei den "Raumfahrern" fragen...
http://www.tesat.de/de/bereiche/bauteile-agentur/services

von meckerziege (Gast)


Lesenswert?

Für sowas gibts extra Mikrocontroller. Sieh dich mal im Raumfahrtbereich 
um. Da musst du dann aber RICHTIG viel Geld in die Hand nehmen.

Auch wenn du "mehrmals rechnest" nutzt dir das unter Umständen nichts: 
Auch der Programmcounter, die Stelle des Mehrheitsentscheids etc. können 
betroffen sein.
Daher gibt es für RAM spezielle Codes (z.B. den Hamming-Code) mithilfe 
dessen du Fehlerkorrektur betreiben kannst. Das gleiche gibts dann auch 
nochmal für die Prozessorregister. Ansonsten ist der restliche Chip auch 
mit Rad-Hard Technologie aufgebaut, d.h. es werden Zellen verwendet, die 
weniger empfindlich auf Strahlung reagieren.

Du darfst außerdem nicht nur SEU (single event upsets, also bitkipper) 
betrachten, sondern musst auch weitere Einflüsse (latchup etc.) mit 
einbeziehen, falls ihr wirklich Strahlung habt.


Das Problem ist insgesamt deutlich komplexer als es hier zu beschreiben 
ist. Kurz gesagt: Such dir Profis die sowas schonmal gemacht haben!

von Peter D. (peda)


Lesenswert?

.. schrieb:
> Soviel Eigenlob kenn ich nicht von dir -

Ein sauberes 8-Bit Layout ist doch kein Hexenwerk.
Konkret war es ein DS80C320 an 32MHz. Daten-/Adreßbus in der Mitte 
geführt und die ICs rechts und links davon angeordnet, fertig.
Wer allerdings denkt, das kann der Autorouter auch, der ist schief 
gewickelt.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Tüddel schrieb:

> Wie sicherst du denn die Registerflips im µC durch Bestrahlung? Sind ja
> auch nur "SRAM-Zellen". - Eine Methode ist Zeitliche Redundanz - Alles
> mehrfach und Zeitlich versetzt durchführen und dann ein "Diff" über die
> Einzelergebnisse ;-)

Exakt das ist eine Methode, ja. Theoretisch kann jedes FF in einem FPGA 
betroffen sein, wenngleich das jeweils auch sehr unwahrscheinlich ist.

Mehrfach Dasselbe zu rechnen ist im FPGA sehr leicht in einer pipeline 
zu machen.

von Tüddel (Gast)


Lesenswert?

Oder aber gleich Redundant! -> Ist ja ein FPGA, der ist ja predetiniert 
für Parallelität!
Gibt sogar Generatoren/Optimierer dafür die in TMR generieren/umwandeln! 
Sowol Actel/Microsemi als auch Xilinx haben soetwas...

von Michael E. (cuby)


Lesenswert?

Ein in dem Zusammenhang vielleicht noch ganz interessantes Paper dazu, 
wie eine software-basierte Lösung zum Schutz vor strahlungsinduzierten 
transienten Speicherfehlern aussehen kann und wie gut sie funktioniert 
(getestet u.a. in einem Satelliten):

Philip P. Shirvani, Nirmal R. Saxena, and Edward J. McCluskey:
Software-Implemented EDAC Protection Against SEUs,
Stanford University Center for Reliable Computing
Technical Report No. 01-3, May 2001

http://www-crc.stanford.edu/crc_papers/CRC-TR-01-3.pdf

-- Michael

von Pandur S. (jetztnicht)


Lesenswert?

Gegen geladenen Teilchen kommt man mit groesseren Strukturen an, wo eine 
Ladung nicht viel aendert. Gegen schwere Teilchen, wie Neutronen, die 
die Struktur beschaedigen, die Kurzschluessen hervorbringen, wird's 
schwierig.

Wieviel elektrische Leistung hat man, welche Strahlenmenge an welchen 
Teilchen erwartet man, welche Rechenleistung benoetigt man.

Allenfalls geht auch ein analoger Roehrenrechner ?

: Bearbeitet durch User
von P. M. (o-o)


Lesenswert?

Lars R. schrieb:
> Ja, berücksichtigt werden müssen die auch. Aber deren Inhalt ändert sich
> häufiger. Im Idealfall ständig. Es muss auch nicht jeder Treffer ein
> Flipflop kippen. Wenn man aber den SRAM "länger" nicht "behandelt", so
> steht nur noch Müll drin.

Die Wahrscheinlichkeit, dass ein bestimmtes Bit während einer bestimmten 
Zeitspanne kippt, ist aber für alle Bits mit gleichen elektrischen 
Eigenschaften gleich gross. Oft den Inhalt zu ändern, hilft da nicht. 
Ich würde sogar sagen, dass oftmaliges Neu-Schreiben die 
Wahrscheinlichkeit für ein Kippen sogar erhöht, da sich das Bit für eine 
längere Zeitspanne in einem Übergangszustand befindet, wo es besonders 
anfällig für Störungen ist.

Wenn also der Programm- oder Stackcounter getroffen wird, viel Glück - 
da hilft keine softwaremässige Redundanz mehr.

Generell halte ich es für fragwürdig, warum der Controller funktioniert, 
das SRAM hingegen dauernd Fehler produziert. Riecht für mich stark 
danach, dass hier Fehler vorliegen, die man anderweitig wegdesignen 
sollte als mit einem RAM-Check.

von Peter D. (peda)


Lesenswert?

Vermutlich hat der Prof mal was von RAM-Test gehört und verlangt nun, 
daß das irgendwie reingepappt werden soll.

Ein sicheres Design sieht anders aus.
Das fängt zuerst damit an, daß man das keinen Anfänger machen läßt, 
sondern Leute, die schon mit solchen Projekten Erfahrung haben.
Sicherheit kann man nicht einfach aus ner Kiste nehmen und 
drüberstülpen.

von Tüddel (Gast)


Lesenswert?

P. M. schrieb:
> Generell halte ich es für fragwürdig, warum der Controller funktioniert,
> das SRAM hingegen dauernd Fehler produziert. Riecht für mich stark
> danach, dass hier Fehler vorliegen, die man anderweitig wegdesignen
> sollte als mit einem RAM-Check.

Da hab ich doch schon in meinem ersten Post drauf hingewiesen... 
Register sind auch blos RAM-Zellen...

von Axel L. (axel_5)


Lesenswert?

Tüddel schrieb:
> P. M. schrieb:
>> Generell halte ich es für fragwürdig, warum der Controller funktioniert,
>> das SRAM hingegen dauernd Fehler produziert. Riecht für mich stark
>> danach, dass hier Fehler vorliegen, die man anderweitig wegdesignen
>> sollte als mit einem RAM-Check.
>
> Da hab ich doch schon in meinem ersten Post drauf hingewiesen...
> Register sind auch blos RAM-Zellen...

RAM Zellen sind viel kleiner und deswegen empfindlicher.

Es gibt ja nicht nur eine Sorte FF in einem Design, sondern man nimmt 
die immer nur so gross wie nötig. Im SRAM sind die eher klein und sehr 
dicht gepackt, so dass jedes Strahlungsteilchen auch trifft, im 
Controller sind die meist grösser und auch nicht so dicht gepackt.

Besonders kritisch wird es dann, wenn das RAM als Programmspeicher 
dient, da wird es ewig nicht neu beschrieben und ein Bitkipper kann dann 
irgendwann zuschlagen, wenn die Speicherzelle ausgelesen wird. Und bei 
Programmspeicher wird sie irgendwann ausgelesen. Bei FF im Controller 
ist die Wahrscheinlichkeit, dass ein Bitkipper keine Auswirkung hat, 
viel höher. Das Ganze hängt aber auch noch mächtig von der Technologie 
ab, bei 90nm und 1,8V sind die FF recht stabil, bei 10nm und 1V sieht 
das schon anders aus.

Gruss
Axel

: Bearbeitet durch User
von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Oder D. schrieb:
> Gegen schwere Teilchen, wie Neutronen, die
> die Struktur beschaedigen, die Kurzschluessen hervorbringen, wird's
> schwierig.

Es gibt speziell dotierte Abschirmungen mit Materialien, die einen für 
die spezifische Strahlung hohen Einfangquerschnitt haben.


P. M. schrieb:
> Die Wahrscheinlichkeit, dass ein bestimmtes Bit während einer bestimmten
> Zeitspanne kippt, ist aber für alle Bits mit gleichen elektrischen
> Eigenschaften gleich gross. Oft den Inhalt zu ändern, hilft da nicht.
> Ich würde sogar sagen, dass oftmaliges Neu-Schreiben
Die Mimik ist ja die, die RAMs mehrfach aufzuziehen und dann durch 
Neuschreiben die defekten Infos zu korrigieren. Also ein 
Mehrheitsentscheid.


Axel L. schrieb:
> RAM Zellen sind viel kleiner und deswegen empfindlicher.
Das haben wir auch gefunden. Wenn es Fehler gab, waren die überwiegend 
im RAM.

Peter D. schrieb:
> Das fängt zuerst damit an, daß man das keinen Anfänger machen läßt,
> sondern Leute, die schon mit solchen Projekten Erfahrung haben.
+1! D:

von Optimus (Gast)


Lesenswert?

Wickelblei hilft!

von c-hater (Gast)


Lesenswert?

Reinhard S. schrieb:

> werden, so dass man erkennt, ob Fehler entstanden sind. Die Fehler
> entstehen durch starke Strahlung und sollen korrigiert werden.

Du sprichst das etwas zu gelassen aus. Es besteht nämlich ein 
himmelweiter Unterschied zwischen "Fehler sollen erkannt werden" und 
"Fehler sollen korrigiert werden". Ersteres ist vergleichsweise sehr 
viel einfacher. Das sollte selbst dir klar sein.

> Der Microcontroller besitzt dazu aber nicht die geforderte Bandbreite,
> wir hätte also Bedarf für einen zwischen-Chip, der das leisten müsste.

Unsinn. Was man braucht, ist in diesem Fall ein µc mit der geforderten 
Bandbreite. Und nicht irgendwelche "Zwischen-Chips".

> Soweit mir bekannt, machen RAMs im Computer einen ECC - ich weiß aber
> nicht, wer das auswertet und wie.

Gemeldet wird das per NMI-Interrupt. Behandelt wird es durch den 
entsprechenden Handler des OS. Wobei "behandelt" z.B. auch einfach 
bedeuten kann: "Bluescreen" of death. Was z.B. genau dann passiert, wenn 
eben nur Fehlererkennung, nicht aber Fehlerkorrektur in diesem Handler 
implementiert ist.

Letzteres ist einfach so komplex, dass man es nicht mal eben mit ein 
bissel trivialer Logik implementieren kann, das würde mindestens einen 
passend programmierten FPGA erfordern. Oder halt einfach einen 
hinreichend leistungsfähigen µC.

Aaaber: wenn der RAM strahlungsbedroht ist, dann ist es wohl auch der 
µC. Dann wird es erst richtig kompliziert...

von scherzkeks (Gast)


Lesenswert?

Immer wieder süß wenn monatealte oder jahrealte Threads ausgebuddelt 
werden :-P
"Wickelblei" ist schon innovativ :-P
Da könnte man das ganze auch in HF-Gehäuse eingloddern ;-)
OK verscuhen wir mal ernst zu bleibeb (ja ich weiß sit schon drei Jahre 
alt).
Welche Art von Strahlung, Alpha, Beta, Gamma ?
ECC RAMs mit eigenen Controller gibt es mit Fheler erkennen, 1bit Fehler 
beheben bis 3bit Fehler beheben und 4bit erkennen war glaube ich das 
aktuellste.
Suchen könnte helfen aber ich bin genauso faul wie der Thread-Starter 
:-P
Dann gäbe es noch die Variante SD-Karte in Alufolie verpackt und jedes 
Datum mehrfach mit HASH versehen.
Wie funktioniert nochmal RAID6 ?

von oszi40 (Gast)


Lesenswert?

scherzkeks schrieb:
> Wie funktioniert nochmal RAID6 ?

Nur sooo lange, bis der damit beschäftigte Contoller oder andere 
GEMEINSAME Baugruppen keine Lust mehr zum funktionieren haben. Goto 
Start 13.07.2015

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

scherzkeks schrieb:
> Immer wieder süß wenn monatealte oder jahrealte Threads ausgebuddelt
> werden :-P

c-hater schrieb:
> das würde mindestens einen
> passend programmierten FPGA erfordern.

Das ist eine Überlegung wert. Hat man ja oft, dass der RAM am FPGA 
hängt. Sicher lässt sich da was tun. Man schaue auch mal hier:

Beitrag "Re: FPGA Standards - Safe FSM Implementation"

von uwe (Gast)


Lesenswert?


von Hi-Tech-Progger S. (Gast)


Lesenswert?

scherzkeks schrieb:
> Immer wieder süß wenn monatealte oder jahrealte Threads ausgebuddelt
> werden :-P

Schön, dass sich nochmals ein jemand dazu geäussert hat. Ich lese die 
Beiträge mit Interesse.

Ein kleines update an die Leser: Wie schon angedeutet, wurde ein 
FPGA-Schaltkreis verwendet, der die Daten dupliziert, mehrfach speichert 
und sich die richtigen heraussucht.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Und wie geht das dann mit der Sicherheit bei internen 
Prozessorregistern?

von Hi-Tech-Progger S. (Gast)


Lesenswert?

meckerziege schrieb:
> Für sowas gibts extra Mikrocontroller. Sieh dich mal im Raumfahrtbereich
> um. Da musst du dann aber RICHTIG viel Geld in die Hand nehmen.

Genau das wollte man nicht, bzw konnte man nicht.


Jürgen S. schrieb:
> Und wie geht das dann mit der Sicherheit bei internen
> Prozessorregistern?

Das ist eine gute Frage, muss ich sagen. Eine Frage, auf die ich keine 
Antwort habe. Ich denke, dass man mit Störungen des Controllers leben 
muss.

Es war aber auch so, daß die RAMs die kritischen Stellen waren.

Gfs ist es so, dass RAMs empfindlicher sind?

von Stefan F. (Gast)


Lesenswert?

> Es war aber auch so, daß die RAMs die kritischen Stellen waren.

Theoretisch oder tatsächlich?

Wenn irgendein Computer (abgesehen vom Totalausfall) nicht tut, was er 
soll, würde ich als allerletztes den Fehler beim RAM suchen. Das gilt 
ganz besonders für Mikrocontroller jenseits der Gigahertz Welt.

von Wolfgang (Gast)


Lesenswert?

c-hater schrieb:
> Du sprichst das etwas zu gelassen aus. Es besteht nämlich ein
> himmelweiter Unterschied zwischen "Fehler sollen erkannt werden" und
> "Fehler sollen korrigiert werden". Ersteres ist vergleichsweise sehr
> viel einfacher. Das sollte selbst dir klar sein.

Der Unterschied liegt im Hammingabstand der verwendeten Code-Worte und 
Nutzung dieser Redundanz beim Auslesen, Paritätssicherung von Blöcken 
ist eigentlich das Gleiche, nur strukturell anders angelegt.

von Ralph (Gast)


Lesenswert?

Dann nimm halt einen µC der das kann was gebraucht wird und bastel nicht 
extern noch was dran.
Wie willst du denn sicherstellen das die Verbindung von 8 Bitter zu FBGA 
keine Fehler hat ?

Du brauchst einen µC mit ausreichend internem Ram.
Der folgendes Kann.
ECC auf RAM und Flash
ECC auf allen internen Bussen ; Daten-, Adress-, Peripherie-, ....
LockStep auf dem Rechenkern


Finden kann man sowas zb im Automobilbereich.
Also Automotiv Freigaben nach ASIL "D"

zb von
TI die HERCULES Reihe (TMS 570), das sind ARM Cortex Rx
Infineon die AURIX Reihe, das sind Tricore

Die sind zwar von der Rechenleistung im Vergleich zu dem 8 bitter etwas 
übertrieben. Aber das ist in dem Fall egal, da bei der Anwendung andere 
Kriterien gelten.

von Hi-Tech-Progger S. (Gast)


Lesenswert?

Nur, um das damalige Thema zu einem Abschluss zu bringen diese Info:

Das System mit dem FPGA funktioniert gut. Es wurden auf alle 
Controllerfunktionen in den FPGA hineingenommen. Der Controller arbeitet 
doppelt und existiert zweimal, d.h. das Problem eventueller Störungen 
der Prozessorregister (der offene Punkt) ist damit entschärft.

Der neue Prozessor ist ein modifizierter NIOS. Er ist langsam, aber 
sicher und gut zu überwachen.

Die ursprünglicher Frage mit dem sicheren RAM ist ebenso gelöst: Drei 
Einheiten, die alle dieselben Daten in den RAMs haben und sich 
austauschen, ob sie stimmen.

Eine Fehlfunktion läuft maximal einige Takte bis der Überwacher es 
merkt.

Alle Ausgänge sind bis dahin verzögert und gegen nur GUTE Informationen 
an das Leitwerk weiter.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.