-
Die Erfindung betrifft ein Verfahren zum automatischen Erkennen und Korrigieren von Speicherfehlern in einem sicheren mehrkanaligen Rechner einer eisenbahntechnischen Anlage, wobei jeder Kanal des Rechners wenigstens eine Speichereinrichtung aufweist und Daten in den Speichereinrichtungen der Kanäle parallel gespeichert werden.
-
In eisenbahntechnischen Anlagen ist eine hohe Sicherheit gefordert, weil ansonsten große Gefahren beispielsweise für Fahrgäste oder andere beteiligte Personen entstehen können. Für viele Prozesse, wie beispielsweise im Stellwerksbereich, sind daher nach geltenden Normen hohe Sicherheitsstufen - SIL (Safety Integrity Level) wie beispielsweise SIL 3 oder SIL 4 gefordert. Bei den heute vielfach im Einsatz befindlichen Computern, die Prozesse der eisenbahntechnischen Anlage steuern, handelt es sich daher oft um sogenannte sichere Rechner. Mit dem Begriff sichere Rechner sind beispielsweise spezielle Industrierechner gemeint, die durch redundante Ausführung eine ausreichende Fehleroffenbarung haben und dadurch die nötigen Sicherheitsanforderungen erfüllen. In der
DE 10 2004 035 901 A1 ist beispielsweise ein solcher sicherer Rechner beschrieben.
-
Zufällig auftretende Speicherfehler, die beispielsweise durch externe Einflüsse, wie zum Beispiel Soft Errors oder durch mangelnde Störabstände in den Speicherbauteilen, ausgelöst werden können, können zu Fehlfunktionen von elektrischen Geräten führen und sind im sicherheitsrelevanten Umfeld einer eisenbahntechnischen Anlage problematisch. Solche zufälligen Speicherfehler wie Bitkipper treten unabhängig von der Nutzung von Speichereinrichtungen statistisch überall in den verwendeten Speichereinrichtungen, beispielsweise RAM Speichern, auf. Daher können diese Speicherfehler sowohl bei hochdynamischen Dateninhalten, konstanten Dateninhalten sowie in ungenutzten Speicherbereichen auftreten. Solche hier gemeinten Speicherfehler sind nicht motiviert durch Defekte in den Speicherbauteilen. Die beschriebenen zufälligen Speicherfehler sind selbstverständlich bereits in der Auslegung einer eisenbahntechnischen Anlage berücksichtigt und werden typischerweise durch den Vergleich von zwei unabhängigen Speichereinrichtungen in unterschiedlichen Kanälen eines Rechners offenbart. Üblicherweise führt ein so erkannter Speicherfehler zur Abschaltung des Systems, weil nicht ohne weiteres bekannt ist, welcher Kanal die korrekten Daten ausweist. Diese Abschaltung führt allerdings zu einer Verfügbarkeitsminimierung eines solchen Zwei-von-Zwei-Systems.
-
Es sind auch Lösungen bekannt, die dieses Problem durch zusätzlichen Hardwareaufwand lösen. So können beispielsweise Schattenspeicher oder sogenannte ECC-Speicher (Error Correcting Code) eingesetzt werden. Diese werden mit jedem Speicherzugriff zusätzlich zu den Daten in zusätzlichen Speicherbits beschrieben und ausgelesen bzw. ausgewertet, so dass ein Fehler erkannt und korrigiert werden kann.
-
Es ist die Aufgabe der vorliegenden Erfindung, ein eingangs genanntes Verfahren zum automatischen Erkennen und Korrigieren von Speicherfehlern bereitzustellen, das keinen zusätzlichen Hardwareaufwand benötigt und trotzdem höchste Sicherheitsanforderungen erfüllt.
-
Für das eingangs genannte Verfahren wird die Aufgabe dadurch gelöst, dass ein erster Prüfwert für Daten eines Teilbereichs der ersten Speichereinrichtung berechnet wird,
ein zweiter Prüfwert für gleiche Daten eines Teilbereichs der zweiten Speichereinrichtung berechnet wird,
der erste und der zweite Prüfwert miteinander verglichen werden,
falls der erste und der zweite Prüfwert unterschiedlich sind, der erste Prüfwert und/oder der zweite Prüfwert mit einem alten Prüfwert verglichen werden,
die Daten des Teilbereichs der ersten Speichereinrichtung durch die Daten des Teilbereichs der zweiten Speichereinrichtung ersetzt werden, wenn der zweite Prüfwert dem alten Prüfwert entspricht und
die Daten des Teilbereichs der zweiten Speichereinrichtung durch die Daten des Teilbereichs der ersten Speichereinrichtung ersetzt werden, wenn der erste Prüfwert dem alten Prüfwert entspricht.
-
Die erfindungsgemäße Lösung hat den Vorteil, dass das Verfahren rein softwarebasiert umgesetzt werden kann und nur ein begrenzter Hardwareaufwand nötig ist. Das erfindungsgemäße Verfahren eignet sich besonders in Zwei-von-Zwei-Systemen, das heißt also in sicheren Rechnern mit genau zwei redundanten Kanälen.
-
Dabei wird der erste Prüfwert für die Daten eines Teilbereichs der ersten Speichereinrichtung berechnet. Unter Prüfwert ist hier beispielsweise ein Hashwert oder eine Prüfsumme zu verstehen, die über die abgespeicherten Daten berechnet werden. Prinzipiell ist jede Art von Prüfsumme verwendbar. Allerdings ist vorteilhaft, dass die Prüfsumme unabhängig von der Datenmenge gegen eine Restfehlerwahrscheinlichkeit konvergiert. Die erste Speichereinrichtung befindet sich in einem ersten Kanal des sicheren Rechners. Ferner wird der zweite Prüfwert für die Daten des entsprechenden Teilbereichs der zweiten Speichereinrichtung berechnet. In diesen Teilbereichen der ersten und zweiten Speichereinrichtung sind im fehlerfreien Zustand die gleichen Daten redundant gespeichert.
-
Anschließend werden der erste und der zweite Prüfwert miteinander verglichen. Falls kein Speicherfehler vorliegt, sollten die Prüfwerte gleich sein. Falls aber der erste und der zweite Prüfwert unterschiedlich sind, werden erfindungsgemäß der erste Prüfwert und/oder der zweite Prüfwert mit dem alten Prüfwert verglichen. Der alte Prüfwert ist beispielsweise ebenfalls in den Speichereinrichtungen jedes Kanals abgespeichert und wurden zu einem früheren Zeitpunkt berechnet.
-
Der alte Prüfwert ist gleich mit ersten und zweiten Prüfwerten zum früheren Zeitpunkt, die als zu nicht verfälschten Daten gehörend erkannt waren. Wenn somit keine Daten verändert wurden, durch gewolltes Ändern oder Speicherfehler, müssen die auf nicht korrumpierten Daten basierenden ersten und zweiten Prüfwerte mit dem alten Prüfwert übereinstimmen. Im Folgenden wird teilweise von fehlerhaften Prüfwerten gesprochen. Damit sind auf verfälschten Daten basierende Prüfwerte gemeint. An sich sind diese sogenannten falschen Prüfwerte aus den ihnen zugrundeliegenden Daten völlig korrekt berechnet. Nur die zugrundeliegenden Daten sind korrumpiert und damit falsch. Durch den Vergleich mit dem alten Prüfwert kann erfindungsgemäß auf sehr einfache Weise erkannt werden, in welcher Speichereinrichtung der Speicherfehler vorliegt und die Daten ersetzt werden müssen.
-
Folglich werden die Daten des Teilbereichs der ersten Speichereinrichtung durch die Daten des Teilbereichs der zweiten Speichereinrichtung ersetzt, wenn der zweite Prüfwert dem alten Prüfwert entspricht. Andererseits werden die Daten des Teilbereichs der zweiten Speichereinrichtung durch die Daten des Teilbereichs der ersten Speichereinrichtung ersetzt, wenn der erste Prüfwert dem alten Prüfwert entspricht. Es wird nur ein alter Prüfwert verwendet, obwohl selbstverständlich ursprünglich ein alter erster Prüfwert und ein alter zweiter Prüfwert vorlagen. Da diese aber als auf korrekten Daten beruhend erkannt wurden, sind sie gleich und können somit als ein einziger alter Prüfwert abgespeichert und verwendet werden.
-
Das erfindungsgemäße Verfahren zeichnet sich dadurch aus, dass es rein durch Software realisiert werden kann und dass es anwendungsunabhängig z.B. durch einen Betriebssystemhintergrundprozess erfolgen kann.
-
Die erfindungsgemäße Lösung kann durch vorteilhafte Ausgestaltungen weiterentwickelt werden, die im Folgenden beschrieben sind.
-
So können die Prüfwerte mittels zyklischer Redundanzprüfung - CRC, insbesondere CRC32, oder durch Hashberechnung bestimmt werden. CRC steht hier für den englischen Begriff Cyclic Redundancy Check, meint also zyklische Redundanzprüfung. Dieses bekannte Verfahren ist hier besonders geeignet, weil es zuverlässig die Integrität von Daten bestätigt und leicht durchgeführt werden kann. Propere CRC Algorithmen sind hier vorteilhaft, weil deren Prüfsumme unabhängig von der Datenmenge gegen eine Restfehlerwahrscheinlichkeit konvergiert. CRC32 ist die 32 Bit-Version, die höhere Anforderungen und damit eine höhere Sicherheit erfüllt. Die alternative Hashberechnung ist weit verbreitet und ermöglicht eine effiziente Berechnung starker Prüfwerte.
-
Um die gesamten Speichereinrichtungen auf Speicherfehler schnell und einfach überprüfen zu können, kann das Verfahren für eine Vielzahl von Teilbereichen der Speichereinrichtung unabhängig voneinander durchgeführt werden. Dies kann auch gleichzeitig geschehen.
-
Ferner kann das Verfahren zyklisch wiederholt werden und, wenn der erste Prüfwert und der zweite Prüfwert im aktuellen Zyklus gleich sind, können diese als alter erster Prüfwert und alter zweiter Prüfwert für den nächsten Zyklus abgespeichert werden. Dies hat den Vorteil, dass die Speichereinrichtungen kontinuierlich auf Speicherfehler überprüft werden und die alten Prüfwerte kontinuierlich abgelegt werden.
-
Um die Wahrscheinlichkeit zu minimieren, dass die Prüfwerte sich aufgrund betriebsbedingter Datenänderung ständig ändern und eine Fehlererkennung unmöglich machen, kann eine Speichergröße der Teilbereiche unter 5%, insbesondere unter 1% der verfügbaren Speichergröße der Speichereinrichtungen liegen. Ziel ist es, die Speichergröße ausreichend klein zu wählen. Es ist hier von Vorteil, die Speichereirichtungen in möglichst viele, relativ kleine Teilbereiche zu unterteilen, in denen jeweils das erfindungsgemäße Verfahren durchgeführt wird. Dadurch wird die Wahrscheinlichkeit erhöht, dass eine Korrektur der Daten ermöglicht wird, weil in den Teilbereichen keine betriebsbedingten Datenänderungen stattfanden.
-
Um die Speichereinrichtungen möglichst einfach auszugestalten, kann der alte Prüfwert in einem Prüfwertspeicher der ersten Speichereinrichtung und/oder in einem Prüfwertspeicher der zweiten Speichereinrichtung gespeichert werden.
-
Die Erfindung betrifft weiterhin einen sicheren mehrkanaligen Rechner für eine eisenbahntechnische Anlage, mit wenigstens einer Speichereinrichtung pro Kanal zum synchronen Speichern von Daten. Erfindungsgemäß ist vorgesehen, dass der Rechner zur Durchführung des Verfahrens nach einer der zuvor genannten Ausführungsformen ausgebildet ist.
-
In einer vorteilhaften Ausgestaltung des erfindungsgemäßen Rechners kann dieser als Teil einer Stellwerkseinrichtung einer eisenbahntechnischen Anlage ausgebildet sein. Alternativ kann der erfindungsgemäße Rechner z.B. auch in Fahrzeugen und anderen sicherheitstechnischen Einrichtungen verwendet werden.
-
Des Weiteren wird ein Computerprogrammprodukt mit Programmbefehlen zur Durchführung des genannten erfindungsgemäßen Verfahrens und/oder dessen Ausführungsbeispielen beansprucht, wobei mittels des Computerprogrammprodukts jeweils das erfindungsgemäße Verfahren und/oder dessen Ausführungsbeispiele durchführbar sind.
-
Darüber hinaus wird eine Bereitstellungsvorrichtung zum Speichern und/oder Bereitstellen des Computerprogrammprodukts beansprucht. Die Bereitstellungsvorrichtung ist beispielsweise ein Datenträger, der das Computerprogrammprodukt speichert und/oder bereitstellt. Alternativ und/oder zusätzlich ist die Bereitstellungsvorrichtung beispielsweise ein Netzwerkdienst, ein Computersystem, ein Serversystem, insbesondere ein verteiltes Computersystem, ein cloudbasiertes Rechnersystem und/oder virtuelles Rechnersystem, welches das Computerprogrammprodukt vorzugsweise in Form eines Datenstroms speichert und/oder bereitstellt.
-
Die Bereitstellung erfolgt beispielsweise als Download in Form eines Programmdatenblocks und/oder Befehlsdatenblocks, vorzugsweise als Datei, insbesondere als Downloaddatei, oder als Datenstrom, insbesondere als Downloaddatenstrom, des vollständigen Computerprogrammprodukts. Diese Bereitstellung kann beispielsweise aber auch als partieller Download erfolgen, der aus mehreren Teilen besteht und insbesondere über ein Peer-to-Peer Netzwerk heruntergeladen oder als Datenstrom bereitgestellt wird. Ein solches Computerprogrammprodukt wird beispielsweise unter Verwendung der Bereitstellungsvorrichtung in Form des Datenträgers in ein System eingelesen und führt die Programmbefehle aus, sodass das erfindungsgemäße Verfahren auf einem Computer zur Ausführung gebracht wird oder das Erstellungsgerät derart konfiguriert, dass dieses das erfindungsgemäße Werkstück erzeugt.
-
Im Folgenden wird die Erfindung mit Bezug auf die beigefügten Zeichnungen erläutert.
-
Es zeigen:
- 1 eine schematische Darstellung einer eisenbahntechnischen Anlage mit einem erfindungsgemäßen sicheren Rechner in einer beispielhaften Ausführungsform;
- 2 eine schematische Darstellung einer beispielhaften Ausführungsform des erfindungsgemäßen Verfahrens, das auf dem Rechner in 1 abläuft.
-
Eine beispielhafte Ausführungsform einer eisenbahntechnischen Anlage 1 in 1 umfasst Fahrzeuge 2, Fahrstrecken 3, Feldelemente 4 und Stellwerkseinrichtungen 5. Der Übersichtlichkeit halber sind in 1 jeweils lediglich ein Beispiel für die genannten unterschiedlichen Komponenten der eisenbahntechnischen Anlage 1 dargestellt.
-
Das in 1 dargestellte Feldelement 4 ist hier beispielsweise ein Lichtsignal. Andere Feldelemente, wie Weichen, Bahnübergänge, Achszähler oder ähnliches können selbstverständlich auch umfasst sein. Das Feldelement 4 in 1 umfasst weiterhin ein Steuerungsmodul 6, das wiederum einen sicheren Rechner 7 umfasst und das von der Steuerungseinrichtung 5 angesteuert wird. Der erfindungsgemäße sichere Rechner 7 könnte alternativ oder zusätzlich auch in anderen Teilen der eisenbahntechnischen Anlage, beispielsweise der Stellwerkseinrichtung 5, eingesetzt sein. Im oberen Teil von 1 ist der sichere Rechner 7 vergrößert dargestellt.
-
Der sichere Rechner 7 ist bei der beispielhaften Ausführungsform in 1 ein sogenanntes Zwei-von-Zwei-System, das heißt, der sichere Rechner 7 umfasst einen ersten Kanal 8 und einen redundanten zweiten Kanal 9. Die zwei Kanäle 8, 9 sind jeweils mit einem Datenbussystem 10 verbunden, die wiederum jeweils mit nicht näher beschriebener Verarbeitungslogik verbunden sind. Die Verarbeitungslogik ist zur Steuerung von Feldelementen 4, wie beispielsweise dem in 1 dargestellten Lichtsignal, ausgebildet.
-
Der erste Kanal 8 und der zweite Kanal 9 des sicheren Rechners 7 umfassen jeweils separate Controller 12. Weiterhin umfasst der erste Kanal 8 eine erste Speichereinrichtung 13 und der zweite Kanal 9 eine zweite Speichereinrichtung 14. Der erste Kanal 8 und der zweite Kanal 9 sind weiterhin über Schnittstellen 15 miteinander verbunden, so dass Daten ausgetauscht und verglichen werden können. Die Speichereinrichtungen 13, 14 sind bei der beispielhaften Ausführungsform in 1 als RAM-Speicher ausgebildet.
-
Um zufällig auftretende Speicherfehler in der ersten Speichereinrichtung 13 oder der zweiten Speichereinrichtung 14 zu erkennen und automatisch zu korrigieren, wird das in 2 schematisch dargestellte und im Folgenden beschriebene erfindungsgemäße Verfahren durchgeführt.
-
Solche Speicherfehler können beispielsweise Bitkipper sein, die beispielsweise durch externe Einflüsse ausgelöst werden können. Die Speicherfehler führen dazu, dass die redundant abgespeicherten Daten in den Speichereinrichtungen 13, 14 nicht mehr komplett gleich sind und zu einem unsicheren Zustand führen können. Durch das erfindungsgemäße Verfahren können solche Speicherfehler erkannt und automatisch korrigiert werden.
-
Die Speichereinrichtungen 13, 14 sind jeweils in viele Teilbereiche aufgeteilt, die mit Hilfe des erfindungsgemäßen Verfahrens separat geprüft werden. Bei der beispielhaften Ausführungsform in den Figuren haben diese Teilbereiche beispielsweise eine Speichergröße von 1024 Byte, was weniger als 1% der verfügbaren Speichergröße der Speichereinrichtungen 13, 14 ist. Andere Speichergrößen sind selbstverständlich auch möglich. Relativ kleine Teilbereiche, bezogen auf die Speichergröße, sind allerdings von Vorteil, weil dadurch im laufenden Betrieb lediglich wenige Teilbereiche vom betriebsbedingten Datenschreiben betroffen sind und die übrigen Bereiche auf Speicherfehler überprüft werden können.
-
In einem ersten in 2 dargestellten Verfahrensschritt 16 wird ein erster Prüfwert 17 für die Daten des Teilbereichs der ersten Speichereinrichtung 13 berechnet. Als Prüfwert kann hier eine Prüfsumme oder ein anhand einer Hashfunktion ermittelter Hashwert angesehen werden. Bei der beispielhaften Ausführungsform in den Figuren wird als Prüfwert eine CRC32 Prüfsumme verwendet. Im nächsten Schritt 18 wird ein zweiter Prüfwert 19 für den entsprechenden redundanten Teilbereich der zweiten Speichereinrichtung 14berechnet. Die Teilbereiche in den Speichereinrichtungen 13, 14 weisen die gleichen Daten auf, wenn kein Speicherfehler vorliegt.
-
Im nächsten Schritt 20 werden der erste Prüfwert 17 und der zweite Prüfwert 19 miteinander verglichen. Um den Vergleich durchführen zu können, ist es gegebenenfalls nötig, dass die Prüfwerte 17, 19 zwischen den Kanälen 8, 9 über die Schnittstellen 15 ausgetauscht werden. Für den Fall, dass der erste und der zweite Prüfwert 17, 19 gleich sind, wurde kein Speicherfehler erkannt und es kann mit Schritt 21 fortgefahren werden. Im Schritt 21 werden der erste Prüfwert 17 als alter erster Prüfwert 22 und der zweite Prüfwert 19 als alter zweiter Prüfwert 23 abgespeichert. Da der erste Prüfwert 17 und der zweite Prüfwert 19 gleich sind, kann auch nur ein alter Prüfwert 22, 23 abgespeichert werden.
-
Danach kann das Verfahren erneut mit Schritt 16 gestartet werden. Das erfindungsgemäße Verfahren kann kontinuierlich durchlaufen werden, um Speicherfehler schnell nach ihrem Auftreten erkennen und beheben zu können.
-
Wenn in Schritt 20 allerdings der Vergleich ergibt, dass der erste Prüfwert 17 und der zweite Prüfwert 19 unterschiedlich sind, ist dadurch ein Speicherfehler erkannt worden. Allerdings ist hierdurch noch nicht klar, in welcher der beiden Speichereinrichtungen 13, 14 der Speicherfehler vorliegt. Um dies zu erkennen und um den Speicherfehler automatisch zu korrigieren, wird das erfindungsgemäße Verfahren mit Schritt 24 fortgeführt.
-
In Schritt 24 wird der erste Prüfwert 17 mit dem abgespeicherten alten Prüfwert 22, 23 verglichen. Gleichzeitig oder alternativ wird der zweite Prüfwert 19 mit dem alten Prüfwert 22, 23 verglichen.
-
Der alte Prüfwert 22, 23 ist aus einem vorherigen Prüfzyklus, bei dem die Prüfwerte 17, 19 gleich waren und somit kein Speicherfehler vorlag, berechnet und abgespeichert worden.
-
Wenn der zweite Prüfwert 19 gleich ist mit dem alten Prüfwert 22, 23, bedeutet dies, dass die Daten im betreffenden Teilbereich der zweiten Speichereinrichtung 14 korrekt sind, also hier kein Speicherfehler vorliegt. In diesem Fall werden die Daten des Teilbereichs der ersten Speichereinrichtung 13, die folglich im Umkehrschluss als die vom Speicherfehler verfälschten Daten erkannt wurden, durch die Daten des Teilereichs der zweiten Speichereinrichtung 14 ersetzt. Dies erfolgt im Schritt 25.
-
Wenn jedoch der erste Prüfwert 17 gleich ist mit dem alten Prüfwert 22, bedeutet dies, dass die Daten der ersten Speichereinrichtung 13 korrekt und ohne Speicherfehler sind. In diesem Fall werden in Schritt 26 die Daten des Teilbereichs der zweiten Speichereinrichtung 14 durch die Daten des Teilbereichs der ersten Speichereinrichtung 13 automatisch ersetzt.
-
Im nächsten Schritt 27 kann das erfindungsgemäße Verfahren beendet bzw. in Schritt 16 erneut gestartet werden. Ein Abspeichern des alten Prüfwerts 22, 23 ist in diesem Fall nicht unbedingt nötig, da er sich gegenüber den vorherigen alten Prüfwert nicht verändert hat.
-
Das beschriebene erfindungsgemäße Verfahren kann parallel für viele oder sogar alle Teilbereiche der Speichereinrichtungen 13, 14 durchgeführt werden.
-
In 1 ist beispielhaft und schematisch auch ein Teilbereich 28 der ersten Speichereinrichtung 13 dargestellt. Selbstverständlich trifft die Darstellung des Teilbereichs 28 auch für die nicht dargestellten Teilbereiche der zweiten Speichereinrichtung 14 zu. Jede Speichereinrichtung 13, 14 umfasst eine Vielzahl von Teilbereichen 28. Für jeden Teilbereich 28 wird in dem sicheren Rechner 7 das erfindungsgemäße Verfahren wie zuvor beschrieben und in 2 dargestellt, unabhängig voneinander durchgeführt.
-
Der Teilbereich 28 ist bei der beispielhaften Ausführungsform in 1 beispielsweise 1024 Byte groß. Der Teilbereich 28 umfasst hierbei einen nutzbaren Speicher 29 und einen Prüfwertspeicher 30. Im nutzbaren Speicher 29 werden die Nutzdaten abgelegt. Unter Nutzdaten sind die normalen im Betrieb des Rechners 7 abzulegenden Daten.
-
Dieses Speichern der Nutzdaten erfolgt wie zuvor schon erwähnt redundant in den Kanälen 8, 9, um die nötige Sicherheit zu gewährleisten. Jeder Teilbereich 28 im ersten Kanal 8 weist also einen Teilbereich 28 im zweiten Kanal 9 auf, in dem die gleichen Nutzdaten abgelegt werden.
-
Im Prüfwertspeicher 30 werden der alte Prüfwert 22 bzw. 23 abgelegt, um diesen für das erfindungsgemäße Verfahren nutzen zu können. Dies hat den Vorteil, dass kein anderer Speicherort für das Ablegen des alten Prüfwerts 22, 23 nötig ist.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- DE 102004035901 A1 [0002]