-
Bestimmte Ausführungsformen der Erfindung beziehen sich auf das Bereitstellen von diagnostischer Absicherung in Rechnersystemen und -verfahren. Insbesondere beziehen sich bestimmte Ausführungsformen der Erfindung auf Direkt-Speicherzugriffs-Betrieb mit hoher Integrität für hohe diagnostische Fehlerabsicherung für sicherheitskritische Operationen, die von Rechnersystemen und -verfahren durchgeführt werden.
-
Moderne elektronische Steuereinheiten (Electronic Control Units (ECUs)) im Fahrzeugbereich integrieren immer mehr Funktionalität. Dieser Trend wird durch Technikskalierung angetrieben, die ein hohes Maß an Integration ermöglicht, sowie durch Kostenerwägungen in einer hart umkämpften Kraftfahrzeugindustrie, die eine Verringerung der Gesamtanzahl von ECUs pro Kraftfahrzeug erzwingen. Beim Bereitstellen von hochentwickelten Fahrerassistenzfunktionen, und insbesondere beim Verhindern von Gefahren zur Reduzierung der Anzahl tödlicher Unfälle wird die Elektronik zunehmend wichtig.
-
Im Zusammenhang mit Sicherheitsanwendungen wurden Mikrocontroller von ECUs, die sicherheitsrelevante Funktionen haben, mit redundanten Hardwarestrukturen entwickelt. Obwohl aktuelle Submikron-Techniken (65 nm und darunter) den Flächenüberhang ermöglichen können, der zum Implementieren redundanter Hardwarestrukturen erforderlich ist, ist der Energieverbrauch der hauptsächliche einschränkende Faktor beim Verwirklichen solcher redundanter Strukturen in der Praxis. Hardwarestruktur-Redundanz ist nicht nur der aktuelle Stand der Technik für CPUs, sondern wird manchmal auch auf Funktionen erweitert, die von Unterbrechungs-Controllern und Direkt-Speicherzugriffs (Direct Memory Access(DMA))-Engines durchgeführt werden. DMA-Engines spielen bei vielen Sicherheitsanwendungen eine Schlüsselrolle, insbesondere bei der Erfassung sicherheitsbezogener Informationen.
-
Es wäre erwünscht, eine optimale Verwendung von DMA-Hardware-Ressourcen bereitzustellen, indem bestehende Hardware-Redundanzen ausgenutzt werden, um einen Betriebsmodus mit hoher Integrität auf Anforderung bereitzustellen, wobei mehrere DMA-Ressourcen nicht nur gleichzeitig verwendet werden können, sondern deren Datenressourcen auf DMA-Ebene geprüft werden können.
-
Gemäß einer Ausführungsform der Erfindung umfasst ein Verfahren für Direkt-Speicherzugriffs (Direct Memory Access(DMA))-Betrieb das Empfangen von DMA-Anforderern, das Zuteilen der empfangenen DMA-Anforderer zu einer oder mehreren einer Vielzahl von DMA-Engines zur Verarbeitung der empfangenen DMA-Anforderer, und, wenn einer der empfangenen DMA-Anforderer ein Sicherheits-Anforderer ist, das Zuteilen des Sicherheits-Anforderers zu wenigstens zwei DMA-Engines der Vielzahl von DMA-Engines zur Verarbeitung des Sicherheits-Anforderers, das Deaktivieren einer Busschnittstelle, die an wenigstens eine DMA-Engine der wenigstens zwei DMA-Engines gekoppelt ist, und das Vergleichen der Ausgänge der wenigstens zwei DMA-Engines. Die Vielzahl von DMA-Engines kann an die Busschnittstelle gekoppelt sein, und die Busschnittstelle kann an einen oder mehrere Speicher gekoppelt sein.
-
Bei einer Ausführungsform umfasst das Verfahren das Erzeugen einer Fehlermeldung, wenn der Vergleich der Ausgänge der wenigstens zwei DMA-Engines ein unterschiedliches Ergebnis ergibt, und das nachfolgende Warnen eines Benutzers einer Anwendung, die mit dem DMA-Betrieb verbunden ist (z. B. durch Verwenden), hinsichtlich eines Anwendungsfehlers, basierend auf der Fehlermeldung.
-
Gemäß einer weiteren Ausführungsform der Erfindung weist ein System wenigstens einen Prozessorkern, wenigstens einen Speicher, der an den wenigstens einen Prozessorkern gekoppelt ist, und eine Direkt-Speicherzugriffs (DMA)-Einheit auf.
-
Bei einer Ausführungsform weist die DMA-Einheit eine Busschnittstelle auf, die an den wenigstens einen Speicher gekoppelt ist, eine Vielzahl von DMA-Engines, die an die Busschnittstelle gekoppelt ist, eine Anforderer-Arbitrierungseinheit, die an die Vielzahl von DMA-Engines gekoppelt ist, eine Synchronisierungseinheit, die an die Anforderer-Arbitrierungseinheit, die Vielzahl von DMA-Engines und die Busschnittstelle gekoppelt ist, und eine DMA-Vergleichseinrichtung, die an die Synchronisierungseinheit und die Vielzahl von DMA-Engines gekoppelt ist.
-
Bei einer weiteren Ausführungsform ist die Anforderer-Arbitrierungseinheit dazu konfiguriert, DMA-Anforderer zu empfangen und die empfangenen DMA-Anforderer einer oder mehreren der Vielzahl von DMA-Engines zur Verarbeitung der empfangenen DMA-Anforderer zuzuteilen, und die Synchronisierungseinheit ist dazu konfiguriert zu ermitteln, ob einer der empfangenen DMA-Anforderer ein Sicherheits-Anforderer ist. Wenn einer der empfangenen DMA-Anforderer ein Sicherheits-Anforderer ist, ist die Synchronisierungseinheit des Weiteren dazu konfiguriert, wenigstens zwei DMA-Engines der Vielzahl von DMA-Engines zur Verarbeitung des Sicherheits-Anforderers auszuwählen, die Busschnittstelle, die an wenigstens eine DMA-Engine der wenigstens zwei DMA-Engines gekoppelt ist, zu deaktivieren, und die DMA-Vergleichseinrichtung zu aktivieren, um die Ausgänge der wenigstens zwei DMA-Engines zu vergleichen.
-
Gemäß einer weiteren Ausführungsform weist das System des Weiteren ein oder mehrere Peripheriegeräte auf, und die DMA-Anforderer weisen Parameter auf, die die eine oder mehrere der DMA-Engines aktivieren, um Datenübertragungen zwischen dem einen oder mehreren Peripheriegeräten und dem wenigstens einen Speicher, oder zwischen dem wenigstens einen Speicher durchzuführen.
-
Bei einer anderen Ausführungsform ist die DMA-Vergleichseinrichtung dazu konfiguriert, eine Fehlermeldung zu erzeugen, wenn die Ausgänge der wenigstens zwei DMA-Engines voneinander verschieden sind, und der wenigstens eine Prozessorkern ist dazu konfiguriert, einen Benutzer einer Anwendung, die von dem wenigstens einen Prozessorkern durchgeführt wird, basierend auf der Fehlermeldung hinsichtlich eines Anwendungsfehlers zu warnen.
-
Gemäß einem Aspekt wird ein Verfahren für Direkt-Speicherzugriffs (Direct Memory Access(DMA))-Betrieb zur Verfügung gestellt, das umfasst:
Empfangen von DMA-Anforderern;
Zuteilen der empfangenen DMA-Anforderer zu einer oder mehreren einer Vielzahl von DMA-Engines zur Verarbeitung der empfangenen DMA-Anforderer, wobei die Vielzahl von DMA-Engines an eine Busschnittstelle gekoppelt ist, und wobei die Busschnittstelle an eine oder mehrere Speichereinheiten gekoppelt ist; und
wenn einer der empfangenen DMA-Anforderer ein Sicherheits-Anforderer ist:
Zuteilen des Sicherheits-Anforderers zu wenigstens zwei DMA-Engines der Vielzahl von DMA-Engines zur Verarbeitung des Sicherheits-Anforderers;
Deaktivieren der Busschnittstelle, die an wenigstens eine DMA-Engine der wenigstens zwei DMA-Engines gekoppelt ist, und
Vergleichen der Ausgänge der wenigstens zwei DMA-Engines.
-
Vorteilhaft umfasst das Zuteilen des Sicherheits-Anforderers zu wenigstens zwei DMA-Engines das Auswählen einer ersten DMA-Engine einer Vielzahl von DMA-Engines als Haupt-DMA-Engine zur Verarbeitung des Sicherheits-Anforderers und das Auswählen einer zweiten DMA-Engine der Vielzahl von DMA-Engines als Prüf-DMA-Engine zur Verarbeitung des Sicherheits-Anforderers, wobei das Deaktivieren der Busschnittstelle das Deaktivieren der Busschnittstelle der Prüf-DMA-Engine umfasst, und wobei das Vergleichen der Ausgänge das Vergleichen der Ausgänge der Haupt-DMA-Engine und der Prüf-DMA-Engine umfasst.
-
Vorteilhaft umfasst das Verfahren des Weiteren, wenn der Vergleich der Ausgänge der Haupt-DMA-Engine und der Prüf-DMA-Engine ein unterschiedliches Ergebnis ergibt, das Erzeugen einer Fehlermeldung.
-
Vorteilhaft umfasst das Verfahren des Weiteren das Warnen eines Benutzers einer Anwendung, die mit dem DMA-Betrieb verbunden ist, hinsichtlich eines Anwendungsfehlers, basierend auf der Fehlermeldung.
-
Vorteilhaft umfasst das Verfahren des Weiteren das Synchronisieren der Haupt-DMA-Engine und der Prüf-DMA-Engine zum synchronen Verarbeiten des Sicherheits-Anforderers, und wobei das Vergleichen der Ausgänge das Vergleichen der Ausgänge der Haupt-DMA-Engine und der Prüf-DMA-Engine zu jedem Taktzyklus umfasst.
-
Vorteilhaft weisen die DMA-Anforderer einen oder mehrere Parameter auf, die die eine oder mehrere der Vielzahl von DMA-Engines aktivieren, um Datenübertragungen zwischen Speichern durchzuführen.
-
Gemäß einem Aspekt wird ein System bereitgestellt, das aufweist:
wenigstens einen Prozessorkern;
wenigstens einen Speicher, der an den wenigstens einen Prozessorkern gekoppelt ist; und
eine Direkt-Speicherzugriffs (Direct Memory Access(DMA))-Einheit, die aufweist:
eine Busschnittstelle, die an den wenigstens einen Speicher gekoppelt ist;
eine Vielzahl von DMA-Engines, die an die Busschnittstelle gekoppelt sind;
eine Anforderer-Arbitrierungseinheit, die an die Vielzahl von DMA-Engines gekoppelt ist, wobei die Anforderer-Arbitrierungseinheit dazu konfiguriert ist, DMA-Anforderer zu empfangen und die empfangenen DMA-Anforderer einer oder mehreren der Vielzahl von DMA-Engines zur Verarbeitung der empfangenen DMA-Anforderer zuzuteilen;
eine Synchronisierungseinheit, die an die Anforderer-Arbitrierungseinheit, die Vielzahl von DMA-Engines und die Busschnittstelle gekoppelt ist; und
eine DMA-Vergleichseinrichtung, die an die Synchronisierungseinheit und die Vielzahl von DMA-Engines gekoppelt ist, wobei die Synchronisierungseinheit konfiguriert ist zum:
Ermitteln, ob einer der empfangenen DMA-Anforderer ein Sicherheits-Anforderer ist; und
wenn einer der empfangenen DMA-Anforderer ein Sicherheits-Anforderer ist, Auswählen von wenigstens zwei DMA-Engines der Vielzahl von DMA-Engines zur Verarbeitung des Sicherheits-Anforderers, Deaktivieren der Busschnittstelle, die an wenigstens eine DMA-Engine der wenigstens zwei DMA-Engines gekoppelt ist, und Aktivieren der DMA-Vergleichseinrichtung, um die Ausgänge der wenigstens zwei DMA-Engines zu vergleichen.
-
Vorteilhaft ist die Synchronisierungseinheit dazu konfiguriert, eine erste DMA-Engine einer Vielzahl von DMA-Engines als Haupt-DMA-Engine zur Verarbeitung des Sicherheits-Anforderers auszuwählen, eine zweite DMA-Engine der Vielzahl von DMA-Engines als Prüf-DMA-Engine zur Verarbeitung des Sicherheits-Anforderers auszuwählen, die Busschnittstelle der Prüf-DMA-Engine zu deaktivieren, und die DMA-Vergleichseinrichtung zu aktivieren, um die Ausgänge der Haupt-DMA-Engine und der Prüf-DMA-Engine zu vergleichen.
-
Vorteilhaft ist die DMA-Vergleichseinrichtung dazu konfiguriert, eine Fehlermeldung zu erzeugen, wenn die Ausgänge der Haupt-DMA-Engine und der Prüf-DMA-Engine sich voneinander unterscheiden.
-
Vorteilhaft ist der wenigstens eine Prozessorkern dazu konfiguriert, einen Benutzer einer Anwendung, die von dem wenigstens einen Prozessorkern ausgeführt wird, hinsichtlich eines Anwendungsfehlers basierend auf der Fehlermeldung zu warnen.
-
Vorteilhaft ist die Synchronisierungseinheit dazu konfiguriert, die Haupt-DMA-Engine und die Prüf-DMA-Engine zum synchronen Verarbeiten des Sicherheits-Anforderers zu synchronisieren, und wobei die DMA-Vergleichseinrichtung dazu konfiguriert ist, die Ausgänge der Haupt-DMA-Engine und der Prüf-DMA-Engine zu jedem Taktzyklus zu vergleichen.
-
Vorteilhaft weisen die DMA-Anforderer einen oder mehrere Parameter auf, welche die eine oder die mehreren der Vielzahl von DMA-Engines aktivieren, um Datenübertragungen zwischen dem wenigstens einen Speicher durchzuführen.
-
Vorteilhaft weist das System des Weiteren ein oder mehrere Peripheriegeräte auf, und wobei die DMA-Anforderer Parameter aufweisen, die die eine oder mehrere der Vielzahl von DMA-Engines aktivieren, um Datenübertragungen zwischen dem einen oder mehreren Peripheriegeräten und dem wenigstens einen Speicher durchzuführen.
-
Vorteilhaft weisen der wenigstens eine Prozessorkern, der wenigstens eine Speicher und die DMA-Einheit Komponenten eines Mikrocontrollers auf.
-
Gemäß einem Aspekt wird ein System bereitgestellt mit:
einer Einrichtung zum Empfangen von DMA-Anforderern;
einer Einrichtung zum Zuteilen der empfangenen DMA-Anforderer zu einer oder mehreren einer Vielzahl von DMA-Engines zur Verarbeitung der empfangenen DMA-Anforderer, wobei die Vielzahl von DMA-Engines an eine Busschnittstelle gekoppelt ist, und wobei die Busschnittstelle an eine oder mehrere Speichereinheiten gekoppelt ist; und
wenn einer der empfangenen DMA-Anforderer ein Sicherheits-Anforderer ist:
einer Einrichtung zum Zuteilen des Sicherheits-Anforderers zu wenigstens zwei DMA-Engines der Vielzahl von DMA-Engines zur Verarbeitung des Sicherheits-Anforderers;
einer Einrichtung zum Deaktivieren der Busschnittstelle, die an wenigstens eine DMA-Engine der wenigstens zwei DMA-Engines gekoppelt ist; und
einer Einrichtung zum Vergleichen der Ausgänge der wenigstens zwei DMA-Engines.
-
Vorteilhaft weist die Einrichtung zum Zuteilen des Sicherheits-Anforderers zu wenigstens zwei DMA-Engines eine Einrichtung zum Auswählen einer ersten DMA-Engine einer Vielzahl von DMA-Engines als Haupt-DMA-Engine zur Verarbeitung des Sicherheits-Anforderers auf, und eine Einrichtung zum Auswählen einer zweiten DMA-Engine der Vielzahl von DMA-Engines als Prüf-DMA-Engine zur Verarbeitung des Sicherheits-Anforderers, wobei die Einrichtung zum Deaktivieren der Busschnittstelle eine Einrichtung zum Deaktivieren der Busschnittstelle der Prüf-DMA-Engine aufweist, und wobei die Einrichtung zum Vergleichen der Ausgänge eine Einrichtung zum Vergleichen der Ausgänge der Haupt-DMA-Engine und der Prüf-DMA-Engine aufweist.
-
Vorteilhaft weist das System, wenn der Vergleich der Ausgänge der Haupt-DMA-Engine und der Prüf-DMA-Engine ein unterschiedliches Ergebnis ergibt, des Weiteren das Erzeugen einer Fehlermeldung auf.
-
Vorteilhaft weist das System des Weiteren eine Einrichtung zum Warnen eines Benutzers einer Anwendung, die mit dem DMA-Betrieb verbunden ist, hinsichtlich eines Anwendungsfehlers auf, basierend auf der Fehlermeldung.
-
Vorteilhaft weist das System des Weiteren eine Einrichtung zum Synchronisieren der Haupt-DMA-Engine und der Prüf-DMA-Engine zum synchronen Verarbeiten des Sicherheits-Anforderers auf, und wobei die Einrichtung zum Vergleichen der Ausgänge eine Einrichtung zum Vergleichen der Ausgänge der Haupt-DMA-Engine und der Prüf-DMA-Engine zu jedem Taktzyklus aufweist.
-
Vorteilhaft weisen die DMA-Anforderer einen oder mehrere Parameter auf, die die eine oder mehrere der Vielzahl von DMA-Engines aktivieren, um Datenübertragungen zwischen Speichern durchzuführen.
-
Diese und weitere Vorteile, Aspekte und neuartigen Merkmale der vorliegenden Erfindung sowie Einzelheiten einer erläuterten Ausführungsform werden durch die folgende Beschreibung und die Zeichnungen besser verstanden.
-
KURZE BESCHREIBUNG MEHRERER ANSICHTEN DER ZEICHNUNGEN
-
1 ist ein schematisches Diagramm einer typischen DMA-Architektur;
-
2 ist ein schematisches Diagramm eines Systems für Zweimoden-DMA-Betrieb gemäß einer Ausführungsform der Erfindung; und
-
3 ist ein schematisches Diagramm der in 2 gezeigten DMA-Einheit gemäß einer Ausführungsform der Erfindung.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
Computer, Mikrocontroller und Mikroprozessoren weisen typischerweise Direkt-Speicherzugriff (Direct Memory Access (DMA)) auf, der es bestimmten Hardwarekomponenten in diesen Vorrichtungen ermöglicht, für Datenlese- und -schreibaufgaben auf den Speicher der Vorrichtung zuzugreifen. Der DMA ermöglicht, dass diese Aufgaben ausgeführt werden, ohne dass die Hardware direkt auf einen Zentralrechner (Central Processing Unit (CPU)) zugreifen muss. DMA ist dann nützlich, wenn zum Beispiel eine CPU nicht mit der Rate der Datenübertragung Schritt halten kann, oder wenn die CPU nützliche Arbeit verrichten könnte, während sie auf eine relativ langsame E/A-Datenübertragung warten muss.
-
1 ist ein schematisches Diagramm einer typischen DMA-Architektur 100. Komponenten der DMA-Architektur 100 weisen eine Anforderer-Arbitrierungseinheit 102, eine oder mehrere DMA-Engines 104, eine DMA-Konfigurationseinheit 106 und eine Busschnittstelle 108 auf.
-
Die DMA-Architektur 100 ist dazu konfiguriert, DMA-Speicheroperationen durchzuführen, wie zum Beispiel Bereitstellen von Direkt-Lese-Schreib-Zugriff zu einem (nicht gezeigten) Speicher für Hardwarekomponenten eines Systems, in dem die DMA-Architektur 100 eingebettet ist. Im Betrieb können DMA-Anforderer über die Anforderer-Arbitrierungseinheit 102 entweder statisch oder dynamisch jeder der DMA-Engines 104 zugeteilt werden. Jede der DMA-Engines 104 ist mit On-Chip-Bussen 110 verbunden, um Lade-(d. h. Lese-) und Speicher-(d. h. Schreib-)Anfrageoperationen zu ermöglichen. Die Busschnittstelle 108 vermittelt Lade-/Speicher-Anforderungen an die On-Chip-Busse 110. Die DMA-Konfigurationseinheit 106 konfiguriert die DMA-Engines 104 typischerweise während der Codeinitialisierung. Die DMA-Engines 104 können zum Beispiel dazu konfiguriert sein, Daten zu bewegen, während ein (nicht gezeigter) Prozessorkern andere grundlegende Verarbeitungsaufgaben durchführt.
-
2 ist ein schematisches Diagramm eines Systems 200 für Zweimoden-DMA-Betrieb gemäß einer Ausführungsform der Erfindung. Das System 200 weist einen Zentralrechner (Central Processing Unit (CPU)) 202 auf, der auch als Prozessorkern bezeichnet werden kann, einen internen Speicher (Mem) 204, eine Direkt-Speicherzugriffs (Direct Memory Access(DMA))-Einheit 206, optionale interne Peripheriegeräte 208, ein optionales externes Peripheriegerät 210, einen externen Speicher (Mem) 212, einen ersten Bus 214 und einen zweiten Bus 216. Der Umfang der vorliegenden Erfindung umfasst eine beliebige Anzahl interner/externer Speicher, eine beliebige Anzahl interner/externer Peripheriegeräte, eine beliebige Anzahl von Prozessorkernen, und eine beliebige Anzahl von Daten-/Adress-/Steuerbussen. Bei einer Ausführungsform der Erfindung ist das System 200 ein Mikrocontroller, der andere herkömmliche (nicht gezeigte) Mikrocontroller-Hardwarekomponenten aufweisen kann, die dem Fachmann bekannt sind. Bei anderen Ausführungsformen kann das System 200 ein Computer oder ein Mikroprozessor sein.
-
Bei einer Ausführungsform kann der interne Speicher 204 einen Speicher aufweisen, der intern in der CPU 202 vorliegt (z. B. CPU Register), und/oder kann Speicher mit unterschiedlichen Größen, Zugriffsgeschwindigkeiten und Betriebsgeschwindigkeiten aufweisen, je nach Art des Speichers und der Entfernung, die der Speicher physikalisch vom Prozessorkern 202 beabstandet ist. Die optionalen Peripheriegeräte 208 und 210 können zusätzliche Hardwarekomponenten darstellen, die für Rechner- und Steuersysteme typisch sind. Wie gezeigt ist, können die optionalen Peripheriegeräte und Speicher außerhalb oder innerhalb dieser Systeme vorliegen. Wie dem Fachmann bekannt ist, können die Busse des Systems 200 Steuer-, Daten- und Adresssignale tragen.
-
Im Betrieb, und gemäß einer Ausführungsform der Erfindung, kann der Prozessorkern 202 die DMA-Einheit 206 anweisen, Datenübertragungen zwischen internen Speichern, externen Speichern und den optionalen Peripheriegeräten durchzuführen. Auf diese Weise kann die DMA-Einheit 206 den Prozessorkern 202 von der Durchführung dieser Datenübertragungen befreien. Bei einer anderen Ausführungsform der Erfindung ist die DMA-Einheit 206 dazu konfiguriert, zwischen einem Standard-Betriebsmodus und einem Betriebsmodus mit hoher Integrität (d. h. einem redundanten Betriebsmodus) zu wechseln.
-
Im Standard-Betriebsmodus empfängt die DMA-Einheit 206 einen oder mehrere DMA-Anforderer von den Speichern 204 und/oder 212, zum Beispiel im Ansprechen auf einen Befehl von der CPU 202 und/oder einen Befehl von einem oder mehreren der optionalen Peripheriegeräte 208 und/oder 210. Bei einer anderen Ausführungsform empfängt die DMA-Einheit 206 einen oder mehrere DMA-Anforderer direkt von der CPU 202 und/oder von einem oder mehreren der optionalen Peripheriegeräte 208 und/oder 210.
-
Bei einer Ausführungsform können die DMA-Anforderer eine oder mehrere aufweisen von Adressen von Quellen- und/oder Zielspeicherorten, Adressen nachfolgender Anforderer, Steuerinformationen (z. B. Aktivierungsanforderungen, CPU-Unterbrechungen und Dimensionalität (1D, 2D, 3D) der Kernprozessoraufgabe), Anzahl von Bytes pro Datenübertragung, und Richtung der Datenübertragung (z. B. Lese-(Lade-) oder Schreib-(Speicher-)Anfrage). Die DMA-Einheit 206 führt dann Datenübertragungen zwischen einer beliebigen Kombination von internen Speichern 204, externen Speichern 212, internen Peripheriegeräten 208, externen Peripheriegeräten 210 und/oder Registern beliebiger der Systemkomponenten (z. B. Registern der CPU 202) basierend auf den empfangenen DMA-Anforderern durch.
-
Die DMA-Einheit 206 kann auch einen oder mehrere DMA-Anforderer empfangen, die Sicherheits-Anforderer genannt werden. Bei einer Ausführungsform der Erfindung löst der Empfang eines Sicherheits-Anforderers durch die DMA-Einheit 206 aus, dass die DMA-Einheit 206 in einem Betriebsmodus mit hoher Integrität (d. h. einem redundanten Betriebsmodus) arbeitet. Wenn die DMA-Einheit 206 zum Beispiel zunächst im Standard-Betriebsmodus arbeitet, löst der Empfang eines DMA-Anforderers, der ein Sicherheits-Anforderer ist, aus, dass der DMA-Anforderer 206 in den redundanten Betriebsmodus wechselt.
-
Bei einer Ausführungsform der Erfindung arbeitet die DMA-Einheit 206 im redundanten Betriebsmodus, um hohe diagnostische Fehlerabsicherung sicherheitskritischer Informationen (z. B. Daten) bereitzustellen, die während der Ausführung sicherheitskritischer Aufgaben durch die CPU 202 und/oder eines oder mehrere der Peripheriegeräte 208 und 210 erzeugt oder verwendet werden. Der redundante Betriebsmodus wird weiter unten in Zusammenhang mit 3 detaillierter beschrieben.
-
3 ist ein schematisches Diagramm der in 2 dargestellten DMA-Einheit 206 gemäß einer Ausführungsform der Erfindung. Die DMA-Einheit 206 weist eine Anforderer-Arbitrierungseinheit 302, eine oder mehrere DMA-Engines 304, eine DMA-Konfigurationseinheit 306, eine Busschnittstelle 308, eine Synchronisierungseinheit 310 und eine DMA-Vergleichseinrichtung 312 auf. Die Anforderer-Arbitrierungseinheit 302, die eine oder die mehreren DMA-Engines 304 und die DMA-Konfigurationseinheit 306 können ähnlich der entsprechenden, in 1 gezeigten, Komponenten sein.
-
Bei einer Ausführungsform weist die Busschnittstelle 308 unabhängig steuerbare DMA-Engine-Schnittstellen auf. Die Busschnittstelle 308 weist zum Beispiel drei unabhängig steuerbare DMA-Engine-Schnittstellen zum Koppeln mit drei DMA-Engines 304 auf. Um die Darstellung zu vereinfachen, zeigt 3 nur eine dieser Schnittstellen (d. h. die zweite DMA-Engine-Schnittstelle 314 der Busschnittstelle 308 zum unabhängigen Koppeln mit der zweiten DMA-Engine 304).
-
Bei einem Standard-Betriebsmodus empfängt die Anforderer-Arbitrierungseinheit 302 einen oder mehrere DMA-Anforderer. Die Anforderer-Arbitrierungseinheit 302 empfängt einen oder mehrere DMA-Anforderer von den Speichern 204 und/oder 212 (2), beispielsweise im Ansprechen auf einen Befehl von der CPU 202 (2) und/oder einen Befehl von einem oder mehreren der optionalen Peripheriegeräte 208 und/oder 210 (2). Bei einer anderen Ausführungsform empfängt die Anforderer-Arbitrierungseinheit 302 einen oder mehrere DMA-Anforderer direkt von der CPU 202 (2) und/oder von einem oder mehreren der optionalen Peripheriegeräte 208 und/oder 210 (2).
-
Die DMA-Arbitrierungseinheit 302 ist dazu konfiguriert, die empfangenen DMA-Anforderer an eine oder mehrere der DMA-Engines 304 zu vermitteln. Bei einer Ausführungsform können eine oder mehrere der DMA-Engines einen (nicht gezeigten) Adressbus, einen (nicht gezeigten) Datenbus und (nicht gezeigte) Steuerregister aufweisen, wie dem Fachmann bekannt ist. Die DMA-Engines 304 können Zugriff auf eine beliebige Speicherressource anfordern, egal, ob die Speicherressource intern oder extern zu einem beliebigen System (z. B. System 200, 2) vorliegt, in dem die DMA-Einheit 206 integriert ist, oder ob die Speicherressource zu anderen Hardwarekomponenten des Systems zugehörig ist, zum Beispiel zu den Peripheriegeräten 208 und 210 (2), oder ob nur durch die anderen Hardwarekomponenten auf sie zugegriffen werden kann. Die DMA-Engines 304 können auch Unterbrechungen erzeugen (zum Beispiel, um einem Kernprozessor (z. B. der CPU 202, 2) zu signalisieren, dass die Datenübertragung abgeschlossen ist), ohne einen Prozessor zu benötigen, um anderweitig bei der Datenübertragung zu helfen.
-
Bei einer Ausführungsform erzeugen eine oder mehrere der DMA-Engines 304 Lese- und/oder Schreibanfragen (d. h. Lade-/Speicher-Anfragen) basierend auf den empfangenen DMA-Anforderern, und die Busschnittstelle 308 vermittelt die Lade-/Speicher-Anfragen der DMA-Engine dann an On-Chip-Busse 214 und/oder 216. Die On-Chip-Busse sind die Steuer-/Adress-/Daten-Busse, die die DMA-Einheit 206 an andere Komponenten (z. B. Speicher, CPUs und/oder Peripheriegeräte) und/oder an (nicht gezeigte) E/A-Ports zum Koppeln an externe Komponenten über externe Busleitungen koppeln.
-
Bei einer Ausführungsform werden eine oder mehrere der DMA-Engines 304 gleichzeitig betrieben. Bei einer anderen Ausführungsform wird jeweils nur eine DMA-Engine 304 betrieben. Bei einer anderen Ausführungsform kann jede DMA-Engine 304 zu einem einzigen Peripheriegerät oder einem einzigen Prozessorkern gehören. Bei einer noch weiteren Ausführungsform kann eine Vielzahl der DMA-Engines 304 zu einem einzigen Prozessorkern gehören.
-
Bei einer anderen Ausführungsform der vorliegenden Erfindung ist die DMA-Einheit 206 dazu konfiguriert, DMA-Operationen in einem redundanten Modus (d. h. mit hoher Integrität) durchzuführen, wenn sicherheitskritische Aufgaben ausgeführt und sicherheitskritische Daten erzeugt oder verwendet werden. Bei einer Ausführungsform des redundanten Betriebsmodus wird die diagnostische Absicherung sicherheitskritischer Daten so definiert, dass sie ISO-Standards für Sicherheits-Mikrocontroller und/oder IEC-Standards für industrielle Mikrocontroller entspricht. Der Umfang der vorliegenden Erfindung deckt jedoch auch andere Arten regionaler und/oder globaler Standards für die diagnostische Absicherung von Daten ab, egal, ob solche Daten mit sicherheitskritischen Aufgaben verbunden sind oder nicht.
-
Bei einer Ausführungsform der Erfindung kann die DMA-Einheit 206 dazu ausgelegt sein, vom Durchführen von DMA-Operationen in einem Standard-Modus (d. h. nicht redundant) zum Durchführen von DMA-Operationen in einem redundanten Modus nach Empfang eines Sicherheits-Anforderers durch die Anforderer-Arbitrierungseinheit 302 zu wechseln. Ein Sicherheits-Anforderer kann eine spezielle Art von DMA-Anforderer sein, der einen oder mehrere der Parameter der DMA-Anforderer aufweist, und der zusätzlich Informationen aufweist, die die DMA-Einheit 206 benachrichtigen, dass eine sicherheitskritische Aufgabe von einem oder mehreren der Peripheriegeräte 208 und/oder 210 und/oder dem Prozessorkern 202 ausgeführt wird. Eine sicherheitskritische Aufgabe weist die Übertagung sicherheitskritischer Daten zwischen einer beliebigen Kombination von internen Speichern 204, externen Speichern 212, internen Peripheriegeräten 208, externen Peripheriegeräten 210 und/oder Registern beliebiger der Systemkomponenten (z. B. Register der CPU 202) basierend auf dem einen oder den mehreren empfangenen Sicherheits-Anforderern auf.
-
In einer beispielhaften Ausführungsform des Betriebs kann die DMA-Einheit 206 zunächst im Standard-Betriebsmodus arbeiten und DMA-Anforderer wie oben beschrieben empfangen. Der Empfang eines DMA-Anforderers, der Sicherheits-Anforderer genannt wird, durch die Anforderer-Arbitrierungseinheit 302 löst jedoch aus, dass die DMA-Einheit 206 vom Standard-Betriebsmodus in einen (redundanten) Betriebsmodus mit hoher Integrität wechselt. Nach Empfang des Sicherheits-Anforderers teilt die Anforderer-Arbitrierungseinheit 302 den Sicherheits-Anforderer einer ersten DMA-Engine 304 zur Verarbeitung zu. Die erste DMA-Engine 304 kann eine beliebige der DMA-Engines sein, oder kann eine DMA-Engine sein, von der vorher festgelegt wurde, dass sie die Sicherheits-Anforderer zugeteilt bekommt. Bei einer Ausführungsform teilt die Anforderer-Arbitrierungseinheit 302 den Sicherheits-Anforderer einer DMA-Engine zu, die gegenwärtig im Leerlauf ist, und bei einer anderen Ausführungsform teilt die Anforderer-Arbitrierungseinheit 302 den Sicherheits-Anforderer einer DMA-Engine zu, die die geringste Anzahl von Fehlersignalen hat, die zum Beispiel fehlerhafte Register oder andere Hardwarekomponenten anzeigen können. Die erste DMA-Engine 304, die zum Verarbeiten des empfangenen Sicherheits-Anforderers vorgesehen ist, wird auch als Haupt-DMA-Engine bezeichnet. Bei einer Ausführungsform erkennt die Haupt-DMA-Engine nach Empfang des Sicherheits-Anforderers, dass eine sicherheitskritische Aufgabe bevorsteht und wartet somit auf ein Startsignal von der Synchronisierungseinheit 310. Beim Warten auf das Startsignal kann die Haupt-DMA-Engine entweder alle gegenwärtig laufenden Datenübertragungen beenden oder alle gegenwärtig laufenden Datenübertragungen fertigstellen.
-
Bei einer anderen Ausführungsform sendet die Anforderer-Arbitrierungseinheit 302 der Synchronisierungseinheit 310 Sicherheits-Anforderer-Informationen, die zu dem empfangenen Sicherheits-Anforderer gehören, und die der Synchronisierungseinheit 310 anzeigen, dass die Anforderer-Arbitrierungseinheit 302 einen Sicherheits-Anforderer empfangen hat und den Sicherheits-Anforderer einer bestimmten DMA-Engine zugeteilt hat.
-
Nach Erhalt der Sicherheits-Anforderer-Informationen oder nach Erhalt des Sicherheits-Anforderers über die Anforderer-Arbitrierungseinheit 302 sendet die Synchronisierungseinheit 310 bei einer Ausführungsform der Erfindung eine Bestätigungsanfrage an die anderen DMA-Engines 304. Die anderen DMA-Engines 304 sind dazu konfiguriert, mit einer Bestätigungsnachricht auf eine empfangene Bestätigungsanfrage zu antworten. Bei einer Ausführungsform wählt die Synchronisierungseinheit 310 die erste DMA-Engine (der anderen DMA-Engines 304 zum Bestätigen der Bestätigungsanfrage) als DMA-Prüf-Engine aus. Beispielsweise bestimmt bei einer beispielhaften Ausführungsform, wenn die Synchronisierungseinheit 310 eine erste Bestätigungsnachricht von der zweiten DMA-Engine 304 empfängt, die Synchronisierungseinheit 310 die zweite DMA-Engine 304 als DMA-Prüf-Engine.
-
Nach Empfang der ersten Bestätigungsnachricht von einer der anderen DMA-Engines 304 kontaktiert die Synchronisierungseinheit 310 die DMA-Vergleichseinrichtung 312 unter Verwendung einer Steuerschnittstelle, um den Ausgang der Haupt-DMA-Engine mit dem Ausgang der Prüf-DMA-Engine zu vergleichen. Bei einer Ausführungsform der Erfindung ist die DMA-Vergleichseinrichtung 312, sobald sie kontaktiert ist, dazu konfiguriert, den Ausgang der Haupt-DMA-Engine mit dem Ausgang der Prüf-DMA-Engine auf zyklischer Basis zu vergleichen (z. B. Ausgang, der von der DMA-Haupt-Engine und der DMA-Prüf-Engine erzeugt wird, jeden Taktzyklus zu vergleichen, oder anders ausgedrückt, die DMA-Engines im Gleichschritt zu betreiben). Wenn die DMA-Vergleichseinrichtung 312 feststellt, dass der Ausgang der Haupt-DMA-Engine und der Ausgang der Prüf-DMA-Engine bei einem der Taktzyklen nicht identisch ist, erzeugt die DMA-Vergleichseinrichtung 312 eine Fehlermeldung.
-
Bei einer anderen Ausführungsform erzeugt die DMA-Vergleichseinrichtung 312 nur dann eine Fehlermeldung, wenn die Anzahl von Taktzyklen, zu denen die Vergleiche der Ausgänge nicht gleich sind, größer als eine vordefinierte oder programmierbare Schwelle ist. Bei einer Ausführungsform kann die Fehlermeldung eine Fehlermeldungsunterbrechung sein, die nach Empfang durch einen entsprechenden Kernprozessor (oder eine beliebige andere System-Hardware-/Software-Komponente (nicht gezeigt) oder Peripheriegerät-Hardware-/Software-Komponente (nicht gezeigt)) den Kernprozessor (und/oder die eine oder die mehreren anderen Hardware-/Softwarekomponenten) aktiviert, um zum Beispiel entweder eine Warnung an einen Benutzer des Peripheriegeräts oder den Benutzer einer eingebetteten Anwendung zu richten, oder den Betrieb des Peripheriegeräts oder der eingebetteten Anwendung zu beenden, insbesondere, wenn die Vorrichtungen und/oder eingebetteten Anwendungen mit sicherheitskritischen Aufgaben verbunden sind, deren Ausfall zu Verletzung oder Tod führen könnte. Die anderen (nicht gezeigten) System-Hardware-/Software-Komponenten oder (nicht gezeigten) Peripheriegerät-Hardware-/Software-Komponenten können zum Beispiel Komponenten aufweisen, die dazu konfiguriert sein können, auf einen Fehler zu reagieren und demgemäß das System in einen ausfallsicheren Zustand zu bringen.
-
Bei einer Ausführungsform der Erfindung ermöglicht die Synchronisierungseinheit 310, dass die Haupt- und die Prüf-DMA-Engines synchron für denselben einen oder dieselben mehreren Sicherheits-Anforderer arbeiten (d. h., für dieselbe DMA-Kanalkonfiguration im Gleichschritt arbeiten).
-
Bei einer Ausführungsform, wenn die DMA-Einheit 206 im redundanten Modus (d. h. in Gleichschritt-DMA-Engine-Betrieb) arbeitet, deaktiviert die Synchronisierungseinheit 310 die DMA-Prüf-Engine-Busschnittstelle 314 (die mit dem Ausgang der DMA-Prüf-Engine gekoppelt ist), so dass die DMA-Prüf-Engine-Busschnittstelle 314 keinen Ausgang aus der DMA-Prüf-Engine empfängt. Bei einer Ausführungsform des Gleichschritt-DMA-Engine-Betriebs konfiguriert die Synchronisierungseinheit 310 die Busschnittstelle 308 so, dass sie nur Ausgang aus der DMA-Haupt-Engine empfängt, indem sie die einzelnen DMA-Engine-Busschnittstellen an die Prüf-DMA-Engine und die anderen verbleibenden DMA-Engines deaktiviert.
-
Während des redundanten Betriebsmodus arbeitet die Busschnittstelle 308 nicht im Gleichschritt, obwohl die DMA-Vergleichseinrichtung 312 im Gleichschritt arbeitet (d. h. synchron und zyklisch für denselben einen oder dieselben mehreren Sicherheits-Anforderer arbeitet). Somit werden bei einer Ausführungsform der Erfindung alle Daten-/Adress-/Steuersignale, die von der DMA-Haupt-Engine über On-Chip-Busse 214 und 316 gesendet werden, durch Fehlerermittlungscodes überwacht, um sicherzustellen, dass der Pfad von der DMA-Haupt-Engine entweder zu einem internen oder externen Speicher oder zu einem Speicher, der zu einem Peripheriegerät gehört, geschützt wird. Der Umfang der vorliegenden Erfindung deckt alle herkömmlichen Fehlerermittlungscodes ab, die dem Fachmann bekannt sind, zum Beispiel zyklische Redundanzprüfung (Cyclic Redundancy Check (CRC)).
-
Wenn die DMA-Einheit 206 nach Empfangen eines oder mehrerer Sicherheits-Anforderer einen DMA-Anforderer empfängt, der kein Sicherheits-Anforderer ist, hebt bei einer Ausführungsform der Erfindung die Synchronisierungseinheit 310 nach Ermittlung des empfangenen DMA-Anforderers den Gleichschritt-DMA-Engine-Betrieb auf und aktiviert die deaktivierte DMA-Prüf-Engine-Busschnittstelle 314, wodurch die DMA-Einheit 206 effektiv konfiguriert wird, um im Standard-Betriebsmodus zu arbeiten.
-
Bei einer anderen Ausführungsform der Erfindung, und wie in 3 gezeigt ist, kann die Synchronisierungseinheit 310 optional eine Testschnittstelle 318 aufweisen. Bei einer Ausführungsform ist die Testschnittstelle 318 über den ersten Bus 214 an die CPU 202 gekoppelt. Die Testschnittstelle ist dazu konfiguriert, eine Teststeuernachricht zu empfangen. Bei einer Ausführungsform schaltet die Synchronisierungseinheit 310 nach Empfang der Teststeuernachricht die DMA-Einheit 206 vom Standard-Betriebsmodus in den (redundanten) Betriebsmodus mit hoher Integrität um. Dann teilt die Synchronisierungseinheit 310 eine erste DMA-Engine 304 als Haupt-Engine und eine zweite DMA-Engine als Prüf-Engine zu, oder bei einer anderen Ausführungsform teilt die Synchronisierungseinheit 310 die Haupt- und Prüf-Engines gemäß dem Inhalt der Teststeuernachricht zu. Die DMA-Einheit 206 arbeitet dann im redundanten Betriebsmodus, wie oben beschrieben.
-
Die optionale Testschnittstelle 318 und die Teststeuernachrichten ermöglichen es einem Benutzer des Systems 200 zu verifizieren, ob zu einem beliebigen gegebenen Zeitpunkt die beabsichtigte Synchronisierung zwischen jeweils zwei DMA-Engines effektiv Fehler ermitteln und die Fehlermeldung weiterleiten kann.
-
Obwohl die vorliegende Erfindung unter Bezug auf bestimmte Ausführungsformen beschrieben worden ist, ist es für den Fachmann selbstverständlich, dass verschiedene Änderungen durchgeführt und Äquivalente ausgetauscht werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Außerdem können viele Modifizierungen vorgenommen werden, um eine bestimmte Situation oder ein bestimmtes Material an die Lehre der vorliegenden Erfindung anzupassen, ohne von ihrem Umfang abzuweichen. Es ist daher beabsichtigt, dass die vorliegende Erfindung nicht auf die bestimmten offenbarten Ausführungsformen beschränkt wird, sondern dass die vorliegende Erfindung alle Ausführungsformen mit umfasst, die in den Umfang der beigefügten Patentansprüche fallen.