DE102017208522A1 - Recheneinheit und Betriebsverfahren hierfür - Google Patents

Recheneinheit und Betriebsverfahren hierfür Download PDF

Info

Publication number
DE102017208522A1
DE102017208522A1 DE102017208522.3A DE102017208522A DE102017208522A1 DE 102017208522 A1 DE102017208522 A1 DE 102017208522A1 DE 102017208522 A DE102017208522 A DE 102017208522A DE 102017208522 A1 DE102017208522 A1 DE 102017208522A1
Authority
DE
Germany
Prior art keywords
unit
data
functional
functional units
arithmetic
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.)
Pending
Application number
DE102017208522.3A
Other languages
English (en)
Inventor
Axel Aue
Nico Bannow
Matthias Schreiber
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102017208522.3A priority Critical patent/DE102017208522A1/de
Publication of DE102017208522A1 publication Critical patent/DE102017208522A1/de
Pending legal-status Critical Current

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

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

Abstract

Die Erfindung betrifft eine Recheneinheit (100; 100a; 100b; 100c; 100d; 100e), mit wenigstens einem Rechenkern (110a, 110b, 110c), einer primären Speichereinrichtung (120), und wenigstens einer Hauptverbindungseinheit (130) zur Verbindung des wenigstens einen Rechenkerns (110a, 110b, 110c) mit der primären Speichereinrichtung (120), wobei die Recheneinheit (100) wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400) aufweist, wobei wenigstens eine erste Funktionseinheit (140a) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400) dazu ausgebildet ist, a) erste Daten von wenigstens einer weiteren Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400) zu empfangen und/oder b) zweite Daten an wenigstens eine weitere Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140m; 1400) zu senden, wobei die Recheneinheit (100; 100a; 100b; 100c; 100d; 100e) dazu ausgebildet ist, eine Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten durch wenigstens eine ihrer Komponenten (110a, 110b, 110c, 120, 130, 140, 140a, 140b, .., 1400) auszuführen.

Description

  • Stand der Technik
  • Die Erfindung betrifft eine Recheneinheit mit wenigstens einem Rechenkern, einer primären Speichereinrichtung, und wenigstens einer Hauptverbindungseinheit zur Verbindung des wenigstens einen Rechenkerns mit der primären Speichereinrichtung. Die Erfindung betrifft ferner ein Betriebsverfahren für eine derartige Recheneinheit. Derartige Recheneinheiten sind bekannt und beispielsweise in Form von Mikrocontrollern kommerziell verfügbar.
  • Offenbarung der Erfindung
  • Es ist Aufgabe der vorliegenden Erfindung, eine Recheneinheit der eingangs genannten Art dahingehend zu verbessern, dass sie eine gesteigerte Flexibilität, eine gesteigerte Betriebssicherheit und einen gesteigerten Gebrauchsnutzen aufweist.
  • Diese Aufgabe wird bei der Recheneinheit der eingangs genannten Art erfindungsgemäß dadurch gelöst, dass die Recheneinheit wenigstens zwei Funktionseinheiten aufweist, wobei wenigstens eine erste Funktionseinheit der wenigstens zwei Funktionseinheiten dazu ausgebildet ist, a) erste Daten von wenigstens einer weiteren Funktionseinheit der wenigstens zwei Funktionseinheiten zu empfangen und/oder b) zweite Daten an wenigstens eine weitere Funktionseinheit der wenigstens zwei Funktionseinheiten zu senden, und wobei die Recheneinheit dazu ausgebildet ist, eine Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten, gemäß Anspruch 1 auszuführen. Dies kann bevorzugt auch umfassen eine Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten zwischen Funktionseinheiten und/oder im Zusammenwirken mit wenigstens einer anderen Komponente der Recheneinheit.
  • Die erfindungsgemäßen Funktionseinheiten bieten die Möglichkeit, eine Rechenleistung und/oder die Funktionalität der Recheneinheit zu erweitern. Insbesondere ist durch die erfindungsgemäße Möglichkeit des direkten Datenaustauschs zwischen den Funktionseinheiten ein Datenfluss ermöglicht, welcher nicht die weiteren Komponenten der Recheneinheit wie beispielsweise deren Rechenkerne bzw. die primäre Speichereinrichtung mit einbezieht. Auf diese Weise können die Rechenkerne bzw. die primäre Speichereinrichtung bzw. die Hauptverbindungseinheit entlastet werden, während gleichzeitig ein oder mehrere erfindungsgemäße Funktionseinheiten für sie vorgesehene Berechnungsaufgaben bzw. die erfindungsgemäße Erkennung von Fehlern bzw. sonstige Aufgaben wahrnehmen. Durch die erfindungsgemäße Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten ist darüber hinaus ein besonders zuverlässiger und sicherer bzw. abgesicherter Betrieb der Recheneinheit gewährleistet.
  • Besonders bevorzugt kann die Recheneinheit bei manchen Ausführungsformen durch den Einsatz wenigstens einer Funktionseinheit dazu ausgebildet sein, eine Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten auszuführen. Mit anderen Worten kann wenigstens eine Funktionseinheit dazu ausgebildet sein, eine Erkennung von Fehlern auszuführen bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten durch wenigstens eine Komponente der Recheneinheit. Die Verarbeitung und/oder Speicherung und/oder Übertragung von Daten kann dabei in wenigstens einer weiteren Funktionseinheit und/oder in derselben Funktionseinheit und/oder in anderen Komponenten der Recheneinheit erfolgen. Bei den anderen Komponenten kann es sich beispielsweise um einen Rechenkern der Recheneinheit, ein Bussystem, ein Koppelnetz, eine Peripherieeinheit oder dergleichen handeln.
  • Besonders vorteilhaft werden bei weiteren Ausführungsformen die von wenigstens einer Funktionseinheit und / oder von wenigstens einer anderen Komponente zu verarbeitenden und/oder zu speichernden und/oder zu übertragenden Daten in der Art und Weise aufbereitet bzw. zur Verfügung gestellt, so dass eine Fehlererkennung durch die fehlererkennende Funktionseinheit ermöglicht wird, beispielsweise durch das Hinzufügen redundanter Informationen zu den Daten, insbesondere durch Paritätsinformationen, fehlerkorrigierende Codes, etc.
  • Beispielsweise kann bei manchen Ausführungsformen wenigstens eine Funktionseinheit vorgesehen sein, die dazu ausgebildet ist, Daten zusätzlich mit Paritätsinformationen und/oder Fehlerkorrekturcodes zu versehen. Bei einer bevorzugten Ausführungsform kann die Funktionseinheit dazu ausgebildet sein, die Hamming-Distanz betreffender Daten zu erhöhen.
  • Besonders bevorzugt kann die erfindungsgemäße Recheneinheit in einem Steuergerät für ein Zielsystem verwendet werden, beispielsweise in einem Steuergerät für eine Brennkraftmaschine eines Kraftfahrzeugs oder für ein radarbasiertes Abstandsmessungssystem oder dergleichen. Im Gegensatz zu herkömmlichen Recheneinheiten wie beispielsweise herkömmlichen Mikrocontrollern ist die erfindungsgemäße Recheneinheit vorteilhaft um die durch die Funktionseinheiten bereitgestellte und nachstehend näher beschriebene Funktionalität erweitert und kann somit auch als Mikrocontroller mit der erfindungsgemäß ermöglichten Zusatzfunktionalität angesehen werden. Generell kann die erfindungsgemäße Recheneinheit überall da eingesetzt werden, wo konventionelle Recheneinheiten wie beispielsweise Mikrocontroller oder Mikroprozessoren oder digitale Signalprozessoren oder dergleichen eingesetzt werden, und wo eine zusätzliche Funktionalität und/oder eine höhere Leistungsfähigkeit, wie sie durch die erfindungsgemäßen Funktionseinheiten bereitgestellt wird, sowie ein zuverlässiger Betrieb wünschenswert ist. Es ist ferner möglich, in bestehenden Systemen vorhandene konventionelle Recheneinheiten durch die erfindungsgemäße Recheneinheit zu ersetzen, um eine effizientere Abarbeitung von seither durch die konventionellen Recheneinheiten ausgeführten Berechnungs- und sonstigen Aufgaben zu ermöglichen. Besonders vorteilhaft ist der Einsatz der erfindungsgemäßen Recheneinheit manchen Ausführungsformen zufolge auch im Bereich der Verarbeitung von sicherheitsrelevanten Daten bzw. zur Bearbeitung von kryptografischen Algorithmen denkbar.
  • Bei einer vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine primäre Verbindungseinheit vorgesehen ist, die dazu ausgebildet ist, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen der ersten Funktionseinheit und wenigstens einer weiteren Funktionseinheit der wenigstens zwei Funktionseinheiten herzustellen. Dies ermöglicht vorteilhaft die Steuerung eines Datenaustauschs bzw. Datenflusses zwischen verschiedenen Funktionseinheiten, so dass auch während des Betriebs der Recheneinheit eine Konfiguration bzw. Neukonfiguration der Datenverbindung(en) zwischen den betreffenden Funktionseinheiten möglich ist, wodurch eine gesteigerte Flexibilität erzielt wird. Bei einer bevorzugten Ausführungsform weist die primäre Verbindungseinheit wenigstens ein Koppelnetz auf. Besonders bevorzugt ist das Koppelnetz als blockierungsfreies Koppelnetz ausgelegt. In diesem Fall ermöglicht das Koppelnetz jederzeit die Herstellung von Datenverbindungen zwischen allen mit dem Koppelnetz verbundenen Funktion Einheiten sowie gegebenenfalls weiteren mit dem Koppelnetz verbundenen Einheiten wie beispielsweise Komponenten der Recheneinheit. Bei weiteren Ausführungsformen kann die primäre Verbindungseinheit auch andere Strukturen umfassen, beispielsweise wenigstens ein Bussystem, welches eine Datenverbindung zwischen den an das Bussystem angeschlossenen Funktionseinheiten herstellt. Bei weiteren Ausführungsformen kann die primäre Verbindungseinheit auch wenigstens eine direkte Datenverbindung zwischen wenigstens zwei Funktionseinheiten aufweisen. Ferner sind bei anderen Ausführungsformen auch direkte Datenverbindungen zwischen mehr als zwei Funktionseinheiten denkbar.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass mehrere Gruppen von Funktionseinheiten vorgesehen sind, wobei jeder der mehreren Gruppen wenigstens eine primäre Verbindungseinheit zugeordnet ist, die dazu ausgebildet ist, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen Funktionseinheiten der betreffenden Gruppe herzustellen. Dadurch können gleichsam mehrere Cluster von Funktionseinheiten bereitgestellt werden, welche jeweils gleichartige oder verschiedenartige Berechnungen oder sonstige Aufgaben ausführen können.
  • Bei einer weiteren Ausführungsform ist vorgesehen, dass eine primäre Verbindungseinheit, welche einer Gruppe von Funktionseinheiten zugeordnet ist, dazu ausgebildet ist, eine Datenverbindung zwischen Funktionseinheiten unterschiedlicher Gruppen herzustellen. Bei weiteren Ausführungsformen können die primären Verbindungseinheiten, die den jeweiligen Gruppen zugeordnet sind, wiederum wenigstens eine der folgenden Komponenten aufweisen: ein Koppelnetz, ein Bussystem, wenigstens eine direkte Datenverbindung.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Recheneinheit dazu ausgebildet ist, zu verarbeitende Eingangsdaten im Rahmen einer Datenverarbeitung redundant zu verarbeiten, beispielsweise gemäß Anspruch 5, wodurch z.B. die wenigstens ersten zu verarbeitenden Daten und die zweiten zu verarbeitenden Daten innerhalb der Recheneinheit aus nicht redundanten Eingangsdaten innerhalb der Recheneinheit gebildet werden, beispielsweise durch Funktionseinheiten, Rechnerkerne, etc. und/oder aus redundant in die Recheneinheit eingehenden Eingangsdaten gebildet werden, und in Abhängigkeit von einem Vergleich der ersten verarbeiteten Daten und der zweiten verarbeiteten Daten auf das Vorliegen eines Fehlers bei der Datenverarbeitung zu schließen, wobei der Vergleich vorteilhafterweise in den Funktionseinheiten erfolgt. Die redundante Datenverarbeitung kann bei manchen Ausführungsformen besonders vorteilhaft durch mindestens zwei parallel arbeitende Funktionseinheiten erfolgen. Die redundante Datenverarbeitung kann bei manchen Ausführungsformen vorteilhaft auch durch mindestens zwei parallel arbeitende Rechenkerne erfolgen. In einer weiteren Ausführungsform kann die redundante Datenverarbeitung aber auch durch wenigstens eine Funktionseinheit sowie wenigstens einen (z.B. dazu „parallelen“) Rechenkern erfolgen. Beispielsweise kann die redundante Datenverarbeitung bei manchen Ausführungsformen aber auch durch wenigstens eine einzelne Funktionseinheit bzw. wenigstens einen einzelnen Rechenkern der Recheneinheit erfolgen (z.B. sofern diese über eine innere redundante Berechnungsmöglichkeit verfügen), deren redundante Ergebnisse extern verglichen werden, in besonders vorteilhafter Weise durch eine erfindungsgemäße Funktionseinheit. Im Folgenden wird die innere Redundanz so gestellt, dass sie parallelen Einheiten ohne innere Redundanz gleichgestellt sind.
  • Bei weiteren Ausführungsformen kann die redundante Datenverarbeitung durch verschiedene Funktionseinheiten und/oder Rechenkerne erfolgen, die sich zeitlich zumindest teilweise überlappend können und/oder auch zeitlich versetzt arbeiten können. Vorzugsweise werden beispielsweise bei der redundanten Datenverarbeitung innerhalb einer Funktionseinheit oder beispielsweise durch die redundante Datenverarbeitung durch verschiedene Funktionseinheiten und/oder Rechenkerne sowohl einmalige (transiente) als auch dauerhafte (permanente) Fehler erkannt. Alternativ oder ergänzend kann die redundante Datenverarbeitung beispielsweise auch hintereinander erfolgen, beispielsweise durch Wiederholung derselben Operation(en) auf denselbe(n) Funktionseinheit(en) bzw. denselben Rechenkern bzw. dieselben Rechenkerne. Bei einer redundanten Berechnung unter Anwendung derselben Operation(en) auf dieselbe(n) Funktionseinheit(en) werden vorzugsweise nur einmalige (transiente) Fehler erkannt.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass eine erste Gruppe von Funktionseinheiten dazu ausgebildet ist, erste Eingangsdaten zu verarbeiten und daraus erste Ausgangsdaten zu erhalten, wobei eine zweite Gruppe von Funktionseinheiten dazu ausgebildet ist, die (selben) ersten Eingangsdaten zu verarbeiten und daraus zweite Ausgangsdaten zu erhalten, wobei wenigstens eine Funktionseinheit vorgesehen ist, die dazu ausgebildet ist, die ersten Ausgangsdaten und die zweiten Ausgangsdaten miteinander zu vergleichen. Eine solche Funktionseinheit kann gemäß weiteren Ausführungsformen auch als „vergleichende Funktionseinheit“ bezeichnet werden. Die für den Vergleich der Ausgangsdaten vorgesehene vergleichende Funktionseinheit kann der ersten oder zweiten Gruppe von Funktionseinheiten angehören oder funktional auch außerhalb der betreffenden Gruppen angeordnet sein, also nicht zu der bzw. den Gruppen gehören.
  • Bei einer Ausführungsform kann die erste Gruppe von Funktionseinheiten eine Anzahl von n Funktionseinheiten aufweisen, wobei n größer oder gleich eins ist. Bei einer weiteren Ausführungsform kann die zweite Gruppe von Funktionseinheiten eine Anzahl von m Funktionseinheiten aufweisen, wobei m größer oder gleich eins ist. Ausführungsformen mit m gleich oder ungleich n sind denkbar. Mit anderen Worten können die beiden Gruppen von Funktionseinheiten jeweils unterschiedlich viele Funktionseinheiten aufweisen oder jeweils gleich viele Funktionseinheiten aufweisen und beispielsweise die gleichartige Verarbeitung der Eingangsdaten im Sinne einer redundanten, d. h. doppelten, Berechnung mit unterschiedlichen Instanzen gleichartiger und/oder auch unterschiedlicher Implementierungen ausführen, wodurch die Betriebssicherheit weiter gesteigert wird.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten eine Eingangsschnittstelle zum Empfang der ersten Daten und/oder eine Ausgangsschnittstelle zur Ausgabe der zweiten Daten aufweist. Diese Ein- bzw. Ausgangsschnittstelle(n) können bei bevorzugten Ausführungsformen insbesondere zum Datenaustausch (Senden und/oder Empfangen) mit anderen gleichartigen oder verschiedenartigen Funktionseinheiten verwendet werden (oder ggf. auch mit anderen Komponenten, welche zu den Ein- bzw. Ausgangsschnittstelle(n) der Funktionseinheiten kompatible entsprechende Schnittstellen aufweisen).
  • Bei einer bevorzugten Ausführungsform können Eingangsdaten für wenigstens eine Funktionseinheit auch in einer primären Speichereinrichtung und/oder in einer sekundären Speichereinrichtung und/oder in weiteren Peripheriekomponenten vorliegen. Die primäre Speichereinrichtung und/oder sekundäre Speichereinrichtung und/oder Peripheriekomponenten können dabei jeweils in Untereinheiten unterteilt sein, in denen die Eingangsdaten vorliegen. Beispielsweise können Eingangsdaten in der primären und/oder sekundären Speichereinrichtung, vorliegen, wobei die primäre und/oder sekundäre Speichereinrichtung z.B. (ggf. neben anderen Speichertypen) einen Arbeitsspeicher, z.B. vom SRAM-Typ, aufweisen kann. Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten dazu ausgebildet ist, Daten aus der primären Speichereinrichtung und/oder aus der sekundären Speichereinrichtung und/oder aus weiteren Peripheriekomponenten (z.B. aus den adressierbaren Registern und/oder Speicherbereichen einer DMA-Steuereinheit und/oder einer Unterbrechungsanforderungs-Verteilereinrichtung und/oder weiterer Hardwarebeschleuniger) zu lesen und/oder in diese zu schreiben. Dies kann bei einer bevorzugten Ausführungsform insbesondere über eine von den vorstehend genannten Ein- bzw. Ausgangsschnittstelle(n) verschiedene (andersartige) Schnittstelle erfolgen, beispielsweise auch mittelbar über die von den vorstehend genannten Ein- bzw. Ausgangsschnittstelle(n) verschiedene (andersartige) Schnittstelle und z.B. über wenigstens eine primäre und/oder sekundäre Verbindungseinheit.
  • Gemäß einer weiteren Ausführungsform können die Eingangsschnittstelle und/oder die Ausgangsschnittstelle beispielsweise dazu ausgebildet sein, für die Funktionseinheit bestimmte erste Daten in einem vorgebbaren Format, beispielsweise in Form von Datenpaketen, zu empfangen bzw. zur Ausgabe an eine andere Einheit, beispielsweise eine andere Funktionseinheit, bestimmte zweite Daten in einem vorgebbaren Format, beispielsweise wiederum in Form von Datenpaketen, auszugeben.
  • Die Eingangsschnittstelle kann beispielsweise dazu ausgebildet sein, an die primäre Verbindungseinheit angeschlossen zu werden. Je nach Ausführung der primären Verbindungseinheit kann die Eingangsschnittstelle also beispielsweise dazu ausgebildet sein, an ein Koppelnetz und/oder ein Bussystem angeschlossen zu werden. Alternativ oder ergänzend kann die Eingangsschnittstelle auch dazu ausgebildet sein, eine direkte Datenverbindung zwischen der betreffenden Funktionseinheit und mindestens einer weiteren Funktionseinheit herzustellen, beispielsweise mittels direkt verschalteter Datenleitungen. Dieselben Ausführungen gelten in entsprechender Weise für die Ausbildung der Ausgangsschnittstelle bei weiteren Ausführungsformen der Erfindung.
  • Bei einer weiteren Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten eine lokale Steuereinrichtung zur Steuerung eines Betriebs der Funktionseinheit aufweist. Beispielsweise kann eine derartige lokale Steuereinrichtung wenigstens einen Zustandsautomaten (englisch: state machine) umfassen. Bei einer weiteren vorteilhaften Ausführungsform weist wenigstens eine der Funktionseinheiten eine lokale Berechnungseinheit auf. Bei einer weiteren vorteilhaften Ausführungsform kann die lokale Berechnungseinheit wenigstens ein grobgranulares Hardwareelement aufweisen oder als grobgranulares Hardwareelement ausgebildet sein.
  • Bei einer weiteren vorteilhaften Ausführungsform ist die Recheneinheit, insbesondere wenigstens eine Funktionseinheit, dazu ausgebildet, eine Erkennung von Fehlern in Eingangsdaten mittels Auswertung von Paritätsinformationen und/oder eine Korrektur von Fehlern mittels fehlerkorrigierender Kodes auszuführen. Die Paritätsinformationen und/oder fehlerkorrigierenden Kodes können beispielsweise zusammen mit den Ausgangsdaten von wenigstens einer weiteren Funktionseinheit und/oder auch von weiteren Komponenten der Recheneinheit gebildet werden, zum Beispiel einem Rechnerkern und/oder der Speichereinrichtung und/oder einem Bussystem bzw. einer Verbindungseinheit und/oder weiteren Peripheriekomponenten. In einer vorteilhaften Ausführungsform können Funktionseinheiten bei erkannten Fehlern mit einer Fehlerreaktion reagieren, beispielsweise durch Ausgabe eines speziellen Fehlersignals.
  • Mit anderen Worten sind die Ausführungsformen sehr gut geeignet, um auf einfache Art und Weise z.B. eine redundante Berechnung durchzuführen, (z.B. wenn mehrere gleichartige / identische Funktionseinheiten vorliegen, die redundant verwendet werden können) und / oder z.B. um Fehler in Eingangsdaten, die bei der Übertragung der Daten entstanden sind, mittels Auswertung von Paritätsinformationen zu erkennen (z.B. wenn entsprechende Paritätsinformationen vorliegen) und/oder um Fehler in Eingangsdaten, die bei der Übertragung der Daten entstanden sind, mittels fehlerkorrigierender Kodes korrigieren zu können (z.B. wenn fehlerkorrigierendes Kodes eingesetzt werden).
  • Bei einer weiteren vorteilhaften Ausführungsform ist wenigstens eine Funktionseinheit vorgesehen, die dazu ausgebildet ist, zueinander redundante Berechnungen von Rechenkernen und/oder Peripherieeinheiten der Recheneinheit auszuwerten. Beispielsweise können zueinander redundante Berechnungen durch die nachfolgend genannten Komponenten ausgeführt werden, und die wenigstens eine Funktionseinheit, bei der es sich beispielsweise um eine wie vorstehend beschriebene vergleichende Funktionseinheit handeln kann, ist dazu ausgebildet, die Ergebnisse der redundante Berechnungen miteinander zu vergleichen, beispielsweise um einen Fehler zu erkennen: (Rechenkern, Funktionseinheit), (Rechenkern, Rechenkern), (Rechenkern, Peripheriekomponente der Recheneinheit), (Peripheriekomponente der Recheneinheit, Funktionseinheit). Beispielsweise können also bei einer Ausführungsform zueinander redundante Berechnungen durch einen Rechenkern der Recheneinheit und durch eine Peripheriekomponente der Recheneinheit ausgeführt werden, und die wenigstens eine Funktionseinheit gemäß der vorliegenden Ausführungsform ist dazu ausgebildet, die betreffenden Ergebnisse der redundante Berechnungen auszuwerten, insbesondere miteinander zu vergleichen.
  • Weitere vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche.
  • Weitere Lösungen der Aufgabe der vorliegenden Erfindung sind angegeben durch ein Steuergerät gemäß Patentanspruch 11 sowie ein Verfahren gemäß Patentanspruch 12.
  • Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Patentansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.
  • In der Zeichnung zeigt:
    • 1A schematisch ein Blockdiagramm einer Ausführungsform der erfindungsgemäßen Recheneinheit,
    • 1B-1F schematisch weitere Ausführungsformen der erfindungsgemäßen Recheneinheit,
    • 2A schematisch ein vereinfachtes Blockdiagramm einer Funktionseinheit gemäß einer Ausführungsform der Erfindung,
    • 2B schematisch eine Datenstruktur gemäß einer Ausführungsform der Erfindung,
    • 3 schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens, und
    • 4 ein Betriebsszenario gemäß einer Ausführungsform.
  • 1A zeigt schematisch ein Blockdiagramm einer Ausführungsform der erfindungsgemäßen Recheneinheit 100. Die Recheneinheit 100 weist mehrere Rechenkerne 110a, 110b, 110c auf sowie eine primäre Speichereinrichtung 120. Eine Hauptverbindungseinheit 130 (z.B. englisch: core interconnect), z.B. ein Bussystem oder ein Koppelnetz (englisch: crossbar switch), ist vorgesehen zur Verbindung der Rechenkerne untereinander bzw. zur Verbindung der Rechenkerne mit der primären Speichereinrichtung 120. Optional weist die Recheneinheit 100 weitere Peripheriekomponenten auf, was vorliegend durch den gestrichelt dargestellten Block 125 angedeutet ist. Beispielsweise kann es sich bei derartigen Peripheriekomponenten um Analog/Digital-Wandler, Ein-/Ausgabeschnittstellen, Zeitgeberbausteine, DMA („direct memory access“, deutsch: Speicherdirektzugriffs)-Steuereinheiten oder dergleichen handeln. Die primäre Speichereinrichtung 120 kann bei einer Ausführungsform vorteilhaft sowohl wenigstens einen Arbeitsspeicher (Direktzugriffsspeicher, RAM, Random Access Memory), insbesondere vom SRAM-Typ und/oder vom DRAM-Typ, als auch wenigstens einen nichtflüchtigen Speicher (non-volatile RAM (NVRAM)), aufweisen, z.B. als Flash, EPROM, Ferroelectric RAM (FeRAM), Magnetoresistiver RAM (MRAM), Phase-change RAM (PCRAM).
  • Erfindungsgemäß weist die Recheneinheit 100 wenigstens zwei Funktionseinheiten auf, wobei wenigstens eine erste Funktionseinheit 140a dazu ausgebildet ist, erste Daten von wenigstens einer weiteren Funktionseinheit 140, 140b zu empfangen und/oder zweite Daten an wenigstens eine weitere Funktionseinheit 140, 140b zu senden bzw. auszugeben. Weiter erfindungsgemäß ist die Recheneinheit 100 dazu ausgebildet, eine Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten durch wenigstens eine ihrer Komponenten 110a, 110b, 110c, 120, 125, 130, 140, 140a, 140b auszuführen.
  • Die erfindungsgemäßen Funktionseinheiten 140,140a, 140b bieten vorteilhaft die Möglichkeit, eine Rechenleistung und/oder die Funktionalität der Recheneinheit 100 zu erweitern. Insbesondere ist durch die erfindungsgemäße Möglichkeit des direkten Datenaustauschs zwischen den Funktionseinheiten ein Datenfluss ermöglicht, welcher nicht die weiteren Komponenten der Recheneinheit 100 wie beispielsweise deren Rechenkerne 110a, 110b, 110c bzw. die primäre Speichereinrichtung 120 bzw. die Hauptverbindungseinheit 130 miteinbezieht. Auf diese Weise können die Rechenkerne 110a, 110b, 110c, die primäre Speichereinrichtung 120, und die Hauptverbindungseinheit 130 entlastet werden, während gleichzeitig ein oder mehrere erfindungsgemäße Funktionseinheiten 140, 140a, 140b für sie vorgesehene Berechnungsaufgaben bzw. sonstige Aufgaben wahrnehmen. Gleichzeitig ermöglicht die erfindungsgemäße Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten eine gesteigerte Sicherheit beim Betrieb der Recheneinheit 100. Die Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten kann vorteilhaft durch eine oder mehrere Komponenten der Recheneinheit, insbesondere durch eine oder mehrere hierfür vorgesehen Funktionseinheit(en), aber - weiteren Ausführungsformen zufolge - ggf. auch durch einen Rechenkern 110a und/oder eine spezielle Fehlerbehandlungseinheit 115 und/oder durch ein Zusammenwirken von wenigstens zwei der zuvor genannten Komponenten ausgeführt werden.
  • Beispielsweise können die erfindungsgemäßen Funktionseinheiten 140,140a, 140b, die bevorzugt überwiegend, besonders bevorzugt jedoch vollständig, als Hardwareschaltung realisiert sind, dazu ausgebildet sein, Berechnungen und/oder Logikoperationen und/oder sonstige Funktionen auszuführen. Die Realisierung von Look-up-Tabellen, Kennlinien und/oder Kennfeldern durch Funktionseinheiten ist ebenfalls denkbar. Details zu einem inneren Aufbau der Funktionseinheiten und ihrer Kommunikation untereinander sind weiter unten u.a. unter Bezugnahme auf 2A, 2B angegeben. Nachfolgend wird jedoch zunächst unter Bezugnahme auf 1A bis 1F auf die Anordnung der Funktionseinheiten innerhalb der erfindungsgemäßen Recheneinheit 100 und deren Datenanbindung an die zentralen Komponenten 110a, 110b, 110c, 120, 130 der Recheneinheit 100 eingegangen.
  • Bei einer vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine primäre Verbindungseinheit 150 vorgesehen ist, die dazu ausgebildet ist, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen der ersten Funktionseinheit 140a und wenigstens einer weiteren Funktionseinheit 140, 140b herzustellen. Dies ermöglicht vorteilhaft die Steuerung eines Datenaustauschs bzw. Datenflusses zwischen verschiedenen Funktionseinheiten, so das auch während des Betriebs der Recheneinheit eine Konfiguration bzw. Neukonfiguration der Datenverbindung(en) zwischen den betreffenden Funktionseinheiten möglich ist, wodurch eine gesteigerte Flexibilität erzielt wird. Unter einer direkten Datenverbindung wird vorliegend verstanden, dass zwischen den beteiligten Funktionseinheiten Daten ausgetauscht werden können, ohne die Hauptverbindungseinheit 130 der Recheneinheit 100 zu verwenden. Vielmehr ermöglicht beispielsweise die primäre Verbindungseinheit 150 eine solche, direkte Datenverbindung zwischen den an sie angeschlossenen Funktionseinheiten, vgl. die Pfeile a1, a2, welche einen Datenfluss zwischen den Komponenten 140, 140a, 140b sowie der primären Verbindungseinheit 150 andeuten.
  • Bei einer bevorzugten Ausführungsform weist die primäre Verbindungseinheit 150 wenigstens ein Koppelnetz 152a auf. Besonders bevorzugt ist das Koppelnetz als blockierungsfreies Koppelnetz ausgelegt. In diesem Fall ermöglicht das Koppelnetz 152a jederzeit die Herstellung von Datenverbindungen zwischen allen mit dem Koppelnetz 152a verbundenen Funktionseinheiten 140, 140a, 140b sowie gegebenenfalls weiteren mit dem Koppelnetz verbundenen Einheiten wie beispielsweise Komponente 130 der Recheneinheit. Bei weiteren Ausführungsformen ist es auch denkbar, die primäre Verbindungseinheit 150 als nicht blockierungsfreies Koppelnetz auszulegen.
  • Bei weiteren Ausführungsformen kann die primäre Verbindungseinheit 150 auch andere Strukturen umfassen, beispielsweise wenigstens ein Bussystem oder wenigstens eine direkte Datenverbindung zwischen wenigstens zwei Funktionseinheiten. Ferner sind alternativ oder ergänzend zu dem Koppelnetz 152a bzw. generell zu der primären Verbindungseinheit 150 bei anderen Ausführungsformen auch direkte Datenverbindungen 152b (z.B. in Form von festverdrahteten Datenleitungen) zwischen anderen bzw. mehr als zwei Funktionseinheiten denkbar. Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die wenigstens eine primäre Verbindungseinheit 150 mehrere der vorstehend genannten Verbindungsmechanismen aufweist, also beispielsweise ein Koppelnetz zur Verbindung einiger Funktionseinheiten bzw. aller Funktionseinheiten untereinander sowie beispielsweise ein Bussystem, welches mehrere bzw. alle Funktionseinheiten verbindet.
  • Bei einer weiteren Ausführungsform ist wenigstens eine sekundäre Verbindungseinheit 155, vgl. 1A, vorgesehen, die dazu ausgebildet ist, eine Datenverbindung, vgl. Pfeil a3, zwischen der Hauptverbindungseinheit 130 und wenigstens einer Funktionseinheit 140 entweder direkt und/oder mittelbar über die primäre Verbindungseinheit 150 herzustellen, wodurch eine leistungsfähige Anbindung zur Datenübertragung zwischen den betreffenden Funktionseinheiten 140, 140a, 140b sowie 110a, 110b, 110c, 120, 125 über die Hauptverbindungseinheit 130 gegeben ist.
  • Insgesamt ermöglicht die Vorsehung der Funktionseinheiten 140, 140a, 140b und ihre flexible Verbindung untereinander, die mittels der primären Verbindungseinheit 150 hergestellt wird, die Bereitstellung zusätzlicher Rechenleistung bzw. zusätzlicher Funktionalitäten innerhalb der erfindungsgemäßen Recheneinheit 100. Die Gesamtheit der Komponenten 140, 140a, 140b, 150 kann somit vorteilhaft auch als „flexible Hardwareerweiterung“ 1500 der Recheneinheit 100 aufgefasst werden, wobei diese flexible Hardwareerweiterung 1500 Rechenaufgaben besonders vorteilhaft im Wesentlichen eigenständig, also unabhängig von den Komponenten 110a, 110b, 110c, 120, 125, 130, ausführen kann, jedoch bei Bedarf über die Anbindung der sekundären Verbindungseinheit 155 effizient mit wenigstens einer der Komponenten 110a, 110b, 110c, 120, 125, 130 Daten austauschen kann.
  • Bei einer vorteilhaften Ausführungsform können die Funktionseinheiten 140, 140a gemäß 1A dazu ausgebildet sein, zu verarbeitende Eingangsdaten im Rahmen einer Datenverarbeitung redundant (zum Beispiel im Sinne einer doppelten Berechnung dieselben Eingangsdaten) zu verarbeiten, wodurch von der ersten Funktionseinheit 140 erste verarbeitete Daten und von der zweiten Funktionseinheit 140a zweite verarbeitete Daten ausgegeben werden. Die weitere Funktionseinheit 140b kann dazu ausgebildet sein, die ersten verarbeiteten Daten mit den zweiten verarbeiteten Daten zu vergleichen und aus dem Vergleich beispielsweise auf das Vorliegen eines Fehlers bei der Datenverarbeitung durch wenigstens eine der beiden Funktionseinheiten 140, 140a zu schließen. Sofern beispielsweise bei denselben Eingangsdaten für beide Funktionseinheiten 140, 140a die ersten verarbeiteten Daten von den zweiten verarbeiteten Daten abweichen, kann auf einen Fehler geschlossen werden.
  • Bei weiteren Ausführungsformen kann die redundante Datenverarbeitung zeitlich zumindest teilweise überlappend erfolgen, beispielsweise durch verschiedene Funktionseinheiten 140, 140a und/oder Rechenkerne. Alternativ oder ergänzend kann die redundante Datenverarbeitung beispielsweise auch zeitlich hintereinander erfolgen, beispielsweise durch jeweils dieselbe Funktionseinheit 140 bzw. denselben Rechenkern bzw. dieselben Rechenkerne. Auch hierbei kann eine Auswertung, beispielsweise zum Zwecke der Fehlererkennung, wiederum durch eine hierauf spezialisierte weitere Daten vergleichende Funktionseinheit 140b erfolgen.
  • 1B veranschaulicht das vorstehend genannte Prinzip am Beispiel einer Detailansicht, die entsprechende Funktionseinheiten einer Recheneinheit 100a gemäß einer Ausführungsform zeigt. Der Funktionseinheit 140' werden erste Eingangsdaten E1 eingangsseitig zur Datenverarbeitung zugeführt, und der Funktionseinheit 140a' werden dieselben ersten Eingangsdaten E1 eingangsseitig zur Datenverarbeitung zugeführt. Beide Funktionseinheiten 140', 140a' sind dazu ausgebildet, die zugeführten Eingangsdaten derselben Datenverarbeitung zu unterwerfen, beispielsweise durch Berechnung einer mathematischen Gleichung. Dementsprechend werden an einem Ausgang der Funktionseinheit 140' erste Ausgangsdaten A1 und an einem Ausgang der Funktionseinheit 140a' zweite Ausgangsdaten A2 erhalten. Beide Ausgangsdaten A1, A2 werden der weiteren Funktionseinheit 140b' zugeführt, die dazu ausgebildet ist, eine Erkennung von Fehlern bei der redundanten Verarbeitung der Eingangsdaten E1 durch die Funktionseinheiten 140', 140a' auszuführen, beispielsweise mittels eines Vergleichs der von den Funktionseinheiten 140', 140a' ausgegebenen Ausgangsdaten.
  • Sofern die weitere Funktionseinheit 140b' hierbei einen Fehler erkennt, kann eine Fehlerreaktion ausgelöst werden, beispielsweise durch Senden einer Unterbrechungsanforderung IRQ (englisch: interrupt bzw. interrupt request) an eine Unterbrechungsanforderungs-Verteilereinheit (englisch: interrupt router) 170 der Recheneinheit 100a. Besonders bevorzugt ist die weitere Funktionseinheit 140b' vollständig als Hardwareschaltung ausgebildet und kann mithin als Hardware-Vergleicher bezeichnet werden. Vorteilhaft können durch die erfindungsgemäße Fehlererkennung einmalig und/oder sporadisch in einer der Funktionseinheiten 140', 140a' auftretende (transiente) Fehler erkannt werden, wie sie beispielsweise durch sogenannte „Bitkipper“, zum Beispiel durch Strahlungseinwirkung, in digitalen Rechensystemen auftreten können. Ebenso vorteilhaft können durch die erfindungsgemäße Fehlererkennung dauerhaft in einer der Funktionseinheiten 140', 140a' auftretende (permanente) Fehler erkannt werden, wie sie beispielsweise durch physikalische Beschädigungen in den digitalen Schaltungsstrukturen auftreten können.
  • Alternativ oder ergänzend zu der Signalisierung einer Unterbrechungsanforderung IRQ kann ein entsprechendes Signal an eine Fehlerbehandlungseinheit 115 der Recheneinheit 100a bzw. 100 ausgegeben werden, die beispielsweise außerhalb der Berechnungseinheit 1500 (1A) angeordnet ist, jedoch einen Teil der Recheneinheit 100a bzw. 100 bildet. Alternativ oder ergänzend kann ein entsprechendes Signal auch an eine extern zu der Recheneinheit 100 vorgesehene Einheit (ebenfalls nicht gezeigt) abgegeben werden. Das Signal kann bei manchen Ausführungsformen beispielsweise angeben, ob eine Abweichung bei den Ausgangsdaten A1, A2 vorliegt, und/oder ob keine Abweichung bei den Ausgangsdaten A1, A2 vorliegt. Die Datenübertragung beispielsweise der Ausgangsdaten A1, A2 zu der Funktionseinheit 140b' kann bei einer bevorzugten Ausführungsform mittels der weiter unten unter Bezugnahme auf 2A beschriebenen Ausgangsschnittstelle 1404 (insbesondere über die primäre Verbindungseinheit 150, vgl. 1A) erfolgen. Die Funktionseinheit 140b' kann diese Ausgangsdaten A1, A2 bei einer weiteren bevorzugten Ausführungsform mittels wenigstens einer ebenfalls weiter unten beschriebenen Eingangsschnittstelle 1402 empfangen.
  • Bei einer bevorzugten Ausführungsform können die Funktionseinheiten 140', 140a' dazu ausgebildet sein, zumindest zeitweise die vorstehend beschriebene redundante Berechnung auszuführen. Ferner können die Funktionseinheiten 140', 140a' dazu ausgebildet sein, zu anderen Zeiten zumindest zeitweise zueinander nicht redundante Berechnungen auszuführen. Bei einer bevorzugten Ausführungsform können die genannten Funktionseinheiten also wenigstens zeitweise zueinander redundant rechnen, müssen dies jedoch in anderen Betriebszuständen nicht machen. Dadurch wird eine größtmögliche Flexibilität bezüglich der Nutzung der betreffenden Funktionseinheiten erzielt.
  • Bei anderen Ausführungsformen kann vorgesehen sein, dass zwei Funktionseinheiten 140', 140a' zwangsweise redundant gekoppelt sind. Bei anderen Ausführungsformen kann vorgesehen sein, dass wenigstens eine Funktionseinheit der erfindungsgemäßen Recheneinheit intern redundant rechnet.
  • Bei einer weiteren vorteilhaften Ausführungsform ist die Recheneinheit 100, 100a bzw. wenigstens eine ihrer Komponenten, bevorzugt mindestens eine Funktionseinheit 140b, dazu ausgebildet, eine Erkennung von Fehlern in Eingangsdaten mittels Auswertung von Paritätsinformationen und/oder eine Korrektur von Fehlern in Eingangsdaten mittels fehlerkorrigierender Kodes auszuführen. Die Paritätsinformationen können beispielsweise in wenigstens einer Komponente der Recheneinheit 100, 100a bzw. von wenigstens einer ihrer Komponenten, bevorzugt von mindestens einer Funktionseinheit 140, 140a, 140b und/oder einem Rechnerkern 110a, 110b, 110c und/oder der Speichereinrichtung 120 und/oder einem Bussystem 130 bzw. einer Verbindungseinheit 150, 155) für die Ausgangsdaten gebildet werden, welche der Funktionseinheit 140b zugeleitet werden. Bei weiteren Ausführungsformen kann dieses Prinzip auch auf die Anwendung der fehlerkorrigierenden Kodes angewandt werden.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Funktionseinheit 140b zwischen korrigierbaren Fehlern und nicht korrigierbaren Fehlern unterscheiden kann. Diese Information kann gegebenenfalls in wenigstens eine der vorstehend genannten Signalisierungen IRQ im Fehlerfalle mit einbezogen werden, mithin an eine entsprechende Einheit gesendet werden.
  • Die vorstehend unter Bezugnahme auf 1B beschriebenen Prinzipien der redundanten Berechnung und/oder der Übertragung von Paritätsinformationen und/oder fehlerkorrigierender Kodes ist vorteilhaft auch auf solche Konfigurationen anwendbar, bei denen anstelle einer einzigen Funktionseinheit 140' bzw. 140a' eine Mehrzahl von Funktionseinheiten (nicht gezeigt) zur Datenverarbeitung der Eingangsdaten E1 vorgesehen ist. In diesem Fall können die Blöcke 140', 140a' also jeweils eine Mehrzahl von Funktionseinheiten aufweisen. Diese können ihrerseits wiederum beispielsweise mittels der Verbindungseinheit 150 untereinander verbunden sein bzw. verbindbar sein. Alternativ oder ergänzend sind auch hier fest verdrahtete direkte Verbindungen zwischen den betreffenden Komponenten denkbar.
  • Bei einer Ausführungsform kann z.B. anstelle der Funktionseinheit 140' eine erste Gruppe von n vielen Funktionseinheiten vorgesehen sein, wobei n größer oder gleich eins ist. Bei einer weiteren Ausführungsform kann z.B. anstelle der Funktionseinheit 140a' eine zweite Gruppe von m vielen Funktionseinheiten vorgesehen sein, wobei m größer oder gleich eins ist. Ausführungsformen mit m ungleich n sind ebenfalls denkbar. Mit anderen Worten können die beiden Gruppen von Funktionseinheiten jeweils unterschiedlich viele Funktionseinheiten aufweisen oder jeweils gleich viele Funktionseinheiten aufweisen. In beiden Fällen ist es auch möglich, dass beide Gruppen beispielsweise eine gleichartige Verarbeitung derselben Eingangsdaten E1 im Sinne einer redundanten Berechnung ausführen, wodurch die Betriebssicherheit weiter gesteigert wird.
  • 1C zeigt eine weitere Ausführungsform 100b der erfindungsgemäßen Recheneinheit. Analog zu 1A weist die Recheneinheit 100b gemäß 1C wiederum drei Rechenkerne 100a, 110b, 110c auf sowie eine primäre Speichereinrichtung 120 sowie gegebenenfalls weitere Peripherieeinheiten, welche in 1C jedoch nicht explizit abgebildet sind, sondern durch die drei Punkte rechts der primären Speichereinrichtung 120 symbolisiert sind. Bei der vorliegenden Ausführungsform ist eine flexible Hardwareerweiterung in Form von mehreren Gruppen G1, G2 von Funktionseinheiten vorgesehen. Eine erste Gruppe G1 weist vorliegend beispielhaft drei Funktionseinheiten 140c, 140d, 140e auf, die untereinander über eine erste primäre Verbindungseinheit 150_1 verbunden sind. Eine zweite Gruppe G2 weist vorliegend beispielhaft zwei Funktionseinheiten 140f, 140g auf, die untereinander über eine zweite primäre Verbindungseinheit 150_2 verbunden sind. Die erste primäre Verbindungseinheit 150_1 ist dazu ausgebildet, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen den Funktionseinheiten 140c, 140d, 140e der ersten Gruppe G1 herzustellen. Die zweite primäre Verbindungseinheit 150_2 ist dazu ausgebildet, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen den Funktionseinheiten 140f, 140g der zweiten Gruppe G2 herzustellen. Die erste primäre Verbindungseinheit 150_1 und/oder die zweite primäre Verbindungseinheit 150_2 können beispielsweise als Koppelnetz, insbesondere blockierungsfreies Koppelnetz, Bussystem, direkte Datenverbindung, wenigstens eine Kombination hieraus oder in sonstiger Weise ausgebildet sein. Eine entsprechende Datenverbindung der jeweiligen Funktionseinheiten derselben Gruppe ist in 1C durch nicht näher bezeichnete Blockpfeile zwischen den betreffenden Funktionseinheiten und der jeweils zugeordneten primären Verbindungseinheit symbolisiert.
  • Durch die vorliegende Ausführungsform 100b der Recheneinheit können gleichsam mehrere Cluster G1, G2 von Funktionseinheiten bereitgestellt werden, welche jeweils gleichartige oder verschiedenartige Berechnungen oder sonstige Aufgaben ausführen können. Bei einer besonders bevorzugten Ausführungsform ist vorgesehen, dass die beiden Cluster bzw. Gruppen G1, G2 zueinander redundante Berechnungen unter Verwendung derselben Eingangsdaten ausführen. Zusätzlich kann wenigstens eine weitere Funktionseinheit 140b" bei der Recheneinheit 100b dazu vorgesehen sein, die hierbei entstehenden Ausgangsdaten im Sinne der erfindungsgemäßen Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten auszuwerten, insbesondere die Daten zu vergleichen bzw. die Datenübertragung anhand der Paritätsinformationen auf Fehler zu prüfen bzw. die erhaltenen Daten mithilfe fehlerkorrigierender Codes zu korrigieren. Insbesondere sind bei dieser Ausführungsform auch Fehler erkennbar, die in wenigstens einer der primären Verbindungseinheiten 150_1, 150_2 entstehen.
  • Vorliegend ist eine Datenverbindung zwischen den Gruppen G1, G2, der weiteren Funktionseinheit 140b" und der Hauptverbindungseinheit 130 durch eine sekundäre Verbindungseinheit 155a realisiert, welche beispielsweise als Koppelnetz, Bussystem, oder in sonstiger Form ausgebildet sein kann. Entsprechende Datenverbindungen sind durch die Blockpfeile a4, a5, a5' symbolisiert. Die sekundäre Verbindungseinheit 155a kann ferner zur Herstellung einer direkten Datenverbindung zwischen den Gruppen G1, G2 bzw. deren Funktionseinheiten ausgebildet sein, also ohne Einbeziehung der Hauptverbindungseinheit 130 für eine solche Datenverbindung.
  • Bei einer weiteren Ausführungsform (nicht gezeigt) ist vorgesehen, dass eine primäre Verbindungseinheit 150_1, welche einer Gruppe G1 von Funktionseinheiten zugeordnet ist, dazu ausgebildet ist, eine Datenverbindung zwischen Funktionseinheiten unterschiedlicher Gruppen G1, G2 und/oder der weiteren Funktionseinheit 140b" herzustellen.
  • 1D zeigt eine weitere Ausführungsform 100c der erfindungsgemäßen Recheneinheit. Im Gegensatz zu der Ausführungsform gemäß 1C ist eine sekundäre Verbindungseinheit 155c vorgesehen, welche jeweils eine Datenverbindung a6, a7 zwischen den primären Verbindungseinheiten 150_1, 150_2 der Gruppen G1, G2 herstellt, sowie eine Datenverbindung a8 zwischen diesen Elementen und der Hauptverbindungseinheit 130. Eine zur Fehlererkennung vorgesehene Funktionseinheit 140b" ist ebenfalls an die sekundäre Verbindungseinheit 155c angebunden, vergleiche den Pfeil a7'.
  • Bei einer Ausführungsform ist vorgesehen, dass die beiden Gruppen G1, G2 zueinander redundante Berechnungen ausführen, deren Ergebnisse durch die Funktionseinheit 140b" im Sinne einer Fehlererkennung auswertbar sind. Bei weiteren Ausführungsformen ist vorstellbar, dass Funktionseinheiten der ersten Gruppe G1 zeitlich nacheinander redundante Berechnungen ausführen, beispielsweise dieselbe Berechnungsaufgabe auf denselben Eingangsdaten mehrfach hintereinander wiederholen, und dass eine weitere Funktionseinheit, beispielsweise eine Funktionseinheit der zweiten Gruppe G2 oder die Funktionseinheit 140b", eine Auswertung der hierbei erhaltenen Ergebnisse im Sinne einer Fehlererkennung ausführt, insbesondere indem die in Gruppe G1 redundant berechneten Ausgabedaten jeweils an die auswertende Funktionseinheit der zweiten Gruppe G2 oder die Funktionseinheit 140b" übertragen werden.
  • 1E zeigt eine weitere Ausführungsform 100d der erfindungsgemäßen Recheneinheit. Hierbei sind weitere Peripheriekomponenten der Recheneinheit 100d wie beispielsweise Analog/Digital-Wandler 125a, Schnittstellenbausteine 125b gezeigt. Bei dieser Ausführungsform ist als sekundäre Verbindungseinheit ferner ein Bussystem 155d vorgesehen, welches eine Datenverbindung a8' zwischen der Hauptverbindungseinheit 130 und der primären Verbindungseinheit 150 herstellt. Bevorzugt weist die primäre Verbindungseinheit 150 wiederum ein Koppelnetz 152 auf, um die verschiedenen Funktionseinheiten 140h, 140i, ..., 140p untereinander zu verbinden. Optional weist die Funktionseinheit 140h zusätzlich zu ihrer Datenverbindung zu dem Koppelnetz 152 eine direkte Datenverbindung a9 zu dem Bussystem 155d auf. Die weitere Funktionseinheit 140i ist in vergleichbarer Weise sowohl über das Koppelnetz 152 als auch eine direkte Verbindung a10 zu dem Bussystem 155d angebunden.
  • Bei einer vorteilhaften Ausführungsform kann wenigstens eine der Funktionseinheiten 140h, 140i, ..., 140p zur Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten wenigstens einer Komponente der Recheneinheit 100d ausgebildet sein, insbesondere auch zu einer Auswertung von zueinander redundanten Berechnungen von Komponenten der erfindungsgemäßen Recheneinheit, die nicht bzw. nicht nur Funktionseinheiten umfassen, sondern zusätzlich und/oder ausschließlich besonders vorteilhaft die Rechenkerne 110a, 110b, 110c und/oder die Peripherieeinheiten 125.
  • Bei manchen Ausführungsformen ist es möglich, dass eine oder mehrere Funktionseinheiten 140 auf die primäre Speichereinrichtung 120 zugreifen, was üblicherweise unter Verwendung der Hauptverbindungseinheit 130, der sekundären Verbindungseinheit 155 sowie gegebenenfalls einer primären Verbindungseinheit 150 (1A) erfolgt.
  • Bei einer weiteren bevorzugten Ausführungsform 100e der erfindungsgemäßen Recheneinheit, die nachstehend unter Bezugnahme auf 1F beschrieben ist, ist mindestens eine sekundäre Speichereinrichtung 160 vorgesehen. Die sekundäre Speichereinrichtung 160 ist vorzugsweise als Direktzugriffsspeicher (RAM), insbesondere als statischer Direktzugriffsspeicher (SRAM, static RAM) ausgebildet. Vorliegend ist beispielhaft eine sekundäre Speichereinrichtung 160 abgebildet; bei weiteren Ausführungsformen können jedoch auch mehrere sekundäre Speichereinrichtungen 160 vorgesehen sein. Für solche Ausführungsformen geltend die nachfolgend beschriebenen Aspekte, die beispielhaft an der einen in 1F abgebildeten sekundären Speichereinrichtung 160 erläutert sind, entsprechend.
  • Bei einer besonders vorteilhaften Ausführungsform weist die sekundäre Speichereinrichtung 160 mehrere Speicherbänke 162a, 162b, 162c, ..., 162n auf. Insbesondere kann die sekundäre Speichereinrichtung dazu ausgebildet sein, einen parallelen Datenzugriff auf wenigstens zwei der mehreren Speicherbänke 162a, 162b, 162c, ..., 162n zu ermöglichen. Dadurch wird vorteilhaft eine hohe Bandbreite für Zugriffe auf die sekundäre Speichereinrichtung 160 bzw. deren Bänke ermöglicht, und insbesondere können auch nicht zusammenhängende Datenblöcke parallel bzw. gleichzeitig in die sekundäre Speichereinrichtung 160 geschrieben bzw. von der sekundären Speichereinrichtung 160 gelesen werden.
  • Bei einer weiteren bevorzugten Ausführungsform können Daten der sekundären Speichereinrichtung 160 zur Steigerung der Betriebssicherheit auch mit Paritätsinformationen zur Erkennung von Fehlern angereichert und/oder mit fehlerkorrigierenden Kodes (ECC) versehen in der Speichereinrichtung 160 gespeichert sein. Bei Erkennung eines Fehler kann dieser, sofern korrigierbar, korrigiert werden. Gegebenenfalls kann eine Fehlerreaktion, beispielsweise ein Interrupt IRQ (1B), ausgelöst werden. Diese kann gegebenenfalls eine Unterscheidung zwischen korrigierbaren und nicht korrigierbaren Fehler ermöglichen.
  • Bei einer weiteren Ausführungsform können Daten zur Steigerung der Betriebssicherheit auch redundant in der Speichereinrichtung 160 gespeichert sein. Beispielsweise können in einer ersten Speicherbank 162a dieselben Daten gespeichert sein wie in einer zweiten Speicherbank 162b. Optional kann wenigstens eine Funktionseinheit den Inhalt der betreffenden Speicherbänke miteinander vergleichen, um ein mögliches Auftreten von Fehlern bei der Speicherung von Daten zu erkennen und gegebenenfalls eine Fehlerreaktion, beispielsweise einen Interrupt IRQ (1B), auszulösen.
  • In einer vorteilhaften Ausführungsform ist auch denkbar, dass eine Funktionseinheit 140h oder mehrere Funktionseinheiten (140, 140a... 140g) im Verbund, vorzugsweise zyklisch, Prüfsummen über zumindest manche Speicherbereiche der primären Speichereinrichtung 120 und/oder der sekundären Speichereinrichtung 160 bilden und auswerten, um Fehler im Bereich der Speichereinrichtung 120 und/oder 160 wie beispielsweise unerwünschte Zustandsänderungen erkennen zu können.
  • Vorliegend ist der sekundären Speichereinrichtung 160 ein Speicherbussystem 164 zugeordnet, welches einen Zugriff auf die Speicherbänke der sekundären Speichereinrichtung 160 ermöglicht, vgl. die Blockpfeile a11. Das Speicherbussystem 164 ist vorteilhafterweise über eine Buskopplungseinheit 165 mit dem Bussystem 155d gekoppelt, welches die vorstehend bereits beschriebene Datenverbindung zwischen dem Koppelnetz 152 bzw. den Funktionseinheiten 140i, 140k, ..., 140p und der Hauptverbindungseinheit 130 ermöglicht. Die Buskopplungseinheit 165 ermöglicht einen Datenaustausch zwischen dem Bussystem 155d und dem Speicherbussystem 164, vgl. den Pfeil a14. Dadurch wird insbesondere ermöglicht, dass Speicherbereiche der sekundären Speichereinrichtung 160 in einem globalen Adressraum der Recheneinheit 100e sichtbar werden und damit beispielsweise auch zugreifbar sind (Lesen und/oder Schreiben) für andere Peripheriekomponenten 125a, 125b der erfindungsgemäßen Recheneinheit 100. In einer besonders bevorzugten Ausführungsform kann ferner eine direkte Datenverbindung a12, a13 zwischen einzelnen Funktionseinheiten 140h, 140i und dem Speicherbussystem 164 bestehen, sodass die betreffenden Funktionseinheiten 140h, 140i direkt auf die sekundäre Speichereinrichtung 160 zugreifen können, insbesondere ohne das Koppelnetz der primären Verbindungseinheit 150 bzw. ggf. die Hauptverbindungseinheit 130 verwenden zu müssen. Bei einer weiteren Ausführungsform (nicht gezeigt) können mehrere parallele Speichereinrichtungen 160 mit den zuvor genannten Merkmalen vorhanden sein.
  • Nachfolgend werden Details betreffend einen Aufbau der erfindungsgemäßen Funktionseinheiten unter Bezugnahme auf 2A, 2B näher beschrieben. 2A zeigt hierzu schematisch ein vereinfachtes Blockdiagramm einer Funktionseinheit 1400 gemäß einer Ausführungsform der Erfindung. Die nachfolgend unter Bezugnahme auf 2A beschriebene Struktur der Funktionseinheit 1400 kann beispielsweise bei einer oder mehreren bzw. allen der vorstehend genannten und unter Bezugnahme auf die 1A bis 1F beschriebenen Funktionseinheiten 140,140a,... , 140p in der in 2A abgebildeten Weise oder wenigstens in ähnlicher Weise vorhanden sein. Es versteht sich, dass weiteren Ausführungen zufolge Abweichungen von der 2A beschriebenen Struktur ebenfalls möglich sind.
  • Die Funktionseinheit 1400 weist eine optionale, typischerweise aber vorhandene, Eingangsschnittstelle 1402 zum Empfang von ersten Daten auf, welche beispielsweise von einer weiteren Funktionseinheit (nicht gezeigt) an die Funktionseinheit 1400 gemäß 2A übertragen werden. Für die weitere Beschreibung der 2A wird beispielhaft davon ausgegangen, dass die Funktionseinheit 1400 über ihre Eingangsschnittstelle 1402 wenigstens eine Datenverbindung zu einer primären Verbindungseinheit 150 (vergleiche 1A) aufweist, wobei die primäre Verbindungseinheit 150 vorzugweise ein Koppelnetz 152a aufweist. Eine entsprechende Ausgangsschnittstelle des Koppelnetzes 152a, die mit der Eingangsschnittstelle 1402 der Funktionseinheit 1400 verbunden ist, ist in 2A durch das gestrichelt gezeichnete Rechteck 1502 symbolisiert. Erste Eingangsdaten, die der Eingangsschnittstelle 1402 der Funktionseinheit 1400 über die Ausgangsschnittstelle 1502 des Koppelnetzes 152 (1A) zuführbar sind, sind in 2A mit dem Blockpfeil a20 bezeichnet.
  • Bei einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass der Funktionseinheit 1400 mehrere Eingangsdaten, insbesondere gleichzeitig, zuführbar sind, was in 2A durch den gestrichelt gezeichneten Blockpfeil a21 sowie die Punkte zwischen dem Blockpfeilen a20, a21 angedeutet ist. Für den gleichzeitigen bzw. parallelen Empfang von Eingangsdaten können bei einer Ausführungsform z.B. entsprechend viele Eingangsschnittstellen 1402 vorgesehen sein (nicht gezeigt).
  • Bei einer Ausführungsform ist vorgesehen, dass die Eingangsschnittstelle 1402 zum Empfang von ersten Daten bzw. Eingangsdaten in Form von Datenpaketen ausgebildet ist. Die Datenpakete können beispielsweise ein Format haben, welches spezifisch ist für eine Kommunikation zwischen mehreren erfindungsgemäßen Funktionseinheiten 1400.
  • Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die Eingangsschnittstelle 1402 nur geschriebene Daten empfangen kann, jedoch explizit keine Lesezugriffe von außen unterstützt bzw. diese alternativ unterbinden kann. Ebenso kann in einer weiteren Ausführungsform vorgesehen sein, dass die Funktionseinheit 1400 keinen Datentransfer, weder lesend noch schreibend über die Schnittstelle 1402 absetzen bzw. initiieren kann. Dazu kann die Schnittstelle 1402 technisch entsprechend eingeschränkt sein oder aber diese Zugriffmöglichkeit unterbunden werden.
  • Bei weiteren Ausführungsformen (nicht gezeigt) kann auch vorgesehen sein, dass eine Funktionseinheit 1400 mehrere Eingangsschnittstellen 1402 des vorstehend beschriebenen Typs aufweist. Beispielhaft kann die Eingangsschnittstelle 1402 auch als funktionseinheitsspezifische Eingangsschnittstelle bezeichnet werden, weil sie speziell zur, vorzugsweise direkten, Datenkommunikation zwischen verschiedenen Funktionseinheiten untereinander vorgesehen ist. Unter einer direkten Datenkommunikation zwischen Funktionseinheiten wird hierbei eine Datenkommunikation verstanden, welche neben den beteiligten Funktionseinheiten allenfalls noch eine primäre Verbindungseinheit 150, beispielsweise mit dem Koppelnetz 152, aufweist, nicht jedoch beispielsweise die Hauptverbindungseinheit 130 der erfindungsgemäßen Recheneinheit 100 (1A).
  • Alternativ ist es bei weiteren Ausführungsformen (nicht gezeigt) auch denkbar, dass eine Funktionseinheit gar keine Eingangsschnittstelle 1402 des vorstehend beschriebenen Typs aufweist, also gar keine funktionseinheitsspezifische Eingangsschnittstelle. Eine derartig konfigurierte Funktionseinheit kann demnach keine Eingangsdaten von einer anderen Funktionseinheit über die vorstehend genannte Eingangsschnittstelle 1402 entgegennehmen. Beispielsweise kann eine derartige Funktionseinheit jedoch dazu ausgebildet sein, Daten aus einer anderen Quelle zu laden, beispielsweise aus der primären Speichereinrichtung 120 der Recheneinheit über die Verbindung a9 (1E) und/oder der sekundären Speichereinrichtung 160, vergleiche 1F. Das Laden solcher Daten aus einer anderen Quelle kann über eine entsprechend konfigurierte andersartige Schnittstelle erfolgen, beispielsweise über eine direkte Datenverbindung, z.B. zwischen der Funktionseinheit und der sekundären Speichereinrichtung 160, wie dies in 1F durch den Blockpfeil a12 symbolisiert ist. Eine derartige andersartige Schnittstelle ist in 2A auch angedeutet durch den gestrichelt gezeichneten Blockpfeil a24.
  • Bei einer bevorzugten Ausführungsform ist die Funktionseinheit dazu ausgebildet, über die Schnittstelle a24 eine vorgebbare Menge von Datenworten einzulesen bzw. an diese auszugeben, beispielsweise wenigstens ein Datenwort, oder aber z.B. N viele Datenwörter, mit N >= 1. Dies kann bevorzugt eigenständig erfolgen, also ohne dass eine (Re-)Konfiguration der Funktionseinheit oder eine Interaktion der Funktionseinheit mit anderen Komponenten erforderlich ist, bevor alle einzulesenden bzw. auszugebenden Datenworte gelesen bzw. geschrieben worden sind. Optional kann die Funktionseinheit auch dazu ausgebildet sein, Informationen, die die eingelesene bzw. ausgegebene Menge von Datenworten charakterisieren, an eine nachfolgende Funktionseinheit auszugeben.
  • Vorteilhafter Weise können Funktionseinheiten 1400 weiteren Ausführungsformen zufolge derart gestaltet sein, dass die durch die Funktionseinheit über die Eingangsschnittstelle 1402 empfangenen ersten Eingangsdaten über die Schnittstelle a24 unverändert oder in bearbeiteter Form ausgegeben werden, insb. an die sekundäre Speichereinrichtung 160 und / oder insb. auch an eine der restlichen Komponenten der Recheneinheit 100, insb. an die primäre Speichereinrichtung 120 oder an weitere Peripheriekomponenten 125.
  • Zur Ausgabe von Ausgangsdaten weist die Funktionseinheit 1400 einer Ausführungsform zufolge eine optionale Ausgangsschnittstelle 1404 auf. Beispielsweise werden Ausgangsdaten durch die Funktionseinheit 1400 in Abhängigkeit von den über die Eingangsschnittstelle 1402 empfangenen ersten Daten gebildet und als zweite Daten über die Ausgangsschnittstelle 1404 ausgegeben, beispielsweise an eine oder mehrere andere Funktionseinheiten (nicht in 2A gezeigt). Eine Datenausgabe von der Funktionseinheit 1400 über ihre Ausgangsschnittstelle 1404 an sich selbst, z.B. über ihre Eingangsschnittstelle 1402, ist bei manchen Ausführungsformen ebenfalls denkbar. Die Ausgangsdaten sind in 2A durch den Blockpfeil a22 symbolisiert. Besonders vorteilhaft ist die Ausgangsschnittstelle 1404 ebenfalls an das Koppelnetz 152a (1A) angebunden, vergleiche die in 2A durch ein gestricheltes Rechteck symbolisierte Eingangsschnittstelle 1504 des Koppelnetzes 152a.
  • Bei weiteren Ausführungsformen (nicht gezeigt) kann auch vorgesehen sein, dass eine Funktionseinheit mehrere Ausgangsschnittstellen 1404 des vorstehend beschriebenen Typs aufweist. Beispielhaft kann die Ausgangsschnittstelle 1404 auch als funktionseinheitsspezifische Ausgangsschnittstelle bezeichnet werden, weil sie speziell zur, vorzugsweise direkten, Datenkommunikation zwischen verschiedenen Funktionseinheiten untereinander vorgesehen ist.
  • Bei einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass die Funktionseinheit 1400 mehrere Ausgangsdaten, insbesondere gleichzeitig, ausgeben kann, was in 2A durch den gestrichelt gezeichneten Blockpfeil a23 sowie die Punkte zwischen den Blockpfeilen a22, a23 angedeutet ist. Für die gleichzeitige bzw. parallele Ausgabe können wie zuvor beschrieben entsprechend viele Ausgangsschnittstellen 1404 vorgesehen sein.
  • Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die Ausgangsschnittstelle 1404 nur Daten schreiben kann, nicht jedoch Lesezugriffe nach außen unterstützt bzw. diese alternativ unterbinden kann. Ebenso kann in einer Ausführungsform vorgesehen sein, dass die Funktionseinheit 1400 keine von außen initiierten Datentransfers, weder lesend noch schreibend über die Schnittstelle 1404 empfangen kann. Dazu kann die Schnittstelle 1404 technisch entsprechend eingeschränkt sein oder aber diese Zugriffmöglichkeit unterbunden werden.
  • Alternativ ist es bei weiteren Ausführungsformen (nicht gezeigt) auch denkbar, dass eine Funktionseinheit gar keine Ausgangsschnittstelle 1404 des vorstehend beschriebenen Typs aufweist, also gar keine funktionseinheitsspezifische Ausgangsschnittstelle. Eine derartig konfigurierte Funktionseinheit kann demnach keine Ausgangsdaten über die vorstehend genannte Ausgangsschnittstelle 1404 an andere Funktionseinheiten ausgeben. Beispielsweise kann eine derartige Funktionseinheit jedoch dazu ausgebildet sein, Daten an eine andere Einheit auszugeben, beispielsweise durch Schreiben in die primäre Speichereinrichtung 120 der Recheneinheit, z.B. über die Verbindung a9 (1E), und/oder die sekundäre Speichereinrichtung 160, z.B. über die Verbindung a12, vergleiche 1F. Das Schreiben solcher Daten kann über eine entsprechend konfigurierte andersartige Schnittstelle erfolgen, beispielsweise über eine direkte Datenverbindung zwischen der Funktionseinheit und der sekundären Speichereinrichtung 160, wie dies in 1F durch den Blockpfeil a12 symbolisiert ist. Eine derartige andersartige Schnittstelle ist in 2A auch angedeutet durch den bereits vorstehend erwähnten gestrichelt gezeichneten Blockpfeil a24.
  • Beispielsweise ist es auch denkbar, eine Funktionseinheit 1400, die zur erfindungsgemäßen Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten vorgesehen ist, ohne die Ausgangsschnittstelle 1404 vorzusehen. Eine solche Funktionseinheit kann beispielsweise über ein Ausgangssignal beispielsweise eine Unterbrechungsanforderung IRQ wie vorstehend bereits unter Bezugnahme auf 1B beschrieben absetzen, zum Beispiel um einen erkannten Fehler an andere Komponenten der Recheneinheit 100 wie beispielsweise einen Rechenkern 110a und/oder weitere Peripheriekomponenten 125 zu signalisieren. Die Unterbrechungsanforderung IRQ kann beispielsweise durch eine lokale Steuereinrichtung 1410 der Funktionseinheit 1400 erzeugt und ausgegeben werden, die beispielsweise auch zur Fehlererkennung nutzbar ist.
  • In einer weiteren Ausführungsform kann eine Funktionseinheit 1400, die zur erfindungsgemäßen Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten vorgesehen ist, auch mit mindestens einer Ausgangsschnittstelle 1404 vorgesehen sein. Beispielsweise können die gegebenenfalls korrigierten Daten, Statusinformationen, insb. Fehlerinformationen, Konfigurationsdaten und/oder weitere Daten an wenigstens eine nachfolgende Funktionseinheit ausgegeben werden. Vorteilhafterweise kann dann die wenigstens eine nachfolgende Funktionseinheit über ein Ausgangssignal beispielsweise eine Unterbrechungsanforderung IRQ wie vorstehend bereits unter Bezugnahme auf 1B beschrieben absetzen, zum Beispiel um einen von vorstehender Funktionseinheit erkannten Fehler an andere Komponenten der Recheneinheit 100 wie beispielsweise einen Rechenkern 110a und/oder weitere Peripheriekomponenten 125 zu signalisieren.
  • Vorteilhafterweise können Funktionseinheiten 1400 bei weiteren Ausführungsformen derart gestaltet sein, dass die durch die Funktionseinheit über die Schnittstelle a24 empfangenen Daten über die Ausgangsschnittstelle 1404 unverändert oder in bearbeiteter Form an eine oder mehrere nachfolgende Funktionseinheiten 1400 ausgegeben werden, wobei mittels der Schnittstelle a24 insbesondere Daten von der sekundären Speichereinrichtung 160 und/oder insb. auch von den restlichen Komponenten der Recheneinheit 100, insb. der primären Speichereinrichtung 120 oder von weiteren Peripheriekomponenten 125, eingelesen werden.
  • Die Funktionseinheit 1400 weist ferner eine lokale Steuereinrichtung 1410 auf, die zur Steuerung eines Betriebs der Funktionseinheit 1400 ausgebildet ist. Beispielsweise kann die lokale Steuereinrichtung 1410 wenigstens einen Zustandsautomaten (englisch: state machine) 1410a umfassen. Bei alternativen Ausführungsformen kann die lokale Steuereinrichtung 1410 auch sonstige, vorzugsweise fest verdrahtete, Hardwareschaltungen umfassen.
  • Bei einer besonders bevorzugten weiteren Ausführungsform kann der lokalen Steuereinrichtung 1410 auch eine lokale Rekonfigurationseinrichtung 1412 zugeordnet sein, welche eine Konfiguration bzw. Rekonfiguration der Funktionseinheit 1400, insbesondere auch dynamisch, also während des Betriebs der Funktionseinheit 1400, ermöglicht. Bei einer weiteren Ausführungsform ist es auch denkbar, die Funktionalität der lokalen Rekonfigurationseinrichtung 1412 durch einen entsprechenden Teil des Zustandsautomaten 1410a bzw. der lokalen Steuereinrichtung 1410 abzubilden.
  • Bei einer weiteren Ausführungsform ist die Rekonfigurationseinrichtung 1412 dazu ausgebildet, während einer Konfiguration bzw. Rekonfiguration die möglichen Konfigurationsvarianten der betreffenden Funktionseinheit 1400 zu berücksichtigen, und/oder sicherzustellen, dass eine Konfiguration von einem definierten, gültigen Startpunkt bzw. Startzustand ausgeht, und/oder dass eine Rekonfiguration momentan ablaufende Berechnungen bzw. sonstige Funktionen der Funktionseinheit 1400 nicht beeinträchtigt bzw. unbeabsichtigt unterbricht.
  • Bei einer weiteren vorteilhaften Ausführungsform weist die Funktionseinheit eine lokale Berechnungseinheit 1420 auf. Einer weiteren vorteilhaften Ausführungsform zufolge kann die lokale Berechnungseinheit 1420 wenigstens ein grobgranulares Hardwareelement aufweisen oder als grobgranulares Hardwareelement ausgebildet sein. In diesem Fall kann die lokale Rekonfigurationseinrichtung 1412 vorteilhaft z.B. eine (Re-)Konfiguration der grobgranularen Hardwareelemente steuern. Vorteilhaft ist bei manchen Ausführungsformen auch die lokale Berechnungseinheit 1420 zur Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten durch wenigstens eine Komponente der Recheneinheit nutzbar. Hierzu kann die lokale Berechnungseinheit 1420 beispielsweise einen Vergleicher (nicht gezeigt) aufweisen, der redundant (durch andere und/oder die eigene Funktionseinheit) berechnete Ausgangsdaten A1, A2 (1B) im Sinne der Fehlererkennung vergleicht.
  • Bei einer weiteren bevorzugten Ausführungsform weist wenigstens eine der Funktionseinheiten einer Recheneinheit 100 wenigstens ein grobgranulares Hardwareelement auf. Alternativ oder ergänzend kann wenigstens eine der Funktionseinheiten als grobgranulares Hardwareelement ausgebildet sein. Im Allgemeinen wird unter Granularität verstanden, bis zu welchem Grad ein System aus voneinander unterscheidbaren einzelnen Einheiten zusammengesetzt ist. Ein grobgranulares System ist aus vergleichsweise wenigen, vergleichsweise großen grobgranularen Elementen zusammengesetzt, wohingegen ein feingranulares System aus vergleichsweise vielen, vergleichsweise kleinen feingranularen Elementen zusammengesetzt ist. Im Speziellen kann Granularität im Bereich von Rechner-Architekturen durch die Anzahl logischer Gatter und damit einhergehend insbesondere durch ein Verhältnis zwischen Rechenoperationen bzw. Abarbeitungszeiten und Kommunikation bzw. Datenaustausch beschrieben werden. In feingranularen Hardwareelementen (jeweils ein logisches Gatter) können einfache logische Operationen schnell in vergleichsweise kurzer Abarbeitungszeit ausführt werden, jedoch werden zwischen einzelnen Elementen häufig Daten ausgetauscht. Im Gegensatz dazu werden in grobgranularen Hardwareelementen (jeweils mehrere logische Gatter) insbesondere jeweils komplexe Operationen mit vergleichsweise langen Abarbeitungszeiten ausgeführt und es werden seltener Daten zwischen einzelnen Elementen ausgetauscht.
  • Unter grobgranularen Hardwareelementen sind somit insbesondere Elemente zu verstehen, welche jeweils selbsttätig komplexe Rechenoperationen ausführen können, insbesondere ohne dafür häufig untereinander Daten auszutauschen. Beispielsweise sind die einzelnen grobgranularen Hardwareelemente jeweils als eines der folgenden Elemente ausgebildet: höherkomplexe Elemente wie arithmetisch-logische Einheit (ALU), Speicherzugriffseinheit, Kommunikationsschnittstelle und/oder weniger komplexe Einheiten wie Komparator, Addierer, Multiplizierer, Dividierer, Schieberegister, Barrel-Shifter, Multiplikationsaddierer („Multiply-Accumulate“, (MAC)), Register bzw. Registerblock, Speichereinheit (z.B. RAM, Flash usw.), Multiplexer (z.B. 2:1-MUX, M:N-MUX), Demultiplexer, Vergleicher (zum Beispiel für redundant berechnete Ausgangsdaten A1, A2), Prüfsummen-Berechnungseinheiten, Fehlerkorrektureinheiten (die beispielsweise fehlerkorrigierende Kodes anwenden können).
  • Beispielsweise weisen herkömmliche hardwarekonfigurierbare Logikschaltungen wie z.B. FPGAs oder CPLDs zumeist nur feingranulare Hardwareelementente auf, deren Konfiguration nur durch externe Vorgaben verändert werden kann. Derartige herkömmliche hardwarekonfigurierbare Logikschaltungen sind somit als (integrierte) Schaltkreise anzusehen, welche auf Hardwareebene in einer speziellen Programmierphase programmiert werden können. Dies gilt auch für FPGAs mit der Möglichkeit zur teilweisen (partiellen) Re-Konfiguration. Hier wird eine entsprechende Anzahl funktionsbestimmender Re-Konfigurationsmöglichkeiten vorgehalten, die nach externen Vorgaben verändert werden, wobei die betreffenden FPGA-Teile mittels einer partiellen Re-Konfigurationen in einer jeweils speziellen Re-Programmierphase entsprechend neu programmiert und verschaltet werden. Die umkonfigurierten FPGA-Teile ändern dabei die Logikfunktion selbst.
  • Im Gegensatz dazu stellt die erfindungsgemäße Funktionseinheit 1400 eine Berechnungseinheit bzw. eine Komponente einer Berechnungseinheit dar, deren Elemente, z.B. grobgranulare Hardwareelemente, intern durch die Funktionseinheit 1400 selbst bzw. ihre lokale Steuereinrichtung 1410 in der Funktion konfiguriert und z.B. neu miteinander verschaltet werden können, beispielsweise unter Verwendung und entsprechender Einstellung von Multiplexern. Ebenso kann vorgesehen sein, dass eine weitere Komponente der Recheneinheit 100 (1A), beispielsweise ein Rechenkern 110a, die Funktionseinheit 1400 bzw. ihre Komponenten konfiguriert.
  • Bei einer besonders bevorzugten Ausführungsform ist insbesondere eine für die Fehlererkennung vorgesehene Funktionseinheit 140b, vgl. z.B. 1A, vollständig als Hardwareschaltung ausgebildet. Das umfasst z.B. sowohl die Möglichkeit zum Vergleich empfangener, redundant berechneter, Daten, sowie die Möglichkeit zur Erkennung und/oder Korrektur von Fehlern in der Datenübertragung. Vorzugsweise erfolgt der Vergleich empfangener, redundant berechneter, Daten in der lokalen Berechnungseinheit 1420 (2A) sowie eine daraus ggf. resultierende Fehlerbehandlung in der Steuereinrichtung 1410.
  • Vorzugsweise erfolgt die Erkennung und/oder Korrektur von Fehlern in der Datenübertragung in der Eingangsschnittstelle 1402, beispielsweise unter Verwendung der empfangenen Paritärsinformationen und/oder fehlerkorrigierenden Kodes. Bei der Übertragung von Daten können diese Daten vorzugsweise durch die Ausgangsschnittstelle 1404 mit Paritätsinformationen und/oder fehlerkorrigierenden Kodes angereichert werden, um nachfolgenden Funktionseinheiten oder anderen Komponenten eine Fehlererkennung und/oder Fehlerkorrektur zu ermöglichen.
  • Ein weiterer Aspekt der erfindungsgemäßen Konfigurierbarkeit ist durch die Beeinflussung der Kommunikation und des Datenflusses zwischen verschiedenen Funktionseinheiten 140, 140a, 140b (1A) gegeben, was beispielsweise durch entsprechende Konfiguration der jeweiligen Funktionseinheiten gesteuert werden kann, und/oder durch eine Steuerung des Betriebs der die jeweiligen Funktionseinheiten verbindenden primären Verbindungseinheit(en) 150, vgl. 1A.
  • Bei einer Ausführungsform ist die interne Funktion, z.B. Logikfunktion, einzelner grobgranularer Hardwareelementente bzw. sonstiger Elemente der Funktionseinheit 1400 jeweils fest verdrahtet und ändert sich somit im Gegensatz zu herkömmlichen hardwarekonfigurierbaren Logikschaltungen nicht. Hierbei kann wie vorstehend beschrieben eine Beeinflussung der Kommunikation und des Datenflusses zwischen verschiedenen Funktionseinheiten erfolgen, um eine Rekonfiguration zu erreichen.
  • Vorteilhaft kann eine Neu- bzw. Rekonfiguration der erfindungsgemäßen Recheneinheit bzw. wenigstens einer ihrer Funktionseinheiten 1400 bei manchen Ausführungsformen von der Recheneinheit 100 bzw. der in der betreffenden Funktionseinheit 1400 integrierten Steuereinrichtung 1410 selbst, also von innen heraus, gesteuert, durchgeführt und ggf. überwacht werden. Die Funktionseinheit 1400 kann sich somit unabhängig und automatisch selbst umkonfigurieren.
  • Besonders bevorzugt kann eine (Re-)Konfiguration im Betrieb der Recheneinheit 100 bzw. der Funktionseinheit 1400 erfolgen, z.B. als Bestandteil eines Gesamtalgorithmus, der durch eine oder mehrere der Funktionseinheiten 1400, 140, 140a, ... auszuwerten ist. Vorteilhafterweise kann vorgesehen sein, dass Funktionseinheiten 1400, beispielsweise 140a und 140b, andere Funktionseinheiten 1400, beispielsweise 140c und 140d, bzw. deren Komponenten konfigurieren, um z.B. solch einen übergreifenden Gesamtalgorithmus zu realisieren.
  • Bei einer bevorzugten Ausführungsform ist vorgesehen, dass sich die Funktionseinheit 1400 insbesondere dann selbst umkonfiguriert, wenn ein vorgebbarer Rechenabschnitt bzw. eine vorgebbare Berechnungsaufgabe ausgeführt bzw. beendet worden ist und somit die entsprechenden Ressourcen der Funktionseinheit für diese Berechnungsaufgabe nicht weiter benötigt werden. In diesem Fall kann die Funktionseinheit 1400 vorteilhaft selbst ihre Konfiguration z.B. so ändern, dass sie für einen nachfolgenden Rechenabschnitt bzw. eine nachfolgende Berechnungsaufgabe geeignet konfiguriert ist.
  • Bei einer weiteren vorteilhaften Ausführungsform kann die lokale Berechnungseinheit 1420 wenigstens eine der Komponenten aufweisen: Addierer, Multiplizierer, Dividierer, Schieberegister, Barrel-Shifter, Komparator, Multiplikationsakkumulator (MAC), arithmetisch-logische Einheit (ALU), Speichereinheit, Register, Multiplexer, Demultiplexer, Schnittstelle, insbesondere Kommunikationsschnittstelle, Speicherzugriffseinheit (z.B. DMA Einheit), Einheit zur Berechnung von Exponentialfunktionen, Einheit zur Berechnung von logarithmischen Funktionen, Einheit zur Berechnung von Exponentialfunktionen, Einheit zur Berechnung von Wurzelfunktionen, Einheit zur Berechnung von trigonometrischen Funktionen, Lookup-Tabelle(n), Vergleicher (zum Beispiel für redundant berechnete Ausgangsdaten A1,A2), Prüfsummen-Berechnungseinheiten, fehlerkorrigierende Kodes erzeugende Einheiten, Fehlererkennungseinheiten, Fehlerkorrektureinheiten (die beispielsweise fehlerkorrigierende Kodes anwenden können). Kombinationen hieraus sind bei weiteren Ausführungsformen ebenfalls denkbar. Bevorzugt können eine oder mehrere der vorstehend genannten Komponenten in der Berechnungseinheit 1420 der erfindungsgemäßen Funktionseinheit 1400 angeordnet sein.
  • Die Berechnungseinheit 1420 kann dementsprechend Berechnungen auf den der Funktionseinheit 1400 zugeführten Eingangsdaten, z.B. einen Vergleich, ausführen und hieraus erhaltene Ergebnisse beispielsweise als Ausgangsdaten wieder ausgeben. Ein Datenfluss für diesen Vorgang erfolgt dabei bevorzugt über die Eingangsschnittstelle 1402 (Empfang von Eingangsdaten), die Berechnungseinheit 1420 (Ausführung der Berechnungen), die Ausgangsschnittstelle 1404 (Ausgabe von Ausgangsdaten). Dieser Datenfluss ist charakteristisch für die Berechnung bzw. Verarbeitung von Daten innerhalb einer Funktionseinheit 1400. Verfügt eine Funktionseinheit 1400 bei weiteren Ausführungsformen beispielsweise auch über die Fähigkeit zur Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten, können zusätzliche Ausgangssignale, insbesondere ein Fehlersignal und/oder ein Interruptsignal, ausgegeben werden.
  • Außerhalb der Funktionseinheit 1400 kann der Datenfluss einer bevorzugten Ausführungsform zufolge beeinflusst werden durch die Vorgabe, an welche (weitere) Funktionseinheit Ausgangsdaten einer ersten Funktionseinheit weiterzuleiten sind, was durch eine entsprechende Steuerung der primären Verbindungseinheit 150 bewerkstelligbar ist. Vorteilhafterweise kann die Steuerung der primären Verbindungseinheit 150 einmalig und somit für einen bestimmten Zeitraum dauerhaft eingestellt werden. Ebenso kann es vorteilhaft sein, die Steuerung der primären Verbindungseinheit 150 von Steuerdaten abhängig zu machen, die mit einzelnen oder auch mit jedem Paket mitversandt werden, insb. durch die Angabe einer Ziel-Funktionseinheit 1400.
  • Sofern komplexere Berechnungen auszuführen sind, können bei weiteren Ausführungsformen mehrere Funktionseinheiten, beispielsweise des in 2A abgebildeten Typs, vorgesehen werden, welche gleichartig oder ungleichartig konfigurierte Berechnungseinheiten 1420 aufweisen. Ein Datenfluss von Daten zwischen den verschiedenen Funktionseinheiten kann hierbei vorteilhaft durch einen Algorithmus bzw. die Struktur der auszuführenden komplexeren Berechnungen definiert sein. Besonders vorteilhaft weist eine Recheneinheit mehrere Funktionseinheiten zur Ausführung von Berechnungsaufgaben auf, und wenigstens eine Funktionseinheit zur Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Funktionseinheit 1400 einen lokalen Konfigurationsspeicher 1430 aufweist. Besonders bevorzugt kann der lokale Konfigurationsspeicher 1430 einen Registerspeicher umfassen, wobei insbesondere der lokale Konfigurationsspeicher 1430 mindestens ein, in vorteilhafter Weise jedoch eine Mehrzahl von Konfigurationsregistern 1432a, 1432b, 1432c, 1432d umfasst. In einer weiteren Ausführungsform kann der lokale Konfigurationsspeicher auch durch ein SRAM oder durch eine Kombination von Registerspeicher und SRAM repräsentiert werden. Im Folgenden wird die einen SRAM umfassende Ausführungsform als Registerspeicher zusammengefasst. Durch den lokalen Konfigurationsspeicher 1430 ist eine effiziente Konfiguration und Rekonfiguration, auch während des Betriebs der Funktionseinheit 1400, möglich, z.B. indem ein oder mehrere Konfigurationsregister 1432a, 1432b, 1432c, 1432d in der gewünschten Weise modifiziert werden. Das Modifizieren der Konfigurationsregister 1432a, 1432b, 1432c, 1432d kann beispielsweise durch die Funktionseinheit 1400 selbst und/oder durch eine andere Funktionseinheit (nicht gezeigt) erfolgen. Ferner ist es denkbar, dass bei weiteren Ausführungsformen ein Modifizieren der Konfigurationsregister einer Funktionseinheit 1400 durch weitere Komponenten der Recheneinheit 100 ( 1A), beispielsweise durch einen Rechenkern 110a, möglich ist, indem die betreffende Komponente 110a entsprechende Daten in das bzw. die Konfigurationsregister der Funktionseinheit 1400 schreibt. Durch den Inhalt der Konfigurationsregister ist manchen Ausführungsformen zufolge beispielsweise auch die Art und Weise der Erkennung von Fehlern bzw. der Datenvergleich beeinflussbar, oder auch die Bildung bzw. Auswertung von Prüfsummen bzw. von fehlererkennenden bzw. fehlerkorrigierenden Kodes.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Funktionseinheit 1400 einen lokalen Funktionsspeicher 1440 aufweist. Besonders bevorzugt kann der lokale Funktionsspeicher 1440 einen Registerspeicher umfassen bzw. einen Teil eines Registerspeichers darstellen. Insbesondere kann der lokale Funktionsspeicher 1440 wenigstens ein Funktionsregister 1442a umfassen. Der lokale Funktionsspeicher 1440 kann vorteilhaft zur zumindest zeitweisen Speicherung von Eingangsdaten und/oder Ausgangsdaten der Funktionseinheit 1400 bzw. von Zwischenergebnissen von Berechnungen der Funktionseinheit 1400, wie sie von der Berechnungseinheit 1420 ausgeführt werden, verwendet werden. Bei einer weiteren vorteilhaften Ausführungsform ist es auch denkbar, die Funktionseinheit 1400 mit einer Vielzahl von Registerspeichern auszustatten, wobei eine erste Anzahl der Registerspeicher als Konfigurationsregister 1432a, 1432b, 1432c, 1432d verwendbar ist, und wobei eine zweite Anzahl der Registerspeicher als Funktionsregister 1442a verwendbar ist.
  • Bei einer bevorzugten Ausführungsform ist für den Datenaustausch zwischen verschiedenen Funktionseinheiten 1400 eine bestimmte Datenstruktur, beispielsweise in Form eines Datenpakets, vorgesehen. 2B zeigt schematisch eine vereinfachte Darstellung einer Datenstruktur DS für derartige Datenpakete gemäß einer Ausführungsform. Die Datenstruktur DS weist ein Adressfeld ADR auf. Das Adressfeld ADR ist unterteilt in eine erste Adresse ADR1, die eine bestimmte Funktionseinheit spezifiziert, für welche das die Datenstruktur DS aufweisende Datenpaket bestimmt ist. Eine optionale zweite Adresse ADR2 definiert eine Zieladresse innerhalb der durch die erste Adresse ADR1 bestimmten Funktionseinheit, wodurch vorteilhaft Einfluss darauf genommen werden kann, in welchem lokalen Speicherbereich der Ziel-Funktionseinheit in dem Datenpaket enthaltene Daten abgespeichert werden. Beispielsweise kann die zweite Adresse ADR2 dafür verwendet werden, bestimmte Speicherregister der Ziel-Funktionseinheit zu adressieren.
  • Bei Ausführungen der erfindungsgemäßen Recheneinheit, welche beispielsweise einige zehn Funktionseinheiten 1400 aufweisen, werden üblicherweise wenige Bits, beispielsweise etwa die Bits 10 bis 5 (also z.B. sechs Bits) ausreichen, um die erste Adresse ADR1 zu definieren. Vergleichbares gilt für die „interne Adressierung“ mittels der zweiten Adresse ADR2 bezüglich der in den Funktionseinheiten 1400 zur Verfügung stehenden Speicherregister, die bei einer Ausführungsform beispielsweise durch die Bits 4 bis 0 selektiert werden.
  • Weiter optional kann die Datenstruktur DS ein Datenfeld DAT aufweisen, welches Eingangsdaten, beispielsweise zur Berechnung durch die Ziel-Funktionseinheit, aufweist und/oder Konfigurationsdaten, welche beispielsweise zur Steuerung einer Konfiguration der Ziel-Funktionseinheit vorgesehen sind.
  • Bei weiteren Ausführungsformen ist es ebenfalls möglich, dass Datenpakete zwischen Funktionseinheiten ausgetauscht werden, welche ein leeres Datenfeld DAT, also weder Eingangsdaten für eine Berechnung noch Konfigurationsdaten für die Ziel-Funktionseinheit enthalten. Dies kann beispielsweise für eine Synchronisierung unterschiedlicher Funktionseinheiten von Bedeutung sein.
  • Optional können in der Datenstruktur DS auch noch Steuerdaten enthalten sein, welche in dem mit dem Bezugszeichen CTRL bezeichneten Datenfeld angeordnet sein können. Hierbei kann es sich beispielsweise um zusätzliche Steuerdaten (also zusätzlich zu den Konfigurationsdaten, die gegebenenfalls in dem Datenfeld DAT enthalten sind) handeln, beispielsweise Statusinformationen, Sicherheitsinformationen, Informationen betreffend eine Schleifentiefe bzw. Rekursionstiefe bei einer verschachtelten Ausführung von Schleifen bzw. rekursiven Berechnungen. Alternativ oder ergänzend können die Steuerdaten CTRL auch Paritätsinformationen und/oder Prüfsummen und dergleichen enthalten. Kombinationen aus den vorstehend genannten Informationen für die Steuerdaten sind ebenfalls denkbar.
  • Datenpakete der vorstehend unter Bezugnahme auf 2B bezeichneten Struktur können vorteilhaft beispielsweise auch zur Übertragung von redundant berechneten Ausgangsdaten A1, A2 (1B) an eine die erfindungsgemäße Erkennung von Fehlern ausführende Funktionseinheit verwendet werden, beispielsweise von den Funktionseinheiten 140', 140a' zu der Funktionseinheit 140b' gemäß 1B.
  • Bei einer weiteren bevorzugten Ausführungsform ist wenigstens eine der Funktionseinheiten, wie vorstehend bereits angedeutet, als Hardwareschaltung, insbesondere vollständig als Hardwareschaltung, ausgebildet. Dadurch können vorteilhaft Berechnungen, Logikoperationen, Speicheroperationen und sonstige von der betreffenden Funktionseinheit bereitgestellte Funktionen wie beispielsweise die Realisierung von Look-up-Tabellen, Kennlinien und/oder Kennfeldern, Vergleiche (insbesondere von redundant berechneten Ausgangsdaten), die Bildung und/oder Auswertung von Paritätsinformationen und/oder fehlererkennenden bzw. fehlerkorrigierenden Kodes besonders schnell und effizient ausgeführt werden.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass wenigstens eine der Funktionseinheiten 140, 140a, ..., 140p wenigstens eines der folgenden Elemente aufweist: einen Mikrocontroller, einen Software ausführenden Rechenkern (z.B. einen Rechenkern, der dazu ausgebildet ist, Software auszuführen), einen digitalen Signalprozessor (DSP), eine programmierbare Logikschaltung (beispielsweise einen FPGA, field programmable gate array), einen anwendungsspezifischen integrierten Schaltkreis (ASIC, application specific integrated circuit), insbesondere einen durch ein Gatter- und/oder Transistor-Array vorgefertigten aber noch nicht anwendungsspezifisch verdrahteten integrierten Schaltkreis, der z.B. erst in einem späteren Fertigungsschritt anwendungsspezifisch verdrahtet wird, und der z.B. als „Sea-of-Gates“ bezeichnet werden kann. Bei einer besonders bevorzugten Ausführungsform ist vorgesehen, dass alle Funktionseinheiten als Hardwareschaltung, insbesondere vollständig als Hardwareschaltung, ausgebildet sind. Dadurch ergibt sich eine besonders effiziente, leistungsfähige und klein bauende Anordnung. Bei anderen Ausführungsformen ist es möglich, dass ein oder mehrere Funktionseinheiten als Hardwareschaltung, insbesondere vollständig als Hardwareschaltung, ausgebildet sind, und dass wenigstens eine nicht vollständig als Hardwareschaltung ausgebildete Komponente bzw. eine sonstige Komponente in Form mindestens einer weiteren Funktionseinheit vorgesehen ist. Beispielsweise kann bei einer besonders bevorzugten Ausführungsform eine erste Anzahl Funktionseinheiten vorgesehen sein, die vollständig als Hardwareschaltung ausgebildet sind, und eine weitere Funktionseinheit kann beispielsweise einen Mikrocontroller oder einen programmierbaren Logikbaustein bzw. eine programmierbare Logikschaltung bzw. eine vergleichsweise einfach änderbare Logikschaltung aufweisen.
  • Bei besonders bevorzugten Ausführungsformen wird durch mehrere miteinander verbundene Komponenten wie z.B. Addierer, Multiplizierer, Dividierer, Schieberegister, Barrel-Shifter, Komparator, Multiplikationsakkumulator, arithmetisch-logische Einheit, Exponentialeinheit, Logarithmuseinheit, trigonometrische Einheit, Speichereinheit, Speicherzugriffseinheit, Register, Multiplexer, Schnittstelle, insbesondere Kommunikationsschnittstelle bzw. generell grobgranulare Hardwareelemente, die die Funktionseinheit(en) oder Bestandteile hiervon bilden können, eine vergleichsweise komplexe Berechnungseinrichtung bereitgestellt, wobei erfindungsgemäß vorteilhaft wenigstens eine erste Funktionseinheit dazu ausgebildet ist, erste Daten von wenigstens einer weiteren Funktionseinheit zu empfangen und/oder zweite Daten an wenigstens eine weitere Funktionseinheit zu senden, wie dies bereits vorstehend beschrieben worden ist. Dadurch kann ein Datenfluss definiert werden, der unter anderem auch die Ausführung von vergleichsweise komplexen Berechnungen ermöglicht, welche beispielsweise eine Vielzahl der vorstehend genannten Komponenten bzw. grobgranularen Hardwareelemente, oder generell Berechnungseinheiten, die über mehrere Funktionseinheiten verteilt sein können, nutzen, beispielsweise in einer vorgebbaren Reihenfolge gemäß einem auszuwertenden Algorithmus oder einer sonstigen Rechenregel. Die vorgebbare Reihenfolge kann beispielsweise durch den Datenfluss zwischen den verschiedenen Funktionseinheiten gesteuert werden. Dies kann wie vorstehend bereits beschrieben beispielsweise durch die Festlegung entsprechender Zieladressen ADR1 innerhalb einzelner Datenpakete erfolgen, vgl. 2B.
  • Einem weiteren Aspekt der vorliegenden Erfindung zufolge kann dieser Datenfluss besonders vorteilhaft auch dynamisch, das bedeutet während einer Laufzeit der erfindungsgemäßen Recheneinheit, beeinflusst bzw. verändert, also umkonfiguriert, werden. Bei einer bevorzugten Ausführungsform kann dies beispielsweise durch eine entsprechende Steuerung der primären Verbindungseinheit 150 bewerkstelligt werden. In einer Ausführung erfolgt die Steuerung der primären Verbindungseinheit 150 vorteilhafterweise durch die Rechenkerne 110a, 110b, 110c und/oder durch eine weitere Peripheriekomponente 120 (insbesondere durch eine DMA-Steuereinrichtung). In einer weiteren Ausführung erfolgt die Steuerung der primären Verbindungseinheit 150 alternativ oder ergänzend vorteilhafterweise durch eine Funktionseinheit 140.
  • Nachstehend sind beispielhaft Aspekte eines Daten-bzw. Informationsflusses innerhalb der Funktionseinheit 1400 gemäß 2A beschrieben. Wie vorstehend bereits erwähnt kann die Funktionseinheit 1400 beispielsweise ein oder mehrere Datenpakete der in 2B näher bezeichneten Struktur DS über ihre Eingangsschnittstelle 1402 empfangen. Darin enthaltene Eingangsdaten, bei denen es sich vorliegend um Konfigurationsdaten handeln kann, werden von der Eingangsschnittstelle 1402, bevorzugt unter Steuerung einer Adresserkennungseinheit 1452 und in Abhängigkeit von Adressinformationen a26 des Datenpakets, an ein bestimmtes Konfigurationsregister 1432b weitergeleitet, wie dies in 2A durch den Pfeil a25 angedeutet ist.
  • Die Adresserkennungseinheit 1452 kann bei einer bevorzugten Ausführungsform beispielsweise eine Demultiplexer-Struktur aufweisen, welche direkt durch die in einem Datenpaket enthaltenen Adressinformationen ADR2 gesteuert wird. Ferner kann die Funktionseinheit 1400 über eine Prüfeinheit 1453 verfügen, mittels der überprüft werden kann, ob gültige Eingangsdaten in der Funktionseinheit 1400 vorliegen. Diese Information kann von der Prüfeinheit 1453 beispielsweise zu der lokalen Steuereinrichtung 1410 der Funktionseinheit 1400 übertragen werden, vgl. den Pfeil a30 aus 2A, welche den Betrieb der Funktionseinheit 1400 und beispielsweise der Berechnungseinheit 1420 in Abhängigkeit von dieser Information steuert.
  • Eine Datenverbindung zwischen der lokalen Steuereinrichtung 1410 und dem Konfigurationsspeicher 1430 bzw. dem Funktionsspeicher 1440 ist vorliegend durch den Pfeil a31 angedeutet. Eine Datenverbindung zwischen der Berechnungseinheit 1420 und dem Konfigurationsspeicher 1430 bzw. dem Funktionsspeicher 1440 ist vorliegend durch den Pfeil a32 angedeutet. Besonders vorteilhaft kann bei manchen Ausführungsformen auch eine direkte Datenverbindung zwischen der Steuereinrichtung 1410 und der Berechnungseinheit 1420 bestehen, vergleiche Pfeil a33.
  • Bei einer weiteren bevorzugten Ausführungsform ist eine Multiplexerstruktur 1454 vorgesehen, welche dazu ausgebildet ist, festzulegen, aus welchem bzw. welchen Registerspeichern und/oder Konfigurationsspeichern bzw. aus welchen sonstigen Quellen der Funktionseinheit 1400 mögliche Ausgangsdaten zum Ausgeben über die Ausgangsschnittstelle 1404 erhalten werden. Beispielhaft kann die Multiplexerstruktur 1454 über den Inhalt eines Konfigurationsregisters 1432d gesteuert werden, vergleiche Pfeil a29.
  • Für die Zusammenstellung eines auszugebenden Datenpakets können die auszugebenden Daten beispielsweise durch die Multiplexerstruktur 1454 bereitgestellt werden, vergleiche Pfeil a27. Adressinformationen für das auszugebende Datenpaket können beispielsweise aus einem Konfigurationsregister 1432c bereitgestellt bzw. ausgelesen werden, vergleiche Pfeil a28. Die Adressinformationen für das auszugebenden Datenpaket können beispielsweise wiederum die Adresse ADR1 (2B) für eine Ziel-Funktionseinheit enthalten, an welche das auszugebenden Datenpaket auszugeben ist, sowie gegebenenfalls die weiteren Adressinformationen ADR2 für die interne Adressierung innerhalb der Ziel-Funktionseinheit.
  • Ein bedeutender Vorteil der vorliegenden Erfindung besteht darin, dass die Funktionseinheiten 140, 140a, ..., 140p, 1400 aktiv, direkt und autonom (ohne das Erfordernis einer Steuerung durch zum Beispiel die Rechenkerne der Recheneinheit) miteinander kommunizieren bzw. Daten austauschen können sowie und beispielsweise auch die erfindungsgemäße Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten durch wenigstens eine Komponente der Recheneinheit ausführen können. Dies wird bei einer Ausführungsform vorteilhaft dadurch erzielt, dass die Funktionseinheiten Datenpakete, insbesondere funktionseinheitsspezifische Datenpaketen, an andere Funktionseinheiten ausgeben können. Dies wird bei einer weiteren Ausführungsform vorteilhaft dadurch erzielt, dass die Funktionseinheiten Datenpakete, insbesondere funktionseinheitsspezifische Datenpakete, von anderen Funktionseinheiten empfangen können.
  • Besonders bevorzugt können die Funktionseinheiten einer weiteren Ausführungsform zufolge selbst festlegen, an welche weitere Funktionseinheit bzw. Datensenke Ausgangsdaten der Funktionseinheit, beispielsweise in Form von einem oder mehreren Datenpaketen, ausgegeben werden.
  • Besonders vorteilhaft ist - neben den Funktionseinheiten und einer sie verbindenden primären Verbindungseinheit 150 - keine weitere Komponente der Recheneinheit 100 erforderlich, um den entsprechenden Datenaustausch zwischen den Funktionseinheiten zu ermöglichen. Insbesondere ist keine den Funktionseinheiten übergeordnete Einheit wie z.B. ein Rechenkern 110a erforderlich, um den Datenaustausch zu ermöglichen. Besonders vorteilhaft ist auch keine der Funktionseinheit 1400 übergeordnete Einheit erforderlich, um während der Laufzeit der Funktionseinheiten ein jeweiliges Ziel für Ausgangsdaten einer Funktionseinheit zu ermitteln, weil bei bevorzugten Ausführungsformen diese Aufgabe durch die lokale Steuereinrichtung 1410 ( 2A) übernommen werden kann bzw. die Vorgabe einer Zieladresse aus über die Eingangsschnittstelle 1402 erhaltenen Eingangs- und Konfigurationsdaten abgeleitet werden kann. Vergleichbares gilt für den weiteren erfindungsgemäßen Aspekt der Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten. Beispielsweise können die gegebenenfalls korrigierten Daten, Statusinformationen, insb. Fehlerinformationen, Konfigurationsdaten und/oder weitere Daten an wenigstens eine, mittels der Adresse selektierbare, nachfolgende Funktionseinheit ausgegeben werden.
  • Bei weiteren vorteilhaften Ausführungsformen können die Berechnungsdaten bzw. Ausgangsdaten der Funktionseinheit abhängen von der Konfiguration der Funktionseinheit, von den zugeführten Eingangsdaten und gegebenenfalls von zusätzlichen Eingangsdaten bzw. Eingangssignalen, die der Funktionseinheit beispielsweise über weitere Eingangsschnittstellen (nicht gezeigt) zuführbar sind. Sofern beispielsweise eine direkte Datenverbindung zwischen der Funktionseinheit und einer externen Komponente 200 (zum Beispiel Zeitgeberbaustein der Recheneinheit oder Eingangs-/Ausgangsschnittstelle der Recheneinheit) vorgesehen ist, können beispielsweise Werte eines von der externen Komponente 200 in die Funktionseinheit gespiegelten Registers ebenfalls Einfluss auf die Ausgangsdaten der Funktionseinheit haben.
  • Bei einer weiteren besonders bevorzugten Ausführungsform kann eine Mehrzahl von gleichartigen oder verschiedenartigen Funktionseinheiten miteinander kombiniert und über eine primäre Verbindungseinheit datenmäßig miteinander verbunden werden, wodurch eine Form eines Berechnungsnetzwerks bzw. eine Berechnungseinrichtung erhalten wird, die dazu ausgebildet sein kann, einen bestimmten Algorithmus zu berechnen. Besonders bevorzugt kann die Berechnungseinrichtung Algorithmen berechnen, welche eine höhere Komplexität aufweisen als solche Algorithmen, die durch einzelne Funktionseinheiten, welche Bestandteile der Berechnungseinrichtung bilden, berechenbar sind. Insbesondere stellt die „flexible Hardwareerweiterung“ 1500 aus 1A eine solche Berechnungseinrichtung dar, ebenso wie jede der Gruppen G1, G2 aus 1C, 1D. Weiter erfindungsgemäß ist wenigstens eine Funktionseinheit 140b' (1B) zur Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten vorgesehen, die insbesondere auch die Datenverarbeitung des vorstehend genannten Berechnungsnetzwerks 1500, G1, G2 und gegebenenfalls hiervon redundant verarbeitete Daten auf Fehler hin prüfen kann.
  • Bei einer weiteren bevorzugten Ausführungsform sind alle Komponenten der erfindungsgemäßen Recheneinheit auf einem selben Halbleitersubstrat angeordnet bzw. unter Verwendung derselben Halbleiterfertigungstechnologie hergestellt. Besonders vorteilhaft sind auch die erfindungsgemäßen Funktionseinheiten 140, 140a, 140b, ..., 140p; 1400 auf demselben Halbleitersubstrat angeordnet wie die weiteren Komponenten 110a, 110b, 110c, 115, 120, 130, 150, 155, 160, 170 der Recheneinheit. Dadurch ergibt sich vorteilhaft eine besonders klein bauende Konfiguration sowie die Möglichkeit der Herstellung einer effizienten und hochperformanten Datenverbindung zwischen den Komponenten, beispielsweise unter Einbeziehung der Hauptverbindungseinheit 130 und wenigstens einer primären Verbindungseinheit 150.
  • 3 zeigt schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform eines Verfahrens zum Betreiben einer erfindungsgemäßen Recheneinheit 100, 100a, 100b, 100c, 100d, 100e, vgl. die 1A bis 1F.
  • In einem optionalen ersten Schritt 300 tauschen mehrere Funktionseinheiten, die zur redundanten Ausführung von Berechnungen auf Eingangsdaten E1 (1B) vorgesehen sind, Daten miteinander aus, beispielsweise durch Senden und/oder Empfangen gemäß der vorstehend beispielhaft beschriebenen Struktur nach 2A. Bei diesen Daten kann es sich beispielsweise um Eingangsdaten bzw. Zwischenergebnisse der betreffenden Berechnungen handeln. Das Empfangen bzw. Senden von Daten gemäß Schritt 300 kann bevorzugten Ausführungsformen zufolge über entsprechende Eingangsschnittstellen 1402 (2A) bzw. Ausgangsschnittstellen 1404 erfolgen.
  • In einem nachfolgenden Schritt 302 wird eine Erkennung von Fehlern bei der Verarbeitung der vorstehend genannten Daten, insbesondere der Eingangsdaten E1, ausgeführt. Dies kann beispielsweise durch den vorstehend beispielhaft unter Bezugnahme auf 1B beschriebenen Vergleich durch die Funktionseinheit 140b' erfolgen.
  • Sofern bei dem Vergleich aus Schritt 302 eine Abweichung zwischen den betreffenden Ausgangsdaten A1, A2 erkannt wird, wird in Schritt 304 eine Fehlerreaktion ausgelöst, beispielsweise das Ausgeben einer Unterbrechungsanforderung IRQ an eine Komponente der Recheneinheit 100 (z.B. an einen interrupt-router).
  • Bei anderen oder erweiterten Ausführungsformen kann in dem Schritt 302 beispielsweise das Auswerten einer Prüfsumme bzw. von Paritätsinformationen erfolgen, und/oder die Anwendung von Fehler erkennenden bzw. fehlerkorrigierenden Codes (englisch: ECC, error correcting code).
  • Im Schritt 304 kann eine Ausgabe von Daten erfolgen, wobei diesen Ausgangsdaten in einer vorteilhaften Ausführungsform Paritätsinformationen und/oder fehlerkorrigierenden Codes hinzugefügt werden.
  • 4 zeigt schematisch ein Betriebsszenario einer Recheneinheit 100 gemäß der vorliegenden Erfindung. Die Recheneinheit 100 ist Bestandteil eines Steuergeräts 1004 für eine Brennkraftmaschine 1002 eines Kraftfahrzeugs 1000. Die Recheneinheit 100 weist beispielsweise eine wie vorstehend unter Bezugnahme auf die 1A bis 1F beschriebene Konfiguration auf, sowie wenigstens eine Funktionseinheit 140b" (1B) zur Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten durch wenigstens eine Komponente der Recheneinheit 100.
  • Die erfindungsgemäße Recheneinheit 100 weist eine besonders große Flexibilität auf, weil die in ihr enthaltenen Funktionseinheiten flexibel Daten miteinander austauschen und ggf. sogar dynamisch konfiguriert beziehungsweise rekonfiguriert werden können, wobei insbesondere auch, vorzugsweise bedarfsweise, redundante Berechnungen und auch die Anwendung von fehlererkennenden bzw. fehlerkorrigierenden Kodes, effizient ermöglicht sind. Gleichzeitig ist durch die weiter erfindungsgemäße Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten eine besonders hohe Sicherheit beim Betrieb der Recheneinheit 100 gegeben.
  • Weitere vorteilhafte Anwendungsgebiete für das erfindungsgemäße Prinzip und die erfindungsgemäße Recheneinheit sind Steuergeräte für den Betrieb von elektrischen Motoren bzw. Generatoren, Steuergeräte für Batterien, Fahrerassistenzsysteme, Chassis-Systeme, Elektrowerkzeuge, Haushaltsgeräte, und dergleichen.
  • Die erfindungsgemäße Recheneinheit 100 ermöglicht vorteilhaft die (z.B. durch Redundanz und/oder fehlerkorrigierende Kodes) gesicherte, effiziente Ausführung von rechenintensiven und aufwendigen mathematischen Berechnungen (insbesondere mit großer (Rechen-)Tiefe, viele Rechenoperationen), ohne dass hierzu spezielle Beschleunigerhardware wie beispielsweise der Einsatz mehrerer digitaler Signalprozessoren (DSP) oder ASICs zusätzlich zu einem herkömmlichen Mikrocontroller oder integriert in einen Mikrocontroller oder dergleichen erforderlich wären. Vielmehr können die rechenintensiven und aufwendigen mathematischen Berechnungen sowie die Absicherung bzw. Fehlererkennung vorteilhaft durch die erfindungsgemäßen Funktionseinheiten 140, ..., 1400 ausgeführt werden, welche zudem flexibel untereinander verbindbar sind, wodurch eine einfache Anpassung der erfindungsgemäßen Recheneinheit 100 an mannigfaltige rechenintensive und aufwendige mathematische Berechnungen bzw. Algorithmen möglich ist. Beispielsweise kann die erfindungsgemäße Recheneinheit 100 vorteilhaft zur Verarbeitung von Sensorwerten, zum Beispiel in einem Steuergerät eines Kraftfahrzeugs, verwendet werden.
  • Bei einer bevorzugten Ausführungsform ergibt sich eine beispielhafte Datenverarbeitungskette wie folgt: Ein Sensorsignal (zum Beispiel eines Drehzahlsensors) bildet Eingangsdaten für die Recheneinheit 100, (ggf. abgesicherte) Berechnungen innerhalb eines Rechenkerns 110a der Recheneinheit 100, weitere (ggf. abgesicherte) Berechnungen durch die erfindungsgemäßen Funktionseinheiten 140, (ggf. abgesicherte) weitere Berechnungen durch den Rechenkern 110a, (ggf. abgesicherte) Erzeugung eines Steuersignals als Ausgangssignal der Recheneinheit 100 für nachgeordnete Systeme wie beispielsweise Aktoren beziehungsweise Endstufen zur Ansteuerung von Aktoren.
  • Aufgrund ihrer Leistungsfähigkeit und Betriebssicherheit ist die erfindungsgemäße Recheneinheit besonders für Steuergeräte für Brennkraftmaschinen, insbesondere von Kraftfahrzeugen, geeignet, bei denen eine Vielzahl von Eingangswerten wie beispielsweise Sensorsignalen einer komplexen Verarbeitung unterzogen wird, um entsprechende Ausgangssignale für Aktoren wie beispielsweise magnetisch oder piezoelektrisch betätigte Einspritzventile für ein Kraftstoffeinspritzsystem der Brennkraftmaschine zu bilden, und bei denen i.d.R. auch vergleichsweise hohe Anforderung an die Betriebssicherheit (englisch: „safety“) gestellt werden. Die erfindungsgemäße Recheneinheit kann ferner vorteilhaft bei Steuergeräten für Fahrerassistenzsysteme eingesetzt werden, beispielsweise zur Auswertung von Radardaten zur Steuerung von Fahrerassistenzfunktionen, bei denen herkömmliche Steuergeräte typischerweise mehrere digitale Signalprozessoren aufweisen, um die anfallenden Datenmengen der Radarsensorik verarbeiten zu können. Die erfindungsgemäße Recheneinheit mit der flexible Hardwareerweiterung kann ferner vorteilhaft bei Steuergeräten eingesetzt werden, in denen komplexe regelungstechnische Modelle berechnet werden und/oder in denen eine komplexe digitale Signalverarbeitung erfolgt.
  • Neben den vorstehend bereits beschriebenen Berechnungsmöglichkeiten, welche durch einzelne Funktionseinheiten 1400 (2A) bzw. durch einen Verbund einzelner Funktionseinheiten, insbesondere durch deren jeweilige lokale Berechnungseinheit(en) 1420 realisiert werden können, ist es ebenfalls möglich, die nachfolgenden Funktionalitäten durch eine oder mehrere erfindungsgemäße Funktionseinheiten im Verbund bereitzustellen, sofern in einer entsprechenden Ausbaustufe der flexiblen Hardwareerweiterung 1500 die benötigten Grundfunktionalitäten in Form von Funktionseinheiten einschließlich Berechnungseinheiten überhaupt und zudem in erforderlicher Anzahl, Konfiguration und Verbindung untereinander vorhanden sind sowie eine Berechnung mit der erforderlichen Gesamtrechenleistung erlauben: Berechnung von (auch hochdimensionalen) Kennfeldern (mit z.B. mehr als fünf Dimensionen), Berechnung von datenbasierten Modellen, Berechnung von physikalischen Modellen, Berechnung von neuronalen Netzen, Lösung linearer Gleichungssysteme, Bildung inverser Matrizen (insbesondere Matrizen höherer Ordnung), Lösung nichtlinearer Gleichungssysteme, Zeit-zu-Frequenz Umwandlung beispielsweise durch Berechnung der Fast Fourier Transformation (FFT), Frequenz-zu-Zeit Umwandlung beispielsweise durch Berechnung der inversen Fast Fourier Transformation (iFFT), Berechnung verschiedener Filtertypen wie FIR (Finite Impulse Response), IIR (Infinite Impulse Response), usw. Auch hierbei kann vorteilhaft die erfindungsgemäße Erkennung bzw. Korrektur von Fehlern ausgeführt und damit die genannten Berechnungen abgesichert werden.

Claims (12)

  1. Recheneinheit (100; 100a; 100b; 100c; 100d; 100e), insbesondere Mikrocontroller für ein Steuergerät (1004), mit wenigstens einem Rechenkern (110a, 110b, 110c), einer primären Speichereinrichtung (120), und wenigstens einer Hauptverbindungseinheit (130) zur Verbindung des wenigstens einen Rechenkerns (110a, 110b, 110c) mit der primären Speichereinrichtung (120), wobei die Recheneinheit (100) wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140p; 1400) aufweist, wobei wenigstens eine erste Funktionseinheit (140a) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140p; 1400) dazu ausgebildet ist, a) erste Daten von wenigstens einer weiteren Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140p; 1400) zu empfangen (300) und/oder b) zweite Daten an wenigstens eine weitere Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140p; 1400) zu senden (300), und wobei die Recheneinheit (100; 100a; 100b; 100c; 100d; 100e) dazu ausgebildet ist, eine Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten durch wenigstens eine ihrer Komponenten (110a, 110b, 110c, 120, 130, 140, 140a, 140b, .., 140p; 1400) auszuführen (302).
  2. Recheneinheit (100) nach Anspruch 1, wobei wenigstens eine primäre Verbindungseinheit (150) vorgesehen ist, die dazu ausgebildet ist, zumindest zeitweise eine, insbesondere direkte, Datenverbindung (a1, a2) zwischen der ersten Funktionseinheit (140a) und wenigstens einer weiteren Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140p; 1400) herzustellen, wobei die primäre Verbindungseinheit (150) wenigstens eine der folgenden Komponenten aufweist: ein Koppelnetz (152a), ein Bussystem (152b), wenigstens eine direkte Datenverbindung (152c) zwischen den wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140p; 1400).
  3. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei mehrere Gruppen (G1, G2) von Funktionseinheiten (140c, 140d, 140e; 140f, 140g) vorgesehen sind, und wobei jeder der mehreren Gruppen (G1, G2) wenigstens eine primäre Verbindungseinheit (150_1, 150_2) zugeordnet ist, die dazu ausgebildet ist, zumindest zeitweise eine, insbesondere direkte, Datenverbindung zwischen Funktionseinheiten (140c, 140d, 140e) der betreffenden Gruppe (G1, G2) herzustellen.
  4. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine sekundäre Verbindungseinheit (155; 155a; 155c; 155d) vorgesehen ist, die dazu ausgebildet ist, a) eine Datenverbindung (a3; a4, a5; a9, a10) zwischen der Hauptverbindungseinheit (130) und wenigstens einer Funktionseinheit (140, 140a, ..., 140p) und/oder b) eine Datenverbindung (a3, a4, a5, a6, a7, a8, a8', a15) zwischen der Hauptverbindungseinheit (130) und wenigstens einer primären Verbindungseinheit (150; 150a, 150b) herzustellen.
  5. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei die Recheneinheit (100) dazu ausgebildet ist, zu verarbeitende Eingangsdaten (E1) im Rahmen einer Datenverarbeitung redundant zu verarbeiten, wodurch wenigstens erste verarbeitete Daten und zweite verarbeitete Daten erhalten und verglichen werden, und in Abhängigkeit vom Vergleichsergebnis der ersten verarbeiteten Daten und der zweiten verarbeiteten Daten auf das Vorliegen eines Fehlers bei der Datenverarbeitung zu schließen.
  6. Recheneinheit (100) nach einem der Ansprüche 3 bis 5, wobei eine erste Gruppe (G1) von Funktionseinheiten dazu ausgebildet ist, erste Eingangsdaten (E1) zu verarbeiten und daraus erste Ausgangsdaten (A1) zu erhalten, wobei eine zweite Gruppe (G2) von Funktionseinheiten dazu ausgebildet ist, die ersten Eingangsdaten (E1) zu verarbeiten und daraus zweite Ausgangsdaten (A2) zu erhalten, und wobei wenigstens eine Funktionseinheit (140, 140b') vorgesehen ist, die dazu ausgebildet ist, die ersten Ausgangsdaten (A1) und die zweiten Ausgangsdaten (A2) miteinander zu vergleichen (302).
  7. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b, 140b', ..., 140p; 1400) wenigstens ein grobgranulares Hardwareelement (1420) aufweist oder als grobgranulares Hardwareelement ausgebildet ist.
  8. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine der Funktionseinheiten (140, 140a, 140b; 1400) eine lokale Steuereinrichtung (1410) zur Steuerung eines Betriebs der Funktionseinheit und/oder eine lokale Berechnungseinheit (1420) aufweist.
  9. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei die Recheneinheit (100) dazu ausgebildet ist, eine Erkennung von Fehlern mittels Auswertung von Paritätsinformationen und/oder eine Korrektur von Fehlern mittels fehlerkorrigierender Kodes auszuführen.
  10. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei wenigstens eine Funktionseinheit (140, 140b') vorgesehen ist, die dazu ausgebildet ist, zueinander redundante Berechnungen von Funktionseinheiten und/oder Rechenkernen (110a, 110b, 110c) und/oder Peripherieeinheiten (125) der Recheneinheit (100) auszuwerten.
  11. Steuergerät (1004), insbesondere für eine Brennkraftmaschine (1002) eines Kraftfahrzeugs (1000), mit wenigstens einer Recheneinheit (100; 100a; 100b; 100c; 100d; 100e) nach einem der vorstehenden Ansprüche.
  12. Verfahren zum Betreiben einer Recheneinheit (100; 100a; 100b; 100c; 100d; 100e), insbesondere eines Mikrocontrollers für ein Steuergerät (1004), mit wenigstens einem Rechenkern (110a, 110b, 110c), einer primären Speichereinrichtung (120), und wenigstens einer Hauptverbindungseinheit (130) zur Verbindung des wenigstens einen Rechenkerns (110a, 110b, 110c) mit der primären Speichereinrichtung (120), wobei die Recheneinheit (100) wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 140p, 1400) aufweist, wobei wenigstens eine erste Funktionseinheit (140a) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, ..,140p, 1400) a) erste Daten von wenigstens einer weiteren Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, ..,140p, 1400) empfängt (300) und/oder b) zweite Daten an wenigstens eine weitere Funktionseinheit (140, 140b) der wenigstens zwei Funktionseinheiten (140, 140a, 140b, .., 150p; 1400) sendet (300), wobei die Recheneinheit (100; 100a; 100b; 100c; 100d; 100e) eine Erkennung von Fehlern bei der Verarbeitung und/oder Speicherung und/oder Übertragung von Daten durch wenigstens eine ihrer Komponenten (110a, 110b, 110c, 120, 130, 140, 140a, 140b, .., 140p, 1400) ausführt (302).
DE102017208522.3A 2017-05-19 2017-05-19 Recheneinheit und Betriebsverfahren hierfür Pending DE102017208522A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102017208522.3A DE102017208522A1 (de) 2017-05-19 2017-05-19 Recheneinheit und Betriebsverfahren hierfür

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017208522.3A DE102017208522A1 (de) 2017-05-19 2017-05-19 Recheneinheit und Betriebsverfahren hierfür

Publications (1)

Publication Number Publication Date
DE102017208522A1 true DE102017208522A1 (de) 2018-11-22

Family

ID=64278578

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017208522.3A Pending DE102017208522A1 (de) 2017-05-19 2017-05-19 Recheneinheit und Betriebsverfahren hierfür

Country Status (1)

Country Link
DE (1) DE102017208522A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022127544A1 (de) 2022-10-19 2024-04-25 Infineon Technologies Ag Elektronische Vorrichtung, elektronisches System, Verfahren zum Betreiben einer elektronischen Vorrichtung und Verfahren zum Betreiben eines elektronischen Systems
DE102022210908A1 (de) 2022-10-14 2024-04-25 Elmos Semiconductor Se Gateway zur verbindung mit einem sensor eines kraftahrzeugs und verfahren zum betreiben des gateways

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022210908A1 (de) 2022-10-14 2024-04-25 Elmos Semiconductor Se Gateway zur verbindung mit einem sensor eines kraftahrzeugs und verfahren zum betreiben des gateways
DE102022127544A1 (de) 2022-10-19 2024-04-25 Infineon Technologies Ag Elektronische Vorrichtung, elektronisches System, Verfahren zum Betreiben einer elektronischen Vorrichtung und Verfahren zum Betreiben eines elektronischen Systems

Similar Documents

Publication Publication Date Title
DE2619159C2 (de) Fehlererkennungs- und Korrektureinrichtung
DE2756768A1 (de) Mikroprozessor-architektur
EP1820102A2 (de) Verfahren und vorrichtung zur taktumschaltung bei einem mehrprozessorsystem
EP1599794B1 (de) Prozessor mit verschiedenartigen steuerwerken für gemeinsam genutzte ressourcen
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE102022101477A1 (de) Nichtflüchtige speichervorrichtungen, systeme und verfahren für einen schnellen, sicheren, stabilen systemboot
WO2017045840A1 (de) Vorrichtung zum verarbeiten von daten und verfahren zum betreiben einer solchen vorrichtung
DE102017209856A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE102015222096A1 (de) Schaltung, System und Verfahren zum Speicher-Patchen
DE102017200456A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE102017208522A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE102017217908A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE102008024193A1 (de) System mit konfigurierbaren Funktionseinheiten und Verfahren
EP1817662B1 (de) Verfahren und vorrichtung zur umschaltung zwischen betriebsmodi eines multiprozessorsystems durch wenigstens ein externes signal
WO2003043022A2 (de) Speichertest
EP1915686B1 (de) Verfahren und vorrichtung zur festlegung eines startzustandes bei einem rechnersystem mit wenigstens zwei ausführungseinheiten durch markieren von registern
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
EP1789889B1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
DE102004022614B3 (de) Erweiterbares Steuergerät
DE102021101458A1 (de) Master- und Slave-Prozessoren zum Konfigurieren von Subsystemen
DE102017200460A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE102017200462A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE102017200458A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE102017200457A1 (de) Hardwarekonfigurierbare Logikeinheit und Mikrocontroller mit einer derartigen hardwarekonfigurierbaren Logikeinheit
DE102009009730B4 (de) Lokale Timer-Zelle deren Verwendung und Verfahren zum Betreiben eines Moduls

Legal Events

Date Code Title Description
R012 Request for examination validly filed