DE102014011665A1 - System und Verfahren für DMA-Betrieb mit hoher Integrität - Google Patents

System und Verfahren für DMA-Betrieb mit hoher Integrität Download PDF

Info

Publication number
DE102014011665A1
DE102014011665A1 DE102014011665.4A DE102014011665A DE102014011665A1 DE 102014011665 A1 DE102014011665 A1 DE 102014011665A1 DE 102014011665 A DE102014011665 A DE 102014011665A DE 102014011665 A1 DE102014011665 A1 DE 102014011665A1
Authority
DE
Germany
Prior art keywords
dma
engines
engine
requestors
bus interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102014011665.4A
Other languages
English (en)
Other versions
DE102014011665B4 (de
Inventor
Simon Cottam
Antonio Vilela
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102014011665A1 publication Critical patent/DE102014011665A1/de
Application granted granted Critical
Publication of DE102014011665B4 publication Critical patent/DE102014011665B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1654Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/277Tester hardware, i.e. output processing circuits with comparison between actual response and known fault-free response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)

Abstract

Ein System und ein Verfahren für Direkt-Speicherzugriffs (Direct Memory Access; DMA)-Betrieb sieht folgendes vor: Empfangen von DMA-Anforderern, 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, Zuteilen des Sicherheits-Anforderers zu wenigstens zwei DMA-Engines der Vielzahl von DMA-Engines zur Verarbeitung des Sicherheits-Anforderers, Deaktivieren einer Busschnittstelle zum Koppeln wenigstens einer DMA-Engine der wenigstens zwei DMA-Engines an Speicher, Vergleichen der Ausgänge der wenigstens zwei DMA-Engines, und Erzeugen einer Fehlermeldung, wenn der Vergleich der Ausgänge der wenigstens zwei DMA-Engines ein unterschiedliches Ergebnis ergibt.

Description

  • 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.

Claims (10)

  1. Verfahren für Direkt-Speicherzugriffs (Direct Memory Access(DMA))-Betrieb, 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.
  2. Verfahren nach Anspruch 1, wobei 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 umfasst, 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.
  3. Verfahren nach Anspruch 2, das 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 umfasst.
  4. Verfahren nach Anspruch 3, das des Weiteren das Warnen eines Benutzers einer Anwendung, die mit dem DMA-Betrieb verbunden ist, hinsichtlich eines Anwendungsfehlers umfasst, basierend auf der Fehlermeldung.
  5. Verfahren nach Anspruch 2, das des Weiteren das Synchronisieren der Haupt-DMA-Engine und der Prüf-DMA-Engine zum synchronen Verarbeiten des Sicherheits-Anforderers umfasst, 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.
  6. Verfahren nach Anspruch 1, wobei die DMA-Anforderer einen oder mehrere Parameter aufweisen, die die eine oder mehrere der Vielzahl von DMA-Engines aktivieren, um Datenübertragungen zwischen Speichern durchzuführen.
  7. System, 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.
  8. System nach Anspruch 7, wobei die Synchronisierungseinheit dazu konfiguriert ist, 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.
  9. System nach Anspruch 8, wobei die DMA-Vergleichseinrichtung dazu konfiguriert ist, eine Fehlermeldung zu erzeugen, wenn die Ausgänge der Haupt-DMA-Engine und der Prüf-DMA-Engine sich voneinander unterscheiden.
  10. System 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.
DE102014011665.4A 2013-08-02 2014-08-04 System und Verfahren für DMA-Betrieb mit hoher Integrität Active DE102014011665B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/957,851 US9128838B2 (en) 2013-08-02 2013-08-02 System and method of high integrity DMA operation
US13/957,851 2013-08-02

Publications (2)

Publication Number Publication Date
DE102014011665A1 true DE102014011665A1 (de) 2015-02-05
DE102014011665B4 DE102014011665B4 (de) 2022-05-05

Family

ID=52342048

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014011665.4A Active DE102014011665B4 (de) 2013-08-02 2014-08-04 System und Verfahren für DMA-Betrieb mit hoher Integrität

Country Status (3)

Country Link
US (1) US9128838B2 (de)
CN (1) CN104346306B (de)
DE (1) DE102014011665B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015132894A (ja) * 2014-01-09 2015-07-23 カシオ計算機株式会社 マイクロコントローラ装置及びその動作制御方法
JP6297853B2 (ja) * 2014-02-18 2018-03-20 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム
CN112711550B (zh) * 2021-01-07 2023-12-29 无锡沐创集成电路设计有限公司 Dma自动配置模块和片上系统soc
US11637739B2 (en) * 2021-01-10 2023-04-25 Mellanox Technologies, Ltd. Direct memory access (DMA) engine for diagnostic data

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185634B1 (en) * 1996-09-27 2001-02-06 Emc Corporation Address triggered DMA controller with an indicative signal including circuitry for calculating a new trigger address value based on the sum of the current trigger address and the descriptor register data with a trigger address register
US6453366B1 (en) * 1999-02-18 2002-09-17 International Business Machines Corporation Method and apparatus for direct memory access (DMA) with dataflow blocking for users
CN1308858C (zh) * 2001-12-27 2007-04-04 诺基亚公司 低开销处理器设备连接
US7324438B1 (en) * 2003-02-13 2008-01-29 Cisco Technology, Inc. Technique for nondisruptively recovering from a processor failure in a multi-processor flow device
US20080109569A1 (en) * 2006-11-08 2008-05-08 Sicortex, Inc Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
US7706289B2 (en) * 2007-12-30 2010-04-27 Oracle America, Inc. System and method for validating packet classification
US8214553B2 (en) * 2010-02-01 2012-07-03 Oracle America, Inc. Virtualization of an input/output device for supporting multiple hosts and functions
US8589723B2 (en) 2010-12-22 2013-11-19 Intel Corporation Method and apparatus to provide a high availability solid state drive
CN103034599B (zh) * 2012-12-12 2015-07-22 深圳国微技术有限公司 安全dma控制器、soc系统及其数据搬运方法

Also Published As

Publication number Publication date
US20150039944A1 (en) 2015-02-05
CN104346306B (zh) 2017-07-28
US9128838B2 (en) 2015-09-08
DE102014011665B4 (de) 2022-05-05
CN104346306A (zh) 2015-02-11

Similar Documents

Publication Publication Date Title
DE102015103220B4 (de) System, umfassend ein Master-Sicherheitsprüfungsregister, Verfahren, Nichtflüchtiges Medium und maschinenlesbare Anweisungen
DE69533312T2 (de) Geschütztes speichersystem und verfahren dafür
DE102015003194A1 (de) Verfahren und Vorrichtung zum Handhaben von sicherheitskritischen Fehlern
EP2641176B1 (de) Mikroprozessorsystem mit fehlertoleranter architektur
EP1917592B1 (de) Rechnersystems mit wenigstens zwei ausführungseinheiten und einer vergleichseinheit sowie verfahren zu dessen steuerung
DE4233569C2 (de) Informationsverarbeitungsgerät mit einer Mehrzahl von Prozessor-Modulen, die einen Fehlerüberwachungskreis enthalten
DE102017106087A1 (de) Fehlertoleranz-muster und schaltprotokoll für mehrere hot- und cold-standby-redundanzen
DE69933515T2 (de) Peripherieprozessor
DE60319125T2 (de) Integrierte schaltung mit mehreren betriebsarten
DE102006048115A1 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
EP1820102A2 (de) Verfahren und vorrichtung zur taktumschaltung bei einem mehrprozessorsystem
EP1917581B1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems
DE102014011665B4 (de) System und Verfahren für DMA-Betrieb mit hoher Integrität
DE102006052757B4 (de) Verfahren zum Betrieb eines Automatisierungsgerätes mit einer Verarbeitungseinheit mit mehreren Verarbeitungskernen
DE102015202326A1 (de) Verfahren zum Betreiben einer Datenverarbeitungseinheit eines Fahrerassistenzsystems und Datenverarbeitungseinheit
WO2006045782A2 (de) Verfahren und vorrichtung zur umschaltung zwischen betriebsmodi eines multiprozessorsystems durch wenigstens ein externes signal
WO2016030324A1 (de) Mikrocontrollersystem und verfahren für sicherheitskritische kraftfahrzeugsysteme sowie deren verwendung
DE4406094C2 (de) Vorrichtung zum Betrieb einer Steuerungsanwendung
DE112019007853T5 (de) Steuereinrichtung
EP2228723B1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
DE3856342T2 (de) Busfehlerverarbeitungssystem
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
DE102015002717A1 (de) Numerische Steuerung
WO2016206847A1 (de) Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage
WO2004034172A2 (de) Verfahren zur ereignissynchronisation, damit synchronisierte prozessoren und fehlertoleranter systeme mit derartigen prozessoren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative