DE102007033885A1 - Verfahren zur transparenten Replikation einer Softwarekomponente eines Softwaresystems - Google Patents

Verfahren zur transparenten Replikation einer Softwarekomponente eines Softwaresystems Download PDF

Info

Publication number
DE102007033885A1
DE102007033885A1 DE102007033885A DE102007033885A DE102007033885A1 DE 102007033885 A1 DE102007033885 A1 DE 102007033885A1 DE 102007033885 A DE102007033885 A DE 102007033885A DE 102007033885 A DE102007033885 A DE 102007033885A DE 102007033885 A1 DE102007033885 A1 DE 102007033885A1
Authority
DE
Germany
Prior art keywords
components
processing units
vea
veb
rte
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.)
Ceased
Application number
DE102007033885A
Other languages
English (en)
Inventor
Michael Dr. Golm
Klaus Jürgen Schmitt
Konrad Schwarz
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.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE102007033885A priority Critical patent/DE102007033885A1/de
Priority to CN200880025398A priority patent/CN101755256A/zh
Priority to PCT/EP2008/056960 priority patent/WO2009013055A2/de
Priority to EP08760539A priority patent/EP2168070A2/de
Priority to US12/669,823 priority patent/US20100192164A1/en
Publication of DE102007033885A1 publication Critical patent/DE102007033885A1/de
Ceased legal-status Critical Current

Links

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/187Voting techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

Es wird ein Verfahren zur transparenten Replikation einer Softwarekomponente (SWC1) eines Softwaresystems (SWC1, SWC2), insbesondere gemäß dem AUTOSAR-Standard, in einem zwei oder mehr Verarbeitungseinheiten (VEA, VEB) umfassenden Rechensystem beschrieben. Die Verarbeitungseinheiten (VEA, VEB) sind über einen oder mehrere Kommunikationskanäle (KK1, KK2) zum Austausch von Daten miteinander verbunden. Jede der Verarbeitungseinheiten (VEA, VEB) umfasst eine Laufzeitumgebung (RTE), bei dem jeweilige zu replizierende Laufzeitumgebungen (RTE) der Verarbeitungseinheiten (VEA, VEB) mit einer Synchroniversehen werden.

Description

  • Die Erfindung betrifft ein Verfahren zur transparenten Replikation einer Softwarekomponente eines Softwaresystems, insbesondere gemäß dem AUTOSAR-Standard, in einem zwei oder mehrere Verarbeitungseinheiten umfassenden Rechensystem, wobei die Verarbeitungseinheiten über einen oder mehrere Kommunikationskanäle zum Austausch von Daten miteinander verbunden sind.
  • AUTOSAR ist ein in der Automobilindustrie entwickelter Standard, in dem Schnittstellen und Interaktionen von Softwarekomponenten in Form von XML-Beschreibungen (XML = Extendable Markup Language) spezifiziert sind. AUTOSAR ermöglicht eine architekturzentrische Modellierung von komplexen Softwaresystemen. Dies bedeutet, dass Code zum Senden von Daten generiert wird, während eine Funktionalität (Algorithmen) manuell implementiert oder durch rechnergestützte Werkzeuge generiert wird. Für alle Ein- und Ausgaben stehen generierte IO-Funktionen (IO = Input Output) zur Verfügung, die als RTE Calls bezeichnet werden. Bausteine zum Modellieren von Funktionalitäten sind sog. Komponenten und Kompositionen. Kompositionen umfassen eine Mehrzahl an Komponenten, die über Kommunikationsverbindungen miteinander verbunden sind. Komponenten und Kompositionen sind über sog. Ports miteinander verbunden. Ports bilden Kommunikationsschnittstellen, um Daten zwischen einzelnen Komponenten auszutauschen sowie um Funktionsaufrufe zwischen den Komponenten zu ermöglichen. Je nach Ausgestaltung des Rechnersystems müssen die Softwarekomponenten in sicherheitskritischen Applikationen an die jeweilige Hardwarearchitektur angepasst werden. Alternativ kann spezielle Hardware zur transparenten Replikation verwendet werden.
  • Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren zur transparenten Replikation einer Softwarekomponenten eines Softwaresystems, insbesondere gemäß dem AUTOSAR-Standard, anzugeben, welches die unmodifizierte Verwendung von AUTOSAR-Softwarekomponenten in sicherheitskritischen Applikationen ermöglicht, welche insbesondere ein mehrkanaliges Rechensystem vorschreiben.
  • Diese Aufgabe wird mit den Merkmalen des Patentanspruchs 1 gelöst. Vorteilhafte Ausführungsformen sind in den abhängigen Ansprüchen wiedergegeben.
  • In dem erfindungsgemäßen Verfahren zur transparenten Replikation einer Softwarekomponente eines Softwaresystems in einem zwei oder mehrere Verarbeitungseinheiten umfassenden Rechensystem, sind die Verarbeitungseinheiten über einen oder mehrere Kommunikationskanäle zum Austausch von Daten miteinander verbunden. Jede der Verarbeitungseinheiten umfasst eine Laufzeitumgebung. Es werden jeweilige zu replizierende Laufzeitumgebungen der Verarbeitungseinheiten mit einer Synchronisations- und Auswahlfunktionalität versehen.
  • Das erfindungsgemäße Verfahren ermöglicht eine genaue Synchronisierung von Applikationen zwischen parallel laufenden Laufzeitumgebungen. Hierbei benötigt das Verfahren keine Zeitsynchronisierung.
  • Das erfindungsgemäße Verfahren bedient sich dabei einer Erweiterung der Laufzeitumgebungen, sog. Runtime-Environment RTE. Die AUTOSAR-Laufzeitumgebung ist eine werkzeuggenerierte Middleware, welche unter anderem eine ortstransparente Kommunikation zwischen Softwarekomponenten erlaubt. Um die Replikations-Transparenz bereitzustellen, wird die Laufzeitumgebung um eine Synchronisations- und um eine Auswahlfunktionalität (Voting-Funktionalität) erweitert.
  • Zwischen den replizierten Laufzeitumgebungen wird hierbei ein virtueller Kommunikationskanal gebildet. Die Kommunikation zwischen verschiedenen Softwarekomponenten kann auf unterschiedliche Weise erfolgen: Im Falle eines Sender-Empfänger- Systems kann diese „queued" oder „unqueued" erfolgen. Im Falle eines Client-Server-Systems kann diese synchron oder asynchron erfolgen. Die Kommunikation innerhalb einer Softwarekomponente kann unter Verwendung sog. „inter-runable variables" oder „exclusive areas" erfolgen. Die Kommunikation mit Diensten der Verarbeitungseinheit (sog. ECU = Electronic Control Unit, Steuergerät) kann als Kommunikation mit Diensten („Communication with Services") oder als Kommunikation mit Ein-/Ausgabe-Abstraktion („Communication with IO Abstraction") ausgebildet sein. Das interne Verhalten der Softwarekomponenten umfasst folgende Möglichkeiten: „Invocation of Runable Entities", blockieren und deblockieren von Runables an „Wait Points", Empfang von Laufzeitumgebungsereignissen („Reception of RTE Events", Speicher pro Instanz („perinstants memory") und „Intitialization/Finalization". Eine genaue Beschreibung der Kommunikation über den virtuellen Kommunikationskanal kann dem Dokument „Specification of the AUTOSAR Runtime Environment, Version 2.0.0" der Autosar GbR entnommen werden.
  • Zur Ausbildung einer Funktionalität der Softwarekomponente erfolgt eine virtuelle Verschaltung einer Anzahl an Komponenten, unabhängig von der Verteilung der Komponenten auf den zu replizierenden Laufzeitumgebungen.
  • Die Komponenten einer Funktionalität werden zum Datenaustausch über Kommunikationsschnittstellen, umfassend Sende- und Empfangsports, miteinander verbunden, wobei den Empfangsports Daten Ereignis-getrieben oder durch zyklisches Abfragen zugeführt werden.
  • Der Empfang von Daten löst an einem der Empfangsports das Starten von Codesequenzen aus, die auf den redundanten Verarbeitungseinheiten ablaufen. Die Codesequenzen können einen Laufzeitumgebungscode zur Kommunikation mit weiteren Komponenten oder zum Aufruf von Diensten nutzen. Dies bedeutet, dass eine Software-Funktionalität durch eine Sequenz von Codesequenz-Aufrufen dargestellt werden kann. Codesequenzen werden auch als Runable Entities bezeichnet. Codesequenzen nutzen die Laufzeitumgebung als Middleware, um Daten von anderen Komponenten auszutauschen oder um sog. Remode Procedure-Aufrufe durchzuführen.
  • Gemäß einer weiteren Ausgestaltung werden die Komponenten auf redundanten Verarbeitungseinheiten dupliziert. Die Synchronisierung der Signalverarbeitungsschritte erfolgt durch die Laufzeitumgebungen der redundanten Verarbeitungseinheiten. Die Idee der transparenten Laufzeitumgebung besteht somit darin, Redundanz durch die Laufzeitumgebung selbst sicherzustellen.
  • Die Synchronisation erfolgt über den Kommunikationskanal zwischen den zu replizierenden Laufzeitumgebungen. Die Synchronisation kann über einen Bus oder einen sog. „Dual-Port-RAM" erfolgen. Dies wird auch als Synchronisierungskanal bezeichnet.
  • Gemäß einer weiteren Ausführungsform werden alle Signale, die an Eingangsports von Kompositionen anliegen, zeitgleich den Eingangsports der redundanten Kompositionen zugeführt. Jede der Komponenten umfasst dabei eine Mehrzahl an miteinander kommunikativ verbundenen Komponenten.
  • In einer weiteren Ausführungsform werden alle Ausgangsports vor der Ausgabe eines Signals mit dem Ergebnis der redundanten Komponente verglichen und zu einem gemeinsamen Ergebnis geführt. Dies beschreibt die Ausgangsfunktionalität in der Laufzeitumgebung, die auch als Voting bezeichnet wird. Für jeden Ausgangsport, der einem Voting unterzogen wird, muss eindeutig festgelegt sein, welche Aktion oder Aktionen in einem Erfolgsfall und in einem Fehlerfall ausgeführt werden müssen. In einem Erfolgsfall stimmen beide Teilergebnisse der redundanten Komponente, z. B. innerhalb festgelegter Toleranzen, überein. Im Fehlerfall sind die von den redundanten Komponenten ermittelten Teilergebnisse unterschiedlich. Portzugriffe oder andere IO-Funktionen, die nicht nach außen ge führt sind, müssen zeitlich synchronisiert werden, ohne ein Voting auszuführen.
  • Zum Zeitpunkt einer Laufzeitumgebungsgenerierung wird ermittelt, welcher der Verarbeitungseinheiten welche Komponenten zugeordnet wurden und welcher der Verarbeitungseinheiten die zugehörigen redundanten Komponenten zugeordnet wurden, aus welchen Informationen die Laufzeitumgebungen physikalische Synchronisierungspfade für alle Synchronisierungspunkte ermitteln und entsprechenden Laufzeitumgebungscode generieren. Unter einem physikalischen Synchronisierungspfad wird die Verbindung zwischen einer Verarbeitungseinheit und ihrer redundanten Partner-Verarbeitungseinheit bezeichnet. Dies kann eine Punkt-zu-Punkt-Verbindung oder Bus, wie z. B. ein CAN-Bus, Flexray-Bus etc. sein.
  • Die Erfindung wird nachfolgend weiter anhand der Figuren erläutert. Es zeigen:
  • 1 eine schematische Darstellung eines mehrere Verarbeitungseinheiten umfassenden Rechensystems, in welchem eine transparente Replikation einer Softwarekomponente eines Softwaresystems veranschaulicht ist,
  • 2 eine schematische Darstellung einer virtuellen Verschaltung von Komponenten einer Softwarekomponente,
  • 3 eine schematische Darstellung einer Software-Funktionalität in Form einer Sequenz von Codesequenz-Aufrufen,
  • 4 eine schematische Darstellung von duplizierten Codesequenzen, und
  • 5 eine schematische Darstellung, aus der ein Mapping von Softwarekomponenten auf verschiedene Verarbeitungseinheiten illustriert ist.
  • 1 zeigt in einer schematischen Darstellung ein Rechensystem mit Verarbeitungseinheiten VEA, VEB und VEC. Die Verarbeitungseinheiten VEA, VEB, VEC sind über zwei Kommunikationskanäle KK1, KK2 zum Datenaustausch miteinander verbunden. Die Kommunikationskanäle KK1, KK2 können beispielsweise durch einen Bus (z. B. CAN-Bus oder Flexray-Bus) gebildet sein. Die Verarbeitungseinheiten VEA, VEB, VEC können beispielsweise Steuergeräte darstellen und sind allgemein sog. ECUs (Electronic Control Units). Jede der Verarbeitungseinheiten umfasst in bekannter Weise eine Basissoftwarefunktionalität BSW. Diese umfasst beispielsweise ein Betriebssystem, Mittel zur Kommunikation über die Kommunikationskanäle, Treiber zur Kommunikation oder zum Zugriff auf Speicher. Ferner umfasst jede der Verarbeitungseinheiten eine Laufzeitumgebung RTE, die auch als Runtime-Environment bezeichnet wird.
  • Den Verarbeitungseinheiten VEA, VEB ist eine Softwarekomponente SWC1 zugeordnet. Die Softwarekomponente SWC1 umfasst zwei Instanzen SWC1A und SWC1B, wobei erstere der Verarbeitungseinheit VEA und letztere der Verarbeitungseinheit VEB zugeordnet ist. Die Instanzen SWC1a, SWC1b der Softwarekomponente SWC bilden redundante Funktionalitäten aus, die auf den Laufzeitumgebungen RTE der Verarbeitungseinheiten VEA und VEB durchgeführt werden.
  • Der Verarbeitungseinheit VEC ist eine Softwarekomponente SWC2 zugeordnet. Die Softwarekomponente SWC2 ist über eine Kommunikationsverbindung KV mit der Softwarekomponente SWC1 verbunden. Zu diesem Zweck verfügt die Softwarekomponente SWC2 über einen Port PR, der als Required Port bezeichnet wird. In entsprechender Weise verfügt die Softwarekomponente SWC1 über einen Port PP, der als Provided Port bezeichnet wird. Die Kommunikationsverbindung KV stellt in der schematischen Darstellung keine physikalische Verbindung, sondern lediglich eine virtuelle Verbindung zur Darstellung der Funktionalitäten dar. Ein tatsächlicher Datenaustausch erfolgt über einen der Kommunikationskanäle KK1 oder KK2.
  • Die Laufzeitumgebungen RTE der Verarbeitungseinheiten VEA und VEB sind gegenüber einer Standard-AUTOSAR-Laufzeitumgebung erweitert. Allgemein ist die AUTOSAR-Laufzeitumgebung eine werkzeuggenerierte Middleware, welche unter anderem eine ortstransparente Kommunikation zwischen Softwarekomponenten erlaubt. Zur Realisierung einer zusätzlichen Replikations-Transparenz sind die Laufzeitumgebungen RTE der Verarbeitungseinheiten VEA und VEB um eine Synchronisations- und Voting-Funktionalität (SyncF, VoteF) erweitert. Zwischen den Laufzeitumgebungen RTE der Verarbeitungseinheiten VEA und VEB ist ferner ein virtueller Kommunikationskanal SYNC eingezeichnet, welcher auch als Synchronisierungspfad bezeichnet wird. Der Kommunikationskanal ist Voraussetzung zur Realisierung einer Replikations-Transparenz. Zur Realisierung der Replikations-Transparenz müssen folgende Eigenschaften der Laufzeitumgebung entsprechend erweitert werden: Die Kommunikation zwischen verschiedenen Softwarekomponenten. Die Kommunikation innerhalb einer Softwarekomponente. Die Kommunikation mit Diensten der Verarbeitungseinheit und das interne Verhalten der Softwarekomponente.
  • Unter Bezugnahme auf die 2 bis 5 wird nachfolgend die Modellierung der Replikationstransparenz beschrieben. Die Modellierung beginnt mit einer virtuellen Verschaltung von Komponenten. Dies ist beispielhaft in 2 dargestellt. Bei dieser virtuellen Sicht können Verbindungen KV zwischen Komponenten gezogen werden. Die Kommunikationsverbindungen können unabhängig davon, wie die Komponenten auf die Ablauf-Plattform verteilt werden, gezogen werden. Die in 2 dargestellte Funktionalität besteht aus den fünf Komponenten A bis E, die über Ports PE, PA miteinander verbunden sind. Diese Ports PE, PA bilden die Schnittstellen zum Datenaustausch. Es existieren Sendeports PA und Empfangsports PE.
  • An Empfangsports PE können Daten Ereignis-getrieben bzw. durch zyklisches Abfragen der Weiterverarbeitung den Komponenten zugeführt werden. In jedem Fall führt der Empfang von Daten dazu, dass ein sog. Runable Entity re1, re2, re3, re4, re5, re6 gestartet wird, in dessen Kontext die Verarbeitung der Daten geschieht. Runable Entities sind Codesequenzen, die auf einer oder verschiedenen Verarbeitungseinheiten ablaufen können. Diese nutzen die Laufzeitumgebung als Middleware, um Daten von anderen Komponenten auszutauschen bzw. um sog. RPC (Remote Procedure Calls) auszuführen. In 2 ist mit SEN ein Sensor bezeichnet, der über eine Kommunikationsverbindung mit einem Empfangsport PE der Komponente A verbunden ist. Ein Aktuator AKT ist über eine Kommunikationsverbindung mit einem Sendeport PA der Komponente E verbunden. Die jeweiligen Kommunikationsverbindungen KV, die einen Sendeport PA mit einem Ausgangsport PE verbinden, sind entsprechend einer gewünschten Funktionalität gebildet.
  • RTE-Calls RTEC bieten die einzige Möglichkeit, Daten mit anderen Komponenten oder Diensten auszutauschen. Die Implementierung der Codesequenzen über Runable Entities besteht aus manuell implementiertem Code, der den generierten Laufzeitumgebungscode zur Kommunikation mit weiteren Komponenten oder zum Aufruf von Diensten nutzen kann. Dies bedeutet, dass eine Softwarefunktionalität, durch eine Sequenz von Runable Entitiy-Aufrufen (re1-re2-re3-re4-re5-re6) dargestellt werden kann. Dies ist in 3 dargestellt. Die Idee der transparenten Laufzeitumgebung besteht darin, Redundanz durch die Laufzeitumgebung RTE sicherzustellen. Dies geschieht durch Duplikation der Komponenten auf redundanten Verarbeitungseinheiten und die Synchronisierung der Signal-Verarbeitungsschritte durch die Laufzeitumgebung. Hierdurch wird erreicht, dass alle RTE-Calls synchron durchgeführt werden. Ferner können zeitsynchrone Eingabe-Ausgabe-Operationen (I/O-Operationen) durchgeführt werden. Die Synchronisation geschieht durch einen hoch-performanten Bus oder „Shared- bzw. Dual-Port-Memory", was im Folgenden auch als Synchronisierungskanal bezeichnet wird. Eine Duplikation der Komponenten auf redundanten Verarbeitungseinheiten ist in 1 durch die Instanzen SWC1A und SWC1B dargestellt.
  • 4 zeigt eine schematische Darstellung aus Sicht einer Runable Entity mit duplizierten Runable Entities re1 bis re6. Ein System X (Instanz einer Softwarekomponente) wurde durch das System X' dupliziert. Das System X' führt alle Verarbeitungsschritte wie das System X durch. Bei jedem RTE-Call RTEC synchronisieren sich die Systeme X und X'. Dies ist durch die zwischen den RTE-Calls verlaufenden Pfeile dargestellt.
  • Die transparente Replikation von AUTOSAR-Softwarekomponenten erlaubt eine beliebige Zahl von Softwarekomponenten (Komposition) redundant auszuführen. Eine Komposition hat Ein- und Ausgangsports, die nach außen geführt werden. Im AUTOSAR werden diese als „Delegation Ports" bezeichnet. Ports, die intern verschaltet sind, werden in AUTOSAR als „Assembly Ports" bezeichnet. Delegation Ports repräsentieren das Verhalten nach außen und müssen bei Redundanz-Überlegungen besonders beachtet werden. Alle Signale und Eingangsports, die sog. „Required Ports" müssen zeitgleich den Eingangsports der redundanten Komponenten zugeführt werden. Alle Ausgangsports, die „Provided Ports", müssen vor der Ausgabe eines Signals mit dem Ergebnis der Partnerkomponente verglichen und zu einem gemeinsamen Ergebnis kombiniert werden. Dieser Vorgang wird als Auswahlfunktionalität oder Voting bezeichnet. Für jeden Ausgangsport, der einem Voting unterzogen wird, muss eindeutig festgelegt sein, welche Aktion oder Aktionen im Erfolgsfall und im Fehlerfall ausgeführt werden müssen. Im Erfolgsfall stimmen beide Teilergebnisse, d. h. Ergebnisse, die von den Systemen X und X' ermittelt wurden, innerhalb festgelegter Toleranzen überein. Im Fehlerfall sind die Teilergebnisse, die von den Systemen X und X' ermittelt wurden, unterschiedlich. Port-Zugriffe und andere RTE-Calls, die nicht nach außen geführt sind, müssen zeitlich synchronisiert werden, ohne ein Voting oder eine Auswahlfunktionalität auszuführen.
  • Anhand von 5 wird die Synchronisierung im Detail erläutert. Die AUTOSAR-Methode erlaubt ein statisches Mapping, dies bedeutet ein Mapping zur Konfigurationszeit von Soft warekomponenten auf den Verarbeitungseinheiten. Da das Mapping statisch ist, ist zum Zeitpunkt der Laufzeitumgebungs-Generierung bekannt, welche Komponenten auf welche Verarbeitungseinheiten gemapped wurden. Dies erlaubt dem Generator der Laufzeitumgebung physikalische Synchronisierungspfade für alle Synchronisierungspunkte zu finden und den entsprechenden Code zu generieren. Unter einem physikalischen Synchronisierungspf ad wird die Verbindung zwischen einer ECU-Instanz und ihrer redundanten Partner-Verarbeitungseinheit bezeichnet. Dies kann eine Punkt-zu-Punkt-Verbindung als auch ein Bus sein.
  • 5 zeigt die physikalische Sicht nach der Ausführung des Mappings für die am Anfang gezeigte virtuelle Sicht (2). In 5 sind die Instanzen der Softwarekomponente mit ECU1 und ECU2 bezeichnet. Redundante Instanzen der Softwarekomponente sind mit ECU1' und ECU2' gekennzeichnet. Im Beispiel der 5 wurden die Komponenten A und B auf die ECU-Instanz ECU1 gemapped, während die Komponenten C, D und E auf die ECU-Instanz ECU2 gemapped wurden. Jede der ECU-Instanzen ECU1, ECU2 hat ein redundantes Doppel ECU1', ECU2', auf dem die Komponenten gleichermaßen gemapped sind. Die ECU-Instanzen verfügen zu ihren redundanten Partnern jeweils über einen Synchronisationskanal SYNC. In der dargestellten Konfiguration kann die Laufzeitumgebung die Synchronisierung bei der transparenten Replikation von AUTOSAR-Softwarekomponenten übernehmen. Dies bedeutet, die Funktionalität zur Synchronisierung der replizierten AUTOSAR-Softwarekomponenten kann ohne explizite Modellierung für die Applikation transparent, generiert werden. In 5 ist ferner ein Auswahlschalter SEL dargestellt, der mit dem Ausgang der ECU-Instanz ECU2 verbunden ist. Weiterhin ist er mit dem Aktuator AKT verbunden. Die Schalterstellung wird durch das Ausgangssignal der redundanten ECU-Instanz 2 ECU2' festgelegt. Im Fall, dass die von den ECU-Instanzen ECU2 und ECU2' bestimmten Teilergebnisse identisch sind, wird der Schalter geschlossen, so dass das Ausgangssignal an den Aktuator AKT weitergeleitet werden kann.
  • Replikation kann beispielsweise auf symmetrischen Mikrocontrollern erfolgen, die durch einen direkten Kommunikationskanal mit niedrigen Latenzzeiten (z. B. dual-ported RAM) miteinander verbunden sind. Replikation kann auch auf diversitären Mikrocontrollern erfolgen, die durch einen direkten Kommunikationskanal mit direkten Latenzzeiten (z. B. dual-ported RAM) miteinander verbunden sind. Replikation ist in einem durch CAN-Bus oder Flexray-Bus verbundenen Netzwerk von Steuergeräten möglich. Replikation ist ferner auf einem Mikrocontroller möglich. Dabei wird replizierter Code zeitversetzt ausgeführt.

Claims (13)

  1. Verfahren zur transparenten Replikation einer Softwarekomponente (SWC1) eines Softwaresystems (SWC1, SWC2), insbesondere gemäß dem AUTOSAR-Standard, in einem zwei oder mehrere Verarbeitungseinheiten (VEA, VEB) umfassenden Rechensystem, wobei die Verarbeitungseinheiten (VEA, VEB) über einen oder mehrere Kommunikationskanäle (KK1, KK2) zum Austausch von Daten miteinander verbunden sind, und jede der Verarbeitungseinheiten (VEA, VEB) eine Laufzeitumgebung (RTE) umfasst, bei dem jeweilige zu replizierende Laufzeitumgebungen (RTE) der Verarbeitungseinheiten (VEA, VEB) mit einer Synchronisations- und Auswahlfunktionalität (Sync, Voting) versehen werden.
  2. Verfahren nach Anspruch 1, bei dem zwischen den replizierten Laufzeitumgebungen (RTE) ein virtueller Kommunikationskanal (SYNC) gebildet wird.
  3. Verfahren nach Anspruch 1 oder 2, bei dem zur Ausbildung einer Funktionalität der Softwarekomponente (SWC1) eine virtuelle Verschaltung einer Anzahl an Komponenten (A, B, C, D, E) erfolgt, unabhängig von der Verteilung der Komponenten (A, B, C, D, E) auf den zu replizierenden Laufzeitumgebungen (RTE).
  4. Verfahren nach Anspruch 3, bei dem die Komponenten (A, B, C, D, E) einer Funktionalität zum Datenaustausch über Kommunikationsschnittstellen (KV), umfassend Sende- und Empfangsports (PA, PE), miteinander verbunden werden, wobei den Empfangsports (PE) Daten Ereignis getrieben oder durch zyklisches Abfragen zugeführt werden.
  5. Verfahren nach Anspruch 4, bei dem der Empfang von Daten an einem der Empfangsports (PE) das Starten von Codesequenzen (re1, .., re6) auslöst, die auf den redundanten Verarbeitungseinheiten (VEA, VEB) ablaufen.
  6. Verfahren nach Anspruch 5, bei dem die Codesequenzen (re1, .., re6) einen Laufzeitumgebungscode zur Kommunikation mit weiteren Komponenten (A, B, C, D, E) oder zum Aufruf von Diensten nutzen können.
  7. Verfahren nach Anspruch 5 oder 6, bei dem die Codesequenzen (re1, .., re6) die Laufzeitumgebung (RTE) oder -umgebungen als Middleware verwenden, um Daten mit anderen Komponenten (A, B, C, D, E) auszutauschen oder um Remote Procedure-Aufrufe durchzuführen.
  8. Verfahren nach einem der vorherigen Ansprüche, bei dem die Komponenten (A, B, C, D, E) auf redundanten Verarbeitungseinheiten (VEA, VEB) dupliziert werden und die Synchronisierung der Signalverarbeitungsschritte durch die Laufzeitumgebungen (RTE) der redundanten Verarbeitungseinheiten (VEA, VEB) erfolgt.
  9. Verfahren nach Anspruch 8, bei dem Laufzeitumgebungsaufrufe (RTEC) synchron durchgeführt werden.
  10. Verfahren nach Anspruch 9, bei dem die Synchronisation über den Kommunikationskanal (SYNC) zwischen den zu replizierenden Laufzeitumgebungen (RTE) erfolgt.
  11. Verfahren nach einem der vorherigen Ansprüche, bei dem alle Signale an Eingangsports von Kompositionen, umfassend eine Mehrzahl an miteinander kommunikativ verbundenen Komponenten (A, B, C, D, E), zeitgleich den Eingangsports der redundanten Kompositionen zugeführt werden.
  12. Verfahren nach einem der vorherigen Ansprüche, bei dem alle Ausgangsports vor der Ausgabe eines Signals mit dem Ergebnis der redundanten Komponente verglichen und zu einem gemeinsamen Ergebnis geführt werden.
  13. Verfahren nach einem der vorherigen Ansprüche, bei dem zum Zeitpunkt einer Laufzeitumgebungsgenerierung ermittelt wird, welcher der Verarbeitungseinheiten (VEA, VEB) welche Komponenten (A, B, C, D, E) zugeordnet wurden und welcher der Verarbeitungseinheiten (VEA, VEB) die zugehörigen redundanten Komponenten (A, B, C, D, E) zugeordnet wurden, aus welchen Informationen die Laufzeitumgebungen (RTE) physikalische Synchronisierungspfade für alle Synchronisierungspunkte ermitteln und entsprechenden Laufzeitumgebungscode generieren.
DE102007033885A 2007-07-20 2007-07-20 Verfahren zur transparenten Replikation einer Softwarekomponente eines Softwaresystems Ceased DE102007033885A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102007033885A DE102007033885A1 (de) 2007-07-20 2007-07-20 Verfahren zur transparenten Replikation einer Softwarekomponente eines Softwaresystems
CN200880025398A CN101755256A (zh) 2007-07-20 2008-06-05 用于对软件***的软件构件进行透明复制的方法
PCT/EP2008/056960 WO2009013055A2 (de) 2007-07-20 2008-06-05 Verfahren zur transparenten replikation einer softwarekomponente eines softwaresystems
EP08760539A EP2168070A2 (de) 2007-07-20 2008-06-05 Verfahren zur transparenten replikation einer softwarekomponente eines softwaresystems
US12/669,823 US20100192164A1 (en) 2007-07-20 2008-06-05 Method for the transparent replication of a software component of a software system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102007033885A DE102007033885A1 (de) 2007-07-20 2007-07-20 Verfahren zur transparenten Replikation einer Softwarekomponente eines Softwaresystems

Publications (1)

Publication Number Publication Date
DE102007033885A1 true DE102007033885A1 (de) 2009-01-22

Family

ID=40149028

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007033885A Ceased DE102007033885A1 (de) 2007-07-20 2007-07-20 Verfahren zur transparenten Replikation einer Softwarekomponente eines Softwaresystems

Country Status (5)

Country Link
US (1) US20100192164A1 (de)
EP (1) EP2168070A2 (de)
CN (1) CN101755256A (de)
DE (1) DE102007033885A1 (de)
WO (1) WO2009013055A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2662773A1 (de) * 2012-05-10 2013-11-13 EADS Deutschland GmbH Redundantes Mehrprozessorsystem und zugehöriges Verfahren

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872375A (zh) * 2010-05-28 2010-10-27 浙江大学 基于索引的汽车电子软件组件模型仓库的实现方法
EP2469407A1 (de) * 2010-12-21 2012-06-27 Robert Bosch GmbH Verfahren zur Umgehung einer AUTOSAR-Softwarekomponente eines AUTOSAR-Softwaresystems
CN102073549B (zh) * 2011-01-18 2013-06-19 浙江大学 一种基于资源共享的组件间通信方法
CN102611741B (zh) * 2012-02-17 2015-03-18 浙江大学 从autosar***配置模型中提取通信矩阵的方法
WO2016186531A1 (en) * 2015-05-19 2016-11-24 Huawei Technologies Co., Ltd. System and method for synchronizing distributed computing runtimes
US10417077B2 (en) * 2016-09-29 2019-09-17 2236008 Ontario Inc. Software handling of hardware errors
US10509692B2 (en) * 2017-05-31 2019-12-17 2236008 Ontario Inc. Loosely-coupled lock-step chaining
US20200133267A1 (en) * 2018-10-25 2020-04-30 GM Global Technology Operations LLC Middleware support for fault-tolerant execution in an adaptive platform for a vehicle
EP4060487A1 (de) * 2021-03-17 2022-09-21 Aptiv Technologies Limited Elektronische steuereinheit, fahrzeug mit der elektronischen steuereinheit und computerimplementiertes verfahren
CN113687814A (zh) * 2021-08-05 2021-11-23 东风汽车集团股份有限公司 基于autosar架构的模型框架和接口文件的自动化实现方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
CA2068048A1 (en) * 1991-05-06 1992-11-07 Douglas D. Cheung Fault tolerant processing section with dynamically reconfigurable voting
JP2500038B2 (ja) * 1992-03-04 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・コンピュ―タ・システム、フォ―ルト・トレラント処理方法及びデ―タ処理システム
US5802265A (en) * 1995-12-01 1998-09-01 Stratus Computer, Inc. Transparent fault tolerant computer system
US6374364B1 (en) * 1998-01-20 2002-04-16 Honeywell International, Inc. Fault tolerant computing system using instruction counting
US6161196A (en) * 1998-06-19 2000-12-12 Lucent Technologies Inc. Fault tolerance via N-modular software redundancy using indirect instrumentation
US7359775B2 (en) * 2001-06-13 2008-04-15 Hunter Engineering Company Method and apparatus for information transfer in vehicle service systems
DE10142511B4 (de) * 2001-08-30 2004-04-29 Daimlerchrysler Ag Fehlerbehandlung von Softwaremodulen
US7415508B2 (en) * 2001-08-31 2008-08-19 Temic Automotive Of North America, Inc. Linked vehicle active networks
US20030043824A1 (en) * 2001-08-31 2003-03-06 Remboski Donald J. Vehicle active network and device
DE10243713B4 (de) * 2002-09-20 2006-10-05 Daimlerchrysler Ag Redundante Steuergeräteanordnung
US7093204B2 (en) * 2003-04-04 2006-08-15 Synplicity, Inc. Method and apparatus for automated synthesis of multi-channel circuits
DE10357118A1 (de) * 2003-12-06 2005-07-07 Daimlerchrysler Ag Laden von Software-Modulen
US7289889B2 (en) * 2004-04-13 2007-10-30 General Motors Corporation Vehicle control system and method
US9753754B2 (en) * 2004-12-22 2017-09-05 Microsoft Technology Licensing, Llc Enforcing deterministic execution of threads of guest operating systems running in a virtual machine hosted on a multiprocessor machine
US7554560B2 (en) * 2004-12-24 2009-06-30 Donald Pieronek System for defining network behaviors within application programs
US20060184296A1 (en) * 2005-02-17 2006-08-17 Hunter Engineering Company Machine vision vehicle wheel alignment systems
US7933966B2 (en) * 2005-04-26 2011-04-26 Hewlett-Packard Development Company, L.P. Method and system of copying a memory area between processor elements for lock-step execution
US7802232B2 (en) * 2006-03-31 2010-09-21 Microsoft Corporation Software robustness through search for robust runtime implementations
US20070288885A1 (en) * 2006-05-17 2007-12-13 The Mathworks, Inc. Action languages for unified modeling language model
US7837278B2 (en) * 2007-05-30 2010-11-23 Haldex Brake Products Ab Redundant brake actuators for fail safe brake system
WO2009090502A1 (en) * 2008-01-16 2009-07-23 Freescale Semiconductor, Inc. Processor based system having ecc based check and access validation information means

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NARASIMHAN,P., et.al.: MEAD: support for Real-Time Fault-Tolerant CORBA. Concurrency Computat.: Prac t. Exper. 200, 17:1527-1545
NARASIMHAN,P., et.al.: MEAD: support for Real-Time Fault-Tolerant CORBA. Concurrency Computat.: Pract. Exper. 200, 17:1527-1545; *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2662773A1 (de) * 2012-05-10 2013-11-13 EADS Deutschland GmbH Redundantes Mehrprozessorsystem und zugehöriges Verfahren

Also Published As

Publication number Publication date
EP2168070A2 (de) 2010-03-31
WO2009013055A3 (de) 2009-12-23
US20100192164A1 (en) 2010-07-29
CN101755256A (zh) 2010-06-23
WO2009013055A2 (de) 2009-01-29

Similar Documents

Publication Publication Date Title
DE102007033885A1 (de) Verfahren zur transparenten Replikation einer Softwarekomponente eines Softwaresystems
EP2235628B1 (de) Kraftfahrzeug-steuervorrichtung
EP2030116B1 (de) Kommunikationsbaustein
EP2030118B1 (de) Mehrprozessor-gateway
EP1787204B1 (de) Botschaftsverwalter und verfahren zur steuerung des zugriffs auf daten eines botschaftsspeichers eines kommunikationsbausteins
DE102005060085B9 (de) Verfahren, Kommunikationsnetzwerk und Steuereinheit zum zyklischen Übertragen von Daten
EP2030117A1 (de) Gateway zum datentransfer zwischen seriellen bussen
DE102010041427A1 (de) Verfahren zum Übertragen von Daten
EP1940654B1 (de) Verfahren zur Anbindung eines FlexRay-Teilnehmers mit einem Mikrocontroller an eine FlexRay-Kommunikationsverbindung über eine FlexRay-Kommunikationssteuereinrichtung, und FlexRay-Kommunikationssystem zur Realisierung dieses Verfahrens
WO2008053040A1 (de) Vorrichtung und verfahren zur manipulation von kommunikations-botschaften
EP3401742B1 (de) Automatisierungssystem und verfahren zum betrieb
EP1428340B1 (de) Verfahren und vorrichtung zur erzeugung von programmunterbrechungen bei teilnehmern eines bussystems und bussystem
EP2895925A1 (de) Kaskadiertes feldbussystem
DE102011004358B3 (de) Verfahren zum Übertragen von Daten über einen synchronen seriellen Datenbus
DE102012205160A1 (de) Kommunikationsanordnung und Verfahren zur Konfiguration programmierbarer Hardware
DE10329179A1 (de) Anordnung und Verfahren zur Verwaltung eines Speichers
EP3267271A1 (de) Automatisierungssystem und verfahren zum betrieb
EP1371184B1 (de) Elektronischer schaltkreis und verfahren für eine kommunikationsschnittstelle mit zwischenspeicherung
AT412592B (de) Virtuelle netzwerke in einem zeitgesteuerten multicluster echtzeitsystem
EP1430690A2 (de) Verfahren zum zugriff auf eine befehlseinheit für ein datennetz
DE102020201140A1 (de) Verfahren und Vorrichtung zum Automatisieren einer Fahrfunktion
DE102009000585B4 (de) Synchronisierung zweier Kommunikationsnetzwerke eines elektronischen Datenverarbeitungssystems
DE102020107141A1 (de) Simulieren einer Steuergerätekommunikation zwischen einem zu testenden Steuergerät und mindestens einem weiteren Steuergerät
DE102011083001B4 (de) Teilnehmer eines Kommunikationsnetzwerks und Verfahren zur deterministischen Übertragung über ein Kommunikationsmedium des Kommunikationsnetzwerks
EP1430669A1 (de) Verfahren zur verarbeitung konsistenter datensätze

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection